module FakeuBTB(
  output  io_resp_isActive_1,
  output  io_resp_isActive_2,
  output  io_resp_isActive_3
);
  wire [1:0] _io_resp_isActive_0_T_2 = 2'h3 - 2'h0; // @[uBTB.scala 150:42]
  assign io_resp_isActive_1 = _io_resp_isActive_0_T_2 >= 2'h1; // @[uBTB.scala 150:83]
  assign io_resp_isActive_2 = _io_resp_isActive_0_T_2 >= 2'h2; // @[uBTB.scala 150:83]
  assign io_resp_isActive_3 = _io_resp_isActive_0_T_2 >= 2'h3; // @[uBTB.scala 150:83]
endmodule
module IF1NPredict(
  input         clock,
  input         reset,
  input         io_if4Redirect_valid,
  input  [38:0] io_if4Redirect_bits_target,
  input         io_cmmRedirect_valid,
  input  [63:0] io_cmmRedirect_bits_pc,
  input         io_pc_gen_ready,
  output        io_pc_gen_valid,
  output        io_pc_gen_bits_isActive_1,
  output        io_pc_gen_bits_isActive_2,
  output        io_pc_gen_bits_isActive_3,
  output [63:0] io_pc_gen_bits_pc
);
`ifdef RANDOMIZE_REG_INIT
  reg [63:0] _RAND_0;
`endif // RANDOMIZE_REG_INIT
  wire  uBTB_io_resp_isActive_1; // @[IF1.scala 74:20]
  wire  uBTB_io_resp_isActive_2; // @[IF1.scala 74:20]
  wire  uBTB_io_resp_isActive_3; // @[IF1.scala 74:20]
  reg [63:0] pc_qout; // @[IF1.scala 42:24]
  wire [24:0] _pc_qout_v64_T_2 = io_if4Redirect_bits_target[38] ? 25'h1ffffff : 25'h0; // @[Bitwise.scala 77:12]
  wire [63:0] pc_qout_v64 = {_pc_qout_v64_T_2,io_if4Redirect_bits_target}; // @[Cat.scala 33:92]
  wire  _T = io_pc_gen_ready & io_pc_gen_valid; // @[Decoupled.scala 52:35]
  wire [63:0] _pc_qout_T_2 = pc_qout + 64'h8; // @[IF1.scala 117:25]
  wire [63:0] _pc_qout_T_4 = {_pc_qout_T_2[63:3], 3'h0}; // @[IF1.scala 117:87]
  wire [63:0] _GEN_0 = _T ? _pc_qout_T_4 : pc_qout; // @[IF1.scala 116:31 117:13 42:24]
  FakeuBTB uBTB ( // @[IF1.scala 74:20]
    .io_resp_isActive_1(uBTB_io_resp_isActive_1),
    .io_resp_isActive_2(uBTB_io_resp_isActive_2),
    .io_resp_isActive_3(uBTB_io_resp_isActive_3)
  );
  assign io_pc_gen_valid = 1'h1; // @[IF1.scala 119:21]
  assign io_pc_gen_bits_isActive_1 = uBTB_io_resp_isActive_1; // @[IF1.scala 77:27]
  assign io_pc_gen_bits_isActive_2 = uBTB_io_resp_isActive_2; // @[IF1.scala 77:27]
  assign io_pc_gen_bits_isActive_3 = uBTB_io_resp_isActive_3; // @[IF1.scala 77:27]
  assign io_pc_gen_bits_pc = pc_qout; // @[IF1.scala 120:21]
  always @(posedge clock) begin
    if (reset) begin // @[IF1.scala 42:24]
      pc_qout <= 64'h80000000; // @[IF1.scala 42:24]
    end else if (reset) begin // @[IF1.scala 113:21]
      pc_qout <= 64'h80000000; // @[IF1.scala 113:31]
    end else if (io_cmmRedirect_valid) begin // @[IF1.scala 114:36]
      pc_qout <= io_cmmRedirect_bits_pc; // @[IF1.scala 114:46]
    end else if (io_if4Redirect_valid) begin // @[IF1.scala 115:36]
      pc_qout <= pc_qout_v64; // @[IF1.scala 115:46]
    end else begin
      pc_qout <= _GEN_0;
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {2{`RANDOM}};
  pc_qout = _RAND_0[63:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module MultiPortFifo_in4_out4(
  input         clock,
  input         reset,
  output        io_enq_0_ready,
  input         io_enq_0_valid,
  input  [38:0] io_enq_0_bits_pc,
  input  [15:0] io_enq_0_bits_instr,
  input         io_enq_0_bits_isFault,
  output        io_enq_1_ready,
  input         io_enq_1_valid,
  input  [38:0] io_enq_1_bits_pc,
  input  [15:0] io_enq_1_bits_instr,
  output        io_enq_2_ready,
  input         io_enq_2_valid,
  input  [38:0] io_enq_2_bits_pc,
  input  [15:0] io_enq_2_bits_instr,
  output        io_enq_3_ready,
  input         io_enq_3_valid,
  input  [38:0] io_enq_3_bits_pc,
  input  [15:0] io_enq_3_bits_instr,
  input         io_deq_0_ready,
  output        io_deq_0_valid,
  output [38:0] io_deq_0_bits_pc,
  output [15:0] io_deq_0_bits_instr,
  output        io_deq_0_bits_isRedirect,
  input         io_deq_1_ready,
  output        io_deq_1_valid,
  output [38:0] io_deq_1_bits_pc,
  output [15:0] io_deq_1_bits_instr,
  output        io_deq_1_bits_isFault,
  output        io_deq_1_bits_isRedirect,
  input         io_deq_2_ready,
  output        io_deq_2_valid,
  output [38:0] io_deq_2_bits_pc,
  output [15:0] io_deq_2_bits_instr,
  output        io_deq_2_bits_isFault,
  output        io_deq_2_bits_isRedirect,
  input         io_deq_3_ready,
  output        io_deq_3_valid,
  output [38:0] io_deq_3_bits_pc,
  output [15:0] io_deq_3_bits_instr,
  output        io_deq_3_bits_isFault,
  output        io_deq_3_bits_isRedirect,
  input         io_flush
);
`ifdef RANDOMIZE_REG_INIT
  reg [63:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [63:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [63:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [63:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [63:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [63:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [63:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [63:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
  reg [31:0] _RAND_33;
  reg [31:0] _RAND_34;
  reg [31:0] _RAND_35;
  reg [31:0] _RAND_36;
  reg [31:0] _RAND_37;
  reg [31:0] _RAND_38;
  reg [31:0] _RAND_39;
  reg [31:0] _RAND_40;
  reg [31:0] _RAND_41;
`endif // RANDOMIZE_REG_INIT
  reg [38:0] buf_0_pc; // @[MultiPortFifo.scala 57:20]
  reg [15:0] buf_0_instr; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_isFault; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_isRedirect; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_1_pc; // @[MultiPortFifo.scala 57:20]
  reg [15:0] buf_1_instr; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_isFault; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_isRedirect; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_2_pc; // @[MultiPortFifo.scala 57:20]
  reg [15:0] buf_2_instr; // @[MultiPortFifo.scala 57:20]
  reg  buf_2_isFault; // @[MultiPortFifo.scala 57:20]
  reg  buf_2_isRedirect; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_3_pc; // @[MultiPortFifo.scala 57:20]
  reg [15:0] buf_3_instr; // @[MultiPortFifo.scala 57:20]
  reg  buf_3_isFault; // @[MultiPortFifo.scala 57:20]
  reg  buf_3_isRedirect; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_4_pc; // @[MultiPortFifo.scala 57:20]
  reg [15:0] buf_4_instr; // @[MultiPortFifo.scala 57:20]
  reg  buf_4_isFault; // @[MultiPortFifo.scala 57:20]
  reg  buf_4_isRedirect; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_5_pc; // @[MultiPortFifo.scala 57:20]
  reg [15:0] buf_5_instr; // @[MultiPortFifo.scala 57:20]
  reg  buf_5_isFault; // @[MultiPortFifo.scala 57:20]
  reg  buf_5_isRedirect; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_6_pc; // @[MultiPortFifo.scala 57:20]
  reg [15:0] buf_6_instr; // @[MultiPortFifo.scala 57:20]
  reg  buf_6_isFault; // @[MultiPortFifo.scala 57:20]
  reg  buf_6_isRedirect; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_7_pc; // @[MultiPortFifo.scala 57:20]
  reg [15:0] buf_7_instr; // @[MultiPortFifo.scala 57:20]
  reg  buf_7_isFault; // @[MultiPortFifo.scala 57:20]
  reg  buf_7_isRedirect; // @[MultiPortFifo.scala 57:20]
  reg  buf_valid_0; // @[MultiPortFifo.scala 58:30]
  reg  buf_valid_1; // @[MultiPortFifo.scala 58:30]
  reg  buf_valid_2; // @[MultiPortFifo.scala 58:30]
  reg  buf_valid_3; // @[MultiPortFifo.scala 58:30]
  reg  buf_valid_4; // @[MultiPortFifo.scala 58:30]
  reg  buf_valid_5; // @[MultiPortFifo.scala 58:30]
  reg  buf_valid_6; // @[MultiPortFifo.scala 58:30]
  reg  buf_valid_7; // @[MultiPortFifo.scala 58:30]
  reg [2:0] rd_ptr; // @[MultiPortFifo.scala 60:27]
  reg [2:0] wr_ptr; // @[MultiPortFifo.scala 61:27]
  wire [3:0] _io_enq_0_ready_T = {{1'd0}, wr_ptr}; // @[MultiPortFifo.scala 64:78]
  wire  _GEN_1 = 3'h1 == _io_enq_0_ready_T[2:0] ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_2 = 3'h2 == _io_enq_0_ready_T[2:0] ? buf_valid_2 : _GEN_1; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_3 = 3'h3 == _io_enq_0_ready_T[2:0] ? buf_valid_3 : _GEN_2; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_4 = 3'h4 == _io_enq_0_ready_T[2:0] ? buf_valid_4 : _GEN_3; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_5 = 3'h5 == _io_enq_0_ready_T[2:0] ? buf_valid_5 : _GEN_4; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_6 = 3'h6 == _io_enq_0_ready_T[2:0] ? buf_valid_6 : _GEN_5; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_7 = 3'h7 == _io_enq_0_ready_T[2:0] ? buf_valid_7 : _GEN_6; // @[MultiPortFifo.scala 64:{94,94}]
  wire [2:0] _io_enq_1_ready_T_1 = wr_ptr + 3'h1; // @[MultiPortFifo.scala 64:78]
  wire  _GEN_9 = 3'h1 == _io_enq_1_ready_T_1 ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_10 = 3'h2 == _io_enq_1_ready_T_1 ? buf_valid_2 : _GEN_9; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_11 = 3'h3 == _io_enq_1_ready_T_1 ? buf_valid_3 : _GEN_10; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_12 = 3'h4 == _io_enq_1_ready_T_1 ? buf_valid_4 : _GEN_11; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_13 = 3'h5 == _io_enq_1_ready_T_1 ? buf_valid_5 : _GEN_12; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_14 = 3'h6 == _io_enq_1_ready_T_1 ? buf_valid_6 : _GEN_13; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_15 = 3'h7 == _io_enq_1_ready_T_1 ? buf_valid_7 : _GEN_14; // @[MultiPortFifo.scala 64:{94,94}]
  wire [2:0] _io_enq_2_ready_T_1 = wr_ptr + 3'h2; // @[MultiPortFifo.scala 64:78]
  wire  _GEN_17 = 3'h1 == _io_enq_2_ready_T_1 ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_18 = 3'h2 == _io_enq_2_ready_T_1 ? buf_valid_2 : _GEN_17; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_19 = 3'h3 == _io_enq_2_ready_T_1 ? buf_valid_3 : _GEN_18; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_20 = 3'h4 == _io_enq_2_ready_T_1 ? buf_valid_4 : _GEN_19; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_21 = 3'h5 == _io_enq_2_ready_T_1 ? buf_valid_5 : _GEN_20; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_22 = 3'h6 == _io_enq_2_ready_T_1 ? buf_valid_6 : _GEN_21; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_23 = 3'h7 == _io_enq_2_ready_T_1 ? buf_valid_7 : _GEN_22; // @[MultiPortFifo.scala 64:{94,94}]
  wire [2:0] _io_enq_3_ready_T_1 = wr_ptr + 3'h3; // @[MultiPortFifo.scala 64:78]
  wire  _GEN_25 = 3'h1 == _io_enq_3_ready_T_1 ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_26 = 3'h2 == _io_enq_3_ready_T_1 ? buf_valid_2 : _GEN_25; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_27 = 3'h3 == _io_enq_3_ready_T_1 ? buf_valid_3 : _GEN_26; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_28 = 3'h4 == _io_enq_3_ready_T_1 ? buf_valid_4 : _GEN_27; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_29 = 3'h5 == _io_enq_3_ready_T_1 ? buf_valid_5 : _GEN_28; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_30 = 3'h6 == _io_enq_3_ready_T_1 ? buf_valid_6 : _GEN_29; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_31 = 3'h7 == _io_enq_3_ready_T_1 ? buf_valid_7 : _GEN_30; // @[MultiPortFifo.scala 64:{94,94}]
  wire [3:0] _io_deq_0_valid_T = {{1'd0}, rd_ptr}; // @[MultiPortFifo.scala 65:78]
  wire  _GEN_33 = 3'h1 == _io_deq_0_valid_T[2:0] ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _GEN_34 = 3'h2 == _io_deq_0_valid_T[2:0] ? buf_valid_2 : _GEN_33; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _GEN_35 = 3'h3 == _io_deq_0_valid_T[2:0] ? buf_valid_3 : _GEN_34; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _GEN_36 = 3'h4 == _io_deq_0_valid_T[2:0] ? buf_valid_4 : _GEN_35; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _GEN_37 = 3'h5 == _io_deq_0_valid_T[2:0] ? buf_valid_5 : _GEN_36; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _GEN_38 = 3'h6 == _io_deq_0_valid_T[2:0] ? buf_valid_6 : _GEN_37; // @[MultiPortFifo.scala 65:{94,94}]
  wire [2:0] _io_deq_1_valid_T_1 = rd_ptr + 3'h1; // @[MultiPortFifo.scala 65:78]
  wire  _GEN_41 = 3'h1 == _io_deq_1_valid_T_1 ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _GEN_42 = 3'h2 == _io_deq_1_valid_T_1 ? buf_valid_2 : _GEN_41; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _GEN_43 = 3'h3 == _io_deq_1_valid_T_1 ? buf_valid_3 : _GEN_42; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _GEN_44 = 3'h4 == _io_deq_1_valid_T_1 ? buf_valid_4 : _GEN_43; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _GEN_45 = 3'h5 == _io_deq_1_valid_T_1 ? buf_valid_5 : _GEN_44; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _GEN_46 = 3'h6 == _io_deq_1_valid_T_1 ? buf_valid_6 : _GEN_45; // @[MultiPortFifo.scala 65:{94,94}]
  wire [2:0] _io_deq_2_valid_T_1 = rd_ptr + 3'h2; // @[MultiPortFifo.scala 65:78]
  wire  _GEN_49 = 3'h1 == _io_deq_2_valid_T_1 ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _GEN_50 = 3'h2 == _io_deq_2_valid_T_1 ? buf_valid_2 : _GEN_49; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _GEN_51 = 3'h3 == _io_deq_2_valid_T_1 ? buf_valid_3 : _GEN_50; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _GEN_52 = 3'h4 == _io_deq_2_valid_T_1 ? buf_valid_4 : _GEN_51; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _GEN_53 = 3'h5 == _io_deq_2_valid_T_1 ? buf_valid_5 : _GEN_52; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _GEN_54 = 3'h6 == _io_deq_2_valid_T_1 ? buf_valid_6 : _GEN_53; // @[MultiPortFifo.scala 65:{94,94}]
  wire [2:0] _io_deq_3_valid_T_1 = rd_ptr + 3'h3; // @[MultiPortFifo.scala 65:78]
  wire  _GEN_57 = 3'h1 == _io_deq_3_valid_T_1 ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _GEN_58 = 3'h2 == _io_deq_3_valid_T_1 ? buf_valid_2 : _GEN_57; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _GEN_59 = 3'h3 == _io_deq_3_valid_T_1 ? buf_valid_3 : _GEN_58; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _GEN_60 = 3'h4 == _io_deq_3_valid_T_1 ? buf_valid_4 : _GEN_59; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _GEN_61 = 3'h5 == _io_deq_3_valid_T_1 ? buf_valid_5 : _GEN_60; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _GEN_62 = 3'h6 == _io_deq_3_valid_T_1 ? buf_valid_6 : _GEN_61; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _T = io_enq_0_ready & io_enq_0_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_100 = 3'h0 == _io_enq_0_ready_T[2:0]; // @[MultiPortFifo.scala 58:30 97:{57,57}]
  wire  _GEN_105 = 3'h1 == _io_enq_0_ready_T[2:0]; // @[MultiPortFifo.scala 58:30 97:{57,57}]
  wire  _GEN_110 = 3'h2 == _io_enq_0_ready_T[2:0]; // @[MultiPortFifo.scala 58:30 97:{57,57}]
  wire  _GEN_115 = 3'h3 == _io_enq_0_ready_T[2:0]; // @[MultiPortFifo.scala 58:30 97:{57,57}]
  wire  _GEN_120 = 3'h4 == _io_enq_0_ready_T[2:0]; // @[MultiPortFifo.scala 58:30 97:{57,57}]
  wire  _GEN_125 = 3'h5 == _io_enq_0_ready_T[2:0]; // @[MultiPortFifo.scala 58:30 97:{57,57}]
  wire  _GEN_130 = 3'h6 == _io_enq_0_ready_T[2:0]; // @[MultiPortFifo.scala 58:30 97:{57,57}]
  wire  _GEN_135 = 3'h7 == _io_enq_0_ready_T[2:0]; // @[MultiPortFifo.scala 58:30 97:{57,57}]
  wire  _GEN_72 = _T ? 3'h0 == _io_enq_0_ready_T[2:0] | buf_valid_0 : buf_valid_0; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _GEN_73 = _T ? 3'h1 == _io_enq_0_ready_T[2:0] | buf_valid_1 : buf_valid_1; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _GEN_74 = _T ? 3'h2 == _io_enq_0_ready_T[2:0] | buf_valid_2 : buf_valid_2; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _GEN_75 = _T ? 3'h3 == _io_enq_0_ready_T[2:0] | buf_valid_3 : buf_valid_3; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _GEN_76 = _T ? 3'h4 == _io_enq_0_ready_T[2:0] | buf_valid_4 : buf_valid_4; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _GEN_77 = _T ? 3'h5 == _io_enq_0_ready_T[2:0] | buf_valid_5 : buf_valid_5; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _GEN_78 = _T ? 3'h6 == _io_enq_0_ready_T[2:0] | buf_valid_6 : buf_valid_6; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _GEN_79 = _T ? 3'h7 == _io_enq_0_ready_T[2:0] | buf_valid_7 : buf_valid_7; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _T_1 = io_deq_0_ready & io_deq_0_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_80 = 3'h0 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_72; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_81 = 3'h1 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_73; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_82 = 3'h2 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_74; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_83 = 3'h3 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_75; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_84 = 3'h4 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_76; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_85 = 3'h5 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_77; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_86 = 3'h6 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_78; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_87 = 3'h7 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_79; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_88 = _T_1 ? _GEN_80 : _GEN_72; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_89 = _T_1 ? _GEN_81 : _GEN_73; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_90 = _T_1 ? _GEN_82 : _GEN_74; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_91 = _T_1 ? _GEN_83 : _GEN_75; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_92 = _T_1 ? _GEN_84 : _GEN_76; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_93 = _T_1 ? _GEN_85 : _GEN_77; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_94 = _T_1 ? _GEN_86 : _GEN_78; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_95 = _T_1 ? _GEN_87 : _GEN_79; // @[MultiPortFifo.scala 98:34]
  wire [38:0] _GEN_101 = 3'h1 == _io_enq_0_ready_T[2:0] ? buf_1_pc : buf_0_pc; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_102 = 3'h1 == _io_enq_0_ready_T[2:0] ? buf_1_instr : buf_0_instr; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_103 = 3'h1 == _io_enq_0_ready_T[2:0] ? buf_1_isFault : buf_0_isFault; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_104 = 3'h1 == _io_enq_0_ready_T[2:0] ? buf_1_isRedirect : buf_0_isRedirect; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_106 = 3'h2 == _io_enq_0_ready_T[2:0] ? buf_2_pc : _GEN_101; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_107 = 3'h2 == _io_enq_0_ready_T[2:0] ? buf_2_instr : _GEN_102; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_108 = 3'h2 == _io_enq_0_ready_T[2:0] ? buf_2_isFault : _GEN_103; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_109 = 3'h2 == _io_enq_0_ready_T[2:0] ? buf_2_isRedirect : _GEN_104; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_111 = 3'h3 == _io_enq_0_ready_T[2:0] ? buf_3_pc : _GEN_106; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_112 = 3'h3 == _io_enq_0_ready_T[2:0] ? buf_3_instr : _GEN_107; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_113 = 3'h3 == _io_enq_0_ready_T[2:0] ? buf_3_isFault : _GEN_108; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_114 = 3'h3 == _io_enq_0_ready_T[2:0] ? buf_3_isRedirect : _GEN_109; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_116 = 3'h4 == _io_enq_0_ready_T[2:0] ? buf_4_pc : _GEN_111; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_117 = 3'h4 == _io_enq_0_ready_T[2:0] ? buf_4_instr : _GEN_112; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_118 = 3'h4 == _io_enq_0_ready_T[2:0] ? buf_4_isFault : _GEN_113; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_119 = 3'h4 == _io_enq_0_ready_T[2:0] ? buf_4_isRedirect : _GEN_114; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_121 = 3'h5 == _io_enq_0_ready_T[2:0] ? buf_5_pc : _GEN_116; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_122 = 3'h5 == _io_enq_0_ready_T[2:0] ? buf_5_instr : _GEN_117; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_123 = 3'h5 == _io_enq_0_ready_T[2:0] ? buf_5_isFault : _GEN_118; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_124 = 3'h5 == _io_enq_0_ready_T[2:0] ? buf_5_isRedirect : _GEN_119; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_126 = 3'h6 == _io_enq_0_ready_T[2:0] ? buf_6_pc : _GEN_121; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_127 = 3'h6 == _io_enq_0_ready_T[2:0] ? buf_6_instr : _GEN_122; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_128 = 3'h6 == _io_enq_0_ready_T[2:0] ? buf_6_isFault : _GEN_123; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_129 = 3'h6 == _io_enq_0_ready_T[2:0] ? buf_6_isRedirect : _GEN_124; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_131 = 3'h7 == _io_enq_0_ready_T[2:0] ? buf_7_pc : _GEN_126; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_132 = 3'h7 == _io_enq_0_ready_T[2:0] ? buf_7_instr : _GEN_127; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_133 = 3'h7 == _io_enq_0_ready_T[2:0] ? buf_7_isFault : _GEN_128; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_134 = 3'h7 == _io_enq_0_ready_T[2:0] ? buf_7_isRedirect : _GEN_129; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _buf_T_1_pc = _T ? io_enq_0_bits_pc : _GEN_131; // @[MultiPortFifo.scala 101:33]
  wire [15:0] _buf_T_1_instr = _T ? io_enq_0_bits_instr : _GEN_132; // @[MultiPortFifo.scala 101:33]
  wire  _buf_T_1_isFault = _T ? io_enq_0_bits_isFault : _GEN_133; // @[MultiPortFifo.scala 101:33]
  wire  _buf_T_1_isRedirect = _T ? 1'h0 : _GEN_134; // @[MultiPortFifo.scala 101:33]
  wire [38:0] _GEN_136 = 3'h0 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : buf_0_pc; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [38:0] _GEN_137 = 3'h1 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : buf_1_pc; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [38:0] _GEN_138 = 3'h2 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : buf_2_pc; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [38:0] _GEN_139 = 3'h3 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : buf_3_pc; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [38:0] _GEN_140 = 3'h4 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : buf_4_pc; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [38:0] _GEN_141 = 3'h5 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : buf_5_pc; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [38:0] _GEN_142 = 3'h6 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : buf_6_pc; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [38:0] _GEN_143 = 3'h7 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : buf_7_pc; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [15:0] _GEN_144 = 3'h0 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : buf_0_instr; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [15:0] _GEN_145 = 3'h1 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : buf_1_instr; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [15:0] _GEN_146 = 3'h2 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : buf_2_instr; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [15:0] _GEN_147 = 3'h3 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : buf_3_instr; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [15:0] _GEN_148 = 3'h4 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : buf_4_instr; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [15:0] _GEN_149 = 3'h5 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : buf_5_instr; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [15:0] _GEN_150 = 3'h6 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : buf_6_instr; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [15:0] _GEN_151 = 3'h7 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : buf_7_instr; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_152 = 3'h0 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : buf_0_isFault; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_153 = 3'h1 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : buf_1_isFault; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_154 = 3'h2 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : buf_2_isFault; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_155 = 3'h3 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : buf_3_isFault; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_156 = 3'h4 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : buf_4_isFault; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_157 = 3'h5 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : buf_5_isFault; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_158 = 3'h6 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : buf_6_isFault; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_159 = 3'h7 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : buf_7_isFault; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_160 = 3'h0 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : buf_0_isRedirect; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_161 = 3'h1 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : buf_1_isRedirect; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_162 = 3'h2 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : buf_2_isRedirect; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_163 = 3'h3 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : buf_3_isRedirect; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_164 = 3'h4 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : buf_4_isRedirect; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_165 = 3'h5 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : buf_5_isRedirect; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_166 = 3'h6 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : buf_6_isRedirect; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_167 = 3'h7 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : buf_7_isRedirect; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_184 = _T ? _GEN_100 | _GEN_88 : _GEN_88; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_185 = _T ? _GEN_105 | _GEN_89 : _GEN_89; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_186 = _T ? _GEN_110 | _GEN_90 : _GEN_90; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_187 = _T ? _GEN_115 | _GEN_91 : _GEN_91; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_188 = _T ? _GEN_120 | _GEN_92 : _GEN_92; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_189 = _T ? _GEN_125 | _GEN_93 : _GEN_93; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_190 = _T ? _GEN_130 | _GEN_94 : _GEN_94; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_191 = _T ? _GEN_135 | _GEN_95 : _GEN_95; // @[MultiPortFifo.scala 97:34]
  wire  _T_3 = io_deq_1_ready & io_deq_1_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_192 = 3'h0 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_184; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_193 = 3'h1 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_185; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_194 = 3'h2 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_186; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_195 = 3'h3 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_187; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_196 = 3'h4 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_188; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_197 = 3'h5 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_189; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_198 = 3'h6 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_190; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_199 = 3'h7 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_191; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_200 = _T_3 ? _GEN_192 : _GEN_184; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_201 = _T_3 ? _GEN_193 : _GEN_185; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_202 = _T_3 ? _GEN_194 : _GEN_186; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_203 = _T_3 ? _GEN_195 : _GEN_187; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_204 = _T_3 ? _GEN_196 : _GEN_188; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_205 = _T_3 ? _GEN_197 : _GEN_189; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_206 = _T_3 ? _GEN_198 : _GEN_190; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_207 = _T_3 ? _GEN_199 : _GEN_191; // @[MultiPortFifo.scala 98:34]
  wire [38:0] _GEN_248 = 3'h0 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_136; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_249 = 3'h1 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_137; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_250 = 3'h2 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_138; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_251 = 3'h3 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_139; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_252 = 3'h4 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_140; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_253 = 3'h5 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_141; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_254 = 3'h6 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_142; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_255 = 3'h7 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_143; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_256 = 3'h0 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_144; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_257 = 3'h1 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_145; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_258 = 3'h2 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_146; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_259 = 3'h3 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_147; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_260 = 3'h4 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_148; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_261 = 3'h5 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_149; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_262 = 3'h6 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_150; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_263 = 3'h7 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_151; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_264 = 3'h0 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_152; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_265 = 3'h1 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_153; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_266 = 3'h2 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_154; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_267 = 3'h3 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_155; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_268 = 3'h4 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_156; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_269 = 3'h5 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_157; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_270 = 3'h6 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_158; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_271 = 3'h7 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_159; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_272 = 3'h0 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_160; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_273 = 3'h1 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_161; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_274 = 3'h2 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_162; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_275 = 3'h3 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_163; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_276 = 3'h4 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_164; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_277 = 3'h5 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_165; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_278 = 3'h6 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_166; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_279 = 3'h7 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_167; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_296 = _T ? _GEN_100 | _GEN_200 : _GEN_200; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_297 = _T ? _GEN_105 | _GEN_201 : _GEN_201; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_298 = _T ? _GEN_110 | _GEN_202 : _GEN_202; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_299 = _T ? _GEN_115 | _GEN_203 : _GEN_203; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_300 = _T ? _GEN_120 | _GEN_204 : _GEN_204; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_301 = _T ? _GEN_125 | _GEN_205 : _GEN_205; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_302 = _T ? _GEN_130 | _GEN_206 : _GEN_206; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_303 = _T ? _GEN_135 | _GEN_207 : _GEN_207; // @[MultiPortFifo.scala 97:34]
  wire  _T_5 = io_deq_2_ready & io_deq_2_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_304 = 3'h0 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_296; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_305 = 3'h1 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_297; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_306 = 3'h2 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_298; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_307 = 3'h3 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_299; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_308 = 3'h4 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_300; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_309 = 3'h5 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_301; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_310 = 3'h6 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_302; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_311 = 3'h7 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_303; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_312 = _T_5 ? _GEN_304 : _GEN_296; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_313 = _T_5 ? _GEN_305 : _GEN_297; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_314 = _T_5 ? _GEN_306 : _GEN_298; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_315 = _T_5 ? _GEN_307 : _GEN_299; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_316 = _T_5 ? _GEN_308 : _GEN_300; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_317 = _T_5 ? _GEN_309 : _GEN_301; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_318 = _T_5 ? _GEN_310 : _GEN_302; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_319 = _T_5 ? _GEN_311 : _GEN_303; // @[MultiPortFifo.scala 98:34]
  wire [38:0] _GEN_360 = 3'h0 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_248; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_361 = 3'h1 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_249; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_362 = 3'h2 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_250; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_363 = 3'h3 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_251; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_364 = 3'h4 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_252; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_365 = 3'h5 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_253; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_366 = 3'h6 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_254; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_367 = 3'h7 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_255; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_368 = 3'h0 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_256; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_369 = 3'h1 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_257; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_370 = 3'h2 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_258; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_371 = 3'h3 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_259; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_372 = 3'h4 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_260; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_373 = 3'h5 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_261; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_374 = 3'h6 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_262; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_375 = 3'h7 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_263; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_376 = 3'h0 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_264; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_377 = 3'h1 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_265; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_378 = 3'h2 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_266; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_379 = 3'h3 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_267; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_380 = 3'h4 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_268; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_381 = 3'h5 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_269; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_382 = 3'h6 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_270; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_383 = 3'h7 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_271; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_384 = 3'h0 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_272; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_385 = 3'h1 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_273; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_386 = 3'h2 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_274; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_387 = 3'h3 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_275; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_388 = 3'h4 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_276; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_389 = 3'h5 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_277; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_390 = 3'h6 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_278; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_391 = 3'h7 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_279; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_408 = _T ? _GEN_100 | _GEN_312 : _GEN_312; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_409 = _T ? _GEN_105 | _GEN_313 : _GEN_313; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_410 = _T ? _GEN_110 | _GEN_314 : _GEN_314; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_411 = _T ? _GEN_115 | _GEN_315 : _GEN_315; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_412 = _T ? _GEN_120 | _GEN_316 : _GEN_316; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_413 = _T ? _GEN_125 | _GEN_317 : _GEN_317; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_414 = _T ? _GEN_130 | _GEN_318 : _GEN_318; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_415 = _T ? _GEN_135 | _GEN_319 : _GEN_319; // @[MultiPortFifo.scala 97:34]
  wire  _T_7 = io_deq_3_ready & io_deq_3_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_416 = 3'h0 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_408; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_417 = 3'h1 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_409; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_418 = 3'h2 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_410; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_419 = 3'h3 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_411; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_420 = 3'h4 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_412; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_421 = 3'h5 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_413; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_422 = 3'h6 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_414; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_423 = 3'h7 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_415; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_424 = _T_7 ? _GEN_416 : _GEN_408; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_425 = _T_7 ? _GEN_417 : _GEN_409; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_426 = _T_7 ? _GEN_418 : _GEN_410; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_427 = _T_7 ? _GEN_419 : _GEN_411; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_428 = _T_7 ? _GEN_420 : _GEN_412; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_429 = _T_7 ? _GEN_421 : _GEN_413; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_430 = _T_7 ? _GEN_422 : _GEN_414; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_431 = _T_7 ? _GEN_423 : _GEN_415; // @[MultiPortFifo.scala 98:34]
  wire [38:0] _GEN_472 = 3'h0 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_360; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_473 = 3'h1 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_361; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_474 = 3'h2 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_362; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_475 = 3'h3 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_363; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_476 = 3'h4 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_364; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_477 = 3'h5 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_365; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_478 = 3'h6 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_366; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_479 = 3'h7 == _io_enq_0_ready_T[2:0] ? _buf_T_1_pc : _GEN_367; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_480 = 3'h0 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_368; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_481 = 3'h1 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_369; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_482 = 3'h2 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_370; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_483 = 3'h3 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_371; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_484 = 3'h4 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_372; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_485 = 3'h5 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_373; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_486 = 3'h6 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_374; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_487 = 3'h7 == _io_enq_0_ready_T[2:0] ? _buf_T_1_instr : _GEN_375; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_488 = 3'h0 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_376; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_489 = 3'h1 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_377; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_490 = 3'h2 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_378; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_491 = 3'h3 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_379; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_492 = 3'h4 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_380; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_493 = 3'h5 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_381; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_494 = 3'h6 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_382; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_495 = 3'h7 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isFault : _GEN_383; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_496 = 3'h0 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_384; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_497 = 3'h1 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_385; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_498 = 3'h2 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_386; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_499 = 3'h3 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_387; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_500 = 3'h4 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_388; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_501 = 3'h5 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_389; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_502 = 3'h6 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_390; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_503 = 3'h7 == _io_enq_0_ready_T[2:0] ? _buf_T_1_isRedirect : _GEN_391; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _T_8 = io_enq_1_ready & io_enq_1_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_520 = _T_8 ? 3'h0 == _io_enq_1_ready_T_1 | _GEN_424 : _GEN_424; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_521 = _T_8 ? 3'h1 == _io_enq_1_ready_T_1 | _GEN_425 : _GEN_425; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_522 = _T_8 ? 3'h2 == _io_enq_1_ready_T_1 | _GEN_426 : _GEN_426; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_523 = _T_8 ? 3'h3 == _io_enq_1_ready_T_1 | _GEN_427 : _GEN_427; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_524 = _T_8 ? 3'h4 == _io_enq_1_ready_T_1 | _GEN_428 : _GEN_428; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_525 = _T_8 ? 3'h5 == _io_enq_1_ready_T_1 | _GEN_429 : _GEN_429; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_526 = _T_8 ? 3'h6 == _io_enq_1_ready_T_1 | _GEN_430 : _GEN_430; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_527 = _T_8 ? 3'h7 == _io_enq_1_ready_T_1 | _GEN_431 : _GEN_431; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_528 = 3'h0 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_520; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_529 = 3'h1 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_521; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_530 = 3'h2 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_522; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_531 = 3'h3 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_523; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_532 = 3'h4 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_524; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_533 = 3'h5 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_525; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_534 = 3'h6 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_526; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_535 = 3'h7 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_527; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_536 = _T_1 ? _GEN_528 : _GEN_520; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_537 = _T_1 ? _GEN_529 : _GEN_521; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_538 = _T_1 ? _GEN_530 : _GEN_522; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_539 = _T_1 ? _GEN_531 : _GEN_523; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_540 = _T_1 ? _GEN_532 : _GEN_524; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_541 = _T_1 ? _GEN_533 : _GEN_525; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_542 = _T_1 ? _GEN_534 : _GEN_526; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_543 = _T_1 ? _GEN_535 : _GEN_527; // @[MultiPortFifo.scala 98:34]
  wire [38:0] _GEN_549 = 3'h1 == _io_enq_1_ready_T_1 ? buf_1_pc : buf_0_pc; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_550 = 3'h1 == _io_enq_1_ready_T_1 ? buf_1_instr : buf_0_instr; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_551 = 3'h1 == _io_enq_1_ready_T_1 ? buf_1_isFault : buf_0_isFault; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_552 = 3'h1 == _io_enq_1_ready_T_1 ? buf_1_isRedirect : buf_0_isRedirect; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_554 = 3'h2 == _io_enq_1_ready_T_1 ? buf_2_pc : _GEN_549; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_555 = 3'h2 == _io_enq_1_ready_T_1 ? buf_2_instr : _GEN_550; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_556 = 3'h2 == _io_enq_1_ready_T_1 ? buf_2_isFault : _GEN_551; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_557 = 3'h2 == _io_enq_1_ready_T_1 ? buf_2_isRedirect : _GEN_552; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_559 = 3'h3 == _io_enq_1_ready_T_1 ? buf_3_pc : _GEN_554; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_560 = 3'h3 == _io_enq_1_ready_T_1 ? buf_3_instr : _GEN_555; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_561 = 3'h3 == _io_enq_1_ready_T_1 ? buf_3_isFault : _GEN_556; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_562 = 3'h3 == _io_enq_1_ready_T_1 ? buf_3_isRedirect : _GEN_557; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_564 = 3'h4 == _io_enq_1_ready_T_1 ? buf_4_pc : _GEN_559; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_565 = 3'h4 == _io_enq_1_ready_T_1 ? buf_4_instr : _GEN_560; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_566 = 3'h4 == _io_enq_1_ready_T_1 ? buf_4_isFault : _GEN_561; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_567 = 3'h4 == _io_enq_1_ready_T_1 ? buf_4_isRedirect : _GEN_562; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_569 = 3'h5 == _io_enq_1_ready_T_1 ? buf_5_pc : _GEN_564; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_570 = 3'h5 == _io_enq_1_ready_T_1 ? buf_5_instr : _GEN_565; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_571 = 3'h5 == _io_enq_1_ready_T_1 ? buf_5_isFault : _GEN_566; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_572 = 3'h5 == _io_enq_1_ready_T_1 ? buf_5_isRedirect : _GEN_567; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_574 = 3'h6 == _io_enq_1_ready_T_1 ? buf_6_pc : _GEN_569; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_575 = 3'h6 == _io_enq_1_ready_T_1 ? buf_6_instr : _GEN_570; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_576 = 3'h6 == _io_enq_1_ready_T_1 ? buf_6_isFault : _GEN_571; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_577 = 3'h6 == _io_enq_1_ready_T_1 ? buf_6_isRedirect : _GEN_572; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_579 = 3'h7 == _io_enq_1_ready_T_1 ? buf_7_pc : _GEN_574; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_580 = 3'h7 == _io_enq_1_ready_T_1 ? buf_7_instr : _GEN_575; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_581 = 3'h7 == _io_enq_1_ready_T_1 ? buf_7_isFault : _GEN_576; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_582 = 3'h7 == _io_enq_1_ready_T_1 ? buf_7_isRedirect : _GEN_577; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _buf_T_9_pc = _T_8 ? io_enq_1_bits_pc : _GEN_579; // @[MultiPortFifo.scala 101:33]
  wire [15:0] _buf_T_9_instr = _T_8 ? io_enq_1_bits_instr : _GEN_580; // @[MultiPortFifo.scala 101:33]
  wire  _buf_T_9_isFault = _T_8 ? 1'h0 : _GEN_581; // @[MultiPortFifo.scala 101:33]
  wire  _buf_T_9_isRedirect = _T_8 ? 1'h0 : _GEN_582; // @[MultiPortFifo.scala 101:33]
  wire [38:0] _GEN_584 = 3'h0 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_472; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_585 = 3'h1 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_473; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_586 = 3'h2 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_474; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_587 = 3'h3 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_475; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_588 = 3'h4 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_476; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_589 = 3'h5 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_477; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_590 = 3'h6 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_478; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_591 = 3'h7 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_479; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_592 = 3'h0 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_480; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_593 = 3'h1 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_481; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_594 = 3'h2 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_482; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_595 = 3'h3 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_483; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_596 = 3'h4 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_484; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_597 = 3'h5 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_485; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_598 = 3'h6 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_486; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_599 = 3'h7 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_487; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_600 = 3'h0 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_488; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_601 = 3'h1 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_489; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_602 = 3'h2 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_490; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_603 = 3'h3 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_491; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_604 = 3'h4 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_492; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_605 = 3'h5 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_493; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_606 = 3'h6 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_494; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_607 = 3'h7 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_495; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_608 = 3'h0 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_496; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_609 = 3'h1 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_497; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_610 = 3'h2 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_498; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_611 = 3'h3 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_499; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_612 = 3'h4 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_500; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_613 = 3'h5 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_501; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_614 = 3'h6 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_502; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_615 = 3'h7 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_503; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_632 = _T_8 ? 3'h0 == _io_enq_1_ready_T_1 | _GEN_536 : _GEN_536; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_633 = _T_8 ? 3'h1 == _io_enq_1_ready_T_1 | _GEN_537 : _GEN_537; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_634 = _T_8 ? 3'h2 == _io_enq_1_ready_T_1 | _GEN_538 : _GEN_538; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_635 = _T_8 ? 3'h3 == _io_enq_1_ready_T_1 | _GEN_539 : _GEN_539; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_636 = _T_8 ? 3'h4 == _io_enq_1_ready_T_1 | _GEN_540 : _GEN_540; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_637 = _T_8 ? 3'h5 == _io_enq_1_ready_T_1 | _GEN_541 : _GEN_541; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_638 = _T_8 ? 3'h6 == _io_enq_1_ready_T_1 | _GEN_542 : _GEN_542; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_639 = _T_8 ? 3'h7 == _io_enq_1_ready_T_1 | _GEN_543 : _GEN_543; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_640 = 3'h0 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_632; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_641 = 3'h1 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_633; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_642 = 3'h2 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_634; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_643 = 3'h3 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_635; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_644 = 3'h4 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_636; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_645 = 3'h5 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_637; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_646 = 3'h6 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_638; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_647 = 3'h7 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_639; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_648 = _T_3 ? _GEN_640 : _GEN_632; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_649 = _T_3 ? _GEN_641 : _GEN_633; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_650 = _T_3 ? _GEN_642 : _GEN_634; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_651 = _T_3 ? _GEN_643 : _GEN_635; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_652 = _T_3 ? _GEN_644 : _GEN_636; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_653 = _T_3 ? _GEN_645 : _GEN_637; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_654 = _T_3 ? _GEN_646 : _GEN_638; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_655 = _T_3 ? _GEN_647 : _GEN_639; // @[MultiPortFifo.scala 98:34]
  wire [38:0] _GEN_696 = 3'h0 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_584; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_697 = 3'h1 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_585; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_698 = 3'h2 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_586; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_699 = 3'h3 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_587; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_700 = 3'h4 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_588; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_701 = 3'h5 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_589; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_702 = 3'h6 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_590; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_703 = 3'h7 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_591; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_704 = 3'h0 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_592; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_705 = 3'h1 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_593; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_706 = 3'h2 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_594; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_707 = 3'h3 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_595; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_708 = 3'h4 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_596; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_709 = 3'h5 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_597; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_710 = 3'h6 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_598; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_711 = 3'h7 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_599; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_712 = 3'h0 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_600; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_713 = 3'h1 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_601; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_714 = 3'h2 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_602; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_715 = 3'h3 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_603; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_716 = 3'h4 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_604; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_717 = 3'h5 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_605; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_718 = 3'h6 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_606; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_719 = 3'h7 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_607; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_720 = 3'h0 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_608; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_721 = 3'h1 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_609; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_722 = 3'h2 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_610; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_723 = 3'h3 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_611; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_724 = 3'h4 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_612; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_725 = 3'h5 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_613; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_726 = 3'h6 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_614; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_727 = 3'h7 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_615; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_744 = _T_8 ? 3'h0 == _io_enq_1_ready_T_1 | _GEN_648 : _GEN_648; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_745 = _T_8 ? 3'h1 == _io_enq_1_ready_T_1 | _GEN_649 : _GEN_649; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_746 = _T_8 ? 3'h2 == _io_enq_1_ready_T_1 | _GEN_650 : _GEN_650; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_747 = _T_8 ? 3'h3 == _io_enq_1_ready_T_1 | _GEN_651 : _GEN_651; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_748 = _T_8 ? 3'h4 == _io_enq_1_ready_T_1 | _GEN_652 : _GEN_652; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_749 = _T_8 ? 3'h5 == _io_enq_1_ready_T_1 | _GEN_653 : _GEN_653; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_750 = _T_8 ? 3'h6 == _io_enq_1_ready_T_1 | _GEN_654 : _GEN_654; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_751 = _T_8 ? 3'h7 == _io_enq_1_ready_T_1 | _GEN_655 : _GEN_655; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_752 = 3'h0 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_744; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_753 = 3'h1 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_745; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_754 = 3'h2 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_746; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_755 = 3'h3 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_747; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_756 = 3'h4 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_748; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_757 = 3'h5 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_749; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_758 = 3'h6 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_750; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_759 = 3'h7 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_751; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_760 = _T_5 ? _GEN_752 : _GEN_744; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_761 = _T_5 ? _GEN_753 : _GEN_745; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_762 = _T_5 ? _GEN_754 : _GEN_746; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_763 = _T_5 ? _GEN_755 : _GEN_747; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_764 = _T_5 ? _GEN_756 : _GEN_748; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_765 = _T_5 ? _GEN_757 : _GEN_749; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_766 = _T_5 ? _GEN_758 : _GEN_750; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_767 = _T_5 ? _GEN_759 : _GEN_751; // @[MultiPortFifo.scala 98:34]
  wire [38:0] _GEN_808 = 3'h0 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_696; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_809 = 3'h1 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_697; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_810 = 3'h2 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_698; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_811 = 3'h3 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_699; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_812 = 3'h4 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_700; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_813 = 3'h5 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_701; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_814 = 3'h6 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_702; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_815 = 3'h7 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_703; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_816 = 3'h0 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_704; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_817 = 3'h1 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_705; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_818 = 3'h2 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_706; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_819 = 3'h3 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_707; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_820 = 3'h4 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_708; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_821 = 3'h5 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_709; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_822 = 3'h6 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_710; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_823 = 3'h7 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_711; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_824 = 3'h0 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_712; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_825 = 3'h1 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_713; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_826 = 3'h2 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_714; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_827 = 3'h3 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_715; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_828 = 3'h4 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_716; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_829 = 3'h5 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_717; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_830 = 3'h6 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_718; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_831 = 3'h7 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_719; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_832 = 3'h0 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_720; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_833 = 3'h1 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_721; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_834 = 3'h2 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_722; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_835 = 3'h3 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_723; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_836 = 3'h4 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_724; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_837 = 3'h5 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_725; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_838 = 3'h6 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_726; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_839 = 3'h7 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_727; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_856 = _T_8 ? 3'h0 == _io_enq_1_ready_T_1 | _GEN_760 : _GEN_760; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_857 = _T_8 ? 3'h1 == _io_enq_1_ready_T_1 | _GEN_761 : _GEN_761; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_858 = _T_8 ? 3'h2 == _io_enq_1_ready_T_1 | _GEN_762 : _GEN_762; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_859 = _T_8 ? 3'h3 == _io_enq_1_ready_T_1 | _GEN_763 : _GEN_763; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_860 = _T_8 ? 3'h4 == _io_enq_1_ready_T_1 | _GEN_764 : _GEN_764; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_861 = _T_8 ? 3'h5 == _io_enq_1_ready_T_1 | _GEN_765 : _GEN_765; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_862 = _T_8 ? 3'h6 == _io_enq_1_ready_T_1 | _GEN_766 : _GEN_766; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_863 = _T_8 ? 3'h7 == _io_enq_1_ready_T_1 | _GEN_767 : _GEN_767; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_864 = 3'h0 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_856; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_865 = 3'h1 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_857; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_866 = 3'h2 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_858; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_867 = 3'h3 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_859; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_868 = 3'h4 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_860; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_869 = 3'h5 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_861; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_870 = 3'h6 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_862; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_871 = 3'h7 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_863; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_872 = _T_7 ? _GEN_864 : _GEN_856; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_873 = _T_7 ? _GEN_865 : _GEN_857; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_874 = _T_7 ? _GEN_866 : _GEN_858; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_875 = _T_7 ? _GEN_867 : _GEN_859; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_876 = _T_7 ? _GEN_868 : _GEN_860; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_877 = _T_7 ? _GEN_869 : _GEN_861; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_878 = _T_7 ? _GEN_870 : _GEN_862; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_879 = _T_7 ? _GEN_871 : _GEN_863; // @[MultiPortFifo.scala 98:34]
  wire [38:0] _GEN_920 = 3'h0 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_808; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_921 = 3'h1 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_809; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_922 = 3'h2 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_810; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_923 = 3'h3 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_811; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_924 = 3'h4 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_812; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_925 = 3'h5 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_813; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_926 = 3'h6 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_814; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_927 = 3'h7 == _io_enq_1_ready_T_1 ? _buf_T_9_pc : _GEN_815; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_928 = 3'h0 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_816; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_929 = 3'h1 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_817; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_930 = 3'h2 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_818; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_931 = 3'h3 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_819; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_932 = 3'h4 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_820; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_933 = 3'h5 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_821; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_934 = 3'h6 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_822; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_935 = 3'h7 == _io_enq_1_ready_T_1 ? _buf_T_9_instr : _GEN_823; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_936 = 3'h0 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_824; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_937 = 3'h1 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_825; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_938 = 3'h2 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_826; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_939 = 3'h3 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_827; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_940 = 3'h4 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_828; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_941 = 3'h5 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_829; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_942 = 3'h6 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_830; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_943 = 3'h7 == _io_enq_1_ready_T_1 ? _buf_T_9_isFault : _GEN_831; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_944 = 3'h0 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_832; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_945 = 3'h1 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_833; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_946 = 3'h2 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_834; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_947 = 3'h3 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_835; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_948 = 3'h4 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_836; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_949 = 3'h5 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_837; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_950 = 3'h6 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_838; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_951 = 3'h7 == _io_enq_1_ready_T_1 ? _buf_T_9_isRedirect : _GEN_839; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _T_16 = io_enq_2_ready & io_enq_2_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_968 = _T_16 ? 3'h0 == _io_enq_2_ready_T_1 | _GEN_872 : _GEN_872; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_969 = _T_16 ? 3'h1 == _io_enq_2_ready_T_1 | _GEN_873 : _GEN_873; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_970 = _T_16 ? 3'h2 == _io_enq_2_ready_T_1 | _GEN_874 : _GEN_874; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_971 = _T_16 ? 3'h3 == _io_enq_2_ready_T_1 | _GEN_875 : _GEN_875; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_972 = _T_16 ? 3'h4 == _io_enq_2_ready_T_1 | _GEN_876 : _GEN_876; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_973 = _T_16 ? 3'h5 == _io_enq_2_ready_T_1 | _GEN_877 : _GEN_877; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_974 = _T_16 ? 3'h6 == _io_enq_2_ready_T_1 | _GEN_878 : _GEN_878; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_975 = _T_16 ? 3'h7 == _io_enq_2_ready_T_1 | _GEN_879 : _GEN_879; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_976 = 3'h0 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_968; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_977 = 3'h1 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_969; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_978 = 3'h2 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_970; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_979 = 3'h3 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_971; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_980 = 3'h4 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_972; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_981 = 3'h5 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_973; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_982 = 3'h6 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_974; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_983 = 3'h7 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_975; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_984 = _T_1 ? _GEN_976 : _GEN_968; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_985 = _T_1 ? _GEN_977 : _GEN_969; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_986 = _T_1 ? _GEN_978 : _GEN_970; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_987 = _T_1 ? _GEN_979 : _GEN_971; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_988 = _T_1 ? _GEN_980 : _GEN_972; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_989 = _T_1 ? _GEN_981 : _GEN_973; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_990 = _T_1 ? _GEN_982 : _GEN_974; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_991 = _T_1 ? _GEN_983 : _GEN_975; // @[MultiPortFifo.scala 98:34]
  wire [38:0] _GEN_997 = 3'h1 == _io_enq_2_ready_T_1 ? buf_1_pc : buf_0_pc; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_998 = 3'h1 == _io_enq_2_ready_T_1 ? buf_1_instr : buf_0_instr; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_999 = 3'h1 == _io_enq_2_ready_T_1 ? buf_1_isFault : buf_0_isFault; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1000 = 3'h1 == _io_enq_2_ready_T_1 ? buf_1_isRedirect : buf_0_isRedirect; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_1002 = 3'h2 == _io_enq_2_ready_T_1 ? buf_2_pc : _GEN_997; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_1003 = 3'h2 == _io_enq_2_ready_T_1 ? buf_2_instr : _GEN_998; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1004 = 3'h2 == _io_enq_2_ready_T_1 ? buf_2_isFault : _GEN_999; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1005 = 3'h2 == _io_enq_2_ready_T_1 ? buf_2_isRedirect : _GEN_1000; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_1007 = 3'h3 == _io_enq_2_ready_T_1 ? buf_3_pc : _GEN_1002; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_1008 = 3'h3 == _io_enq_2_ready_T_1 ? buf_3_instr : _GEN_1003; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1009 = 3'h3 == _io_enq_2_ready_T_1 ? buf_3_isFault : _GEN_1004; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1010 = 3'h3 == _io_enq_2_ready_T_1 ? buf_3_isRedirect : _GEN_1005; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_1012 = 3'h4 == _io_enq_2_ready_T_1 ? buf_4_pc : _GEN_1007; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_1013 = 3'h4 == _io_enq_2_ready_T_1 ? buf_4_instr : _GEN_1008; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1014 = 3'h4 == _io_enq_2_ready_T_1 ? buf_4_isFault : _GEN_1009; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1015 = 3'h4 == _io_enq_2_ready_T_1 ? buf_4_isRedirect : _GEN_1010; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_1017 = 3'h5 == _io_enq_2_ready_T_1 ? buf_5_pc : _GEN_1012; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_1018 = 3'h5 == _io_enq_2_ready_T_1 ? buf_5_instr : _GEN_1013; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1019 = 3'h5 == _io_enq_2_ready_T_1 ? buf_5_isFault : _GEN_1014; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1020 = 3'h5 == _io_enq_2_ready_T_1 ? buf_5_isRedirect : _GEN_1015; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_1022 = 3'h6 == _io_enq_2_ready_T_1 ? buf_6_pc : _GEN_1017; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_1023 = 3'h6 == _io_enq_2_ready_T_1 ? buf_6_instr : _GEN_1018; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1024 = 3'h6 == _io_enq_2_ready_T_1 ? buf_6_isFault : _GEN_1019; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1025 = 3'h6 == _io_enq_2_ready_T_1 ? buf_6_isRedirect : _GEN_1020; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_1027 = 3'h7 == _io_enq_2_ready_T_1 ? buf_7_pc : _GEN_1022; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_1028 = 3'h7 == _io_enq_2_ready_T_1 ? buf_7_instr : _GEN_1023; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1029 = 3'h7 == _io_enq_2_ready_T_1 ? buf_7_isFault : _GEN_1024; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1030 = 3'h7 == _io_enq_2_ready_T_1 ? buf_7_isRedirect : _GEN_1025; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _buf_T_17_pc = _T_16 ? io_enq_2_bits_pc : _GEN_1027; // @[MultiPortFifo.scala 101:33]
  wire [15:0] _buf_T_17_instr = _T_16 ? io_enq_2_bits_instr : _GEN_1028; // @[MultiPortFifo.scala 101:33]
  wire  _buf_T_17_isFault = _T_16 ? 1'h0 : _GEN_1029; // @[MultiPortFifo.scala 101:33]
  wire  _buf_T_17_isRedirect = _T_16 ? 1'h0 : _GEN_1030; // @[MultiPortFifo.scala 101:33]
  wire [38:0] _GEN_1032 = 3'h0 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_920; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1033 = 3'h1 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_921; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1034 = 3'h2 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_922; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1035 = 3'h3 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_923; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1036 = 3'h4 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_924; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1037 = 3'h5 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_925; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1038 = 3'h6 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_926; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1039 = 3'h7 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_927; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1040 = 3'h0 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_928; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1041 = 3'h1 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_929; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1042 = 3'h2 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_930; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1043 = 3'h3 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_931; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1044 = 3'h4 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_932; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1045 = 3'h5 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_933; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1046 = 3'h6 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_934; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1047 = 3'h7 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_935; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1048 = 3'h0 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_936; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1049 = 3'h1 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_937; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1050 = 3'h2 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_938; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1051 = 3'h3 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_939; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1052 = 3'h4 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_940; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1053 = 3'h5 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_941; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1054 = 3'h6 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_942; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1055 = 3'h7 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_943; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1056 = 3'h0 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_944; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1057 = 3'h1 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_945; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1058 = 3'h2 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_946; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1059 = 3'h3 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_947; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1060 = 3'h4 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_948; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1061 = 3'h5 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_949; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1062 = 3'h6 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_950; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1063 = 3'h7 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_951; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1080 = _T_16 ? 3'h0 == _io_enq_2_ready_T_1 | _GEN_984 : _GEN_984; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1081 = _T_16 ? 3'h1 == _io_enq_2_ready_T_1 | _GEN_985 : _GEN_985; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1082 = _T_16 ? 3'h2 == _io_enq_2_ready_T_1 | _GEN_986 : _GEN_986; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1083 = _T_16 ? 3'h3 == _io_enq_2_ready_T_1 | _GEN_987 : _GEN_987; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1084 = _T_16 ? 3'h4 == _io_enq_2_ready_T_1 | _GEN_988 : _GEN_988; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1085 = _T_16 ? 3'h5 == _io_enq_2_ready_T_1 | _GEN_989 : _GEN_989; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1086 = _T_16 ? 3'h6 == _io_enq_2_ready_T_1 | _GEN_990 : _GEN_990; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1087 = _T_16 ? 3'h7 == _io_enq_2_ready_T_1 | _GEN_991 : _GEN_991; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1088 = 3'h0 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_1080; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1089 = 3'h1 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_1081; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1090 = 3'h2 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_1082; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1091 = 3'h3 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_1083; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1092 = 3'h4 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_1084; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1093 = 3'h5 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_1085; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1094 = 3'h6 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_1086; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1095 = 3'h7 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_1087; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1096 = _T_3 ? _GEN_1088 : _GEN_1080; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1097 = _T_3 ? _GEN_1089 : _GEN_1081; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1098 = _T_3 ? _GEN_1090 : _GEN_1082; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1099 = _T_3 ? _GEN_1091 : _GEN_1083; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1100 = _T_3 ? _GEN_1092 : _GEN_1084; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1101 = _T_3 ? _GEN_1093 : _GEN_1085; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1102 = _T_3 ? _GEN_1094 : _GEN_1086; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1103 = _T_3 ? _GEN_1095 : _GEN_1087; // @[MultiPortFifo.scala 98:34]
  wire [38:0] _GEN_1144 = 3'h0 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1032; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1145 = 3'h1 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1033; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1146 = 3'h2 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1034; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1147 = 3'h3 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1035; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1148 = 3'h4 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1036; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1149 = 3'h5 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1037; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1150 = 3'h6 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1038; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1151 = 3'h7 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1039; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1152 = 3'h0 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1040; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1153 = 3'h1 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1041; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1154 = 3'h2 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1042; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1155 = 3'h3 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1043; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1156 = 3'h4 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1044; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1157 = 3'h5 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1045; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1158 = 3'h6 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1046; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1159 = 3'h7 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1047; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1160 = 3'h0 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1048; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1161 = 3'h1 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1049; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1162 = 3'h2 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1050; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1163 = 3'h3 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1051; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1164 = 3'h4 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1052; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1165 = 3'h5 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1053; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1166 = 3'h6 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1054; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1167 = 3'h7 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1055; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1168 = 3'h0 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1056; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1169 = 3'h1 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1057; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1170 = 3'h2 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1058; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1171 = 3'h3 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1059; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1172 = 3'h4 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1060; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1173 = 3'h5 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1061; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1174 = 3'h6 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1062; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1175 = 3'h7 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1063; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1192 = _T_16 ? 3'h0 == _io_enq_2_ready_T_1 | _GEN_1096 : _GEN_1096; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1193 = _T_16 ? 3'h1 == _io_enq_2_ready_T_1 | _GEN_1097 : _GEN_1097; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1194 = _T_16 ? 3'h2 == _io_enq_2_ready_T_1 | _GEN_1098 : _GEN_1098; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1195 = _T_16 ? 3'h3 == _io_enq_2_ready_T_1 | _GEN_1099 : _GEN_1099; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1196 = _T_16 ? 3'h4 == _io_enq_2_ready_T_1 | _GEN_1100 : _GEN_1100; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1197 = _T_16 ? 3'h5 == _io_enq_2_ready_T_1 | _GEN_1101 : _GEN_1101; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1198 = _T_16 ? 3'h6 == _io_enq_2_ready_T_1 | _GEN_1102 : _GEN_1102; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1199 = _T_16 ? 3'h7 == _io_enq_2_ready_T_1 | _GEN_1103 : _GEN_1103; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1200 = 3'h0 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_1192; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1201 = 3'h1 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_1193; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1202 = 3'h2 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_1194; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1203 = 3'h3 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_1195; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1204 = 3'h4 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_1196; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1205 = 3'h5 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_1197; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1206 = 3'h6 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_1198; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1207 = 3'h7 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_1199; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1208 = _T_5 ? _GEN_1200 : _GEN_1192; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1209 = _T_5 ? _GEN_1201 : _GEN_1193; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1210 = _T_5 ? _GEN_1202 : _GEN_1194; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1211 = _T_5 ? _GEN_1203 : _GEN_1195; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1212 = _T_5 ? _GEN_1204 : _GEN_1196; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1213 = _T_5 ? _GEN_1205 : _GEN_1197; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1214 = _T_5 ? _GEN_1206 : _GEN_1198; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1215 = _T_5 ? _GEN_1207 : _GEN_1199; // @[MultiPortFifo.scala 98:34]
  wire [38:0] _GEN_1256 = 3'h0 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1144; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1257 = 3'h1 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1145; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1258 = 3'h2 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1146; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1259 = 3'h3 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1147; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1260 = 3'h4 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1148; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1261 = 3'h5 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1149; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1262 = 3'h6 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1150; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1263 = 3'h7 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1151; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1264 = 3'h0 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1152; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1265 = 3'h1 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1153; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1266 = 3'h2 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1154; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1267 = 3'h3 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1155; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1268 = 3'h4 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1156; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1269 = 3'h5 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1157; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1270 = 3'h6 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1158; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1271 = 3'h7 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1159; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1272 = 3'h0 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1160; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1273 = 3'h1 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1161; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1274 = 3'h2 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1162; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1275 = 3'h3 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1163; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1276 = 3'h4 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1164; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1277 = 3'h5 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1165; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1278 = 3'h6 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1166; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1279 = 3'h7 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1167; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1280 = 3'h0 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1168; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1281 = 3'h1 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1169; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1282 = 3'h2 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1170; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1283 = 3'h3 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1171; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1284 = 3'h4 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1172; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1285 = 3'h5 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1173; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1286 = 3'h6 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1174; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1287 = 3'h7 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1175; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1304 = _T_16 ? 3'h0 == _io_enq_2_ready_T_1 | _GEN_1208 : _GEN_1208; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1305 = _T_16 ? 3'h1 == _io_enq_2_ready_T_1 | _GEN_1209 : _GEN_1209; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1306 = _T_16 ? 3'h2 == _io_enq_2_ready_T_1 | _GEN_1210 : _GEN_1210; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1307 = _T_16 ? 3'h3 == _io_enq_2_ready_T_1 | _GEN_1211 : _GEN_1211; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1308 = _T_16 ? 3'h4 == _io_enq_2_ready_T_1 | _GEN_1212 : _GEN_1212; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1309 = _T_16 ? 3'h5 == _io_enq_2_ready_T_1 | _GEN_1213 : _GEN_1213; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1310 = _T_16 ? 3'h6 == _io_enq_2_ready_T_1 | _GEN_1214 : _GEN_1214; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1311 = _T_16 ? 3'h7 == _io_enq_2_ready_T_1 | _GEN_1215 : _GEN_1215; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1312 = 3'h0 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_1304; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1313 = 3'h1 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_1305; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1314 = 3'h2 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_1306; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1315 = 3'h3 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_1307; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1316 = 3'h4 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_1308; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1317 = 3'h5 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_1309; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1318 = 3'h6 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_1310; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1319 = 3'h7 == _io_deq_3_valid_T_1 ? 1'h0 : _GEN_1311; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1320 = _T_7 ? _GEN_1312 : _GEN_1304; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1321 = _T_7 ? _GEN_1313 : _GEN_1305; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1322 = _T_7 ? _GEN_1314 : _GEN_1306; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1323 = _T_7 ? _GEN_1315 : _GEN_1307; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1324 = _T_7 ? _GEN_1316 : _GEN_1308; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1325 = _T_7 ? _GEN_1317 : _GEN_1309; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1326 = _T_7 ? _GEN_1318 : _GEN_1310; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1327 = _T_7 ? _GEN_1319 : _GEN_1311; // @[MultiPortFifo.scala 98:34]
  wire [38:0] _GEN_1368 = 3'h0 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1256; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1369 = 3'h1 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1257; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1370 = 3'h2 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1258; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1371 = 3'h3 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1259; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1372 = 3'h4 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1260; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1373 = 3'h5 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1261; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1374 = 3'h6 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1262; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1375 = 3'h7 == _io_enq_2_ready_T_1 ? _buf_T_17_pc : _GEN_1263; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1376 = 3'h0 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1264; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1377 = 3'h1 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1265; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1378 = 3'h2 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1266; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1379 = 3'h3 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1267; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1380 = 3'h4 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1268; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1381 = 3'h5 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1269; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1382 = 3'h6 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1270; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1383 = 3'h7 == _io_enq_2_ready_T_1 ? _buf_T_17_instr : _GEN_1271; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1384 = 3'h0 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1272; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1385 = 3'h1 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1273; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1386 = 3'h2 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1274; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1387 = 3'h3 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1275; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1388 = 3'h4 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1276; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1389 = 3'h5 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1277; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1390 = 3'h6 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1278; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1391 = 3'h7 == _io_enq_2_ready_T_1 ? _buf_T_17_isFault : _GEN_1279; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1392 = 3'h0 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1280; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1393 = 3'h1 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1281; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1394 = 3'h2 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1282; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1395 = 3'h3 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1283; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1396 = 3'h4 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1284; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1397 = 3'h5 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1285; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1398 = 3'h6 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1286; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1399 = 3'h7 == _io_enq_2_ready_T_1 ? _buf_T_17_isRedirect : _GEN_1287; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _T_24 = io_enq_3_ready & io_enq_3_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_1416 = _T_24 ? 3'h0 == _io_enq_3_ready_T_1 | _GEN_1320 : _GEN_1320; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1417 = _T_24 ? 3'h1 == _io_enq_3_ready_T_1 | _GEN_1321 : _GEN_1321; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1418 = _T_24 ? 3'h2 == _io_enq_3_ready_T_1 | _GEN_1322 : _GEN_1322; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1419 = _T_24 ? 3'h3 == _io_enq_3_ready_T_1 | _GEN_1323 : _GEN_1323; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1420 = _T_24 ? 3'h4 == _io_enq_3_ready_T_1 | _GEN_1324 : _GEN_1324; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1421 = _T_24 ? 3'h5 == _io_enq_3_ready_T_1 | _GEN_1325 : _GEN_1325; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1422 = _T_24 ? 3'h6 == _io_enq_3_ready_T_1 | _GEN_1326 : _GEN_1326; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1423 = _T_24 ? 3'h7 == _io_enq_3_ready_T_1 | _GEN_1327 : _GEN_1327; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1424 = 3'h0 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_1416; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1425 = 3'h1 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_1417; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1426 = 3'h2 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_1418; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1427 = 3'h3 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_1419; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1428 = 3'h4 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_1420; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1429 = 3'h5 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_1421; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1430 = 3'h6 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_1422; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1431 = 3'h7 == _io_deq_0_valid_T[2:0] ? 1'h0 : _GEN_1423; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1432 = _T_1 ? _GEN_1424 : _GEN_1416; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1433 = _T_1 ? _GEN_1425 : _GEN_1417; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1434 = _T_1 ? _GEN_1426 : _GEN_1418; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1435 = _T_1 ? _GEN_1427 : _GEN_1419; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1436 = _T_1 ? _GEN_1428 : _GEN_1420; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1437 = _T_1 ? _GEN_1429 : _GEN_1421; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1438 = _T_1 ? _GEN_1430 : _GEN_1422; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1439 = _T_1 ? _GEN_1431 : _GEN_1423; // @[MultiPortFifo.scala 98:34]
  wire [38:0] _GEN_1445 = 3'h1 == _io_enq_3_ready_T_1 ? buf_1_pc : buf_0_pc; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_1446 = 3'h1 == _io_enq_3_ready_T_1 ? buf_1_instr : buf_0_instr; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1447 = 3'h1 == _io_enq_3_ready_T_1 ? buf_1_isFault : buf_0_isFault; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1448 = 3'h1 == _io_enq_3_ready_T_1 ? buf_1_isRedirect : buf_0_isRedirect; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_1450 = 3'h2 == _io_enq_3_ready_T_1 ? buf_2_pc : _GEN_1445; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_1451 = 3'h2 == _io_enq_3_ready_T_1 ? buf_2_instr : _GEN_1446; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1452 = 3'h2 == _io_enq_3_ready_T_1 ? buf_2_isFault : _GEN_1447; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1453 = 3'h2 == _io_enq_3_ready_T_1 ? buf_2_isRedirect : _GEN_1448; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_1455 = 3'h3 == _io_enq_3_ready_T_1 ? buf_3_pc : _GEN_1450; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_1456 = 3'h3 == _io_enq_3_ready_T_1 ? buf_3_instr : _GEN_1451; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1457 = 3'h3 == _io_enq_3_ready_T_1 ? buf_3_isFault : _GEN_1452; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1458 = 3'h3 == _io_enq_3_ready_T_1 ? buf_3_isRedirect : _GEN_1453; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_1460 = 3'h4 == _io_enq_3_ready_T_1 ? buf_4_pc : _GEN_1455; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_1461 = 3'h4 == _io_enq_3_ready_T_1 ? buf_4_instr : _GEN_1456; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1462 = 3'h4 == _io_enq_3_ready_T_1 ? buf_4_isFault : _GEN_1457; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1463 = 3'h4 == _io_enq_3_ready_T_1 ? buf_4_isRedirect : _GEN_1458; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_1465 = 3'h5 == _io_enq_3_ready_T_1 ? buf_5_pc : _GEN_1460; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_1466 = 3'h5 == _io_enq_3_ready_T_1 ? buf_5_instr : _GEN_1461; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1467 = 3'h5 == _io_enq_3_ready_T_1 ? buf_5_isFault : _GEN_1462; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1468 = 3'h5 == _io_enq_3_ready_T_1 ? buf_5_isRedirect : _GEN_1463; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_1470 = 3'h6 == _io_enq_3_ready_T_1 ? buf_6_pc : _GEN_1465; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_1471 = 3'h6 == _io_enq_3_ready_T_1 ? buf_6_instr : _GEN_1466; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1472 = 3'h6 == _io_enq_3_ready_T_1 ? buf_6_isFault : _GEN_1467; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1473 = 3'h6 == _io_enq_3_ready_T_1 ? buf_6_isRedirect : _GEN_1468; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_1475 = 3'h7 == _io_enq_3_ready_T_1 ? buf_7_pc : _GEN_1470; // @[MultiPortFifo.scala 101:{33,33}]
  wire [15:0] _GEN_1476 = 3'h7 == _io_enq_3_ready_T_1 ? buf_7_instr : _GEN_1471; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1477 = 3'h7 == _io_enq_3_ready_T_1 ? buf_7_isFault : _GEN_1472; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_1478 = 3'h7 == _io_enq_3_ready_T_1 ? buf_7_isRedirect : _GEN_1473; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _buf_T_25_pc = _T_24 ? io_enq_3_bits_pc : _GEN_1475; // @[MultiPortFifo.scala 101:33]
  wire [15:0] _buf_T_25_instr = _T_24 ? io_enq_3_bits_instr : _GEN_1476; // @[MultiPortFifo.scala 101:33]
  wire  _buf_T_25_isFault = _T_24 ? 1'h0 : _GEN_1477; // @[MultiPortFifo.scala 101:33]
  wire  _buf_T_25_isRedirect = _T_24 ? 1'h0 : _GEN_1478; // @[MultiPortFifo.scala 101:33]
  wire [38:0] _GEN_1480 = 3'h0 == _io_enq_3_ready_T_1 ? _buf_T_25_pc : _GEN_1368; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1481 = 3'h1 == _io_enq_3_ready_T_1 ? _buf_T_25_pc : _GEN_1369; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1482 = 3'h2 == _io_enq_3_ready_T_1 ? _buf_T_25_pc : _GEN_1370; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1483 = 3'h3 == _io_enq_3_ready_T_1 ? _buf_T_25_pc : _GEN_1371; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1484 = 3'h4 == _io_enq_3_ready_T_1 ? _buf_T_25_pc : _GEN_1372; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1485 = 3'h5 == _io_enq_3_ready_T_1 ? _buf_T_25_pc : _GEN_1373; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1486 = 3'h6 == _io_enq_3_ready_T_1 ? _buf_T_25_pc : _GEN_1374; // @[MultiPortFifo.scala 101:{27,27}]
  wire [38:0] _GEN_1487 = 3'h7 == _io_enq_3_ready_T_1 ? _buf_T_25_pc : _GEN_1375; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1488 = 3'h0 == _io_enq_3_ready_T_1 ? _buf_T_25_instr : _GEN_1376; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1489 = 3'h1 == _io_enq_3_ready_T_1 ? _buf_T_25_instr : _GEN_1377; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1490 = 3'h2 == _io_enq_3_ready_T_1 ? _buf_T_25_instr : _GEN_1378; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1491 = 3'h3 == _io_enq_3_ready_T_1 ? _buf_T_25_instr : _GEN_1379; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1492 = 3'h4 == _io_enq_3_ready_T_1 ? _buf_T_25_instr : _GEN_1380; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1493 = 3'h5 == _io_enq_3_ready_T_1 ? _buf_T_25_instr : _GEN_1381; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1494 = 3'h6 == _io_enq_3_ready_T_1 ? _buf_T_25_instr : _GEN_1382; // @[MultiPortFifo.scala 101:{27,27}]
  wire [15:0] _GEN_1495 = 3'h7 == _io_enq_3_ready_T_1 ? _buf_T_25_instr : _GEN_1383; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1496 = 3'h0 == _io_enq_3_ready_T_1 ? _buf_T_25_isFault : _GEN_1384; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1497 = 3'h1 == _io_enq_3_ready_T_1 ? _buf_T_25_isFault : _GEN_1385; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1498 = 3'h2 == _io_enq_3_ready_T_1 ? _buf_T_25_isFault : _GEN_1386; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1499 = 3'h3 == _io_enq_3_ready_T_1 ? _buf_T_25_isFault : _GEN_1387; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1500 = 3'h4 == _io_enq_3_ready_T_1 ? _buf_T_25_isFault : _GEN_1388; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1501 = 3'h5 == _io_enq_3_ready_T_1 ? _buf_T_25_isFault : _GEN_1389; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1502 = 3'h6 == _io_enq_3_ready_T_1 ? _buf_T_25_isFault : _GEN_1390; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1503 = 3'h7 == _io_enq_3_ready_T_1 ? _buf_T_25_isFault : _GEN_1391; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1504 = 3'h0 == _io_enq_3_ready_T_1 ? _buf_T_25_isRedirect : _GEN_1392; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1505 = 3'h1 == _io_enq_3_ready_T_1 ? _buf_T_25_isRedirect : _GEN_1393; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1506 = 3'h2 == _io_enq_3_ready_T_1 ? _buf_T_25_isRedirect : _GEN_1394; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1507 = 3'h3 == _io_enq_3_ready_T_1 ? _buf_T_25_isRedirect : _GEN_1395; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1508 = 3'h4 == _io_enq_3_ready_T_1 ? _buf_T_25_isRedirect : _GEN_1396; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1509 = 3'h5 == _io_enq_3_ready_T_1 ? _buf_T_25_isRedirect : _GEN_1397; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1510 = 3'h6 == _io_enq_3_ready_T_1 ? _buf_T_25_isRedirect : _GEN_1398; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1511 = 3'h7 == _io_enq_3_ready_T_1 ? _buf_T_25_isRedirect : _GEN_1399; // @[MultiPortFifo.scala 101:{27,27}]
  wire  _GEN_1528 = _T_24 ? 3'h0 == _io_enq_3_ready_T_1 | _GEN_1432 : _GEN_1432; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1529 = _T_24 ? 3'h1 == _io_enq_3_ready_T_1 | _GEN_1433 : _GEN_1433; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1530 = _T_24 ? 3'h2 == _io_enq_3_ready_T_1 | _GEN_1434 : _GEN_1434; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1531 = _T_24 ? 3'h3 == _io_enq_3_ready_T_1 | _GEN_1435 : _GEN_1435; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1532 = _T_24 ? 3'h4 == _io_enq_3_ready_T_1 | _GEN_1436 : _GEN_1436; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1533 = _T_24 ? 3'h5 == _io_enq_3_ready_T_1 | _GEN_1437 : _GEN_1437; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1534 = _T_24 ? 3'h6 == _io_enq_3_ready_T_1 | _GEN_1438 : _GEN_1438; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1535 = _T_24 ? 3'h7 == _io_enq_3_ready_T_1 | _GEN_1439 : _GEN_1439; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1536 = 3'h0 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_1528; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1537 = 3'h1 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_1529; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1538 = 3'h2 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_1530; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1539 = 3'h3 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_1531; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1540 = 3'h4 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_1532; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1541 = 3'h5 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_1533; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1542 = 3'h6 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_1534; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1543 = 3'h7 == _io_deq_1_valid_T_1 ? 1'h0 : _GEN_1535; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1544 = _T_3 ? _GEN_1536 : _GEN_1528; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1545 = _T_3 ? _GEN_1537 : _GEN_1529; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1546 = _T_3 ? _GEN_1538 : _GEN_1530; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1547 = _T_3 ? _GEN_1539 : _GEN_1531; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1548 = _T_3 ? _GEN_1540 : _GEN_1532; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1549 = _T_3 ? _GEN_1541 : _GEN_1533; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1550 = _T_3 ? _GEN_1542 : _GEN_1534; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1551 = _T_3 ? _GEN_1543 : _GEN_1535; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1640 = _T_24 ? 3'h0 == _io_enq_3_ready_T_1 | _GEN_1544 : _GEN_1544; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1641 = _T_24 ? 3'h1 == _io_enq_3_ready_T_1 | _GEN_1545 : _GEN_1545; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1642 = _T_24 ? 3'h2 == _io_enq_3_ready_T_1 | _GEN_1546 : _GEN_1546; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1643 = _T_24 ? 3'h3 == _io_enq_3_ready_T_1 | _GEN_1547 : _GEN_1547; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1644 = _T_24 ? 3'h4 == _io_enq_3_ready_T_1 | _GEN_1548 : _GEN_1548; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1645 = _T_24 ? 3'h5 == _io_enq_3_ready_T_1 | _GEN_1549 : _GEN_1549; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1646 = _T_24 ? 3'h6 == _io_enq_3_ready_T_1 | _GEN_1550 : _GEN_1550; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1647 = _T_24 ? 3'h7 == _io_enq_3_ready_T_1 | _GEN_1551 : _GEN_1551; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1648 = 3'h0 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_1640; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1649 = 3'h1 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_1641; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1650 = 3'h2 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_1642; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1651 = 3'h3 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_1643; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1652 = 3'h4 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_1644; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1653 = 3'h5 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_1645; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1654 = 3'h6 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_1646; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1655 = 3'h7 == _io_deq_2_valid_T_1 ? 1'h0 : _GEN_1647; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_1656 = _T_5 ? _GEN_1648 : _GEN_1640; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1657 = _T_5 ? _GEN_1649 : _GEN_1641; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1658 = _T_5 ? _GEN_1650 : _GEN_1642; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1659 = _T_5 ? _GEN_1651 : _GEN_1643; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1660 = _T_5 ? _GEN_1652 : _GEN_1644; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1661 = _T_5 ? _GEN_1653 : _GEN_1645; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1662 = _T_5 ? _GEN_1654 : _GEN_1646; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1663 = _T_5 ? _GEN_1655 : _GEN_1647; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_1752 = _T_24 ? 3'h0 == _io_enq_3_ready_T_1 | _GEN_1656 : _GEN_1656; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1753 = _T_24 ? 3'h1 == _io_enq_3_ready_T_1 | _GEN_1657 : _GEN_1657; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1754 = _T_24 ? 3'h2 == _io_enq_3_ready_T_1 | _GEN_1658 : _GEN_1658; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1755 = _T_24 ? 3'h3 == _io_enq_3_ready_T_1 | _GEN_1659 : _GEN_1659; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1756 = _T_24 ? 3'h4 == _io_enq_3_ready_T_1 | _GEN_1660 : _GEN_1660; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1757 = _T_24 ? 3'h5 == _io_enq_3_ready_T_1 | _GEN_1661 : _GEN_1661; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1758 = _T_24 ? 3'h6 == _io_enq_3_ready_T_1 | _GEN_1662 : _GEN_1662; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_1759 = _T_24 ? 3'h7 == _io_enq_3_ready_T_1 | _GEN_1663 : _GEN_1663; // @[MultiPortFifo.scala 97:34]
  wire [1:0] _rd_ptr_T_1 = _T_3 ? 2'h2 : {{1'd0}, _T_1}; // @[Mux.scala 101:16]
  wire [1:0] _rd_ptr_T_2 = _T_5 ? 2'h3 : _rd_ptr_T_1; // @[Mux.scala 101:16]
  wire [2:0] _rd_ptr_T_3 = _T_7 ? 3'h4 : {{1'd0}, _rd_ptr_T_2}; // @[Mux.scala 101:16]
  wire [2:0] _rd_ptr_T_5 = rd_ptr + _rd_ptr_T_3; // @[MultiPortFifo.scala 106:26]
  wire [1:0] _wr_ptr_T_1 = _T_8 ? 2'h2 : {{1'd0}, _T}; // @[Mux.scala 101:16]
  wire [1:0] _wr_ptr_T_2 = _T_16 ? 2'h3 : _wr_ptr_T_1; // @[Mux.scala 101:16]
  wire [2:0] _wr_ptr_T_3 = _T_24 ? 3'h4 : {{1'd0}, _wr_ptr_T_2}; // @[Mux.scala 101:16]
  wire [2:0] _wr_ptr_T_5 = wr_ptr + _wr_ptr_T_3; // @[MultiPortFifo.scala 107:26]
  wire [38:0] _GEN_1911 = 3'h1 == _io_deq_0_valid_T[2:0] ? buf_1_pc : buf_0_pc; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_1912 = 3'h1 == _io_deq_0_valid_T[2:0] ? buf_1_instr : buf_0_instr; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_1914 = 3'h1 == _io_deq_0_valid_T[2:0] ? buf_1_isRedirect : buf_0_isRedirect; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_1916 = 3'h2 == _io_deq_0_valid_T[2:0] ? buf_2_pc : _GEN_1911; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_1917 = 3'h2 == _io_deq_0_valid_T[2:0] ? buf_2_instr : _GEN_1912; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_1919 = 3'h2 == _io_deq_0_valid_T[2:0] ? buf_2_isRedirect : _GEN_1914; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_1921 = 3'h3 == _io_deq_0_valid_T[2:0] ? buf_3_pc : _GEN_1916; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_1922 = 3'h3 == _io_deq_0_valid_T[2:0] ? buf_3_instr : _GEN_1917; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_1924 = 3'h3 == _io_deq_0_valid_T[2:0] ? buf_3_isRedirect : _GEN_1919; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_1926 = 3'h4 == _io_deq_0_valid_T[2:0] ? buf_4_pc : _GEN_1921; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_1927 = 3'h4 == _io_deq_0_valid_T[2:0] ? buf_4_instr : _GEN_1922; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_1929 = 3'h4 == _io_deq_0_valid_T[2:0] ? buf_4_isRedirect : _GEN_1924; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_1931 = 3'h5 == _io_deq_0_valid_T[2:0] ? buf_5_pc : _GEN_1926; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_1932 = 3'h5 == _io_deq_0_valid_T[2:0] ? buf_5_instr : _GEN_1927; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_1934 = 3'h5 == _io_deq_0_valid_T[2:0] ? buf_5_isRedirect : _GEN_1929; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_1936 = 3'h6 == _io_deq_0_valid_T[2:0] ? buf_6_pc : _GEN_1931; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_1937 = 3'h6 == _io_deq_0_valid_T[2:0] ? buf_6_instr : _GEN_1932; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_1939 = 3'h6 == _io_deq_0_valid_T[2:0] ? buf_6_isRedirect : _GEN_1934; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_1951 = 3'h1 == _io_deq_1_valid_T_1 ? buf_1_pc : buf_0_pc; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_1952 = 3'h1 == _io_deq_1_valid_T_1 ? buf_1_instr : buf_0_instr; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_1953 = 3'h1 == _io_deq_1_valid_T_1 ? buf_1_isFault : buf_0_isFault; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_1954 = 3'h1 == _io_deq_1_valid_T_1 ? buf_1_isRedirect : buf_0_isRedirect; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_1956 = 3'h2 == _io_deq_1_valid_T_1 ? buf_2_pc : _GEN_1951; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_1957 = 3'h2 == _io_deq_1_valid_T_1 ? buf_2_instr : _GEN_1952; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_1958 = 3'h2 == _io_deq_1_valid_T_1 ? buf_2_isFault : _GEN_1953; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_1959 = 3'h2 == _io_deq_1_valid_T_1 ? buf_2_isRedirect : _GEN_1954; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_1961 = 3'h3 == _io_deq_1_valid_T_1 ? buf_3_pc : _GEN_1956; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_1962 = 3'h3 == _io_deq_1_valid_T_1 ? buf_3_instr : _GEN_1957; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_1963 = 3'h3 == _io_deq_1_valid_T_1 ? buf_3_isFault : _GEN_1958; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_1964 = 3'h3 == _io_deq_1_valid_T_1 ? buf_3_isRedirect : _GEN_1959; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_1966 = 3'h4 == _io_deq_1_valid_T_1 ? buf_4_pc : _GEN_1961; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_1967 = 3'h4 == _io_deq_1_valid_T_1 ? buf_4_instr : _GEN_1962; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_1968 = 3'h4 == _io_deq_1_valid_T_1 ? buf_4_isFault : _GEN_1963; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_1969 = 3'h4 == _io_deq_1_valid_T_1 ? buf_4_isRedirect : _GEN_1964; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_1971 = 3'h5 == _io_deq_1_valid_T_1 ? buf_5_pc : _GEN_1966; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_1972 = 3'h5 == _io_deq_1_valid_T_1 ? buf_5_instr : _GEN_1967; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_1973 = 3'h5 == _io_deq_1_valid_T_1 ? buf_5_isFault : _GEN_1968; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_1974 = 3'h5 == _io_deq_1_valid_T_1 ? buf_5_isRedirect : _GEN_1969; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_1976 = 3'h6 == _io_deq_1_valid_T_1 ? buf_6_pc : _GEN_1971; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_1977 = 3'h6 == _io_deq_1_valid_T_1 ? buf_6_instr : _GEN_1972; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_1978 = 3'h6 == _io_deq_1_valid_T_1 ? buf_6_isFault : _GEN_1973; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_1979 = 3'h6 == _io_deq_1_valid_T_1 ? buf_6_isRedirect : _GEN_1974; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_1991 = 3'h1 == _io_deq_2_valid_T_1 ? buf_1_pc : buf_0_pc; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_1992 = 3'h1 == _io_deq_2_valid_T_1 ? buf_1_instr : buf_0_instr; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_1993 = 3'h1 == _io_deq_2_valid_T_1 ? buf_1_isFault : buf_0_isFault; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_1994 = 3'h1 == _io_deq_2_valid_T_1 ? buf_1_isRedirect : buf_0_isRedirect; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_1996 = 3'h2 == _io_deq_2_valid_T_1 ? buf_2_pc : _GEN_1991; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_1997 = 3'h2 == _io_deq_2_valid_T_1 ? buf_2_instr : _GEN_1992; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_1998 = 3'h2 == _io_deq_2_valid_T_1 ? buf_2_isFault : _GEN_1993; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_1999 = 3'h2 == _io_deq_2_valid_T_1 ? buf_2_isRedirect : _GEN_1994; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_2001 = 3'h3 == _io_deq_2_valid_T_1 ? buf_3_pc : _GEN_1996; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_2002 = 3'h3 == _io_deq_2_valid_T_1 ? buf_3_instr : _GEN_1997; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_2003 = 3'h3 == _io_deq_2_valid_T_1 ? buf_3_isFault : _GEN_1998; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_2004 = 3'h3 == _io_deq_2_valid_T_1 ? buf_3_isRedirect : _GEN_1999; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_2006 = 3'h4 == _io_deq_2_valid_T_1 ? buf_4_pc : _GEN_2001; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_2007 = 3'h4 == _io_deq_2_valid_T_1 ? buf_4_instr : _GEN_2002; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_2008 = 3'h4 == _io_deq_2_valid_T_1 ? buf_4_isFault : _GEN_2003; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_2009 = 3'h4 == _io_deq_2_valid_T_1 ? buf_4_isRedirect : _GEN_2004; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_2011 = 3'h5 == _io_deq_2_valid_T_1 ? buf_5_pc : _GEN_2006; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_2012 = 3'h5 == _io_deq_2_valid_T_1 ? buf_5_instr : _GEN_2007; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_2013 = 3'h5 == _io_deq_2_valid_T_1 ? buf_5_isFault : _GEN_2008; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_2014 = 3'h5 == _io_deq_2_valid_T_1 ? buf_5_isRedirect : _GEN_2009; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_2016 = 3'h6 == _io_deq_2_valid_T_1 ? buf_6_pc : _GEN_2011; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_2017 = 3'h6 == _io_deq_2_valid_T_1 ? buf_6_instr : _GEN_2012; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_2018 = 3'h6 == _io_deq_2_valid_T_1 ? buf_6_isFault : _GEN_2013; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_2019 = 3'h6 == _io_deq_2_valid_T_1 ? buf_6_isRedirect : _GEN_2014; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_2031 = 3'h1 == _io_deq_3_valid_T_1 ? buf_1_pc : buf_0_pc; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_2032 = 3'h1 == _io_deq_3_valid_T_1 ? buf_1_instr : buf_0_instr; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_2033 = 3'h1 == _io_deq_3_valid_T_1 ? buf_1_isFault : buf_0_isFault; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_2034 = 3'h1 == _io_deq_3_valid_T_1 ? buf_1_isRedirect : buf_0_isRedirect; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_2036 = 3'h2 == _io_deq_3_valid_T_1 ? buf_2_pc : _GEN_2031; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_2037 = 3'h2 == _io_deq_3_valid_T_1 ? buf_2_instr : _GEN_2032; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_2038 = 3'h2 == _io_deq_3_valid_T_1 ? buf_2_isFault : _GEN_2033; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_2039 = 3'h2 == _io_deq_3_valid_T_1 ? buf_2_isRedirect : _GEN_2034; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_2041 = 3'h3 == _io_deq_3_valid_T_1 ? buf_3_pc : _GEN_2036; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_2042 = 3'h3 == _io_deq_3_valid_T_1 ? buf_3_instr : _GEN_2037; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_2043 = 3'h3 == _io_deq_3_valid_T_1 ? buf_3_isFault : _GEN_2038; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_2044 = 3'h3 == _io_deq_3_valid_T_1 ? buf_3_isRedirect : _GEN_2039; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_2046 = 3'h4 == _io_deq_3_valid_T_1 ? buf_4_pc : _GEN_2041; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_2047 = 3'h4 == _io_deq_3_valid_T_1 ? buf_4_instr : _GEN_2042; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_2048 = 3'h4 == _io_deq_3_valid_T_1 ? buf_4_isFault : _GEN_2043; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_2049 = 3'h4 == _io_deq_3_valid_T_1 ? buf_4_isRedirect : _GEN_2044; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_2051 = 3'h5 == _io_deq_3_valid_T_1 ? buf_5_pc : _GEN_2046; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_2052 = 3'h5 == _io_deq_3_valid_T_1 ? buf_5_instr : _GEN_2047; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_2053 = 3'h5 == _io_deq_3_valid_T_1 ? buf_5_isFault : _GEN_2048; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_2054 = 3'h5 == _io_deq_3_valid_T_1 ? buf_5_isRedirect : _GEN_2049; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_2056 = 3'h6 == _io_deq_3_valid_T_1 ? buf_6_pc : _GEN_2051; // @[MultiPortFifo.scala 114:{14,14}]
  wire [15:0] _GEN_2057 = 3'h6 == _io_deq_3_valid_T_1 ? buf_6_instr : _GEN_2052; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_2058 = 3'h6 == _io_deq_3_valid_T_1 ? buf_6_isFault : _GEN_2053; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_2059 = 3'h6 == _io_deq_3_valid_T_1 ? buf_6_isRedirect : _GEN_2054; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _T_39 = ~reset; // @[MultiPortFifo.scala 161:13]
  assign io_enq_0_ready = ~_GEN_7; // @[MultiPortFifo.scala 64:94]
  assign io_enq_1_ready = ~_GEN_15; // @[MultiPortFifo.scala 64:94]
  assign io_enq_2_ready = ~_GEN_23; // @[MultiPortFifo.scala 64:94]
  assign io_enq_3_ready = ~_GEN_31; // @[MultiPortFifo.scala 64:94]
  assign io_deq_0_valid = 3'h7 == _io_deq_0_valid_T[2:0] ? buf_valid_7 : _GEN_38; // @[MultiPortFifo.scala 65:{94,94}]
  assign io_deq_0_bits_pc = 3'h7 == _io_deq_0_valid_T[2:0] ? buf_7_pc : _GEN_1936; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_instr = 3'h7 == _io_deq_0_valid_T[2:0] ? buf_7_instr : _GEN_1937; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_isRedirect = 3'h7 == _io_deq_0_valid_T[2:0] ? buf_7_isRedirect : _GEN_1939; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_1_valid = 3'h7 == _io_deq_1_valid_T_1 ? buf_valid_7 : _GEN_46; // @[MultiPortFifo.scala 65:{94,94}]
  assign io_deq_1_bits_pc = 3'h7 == _io_deq_1_valid_T_1 ? buf_7_pc : _GEN_1976; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_1_bits_instr = 3'h7 == _io_deq_1_valid_T_1 ? buf_7_instr : _GEN_1977; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_1_bits_isFault = 3'h7 == _io_deq_1_valid_T_1 ? buf_7_isFault : _GEN_1978; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_1_bits_isRedirect = 3'h7 == _io_deq_1_valid_T_1 ? buf_7_isRedirect : _GEN_1979; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_2_valid = 3'h7 == _io_deq_2_valid_T_1 ? buf_valid_7 : _GEN_54; // @[MultiPortFifo.scala 65:{94,94}]
  assign io_deq_2_bits_pc = 3'h7 == _io_deq_2_valid_T_1 ? buf_7_pc : _GEN_2016; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_2_bits_instr = 3'h7 == _io_deq_2_valid_T_1 ? buf_7_instr : _GEN_2017; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_2_bits_isFault = 3'h7 == _io_deq_2_valid_T_1 ? buf_7_isFault : _GEN_2018; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_2_bits_isRedirect = 3'h7 == _io_deq_2_valid_T_1 ? buf_7_isRedirect : _GEN_2019; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_3_valid = 3'h7 == _io_deq_3_valid_T_1 ? buf_valid_7 : _GEN_62; // @[MultiPortFifo.scala 65:{94,94}]
  assign io_deq_3_bits_pc = 3'h7 == _io_deq_3_valid_T_1 ? buf_7_pc : _GEN_2056; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_3_bits_instr = 3'h7 == _io_deq_3_valid_T_1 ? buf_7_instr : _GEN_2057; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_3_bits_isFault = 3'h7 == _io_deq_3_valid_T_1 ? buf_7_isFault : _GEN_2058; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_3_bits_isRedirect = 3'h7 == _io_deq_3_valid_T_1 ? buf_7_isRedirect : _GEN_2059; // @[MultiPortFifo.scala 114:{14,14}]
  always @(posedge clock) begin
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h0 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_0_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else if (3'h0 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_0_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else if (3'h0 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_0_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_0_pc <= _GEN_1480;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h0 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_0_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else if (3'h0 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_0_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else if (3'h0 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_0_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_0_instr <= _GEN_1488;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h0 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_0_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else if (3'h0 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_0_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else if (3'h0 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_0_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_0_isFault <= _GEN_1496;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h0 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_0_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else if (3'h0 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_0_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else if (3'h0 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_0_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_0_isRedirect <= _GEN_1504;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h1 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_1_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else if (3'h1 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_1_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else if (3'h1 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_1_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_1_pc <= _GEN_1481;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h1 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_1_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else if (3'h1 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_1_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else if (3'h1 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_1_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_1_instr <= _GEN_1489;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h1 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_1_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else if (3'h1 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_1_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else if (3'h1 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_1_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_1_isFault <= _GEN_1497;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h1 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_1_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else if (3'h1 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_1_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else if (3'h1 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_1_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_1_isRedirect <= _GEN_1505;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h2 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_2_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else if (3'h2 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_2_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else if (3'h2 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_2_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_2_pc <= _GEN_1482;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h2 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_2_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else if (3'h2 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_2_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else if (3'h2 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_2_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_2_instr <= _GEN_1490;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h2 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_2_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else if (3'h2 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_2_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else if (3'h2 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_2_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_2_isFault <= _GEN_1498;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h2 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_2_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else if (3'h2 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_2_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else if (3'h2 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_2_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_2_isRedirect <= _GEN_1506;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_3_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else if (3'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_3_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else if (3'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_3_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_3_pc <= _GEN_1483;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_3_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else if (3'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_3_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else if (3'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_3_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_3_instr <= _GEN_1491;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_3_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else if (3'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_3_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else if (3'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_3_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_3_isFault <= _GEN_1499;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_3_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else if (3'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_3_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else if (3'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_3_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_3_isRedirect <= _GEN_1507;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h4 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_4_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else if (3'h4 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_4_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else if (3'h4 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_4_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_4_pc <= _GEN_1484;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h4 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_4_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else if (3'h4 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_4_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else if (3'h4 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_4_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_4_instr <= _GEN_1492;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h4 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_4_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else if (3'h4 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_4_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else if (3'h4 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_4_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_4_isFault <= _GEN_1500;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h4 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_4_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else if (3'h4 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_4_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else if (3'h4 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_4_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_4_isRedirect <= _GEN_1508;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h5 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_5_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else if (3'h5 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_5_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else if (3'h5 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_5_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_5_pc <= _GEN_1485;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h5 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_5_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else if (3'h5 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_5_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else if (3'h5 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_5_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_5_instr <= _GEN_1493;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h5 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_5_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else if (3'h5 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_5_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else if (3'h5 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_5_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_5_isFault <= _GEN_1501;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h5 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_5_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else if (3'h5 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_5_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else if (3'h5 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_5_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_5_isRedirect <= _GEN_1509;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h6 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_6_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else if (3'h6 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_6_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else if (3'h6 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_6_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_6_pc <= _GEN_1486;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h6 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_6_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else if (3'h6 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_6_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else if (3'h6 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_6_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_6_instr <= _GEN_1494;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h6 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_6_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else if (3'h6 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_6_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else if (3'h6 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_6_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_6_isFault <= _GEN_1502;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h6 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_6_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else if (3'h6 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_6_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else if (3'h6 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_6_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_6_isRedirect <= _GEN_1510;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h7 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_7_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else if (3'h7 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_7_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else if (3'h7 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_7_pc <= _buf_T_25_pc; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_7_pc <= _GEN_1487;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h7 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_7_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else if (3'h7 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_7_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else if (3'h7 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_7_instr <= _buf_T_25_instr; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_7_instr <= _GEN_1495;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h7 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_7_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else if (3'h7 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_7_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else if (3'h7 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_7_isFault <= _buf_T_25_isFault; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_7_isFault <= _GEN_1503;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (3'h7 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_7_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else if (3'h7 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_7_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else if (3'h7 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_7_isRedirect <= _buf_T_25_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_7_isRedirect <= _GEN_1511;
      end
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 88:54]
    end else if (_T_7) begin // @[MultiPortFifo.scala 98:34]
      if (3'h0 == _io_deq_3_valid_T_1) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_0 <= _GEN_1752;
      end
    end else begin
      buf_valid_0 <= _GEN_1752;
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 88:54]
    end else if (_T_7) begin // @[MultiPortFifo.scala 98:34]
      if (3'h1 == _io_deq_3_valid_T_1) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_1 <= _GEN_1753;
      end
    end else begin
      buf_valid_1 <= _GEN_1753;
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_2 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      buf_valid_2 <= 1'h0; // @[MultiPortFifo.scala 88:54]
    end else if (_T_7) begin // @[MultiPortFifo.scala 98:34]
      if (3'h2 == _io_deq_3_valid_T_1) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_2 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_2 <= _GEN_1754;
      end
    end else begin
      buf_valid_2 <= _GEN_1754;
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_3 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      buf_valid_3 <= 1'h0; // @[MultiPortFifo.scala 88:54]
    end else if (_T_7) begin // @[MultiPortFifo.scala 98:34]
      if (3'h3 == _io_deq_3_valid_T_1) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_3 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_3 <= _GEN_1755;
      end
    end else begin
      buf_valid_3 <= _GEN_1755;
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_4 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      buf_valid_4 <= 1'h0; // @[MultiPortFifo.scala 88:54]
    end else if (_T_7) begin // @[MultiPortFifo.scala 98:34]
      if (3'h4 == _io_deq_3_valid_T_1) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_4 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_4 <= _GEN_1756;
      end
    end else begin
      buf_valid_4 <= _GEN_1756;
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_5 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      buf_valid_5 <= 1'h0; // @[MultiPortFifo.scala 88:54]
    end else if (_T_7) begin // @[MultiPortFifo.scala 98:34]
      if (3'h5 == _io_deq_3_valid_T_1) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_5 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_5 <= _GEN_1757;
      end
    end else begin
      buf_valid_5 <= _GEN_1757;
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_6 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      buf_valid_6 <= 1'h0; // @[MultiPortFifo.scala 88:54]
    end else if (_T_7) begin // @[MultiPortFifo.scala 98:34]
      if (3'h6 == _io_deq_3_valid_T_1) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_6 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_6 <= _GEN_1758;
      end
    end else begin
      buf_valid_6 <= _GEN_1758;
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_7 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      buf_valid_7 <= 1'h0; // @[MultiPortFifo.scala 88:54]
    end else if (_T_7) begin // @[MultiPortFifo.scala 98:34]
      if (3'h7 == _io_deq_3_valid_T_1) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_7 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_7 <= _GEN_1759;
      end
    end else begin
      buf_valid_7 <= _GEN_1759;
    end
    if (reset) begin // @[MultiPortFifo.scala 60:27]
      rd_ptr <= 3'h0; // @[MultiPortFifo.scala 60:27]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      rd_ptr <= 3'h0; // @[MultiPortFifo.scala 89:16]
    end else begin
      rd_ptr <= _rd_ptr_T_5; // @[MultiPortFifo.scala 106:16]
    end
    if (reset) begin // @[MultiPortFifo.scala 61:27]
      wr_ptr <= 3'h0; // @[MultiPortFifo.scala 61:27]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      wr_ptr <= 3'h0; // @[MultiPortFifo.scala 90:16]
    end else begin
      wr_ptr <= _wr_ptr_T_5; // @[MultiPortFifo.scala 107:16]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_0_valid & ~io_enq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_0_valid & ~io_enq_0_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_1_valid & ~io_enq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_1_valid & ~io_enq_0_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_1_valid & ~io_enq_1_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_1_valid & ~io_enq_1_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_2_valid & ~io_enq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_2_valid & ~io_enq_0_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_2_valid & ~io_enq_1_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_2_valid & ~io_enq_1_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_2_valid & ~io_enq_2_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_2_valid & ~io_enq_2_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_3_valid & ~io_enq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_3_valid & ~io_enq_0_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_3_valid & ~io_enq_1_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_3_valid & ~io_enq_1_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_3_valid & ~io_enq_2_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_3_valid & ~io_enq_2_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_3_valid & ~io_enq_3_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_3_valid & ~io_enq_3_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_39 & ~(~(io_deq_0_valid & ~io_deq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! out port illegal\n    at MultiPortFifo.scala:164 assert( !(io.deq(i).valid === true.B && io.deq(j).valid === false.B && i.U >= j.U), \"Assert Fail! out port illegal\")\n"
            ); // @[MultiPortFifo.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_deq_0_valid & ~io_deq_0_valid)) & _T_39) begin
          $fatal; // @[MultiPortFifo.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_39 & ~(~(io_deq_1_valid & ~io_deq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! out port illegal\n    at MultiPortFifo.scala:164 assert( !(io.deq(i).valid === true.B && io.deq(j).valid === false.B && i.U >= j.U), \"Assert Fail! out port illegal\")\n"
            ); // @[MultiPortFifo.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_deq_1_valid & ~io_deq_0_valid)) & _T_39) begin
          $fatal; // @[MultiPortFifo.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_39 & ~(~(io_deq_1_valid & ~io_deq_1_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! out port illegal\n    at MultiPortFifo.scala:164 assert( !(io.deq(i).valid === true.B && io.deq(j).valid === false.B && i.U >= j.U), \"Assert Fail! out port illegal\")\n"
            ); // @[MultiPortFifo.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_deq_1_valid & ~io_deq_1_valid)) & _T_39) begin
          $fatal; // @[MultiPortFifo.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_39 & ~(~(io_deq_2_valid & ~io_deq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! out port illegal\n    at MultiPortFifo.scala:164 assert( !(io.deq(i).valid === true.B && io.deq(j).valid === false.B && i.U >= j.U), \"Assert Fail! out port illegal\")\n"
            ); // @[MultiPortFifo.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_deq_2_valid & ~io_deq_0_valid)) & _T_39) begin
          $fatal; // @[MultiPortFifo.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_39 & ~(~(io_deq_2_valid & ~io_deq_1_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! out port illegal\n    at MultiPortFifo.scala:164 assert( !(io.deq(i).valid === true.B && io.deq(j).valid === false.B && i.U >= j.U), \"Assert Fail! out port illegal\")\n"
            ); // @[MultiPortFifo.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_deq_2_valid & ~io_deq_1_valid)) & _T_39) begin
          $fatal; // @[MultiPortFifo.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_39 & ~(~(io_deq_2_valid & ~io_deq_2_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! out port illegal\n    at MultiPortFifo.scala:164 assert( !(io.deq(i).valid === true.B && io.deq(j).valid === false.B && i.U >= j.U), \"Assert Fail! out port illegal\")\n"
            ); // @[MultiPortFifo.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_deq_2_valid & ~io_deq_2_valid)) & _T_39) begin
          $fatal; // @[MultiPortFifo.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_39 & ~(~(io_deq_3_valid & ~io_deq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! out port illegal\n    at MultiPortFifo.scala:164 assert( !(io.deq(i).valid === true.B && io.deq(j).valid === false.B && i.U >= j.U), \"Assert Fail! out port illegal\")\n"
            ); // @[MultiPortFifo.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_deq_3_valid & ~io_deq_0_valid)) & _T_39) begin
          $fatal; // @[MultiPortFifo.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_39 & ~(~(io_deq_3_valid & ~io_deq_1_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! out port illegal\n    at MultiPortFifo.scala:164 assert( !(io.deq(i).valid === true.B && io.deq(j).valid === false.B && i.U >= j.U), \"Assert Fail! out port illegal\")\n"
            ); // @[MultiPortFifo.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_deq_3_valid & ~io_deq_1_valid)) & _T_39) begin
          $fatal; // @[MultiPortFifo.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_39 & ~(~(io_deq_3_valid & ~io_deq_2_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! out port illegal\n    at MultiPortFifo.scala:164 assert( !(io.deq(i).valid === true.B && io.deq(j).valid === false.B && i.U >= j.U), \"Assert Fail! out port illegal\")\n"
            ); // @[MultiPortFifo.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_deq_3_valid & ~io_deq_2_valid)) & _T_39) begin
          $fatal; // @[MultiPortFifo.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_39 & ~(~(io_deq_3_valid & ~io_deq_3_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! out port illegal\n    at MultiPortFifo.scala:164 assert( !(io.deq(i).valid === true.B && io.deq(j).valid === false.B && i.U >= j.U), \"Assert Fail! out port illegal\")\n"
            ); // @[MultiPortFifo.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_deq_3_valid & ~io_deq_3_valid)) & _T_39) begin
          $fatal; // @[MultiPortFifo.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_8 & _T_39 & ~_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, illegal multi-port-fifo behavior\n    at MultiPortFifo.scala:169 assert( io.enq(j).fire, \"Assert Failed, illegal multi-port-fifo behavior\" )\n"
            ); // @[MultiPortFifo.scala 169:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T & (_T_8 & _T_39)) begin
          $fatal; // @[MultiPortFifo.scala 169:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_16 & _T_39 & ~_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, illegal multi-port-fifo behavior\n    at MultiPortFifo.scala:169 assert( io.enq(j).fire, \"Assert Failed, illegal multi-port-fifo behavior\" )\n"
            ); // @[MultiPortFifo.scala 169:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T & (_T_16 & _T_39)) begin
          $fatal; // @[MultiPortFifo.scala 169:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_16 & _T_39 & ~_T_8) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, illegal multi-port-fifo behavior\n    at MultiPortFifo.scala:169 assert( io.enq(j).fire, \"Assert Failed, illegal multi-port-fifo behavior\" )\n"
            ); // @[MultiPortFifo.scala 169:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_8 & (_T_16 & _T_39)) begin
          $fatal; // @[MultiPortFifo.scala 169:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_24 & _T_39 & ~_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, illegal multi-port-fifo behavior\n    at MultiPortFifo.scala:169 assert( io.enq(j).fire, \"Assert Failed, illegal multi-port-fifo behavior\" )\n"
            ); // @[MultiPortFifo.scala 169:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T & (_T_24 & _T_39)) begin
          $fatal; // @[MultiPortFifo.scala 169:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_24 & _T_39 & ~_T_8) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, illegal multi-port-fifo behavior\n    at MultiPortFifo.scala:169 assert( io.enq(j).fire, \"Assert Failed, illegal multi-port-fifo behavior\" )\n"
            ); // @[MultiPortFifo.scala 169:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_8 & (_T_24 & _T_39)) begin
          $fatal; // @[MultiPortFifo.scala 169:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_24 & _T_39 & ~_T_16) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, illegal multi-port-fifo behavior\n    at MultiPortFifo.scala:169 assert( io.enq(j).fire, \"Assert Failed, illegal multi-port-fifo behavior\" )\n"
            ); // @[MultiPortFifo.scala 169:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_16 & (_T_24 & _T_39)) begin
          $fatal; // @[MultiPortFifo.scala 169:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_3 & _T_39 & ~_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, illegal multi-port-fifo behavior\n    at MultiPortFifo.scala:177 assert( io.deq(j).fire, \"Assert Failed, illegal multi-port-fifo behavior\" )\n"
            ); // @[MultiPortFifo.scala 177:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1 & (_T_3 & _T_39)) begin
          $fatal; // @[MultiPortFifo.scala 177:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_5 & _T_39 & ~_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, illegal multi-port-fifo behavior\n    at MultiPortFifo.scala:177 assert( io.deq(j).fire, \"Assert Failed, illegal multi-port-fifo behavior\" )\n"
            ); // @[MultiPortFifo.scala 177:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1 & (_T_5 & _T_39)) begin
          $fatal; // @[MultiPortFifo.scala 177:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_5 & _T_39 & ~_T_3) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, illegal multi-port-fifo behavior\n    at MultiPortFifo.scala:177 assert( io.deq(j).fire, \"Assert Failed, illegal multi-port-fifo behavior\" )\n"
            ); // @[MultiPortFifo.scala 177:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_3 & (_T_5 & _T_39)) begin
          $fatal; // @[MultiPortFifo.scala 177:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_7 & _T_39 & ~_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, illegal multi-port-fifo behavior\n    at MultiPortFifo.scala:177 assert( io.deq(j).fire, \"Assert Failed, illegal multi-port-fifo behavior\" )\n"
            ); // @[MultiPortFifo.scala 177:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1 & (_T_7 & _T_39)) begin
          $fatal; // @[MultiPortFifo.scala 177:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_7 & _T_39 & ~_T_3) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, illegal multi-port-fifo behavior\n    at MultiPortFifo.scala:177 assert( io.deq(j).fire, \"Assert Failed, illegal multi-port-fifo behavior\" )\n"
            ); // @[MultiPortFifo.scala 177:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_3 & (_T_7 & _T_39)) begin
          $fatal; // @[MultiPortFifo.scala 177:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_7 & _T_39 & ~_T_5) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, illegal multi-port-fifo behavior\n    at MultiPortFifo.scala:177 assert( io.deq(j).fire, \"Assert Failed, illegal multi-port-fifo behavior\" )\n"
            ); // @[MultiPortFifo.scala 177:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_5 & (_T_7 & _T_39)) begin
          $fatal; // @[MultiPortFifo.scala 177:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {2{`RANDOM}};
  buf_0_pc = _RAND_0[38:0];
  _RAND_1 = {1{`RANDOM}};
  buf_0_instr = _RAND_1[15:0];
  _RAND_2 = {1{`RANDOM}};
  buf_0_isFault = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  buf_0_isRedirect = _RAND_3[0:0];
  _RAND_4 = {2{`RANDOM}};
  buf_1_pc = _RAND_4[38:0];
  _RAND_5 = {1{`RANDOM}};
  buf_1_instr = _RAND_5[15:0];
  _RAND_6 = {1{`RANDOM}};
  buf_1_isFault = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  buf_1_isRedirect = _RAND_7[0:0];
  _RAND_8 = {2{`RANDOM}};
  buf_2_pc = _RAND_8[38:0];
  _RAND_9 = {1{`RANDOM}};
  buf_2_instr = _RAND_9[15:0];
  _RAND_10 = {1{`RANDOM}};
  buf_2_isFault = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  buf_2_isRedirect = _RAND_11[0:0];
  _RAND_12 = {2{`RANDOM}};
  buf_3_pc = _RAND_12[38:0];
  _RAND_13 = {1{`RANDOM}};
  buf_3_instr = _RAND_13[15:0];
  _RAND_14 = {1{`RANDOM}};
  buf_3_isFault = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  buf_3_isRedirect = _RAND_15[0:0];
  _RAND_16 = {2{`RANDOM}};
  buf_4_pc = _RAND_16[38:0];
  _RAND_17 = {1{`RANDOM}};
  buf_4_instr = _RAND_17[15:0];
  _RAND_18 = {1{`RANDOM}};
  buf_4_isFault = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  buf_4_isRedirect = _RAND_19[0:0];
  _RAND_20 = {2{`RANDOM}};
  buf_5_pc = _RAND_20[38:0];
  _RAND_21 = {1{`RANDOM}};
  buf_5_instr = _RAND_21[15:0];
  _RAND_22 = {1{`RANDOM}};
  buf_5_isFault = _RAND_22[0:0];
  _RAND_23 = {1{`RANDOM}};
  buf_5_isRedirect = _RAND_23[0:0];
  _RAND_24 = {2{`RANDOM}};
  buf_6_pc = _RAND_24[38:0];
  _RAND_25 = {1{`RANDOM}};
  buf_6_instr = _RAND_25[15:0];
  _RAND_26 = {1{`RANDOM}};
  buf_6_isFault = _RAND_26[0:0];
  _RAND_27 = {1{`RANDOM}};
  buf_6_isRedirect = _RAND_27[0:0];
  _RAND_28 = {2{`RANDOM}};
  buf_7_pc = _RAND_28[38:0];
  _RAND_29 = {1{`RANDOM}};
  buf_7_instr = _RAND_29[15:0];
  _RAND_30 = {1{`RANDOM}};
  buf_7_isFault = _RAND_30[0:0];
  _RAND_31 = {1{`RANDOM}};
  buf_7_isRedirect = _RAND_31[0:0];
  _RAND_32 = {1{`RANDOM}};
  buf_valid_0 = _RAND_32[0:0];
  _RAND_33 = {1{`RANDOM}};
  buf_valid_1 = _RAND_33[0:0];
  _RAND_34 = {1{`RANDOM}};
  buf_valid_2 = _RAND_34[0:0];
  _RAND_35 = {1{`RANDOM}};
  buf_valid_3 = _RAND_35[0:0];
  _RAND_36 = {1{`RANDOM}};
  buf_valid_4 = _RAND_36[0:0];
  _RAND_37 = {1{`RANDOM}};
  buf_valid_5 = _RAND_37[0:0];
  _RAND_38 = {1{`RANDOM}};
  buf_valid_6 = _RAND_38[0:0];
  _RAND_39 = {1{`RANDOM}};
  buf_valid_7 = _RAND_39[0:0];
  _RAND_40 = {1{`RANDOM}};
  rd_ptr = _RAND_40[2:0];
  _RAND_41 = {1{`RANDOM}};
  wr_ptr = _RAND_41[2:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module DatRAM(
  input        clock,
  input  [1:0] io_addrr,
  input  [1:0] io_addrw,
  input  [7:0] io_dataw_0,
  input  [7:0] io_dataw_1,
  input  [7:0] io_dataw_2,
  input  [7:0] io_dataw_3,
  input  [7:0] io_dataw_4,
  input  [7:0] io_dataw_5,
  input  [7:0] io_dataw_6,
  input  [7:0] io_dataw_7,
  input  [7:0] io_dataw_8,
  input  [7:0] io_dataw_9,
  input  [7:0] io_dataw_10,
  input  [7:0] io_dataw_11,
  input  [7:0] io_dataw_12,
  input  [7:0] io_dataw_13,
  input  [7:0] io_dataw_14,
  input  [7:0] io_dataw_15,
  input        io_datawm_0,
  input        io_datawm_1,
  input        io_datawm_2,
  input        io_datawm_3,
  input        io_datawm_4,
  input        io_datawm_5,
  input        io_datawm_6,
  input        io_datawm_7,
  input        io_datawm_8,
  input        io_datawm_9,
  input        io_datawm_10,
  input        io_datawm_11,
  input        io_datawm_12,
  input        io_datawm_13,
  input        io_datawm_14,
  input        io_datawm_15,
  output [7:0] io_datar_0,
  output [7:0] io_datar_1,
  output [7:0] io_datar_2,
  output [7:0] io_datar_3,
  output [7:0] io_datar_4,
  output [7:0] io_datar_5,
  output [7:0] io_datar_6,
  output [7:0] io_datar_7,
  output [7:0] io_datar_8,
  output [7:0] io_datar_9,
  output [7:0] io_datar_10,
  output [7:0] io_datar_11,
  output [7:0] io_datar_12,
  output [7:0] io_datar_13,
  output [7:0] io_datar_14,
  output [7:0] io_datar_15,
  input        io_enw,
  input        io_enr
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_33;
  reg [31:0] _RAND_36;
  reg [31:0] _RAND_39;
  reg [31:0] _RAND_42;
  reg [31:0] _RAND_45;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
  reg [31:0] _RAND_34;
  reg [31:0] _RAND_35;
  reg [31:0] _RAND_37;
  reg [31:0] _RAND_38;
  reg [31:0] _RAND_40;
  reg [31:0] _RAND_41;
  reg [31:0] _RAND_43;
  reg [31:0] _RAND_44;
  reg [31:0] _RAND_46;
  reg [31:0] _RAND_47;
`endif // RANDOMIZE_REG_INIT
  reg [7:0] datMem_0 [0:3]; // @[CacheRAM.scala 46:27]
  wire  datMem_0_MPORT_en; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_0_MPORT_addr; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_0_MPORT_data; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_0_MPORT_1_data; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_0_MPORT_1_addr; // @[CacheRAM.scala 46:27]
  wire  datMem_0_MPORT_1_mask; // @[CacheRAM.scala 46:27]
  wire  datMem_0_MPORT_1_en; // @[CacheRAM.scala 46:27]
  reg  datMem_0_MPORT_en_pipe_0;
  reg [1:0] datMem_0_MPORT_addr_pipe_0;
  reg [7:0] datMem_1 [0:3]; // @[CacheRAM.scala 46:27]
  wire  datMem_1_MPORT_en; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_1_MPORT_addr; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_1_MPORT_data; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_1_MPORT_1_data; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_1_MPORT_1_addr; // @[CacheRAM.scala 46:27]
  wire  datMem_1_MPORT_1_mask; // @[CacheRAM.scala 46:27]
  wire  datMem_1_MPORT_1_en; // @[CacheRAM.scala 46:27]
  reg  datMem_1_MPORT_en_pipe_0;
  reg [1:0] datMem_1_MPORT_addr_pipe_0;
  reg [7:0] datMem_2 [0:3]; // @[CacheRAM.scala 46:27]
  wire  datMem_2_MPORT_en; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_2_MPORT_addr; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_2_MPORT_data; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_2_MPORT_1_data; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_2_MPORT_1_addr; // @[CacheRAM.scala 46:27]
  wire  datMem_2_MPORT_1_mask; // @[CacheRAM.scala 46:27]
  wire  datMem_2_MPORT_1_en; // @[CacheRAM.scala 46:27]
  reg  datMem_2_MPORT_en_pipe_0;
  reg [1:0] datMem_2_MPORT_addr_pipe_0;
  reg [7:0] datMem_3 [0:3]; // @[CacheRAM.scala 46:27]
  wire  datMem_3_MPORT_en; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_3_MPORT_addr; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_3_MPORT_data; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_3_MPORT_1_data; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_3_MPORT_1_addr; // @[CacheRAM.scala 46:27]
  wire  datMem_3_MPORT_1_mask; // @[CacheRAM.scala 46:27]
  wire  datMem_3_MPORT_1_en; // @[CacheRAM.scala 46:27]
  reg  datMem_3_MPORT_en_pipe_0;
  reg [1:0] datMem_3_MPORT_addr_pipe_0;
  reg [7:0] datMem_4 [0:3]; // @[CacheRAM.scala 46:27]
  wire  datMem_4_MPORT_en; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_4_MPORT_addr; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_4_MPORT_data; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_4_MPORT_1_data; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_4_MPORT_1_addr; // @[CacheRAM.scala 46:27]
  wire  datMem_4_MPORT_1_mask; // @[CacheRAM.scala 46:27]
  wire  datMem_4_MPORT_1_en; // @[CacheRAM.scala 46:27]
  reg  datMem_4_MPORT_en_pipe_0;
  reg [1:0] datMem_4_MPORT_addr_pipe_0;
  reg [7:0] datMem_5 [0:3]; // @[CacheRAM.scala 46:27]
  wire  datMem_5_MPORT_en; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_5_MPORT_addr; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_5_MPORT_data; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_5_MPORT_1_data; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_5_MPORT_1_addr; // @[CacheRAM.scala 46:27]
  wire  datMem_5_MPORT_1_mask; // @[CacheRAM.scala 46:27]
  wire  datMem_5_MPORT_1_en; // @[CacheRAM.scala 46:27]
  reg  datMem_5_MPORT_en_pipe_0;
  reg [1:0] datMem_5_MPORT_addr_pipe_0;
  reg [7:0] datMem_6 [0:3]; // @[CacheRAM.scala 46:27]
  wire  datMem_6_MPORT_en; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_6_MPORT_addr; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_6_MPORT_data; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_6_MPORT_1_data; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_6_MPORT_1_addr; // @[CacheRAM.scala 46:27]
  wire  datMem_6_MPORT_1_mask; // @[CacheRAM.scala 46:27]
  wire  datMem_6_MPORT_1_en; // @[CacheRAM.scala 46:27]
  reg  datMem_6_MPORT_en_pipe_0;
  reg [1:0] datMem_6_MPORT_addr_pipe_0;
  reg [7:0] datMem_7 [0:3]; // @[CacheRAM.scala 46:27]
  wire  datMem_7_MPORT_en; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_7_MPORT_addr; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_7_MPORT_data; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_7_MPORT_1_data; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_7_MPORT_1_addr; // @[CacheRAM.scala 46:27]
  wire  datMem_7_MPORT_1_mask; // @[CacheRAM.scala 46:27]
  wire  datMem_7_MPORT_1_en; // @[CacheRAM.scala 46:27]
  reg  datMem_7_MPORT_en_pipe_0;
  reg [1:0] datMem_7_MPORT_addr_pipe_0;
  reg [7:0] datMem_8 [0:3]; // @[CacheRAM.scala 46:27]
  wire  datMem_8_MPORT_en; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_8_MPORT_addr; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_8_MPORT_data; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_8_MPORT_1_data; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_8_MPORT_1_addr; // @[CacheRAM.scala 46:27]
  wire  datMem_8_MPORT_1_mask; // @[CacheRAM.scala 46:27]
  wire  datMem_8_MPORT_1_en; // @[CacheRAM.scala 46:27]
  reg  datMem_8_MPORT_en_pipe_0;
  reg [1:0] datMem_8_MPORT_addr_pipe_0;
  reg [7:0] datMem_9 [0:3]; // @[CacheRAM.scala 46:27]
  wire  datMem_9_MPORT_en; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_9_MPORT_addr; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_9_MPORT_data; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_9_MPORT_1_data; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_9_MPORT_1_addr; // @[CacheRAM.scala 46:27]
  wire  datMem_9_MPORT_1_mask; // @[CacheRAM.scala 46:27]
  wire  datMem_9_MPORT_1_en; // @[CacheRAM.scala 46:27]
  reg  datMem_9_MPORT_en_pipe_0;
  reg [1:0] datMem_9_MPORT_addr_pipe_0;
  reg [7:0] datMem_10 [0:3]; // @[CacheRAM.scala 46:27]
  wire  datMem_10_MPORT_en; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_10_MPORT_addr; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_10_MPORT_data; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_10_MPORT_1_data; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_10_MPORT_1_addr; // @[CacheRAM.scala 46:27]
  wire  datMem_10_MPORT_1_mask; // @[CacheRAM.scala 46:27]
  wire  datMem_10_MPORT_1_en; // @[CacheRAM.scala 46:27]
  reg  datMem_10_MPORT_en_pipe_0;
  reg [1:0] datMem_10_MPORT_addr_pipe_0;
  reg [7:0] datMem_11 [0:3]; // @[CacheRAM.scala 46:27]
  wire  datMem_11_MPORT_en; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_11_MPORT_addr; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_11_MPORT_data; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_11_MPORT_1_data; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_11_MPORT_1_addr; // @[CacheRAM.scala 46:27]
  wire  datMem_11_MPORT_1_mask; // @[CacheRAM.scala 46:27]
  wire  datMem_11_MPORT_1_en; // @[CacheRAM.scala 46:27]
  reg  datMem_11_MPORT_en_pipe_0;
  reg [1:0] datMem_11_MPORT_addr_pipe_0;
  reg [7:0] datMem_12 [0:3]; // @[CacheRAM.scala 46:27]
  wire  datMem_12_MPORT_en; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_12_MPORT_addr; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_12_MPORT_data; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_12_MPORT_1_data; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_12_MPORT_1_addr; // @[CacheRAM.scala 46:27]
  wire  datMem_12_MPORT_1_mask; // @[CacheRAM.scala 46:27]
  wire  datMem_12_MPORT_1_en; // @[CacheRAM.scala 46:27]
  reg  datMem_12_MPORT_en_pipe_0;
  reg [1:0] datMem_12_MPORT_addr_pipe_0;
  reg [7:0] datMem_13 [0:3]; // @[CacheRAM.scala 46:27]
  wire  datMem_13_MPORT_en; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_13_MPORT_addr; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_13_MPORT_data; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_13_MPORT_1_data; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_13_MPORT_1_addr; // @[CacheRAM.scala 46:27]
  wire  datMem_13_MPORT_1_mask; // @[CacheRAM.scala 46:27]
  wire  datMem_13_MPORT_1_en; // @[CacheRAM.scala 46:27]
  reg  datMem_13_MPORT_en_pipe_0;
  reg [1:0] datMem_13_MPORT_addr_pipe_0;
  reg [7:0] datMem_14 [0:3]; // @[CacheRAM.scala 46:27]
  wire  datMem_14_MPORT_en; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_14_MPORT_addr; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_14_MPORT_data; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_14_MPORT_1_data; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_14_MPORT_1_addr; // @[CacheRAM.scala 46:27]
  wire  datMem_14_MPORT_1_mask; // @[CacheRAM.scala 46:27]
  wire  datMem_14_MPORT_1_en; // @[CacheRAM.scala 46:27]
  reg  datMem_14_MPORT_en_pipe_0;
  reg [1:0] datMem_14_MPORT_addr_pipe_0;
  reg [7:0] datMem_15 [0:3]; // @[CacheRAM.scala 46:27]
  wire  datMem_15_MPORT_en; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_15_MPORT_addr; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_15_MPORT_data; // @[CacheRAM.scala 46:27]
  wire [7:0] datMem_15_MPORT_1_data; // @[CacheRAM.scala 46:27]
  wire [1:0] datMem_15_MPORT_1_addr; // @[CacheRAM.scala 46:27]
  wire  datMem_15_MPORT_1_mask; // @[CacheRAM.scala 46:27]
  wire  datMem_15_MPORT_1_en; // @[CacheRAM.scala 46:27]
  reg  datMem_15_MPORT_en_pipe_0;
  reg [1:0] datMem_15_MPORT_addr_pipe_0;
  assign datMem_0_MPORT_en = datMem_0_MPORT_en_pipe_0;
  assign datMem_0_MPORT_addr = datMem_0_MPORT_addr_pipe_0;
  assign datMem_0_MPORT_data = datMem_0[datMem_0_MPORT_addr]; // @[CacheRAM.scala 46:27]
  assign datMem_0_MPORT_1_data = io_dataw_0;
  assign datMem_0_MPORT_1_addr = io_addrw;
  assign datMem_0_MPORT_1_mask = io_datawm_0;
  assign datMem_0_MPORT_1_en = io_enw;
  assign datMem_1_MPORT_en = datMem_1_MPORT_en_pipe_0;
  assign datMem_1_MPORT_addr = datMem_1_MPORT_addr_pipe_0;
  assign datMem_1_MPORT_data = datMem_1[datMem_1_MPORT_addr]; // @[CacheRAM.scala 46:27]
  assign datMem_1_MPORT_1_data = io_dataw_1;
  assign datMem_1_MPORT_1_addr = io_addrw;
  assign datMem_1_MPORT_1_mask = io_datawm_1;
  assign datMem_1_MPORT_1_en = io_enw;
  assign datMem_2_MPORT_en = datMem_2_MPORT_en_pipe_0;
  assign datMem_2_MPORT_addr = datMem_2_MPORT_addr_pipe_0;
  assign datMem_2_MPORT_data = datMem_2[datMem_2_MPORT_addr]; // @[CacheRAM.scala 46:27]
  assign datMem_2_MPORT_1_data = io_dataw_2;
  assign datMem_2_MPORT_1_addr = io_addrw;
  assign datMem_2_MPORT_1_mask = io_datawm_2;
  assign datMem_2_MPORT_1_en = io_enw;
  assign datMem_3_MPORT_en = datMem_3_MPORT_en_pipe_0;
  assign datMem_3_MPORT_addr = datMem_3_MPORT_addr_pipe_0;
  assign datMem_3_MPORT_data = datMem_3[datMem_3_MPORT_addr]; // @[CacheRAM.scala 46:27]
  assign datMem_3_MPORT_1_data = io_dataw_3;
  assign datMem_3_MPORT_1_addr = io_addrw;
  assign datMem_3_MPORT_1_mask = io_datawm_3;
  assign datMem_3_MPORT_1_en = io_enw;
  assign datMem_4_MPORT_en = datMem_4_MPORT_en_pipe_0;
  assign datMem_4_MPORT_addr = datMem_4_MPORT_addr_pipe_0;
  assign datMem_4_MPORT_data = datMem_4[datMem_4_MPORT_addr]; // @[CacheRAM.scala 46:27]
  assign datMem_4_MPORT_1_data = io_dataw_4;
  assign datMem_4_MPORT_1_addr = io_addrw;
  assign datMem_4_MPORT_1_mask = io_datawm_4;
  assign datMem_4_MPORT_1_en = io_enw;
  assign datMem_5_MPORT_en = datMem_5_MPORT_en_pipe_0;
  assign datMem_5_MPORT_addr = datMem_5_MPORT_addr_pipe_0;
  assign datMem_5_MPORT_data = datMem_5[datMem_5_MPORT_addr]; // @[CacheRAM.scala 46:27]
  assign datMem_5_MPORT_1_data = io_dataw_5;
  assign datMem_5_MPORT_1_addr = io_addrw;
  assign datMem_5_MPORT_1_mask = io_datawm_5;
  assign datMem_5_MPORT_1_en = io_enw;
  assign datMem_6_MPORT_en = datMem_6_MPORT_en_pipe_0;
  assign datMem_6_MPORT_addr = datMem_6_MPORT_addr_pipe_0;
  assign datMem_6_MPORT_data = datMem_6[datMem_6_MPORT_addr]; // @[CacheRAM.scala 46:27]
  assign datMem_6_MPORT_1_data = io_dataw_6;
  assign datMem_6_MPORT_1_addr = io_addrw;
  assign datMem_6_MPORT_1_mask = io_datawm_6;
  assign datMem_6_MPORT_1_en = io_enw;
  assign datMem_7_MPORT_en = datMem_7_MPORT_en_pipe_0;
  assign datMem_7_MPORT_addr = datMem_7_MPORT_addr_pipe_0;
  assign datMem_7_MPORT_data = datMem_7[datMem_7_MPORT_addr]; // @[CacheRAM.scala 46:27]
  assign datMem_7_MPORT_1_data = io_dataw_7;
  assign datMem_7_MPORT_1_addr = io_addrw;
  assign datMem_7_MPORT_1_mask = io_datawm_7;
  assign datMem_7_MPORT_1_en = io_enw;
  assign datMem_8_MPORT_en = datMem_8_MPORT_en_pipe_0;
  assign datMem_8_MPORT_addr = datMem_8_MPORT_addr_pipe_0;
  assign datMem_8_MPORT_data = datMem_8[datMem_8_MPORT_addr]; // @[CacheRAM.scala 46:27]
  assign datMem_8_MPORT_1_data = io_dataw_8;
  assign datMem_8_MPORT_1_addr = io_addrw;
  assign datMem_8_MPORT_1_mask = io_datawm_8;
  assign datMem_8_MPORT_1_en = io_enw;
  assign datMem_9_MPORT_en = datMem_9_MPORT_en_pipe_0;
  assign datMem_9_MPORT_addr = datMem_9_MPORT_addr_pipe_0;
  assign datMem_9_MPORT_data = datMem_9[datMem_9_MPORT_addr]; // @[CacheRAM.scala 46:27]
  assign datMem_9_MPORT_1_data = io_dataw_9;
  assign datMem_9_MPORT_1_addr = io_addrw;
  assign datMem_9_MPORT_1_mask = io_datawm_9;
  assign datMem_9_MPORT_1_en = io_enw;
  assign datMem_10_MPORT_en = datMem_10_MPORT_en_pipe_0;
  assign datMem_10_MPORT_addr = datMem_10_MPORT_addr_pipe_0;
  assign datMem_10_MPORT_data = datMem_10[datMem_10_MPORT_addr]; // @[CacheRAM.scala 46:27]
  assign datMem_10_MPORT_1_data = io_dataw_10;
  assign datMem_10_MPORT_1_addr = io_addrw;
  assign datMem_10_MPORT_1_mask = io_datawm_10;
  assign datMem_10_MPORT_1_en = io_enw;
  assign datMem_11_MPORT_en = datMem_11_MPORT_en_pipe_0;
  assign datMem_11_MPORT_addr = datMem_11_MPORT_addr_pipe_0;
  assign datMem_11_MPORT_data = datMem_11[datMem_11_MPORT_addr]; // @[CacheRAM.scala 46:27]
  assign datMem_11_MPORT_1_data = io_dataw_11;
  assign datMem_11_MPORT_1_addr = io_addrw;
  assign datMem_11_MPORT_1_mask = io_datawm_11;
  assign datMem_11_MPORT_1_en = io_enw;
  assign datMem_12_MPORT_en = datMem_12_MPORT_en_pipe_0;
  assign datMem_12_MPORT_addr = datMem_12_MPORT_addr_pipe_0;
  assign datMem_12_MPORT_data = datMem_12[datMem_12_MPORT_addr]; // @[CacheRAM.scala 46:27]
  assign datMem_12_MPORT_1_data = io_dataw_12;
  assign datMem_12_MPORT_1_addr = io_addrw;
  assign datMem_12_MPORT_1_mask = io_datawm_12;
  assign datMem_12_MPORT_1_en = io_enw;
  assign datMem_13_MPORT_en = datMem_13_MPORT_en_pipe_0;
  assign datMem_13_MPORT_addr = datMem_13_MPORT_addr_pipe_0;
  assign datMem_13_MPORT_data = datMem_13[datMem_13_MPORT_addr]; // @[CacheRAM.scala 46:27]
  assign datMem_13_MPORT_1_data = io_dataw_13;
  assign datMem_13_MPORT_1_addr = io_addrw;
  assign datMem_13_MPORT_1_mask = io_datawm_13;
  assign datMem_13_MPORT_1_en = io_enw;
  assign datMem_14_MPORT_en = datMem_14_MPORT_en_pipe_0;
  assign datMem_14_MPORT_addr = datMem_14_MPORT_addr_pipe_0;
  assign datMem_14_MPORT_data = datMem_14[datMem_14_MPORT_addr]; // @[CacheRAM.scala 46:27]
  assign datMem_14_MPORT_1_data = io_dataw_14;
  assign datMem_14_MPORT_1_addr = io_addrw;
  assign datMem_14_MPORT_1_mask = io_datawm_14;
  assign datMem_14_MPORT_1_en = io_enw;
  assign datMem_15_MPORT_en = datMem_15_MPORT_en_pipe_0;
  assign datMem_15_MPORT_addr = datMem_15_MPORT_addr_pipe_0;
  assign datMem_15_MPORT_data = datMem_15[datMem_15_MPORT_addr]; // @[CacheRAM.scala 46:27]
  assign datMem_15_MPORT_1_data = io_dataw_15;
  assign datMem_15_MPORT_1_addr = io_addrw;
  assign datMem_15_MPORT_1_mask = io_datawm_15;
  assign datMem_15_MPORT_1_en = io_enw;
  assign io_datar_0 = datMem_0_MPORT_data; // @[CacheRAM.scala 48:18 49:14]
  assign io_datar_1 = datMem_1_MPORT_data; // @[CacheRAM.scala 48:18 49:14]
  assign io_datar_2 = datMem_2_MPORT_data; // @[CacheRAM.scala 48:18 49:14]
  assign io_datar_3 = datMem_3_MPORT_data; // @[CacheRAM.scala 48:18 49:14]
  assign io_datar_4 = datMem_4_MPORT_data; // @[CacheRAM.scala 48:18 49:14]
  assign io_datar_5 = datMem_5_MPORT_data; // @[CacheRAM.scala 48:18 49:14]
  assign io_datar_6 = datMem_6_MPORT_data; // @[CacheRAM.scala 48:18 49:14]
  assign io_datar_7 = datMem_7_MPORT_data; // @[CacheRAM.scala 48:18 49:14]
  assign io_datar_8 = datMem_8_MPORT_data; // @[CacheRAM.scala 48:18 49:14]
  assign io_datar_9 = datMem_9_MPORT_data; // @[CacheRAM.scala 48:18 49:14]
  assign io_datar_10 = datMem_10_MPORT_data; // @[CacheRAM.scala 48:18 49:14]
  assign io_datar_11 = datMem_11_MPORT_data; // @[CacheRAM.scala 48:18 49:14]
  assign io_datar_12 = datMem_12_MPORT_data; // @[CacheRAM.scala 48:18 49:14]
  assign io_datar_13 = datMem_13_MPORT_data; // @[CacheRAM.scala 48:18 49:14]
  assign io_datar_14 = datMem_14_MPORT_data; // @[CacheRAM.scala 48:18 49:14]
  assign io_datar_15 = datMem_15_MPORT_data; // @[CacheRAM.scala 48:18 49:14]
  always @(posedge clock) begin
    if (datMem_0_MPORT_1_en & datMem_0_MPORT_1_mask) begin
      datMem_0[datMem_0_MPORT_1_addr] <= datMem_0_MPORT_1_data; // @[CacheRAM.scala 46:27]
    end
    datMem_0_MPORT_en_pipe_0 <= io_enr;
    if (io_enr) begin
      datMem_0_MPORT_addr_pipe_0 <= io_addrr;
    end
    if (datMem_1_MPORT_1_en & datMem_1_MPORT_1_mask) begin
      datMem_1[datMem_1_MPORT_1_addr] <= datMem_1_MPORT_1_data; // @[CacheRAM.scala 46:27]
    end
    datMem_1_MPORT_en_pipe_0 <= io_enr;
    if (io_enr) begin
      datMem_1_MPORT_addr_pipe_0 <= io_addrr;
    end
    if (datMem_2_MPORT_1_en & datMem_2_MPORT_1_mask) begin
      datMem_2[datMem_2_MPORT_1_addr] <= datMem_2_MPORT_1_data; // @[CacheRAM.scala 46:27]
    end
    datMem_2_MPORT_en_pipe_0 <= io_enr;
    if (io_enr) begin
      datMem_2_MPORT_addr_pipe_0 <= io_addrr;
    end
    if (datMem_3_MPORT_1_en & datMem_3_MPORT_1_mask) begin
      datMem_3[datMem_3_MPORT_1_addr] <= datMem_3_MPORT_1_data; // @[CacheRAM.scala 46:27]
    end
    datMem_3_MPORT_en_pipe_0 <= io_enr;
    if (io_enr) begin
      datMem_3_MPORT_addr_pipe_0 <= io_addrr;
    end
    if (datMem_4_MPORT_1_en & datMem_4_MPORT_1_mask) begin
      datMem_4[datMem_4_MPORT_1_addr] <= datMem_4_MPORT_1_data; // @[CacheRAM.scala 46:27]
    end
    datMem_4_MPORT_en_pipe_0 <= io_enr;
    if (io_enr) begin
      datMem_4_MPORT_addr_pipe_0 <= io_addrr;
    end
    if (datMem_5_MPORT_1_en & datMem_5_MPORT_1_mask) begin
      datMem_5[datMem_5_MPORT_1_addr] <= datMem_5_MPORT_1_data; // @[CacheRAM.scala 46:27]
    end
    datMem_5_MPORT_en_pipe_0 <= io_enr;
    if (io_enr) begin
      datMem_5_MPORT_addr_pipe_0 <= io_addrr;
    end
    if (datMem_6_MPORT_1_en & datMem_6_MPORT_1_mask) begin
      datMem_6[datMem_6_MPORT_1_addr] <= datMem_6_MPORT_1_data; // @[CacheRAM.scala 46:27]
    end
    datMem_6_MPORT_en_pipe_0 <= io_enr;
    if (io_enr) begin
      datMem_6_MPORT_addr_pipe_0 <= io_addrr;
    end
    if (datMem_7_MPORT_1_en & datMem_7_MPORT_1_mask) begin
      datMem_7[datMem_7_MPORT_1_addr] <= datMem_7_MPORT_1_data; // @[CacheRAM.scala 46:27]
    end
    datMem_7_MPORT_en_pipe_0 <= io_enr;
    if (io_enr) begin
      datMem_7_MPORT_addr_pipe_0 <= io_addrr;
    end
    if (datMem_8_MPORT_1_en & datMem_8_MPORT_1_mask) begin
      datMem_8[datMem_8_MPORT_1_addr] <= datMem_8_MPORT_1_data; // @[CacheRAM.scala 46:27]
    end
    datMem_8_MPORT_en_pipe_0 <= io_enr;
    if (io_enr) begin
      datMem_8_MPORT_addr_pipe_0 <= io_addrr;
    end
    if (datMem_9_MPORT_1_en & datMem_9_MPORT_1_mask) begin
      datMem_9[datMem_9_MPORT_1_addr] <= datMem_9_MPORT_1_data; // @[CacheRAM.scala 46:27]
    end
    datMem_9_MPORT_en_pipe_0 <= io_enr;
    if (io_enr) begin
      datMem_9_MPORT_addr_pipe_0 <= io_addrr;
    end
    if (datMem_10_MPORT_1_en & datMem_10_MPORT_1_mask) begin
      datMem_10[datMem_10_MPORT_1_addr] <= datMem_10_MPORT_1_data; // @[CacheRAM.scala 46:27]
    end
    datMem_10_MPORT_en_pipe_0 <= io_enr;
    if (io_enr) begin
      datMem_10_MPORT_addr_pipe_0 <= io_addrr;
    end
    if (datMem_11_MPORT_1_en & datMem_11_MPORT_1_mask) begin
      datMem_11[datMem_11_MPORT_1_addr] <= datMem_11_MPORT_1_data; // @[CacheRAM.scala 46:27]
    end
    datMem_11_MPORT_en_pipe_0 <= io_enr;
    if (io_enr) begin
      datMem_11_MPORT_addr_pipe_0 <= io_addrr;
    end
    if (datMem_12_MPORT_1_en & datMem_12_MPORT_1_mask) begin
      datMem_12[datMem_12_MPORT_1_addr] <= datMem_12_MPORT_1_data; // @[CacheRAM.scala 46:27]
    end
    datMem_12_MPORT_en_pipe_0 <= io_enr;
    if (io_enr) begin
      datMem_12_MPORT_addr_pipe_0 <= io_addrr;
    end
    if (datMem_13_MPORT_1_en & datMem_13_MPORT_1_mask) begin
      datMem_13[datMem_13_MPORT_1_addr] <= datMem_13_MPORT_1_data; // @[CacheRAM.scala 46:27]
    end
    datMem_13_MPORT_en_pipe_0 <= io_enr;
    if (io_enr) begin
      datMem_13_MPORT_addr_pipe_0 <= io_addrr;
    end
    if (datMem_14_MPORT_1_en & datMem_14_MPORT_1_mask) begin
      datMem_14[datMem_14_MPORT_1_addr] <= datMem_14_MPORT_1_data; // @[CacheRAM.scala 46:27]
    end
    datMem_14_MPORT_en_pipe_0 <= io_enr;
    if (io_enr) begin
      datMem_14_MPORT_addr_pipe_0 <= io_addrr;
    end
    if (datMem_15_MPORT_1_en & datMem_15_MPORT_1_mask) begin
      datMem_15[datMem_15_MPORT_1_addr] <= datMem_15_MPORT_1_data; // @[CacheRAM.scala 46:27]
    end
    datMem_15_MPORT_en_pipe_0 <= io_enr;
    if (io_enr) begin
      datMem_15_MPORT_addr_pipe_0 <= io_addrr;
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    datMem_0[initvar] = _RAND_0[7:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    datMem_1[initvar] = _RAND_3[7:0];
  _RAND_6 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    datMem_2[initvar] = _RAND_6[7:0];
  _RAND_9 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    datMem_3[initvar] = _RAND_9[7:0];
  _RAND_12 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    datMem_4[initvar] = _RAND_12[7:0];
  _RAND_15 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    datMem_5[initvar] = _RAND_15[7:0];
  _RAND_18 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    datMem_6[initvar] = _RAND_18[7:0];
  _RAND_21 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    datMem_7[initvar] = _RAND_21[7:0];
  _RAND_24 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    datMem_8[initvar] = _RAND_24[7:0];
  _RAND_27 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    datMem_9[initvar] = _RAND_27[7:0];
  _RAND_30 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    datMem_10[initvar] = _RAND_30[7:0];
  _RAND_33 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    datMem_11[initvar] = _RAND_33[7:0];
  _RAND_36 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    datMem_12[initvar] = _RAND_36[7:0];
  _RAND_39 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    datMem_13[initvar] = _RAND_39[7:0];
  _RAND_42 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    datMem_14[initvar] = _RAND_42[7:0];
  _RAND_45 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    datMem_15[initvar] = _RAND_45[7:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_1 = {1{`RANDOM}};
  datMem_0_MPORT_en_pipe_0 = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  datMem_0_MPORT_addr_pipe_0 = _RAND_2[1:0];
  _RAND_4 = {1{`RANDOM}};
  datMem_1_MPORT_en_pipe_0 = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  datMem_1_MPORT_addr_pipe_0 = _RAND_5[1:0];
  _RAND_7 = {1{`RANDOM}};
  datMem_2_MPORT_en_pipe_0 = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  datMem_2_MPORT_addr_pipe_0 = _RAND_8[1:0];
  _RAND_10 = {1{`RANDOM}};
  datMem_3_MPORT_en_pipe_0 = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  datMem_3_MPORT_addr_pipe_0 = _RAND_11[1:0];
  _RAND_13 = {1{`RANDOM}};
  datMem_4_MPORT_en_pipe_0 = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  datMem_4_MPORT_addr_pipe_0 = _RAND_14[1:0];
  _RAND_16 = {1{`RANDOM}};
  datMem_5_MPORT_en_pipe_0 = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  datMem_5_MPORT_addr_pipe_0 = _RAND_17[1:0];
  _RAND_19 = {1{`RANDOM}};
  datMem_6_MPORT_en_pipe_0 = _RAND_19[0:0];
  _RAND_20 = {1{`RANDOM}};
  datMem_6_MPORT_addr_pipe_0 = _RAND_20[1:0];
  _RAND_22 = {1{`RANDOM}};
  datMem_7_MPORT_en_pipe_0 = _RAND_22[0:0];
  _RAND_23 = {1{`RANDOM}};
  datMem_7_MPORT_addr_pipe_0 = _RAND_23[1:0];
  _RAND_25 = {1{`RANDOM}};
  datMem_8_MPORT_en_pipe_0 = _RAND_25[0:0];
  _RAND_26 = {1{`RANDOM}};
  datMem_8_MPORT_addr_pipe_0 = _RAND_26[1:0];
  _RAND_28 = {1{`RANDOM}};
  datMem_9_MPORT_en_pipe_0 = _RAND_28[0:0];
  _RAND_29 = {1{`RANDOM}};
  datMem_9_MPORT_addr_pipe_0 = _RAND_29[1:0];
  _RAND_31 = {1{`RANDOM}};
  datMem_10_MPORT_en_pipe_0 = _RAND_31[0:0];
  _RAND_32 = {1{`RANDOM}};
  datMem_10_MPORT_addr_pipe_0 = _RAND_32[1:0];
  _RAND_34 = {1{`RANDOM}};
  datMem_11_MPORT_en_pipe_0 = _RAND_34[0:0];
  _RAND_35 = {1{`RANDOM}};
  datMem_11_MPORT_addr_pipe_0 = _RAND_35[1:0];
  _RAND_37 = {1{`RANDOM}};
  datMem_12_MPORT_en_pipe_0 = _RAND_37[0:0];
  _RAND_38 = {1{`RANDOM}};
  datMem_12_MPORT_addr_pipe_0 = _RAND_38[1:0];
  _RAND_40 = {1{`RANDOM}};
  datMem_13_MPORT_en_pipe_0 = _RAND_40[0:0];
  _RAND_41 = {1{`RANDOM}};
  datMem_13_MPORT_addr_pipe_0 = _RAND_41[1:0];
  _RAND_43 = {1{`RANDOM}};
  datMem_14_MPORT_en_pipe_0 = _RAND_43[0:0];
  _RAND_44 = {1{`RANDOM}};
  datMem_14_MPORT_addr_pipe_0 = _RAND_44[1:0];
  _RAND_46 = {1{`RANDOM}};
  datMem_15_MPORT_en_pipe_0 = _RAND_46[0:0];
  _RAND_47 = {1{`RANDOM}};
  datMem_15_MPORT_addr_pipe_0 = _RAND_47[1:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TagRAM(
  input         clock,
  input  [1:0]  io_addrr,
  input  [1:0]  io_addrw,
  input  [25:0] io_dataw,
  output [25:0] io_datar,
  input         io_enw,
  input         io_enr
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
`endif // RANDOMIZE_REG_INIT
  reg [25:0] tagMem [0:3]; // @[CacheRAM.scala 152:27]
  wire  tagMem_io_datar_MPORT_en; // @[CacheRAM.scala 152:27]
  wire [1:0] tagMem_io_datar_MPORT_addr; // @[CacheRAM.scala 152:27]
  wire [25:0] tagMem_io_datar_MPORT_data; // @[CacheRAM.scala 152:27]
  wire [25:0] tagMem_MPORT_data; // @[CacheRAM.scala 152:27]
  wire [1:0] tagMem_MPORT_addr; // @[CacheRAM.scala 152:27]
  wire  tagMem_MPORT_mask; // @[CacheRAM.scala 152:27]
  wire  tagMem_MPORT_en; // @[CacheRAM.scala 152:27]
  reg  tagMem_io_datar_MPORT_en_pipe_0;
  reg [1:0] tagMem_io_datar_MPORT_addr_pipe_0;
  assign tagMem_io_datar_MPORT_en = tagMem_io_datar_MPORT_en_pipe_0;
  assign tagMem_io_datar_MPORT_addr = tagMem_io_datar_MPORT_addr_pipe_0;
  assign tagMem_io_datar_MPORT_data = tagMem[tagMem_io_datar_MPORT_addr]; // @[CacheRAM.scala 152:27]
  assign tagMem_MPORT_data = io_dataw;
  assign tagMem_MPORT_addr = io_addrw;
  assign tagMem_MPORT_mask = 1'h1;
  assign tagMem_MPORT_en = io_enw;
  assign io_datar = tagMem_io_datar_MPORT_data; // @[CacheRAM.scala 164:18 165:14]
  always @(posedge clock) begin
    if (tagMem_MPORT_en & tagMem_MPORT_mask) begin
      tagMem[tagMem_MPORT_addr] <= tagMem_MPORT_data; // @[CacheRAM.scala 152:27]
    end
    tagMem_io_datar_MPORT_en_pipe_0 <= io_enr;
    if (io_enr) begin
      tagMem_io_datar_MPORT_addr_pipe_0 <= io_addrr;
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    tagMem[initvar] = _RAND_0[25:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_1 = {1{`RANDOM}};
  tagMem_io_datar_MPORT_en_pipe_0 = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  tagMem_io_datar_MPORT_addr_pipe_0 = _RAND_2[1:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module MaxPeriodFibonacciLFSR(
  input   clock,
  input   reset,
  input   io_increment,
  output  io_out_0,
  output  io_out_1,
  output  io_out_2,
  output  io_out_3,
  output  io_out_4,
  output  io_out_5,
  output  io_out_6,
  output  io_out_7,
  output  io_out_8,
  output  io_out_9,
  output  io_out_10,
  output  io_out_11,
  output  io_out_12,
  output  io_out_13,
  output  io_out_14,
  output  io_out_15
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
`endif // RANDOMIZE_REG_INIT
  reg  state_0; // @[PRNG.scala 55:49]
  reg  state_1; // @[PRNG.scala 55:49]
  reg  state_2; // @[PRNG.scala 55:49]
  reg  state_3; // @[PRNG.scala 55:49]
  reg  state_4; // @[PRNG.scala 55:49]
  reg  state_5; // @[PRNG.scala 55:49]
  reg  state_6; // @[PRNG.scala 55:49]
  reg  state_7; // @[PRNG.scala 55:49]
  reg  state_8; // @[PRNG.scala 55:49]
  reg  state_9; // @[PRNG.scala 55:49]
  reg  state_10; // @[PRNG.scala 55:49]
  reg  state_11; // @[PRNG.scala 55:49]
  reg  state_12; // @[PRNG.scala 55:49]
  reg  state_13; // @[PRNG.scala 55:49]
  reg  state_14; // @[PRNG.scala 55:49]
  reg  state_15; // @[PRNG.scala 55:49]
  wire  _T_2 = state_15 ^ state_13 ^ state_12 ^ state_10; // @[LFSR.scala 15:41]
  wire  _GEN_0 = io_increment ? _T_2 : state_0; // @[PRNG.scala 69:22 70:11 55:49]
  assign io_out_0 = state_0; // @[PRNG.scala 78:10]
  assign io_out_1 = state_1; // @[PRNG.scala 78:10]
  assign io_out_2 = state_2; // @[PRNG.scala 78:10]
  assign io_out_3 = state_3; // @[PRNG.scala 78:10]
  assign io_out_4 = state_4; // @[PRNG.scala 78:10]
  assign io_out_5 = state_5; // @[PRNG.scala 78:10]
  assign io_out_6 = state_6; // @[PRNG.scala 78:10]
  assign io_out_7 = state_7; // @[PRNG.scala 78:10]
  assign io_out_8 = state_8; // @[PRNG.scala 78:10]
  assign io_out_9 = state_9; // @[PRNG.scala 78:10]
  assign io_out_10 = state_10; // @[PRNG.scala 78:10]
  assign io_out_11 = state_11; // @[PRNG.scala 78:10]
  assign io_out_12 = state_12; // @[PRNG.scala 78:10]
  assign io_out_13 = state_13; // @[PRNG.scala 78:10]
  assign io_out_14 = state_14; // @[PRNG.scala 78:10]
  assign io_out_15 = state_15; // @[PRNG.scala 78:10]
  always @(posedge clock) begin
    state_0 <= reset | _GEN_0; // @[PRNG.scala 55:{49,49}]
    if (reset) begin // @[PRNG.scala 55:49]
      state_1 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_1 <= state_0; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_2 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_2 <= state_1; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_3 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_3 <= state_2; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_4 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_4 <= state_3; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_5 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_5 <= state_4; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_6 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_6 <= state_5; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_7 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_7 <= state_6; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_8 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_8 <= state_7; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_9 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_9 <= state_8; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_10 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_10 <= state_9; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_11 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_11 <= state_10; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_12 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_12 <= state_11; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_13 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_13 <= state_12; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_14 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_14 <= state_13; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_15 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_15 <= state_14; // @[PRNG.scala 70:11]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  state_0 = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  state_1 = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  state_2 = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  state_3 = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  state_4 = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  state_5 = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  state_6 = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  state_7 = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  state_8 = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  state_9 = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  state_10 = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  state_11 = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  state_12 = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  state_13 = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  state_14 = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  state_15 = _RAND_15[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module IF2(
  input         clock,
  input         reset,
  output        io_if2_req_ready,
  input         io_if2_req_bits_isActive_1,
  input         io_if2_req_bits_isActive_2,
  input         io_if2_req_bits_isActive_3,
  input  [63:0] io_if2_req_bits_pc,
  input         io_if2_resp_0_ready,
  output        io_if2_resp_0_valid,
  output [38:0] io_if2_resp_0_bits_pc,
  output [15:0] io_if2_resp_0_bits_instr,
  output        io_if2_resp_0_bits_isRedirect,
  input         io_if2_resp_1_ready,
  output        io_if2_resp_1_valid,
  output [38:0] io_if2_resp_1_bits_pc,
  output [15:0] io_if2_resp_1_bits_instr,
  output        io_if2_resp_1_bits_isFault,
  output        io_if2_resp_1_bits_isRedirect,
  input         io_if2_resp_2_ready,
  output        io_if2_resp_2_valid,
  output [38:0] io_if2_resp_2_bits_pc,
  output [15:0] io_if2_resp_2_bits_instr,
  output        io_if2_resp_2_bits_isFault,
  output        io_if2_resp_2_bits_isRedirect,
  input         io_if2_resp_3_ready,
  output        io_if2_resp_3_valid,
  output [38:0] io_if2_resp_3_bits_pc,
  output [15:0] io_if2_resp_3_bits_instr,
  output        io_if2_resp_3_bits_isFault,
  output        io_if2_resp_3_bits_isRedirect,
  input         io_if_mmu_ready,
  output [63:0] io_if_mmu_bits_vaddr,
  output        io_mmu_if_ready,
  input         io_mmu_if_valid,
  input  [63:0] io_mmu_if_bits_vaddr,
  input  [63:0] io_mmu_if_bits_paddr,
  input         io_mmu_if_bits_is_paging_fault,
  input         io_mmu_if_bits_is_access_fault,
  output [63:0] io_if_cmm_ill_vaddr,
  input         io_icache_get_ready,
  output        io_icache_get_valid,
  output [31:0] io_icache_get_bits_address,
  output        io_icache_access_ready,
  input         io_icache_access_valid,
  input  [2:0]  io_icache_access_bits_opcode,
  input  [2:0]  io_icache_access_bits_size,
  input  [63:0] io_icache_access_bits_data,
  input         io_flush,
  input         io_ifence
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [63:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [63:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
`endif // RANDOMIZE_REG_INIT
  wire  ibuf_clock; // @[IF2.scala 73:20]
  wire  ibuf_reset; // @[IF2.scala 73:20]
  wire  ibuf_io_enq_0_ready; // @[IF2.scala 73:20]
  wire  ibuf_io_enq_0_valid; // @[IF2.scala 73:20]
  wire [38:0] ibuf_io_enq_0_bits_pc; // @[IF2.scala 73:20]
  wire [15:0] ibuf_io_enq_0_bits_instr; // @[IF2.scala 73:20]
  wire  ibuf_io_enq_0_bits_isFault; // @[IF2.scala 73:20]
  wire  ibuf_io_enq_1_ready; // @[IF2.scala 73:20]
  wire  ibuf_io_enq_1_valid; // @[IF2.scala 73:20]
  wire [38:0] ibuf_io_enq_1_bits_pc; // @[IF2.scala 73:20]
  wire [15:0] ibuf_io_enq_1_bits_instr; // @[IF2.scala 73:20]
  wire  ibuf_io_enq_2_ready; // @[IF2.scala 73:20]
  wire  ibuf_io_enq_2_valid; // @[IF2.scala 73:20]
  wire [38:0] ibuf_io_enq_2_bits_pc; // @[IF2.scala 73:20]
  wire [15:0] ibuf_io_enq_2_bits_instr; // @[IF2.scala 73:20]
  wire  ibuf_io_enq_3_ready; // @[IF2.scala 73:20]
  wire  ibuf_io_enq_3_valid; // @[IF2.scala 73:20]
  wire [38:0] ibuf_io_enq_3_bits_pc; // @[IF2.scala 73:20]
  wire [15:0] ibuf_io_enq_3_bits_instr; // @[IF2.scala 73:20]
  wire  ibuf_io_deq_0_ready; // @[IF2.scala 73:20]
  wire  ibuf_io_deq_0_valid; // @[IF2.scala 73:20]
  wire [38:0] ibuf_io_deq_0_bits_pc; // @[IF2.scala 73:20]
  wire [15:0] ibuf_io_deq_0_bits_instr; // @[IF2.scala 73:20]
  wire  ibuf_io_deq_0_bits_isRedirect; // @[IF2.scala 73:20]
  wire  ibuf_io_deq_1_ready; // @[IF2.scala 73:20]
  wire  ibuf_io_deq_1_valid; // @[IF2.scala 73:20]
  wire [38:0] ibuf_io_deq_1_bits_pc; // @[IF2.scala 73:20]
  wire [15:0] ibuf_io_deq_1_bits_instr; // @[IF2.scala 73:20]
  wire  ibuf_io_deq_1_bits_isFault; // @[IF2.scala 73:20]
  wire  ibuf_io_deq_1_bits_isRedirect; // @[IF2.scala 73:20]
  wire  ibuf_io_deq_2_ready; // @[IF2.scala 73:20]
  wire  ibuf_io_deq_2_valid; // @[IF2.scala 73:20]
  wire [38:0] ibuf_io_deq_2_bits_pc; // @[IF2.scala 73:20]
  wire [15:0] ibuf_io_deq_2_bits_instr; // @[IF2.scala 73:20]
  wire  ibuf_io_deq_2_bits_isFault; // @[IF2.scala 73:20]
  wire  ibuf_io_deq_2_bits_isRedirect; // @[IF2.scala 73:20]
  wire  ibuf_io_deq_3_ready; // @[IF2.scala 73:20]
  wire  ibuf_io_deq_3_valid; // @[IF2.scala 73:20]
  wire [38:0] ibuf_io_deq_3_bits_pc; // @[IF2.scala 73:20]
  wire [15:0] ibuf_io_deq_3_bits_instr; // @[IF2.scala 73:20]
  wire  ibuf_io_deq_3_bits_isFault; // @[IF2.scala 73:20]
  wire  ibuf_io_deq_3_bits_isRedirect; // @[IF2.scala 73:20]
  wire  ibuf_io_flush; // @[IF2.scala 73:20]
  wire  datRAM_0_clock; // @[IF2.scala 182:54]
  wire [1:0] datRAM_0_io_addrr; // @[IF2.scala 182:54]
  wire [1:0] datRAM_0_io_addrw; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_dataw_0; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_dataw_1; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_dataw_2; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_dataw_3; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_dataw_4; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_dataw_5; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_dataw_6; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_dataw_7; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_dataw_8; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_dataw_9; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_dataw_10; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_dataw_11; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_dataw_12; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_dataw_13; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_dataw_14; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_dataw_15; // @[IF2.scala 182:54]
  wire  datRAM_0_io_datawm_0; // @[IF2.scala 182:54]
  wire  datRAM_0_io_datawm_1; // @[IF2.scala 182:54]
  wire  datRAM_0_io_datawm_2; // @[IF2.scala 182:54]
  wire  datRAM_0_io_datawm_3; // @[IF2.scala 182:54]
  wire  datRAM_0_io_datawm_4; // @[IF2.scala 182:54]
  wire  datRAM_0_io_datawm_5; // @[IF2.scala 182:54]
  wire  datRAM_0_io_datawm_6; // @[IF2.scala 182:54]
  wire  datRAM_0_io_datawm_7; // @[IF2.scala 182:54]
  wire  datRAM_0_io_datawm_8; // @[IF2.scala 182:54]
  wire  datRAM_0_io_datawm_9; // @[IF2.scala 182:54]
  wire  datRAM_0_io_datawm_10; // @[IF2.scala 182:54]
  wire  datRAM_0_io_datawm_11; // @[IF2.scala 182:54]
  wire  datRAM_0_io_datawm_12; // @[IF2.scala 182:54]
  wire  datRAM_0_io_datawm_13; // @[IF2.scala 182:54]
  wire  datRAM_0_io_datawm_14; // @[IF2.scala 182:54]
  wire  datRAM_0_io_datawm_15; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_datar_0; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_datar_1; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_datar_2; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_datar_3; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_datar_4; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_datar_5; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_datar_6; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_datar_7; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_datar_8; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_datar_9; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_datar_10; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_datar_11; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_datar_12; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_datar_13; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_datar_14; // @[IF2.scala 182:54]
  wire [7:0] datRAM_0_io_datar_15; // @[IF2.scala 182:54]
  wire  datRAM_0_io_enw; // @[IF2.scala 182:54]
  wire  datRAM_0_io_enr; // @[IF2.scala 182:54]
  wire  datRAM_1_clock; // @[IF2.scala 182:54]
  wire [1:0] datRAM_1_io_addrr; // @[IF2.scala 182:54]
  wire [1:0] datRAM_1_io_addrw; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_dataw_0; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_dataw_1; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_dataw_2; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_dataw_3; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_dataw_4; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_dataw_5; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_dataw_6; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_dataw_7; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_dataw_8; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_dataw_9; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_dataw_10; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_dataw_11; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_dataw_12; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_dataw_13; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_dataw_14; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_dataw_15; // @[IF2.scala 182:54]
  wire  datRAM_1_io_datawm_0; // @[IF2.scala 182:54]
  wire  datRAM_1_io_datawm_1; // @[IF2.scala 182:54]
  wire  datRAM_1_io_datawm_2; // @[IF2.scala 182:54]
  wire  datRAM_1_io_datawm_3; // @[IF2.scala 182:54]
  wire  datRAM_1_io_datawm_4; // @[IF2.scala 182:54]
  wire  datRAM_1_io_datawm_5; // @[IF2.scala 182:54]
  wire  datRAM_1_io_datawm_6; // @[IF2.scala 182:54]
  wire  datRAM_1_io_datawm_7; // @[IF2.scala 182:54]
  wire  datRAM_1_io_datawm_8; // @[IF2.scala 182:54]
  wire  datRAM_1_io_datawm_9; // @[IF2.scala 182:54]
  wire  datRAM_1_io_datawm_10; // @[IF2.scala 182:54]
  wire  datRAM_1_io_datawm_11; // @[IF2.scala 182:54]
  wire  datRAM_1_io_datawm_12; // @[IF2.scala 182:54]
  wire  datRAM_1_io_datawm_13; // @[IF2.scala 182:54]
  wire  datRAM_1_io_datawm_14; // @[IF2.scala 182:54]
  wire  datRAM_1_io_datawm_15; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_datar_0; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_datar_1; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_datar_2; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_datar_3; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_datar_4; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_datar_5; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_datar_6; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_datar_7; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_datar_8; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_datar_9; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_datar_10; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_datar_11; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_datar_12; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_datar_13; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_datar_14; // @[IF2.scala 182:54]
  wire [7:0] datRAM_1_io_datar_15; // @[IF2.scala 182:54]
  wire  datRAM_1_io_enw; // @[IF2.scala 182:54]
  wire  datRAM_1_io_enr; // @[IF2.scala 182:54]
  wire  tagRAM_0_clock; // @[IF2.scala 183:54]
  wire [1:0] tagRAM_0_io_addrr; // @[IF2.scala 183:54]
  wire [1:0] tagRAM_0_io_addrw; // @[IF2.scala 183:54]
  wire [25:0] tagRAM_0_io_dataw; // @[IF2.scala 183:54]
  wire [25:0] tagRAM_0_io_datar; // @[IF2.scala 183:54]
  wire  tagRAM_0_io_enw; // @[IF2.scala 183:54]
  wire  tagRAM_0_io_enr; // @[IF2.scala 183:54]
  wire  tagRAM_1_clock; // @[IF2.scala 183:54]
  wire [1:0] tagRAM_1_io_addrr; // @[IF2.scala 183:54]
  wire [1:0] tagRAM_1_io_addrw; // @[IF2.scala 183:54]
  wire [25:0] tagRAM_1_io_dataw; // @[IF2.scala 183:54]
  wire [25:0] tagRAM_1_io_datar; // @[IF2.scala 183:54]
  wire  tagRAM_1_io_enw; // @[IF2.scala 183:54]
  wire  tagRAM_1_io_enr; // @[IF2.scala 183:54]
  wire  rpl_sel_rpl_prng_clock; // @[PRNG.scala 91:22]
  wire  rpl_sel_rpl_prng_reset; // @[PRNG.scala 91:22]
  wire  rpl_sel_rpl_prng_io_increment; // @[PRNG.scala 91:22]
  wire  rpl_sel_rpl_prng_io_out_0; // @[PRNG.scala 91:22]
  wire  rpl_sel_rpl_prng_io_out_1; // @[PRNG.scala 91:22]
  wire  rpl_sel_rpl_prng_io_out_2; // @[PRNG.scala 91:22]
  wire  rpl_sel_rpl_prng_io_out_3; // @[PRNG.scala 91:22]
  wire  rpl_sel_rpl_prng_io_out_4; // @[PRNG.scala 91:22]
  wire  rpl_sel_rpl_prng_io_out_5; // @[PRNG.scala 91:22]
  wire  rpl_sel_rpl_prng_io_out_6; // @[PRNG.scala 91:22]
  wire  rpl_sel_rpl_prng_io_out_7; // @[PRNG.scala 91:22]
  wire  rpl_sel_rpl_prng_io_out_8; // @[PRNG.scala 91:22]
  wire  rpl_sel_rpl_prng_io_out_9; // @[PRNG.scala 91:22]
  wire  rpl_sel_rpl_prng_io_out_10; // @[PRNG.scala 91:22]
  wire  rpl_sel_rpl_prng_io_out_11; // @[PRNG.scala 91:22]
  wire  rpl_sel_rpl_prng_io_out_12; // @[PRNG.scala 91:22]
  wire  rpl_sel_rpl_prng_io_out_13; // @[PRNG.scala 91:22]
  wire  rpl_sel_rpl_prng_io_out_14; // @[PRNG.scala 91:22]
  wire  rpl_sel_rpl_prng_io_out_15; // @[PRNG.scala 91:22]
  wire  _T = io_icache_access_ready & io_icache_access_valid; // @[Decoupled.scala 52:35]
  wire [10:0] _beats1_decode_T_1 = 11'hf << io_icache_access_bits_size; // @[package.scala 234:77]
  wire [3:0] _beats1_decode_T_3 = ~_beats1_decode_T_1[3:0]; // @[package.scala 234:46]
  wire  beats1_decode = _beats1_decode_T_3[3]; // @[Edges.scala 219:59]
  wire  beats1_opdata = io_icache_access_bits_opcode[0]; // @[Edges.scala 105:36]
  wire  beats1 = beats1_opdata & beats1_decode; // @[Edges.scala 220:14]
  reg  counter; // @[Edges.scala 228:27]
  wire  counter1 = counter - 1'h1; // @[Edges.scala 229:28]
  wire  first = ~counter; // @[Edges.scala 230:25]
  wire  last = counter | ~beats1; // @[Edges.scala 231:37]
  wire  is_trans_done = last & _T; // @[Edges.scala 232:22]
  reg [63:0] icache_access_data_lo_0; // @[IF2.scala 70:34]
  reg  kill_trans; // @[IF2.scala 71:27]
  wire [1:0] cl_sel = io_mmu_if_bits_paddr[5:4]; // @[IF2.scala 79:36]
  wire [25:0] tag_sel = io_mmu_if_bits_paddr[31:6]; // @[IF2.scala 80:37]
  reg  is_valid_3_1; // @[IF2.scala 180:25]
  reg  is_valid_2_1; // @[IF2.scala 180:25]
  reg  is_valid_1_1; // @[IF2.scala 180:25]
  reg  is_valid_0_1; // @[IF2.scala 180:25]
  wire  _GEN_8 = 2'h1 == cl_sel ? is_valid_1_1 : is_valid_0_1; // @[IF2.scala 189:{42,42}]
  wire  _GEN_9 = 2'h2 == cl_sel ? is_valid_2_1 : _GEN_8; // @[IF2.scala 189:{42,42}]
  wire  _GEN_10 = 2'h3 == cl_sel ? is_valid_3_1 : _GEN_9; // @[IF2.scala 189:{42,42}]
  wire  res_1 = tagRAM_1_io_datar == tag_sel & _GEN_10; // @[IF2.scala 189:42]
  reg  is_valid_3_0; // @[IF2.scala 180:25]
  reg  is_valid_2_0; // @[IF2.scala 180:25]
  reg  is_valid_1_0; // @[IF2.scala 180:25]
  reg  is_valid_0_0; // @[IF2.scala 180:25]
  wire  _GEN_4 = 2'h1 == cl_sel ? is_valid_1_0 : is_valid_0_0; // @[IF2.scala 189:{42,42}]
  wire  _GEN_5 = 2'h2 == cl_sel ? is_valid_2_0 : _GEN_4; // @[IF2.scala 189:{42,42}]
  wire  _GEN_6 = 2'h3 == cl_sel ? is_valid_3_0 : _GEN_5; // @[IF2.scala 189:{42,42}]
  wire  res_0 = tagRAM_0_io_datar == tag_sel & _GEN_6; // @[IF2.scala 189:42]
  wire [1:0] _is_hit_T = {res_1,res_0}; // @[IF2.scala 86:26]
  wire  is_hit = |_is_hit_T; // @[IF2.scala 86:33]
  wire  hit_sel = _is_hit_T[1]; // @[CircuitMath.scala 28:8]
  reg [3:0] icache_state_qout; // @[IF2.scala 98:34]
  reg  fault_lock; // @[IF2.scala 100:27]
  wire  _io_mmu_if_ready_T = ibuf_io_enq_0_ready & ibuf_io_enq_0_valid; // @[Decoupled.scala 52:35]
  wire  _io_mmu_if_ready_T_1 = ~fault_lock; // @[IF2.scala 113:44]
  wire  _io_mmu_if_ready_T_3 = io_mmu_if_bits_is_access_fault | io_mmu_if_bits_is_paging_fault; // @[MMU.scala 77:34]
  wire  _io_mmu_if_ready_T_4 = ~_io_mmu_if_ready_T_3; // @[IF2.scala 113:58]
  wire  is_access_fault = io_mmu_if_valid & io_mmu_if_bits_is_access_fault; // @[IF2.scala 117:38]
  wire  is_paging_fault = io_mmu_if_valid & io_mmu_if_bits_is_paging_fault; // @[IF2.scala 118:38]
  wire  _T_3 = ~io_flush; // @[IF2.scala 121:58]
  wire  _GEN_1 = io_mmu_if_valid & _io_mmu_if_ready_T_3 & ~io_flush & _io_mmu_if_ready_T | fault_lock; // @[IF2.scala 121:105 100:27 121:92]
  wire  _T_10 = ~reset; // @[IF2.scala 123:9]
  wire  _icache_state_dnxt_T = icache_state_qout == 4'h0; // @[IF2.scala 133:26]
  wire  _icache_state_dnxt_T_8 = io_mmu_if_valid & _io_mmu_if_ready_T_4 & _T_3 & ibuf_io_enq_3_ready &
    _io_mmu_if_ready_T_1; // @[IF2.scala 134:100]
  wire  _icache_state_dnxt_T_10 = icache_state_qout == 4'h1; // @[IF2.scala 135:26]
  wire  _icache_state_dnxt_T_11 = io_icache_get_ready & io_icache_get_valid; // @[Decoupled.scala 52:35]
  wire [1:0] _icache_state_dnxt_T_12 = _icache_state_dnxt_T_11 ? 2'h2 : 2'h1; // @[IF2.scala 138:26]
  wire [1:0] _icache_state_dnxt_T_13 = is_hit ? 2'h0 : _icache_state_dnxt_T_12; // @[IF2.scala 137:14]
  wire [1:0] _icache_state_dnxt_T_14 = io_flush ? 2'h0 : _icache_state_dnxt_T_13; // @[IF2.scala 136:12]
  wire  _icache_state_dnxt_T_15 = icache_state_qout == 4'h2; // @[IF2.scala 139:26]
  wire [1:0] _icache_state_dnxt_T_16 = is_trans_done ? 2'h0 : 2'h2; // @[IF2.scala 140:14]
  wire  _icache_state_dnxt_T_17 = _icache_state_dnxt_T & _icache_state_dnxt_T_8; // @[Mux.scala 27:73]
  wire [1:0] _icache_state_dnxt_T_18 = _icache_state_dnxt_T_10 ? _icache_state_dnxt_T_14 : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _icache_state_dnxt_T_19 = _icache_state_dnxt_T_15 ? _icache_state_dnxt_T_16 : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _GEN_46 = {{1'd0}, _icache_state_dnxt_T_17}; // @[Mux.scala 27:73]
  wire [1:0] _icache_state_dnxt_T_20 = _GEN_46 | _icache_state_dnxt_T_18; // @[Mux.scala 27:73]
  wire [1:0] _icache_state_dnxt_T_21 = _icache_state_dnxt_T_20 | _icache_state_dnxt_T_19; // @[Mux.scala 27:73]
  wire [1:0] _T_13 = res_0 + res_1; // @[Bitwise.scala 51:90]
  wire  _is_emptyBlock_exist_r_T = ~_GEN_6; // @[IF2.scala 199:56]
  wire  is_emptyBlock_exist_r = ~_GEN_6 | ~_GEN_10; // @[IF2.scala 199:56]
  wire  cb_em = _is_emptyBlock_exist_r_T ? 1'h0 : 1'h1; // @[IF2.scala 201:42]
  wire [7:0] rpl_sel_rpl_lo = {rpl_sel_rpl_prng_io_out_7,rpl_sel_rpl_prng_io_out_6,rpl_sel_rpl_prng_io_out_5,
    rpl_sel_rpl_prng_io_out_4,rpl_sel_rpl_prng_io_out_3,rpl_sel_rpl_prng_io_out_2,rpl_sel_rpl_prng_io_out_1,
    rpl_sel_rpl_prng_io_out_0}; // @[PRNG.scala 95:17]
  wire [15:0] rpl_sel_rpl = {rpl_sel_rpl_prng_io_out_15,rpl_sel_rpl_prng_io_out_14,rpl_sel_rpl_prng_io_out_13,
    rpl_sel_rpl_prng_io_out_12,rpl_sel_rpl_prng_io_out_11,rpl_sel_rpl_prng_io_out_10,rpl_sel_rpl_prng_io_out_9,
    rpl_sel_rpl_prng_io_out_8,rpl_sel_rpl_lo}; // @[PRNG.scala 95:17]
  wire [15:0] _rpl_sel_res_T = is_emptyBlock_exist_r ? {{15'd0}, cb_em} : rpl_sel_rpl; // @[IF2.scala 228:17]
  wire  rpl_sel_res = _rpl_sel_res_T[0]; // @[IF2.scala 218:21 228:11]
  wire  _cb_sel_T_1 = is_hit ? hit_sel : rpl_sel_res; // @[IF2.scala 209:43]
  wire  cb_sel = _icache_state_dnxt_T_10 & _cb_sel_T_1 | _icache_state_dnxt_T_15 & rpl_sel_res; // @[Mux.scala 27:73]
  wire [3:0] icache_state_dnxt = {{2'd0}, _icache_state_dnxt_T_21}; // @[IF2.scala 131:21 97:31]
  wire  _datRAM_0_io_enw_T_1 = icache_state_dnxt == 4'h0; // @[IF2.scala 244:73]
  wire  _datRAM_0_io_enw_T_2 = _icache_state_dnxt_T_15 & icache_state_dnxt == 4'h0; // @[IF2.scala 244:53]
  wire  _datRAM_0_io_enw_T_3 = ~cb_sel; // @[IF2.scala 244:92]
  wire  _datRAM_0_io_enw_T_5 = ~kill_trans; // @[IF2.scala 244:103]
  wire  _datRAM_0_io_enw_T_6 = _icache_state_dnxt_T_15 & icache_state_dnxt == 4'h0 & ~cb_sel & ~kill_trans; // @[IF2.scala 244:101]
  wire [127:0] icache_access_data = {io_icache_access_bits_data,icache_access_data_lo_0}; // @[Cat.scala 33:92]
  wire  _datRAM_1_io_enw_T_6 = _icache_state_dnxt_T_15 & icache_state_dnxt == 4'h0 & cb_sel & ~kill_trans; // @[IF2.scala 244:101]
  wire [63:0] icache_sramrd_data_lo = {datRAM_0_io_datar_7,datRAM_0_io_datar_6,datRAM_0_io_datar_5,datRAM_0_io_datar_4,
    datRAM_0_io_datar_3,datRAM_0_io_datar_2,datRAM_0_io_datar_1,datRAM_0_io_datar_0}; // @[Cat.scala 33:92]
  wire [127:0] _icache_sramrd_data_T = {datRAM_0_io_datar_15,datRAM_0_io_datar_14,datRAM_0_io_datar_13,
    datRAM_0_io_datar_12,datRAM_0_io_datar_11,datRAM_0_io_datar_10,datRAM_0_io_datar_9,datRAM_0_io_datar_8,
    icache_sramrd_data_lo}; // @[Cat.scala 33:92]
  wire [63:0] icache_sramrd_data_lo_1 = {datRAM_1_io_datar_7,datRAM_1_io_datar_6,datRAM_1_io_datar_5,datRAM_1_io_datar_4
    ,datRAM_1_io_datar_3,datRAM_1_io_datar_2,datRAM_1_io_datar_1,datRAM_1_io_datar_0}; // @[Cat.scala 33:92]
  wire [127:0] _icache_sramrd_data_T_1 = {datRAM_1_io_datar_15,datRAM_1_io_datar_14,datRAM_1_io_datar_13,
    datRAM_1_io_datar_12,datRAM_1_io_datar_11,datRAM_1_io_datar_10,datRAM_1_io_datar_9,datRAM_1_io_datar_8,
    icache_sramrd_data_lo_1}; // @[Cat.scala 33:92]
  wire [127:0] _icache_sramrd_data_T_2 = res_0 ? _icache_sramrd_data_T : 128'h0; // @[Mux.scala 27:73]
  wire [127:0] _icache_sramrd_data_T_3 = res_1 ? _icache_sramrd_data_T_1 : 128'h0; // @[Mux.scala 27:73]
  wire [127:0] icache_sramrd_data = _icache_sramrd_data_T_2 | _icache_sramrd_data_T_3; // @[Mux.scala 27:73]
  wire  _GEN_11 = 2'h0 == cl_sel & _datRAM_0_io_enw_T_3 | is_valid_0_0; // @[IF2.scala 180:25 266:{30,30}]
  wire  _GEN_12 = 2'h0 == cl_sel & cb_sel | is_valid_0_1; // @[IF2.scala 180:25 266:{30,30}]
  wire  _GEN_13 = 2'h1 == cl_sel & _datRAM_0_io_enw_T_3 | is_valid_1_0; // @[IF2.scala 180:25 266:{30,30}]
  wire  _GEN_14 = 2'h1 == cl_sel & cb_sel | is_valid_1_1; // @[IF2.scala 180:25 266:{30,30}]
  wire  _GEN_15 = 2'h2 == cl_sel & _datRAM_0_io_enw_T_3 | is_valid_2_0; // @[IF2.scala 180:25 266:{30,30}]
  wire  _GEN_16 = 2'h2 == cl_sel & cb_sel | is_valid_2_1; // @[IF2.scala 180:25 266:{30,30}]
  wire  _GEN_17 = 2'h3 == cl_sel & _datRAM_0_io_enw_T_3 | is_valid_3_0; // @[IF2.scala 180:25 266:{30,30}]
  wire  _GEN_18 = 2'h3 == cl_sel & cb_sel | is_valid_3_1; // @[IF2.scala 180:25 266:{30,30}]
  wire [38:0] _GEN_67 = {{7'd0}, io_mmu_if_bits_paddr[31:0]}; // @[IF2.scala 286:51]
  wire [38:0] _io_icache_get_bits_T_2 = _GEN_67 & 39'hffffffff0; // @[IF2.scala 286:51]
  reg [63:0] REG; // @[IF2.scala 300:21]
  reg  REG_1; // @[IF2.scala 300:108]
  reg  REG_2; // @[IF2.scala 300:131]
  wire [5:0] reAlign_instr_shift = {io_mmu_if_bits_paddr[2:0],3'h0}; // @[Cat.scala 33:92]
  wire [127:0] _reAlign_instr_instr_raw_T_2 = _icache_state_dnxt_T_10 ? icache_sramrd_data : 128'h0; // @[Mux.scala 27:73]
  wire [127:0] _reAlign_instr_instr_raw_T_3 = _icache_state_dnxt_T_15 ? icache_access_data : 128'h0; // @[Mux.scala 27:73]
  wire [127:0] _reAlign_instr_instr_raw_T_4 = _reAlign_instr_instr_raw_T_2 | _reAlign_instr_instr_raw_T_3; // @[Mux.scala 27:73]
  wire [6:0] _reAlign_instr_instr_raw_T_6 = {io_mmu_if_bits_paddr[3], 6'h0}; // @[IF2.scala 322:100]
  wire [127:0] _reAlign_instr_instr_raw_T_7 = _reAlign_instr_instr_raw_T_4 >> _reAlign_instr_instr_raw_T_6; // @[IF2.scala 322:12]
  wire [63:0] reAlign_instr_instr_raw = _reAlign_instr_instr_raw_T_7[63:0]; // @[IF2.scala 317:25 318:15]
  wire [63:0] reAlign_instr = reAlign_instr_instr_raw >> reAlign_instr_shift; // @[IF2.scala 324:22]
  wire [64:0] _ibuf_io_enq_0_bits_pc_T = {{1'd0}, io_mmu_if_bits_vaddr}; // @[IF2.scala 332:55]
  wire [63:0] _ibuf_io_enq_1_bits_pc_T_1 = io_mmu_if_bits_vaddr + 64'h2; // @[IF2.scala 332:55]
  wire [63:0] _ibuf_io_enq_2_bits_pc_T_1 = io_mmu_if_bits_vaddr + 64'h4; // @[IF2.scala 332:55]
  wire [63:0] _ibuf_io_enq_3_bits_pc_T_1 = io_mmu_if_bits_vaddr + 64'h6; // @[IF2.scala 332:55]
  wire [63:0] _GEN_36 = is_paging_fault ? 64'h9c45 : reAlign_instr; // @[IF2.scala 331:31 350:67 351:31]
  wire [63:0] _GEN_37 = is_paging_fault ? io_if2_req_bits_pc : _ibuf_io_enq_0_bits_pc_T[63:0]; // @[IF2.scala 332:31 350:67 352:31]
  wire [63:0] _GEN_40 = is_access_fault ? 64'h9c41 : _GEN_36; // @[IF2.scala 343:60 344:31]
  wire [63:0] _GEN_41 = is_access_fault ? io_if2_req_bits_pc : _GEN_37; // @[IF2.scala 343:60 345:31]
  wire  _ibuf_io_enq_0_valid_T_1 = _datRAM_0_io_enw_T_5 & io_mmu_if_valid; // @[IF2.scala 361:18]
  wire  _ibuf_io_enq_0_valid_T_2 = icache_state_qout != 4'h0; // @[IF2.scala 361:56]
  wire  _ibuf_io_enq_0_valid_T_6 = _datRAM_0_io_enw_T_5 & io_mmu_if_valid & icache_state_qout != 4'h0 &
    _datRAM_0_io_enw_T_1 & ibuf_io_enq_3_ready; // @[IF2.scala 361:92]
  wire  _ibuf_io_enq_0_valid_T_16 = _ibuf_io_enq_0_valid_T_1 & _io_mmu_if_ready_T_3 & _io_mmu_if_ready_T_1; // @[IF2.scala 362:62]
  wire  _GEN_44 = _datRAM_0_io_enw_T_1 | _icache_state_dnxt_T ? 1'h0 : kill_trans; // @[IF2.scala 373:72 374:16 71:27]
  wire  _GEN_45 = io_flush & _ibuf_io_enq_0_valid_T_2 | _GEN_44; // @[IF2.scala 371:48 372:16]
  wire  _GEN_69 = _icache_state_dnxt_T_10 & _T_10; // @[IF2.scala 193:13]
  MultiPortFifo_in4_out4 ibuf ( // @[IF2.scala 73:20]
    .clock(ibuf_clock),
    .reset(ibuf_reset),
    .io_enq_0_ready(ibuf_io_enq_0_ready),
    .io_enq_0_valid(ibuf_io_enq_0_valid),
    .io_enq_0_bits_pc(ibuf_io_enq_0_bits_pc),
    .io_enq_0_bits_instr(ibuf_io_enq_0_bits_instr),
    .io_enq_0_bits_isFault(ibuf_io_enq_0_bits_isFault),
    .io_enq_1_ready(ibuf_io_enq_1_ready),
    .io_enq_1_valid(ibuf_io_enq_1_valid),
    .io_enq_1_bits_pc(ibuf_io_enq_1_bits_pc),
    .io_enq_1_bits_instr(ibuf_io_enq_1_bits_instr),
    .io_enq_2_ready(ibuf_io_enq_2_ready),
    .io_enq_2_valid(ibuf_io_enq_2_valid),
    .io_enq_2_bits_pc(ibuf_io_enq_2_bits_pc),
    .io_enq_2_bits_instr(ibuf_io_enq_2_bits_instr),
    .io_enq_3_ready(ibuf_io_enq_3_ready),
    .io_enq_3_valid(ibuf_io_enq_3_valid),
    .io_enq_3_bits_pc(ibuf_io_enq_3_bits_pc),
    .io_enq_3_bits_instr(ibuf_io_enq_3_bits_instr),
    .io_deq_0_ready(ibuf_io_deq_0_ready),
    .io_deq_0_valid(ibuf_io_deq_0_valid),
    .io_deq_0_bits_pc(ibuf_io_deq_0_bits_pc),
    .io_deq_0_bits_instr(ibuf_io_deq_0_bits_instr),
    .io_deq_0_bits_isRedirect(ibuf_io_deq_0_bits_isRedirect),
    .io_deq_1_ready(ibuf_io_deq_1_ready),
    .io_deq_1_valid(ibuf_io_deq_1_valid),
    .io_deq_1_bits_pc(ibuf_io_deq_1_bits_pc),
    .io_deq_1_bits_instr(ibuf_io_deq_1_bits_instr),
    .io_deq_1_bits_isFault(ibuf_io_deq_1_bits_isFault),
    .io_deq_1_bits_isRedirect(ibuf_io_deq_1_bits_isRedirect),
    .io_deq_2_ready(ibuf_io_deq_2_ready),
    .io_deq_2_valid(ibuf_io_deq_2_valid),
    .io_deq_2_bits_pc(ibuf_io_deq_2_bits_pc),
    .io_deq_2_bits_instr(ibuf_io_deq_2_bits_instr),
    .io_deq_2_bits_isFault(ibuf_io_deq_2_bits_isFault),
    .io_deq_2_bits_isRedirect(ibuf_io_deq_2_bits_isRedirect),
    .io_deq_3_ready(ibuf_io_deq_3_ready),
    .io_deq_3_valid(ibuf_io_deq_3_valid),
    .io_deq_3_bits_pc(ibuf_io_deq_3_bits_pc),
    .io_deq_3_bits_instr(ibuf_io_deq_3_bits_instr),
    .io_deq_3_bits_isFault(ibuf_io_deq_3_bits_isFault),
    .io_deq_3_bits_isRedirect(ibuf_io_deq_3_bits_isRedirect),
    .io_flush(ibuf_io_flush)
  );
  DatRAM datRAM_0 ( // @[IF2.scala 182:54]
    .clock(datRAM_0_clock),
    .io_addrr(datRAM_0_io_addrr),
    .io_addrw(datRAM_0_io_addrw),
    .io_dataw_0(datRAM_0_io_dataw_0),
    .io_dataw_1(datRAM_0_io_dataw_1),
    .io_dataw_2(datRAM_0_io_dataw_2),
    .io_dataw_3(datRAM_0_io_dataw_3),
    .io_dataw_4(datRAM_0_io_dataw_4),
    .io_dataw_5(datRAM_0_io_dataw_5),
    .io_dataw_6(datRAM_0_io_dataw_6),
    .io_dataw_7(datRAM_0_io_dataw_7),
    .io_dataw_8(datRAM_0_io_dataw_8),
    .io_dataw_9(datRAM_0_io_dataw_9),
    .io_dataw_10(datRAM_0_io_dataw_10),
    .io_dataw_11(datRAM_0_io_dataw_11),
    .io_dataw_12(datRAM_0_io_dataw_12),
    .io_dataw_13(datRAM_0_io_dataw_13),
    .io_dataw_14(datRAM_0_io_dataw_14),
    .io_dataw_15(datRAM_0_io_dataw_15),
    .io_datawm_0(datRAM_0_io_datawm_0),
    .io_datawm_1(datRAM_0_io_datawm_1),
    .io_datawm_2(datRAM_0_io_datawm_2),
    .io_datawm_3(datRAM_0_io_datawm_3),
    .io_datawm_4(datRAM_0_io_datawm_4),
    .io_datawm_5(datRAM_0_io_datawm_5),
    .io_datawm_6(datRAM_0_io_datawm_6),
    .io_datawm_7(datRAM_0_io_datawm_7),
    .io_datawm_8(datRAM_0_io_datawm_8),
    .io_datawm_9(datRAM_0_io_datawm_9),
    .io_datawm_10(datRAM_0_io_datawm_10),
    .io_datawm_11(datRAM_0_io_datawm_11),
    .io_datawm_12(datRAM_0_io_datawm_12),
    .io_datawm_13(datRAM_0_io_datawm_13),
    .io_datawm_14(datRAM_0_io_datawm_14),
    .io_datawm_15(datRAM_0_io_datawm_15),
    .io_datar_0(datRAM_0_io_datar_0),
    .io_datar_1(datRAM_0_io_datar_1),
    .io_datar_2(datRAM_0_io_datar_2),
    .io_datar_3(datRAM_0_io_datar_3),
    .io_datar_4(datRAM_0_io_datar_4),
    .io_datar_5(datRAM_0_io_datar_5),
    .io_datar_6(datRAM_0_io_datar_6),
    .io_datar_7(datRAM_0_io_datar_7),
    .io_datar_8(datRAM_0_io_datar_8),
    .io_datar_9(datRAM_0_io_datar_9),
    .io_datar_10(datRAM_0_io_datar_10),
    .io_datar_11(datRAM_0_io_datar_11),
    .io_datar_12(datRAM_0_io_datar_12),
    .io_datar_13(datRAM_0_io_datar_13),
    .io_datar_14(datRAM_0_io_datar_14),
    .io_datar_15(datRAM_0_io_datar_15),
    .io_enw(datRAM_0_io_enw),
    .io_enr(datRAM_0_io_enr)
  );
  DatRAM datRAM_1 ( // @[IF2.scala 182:54]
    .clock(datRAM_1_clock),
    .io_addrr(datRAM_1_io_addrr),
    .io_addrw(datRAM_1_io_addrw),
    .io_dataw_0(datRAM_1_io_dataw_0),
    .io_dataw_1(datRAM_1_io_dataw_1),
    .io_dataw_2(datRAM_1_io_dataw_2),
    .io_dataw_3(datRAM_1_io_dataw_3),
    .io_dataw_4(datRAM_1_io_dataw_4),
    .io_dataw_5(datRAM_1_io_dataw_5),
    .io_dataw_6(datRAM_1_io_dataw_6),
    .io_dataw_7(datRAM_1_io_dataw_7),
    .io_dataw_8(datRAM_1_io_dataw_8),
    .io_dataw_9(datRAM_1_io_dataw_9),
    .io_dataw_10(datRAM_1_io_dataw_10),
    .io_dataw_11(datRAM_1_io_dataw_11),
    .io_dataw_12(datRAM_1_io_dataw_12),
    .io_dataw_13(datRAM_1_io_dataw_13),
    .io_dataw_14(datRAM_1_io_dataw_14),
    .io_dataw_15(datRAM_1_io_dataw_15),
    .io_datawm_0(datRAM_1_io_datawm_0),
    .io_datawm_1(datRAM_1_io_datawm_1),
    .io_datawm_2(datRAM_1_io_datawm_2),
    .io_datawm_3(datRAM_1_io_datawm_3),
    .io_datawm_4(datRAM_1_io_datawm_4),
    .io_datawm_5(datRAM_1_io_datawm_5),
    .io_datawm_6(datRAM_1_io_datawm_6),
    .io_datawm_7(datRAM_1_io_datawm_7),
    .io_datawm_8(datRAM_1_io_datawm_8),
    .io_datawm_9(datRAM_1_io_datawm_9),
    .io_datawm_10(datRAM_1_io_datawm_10),
    .io_datawm_11(datRAM_1_io_datawm_11),
    .io_datawm_12(datRAM_1_io_datawm_12),
    .io_datawm_13(datRAM_1_io_datawm_13),
    .io_datawm_14(datRAM_1_io_datawm_14),
    .io_datawm_15(datRAM_1_io_datawm_15),
    .io_datar_0(datRAM_1_io_datar_0),
    .io_datar_1(datRAM_1_io_datar_1),
    .io_datar_2(datRAM_1_io_datar_2),
    .io_datar_3(datRAM_1_io_datar_3),
    .io_datar_4(datRAM_1_io_datar_4),
    .io_datar_5(datRAM_1_io_datar_5),
    .io_datar_6(datRAM_1_io_datar_6),
    .io_datar_7(datRAM_1_io_datar_7),
    .io_datar_8(datRAM_1_io_datar_8),
    .io_datar_9(datRAM_1_io_datar_9),
    .io_datar_10(datRAM_1_io_datar_10),
    .io_datar_11(datRAM_1_io_datar_11),
    .io_datar_12(datRAM_1_io_datar_12),
    .io_datar_13(datRAM_1_io_datar_13),
    .io_datar_14(datRAM_1_io_datar_14),
    .io_datar_15(datRAM_1_io_datar_15),
    .io_enw(datRAM_1_io_enw),
    .io_enr(datRAM_1_io_enr)
  );
  TagRAM tagRAM_0 ( // @[IF2.scala 183:54]
    .clock(tagRAM_0_clock),
    .io_addrr(tagRAM_0_io_addrr),
    .io_addrw(tagRAM_0_io_addrw),
    .io_dataw(tagRAM_0_io_dataw),
    .io_datar(tagRAM_0_io_datar),
    .io_enw(tagRAM_0_io_enw),
    .io_enr(tagRAM_0_io_enr)
  );
  TagRAM tagRAM_1 ( // @[IF2.scala 183:54]
    .clock(tagRAM_1_clock),
    .io_addrr(tagRAM_1_io_addrr),
    .io_addrw(tagRAM_1_io_addrw),
    .io_dataw(tagRAM_1_io_dataw),
    .io_datar(tagRAM_1_io_datar),
    .io_enw(tagRAM_1_io_enw),
    .io_enr(tagRAM_1_io_enr)
  );
  MaxPeriodFibonacciLFSR rpl_sel_rpl_prng ( // @[PRNG.scala 91:22]
    .clock(rpl_sel_rpl_prng_clock),
    .reset(rpl_sel_rpl_prng_reset),
    .io_increment(rpl_sel_rpl_prng_io_increment),
    .io_out_0(rpl_sel_rpl_prng_io_out_0),
    .io_out_1(rpl_sel_rpl_prng_io_out_1),
    .io_out_2(rpl_sel_rpl_prng_io_out_2),
    .io_out_3(rpl_sel_rpl_prng_io_out_3),
    .io_out_4(rpl_sel_rpl_prng_io_out_4),
    .io_out_5(rpl_sel_rpl_prng_io_out_5),
    .io_out_6(rpl_sel_rpl_prng_io_out_6),
    .io_out_7(rpl_sel_rpl_prng_io_out_7),
    .io_out_8(rpl_sel_rpl_prng_io_out_8),
    .io_out_9(rpl_sel_rpl_prng_io_out_9),
    .io_out_10(rpl_sel_rpl_prng_io_out_10),
    .io_out_11(rpl_sel_rpl_prng_io_out_11),
    .io_out_12(rpl_sel_rpl_prng_io_out_12),
    .io_out_13(rpl_sel_rpl_prng_io_out_13),
    .io_out_14(rpl_sel_rpl_prng_io_out_14),
    .io_out_15(rpl_sel_rpl_prng_io_out_15)
  );
  assign io_if2_req_ready = io_if_mmu_ready; // @[IF2.scala 111:20]
  assign io_if2_resp_0_valid = ibuf_io_deq_0_valid; // @[IF2.scala 75:15]
  assign io_if2_resp_0_bits_pc = ibuf_io_deq_0_bits_pc; // @[IF2.scala 75:15]
  assign io_if2_resp_0_bits_instr = ibuf_io_deq_0_bits_instr; // @[IF2.scala 75:15]
  assign io_if2_resp_0_bits_isRedirect = ibuf_io_deq_0_bits_isRedirect; // @[IF2.scala 75:15]
  assign io_if2_resp_1_valid = ibuf_io_deq_1_valid; // @[IF2.scala 75:15]
  assign io_if2_resp_1_bits_pc = ibuf_io_deq_1_bits_pc; // @[IF2.scala 75:15]
  assign io_if2_resp_1_bits_instr = ibuf_io_deq_1_bits_instr; // @[IF2.scala 75:15]
  assign io_if2_resp_1_bits_isFault = ibuf_io_deq_1_bits_isFault; // @[IF2.scala 75:15]
  assign io_if2_resp_1_bits_isRedirect = ibuf_io_deq_1_bits_isRedirect; // @[IF2.scala 75:15]
  assign io_if2_resp_2_valid = ibuf_io_deq_2_valid; // @[IF2.scala 75:15]
  assign io_if2_resp_2_bits_pc = ibuf_io_deq_2_bits_pc; // @[IF2.scala 75:15]
  assign io_if2_resp_2_bits_instr = ibuf_io_deq_2_bits_instr; // @[IF2.scala 75:15]
  assign io_if2_resp_2_bits_isFault = ibuf_io_deq_2_bits_isFault; // @[IF2.scala 75:15]
  assign io_if2_resp_2_bits_isRedirect = ibuf_io_deq_2_bits_isRedirect; // @[IF2.scala 75:15]
  assign io_if2_resp_3_valid = ibuf_io_deq_3_valid; // @[IF2.scala 75:15]
  assign io_if2_resp_3_bits_pc = ibuf_io_deq_3_bits_pc; // @[IF2.scala 75:15]
  assign io_if2_resp_3_bits_instr = ibuf_io_deq_3_bits_instr; // @[IF2.scala 75:15]
  assign io_if2_resp_3_bits_isFault = ibuf_io_deq_3_bits_isFault; // @[IF2.scala 75:15]
  assign io_if2_resp_3_bits_isRedirect = ibuf_io_deq_3_bits_isRedirect; // @[IF2.scala 75:15]
  assign io_if_mmu_bits_vaddr = io_if2_req_bits_pc; // @[IF2.scala 107:24]
  assign io_mmu_if_ready = _io_mmu_if_ready_T & ~fault_lock & ~_io_mmu_if_ready_T_3; // @[IF2.scala 113:56]
  assign io_if_cmm_ill_vaddr = io_mmu_if_bits_vaddr; // @[IF2.scala 125:23]
  assign io_icache_get_valid = _icache_state_dnxt_T_10 & ~is_hit & _T_3; // @[IF2.scala 282:62]
  assign io_icache_get_bits_address = _io_icache_get_bits_T_2[31:0]; // @[Edges.scala 447:17 452:15]
  assign io_icache_access_ready = 1'h1; // @[IF2.scala 290:26]
  assign ibuf_clock = clock;
  assign ibuf_reset = reset;
  assign ibuf_io_enq_0_valid = _datRAM_0_io_enw_T_5 & io_mmu_if_valid & icache_state_qout != 4'h0 & _datRAM_0_io_enw_T_1
     & ibuf_io_enq_3_ready | _ibuf_io_enq_0_valid_T_16; // @[IF2.scala 361:222]
  assign ibuf_io_enq_0_bits_pc = _GEN_41[38:0];
  assign ibuf_io_enq_0_bits_instr = _GEN_40[15:0];
  assign ibuf_io_enq_0_bits_isFault = is_access_fault | is_paging_fault; // @[IF2.scala 343:60 348:33]
  assign ibuf_io_enq_1_valid = _ibuf_io_enq_0_valid_T_6 & io_mmu_if_bits_paddr[2:1] <= 2'h2 & io_if2_req_bits_isActive_1
    ; // @[IF2.scala 365:217]
  assign ibuf_io_enq_1_bits_pc = _ibuf_io_enq_1_bits_pc_T_1[38:0]; // @[IF2.scala 332:31]
  assign ibuf_io_enq_1_bits_instr = reAlign_instr[31:16]; // @[IF2.scala 331:31]
  assign ibuf_io_enq_2_valid = _ibuf_io_enq_0_valid_T_6 & io_mmu_if_bits_paddr[2:1] <= 2'h1 & io_if2_req_bits_isActive_2
    ; // @[IF2.scala 365:217]
  assign ibuf_io_enq_2_bits_pc = _ibuf_io_enq_2_bits_pc_T_1[38:0]; // @[IF2.scala 332:31]
  assign ibuf_io_enq_2_bits_instr = reAlign_instr[47:32]; // @[IF2.scala 331:31]
  assign ibuf_io_enq_3_valid = _ibuf_io_enq_0_valid_T_6 & io_mmu_if_bits_paddr[2:1] <= 2'h0 & io_if2_req_bits_isActive_3
    ; // @[IF2.scala 365:217]
  assign ibuf_io_enq_3_bits_pc = _ibuf_io_enq_3_bits_pc_T_1[38:0]; // @[IF2.scala 332:31]
  assign ibuf_io_enq_3_bits_instr = reAlign_instr[63:48]; // @[IF2.scala 331:48]
  assign ibuf_io_deq_0_ready = io_if2_resp_0_ready; // @[IF2.scala 75:15]
  assign ibuf_io_deq_1_ready = io_if2_resp_1_ready; // @[IF2.scala 75:15]
  assign ibuf_io_deq_2_ready = io_if2_resp_2_ready; // @[IF2.scala 75:15]
  assign ibuf_io_deq_3_ready = io_if2_resp_3_ready; // @[IF2.scala 75:15]
  assign ibuf_io_flush = io_flush; // @[IF2.scala 74:17]
  assign datRAM_0_clock = clock;
  assign datRAM_0_io_addrr = io_mmu_if_bits_paddr[5:4]; // @[IF2.scala 236:47]
  assign datRAM_0_io_addrw = io_mmu_if_bits_paddr[5:4]; // @[IF2.scala 237:47]
  assign datRAM_0_io_dataw_0 = icache_access_data[7:0]; // @[IF2.scala 249:65]
  assign datRAM_0_io_dataw_1 = icache_access_data[15:8]; // @[IF2.scala 249:65]
  assign datRAM_0_io_dataw_2 = icache_access_data[23:16]; // @[IF2.scala 249:65]
  assign datRAM_0_io_dataw_3 = icache_access_data[31:24]; // @[IF2.scala 249:65]
  assign datRAM_0_io_dataw_4 = icache_access_data[39:32]; // @[IF2.scala 249:65]
  assign datRAM_0_io_dataw_5 = icache_access_data[47:40]; // @[IF2.scala 249:65]
  assign datRAM_0_io_dataw_6 = icache_access_data[55:48]; // @[IF2.scala 249:65]
  assign datRAM_0_io_dataw_7 = icache_access_data[63:56]; // @[IF2.scala 249:65]
  assign datRAM_0_io_dataw_8 = icache_access_data[71:64]; // @[IF2.scala 249:65]
  assign datRAM_0_io_dataw_9 = icache_access_data[79:72]; // @[IF2.scala 249:65]
  assign datRAM_0_io_dataw_10 = icache_access_data[87:80]; // @[IF2.scala 249:65]
  assign datRAM_0_io_dataw_11 = icache_access_data[95:88]; // @[IF2.scala 249:65]
  assign datRAM_0_io_dataw_12 = icache_access_data[103:96]; // @[IF2.scala 249:65]
  assign datRAM_0_io_dataw_13 = icache_access_data[111:104]; // @[IF2.scala 249:65]
  assign datRAM_0_io_dataw_14 = icache_access_data[119:112]; // @[IF2.scala 249:65]
  assign datRAM_0_io_dataw_15 = icache_access_data[127:120]; // @[IF2.scala 249:65]
  assign datRAM_0_io_datawm_0 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_0_io_datawm_1 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_0_io_datawm_2 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_0_io_datawm_3 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_0_io_datawm_4 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_0_io_datawm_5 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_0_io_datawm_6 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_0_io_datawm_7 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_0_io_datawm_8 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_0_io_datawm_9 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_0_io_datawm_10 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_0_io_datawm_11 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_0_io_datawm_12 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_0_io_datawm_13 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_0_io_datawm_14 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_0_io_datawm_15 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_0_io_enw = _icache_state_dnxt_T_15 & icache_state_dnxt == 4'h0 & ~cb_sel & ~kill_trans & _T_3; // @[IF2.scala 244:115]
  assign datRAM_0_io_enr = _icache_state_dnxt_T | _icache_state_dnxt_T_10; // @[IF2.scala 241:52]
  assign datRAM_1_clock = clock;
  assign datRAM_1_io_addrr = io_mmu_if_bits_paddr[5:4]; // @[IF2.scala 236:47]
  assign datRAM_1_io_addrw = io_mmu_if_bits_paddr[5:4]; // @[IF2.scala 237:47]
  assign datRAM_1_io_dataw_0 = icache_access_data[7:0]; // @[IF2.scala 249:65]
  assign datRAM_1_io_dataw_1 = icache_access_data[15:8]; // @[IF2.scala 249:65]
  assign datRAM_1_io_dataw_2 = icache_access_data[23:16]; // @[IF2.scala 249:65]
  assign datRAM_1_io_dataw_3 = icache_access_data[31:24]; // @[IF2.scala 249:65]
  assign datRAM_1_io_dataw_4 = icache_access_data[39:32]; // @[IF2.scala 249:65]
  assign datRAM_1_io_dataw_5 = icache_access_data[47:40]; // @[IF2.scala 249:65]
  assign datRAM_1_io_dataw_6 = icache_access_data[55:48]; // @[IF2.scala 249:65]
  assign datRAM_1_io_dataw_7 = icache_access_data[63:56]; // @[IF2.scala 249:65]
  assign datRAM_1_io_dataw_8 = icache_access_data[71:64]; // @[IF2.scala 249:65]
  assign datRAM_1_io_dataw_9 = icache_access_data[79:72]; // @[IF2.scala 249:65]
  assign datRAM_1_io_dataw_10 = icache_access_data[87:80]; // @[IF2.scala 249:65]
  assign datRAM_1_io_dataw_11 = icache_access_data[95:88]; // @[IF2.scala 249:65]
  assign datRAM_1_io_dataw_12 = icache_access_data[103:96]; // @[IF2.scala 249:65]
  assign datRAM_1_io_dataw_13 = icache_access_data[111:104]; // @[IF2.scala 249:65]
  assign datRAM_1_io_dataw_14 = icache_access_data[119:112]; // @[IF2.scala 249:65]
  assign datRAM_1_io_dataw_15 = icache_access_data[127:120]; // @[IF2.scala 249:65]
  assign datRAM_1_io_datawm_0 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_1_io_datawm_1 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_1_io_datawm_2 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_1_io_datawm_3 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_1_io_datawm_4 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_1_io_datawm_5 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_1_io_datawm_6 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_1_io_datawm_7 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_1_io_datawm_8 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_1_io_datawm_9 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_1_io_datawm_10 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_1_io_datawm_11 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_1_io_datawm_12 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_1_io_datawm_13 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_1_io_datawm_14 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_1_io_datawm_15 = 1'h1; // @[IF2.scala 247:{35,35}]
  assign datRAM_1_io_enw = _icache_state_dnxt_T_15 & icache_state_dnxt == 4'h0 & cb_sel & ~kill_trans & _T_3; // @[IF2.scala 244:115]
  assign datRAM_1_io_enr = _icache_state_dnxt_T | _icache_state_dnxt_T_10; // @[IF2.scala 241:52]
  assign tagRAM_0_clock = clock;
  assign tagRAM_0_io_addrr = io_mmu_if_bits_paddr[5:4]; // @[IF2.scala 238:47]
  assign tagRAM_0_io_addrw = io_mmu_if_bits_paddr[5:4]; // @[IF2.scala 239:47]
  assign tagRAM_0_io_dataw = io_mmu_if_bits_paddr[31:6]; // @[IF2.scala 80:37]
  assign tagRAM_0_io_enw = _datRAM_0_io_enw_T_6 & _T_3; // @[IF2.scala 245:115]
  assign tagRAM_0_io_enr = _icache_state_dnxt_T | _icache_state_dnxt_T_10; // @[IF2.scala 242:52]
  assign tagRAM_1_clock = clock;
  assign tagRAM_1_io_addrr = io_mmu_if_bits_paddr[5:4]; // @[IF2.scala 238:47]
  assign tagRAM_1_io_addrw = io_mmu_if_bits_paddr[5:4]; // @[IF2.scala 239:47]
  assign tagRAM_1_io_dataw = io_mmu_if_bits_paddr[31:6]; // @[IF2.scala 80:37]
  assign tagRAM_1_io_enw = _datRAM_1_io_enw_T_6 & _T_3; // @[IF2.scala 245:115]
  assign tagRAM_1_io_enr = _icache_state_dnxt_T | _icache_state_dnxt_T_10; // @[IF2.scala 242:52]
  assign rpl_sel_rpl_prng_clock = clock;
  assign rpl_sel_rpl_prng_reset = reset;
  assign rpl_sel_rpl_prng_io_increment = icache_state_qout != 4'h2; // @[IF2.scala 225:37]
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_T) begin // @[Edges.scala 234:17]
      if (first) begin // @[Edges.scala 235:21]
        counter <= beats1;
      end else begin
        counter <= counter1;
      end
    end
    if (_T & ~is_trans_done) begin // @[IF2.scala 292:49]
      icache_access_data_lo_0 <= io_icache_access_bits_data; // @[IF2.scala 293:37]
    end
    if (reset) begin // @[IF2.scala 71:27]
      kill_trans <= 1'h0; // @[IF2.scala 71:27]
    end else begin
      kill_trans <= _GEN_45;
    end
    if (reset) begin // @[IF2.scala 180:25]
      is_valid_3_1 <= 1'h0; // @[IF2.scala 180:25]
    end else if (io_ifence) begin // @[IF2.scala 270:23]
      is_valid_3_1 <= 1'h0; // @[IF2.scala 271:23]
    end else if (_datRAM_0_io_enw_T_2 & _datRAM_0_io_enw_T_5 & _T_3) begin // @[IF2.scala 265:91]
      is_valid_3_1 <= _GEN_18;
    end
    if (reset) begin // @[IF2.scala 180:25]
      is_valid_2_1 <= 1'h0; // @[IF2.scala 180:25]
    end else if (io_ifence) begin // @[IF2.scala 270:23]
      is_valid_2_1 <= 1'h0; // @[IF2.scala 271:23]
    end else if (_datRAM_0_io_enw_T_2 & _datRAM_0_io_enw_T_5 & _T_3) begin // @[IF2.scala 265:91]
      is_valid_2_1 <= _GEN_16;
    end
    if (reset) begin // @[IF2.scala 180:25]
      is_valid_1_1 <= 1'h0; // @[IF2.scala 180:25]
    end else if (io_ifence) begin // @[IF2.scala 270:23]
      is_valid_1_1 <= 1'h0; // @[IF2.scala 271:23]
    end else if (_datRAM_0_io_enw_T_2 & _datRAM_0_io_enw_T_5 & _T_3) begin // @[IF2.scala 265:91]
      is_valid_1_1 <= _GEN_14;
    end
    if (reset) begin // @[IF2.scala 180:25]
      is_valid_0_1 <= 1'h0; // @[IF2.scala 180:25]
    end else if (io_ifence) begin // @[IF2.scala 270:23]
      is_valid_0_1 <= 1'h0; // @[IF2.scala 271:23]
    end else if (_datRAM_0_io_enw_T_2 & _datRAM_0_io_enw_T_5 & _T_3) begin // @[IF2.scala 265:91]
      is_valid_0_1 <= _GEN_12;
    end
    if (reset) begin // @[IF2.scala 180:25]
      is_valid_3_0 <= 1'h0; // @[IF2.scala 180:25]
    end else if (io_ifence) begin // @[IF2.scala 270:23]
      is_valid_3_0 <= 1'h0; // @[IF2.scala 271:23]
    end else if (_datRAM_0_io_enw_T_2 & _datRAM_0_io_enw_T_5 & _T_3) begin // @[IF2.scala 265:91]
      is_valid_3_0 <= _GEN_17;
    end
    if (reset) begin // @[IF2.scala 180:25]
      is_valid_2_0 <= 1'h0; // @[IF2.scala 180:25]
    end else if (io_ifence) begin // @[IF2.scala 270:23]
      is_valid_2_0 <= 1'h0; // @[IF2.scala 271:23]
    end else if (_datRAM_0_io_enw_T_2 & _datRAM_0_io_enw_T_5 & _T_3) begin // @[IF2.scala 265:91]
      is_valid_2_0 <= _GEN_15;
    end
    if (reset) begin // @[IF2.scala 180:25]
      is_valid_1_0 <= 1'h0; // @[IF2.scala 180:25]
    end else if (io_ifence) begin // @[IF2.scala 270:23]
      is_valid_1_0 <= 1'h0; // @[IF2.scala 271:23]
    end else if (_datRAM_0_io_enw_T_2 & _datRAM_0_io_enw_T_5 & _T_3) begin // @[IF2.scala 265:91]
      is_valid_1_0 <= _GEN_13;
    end
    if (reset) begin // @[IF2.scala 180:25]
      is_valid_0_0 <= 1'h0; // @[IF2.scala 180:25]
    end else if (io_ifence) begin // @[IF2.scala 270:23]
      is_valid_0_0 <= 1'h0; // @[IF2.scala 271:23]
    end else if (_datRAM_0_io_enw_T_2 & _datRAM_0_io_enw_T_5 & _T_3) begin // @[IF2.scala 265:91]
      is_valid_0_0 <= _GEN_11;
    end
    if (reset) begin // @[IF2.scala 98:34]
      icache_state_qout <= 4'h0; // @[IF2.scala 98:34]
    end else begin
      icache_state_qout <= icache_state_dnxt; // @[IF2.scala 98:34]
    end
    if (reset) begin // @[IF2.scala 100:27]
      fault_lock <= 1'h0; // @[IF2.scala 100:27]
    end else if (io_flush) begin // @[IF2.scala 120:20]
      fault_lock <= 1'h0; // @[IF2.scala 120:33]
    end else begin
      fault_lock <= _GEN_1;
    end
    REG <= io_mmu_if_bits_paddr; // @[IF2.scala 300:21]
    REG_1 <= kill_trans; // @[IF2.scala 300:108]
    REG_2 <= io_flush; // @[IF2.scala 300:131]
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(is_access_fault & is_paging_fault))) begin
          $fwrite(32'h80000002,"Assertion failed\n    at IF2.scala:123 assert( ~(is_access_fault & is_paging_fault) )\n"
            ); // @[IF2.scala 123:9]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(is_access_fault & is_paging_fault)) & ~reset) begin
          $fatal; // @[IF2.scala 123:9]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_icache_state_dnxt_T_10 & _T_10 & ~(_T_13 <= 2'h1)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at IF2.scala:193 assert(PopCount(res) <= 1.U)\n"); // @[IF2.scala 193:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_13 <= 2'h1) & (_icache_state_dnxt_T_10 & _T_10)) begin
          $fatal; // @[IF2.scala 193:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_69 & ~(~(tagRAM_0_io_datar == tagRAM_1_io_datar & _GEN_6 & _GEN_10))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed at icache, multi-tag are equal!\n    at IF2.scala:258 assert( ~( tagRAM(i).io.datar === tagRAM(j).io.datar & is_valid(cl_sel)(i) & is_valid(cl_sel)(j) ), \"Assert Failed at icache, multi-tag are equal!\" )\n"
            ); // @[IF2.scala 258:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(tagRAM_0_io_datar == tagRAM_1_io_datar & _GEN_6 & _GEN_10)) & _GEN_69) begin
          $fatal; // @[IF2.scala 258:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_10 & ~(~(REG != io_mmu_if_bits_paddr & _icache_state_dnxt_T_15 & ~REG_1 & ~REG_2))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, req paddr cannot change without flush.\n    at IF2.scala:300 assert( ~((RegNext(io.mmu_if.bits.paddr) =/= io.mmu_if.bits.paddr) & icache_state_qout === 2.U & ~RegNext(kill_trans) & ~RegNext(io.flush)), \"Assert Failed, req paddr cannot change without flush.\" )\n"
            ); // @[IF2.scala 300:9]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(REG != io_mmu_if_bits_paddr & _icache_state_dnxt_T_15 & ~REG_1 & ~REG_2)) & _T_10) begin
          $fatal; // @[IF2.scala 300:9]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_ifence & _T_10 & _T_3) begin
          $fwrite(32'h80000002,"Assertion failed\n    at IF2.scala:377 when( io.ifence ) { assert(io.flush) }\n"); // @[IF2.scala 377:29]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_3 & (io_ifence & _T_10)) begin
          $fatal; // @[IF2.scala 377:29]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  counter = _RAND_0[0:0];
  _RAND_1 = {2{`RANDOM}};
  icache_access_data_lo_0 = _RAND_1[63:0];
  _RAND_2 = {1{`RANDOM}};
  kill_trans = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  is_valid_3_1 = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  is_valid_2_1 = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  is_valid_1_1 = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  is_valid_0_1 = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  is_valid_3_0 = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  is_valid_2_0 = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  is_valid_1_0 = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  is_valid_0_0 = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  icache_state_qout = _RAND_11[3:0];
  _RAND_12 = {1{`RANDOM}};
  fault_lock = _RAND_12[0:0];
  _RAND_13 = {2{`RANDOM}};
  REG = _RAND_13[63:0];
  _RAND_14 = {1{`RANDOM}};
  REG_1 = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  REG_2 = _RAND_15[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module RePort(
  input         clock,
  input         reset,
  output        io_enq_0_ready,
  input         io_enq_0_valid,
  input         io_enq_0_bits_isRVC,
  input  [31:0] io_enq_0_bits_instr,
  input  [38:0] io_enq_0_bits_pc,
  output        io_enq_1_ready,
  input         io_enq_1_valid,
  input         io_enq_1_bits_isRVC,
  input  [31:0] io_enq_1_bits_instr,
  input  [38:0] io_enq_1_bits_pc,
  output        io_enq_2_ready,
  input         io_enq_2_valid,
  input         io_enq_2_bits_isRVC,
  input  [31:0] io_enq_2_bits_instr,
  input  [38:0] io_enq_2_bits_pc,
  output        io_enq_3_ready,
  input         io_enq_3_valid,
  input         io_enq_3_bits_isRVC,
  input  [31:0] io_enq_3_bits_instr,
  input  [38:0] io_enq_3_bits_pc,
  input         io_deq_0_ready,
  output        io_deq_0_valid,
  output        io_deq_0_bits_isRVC,
  output [31:0] io_deq_0_bits_instr,
  output [38:0] io_deq_0_bits_pc,
  input         io_deq_1_ready,
  output        io_deq_1_valid,
  output        io_deq_1_bits_isRVC,
  output [31:0] io_deq_1_bits_instr,
  output [38:0] io_deq_1_bits_pc,
  input         io_deq_2_ready,
  output        io_deq_2_valid,
  output        io_deq_2_bits_isRVC,
  output [31:0] io_deq_2_bits_instr,
  output [38:0] io_deq_2_bits_pc,
  input         io_deq_3_ready,
  output        io_deq_3_valid,
  output        io_deq_3_bits_isRVC,
  output [31:0] io_deq_3_bits_instr,
  output [38:0] io_deq_3_bits_pc
);
  wire  _T = io_enq_0_ready & io_enq_0_valid; // @[Decoupled.scala 52:35]
  wire  _T_1 = io_enq_1_ready & io_enq_1_valid; // @[Decoupled.scala 52:35]
  wire  _T_2 = io_enq_2_ready & io_enq_2_valid; // @[Decoupled.scala 52:35]
  wire  _T_3 = io_enq_3_ready & io_enq_3_valid; // @[Decoupled.scala 52:35]
  wire [1:0] _T_4 = _T + _T_1; // @[Bitwise.scala 51:90]
  wire [1:0] _T_6 = _T_2 + _T_3; // @[Bitwise.scala 51:90]
  wire [2:0] _T_8 = _T_4 + _T_6; // @[Bitwise.scala 51:90]
  wire  _T_10 = io_deq_0_ready & io_deq_0_valid; // @[Decoupled.scala 52:35]
  wire  _T_11 = io_deq_1_ready & io_deq_1_valid; // @[Decoupled.scala 52:35]
  wire  _T_12 = io_deq_2_ready & io_deq_2_valid; // @[Decoupled.scala 52:35]
  wire  _T_13 = io_deq_3_ready & io_deq_3_valid; // @[Decoupled.scala 52:35]
  wire [1:0] _T_14 = _T_10 + _T_11; // @[Bitwise.scala 51:90]
  wire [1:0] _T_16 = _T_12 + _T_13; // @[Bitwise.scala 51:90]
  wire [2:0] _T_18 = _T_14 + _T_16; // @[Bitwise.scala 51:90]
  wire [3:0] in = {io_enq_3_valid,io_enq_2_valid,io_enq_1_valid,io_enq_0_valid}; // @[RePort.scala 61:48]
  wire  is_end_0 = in == 4'h0; // @[RePort.scala 62:21]
  wire [1:0] _sel_0_T_8 = in[2] ? 2'h2 : 2'h3; // @[RePort.scala 63:45]
  wire [1:0] _sel_0_T_9 = in[1] ? 2'h1 : _sel_0_T_8; // @[RePort.scala 63:45]
  wire [1:0] sel_0 = in[0] ? 2'h0 : _sel_0_T_9; // @[RePort.scala 63:45]
  wire [3:0] _in_next_0_T = 4'h1 << sel_0; // @[OneHot.scala 57:35]
  wire [3:0] _in_next_0_T_1 = ~_in_next_0_T; // @[RePort.scala 64:24]
  wire [3:0] in_next_0 = in & _in_next_0_T_1; // @[RePort.scala 64:22]
  wire  is_end_1 = in_next_0 == 4'h0; // @[RePort.scala 69:21]
  wire [1:0] _sel_1_T_8 = in_next_0[2] ? 2'h2 : 2'h3; // @[RePort.scala 70:45]
  wire [1:0] _sel_1_T_9 = in_next_0[1] ? 2'h1 : _sel_1_T_8; // @[RePort.scala 70:45]
  wire [1:0] sel_1 = in_next_0[0] ? 2'h0 : _sel_1_T_9; // @[RePort.scala 70:45]
  wire [3:0] _in_next_1_T = 4'h1 << sel_1; // @[OneHot.scala 57:35]
  wire [3:0] _in_next_1_T_1 = ~_in_next_1_T; // @[RePort.scala 71:24]
  wire [3:0] in_next_1 = in_next_0 & _in_next_1_T_1; // @[RePort.scala 71:22]
  wire  is_end_2 = in_next_1 == 4'h0; // @[RePort.scala 69:21]
  wire [1:0] _sel_2_T_8 = in_next_1[2] ? 2'h2 : 2'h3; // @[RePort.scala 70:45]
  wire [1:0] _sel_2_T_9 = in_next_1[1] ? 2'h1 : _sel_2_T_8; // @[RePort.scala 70:45]
  wire [1:0] sel_2 = in_next_1[0] ? 2'h0 : _sel_2_T_9; // @[RePort.scala 70:45]
  wire [3:0] _in_next_2_T = 4'h1 << sel_2; // @[OneHot.scala 57:35]
  wire [3:0] _in_next_2_T_1 = ~_in_next_2_T; // @[RePort.scala 71:24]
  wire [3:0] in_next_2 = in_next_1 & _in_next_2_T_1; // @[RePort.scala 71:22]
  wire  is_end_3 = in_next_2 == 4'h0; // @[RePort.scala 69:21]
  wire [1:0] _sel_3_T_8 = in_next_2[2] ? 2'h2 : 2'h3; // @[RePort.scala 70:45]
  wire [1:0] _sel_3_T_9 = in_next_2[1] ? 2'h1 : _sel_3_T_8; // @[RePort.scala 70:45]
  wire [1:0] sel_3 = in_next_2[0] ? 2'h0 : _sel_3_T_9; // @[RePort.scala 70:45]
  wire  _GEN_1 = 2'h1 == sel_0 ? io_enq_1_bits_isRVC : io_enq_0_bits_isRVC; // @[RePort.scala 76:{22,22}]
  wire  _GEN_2 = 2'h2 == sel_0 ? io_enq_2_bits_isRVC : _GEN_1; // @[RePort.scala 76:{22,22}]
  wire  _GEN_3 = 2'h3 == sel_0 ? io_enq_3_bits_isRVC : _GEN_2; // @[RePort.scala 76:{22,22}]
  wire [31:0] _GEN_41 = 2'h1 == sel_0 ? io_enq_1_bits_instr : io_enq_0_bits_instr; // @[RePort.scala 76:{22,22}]
  wire [31:0] _GEN_42 = 2'h2 == sel_0 ? io_enq_2_bits_instr : _GEN_41; // @[RePort.scala 76:{22,22}]
  wire [31:0] _GEN_43 = 2'h3 == sel_0 ? io_enq_3_bits_instr : _GEN_42; // @[RePort.scala 76:{22,22}]
  wire [38:0] _GEN_45 = 2'h1 == sel_0 ? io_enq_1_bits_pc : io_enq_0_bits_pc; // @[RePort.scala 76:{22,22}]
  wire [38:0] _GEN_46 = 2'h2 == sel_0 ? io_enq_2_bits_pc : _GEN_45; // @[RePort.scala 76:{22,22}]
  wire [38:0] _GEN_47 = 2'h3 == sel_0 ? io_enq_3_bits_pc : _GEN_46; // @[RePort.scala 76:{22,22}]
  wire  _GEN_76 = 2'h1 == sel_1 ? io_enq_1_bits_isRVC : io_enq_0_bits_isRVC; // @[RePort.scala 76:{22,22}]
  wire  _GEN_77 = 2'h2 == sel_1 ? io_enq_2_bits_isRVC : _GEN_76; // @[RePort.scala 76:{22,22}]
  wire  _GEN_78 = 2'h3 == sel_1 ? io_enq_3_bits_isRVC : _GEN_77; // @[RePort.scala 76:{22,22}]
  wire [31:0] _GEN_116 = 2'h1 == sel_1 ? io_enq_1_bits_instr : io_enq_0_bits_instr; // @[RePort.scala 76:{22,22}]
  wire [31:0] _GEN_117 = 2'h2 == sel_1 ? io_enq_2_bits_instr : _GEN_116; // @[RePort.scala 76:{22,22}]
  wire [31:0] _GEN_118 = 2'h3 == sel_1 ? io_enq_3_bits_instr : _GEN_117; // @[RePort.scala 76:{22,22}]
  wire [38:0] _GEN_120 = 2'h1 == sel_1 ? io_enq_1_bits_pc : io_enq_0_bits_pc; // @[RePort.scala 76:{22,22}]
  wire [38:0] _GEN_121 = 2'h2 == sel_1 ? io_enq_2_bits_pc : _GEN_120; // @[RePort.scala 76:{22,22}]
  wire [38:0] _GEN_122 = 2'h3 == sel_1 ? io_enq_3_bits_pc : _GEN_121; // @[RePort.scala 76:{22,22}]
  wire  _GEN_151 = 2'h1 == sel_2 ? io_enq_1_bits_isRVC : io_enq_0_bits_isRVC; // @[RePort.scala 76:{22,22}]
  wire  _GEN_152 = 2'h2 == sel_2 ? io_enq_2_bits_isRVC : _GEN_151; // @[RePort.scala 76:{22,22}]
  wire  _GEN_153 = 2'h3 == sel_2 ? io_enq_3_bits_isRVC : _GEN_152; // @[RePort.scala 76:{22,22}]
  wire [31:0] _GEN_191 = 2'h1 == sel_2 ? io_enq_1_bits_instr : io_enq_0_bits_instr; // @[RePort.scala 76:{22,22}]
  wire [31:0] _GEN_192 = 2'h2 == sel_2 ? io_enq_2_bits_instr : _GEN_191; // @[RePort.scala 76:{22,22}]
  wire [31:0] _GEN_193 = 2'h3 == sel_2 ? io_enq_3_bits_instr : _GEN_192; // @[RePort.scala 76:{22,22}]
  wire [38:0] _GEN_195 = 2'h1 == sel_2 ? io_enq_1_bits_pc : io_enq_0_bits_pc; // @[RePort.scala 76:{22,22}]
  wire [38:0] _GEN_196 = 2'h2 == sel_2 ? io_enq_2_bits_pc : _GEN_195; // @[RePort.scala 76:{22,22}]
  wire [38:0] _GEN_197 = 2'h3 == sel_2 ? io_enq_3_bits_pc : _GEN_196; // @[RePort.scala 76:{22,22}]
  wire  _GEN_226 = 2'h1 == sel_3 ? io_enq_1_bits_isRVC : io_enq_0_bits_isRVC; // @[RePort.scala 76:{22,22}]
  wire  _GEN_227 = 2'h2 == sel_3 ? io_enq_2_bits_isRVC : _GEN_226; // @[RePort.scala 76:{22,22}]
  wire  _GEN_228 = 2'h3 == sel_3 ? io_enq_3_bits_isRVC : _GEN_227; // @[RePort.scala 76:{22,22}]
  wire [31:0] _GEN_266 = 2'h1 == sel_3 ? io_enq_1_bits_instr : io_enq_0_bits_instr; // @[RePort.scala 76:{22,22}]
  wire [31:0] _GEN_267 = 2'h2 == sel_3 ? io_enq_2_bits_instr : _GEN_266; // @[RePort.scala 76:{22,22}]
  wire [31:0] _GEN_268 = 2'h3 == sel_3 ? io_enq_3_bits_instr : _GEN_267; // @[RePort.scala 76:{22,22}]
  wire [38:0] _GEN_270 = 2'h1 == sel_3 ? io_enq_1_bits_pc : io_enq_0_bits_pc; // @[RePort.scala 76:{22,22}]
  wire [38:0] _GEN_271 = 2'h2 == sel_3 ? io_enq_2_bits_pc : _GEN_270; // @[RePort.scala 76:{22,22}]
  wire [38:0] _GEN_272 = 2'h3 == sel_3 ? io_enq_3_bits_pc : _GEN_271; // @[RePort.scala 76:{22,22}]
  assign io_enq_0_ready = io_deq_0_ready; // @[RePort.scala 80:69]
  assign io_enq_1_ready = io_deq_1_ready; // @[RePort.scala 80:91]
  assign io_enq_2_ready = io_deq_2_ready; // @[RePort.scala 80:91]
  assign io_enq_3_ready = io_deq_3_ready; // @[RePort.scala 80:91]
  assign io_deq_0_valid = _T_8 > 3'h0; // @[RePort.scala 79:81]
  assign io_deq_0_bits_isRVC = ~is_end_0 & _GEN_3; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_instr = ~is_end_0 ? _GEN_43 : 32'h0; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_pc = ~is_end_0 ? _GEN_47 : 39'h0; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_1_valid = _T_8 > 3'h1; // @[RePort.scala 79:81]
  assign io_deq_1_bits_isRVC = ~is_end_1 & _GEN_78; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_1_bits_instr = ~is_end_1 ? _GEN_118 : 32'h0; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_1_bits_pc = ~is_end_1 ? _GEN_122 : 39'h0; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_2_valid = _T_8 > 3'h2; // @[RePort.scala 79:81]
  assign io_deq_2_bits_isRVC = ~is_end_2 & _GEN_153; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_2_bits_instr = ~is_end_2 ? _GEN_193 : 32'h0; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_2_bits_pc = ~is_end_2 ? _GEN_197 : 39'h0; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_3_valid = _T_8 > 3'h3; // @[RePort.scala 79:81]
  assign io_deq_3_bits_isRVC = ~is_end_3 & _GEN_228; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_3_bits_instr = ~is_end_3 ? _GEN_268 : 32'h0; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_3_bits_pc = ~is_end_3 ? _GEN_272 : 39'h0; // @[RePort.scala 37:21 75:24 76:22]
  always @(posedge clock) begin
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(_T_8 == _T_18)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed at RePort! enq-fire should equal to deq-fire!\n    at RePort.scala:32 assert ( PopCount( io.enq.map(_.fire) ) === PopCount( io.deq.map(_.fire) ), \"Assert Failed at RePort! enq-fire should equal to deq-fire!\"  )\n"
            ); // @[RePort.scala 32:12]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_8 == _T_18) & ~reset) begin
          $fatal; // @[RePort.scala 32:12]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
endmodule
module Queue(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [38:0] io_enq_bits_target,
  input         io_deq_ready,
  output        io_deq_valid,
  output [38:0] io_deq_bits_target
);
`ifdef RANDOMIZE_MEM_INIT
  reg [63:0] _RAND_0;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_1;
`endif // RANDOMIZE_REG_INIT
  reg [38:0] ram_target [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_target_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_target_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [38:0] ram_target_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [38:0] ram_target_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_target_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_target_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_target_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  _do_enq_T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _do_deq_T = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_9 = io_deq_ready ? 1'h0 : _do_enq_T; // @[Decoupled.scala 320:{26,35}]
  wire  do_enq = empty ? _GEN_9 : _do_enq_T; // @[Decoupled.scala 317:17]
  wire  do_deq = empty ? 1'h0 : _do_deq_T; // @[Decoupled.scala 317:17 319:14]
  assign ram_target_io_deq_bits_MPORT_en = 1'h1;
  assign ram_target_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_target_io_deq_bits_MPORT_data = ram_target[ram_target_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_target_MPORT_data = io_enq_bits_target;
  assign ram_target_MPORT_addr = 1'h0;
  assign ram_target_MPORT_mask = 1'h1;
  assign ram_target_MPORT_en = empty ? _GEN_9 : _do_enq_T;
  assign io_enq_ready = ~maybe_full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = io_enq_valid | ~empty; // @[Decoupled.scala 304:16 316:{24,39}]
  assign io_deq_bits_target = empty ? io_enq_bits_target : ram_target_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  always @(posedge clock) begin
    if (ram_target_MPORT_en & ram_target_MPORT_mask) begin
      ram_target[ram_target_MPORT_addr] <= ram_target_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      if (empty) begin // @[Decoupled.scala 317:17]
        if (io_deq_ready) begin // @[Decoupled.scala 320:26]
          maybe_full <= 1'h0; // @[Decoupled.scala 320:35]
        end else begin
          maybe_full <= _do_enq_T;
        end
      end else begin
        maybe_full <= _do_enq_T;
      end
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_target[initvar] = _RAND_0[38:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_1 = {1{`RANDOM}};
  maybe_full = _RAND_1[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module BTB(
  input         clock,
  input         reset,
  output        io_req_ready,
  input         io_req_valid,
  input  [38:0] io_req_bits_pc,
  input         io_resp_ready,
  output        io_resp_valid,
  output [38:0] io_resp_bits_target,
  input         io_update_valid,
  input  [38:0] io_update_bits_target,
  input  [38:0] io_update_bits_pc,
  output        io_isReady
);
`ifdef RANDOMIZE_MEM_INIT
  reg [63:0] _RAND_0;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
`endif // RANDOMIZE_REG_INIT
  wire  bypassFifo_clock; // @[BTB.scala 41:26]
  wire  bypassFifo_reset; // @[BTB.scala 41:26]
  wire  bypassFifo_io_enq_ready; // @[BTB.scala 41:26]
  wire  bypassFifo_io_enq_valid; // @[BTB.scala 41:26]
  wire [38:0] bypassFifo_io_enq_bits_target; // @[BTB.scala 41:26]
  wire  bypassFifo_io_deq_ready; // @[BTB.scala 41:26]
  wire  bypassFifo_io_deq_valid; // @[BTB.scala 41:26]
  wire [38:0] bypassFifo_io_deq_bits_target; // @[BTB.scala 41:26]
  reg [38:0] btb_table_target [0:3]; // @[BTB.scala 54:32]
  wire  btb_table_target_bypassFifo_io_enq_bits_MPORT_en; // @[BTB.scala 54:32]
  wire [1:0] btb_table_target_bypassFifo_io_enq_bits_MPORT_addr; // @[BTB.scala 54:32]
  wire [38:0] btb_table_target_bypassFifo_io_enq_bits_MPORT_data; // @[BTB.scala 54:32]
  wire [38:0] btb_table_target_MPORT_data; // @[BTB.scala 54:32]
  wire [1:0] btb_table_target_MPORT_addr; // @[BTB.scala 54:32]
  wire  btb_table_target_MPORT_mask; // @[BTB.scala 54:32]
  wire  btb_table_target_MPORT_en; // @[BTB.scala 54:32]
  reg  btb_table_target_bypassFifo_io_enq_bits_MPORT_en_pipe_0;
  reg [1:0] btb_table_target_bypassFifo_io_enq_bits_MPORT_addr_pipe_0;
  reg  por_reset; // @[BTB.scala 46:28]
  reg [1:0] reset_cl; // @[Counter.scala 61:40]
  wire  wrap_wrap = reset_cl == 2'h3; // @[Counter.scala 73:24]
  wire [1:0] _wrap_value_T_1 = reset_cl + 2'h1; // @[Counter.scala 77:24]
  wire  reset_end = por_reset & wrap_wrap; // @[Counter.scala 136:24 137:12]
  wire  _GEN_4 = reset_end ? 1'h0 : por_reset; // @[BTB.scala 48:23 46:28 48:35]
  wire [19:0] _GEN_14 = {{1'd0}, io_req_bits_pc[18:0]}; // @[Hash.scala 32:27]
  wire [19:0] rd_cl_sel_out_out = _GEN_14 ^ io_req_bits_pc[38:19]; // @[Hash.scala 32:27]
  wire [9:0] rd_cl_sel_out_out_out = rd_cl_sel_out_out[9:0] ^ rd_cl_sel_out_out[19:10]; // @[Hash.scala 32:27]
  wire [4:0] rd_cl_sel_out_out_out_out = rd_cl_sel_out_out_out[4:0] ^ rd_cl_sel_out_out_out[9:5]; // @[Hash.scala 32:27]
  wire [2:0] _GEN_15 = {{1'd0}, rd_cl_sel_out_out_out_out[1:0]}; // @[Hash.scala 32:27]
  wire [2:0] rd_cl_sel_out_out_out_out_out = _GEN_15 ^ rd_cl_sel_out_out_out_out[4:2]; // @[Hash.scala 32:27]
  wire [1:0] rd_cl_sel_out_out_out_out_in1 = ~rd_cl_sel_out_out_out_out_out[1:0]; // @[Hash.scala 117:17]
  wire [2:0] _GEN_16 = {{1'd0}, rd_cl_sel_out_out_out_out_in1}; // @[Hash.scala 121:18]
  wire [2:0] _rd_cl_sel_out_out_out_out_out_T_3 = _GEN_16 ^ rd_cl_sel_out_out_out_out_out; // @[Hash.scala 121:18]
  wire [19:0] _GEN_17 = {{1'd0}, io_update_bits_pc[18:0]}; // @[Hash.scala 32:27]
  wire [19:0] wr_cl_sel_out_out = _GEN_17 ^ io_update_bits_pc[38:19]; // @[Hash.scala 32:27]
  wire [9:0] wr_cl_sel_out_out_out = wr_cl_sel_out_out[9:0] ^ wr_cl_sel_out_out[19:10]; // @[Hash.scala 32:27]
  wire [4:0] wr_cl_sel_out_out_out_out = wr_cl_sel_out_out_out[4:0] ^ wr_cl_sel_out_out_out[9:5]; // @[Hash.scala 32:27]
  wire [2:0] _GEN_18 = {{1'd0}, wr_cl_sel_out_out_out_out[1:0]}; // @[Hash.scala 32:27]
  wire [2:0] wr_cl_sel_out_out_out_out_out = _GEN_18 ^ wr_cl_sel_out_out_out_out[4:2]; // @[Hash.scala 32:27]
  wire [1:0] wr_cl_sel_out_out_out_out_in1 = ~wr_cl_sel_out_out_out_out_out[1:0]; // @[Hash.scala 117:17]
  wire [2:0] _GEN_19 = {{1'd0}, wr_cl_sel_out_out_out_out_in1}; // @[Hash.scala 121:18]
  wire [2:0] _wr_cl_sel_out_out_out_out_out_T_3 = _GEN_19 ^ wr_cl_sel_out_out_out_out_out; // @[Hash.scala 121:18]
  wire [1:0] wr_cl_sel_out_out_out_out_out_1 = _wr_cl_sel_out_out_out_out_out_T_3[1:0]; // @[Hash.scala 115:19 121:11]
  reg  bypassFifo_io_enq_valid_REG; // @[BTB.scala 74:37]
  Queue bypassFifo ( // @[BTB.scala 41:26]
    .clock(bypassFifo_clock),
    .reset(bypassFifo_reset),
    .io_enq_ready(bypassFifo_io_enq_ready),
    .io_enq_valid(bypassFifo_io_enq_valid),
    .io_enq_bits_target(bypassFifo_io_enq_bits_target),
    .io_deq_ready(bypassFifo_io_deq_ready),
    .io_deq_valid(bypassFifo_io_deq_valid),
    .io_deq_bits_target(bypassFifo_io_deq_bits_target)
  );
  assign btb_table_target_bypassFifo_io_enq_bits_MPORT_en = btb_table_target_bypassFifo_io_enq_bits_MPORT_en_pipe_0;
  assign btb_table_target_bypassFifo_io_enq_bits_MPORT_addr = btb_table_target_bypassFifo_io_enq_bits_MPORT_addr_pipe_0;
  assign btb_table_target_bypassFifo_io_enq_bits_MPORT_data =
    btb_table_target[btb_table_target_bypassFifo_io_enq_bits_MPORT_addr]; // @[BTB.scala 54:32]
  assign btb_table_target_MPORT_data = por_reset ? 39'h80000000 : io_update_bits_target;
  assign btb_table_target_MPORT_addr = por_reset ? reset_cl : wr_cl_sel_out_out_out_out_out_1;
  assign btb_table_target_MPORT_mask = 1'h1;
  assign btb_table_target_MPORT_en = por_reset | io_update_valid;
  assign io_req_ready = bypassFifo_io_enq_ready; // @[BTB.scala 75:16]
  assign io_resp_valid = bypassFifo_io_deq_valid; // @[BTB.scala 77:17]
  assign io_resp_bits_target = bypassFifo_io_deq_bits_target; // @[BTB.scala 67:18]
  assign io_isReady = ~por_reset; // @[BTB.scala 49:19]
  assign bypassFifo_clock = clock;
  assign bypassFifo_reset = reset;
  assign bypassFifo_io_enq_valid = bypassFifo_io_enq_valid_REG; // @[BTB.scala 74:27]
  assign bypassFifo_io_enq_bits_target = btb_table_target_bypassFifo_io_enq_bits_MPORT_data; // @[BTB.scala 66:28]
  assign bypassFifo_io_deq_ready = io_resp_ready; // @[BTB.scala 78:27]
  always @(posedge clock) begin
    if (btb_table_target_MPORT_en & btb_table_target_MPORT_mask) begin
      btb_table_target[btb_table_target_MPORT_addr] <= btb_table_target_MPORT_data; // @[BTB.scala 54:32]
    end
    btb_table_target_bypassFifo_io_enq_bits_MPORT_en_pipe_0 <= 1'h1;
    if (1'h1) begin
      btb_table_target_bypassFifo_io_enq_bits_MPORT_addr_pipe_0 <= _rd_cl_sel_out_out_out_out_out_T_3[1:0];
    end
    por_reset <= reset | _GEN_4; // @[BTB.scala 46:{28,28}]
    if (reset) begin // @[Counter.scala 61:40]
      reset_cl <= 2'h0; // @[Counter.scala 61:40]
    end else if (por_reset) begin // @[Counter.scala 136:24]
      reset_cl <= _wrap_value_T_1; // @[Counter.scala 77:15]
    end
    bypassFifo_io_enq_valid_REG <= io_req_ready & io_req_valid; // @[Decoupled.scala 52:35]
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {2{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    btb_table_target[initvar] = _RAND_0[38:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_1 = {1{`RANDOM}};
  btb_table_target_bypassFifo_io_enq_bits_MPORT_en_pipe_0 = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  btb_table_target_bypassFifo_io_enq_bits_MPORT_addr_pipe_0 = _RAND_2[1:0];
  _RAND_3 = {1{`RANDOM}};
  por_reset = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  reset_cl = _RAND_4[1:0];
  _RAND_5 = {1{`RANDOM}};
  bypassFifo_io_enq_valid_REG = _RAND_5[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_1(
  input   clock,
  input   reset,
  output  io_enq_ready,
  input   io_enq_valid,
  input   io_enq_bits_0,
  input   io_enq_bits_1,
  input   io_deq_ready,
  output  io_deq_valid,
  output  io_deq_bits_0,
  output  io_deq_bits_1
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_2;
`endif // RANDOMIZE_REG_INIT
  reg  ram_0 [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_0_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_0_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_0_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_0_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_0_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_0_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_0_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_1 [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_1_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_1_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_1_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_1_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_1_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_1_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_1_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  _do_enq_T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _do_deq_T = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_10 = io_deq_ready ? 1'h0 : _do_enq_T; // @[Decoupled.scala 320:{26,35}]
  wire  do_enq = empty ? _GEN_10 : _do_enq_T; // @[Decoupled.scala 317:17]
  wire  do_deq = empty ? 1'h0 : _do_deq_T; // @[Decoupled.scala 317:17 319:14]
  assign ram_0_io_deq_bits_MPORT_en = 1'h1;
  assign ram_0_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_0_io_deq_bits_MPORT_data = ram_0[ram_0_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_0_MPORT_data = io_enq_bits_0;
  assign ram_0_MPORT_addr = 1'h0;
  assign ram_0_MPORT_mask = 1'h1;
  assign ram_0_MPORT_en = empty ? _GEN_10 : _do_enq_T;
  assign ram_1_io_deq_bits_MPORT_en = 1'h1;
  assign ram_1_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_1_io_deq_bits_MPORT_data = ram_1[ram_1_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_1_MPORT_data = io_enq_bits_1;
  assign ram_1_MPORT_addr = 1'h0;
  assign ram_1_MPORT_mask = 1'h1;
  assign ram_1_MPORT_en = empty ? _GEN_10 : _do_enq_T;
  assign io_enq_ready = ~maybe_full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = io_enq_valid | ~empty; // @[Decoupled.scala 304:16 316:{24,39}]
  assign io_deq_bits_0 = empty ? io_enq_bits_0 : ram_0_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_1 = empty ? io_enq_bits_1 : ram_1_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  always @(posedge clock) begin
    if (ram_0_MPORT_en & ram_0_MPORT_mask) begin
      ram_0[ram_0_MPORT_addr] <= ram_0_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_1_MPORT_en & ram_1_MPORT_mask) begin
      ram_1[ram_1_MPORT_addr] <= ram_1_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      if (empty) begin // @[Decoupled.scala 317:17]
        if (io_deq_ready) begin // @[Decoupled.scala 320:26]
          maybe_full <= 1'h0; // @[Decoupled.scala 320:35]
        end else begin
          maybe_full <= _do_enq_T;
        end
      end else begin
        maybe_full <= _do_enq_T;
      end
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_0[initvar] = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_1[initvar] = _RAND_1[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_2 = {1{`RANDOM}};
  maybe_full = _RAND_2[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module BIM(
  input         clock,
  input         reset,
  output        io_req_ready,
  input         io_req_valid,
  input  [38:0] io_req_bits_pc,
  input         io_resp_ready,
  output        io_resp_valid,
  output        io_resp_bits_bim_p,
  output        io_resp_bits_bim_h,
  input         io_update_valid,
  input         io_update_bits_bim_p,
  input         io_update_bits_bim_h,
  input  [38:0] io_update_bits_pc,
  input         io_update_bits_isFinalTaken,
  output        io_isReady
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_3;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
`endif // RANDOMIZE_REG_INIT
  reg  bim_P [0:7]; // @[BIM.scala 46:26]
  wire  bim_P_bypassFifo_io_enq_bits_0_MPORT_en; // @[BIM.scala 46:26]
  wire [2:0] bim_P_bypassFifo_io_enq_bits_0_MPORT_addr; // @[BIM.scala 46:26]
  wire  bim_P_bypassFifo_io_enq_bits_0_MPORT_data; // @[BIM.scala 46:26]
  wire  bim_P_MPORT_data; // @[BIM.scala 46:26]
  wire [2:0] bim_P_MPORT_addr; // @[BIM.scala 46:26]
  wire  bim_P_MPORT_mask; // @[BIM.scala 46:26]
  wire  bim_P_MPORT_en; // @[BIM.scala 46:26]
  reg  bim_P_bypassFifo_io_enq_bits_0_MPORT_en_pipe_0;
  reg [2:0] bim_P_bypassFifo_io_enq_bits_0_MPORT_addr_pipe_0;
  reg  bim_H [0:7]; // @[BIM.scala 52:26]
  wire  bim_H_bypassFifo_io_enq_bits_1_MPORT_en; // @[BIM.scala 52:26]
  wire [2:0] bim_H_bypassFifo_io_enq_bits_1_MPORT_addr; // @[BIM.scala 52:26]
  wire  bim_H_bypassFifo_io_enq_bits_1_MPORT_data; // @[BIM.scala 52:26]
  wire  bim_H_MPORT_1_data; // @[BIM.scala 52:26]
  wire [2:0] bim_H_MPORT_1_addr; // @[BIM.scala 52:26]
  wire  bim_H_MPORT_1_mask; // @[BIM.scala 52:26]
  wire  bim_H_MPORT_1_en; // @[BIM.scala 52:26]
  reg  bim_H_bypassFifo_io_enq_bits_1_MPORT_en_pipe_0;
  reg [2:0] bim_H_bypassFifo_io_enq_bits_1_MPORT_addr_pipe_0;
  wire  bypassFifo_clock; // @[BIM.scala 87:26]
  wire  bypassFifo_reset; // @[BIM.scala 87:26]
  wire  bypassFifo_io_enq_ready; // @[BIM.scala 87:26]
  wire  bypassFifo_io_enq_valid; // @[BIM.scala 87:26]
  wire  bypassFifo_io_enq_bits_0; // @[BIM.scala 87:26]
  wire  bypassFifo_io_enq_bits_1; // @[BIM.scala 87:26]
  wire  bypassFifo_io_deq_ready; // @[BIM.scala 87:26]
  wire  bypassFifo_io_deq_valid; // @[BIM.scala 87:26]
  wire  bypassFifo_io_deq_bits_0; // @[BIM.scala 87:26]
  wire  bypassFifo_io_deq_bits_1; // @[BIM.scala 87:26]
  reg  por_reset; // @[BIM.scala 37:26]
  reg [2:0] reset_cl; // @[Counter.scala 61:40]
  wire  wrap_wrap = reset_cl == 3'h7; // @[Counter.scala 73:24]
  wire [2:0] _wrap_value_T_1 = reset_cl + 3'h1; // @[Counter.scala 77:24]
  wire  reset_end = por_reset & wrap_wrap; // @[Counter.scala 136:24 137:12]
  wire  _GEN_4 = reset_end ? 1'h0 : por_reset; // @[BIM.scala 39:21 37:26 39:33]
  wire [19:0] _GEN_20 = {{1'd0}, io_update_bits_pc[18:0]}; // @[Hash.scala 32:27]
  wire [19:0] wr_cl_out_out = _GEN_20 ^ io_update_bits_pc[38:19]; // @[Hash.scala 32:27]
  wire [9:0] wr_cl_out_out_out = wr_cl_out_out[9:0] ^ wr_cl_out_out[19:10]; // @[Hash.scala 32:27]
  wire [4:0] wr_cl_out_out_out_out = wr_cl_out_out_out[4:0] ^ wr_cl_out_out_out[9:5]; // @[Hash.scala 32:27]
  wire [2:0] wr_cl_out_out_out_in1 = ~wr_cl_out_out_out_out[2:0]; // @[Hash.scala 117:17]
  wire [3:0] wr_cl_out_out_out_in2 = wr_cl_out_out_out_out[4:1]; // @[Hash.scala 118:19]
  wire [3:0] _GEN_21 = {{1'd0}, wr_cl_out_out_out_in1}; // @[Hash.scala 121:18]
  wire [3:0] _wr_cl_out_out_out_out_T_3 = _GEN_21 ^ wr_cl_out_out_out_in2; // @[Hash.scala 121:18]
  wire [19:0] _GEN_22 = {{1'd0}, io_req_bits_pc[18:0]}; // @[Hash.scala 32:27]
  wire [19:0] rd_cl_out_out = _GEN_22 ^ io_req_bits_pc[38:19]; // @[Hash.scala 32:27]
  wire [9:0] rd_cl_out_out_out = rd_cl_out_out[9:0] ^ rd_cl_out_out[19:10]; // @[Hash.scala 32:27]
  wire [4:0] rd_cl_out_out_out_out = rd_cl_out_out_out[4:0] ^ rd_cl_out_out_out[9:5]; // @[Hash.scala 32:27]
  wire [2:0] rd_cl_out_out_out_in1 = ~rd_cl_out_out_out_out[2:0]; // @[Hash.scala 117:17]
  wire [3:0] rd_cl_out_out_out_in2 = rd_cl_out_out_out_out[4:1]; // @[Hash.scala 118:19]
  wire [3:0] _GEN_23 = {{1'd0}, rd_cl_out_out_out_in1}; // @[Hash.scala 121:18]
  wire [3:0] _rd_cl_out_out_out_out_T_3 = _GEN_23 ^ rd_cl_out_out_out_in2; // @[Hash.scala 121:18]
  wire  _T = io_update_bits_isFinalTaken != io_update_bits_bim_p; // @[frontend.scala 117:35]
  wire  _T_2 = ~io_update_bits_bim_h; // @[BIM.scala 73:69]
  wire  _T_3 = io_update_valid & _T & ~io_update_bits_bim_h; // @[BIM.scala 73:67]
  wire [2:0] wr_cl_out_out_out_out_1 = _wr_cl_out_out_out_out_T_3[2:0]; // @[Hash.scala 115:19 121:11]
  wire  _T_6 = ~io_update_bits_bim_p; // @[BIM.scala 76:31]
  wire  _T_12 = _T ? _T_2 : 1'h1; // @[BIM.scala 83:35]
  reg  bypassFifo_io_enq_valid_REG; // @[BIM.scala 89:37]
  Queue_1 bypassFifo ( // @[BIM.scala 87:26]
    .clock(bypassFifo_clock),
    .reset(bypassFifo_reset),
    .io_enq_ready(bypassFifo_io_enq_ready),
    .io_enq_valid(bypassFifo_io_enq_valid),
    .io_enq_bits_0(bypassFifo_io_enq_bits_0),
    .io_enq_bits_1(bypassFifo_io_enq_bits_1),
    .io_deq_ready(bypassFifo_io_deq_ready),
    .io_deq_valid(bypassFifo_io_deq_valid),
    .io_deq_bits_0(bypassFifo_io_deq_bits_0),
    .io_deq_bits_1(bypassFifo_io_deq_bits_1)
  );
  assign bim_P_bypassFifo_io_enq_bits_0_MPORT_en = bim_P_bypassFifo_io_enq_bits_0_MPORT_en_pipe_0;
  assign bim_P_bypassFifo_io_enq_bits_0_MPORT_addr = bim_P_bypassFifo_io_enq_bits_0_MPORT_addr_pipe_0;
  assign bim_P_bypassFifo_io_enq_bits_0_MPORT_data = bim_P[bim_P_bypassFifo_io_enq_bits_0_MPORT_addr]; // @[BIM.scala 46:26]
  assign bim_P_MPORT_data = por_reset | _T_6;
  assign bim_P_MPORT_addr = por_reset ? reset_cl : wr_cl_out_out_out_out_1;
  assign bim_P_MPORT_mask = 1'h1;
  assign bim_P_MPORT_en = por_reset | _T_3;
  assign bim_H_bypassFifo_io_enq_bits_1_MPORT_en = bim_H_bypassFifo_io_enq_bits_1_MPORT_en_pipe_0;
  assign bim_H_bypassFifo_io_enq_bits_1_MPORT_addr = bim_H_bypassFifo_io_enq_bits_1_MPORT_addr_pipe_0;
  assign bim_H_bypassFifo_io_enq_bits_1_MPORT_data = bim_H[bim_H_bypassFifo_io_enq_bits_1_MPORT_addr]; // @[BIM.scala 52:26]
  assign bim_H_MPORT_1_data = por_reset ? 1'h0 : _T_12;
  assign bim_H_MPORT_1_addr = por_reset ? reset_cl : wr_cl_out_out_out_out_1;
  assign bim_H_MPORT_1_mask = 1'h1;
  assign bim_H_MPORT_1_en = por_reset | io_update_valid;
  assign io_req_ready = bypassFifo_io_enq_ready; // @[BIM.scala 89:161]
  assign io_resp_valid = bypassFifo_io_deq_valid; // @[BIM.scala 90:17]
  assign io_resp_bits_bim_p = bypassFifo_io_deq_bits_0; // @[BIM.scala 90:64]
  assign io_resp_bits_bim_h = bypassFifo_io_deq_bits_1; // @[BIM.scala 90:113]
  assign io_isReady = ~por_reset; // @[BIM.scala 40:17]
  assign bypassFifo_clock = clock;
  assign bypassFifo_reset = reset;
  assign bypassFifo_io_enq_valid = bypassFifo_io_enq_valid_REG; // @[BIM.scala 89:27]
  assign bypassFifo_io_enq_bits_0 = bim_P_bypassFifo_io_enq_bits_0_MPORT_data; // @[BIM.scala 89:78]
  assign bypassFifo_io_enq_bits_1 = bim_H_bypassFifo_io_enq_bits_1_MPORT_data; // @[BIM.scala 89:126]
  assign bypassFifo_io_deq_ready = io_resp_ready; // @[BIM.scala 90:167]
  always @(posedge clock) begin
    if (bim_P_MPORT_en & bim_P_MPORT_mask) begin
      bim_P[bim_P_MPORT_addr] <= bim_P_MPORT_data; // @[BIM.scala 46:26]
    end
    bim_P_bypassFifo_io_enq_bits_0_MPORT_en_pipe_0 <= 1'h1;
    if (1'h1) begin
      bim_P_bypassFifo_io_enq_bits_0_MPORT_addr_pipe_0 <= _rd_cl_out_out_out_out_T_3[2:0];
    end
    if (bim_H_MPORT_1_en & bim_H_MPORT_1_mask) begin
      bim_H[bim_H_MPORT_1_addr] <= bim_H_MPORT_1_data; // @[BIM.scala 52:26]
    end
    bim_H_bypassFifo_io_enq_bits_1_MPORT_en_pipe_0 <= 1'h1;
    if (1'h1) begin
      bim_H_bypassFifo_io_enq_bits_1_MPORT_addr_pipe_0 <= _rd_cl_out_out_out_out_T_3[2:0];
    end
    por_reset <= reset | _GEN_4; // @[BIM.scala 37:{26,26}]
    if (reset) begin // @[Counter.scala 61:40]
      reset_cl <= 3'h0; // @[Counter.scala 61:40]
    end else if (por_reset) begin // @[Counter.scala 136:24]
      reset_cl <= _wrap_value_T_1; // @[Counter.scala 77:15]
    end
    bypassFifo_io_enq_valid_REG <= io_req_ready & io_req_valid; // @[Decoupled.scala 52:35]
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 8; initvar = initvar+1)
    bim_P[initvar] = _RAND_0[0:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 8; initvar = initvar+1)
    bim_H[initvar] = _RAND_3[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_1 = {1{`RANDOM}};
  bim_P_bypassFifo_io_enq_bits_0_MPORT_en_pipe_0 = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  bim_P_bypassFifo_io_enq_bits_0_MPORT_addr_pipe_0 = _RAND_2[2:0];
  _RAND_4 = {1{`RANDOM}};
  bim_H_bypassFifo_io_enq_bits_1_MPORT_en_pipe_0 = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  bim_H_bypassFifo_io_enq_bits_1_MPORT_addr_pipe_0 = _RAND_5[2:0];
  _RAND_6 = {1{`RANDOM}};
  por_reset = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  reset_cl = _RAND_7[2:0];
  _RAND_8 = {1{`RANDOM}};
  bypassFifo_io_enq_valid_REG = _RAND_8[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module MultiPortFifo_in1_out1(
  input         clock,
  input         reset,
  output        io_enq_0_ready,
  input         io_enq_0_valid,
  input  [38:0] io_enq_0_bits_target,
  input         io_deq_0_ready,
  output        io_deq_0_valid,
  output [38:0] io_deq_0_bits_target,
  input         io_flush
);
`ifdef RANDOMIZE_REG_INIT
  reg [63:0] _RAND_0;
  reg [63:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
`endif // RANDOMIZE_REG_INIT
  reg [38:0] buf_0_target; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_1_target; // @[MultiPortFifo.scala 57:20]
  reg  buf_valid_0; // @[MultiPortFifo.scala 58:30]
  reg  buf_valid_1; // @[MultiPortFifo.scala 58:30]
  reg  rd_ptr; // @[MultiPortFifo.scala 60:27]
  reg  wr_ptr; // @[MultiPortFifo.scala 61:27]
  wire [1:0] _io_enq_0_ready_T = {{1'd0}, wr_ptr}; // @[MultiPortFifo.scala 64:78]
  wire  _GEN_1 = _io_enq_0_ready_T[0] ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 64:{94,94}]
  wire [1:0] _io_deq_0_valid_T = {{1'd0}, rd_ptr}; // @[MultiPortFifo.scala 65:78]
  wire  _T = io_enq_0_ready & io_enq_0_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_6 = _T ? ~_io_enq_0_ready_T[0] | buf_valid_0 : buf_valid_0; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _GEN_7 = _T ? _io_enq_0_ready_T[0] | buf_valid_1 : buf_valid_1; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _T_1 = io_deq_0_ready & io_deq_0_valid; // @[Decoupled.scala 52:35]
  wire  _T_9 = ~reset; // @[MultiPortFifo.scala 161:13]
  assign io_enq_0_ready = ~_GEN_1; // @[MultiPortFifo.scala 64:94]
  assign io_deq_0_valid = _io_deq_0_valid_T[0] ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 65:{94,94}]
  assign io_deq_0_bits_target = _io_deq_0_valid_T[0] ? buf_1_target : buf_0_target; // @[MultiPortFifo.scala 114:{14,14}]
  always @(posedge clock) begin
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_target <= io_enq_0_bits_target;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_target <= buf_1_target; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_target <= io_enq_0_bits_target;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_target <= buf_0_target;
        end
      end
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 88:54]
    end else if (_T_1) begin // @[MultiPortFifo.scala 98:34]
      if (~_io_deq_0_valid_T[0]) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_0 <= _GEN_6;
      end
    end else begin
      buf_valid_0 <= _GEN_6;
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 88:54]
    end else if (_T_1) begin // @[MultiPortFifo.scala 98:34]
      if (_io_deq_0_valid_T[0]) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_1 <= _GEN_7;
      end
    end else begin
      buf_valid_1 <= _GEN_7;
    end
    if (reset) begin // @[MultiPortFifo.scala 60:27]
      rd_ptr <= 1'h0; // @[MultiPortFifo.scala 60:27]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      rd_ptr <= 1'h0; // @[MultiPortFifo.scala 89:16]
    end else begin
      rd_ptr <= rd_ptr + _T_1; // @[MultiPortFifo.scala 106:16]
    end
    if (reset) begin // @[MultiPortFifo.scala 61:27]
      wr_ptr <= 1'h0; // @[MultiPortFifo.scala 61:27]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      wr_ptr <= 1'h0; // @[MultiPortFifo.scala 90:16]
    end else begin
      wr_ptr <= wr_ptr + _T; // @[MultiPortFifo.scala 107:16]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_0_valid & ~io_enq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_0_valid & ~io_enq_0_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_9 & ~(~(io_deq_0_valid & ~io_deq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! out port illegal\n    at MultiPortFifo.scala:164 assert( !(io.deq(i).valid === true.B && io.deq(j).valid === false.B && i.U >= j.U), \"Assert Fail! out port illegal\")\n"
            ); // @[MultiPortFifo.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_deq_0_valid & ~io_deq_0_valid)) & _T_9) begin
          $fatal; // @[MultiPortFifo.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {2{`RANDOM}};
  buf_0_target = _RAND_0[38:0];
  _RAND_1 = {2{`RANDOM}};
  buf_1_target = _RAND_1[38:0];
  _RAND_2 = {1{`RANDOM}};
  buf_valid_0 = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  buf_valid_1 = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  rd_ptr = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  wr_ptr = _RAND_5[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module RePort_1(
  input         clock,
  input         reset,
  output        io_enq_0_ready,
  input         io_enq_0_valid,
  input  [38:0] io_enq_0_bits_target,
  input         io_deq_0_ready,
  output        io_deq_0_valid,
  output [38:0] io_deq_0_bits_target
);
  wire  _T = io_enq_0_ready & io_enq_0_valid; // @[Decoupled.scala 52:35]
  wire  _T_1 = io_deq_0_ready & io_deq_0_valid; // @[Decoupled.scala 52:35]
  wire  is_end_0 = ~io_enq_0_valid; // @[RePort.scala 62:21]
  assign io_enq_0_ready = io_deq_0_ready; // @[RePort.scala 80:69]
  assign io_deq_0_valid = _T > 1'h0; // @[RePort.scala 79:81]
  assign io_deq_0_bits_target = ~is_end_0 ? io_enq_0_bits_target : 39'h0; // @[RePort.scala 37:21 75:24 76:22]
  always @(posedge clock) begin
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(_T == _T_1)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed at RePort! enq-fire should equal to deq-fire!\n    at RePort.scala:32 assert ( PopCount( io.enq.map(_.fire) ) === PopCount( io.deq.map(_.fire) ), \"Assert Failed at RePort! enq-fire should equal to deq-fire!\"  )\n"
            ); // @[RePort.scala 32:12]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T == _T_1) & ~reset) begin
          $fatal; // @[RePort.scala 32:12]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
endmodule
module ZipPort(
  output        io_enq_0_ready,
  input         io_enq_0_valid,
  input  [38:0] io_enq_0_bits_target,
  output        io_enq_1_ready,
  input         io_enq_1_valid,
  input  [38:0] io_enq_1_bits_target,
  input         io_deq_0_ready,
  output        io_deq_0_valid,
  output [38:0] io_deq_0_bits_target
);
  assign io_enq_0_ready = ~io_enq_0_valid & io_enq_1_valid ? 1'h0 : io_deq_0_ready; // @[RePort.scala 235:64 242:23]
  assign io_enq_1_ready = ~io_enq_0_valid & io_enq_1_valid & io_deq_0_ready; // @[RePort.scala 235:64 243:23]
  assign io_deq_0_valid = ~io_enq_0_valid & io_enq_1_valid | io_enq_0_valid; // @[RePort.scala 235:64 236:23]
  assign io_deq_0_bits_target = ~io_enq_0_valid & io_enq_1_valid ? io_enq_1_bits_target : io_enq_0_bits_target; // @[RePort.scala 235:64 239:23]
endmodule
module MultiPortFifo_in1_out1_1(
  input         clock,
  input         reset,
  output        io_enq_0_ready,
  input         io_enq_0_valid,
  input  [38:0] io_enq_0_bits_target,
  input         io_deq_0_ready,
  output        io_deq_0_valid,
  output [38:0] io_deq_0_bits_target,
  input         io_flush
);
  wire  fifo_clock; // @[MultiPortFifo.scala 124:24]
  wire  fifo_reset; // @[MultiPortFifo.scala 124:24]
  wire  fifo_io_enq_0_ready; // @[MultiPortFifo.scala 124:24]
  wire  fifo_io_enq_0_valid; // @[MultiPortFifo.scala 124:24]
  wire [38:0] fifo_io_enq_0_bits_target; // @[MultiPortFifo.scala 124:24]
  wire  fifo_io_deq_0_ready; // @[MultiPortFifo.scala 124:24]
  wire  fifo_io_deq_0_valid; // @[MultiPortFifo.scala 124:24]
  wire [38:0] fifo_io_deq_0_bits_target; // @[MultiPortFifo.scala 124:24]
  wire  fifo_io_flush; // @[MultiPortFifo.scala 124:24]
  wire  rePortIn_clock; // @[MultiPortFifo.scala 125:28]
  wire  rePortIn_reset; // @[MultiPortFifo.scala 125:28]
  wire  rePortIn_io_enq_0_ready; // @[MultiPortFifo.scala 125:28]
  wire  rePortIn_io_enq_0_valid; // @[MultiPortFifo.scala 125:28]
  wire [38:0] rePortIn_io_enq_0_bits_target; // @[MultiPortFifo.scala 125:28]
  wire  rePortIn_io_deq_0_ready; // @[MultiPortFifo.scala 125:28]
  wire  rePortIn_io_deq_0_valid; // @[MultiPortFifo.scala 125:28]
  wire [38:0] rePortIn_io_deq_0_bits_target; // @[MultiPortFifo.scala 125:28]
  wire  zipPort_io_enq_0_ready; // @[MultiPortFifo.scala 126:27]
  wire  zipPort_io_enq_0_valid; // @[MultiPortFifo.scala 126:27]
  wire [38:0] zipPort_io_enq_0_bits_target; // @[MultiPortFifo.scala 126:27]
  wire  zipPort_io_enq_1_ready; // @[MultiPortFifo.scala 126:27]
  wire  zipPort_io_enq_1_valid; // @[MultiPortFifo.scala 126:27]
  wire [38:0] zipPort_io_enq_1_bits_target; // @[MultiPortFifo.scala 126:27]
  wire  zipPort_io_deq_0_ready; // @[MultiPortFifo.scala 126:27]
  wire  zipPort_io_deq_0_valid; // @[MultiPortFifo.scala 126:27]
  wire [38:0] zipPort_io_deq_0_bits_target; // @[MultiPortFifo.scala 126:27]
  wire  _T = zipPort_io_enq_1_ready & zipPort_io_enq_1_valid; // @[Decoupled.scala 52:35]
  wire  _T_8 = ~reset; // @[MultiPortFifo.scala 161:13]
  MultiPortFifo_in1_out1 fifo ( // @[MultiPortFifo.scala 124:24]
    .clock(fifo_clock),
    .reset(fifo_reset),
    .io_enq_0_ready(fifo_io_enq_0_ready),
    .io_enq_0_valid(fifo_io_enq_0_valid),
    .io_enq_0_bits_target(fifo_io_enq_0_bits_target),
    .io_deq_0_ready(fifo_io_deq_0_ready),
    .io_deq_0_valid(fifo_io_deq_0_valid),
    .io_deq_0_bits_target(fifo_io_deq_0_bits_target),
    .io_flush(fifo_io_flush)
  );
  RePort_1 rePortIn ( // @[MultiPortFifo.scala 125:28]
    .clock(rePortIn_clock),
    .reset(rePortIn_reset),
    .io_enq_0_ready(rePortIn_io_enq_0_ready),
    .io_enq_0_valid(rePortIn_io_enq_0_valid),
    .io_enq_0_bits_target(rePortIn_io_enq_0_bits_target),
    .io_deq_0_ready(rePortIn_io_deq_0_ready),
    .io_deq_0_valid(rePortIn_io_deq_0_valid),
    .io_deq_0_bits_target(rePortIn_io_deq_0_bits_target)
  );
  ZipPort zipPort ( // @[MultiPortFifo.scala 126:27]
    .io_enq_0_ready(zipPort_io_enq_0_ready),
    .io_enq_0_valid(zipPort_io_enq_0_valid),
    .io_enq_0_bits_target(zipPort_io_enq_0_bits_target),
    .io_enq_1_ready(zipPort_io_enq_1_ready),
    .io_enq_1_valid(zipPort_io_enq_1_valid),
    .io_enq_1_bits_target(zipPort_io_enq_1_bits_target),
    .io_deq_0_ready(zipPort_io_deq_0_ready),
    .io_deq_0_valid(zipPort_io_deq_0_valid),
    .io_deq_0_bits_target(zipPort_io_deq_0_bits_target)
  );
  assign io_enq_0_ready = rePortIn_io_enq_0_ready; // @[MultiPortFifo.scala 128:23]
  assign io_deq_0_valid = zipPort_io_deq_0_valid; // @[MultiPortFifo.scala 142:27]
  assign io_deq_0_bits_target = zipPort_io_deq_0_bits_target; // @[MultiPortFifo.scala 142:27]
  assign fifo_clock = clock;
  assign fifo_reset = reset;
  assign fifo_io_enq_0_valid = rePortIn_io_deq_0_valid; // @[MultiPortFifo.scala 129:23]
  assign fifo_io_enq_0_bits_target = rePortIn_io_deq_0_bits_target; // @[MultiPortFifo.scala 129:23]
  assign fifo_io_deq_0_ready = zipPort_io_enq_0_ready; // @[MultiPortFifo.scala 132:27]
  assign fifo_io_flush = io_flush; // @[MultiPortFifo.scala 148:21]
  assign rePortIn_clock = clock;
  assign rePortIn_reset = reset;
  assign rePortIn_io_enq_0_valid = _T ? 1'h0 : io_enq_0_valid; // @[MultiPortFifo.scala 128:23 151:44 152:36]
  assign rePortIn_io_enq_0_bits_target = _T ? 39'h0 : io_enq_0_bits_target; // @[MultiPortFifo.scala 128:23 151:44 153:36]
  assign rePortIn_io_deq_0_ready = fifo_io_enq_0_ready; // @[MultiPortFifo.scala 129:23]
  assign zipPort_io_enq_0_valid = fifo_io_deq_0_valid; // @[MultiPortFifo.scala 132:27]
  assign zipPort_io_enq_0_bits_target = fifo_io_deq_0_bits_target; // @[MultiPortFifo.scala 132:27]
  assign zipPort_io_enq_1_valid = io_enq_0_valid; // @[MultiPortFifo.scala 136:33]
  assign zipPort_io_enq_1_bits_target = io_enq_0_bits_target; // @[MultiPortFifo.scala 137:33]
  assign zipPort_io_deq_0_ready = io_deq_0_ready; // @[MultiPortFifo.scala 142:27]
  always @(posedge clock) begin
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_0_valid & ~io_enq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_0_valid & ~io_enq_0_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_8 & ~(~(io_deq_0_valid & ~io_deq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! out port illegal\n    at MultiPortFifo.scala:164 assert( !(io.deq(i).valid === true.B && io.deq(j).valid === false.B && i.U >= j.U), \"Assert Fail! out port illegal\")\n"
            ); // @[MultiPortFifo.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_deq_0_valid & ~io_deq_0_valid)) & _T_8) begin
          $fatal; // @[MultiPortFifo.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
endmodule
module MultiPortFifo_in1_out1_2(
  input   clock,
  input   reset,
  output  io_enq_0_ready,
  input   io_enq_0_valid,
  input   io_enq_0_bits_bim_p,
  input   io_enq_0_bits_bim_h,
  input   io_deq_0_ready,
  output  io_deq_0_valid,
  output  io_deq_0_bits_bim_p,
  output  io_deq_0_bits_bim_h,
  input   io_flush
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
`endif // RANDOMIZE_REG_INIT
  reg  buf_0_bim_p; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_bim_h; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_bim_p; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_bim_h; // @[MultiPortFifo.scala 57:20]
  reg  buf_valid_0; // @[MultiPortFifo.scala 58:30]
  reg  buf_valid_1; // @[MultiPortFifo.scala 58:30]
  reg  rd_ptr; // @[MultiPortFifo.scala 60:27]
  reg  wr_ptr; // @[MultiPortFifo.scala 61:27]
  wire [1:0] _io_enq_0_ready_T = {{1'd0}, wr_ptr}; // @[MultiPortFifo.scala 64:78]
  wire  _GEN_1 = _io_enq_0_ready_T[0] ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 64:{94,94}]
  wire [1:0] _io_deq_0_valid_T = {{1'd0}, rd_ptr}; // @[MultiPortFifo.scala 65:78]
  wire  _T = io_enq_0_ready & io_enq_0_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_6 = _T ? ~_io_enq_0_ready_T[0] | buf_valid_0 : buf_valid_0; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _GEN_7 = _T ? _io_enq_0_ready_T[0] | buf_valid_1 : buf_valid_1; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _T_1 = io_deq_0_ready & io_deq_0_valid; // @[Decoupled.scala 52:35]
  wire  _T_9 = ~reset; // @[MultiPortFifo.scala 161:13]
  assign io_enq_0_ready = ~_GEN_1; // @[MultiPortFifo.scala 64:94]
  assign io_deq_0_valid = _io_deq_0_valid_T[0] ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 65:{94,94}]
  assign io_deq_0_bits_bim_p = _io_deq_0_valid_T[0] ? buf_1_bim_p : buf_0_bim_p; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_bim_h = _io_deq_0_valid_T[0] ? buf_1_bim_h : buf_0_bim_h; // @[MultiPortFifo.scala 114:{14,14}]
  always @(posedge clock) begin
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bim_p <= io_enq_0_bits_bim_p;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bim_p <= buf_1_bim_p; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bim_h <= io_enq_0_bits_bim_h;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bim_h <= buf_1_bim_h; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bim_p <= io_enq_0_bits_bim_p;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bim_p <= buf_0_bim_p;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bim_h <= io_enq_0_bits_bim_h;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bim_h <= buf_0_bim_h;
        end
      end
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 88:54]
    end else if (_T_1) begin // @[MultiPortFifo.scala 98:34]
      if (~_io_deq_0_valid_T[0]) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_0 <= _GEN_6;
      end
    end else begin
      buf_valid_0 <= _GEN_6;
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 88:54]
    end else if (_T_1) begin // @[MultiPortFifo.scala 98:34]
      if (_io_deq_0_valid_T[0]) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_1 <= _GEN_7;
      end
    end else begin
      buf_valid_1 <= _GEN_7;
    end
    if (reset) begin // @[MultiPortFifo.scala 60:27]
      rd_ptr <= 1'h0; // @[MultiPortFifo.scala 60:27]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      rd_ptr <= 1'h0; // @[MultiPortFifo.scala 89:16]
    end else begin
      rd_ptr <= rd_ptr + _T_1; // @[MultiPortFifo.scala 106:16]
    end
    if (reset) begin // @[MultiPortFifo.scala 61:27]
      wr_ptr <= 1'h0; // @[MultiPortFifo.scala 61:27]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      wr_ptr <= 1'h0; // @[MultiPortFifo.scala 90:16]
    end else begin
      wr_ptr <= wr_ptr + _T; // @[MultiPortFifo.scala 107:16]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_0_valid & ~io_enq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_0_valid & ~io_enq_0_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_9 & ~(~(io_deq_0_valid & ~io_deq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! out port illegal\n    at MultiPortFifo.scala:164 assert( !(io.deq(i).valid === true.B && io.deq(j).valid === false.B && i.U >= j.U), \"Assert Fail! out port illegal\")\n"
            ); // @[MultiPortFifo.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_deq_0_valid & ~io_deq_0_valid)) & _T_9) begin
          $fatal; // @[MultiPortFifo.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  buf_0_bim_p = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  buf_0_bim_h = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  buf_1_bim_p = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  buf_1_bim_h = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  buf_valid_0 = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  buf_valid_1 = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  rd_ptr = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  wr_ptr = _RAND_7[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module RePort_2(
  input   clock,
  input   reset,
  output  io_enq_0_ready,
  input   io_enq_0_valid,
  input   io_enq_0_bits_bim_p,
  input   io_enq_0_bits_bim_h,
  input   io_deq_0_ready,
  output  io_deq_0_valid,
  output  io_deq_0_bits_bim_p,
  output  io_deq_0_bits_bim_h
);
  wire  _T = io_enq_0_ready & io_enq_0_valid; // @[Decoupled.scala 52:35]
  wire  _T_1 = io_deq_0_ready & io_deq_0_valid; // @[Decoupled.scala 52:35]
  wire  is_end_0 = ~io_enq_0_valid; // @[RePort.scala 62:21]
  assign io_enq_0_ready = io_deq_0_ready; // @[RePort.scala 80:69]
  assign io_deq_0_valid = _T > 1'h0; // @[RePort.scala 79:81]
  assign io_deq_0_bits_bim_p = ~is_end_0 & io_enq_0_bits_bim_p; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_bim_h = ~is_end_0 & io_enq_0_bits_bim_h; // @[RePort.scala 37:21 75:24 76:22]
  always @(posedge clock) begin
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(_T == _T_1)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed at RePort! enq-fire should equal to deq-fire!\n    at RePort.scala:32 assert ( PopCount( io.enq.map(_.fire) ) === PopCount( io.deq.map(_.fire) ), \"Assert Failed at RePort! enq-fire should equal to deq-fire!\"  )\n"
            ); // @[RePort.scala 32:12]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T == _T_1) & ~reset) begin
          $fatal; // @[RePort.scala 32:12]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
endmodule
module ZipPort_1(
  output  io_enq_0_ready,
  input   io_enq_0_valid,
  input   io_enq_0_bits_bim_p,
  input   io_enq_0_bits_bim_h,
  output  io_enq_1_ready,
  input   io_enq_1_valid,
  input   io_enq_1_bits_bim_p,
  input   io_enq_1_bits_bim_h,
  input   io_deq_0_ready,
  output  io_deq_0_valid,
  output  io_deq_0_bits_bim_p,
  output  io_deq_0_bits_bim_h
);
  assign io_enq_0_ready = ~io_enq_0_valid & io_enq_1_valid ? 1'h0 : io_deq_0_ready; // @[RePort.scala 235:64 242:23]
  assign io_enq_1_ready = ~io_enq_0_valid & io_enq_1_valid & io_deq_0_ready; // @[RePort.scala 235:64 243:23]
  assign io_deq_0_valid = ~io_enq_0_valid & io_enq_1_valid | io_enq_0_valid; // @[RePort.scala 235:64 236:23]
  assign io_deq_0_bits_bim_p = ~io_enq_0_valid & io_enq_1_valid ? io_enq_1_bits_bim_p : io_enq_0_bits_bim_p; // @[RePort.scala 235:64 239:23]
  assign io_deq_0_bits_bim_h = ~io_enq_0_valid & io_enq_1_valid ? io_enq_1_bits_bim_h : io_enq_0_bits_bim_h; // @[RePort.scala 235:64 239:23]
endmodule
module MultiPortFifo_in1_out1_3(
  input   clock,
  input   reset,
  output  io_enq_0_ready,
  input   io_enq_0_valid,
  input   io_enq_0_bits_bim_p,
  input   io_enq_0_bits_bim_h,
  input   io_deq_0_ready,
  output  io_deq_0_valid,
  output  io_deq_0_bits_bim_p,
  output  io_deq_0_bits_bim_h,
  input   io_flush
);
  wire  fifo_clock; // @[MultiPortFifo.scala 124:24]
  wire  fifo_reset; // @[MultiPortFifo.scala 124:24]
  wire  fifo_io_enq_0_ready; // @[MultiPortFifo.scala 124:24]
  wire  fifo_io_enq_0_valid; // @[MultiPortFifo.scala 124:24]
  wire  fifo_io_enq_0_bits_bim_p; // @[MultiPortFifo.scala 124:24]
  wire  fifo_io_enq_0_bits_bim_h; // @[MultiPortFifo.scala 124:24]
  wire  fifo_io_deq_0_ready; // @[MultiPortFifo.scala 124:24]
  wire  fifo_io_deq_0_valid; // @[MultiPortFifo.scala 124:24]
  wire  fifo_io_deq_0_bits_bim_p; // @[MultiPortFifo.scala 124:24]
  wire  fifo_io_deq_0_bits_bim_h; // @[MultiPortFifo.scala 124:24]
  wire  fifo_io_flush; // @[MultiPortFifo.scala 124:24]
  wire  rePortIn_clock; // @[MultiPortFifo.scala 125:28]
  wire  rePortIn_reset; // @[MultiPortFifo.scala 125:28]
  wire  rePortIn_io_enq_0_ready; // @[MultiPortFifo.scala 125:28]
  wire  rePortIn_io_enq_0_valid; // @[MultiPortFifo.scala 125:28]
  wire  rePortIn_io_enq_0_bits_bim_p; // @[MultiPortFifo.scala 125:28]
  wire  rePortIn_io_enq_0_bits_bim_h; // @[MultiPortFifo.scala 125:28]
  wire  rePortIn_io_deq_0_ready; // @[MultiPortFifo.scala 125:28]
  wire  rePortIn_io_deq_0_valid; // @[MultiPortFifo.scala 125:28]
  wire  rePortIn_io_deq_0_bits_bim_p; // @[MultiPortFifo.scala 125:28]
  wire  rePortIn_io_deq_0_bits_bim_h; // @[MultiPortFifo.scala 125:28]
  wire  zipPort_io_enq_0_ready; // @[MultiPortFifo.scala 126:27]
  wire  zipPort_io_enq_0_valid; // @[MultiPortFifo.scala 126:27]
  wire  zipPort_io_enq_0_bits_bim_p; // @[MultiPortFifo.scala 126:27]
  wire  zipPort_io_enq_0_bits_bim_h; // @[MultiPortFifo.scala 126:27]
  wire  zipPort_io_enq_1_ready; // @[MultiPortFifo.scala 126:27]
  wire  zipPort_io_enq_1_valid; // @[MultiPortFifo.scala 126:27]
  wire  zipPort_io_enq_1_bits_bim_p; // @[MultiPortFifo.scala 126:27]
  wire  zipPort_io_enq_1_bits_bim_h; // @[MultiPortFifo.scala 126:27]
  wire  zipPort_io_deq_0_ready; // @[MultiPortFifo.scala 126:27]
  wire  zipPort_io_deq_0_valid; // @[MultiPortFifo.scala 126:27]
  wire  zipPort_io_deq_0_bits_bim_p; // @[MultiPortFifo.scala 126:27]
  wire  zipPort_io_deq_0_bits_bim_h; // @[MultiPortFifo.scala 126:27]
  wire  _T = zipPort_io_enq_1_ready & zipPort_io_enq_1_valid; // @[Decoupled.scala 52:35]
  wire  _T_8 = ~reset; // @[MultiPortFifo.scala 161:13]
  MultiPortFifo_in1_out1_2 fifo ( // @[MultiPortFifo.scala 124:24]
    .clock(fifo_clock),
    .reset(fifo_reset),
    .io_enq_0_ready(fifo_io_enq_0_ready),
    .io_enq_0_valid(fifo_io_enq_0_valid),
    .io_enq_0_bits_bim_p(fifo_io_enq_0_bits_bim_p),
    .io_enq_0_bits_bim_h(fifo_io_enq_0_bits_bim_h),
    .io_deq_0_ready(fifo_io_deq_0_ready),
    .io_deq_0_valid(fifo_io_deq_0_valid),
    .io_deq_0_bits_bim_p(fifo_io_deq_0_bits_bim_p),
    .io_deq_0_bits_bim_h(fifo_io_deq_0_bits_bim_h),
    .io_flush(fifo_io_flush)
  );
  RePort_2 rePortIn ( // @[MultiPortFifo.scala 125:28]
    .clock(rePortIn_clock),
    .reset(rePortIn_reset),
    .io_enq_0_ready(rePortIn_io_enq_0_ready),
    .io_enq_0_valid(rePortIn_io_enq_0_valid),
    .io_enq_0_bits_bim_p(rePortIn_io_enq_0_bits_bim_p),
    .io_enq_0_bits_bim_h(rePortIn_io_enq_0_bits_bim_h),
    .io_deq_0_ready(rePortIn_io_deq_0_ready),
    .io_deq_0_valid(rePortIn_io_deq_0_valid),
    .io_deq_0_bits_bim_p(rePortIn_io_deq_0_bits_bim_p),
    .io_deq_0_bits_bim_h(rePortIn_io_deq_0_bits_bim_h)
  );
  ZipPort_1 zipPort ( // @[MultiPortFifo.scala 126:27]
    .io_enq_0_ready(zipPort_io_enq_0_ready),
    .io_enq_0_valid(zipPort_io_enq_0_valid),
    .io_enq_0_bits_bim_p(zipPort_io_enq_0_bits_bim_p),
    .io_enq_0_bits_bim_h(zipPort_io_enq_0_bits_bim_h),
    .io_enq_1_ready(zipPort_io_enq_1_ready),
    .io_enq_1_valid(zipPort_io_enq_1_valid),
    .io_enq_1_bits_bim_p(zipPort_io_enq_1_bits_bim_p),
    .io_enq_1_bits_bim_h(zipPort_io_enq_1_bits_bim_h),
    .io_deq_0_ready(zipPort_io_deq_0_ready),
    .io_deq_0_valid(zipPort_io_deq_0_valid),
    .io_deq_0_bits_bim_p(zipPort_io_deq_0_bits_bim_p),
    .io_deq_0_bits_bim_h(zipPort_io_deq_0_bits_bim_h)
  );
  assign io_enq_0_ready = rePortIn_io_enq_0_ready; // @[MultiPortFifo.scala 128:23]
  assign io_deq_0_valid = zipPort_io_deq_0_valid; // @[MultiPortFifo.scala 142:27]
  assign io_deq_0_bits_bim_p = zipPort_io_deq_0_bits_bim_p; // @[MultiPortFifo.scala 142:27]
  assign io_deq_0_bits_bim_h = zipPort_io_deq_0_bits_bim_h; // @[MultiPortFifo.scala 142:27]
  assign fifo_clock = clock;
  assign fifo_reset = reset;
  assign fifo_io_enq_0_valid = rePortIn_io_deq_0_valid; // @[MultiPortFifo.scala 129:23]
  assign fifo_io_enq_0_bits_bim_p = rePortIn_io_deq_0_bits_bim_p; // @[MultiPortFifo.scala 129:23]
  assign fifo_io_enq_0_bits_bim_h = rePortIn_io_deq_0_bits_bim_h; // @[MultiPortFifo.scala 129:23]
  assign fifo_io_deq_0_ready = zipPort_io_enq_0_ready; // @[MultiPortFifo.scala 132:27]
  assign fifo_io_flush = io_flush; // @[MultiPortFifo.scala 148:21]
  assign rePortIn_clock = clock;
  assign rePortIn_reset = reset;
  assign rePortIn_io_enq_0_valid = _T ? 1'h0 : io_enq_0_valid; // @[MultiPortFifo.scala 128:23 151:44 152:36]
  assign rePortIn_io_enq_0_bits_bim_p = _T ? 1'h0 : io_enq_0_bits_bim_p; // @[MultiPortFifo.scala 128:23 151:44 153:36]
  assign rePortIn_io_enq_0_bits_bim_h = _T ? 1'h0 : io_enq_0_bits_bim_h; // @[MultiPortFifo.scala 128:23 151:44 153:36]
  assign rePortIn_io_deq_0_ready = fifo_io_enq_0_ready; // @[MultiPortFifo.scala 129:23]
  assign zipPort_io_enq_0_valid = fifo_io_deq_0_valid; // @[MultiPortFifo.scala 132:27]
  assign zipPort_io_enq_0_bits_bim_p = fifo_io_deq_0_bits_bim_p; // @[MultiPortFifo.scala 132:27]
  assign zipPort_io_enq_0_bits_bim_h = fifo_io_deq_0_bits_bim_h; // @[MultiPortFifo.scala 132:27]
  assign zipPort_io_enq_1_valid = io_enq_0_valid; // @[MultiPortFifo.scala 136:33]
  assign zipPort_io_enq_1_bits_bim_p = io_enq_0_bits_bim_p; // @[MultiPortFifo.scala 137:33]
  assign zipPort_io_enq_1_bits_bim_h = io_enq_0_bits_bim_h; // @[MultiPortFifo.scala 137:33]
  assign zipPort_io_deq_0_ready = io_deq_0_ready; // @[MultiPortFifo.scala 142:27]
  always @(posedge clock) begin
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_0_valid & ~io_enq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_0_valid & ~io_enq_0_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_8 & ~(~(io_deq_0_valid & ~io_deq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! out port illegal\n    at MultiPortFifo.scala:164 assert( !(io.deq(i).valid === true.B && io.deq(j).valid === false.B && i.U >= j.U), \"Assert Fail! out port illegal\")\n"
            ); // @[MultiPortFifo.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_deq_0_valid & ~io_deq_0_valid)) & _T_8) begin
          $fatal; // @[MultiPortFifo.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
endmodule
module MultiPortFifo_in1_out1_4(
  input   clock,
  input   reset,
  output  io_deq_0_valid
);
  wire  _T_9 = ~reset; // @[MultiPortFifo.scala 161:13]
  assign io_deq_0_valid = 1'h0; // @[MultiPortFifo.scala 65:{94,94}]
  always @(posedge clock) begin
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_9 & ~(~(io_deq_0_valid & ~io_deq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! out port illegal\n    at MultiPortFifo.scala:164 assert( !(io.deq(i).valid === true.B && io.deq(j).valid === false.B && i.U >= j.U), \"Assert Fail! out port illegal\")\n"
            ); // @[MultiPortFifo.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_deq_0_valid & ~io_deq_0_valid)) & _T_9) begin
          $fatal; // @[MultiPortFifo.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
endmodule
module RePort_3(
  input   clock,
  input   reset,
  output  io_deq_0_valid
);
  assign io_deq_0_valid = 1'h0; // @[RePort.scala 79:81]
  always @(posedge clock) begin
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~io_deq_0_valid)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed at RePort! enq-fire should equal to deq-fire!\n    at RePort.scala:32 assert ( PopCount( io.enq.map(_.fire) ) === PopCount( io.deq.map(_.fire) ), \"Assert Failed at RePort! enq-fire should equal to deq-fire!\"  )\n"
            ); // @[RePort.scala 32:12]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~io_deq_0_valid) & ~reset) begin
          $fatal; // @[RePort.scala 32:12]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
endmodule
module MultiPortFifo_in1_out1_5(
  input   clock,
  input   reset,
  output  io_deq_0_valid
);
  wire  fifo_clock; // @[MultiPortFifo.scala 124:24]
  wire  fifo_reset; // @[MultiPortFifo.scala 124:24]
  wire  fifo_io_deq_0_valid; // @[MultiPortFifo.scala 124:24]
  wire  rePortIn_clock; // @[MultiPortFifo.scala 125:28]
  wire  rePortIn_reset; // @[MultiPortFifo.scala 125:28]
  wire  rePortIn_io_deq_0_valid; // @[MultiPortFifo.scala 125:28]
  wire  _T_8 = ~reset; // @[MultiPortFifo.scala 161:13]
  MultiPortFifo_in1_out1_4 fifo ( // @[MultiPortFifo.scala 124:24]
    .clock(fifo_clock),
    .reset(fifo_reset),
    .io_deq_0_valid(fifo_io_deq_0_valid)
  );
  RePort_3 rePortIn ( // @[MultiPortFifo.scala 125:28]
    .clock(rePortIn_clock),
    .reset(rePortIn_reset),
    .io_deq_0_valid(rePortIn_io_deq_0_valid)
  );
  assign io_deq_0_valid = 1'h0; // @[MultiPortFifo.scala 142:27]
  assign fifo_clock = clock;
  assign fifo_reset = reset;
  assign rePortIn_clock = clock;
  assign rePortIn_reset = reset;
  always @(posedge clock) begin
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_8 & ~(~(io_deq_0_valid & ~io_deq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! out port illegal\n    at MultiPortFifo.scala:164 assert( !(io.deq(i).valid === true.B && io.deq(j).valid === false.B && i.U >= j.U), \"Assert Fail! out port illegal\")\n"
            ); // @[MultiPortFifo.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_deq_0_valid & ~io_deq_0_valid)) & _T_8) begin
          $fatal; // @[MultiPortFifo.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
endmodule
module MultiPortFifo_in4_out1(
  input         clock,
  input         reset,
  output        io_enq_0_ready,
  input         io_enq_0_valid,
  input         io_enq_0_bits_isRVC,
  input  [31:0] io_enq_0_bits_instr,
  input  [38:0] io_enq_0_bits_pc,
  output        io_enq_1_ready,
  input         io_enq_1_valid,
  input         io_enq_1_bits_isRVC,
  input  [31:0] io_enq_1_bits_instr,
  input  [38:0] io_enq_1_bits_pc,
  output        io_enq_2_ready,
  input         io_enq_2_valid,
  input         io_enq_2_bits_isRVC,
  input  [31:0] io_enq_2_bits_instr,
  input  [38:0] io_enq_2_bits_pc,
  output        io_enq_3_ready,
  input         io_enq_3_valid,
  input         io_enq_3_bits_isRVC,
  input  [31:0] io_enq_3_bits_instr,
  input  [38:0] io_enq_3_bits_pc,
  input         io_deq_0_ready,
  output        io_deq_0_valid,
  output        io_deq_0_bits_isRVC,
  output [31:0] io_deq_0_bits_instr,
  output [38:0] io_deq_0_bits_pc,
  output        io_deq_0_bits_isRedirect,
  output [38:0] io_deq_0_bits_target,
  input         io_flush
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [63:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [63:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [63:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [63:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [63:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [63:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [63:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [63:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
`endif // RANDOMIZE_REG_INIT
  reg  buf_0_isRVC; // @[MultiPortFifo.scala 57:20]
  reg [31:0] buf_0_instr; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_0_pc; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_isRedirect; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_0_target; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_isRVC; // @[MultiPortFifo.scala 57:20]
  reg [31:0] buf_1_instr; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_1_pc; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_isRedirect; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_1_target; // @[MultiPortFifo.scala 57:20]
  reg  buf_2_isRVC; // @[MultiPortFifo.scala 57:20]
  reg [31:0] buf_2_instr; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_2_pc; // @[MultiPortFifo.scala 57:20]
  reg  buf_2_isRedirect; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_2_target; // @[MultiPortFifo.scala 57:20]
  reg  buf_3_isRVC; // @[MultiPortFifo.scala 57:20]
  reg [31:0] buf_3_instr; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_3_pc; // @[MultiPortFifo.scala 57:20]
  reg  buf_3_isRedirect; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_3_target; // @[MultiPortFifo.scala 57:20]
  reg  buf_valid_0; // @[MultiPortFifo.scala 58:30]
  reg  buf_valid_1; // @[MultiPortFifo.scala 58:30]
  reg  buf_valid_2; // @[MultiPortFifo.scala 58:30]
  reg  buf_valid_3; // @[MultiPortFifo.scala 58:30]
  reg [1:0] rd_ptr; // @[MultiPortFifo.scala 60:27]
  reg [1:0] wr_ptr; // @[MultiPortFifo.scala 61:27]
  wire [2:0] _io_enq_0_ready_T = {{1'd0}, wr_ptr}; // @[MultiPortFifo.scala 64:78]
  wire  _GEN_1 = 2'h1 == _io_enq_0_ready_T[1:0] ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_2 = 2'h2 == _io_enq_0_ready_T[1:0] ? buf_valid_2 : _GEN_1; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_3 = 2'h3 == _io_enq_0_ready_T[1:0] ? buf_valid_3 : _GEN_2; // @[MultiPortFifo.scala 64:{94,94}]
  wire [1:0] _io_enq_1_ready_T_1 = wr_ptr + 2'h1; // @[MultiPortFifo.scala 64:78]
  wire  _GEN_5 = 2'h1 == _io_enq_1_ready_T_1 ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_6 = 2'h2 == _io_enq_1_ready_T_1 ? buf_valid_2 : _GEN_5; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_7 = 2'h3 == _io_enq_1_ready_T_1 ? buf_valid_3 : _GEN_6; // @[MultiPortFifo.scala 64:{94,94}]
  wire [1:0] _io_enq_2_ready_T_1 = wr_ptr + 2'h2; // @[MultiPortFifo.scala 64:78]
  wire  _GEN_9 = 2'h1 == _io_enq_2_ready_T_1 ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_10 = 2'h2 == _io_enq_2_ready_T_1 ? buf_valid_2 : _GEN_9; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_11 = 2'h3 == _io_enq_2_ready_T_1 ? buf_valid_3 : _GEN_10; // @[MultiPortFifo.scala 64:{94,94}]
  wire [1:0] _io_enq_3_ready_T_1 = wr_ptr + 2'h3; // @[MultiPortFifo.scala 64:78]
  wire  _GEN_13 = 2'h1 == _io_enq_3_ready_T_1 ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_14 = 2'h2 == _io_enq_3_ready_T_1 ? buf_valid_2 : _GEN_13; // @[MultiPortFifo.scala 64:{94,94}]
  wire  _GEN_15 = 2'h3 == _io_enq_3_ready_T_1 ? buf_valid_3 : _GEN_14; // @[MultiPortFifo.scala 64:{94,94}]
  wire [2:0] _io_deq_0_valid_T = {{1'd0}, rd_ptr}; // @[MultiPortFifo.scala 65:78]
  wire  _GEN_17 = 2'h1 == _io_deq_0_valid_T[1:0] ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _GEN_18 = 2'h2 == _io_deq_0_valid_T[1:0] ? buf_valid_2 : _GEN_17; // @[MultiPortFifo.scala 65:{94,94}]
  wire  _T = io_enq_0_ready & io_enq_0_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_24 = _T ? 2'h0 == _io_enq_0_ready_T[1:0] | buf_valid_0 : buf_valid_0; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _GEN_25 = _T ? 2'h1 == _io_enq_0_ready_T[1:0] | buf_valid_1 : buf_valid_1; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _GEN_26 = _T ? 2'h2 == _io_enq_0_ready_T[1:0] | buf_valid_2 : buf_valid_2; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _GEN_27 = _T ? 2'h3 == _io_enq_0_ready_T[1:0] | buf_valid_3 : buf_valid_3; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _T_1 = io_deq_0_ready & io_deq_0_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_28 = 2'h0 == _io_deq_0_valid_T[1:0] ? 1'h0 : _GEN_24; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_29 = 2'h1 == _io_deq_0_valid_T[1:0] ? 1'h0 : _GEN_25; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_30 = 2'h2 == _io_deq_0_valid_T[1:0] ? 1'h0 : _GEN_26; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_31 = 2'h3 == _io_deq_0_valid_T[1:0] ? 1'h0 : _GEN_27; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_32 = _T_1 ? _GEN_28 : _GEN_24; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_33 = _T_1 ? _GEN_29 : _GEN_25; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_34 = _T_1 ? _GEN_30 : _GEN_26; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_35 = _T_1 ? _GEN_31 : _GEN_27; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_51 = 2'h1 == _io_enq_0_ready_T[1:0] ? buf_1_isRVC : buf_0_isRVC; // @[MultiPortFifo.scala 101:{33,33}]
  wire [31:0] _GEN_61 = 2'h1 == _io_enq_0_ready_T[1:0] ? buf_1_instr : buf_0_instr; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_62 = 2'h1 == _io_enq_0_ready_T[1:0] ? buf_1_pc : buf_0_pc; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_64 = 2'h1 == _io_enq_0_ready_T[1:0] ? buf_1_isRedirect : buf_0_isRedirect; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_65 = 2'h1 == _io_enq_0_ready_T[1:0] ? buf_1_target : buf_0_target; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_66 = 2'h2 == _io_enq_0_ready_T[1:0] ? buf_2_isRVC : _GEN_51; // @[MultiPortFifo.scala 101:{33,33}]
  wire [31:0] _GEN_76 = 2'h2 == _io_enq_0_ready_T[1:0] ? buf_2_instr : _GEN_61; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_77 = 2'h2 == _io_enq_0_ready_T[1:0] ? buf_2_pc : _GEN_62; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_79 = 2'h2 == _io_enq_0_ready_T[1:0] ? buf_2_isRedirect : _GEN_64; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_80 = 2'h2 == _io_enq_0_ready_T[1:0] ? buf_2_target : _GEN_65; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_81 = 2'h3 == _io_enq_0_ready_T[1:0] ? buf_3_isRVC : _GEN_66; // @[MultiPortFifo.scala 101:{33,33}]
  wire [31:0] _GEN_91 = 2'h3 == _io_enq_0_ready_T[1:0] ? buf_3_instr : _GEN_76; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_92 = 2'h3 == _io_enq_0_ready_T[1:0] ? buf_3_pc : _GEN_77; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_94 = 2'h3 == _io_enq_0_ready_T[1:0] ? buf_3_isRedirect : _GEN_79; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_95 = 2'h3 == _io_enq_0_ready_T[1:0] ? buf_3_target : _GEN_80; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _buf_T_1_isRVC = _T ? io_enq_0_bits_isRVC : _GEN_81; // @[MultiPortFifo.scala 101:33]
  wire [31:0] _buf_T_1_instr = _T ? io_enq_0_bits_instr : _GEN_91; // @[MultiPortFifo.scala 101:33]
  wire [38:0] _buf_T_1_pc = _T ? io_enq_0_bits_pc : _GEN_92; // @[MultiPortFifo.scala 101:33]
  wire  _buf_T_1_isRedirect = _T ? 1'h0 : _GEN_94; // @[MultiPortFifo.scala 101:33]
  wire [38:0] _buf_T_1_target = _T ? 39'h0 : _GEN_95; // @[MultiPortFifo.scala 101:33]
  wire  _GEN_96 = 2'h0 == _io_enq_0_ready_T[1:0] ? _buf_T_1_isRVC : buf_0_isRVC; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_97 = 2'h1 == _io_enq_0_ready_T[1:0] ? _buf_T_1_isRVC : buf_1_isRVC; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_98 = 2'h2 == _io_enq_0_ready_T[1:0] ? _buf_T_1_isRVC : buf_2_isRVC; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_99 = 2'h3 == _io_enq_0_ready_T[1:0] ? _buf_T_1_isRVC : buf_3_isRVC; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [31:0] _GEN_136 = 2'h0 == _io_enq_0_ready_T[1:0] ? _buf_T_1_instr : buf_0_instr; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [31:0] _GEN_137 = 2'h1 == _io_enq_0_ready_T[1:0] ? _buf_T_1_instr : buf_1_instr; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [31:0] _GEN_138 = 2'h2 == _io_enq_0_ready_T[1:0] ? _buf_T_1_instr : buf_2_instr; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [31:0] _GEN_139 = 2'h3 == _io_enq_0_ready_T[1:0] ? _buf_T_1_instr : buf_3_instr; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [38:0] _GEN_140 = 2'h0 == _io_enq_0_ready_T[1:0] ? _buf_T_1_pc : buf_0_pc; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [38:0] _GEN_141 = 2'h1 == _io_enq_0_ready_T[1:0] ? _buf_T_1_pc : buf_1_pc; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [38:0] _GEN_142 = 2'h2 == _io_enq_0_ready_T[1:0] ? _buf_T_1_pc : buf_2_pc; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [38:0] _GEN_143 = 2'h3 == _io_enq_0_ready_T[1:0] ? _buf_T_1_pc : buf_3_pc; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_148 = 2'h0 == _io_enq_0_ready_T[1:0] ? _buf_T_1_isRedirect : buf_0_isRedirect; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_149 = 2'h1 == _io_enq_0_ready_T[1:0] ? _buf_T_1_isRedirect : buf_1_isRedirect; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_150 = 2'h2 == _io_enq_0_ready_T[1:0] ? _buf_T_1_isRedirect : buf_2_isRedirect; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _GEN_151 = 2'h3 == _io_enq_0_ready_T[1:0] ? _buf_T_1_isRedirect : buf_3_isRedirect; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [38:0] _GEN_152 = 2'h0 == _io_enq_0_ready_T[1:0] ? _buf_T_1_target : buf_0_target; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [38:0] _GEN_153 = 2'h1 == _io_enq_0_ready_T[1:0] ? _buf_T_1_target : buf_1_target; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [38:0] _GEN_154 = 2'h2 == _io_enq_0_ready_T[1:0] ? _buf_T_1_target : buf_2_target; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire [38:0] _GEN_155 = 2'h3 == _io_enq_0_ready_T[1:0] ? _buf_T_1_target : buf_3_target; // @[MultiPortFifo.scala 101:{27,27} 57:20]
  wire  _T_2 = io_enq_1_ready & io_enq_1_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_160 = _T_2 ? 2'h0 == _io_enq_1_ready_T_1 | _GEN_32 : _GEN_32; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_161 = _T_2 ? 2'h1 == _io_enq_1_ready_T_1 | _GEN_33 : _GEN_33; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_162 = _T_2 ? 2'h2 == _io_enq_1_ready_T_1 | _GEN_34 : _GEN_34; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_163 = _T_2 ? 2'h3 == _io_enq_1_ready_T_1 | _GEN_35 : _GEN_35; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_164 = 2'h0 == _io_deq_0_valid_T[1:0] ? 1'h0 : _GEN_160; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_165 = 2'h1 == _io_deq_0_valid_T[1:0] ? 1'h0 : _GEN_161; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_166 = 2'h2 == _io_deq_0_valid_T[1:0] ? 1'h0 : _GEN_162; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_167 = 2'h3 == _io_deq_0_valid_T[1:0] ? 1'h0 : _GEN_163; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_168 = _T_1 ? _GEN_164 : _GEN_160; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_169 = _T_1 ? _GEN_165 : _GEN_161; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_170 = _T_1 ? _GEN_166 : _GEN_162; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_171 = _T_1 ? _GEN_167 : _GEN_163; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_187 = 2'h1 == _io_enq_1_ready_T_1 ? buf_1_isRVC : buf_0_isRVC; // @[MultiPortFifo.scala 101:{33,33}]
  wire [31:0] _GEN_197 = 2'h1 == _io_enq_1_ready_T_1 ? buf_1_instr : buf_0_instr; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_198 = 2'h1 == _io_enq_1_ready_T_1 ? buf_1_pc : buf_0_pc; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_200 = 2'h1 == _io_enq_1_ready_T_1 ? buf_1_isRedirect : buf_0_isRedirect; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_201 = 2'h1 == _io_enq_1_ready_T_1 ? buf_1_target : buf_0_target; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_202 = 2'h2 == _io_enq_1_ready_T_1 ? buf_2_isRVC : _GEN_187; // @[MultiPortFifo.scala 101:{33,33}]
  wire [31:0] _GEN_212 = 2'h2 == _io_enq_1_ready_T_1 ? buf_2_instr : _GEN_197; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_213 = 2'h2 == _io_enq_1_ready_T_1 ? buf_2_pc : _GEN_198; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_215 = 2'h2 == _io_enq_1_ready_T_1 ? buf_2_isRedirect : _GEN_200; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_216 = 2'h2 == _io_enq_1_ready_T_1 ? buf_2_target : _GEN_201; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_217 = 2'h3 == _io_enq_1_ready_T_1 ? buf_3_isRVC : _GEN_202; // @[MultiPortFifo.scala 101:{33,33}]
  wire [31:0] _GEN_227 = 2'h3 == _io_enq_1_ready_T_1 ? buf_3_instr : _GEN_212; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_228 = 2'h3 == _io_enq_1_ready_T_1 ? buf_3_pc : _GEN_213; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_230 = 2'h3 == _io_enq_1_ready_T_1 ? buf_3_isRedirect : _GEN_215; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_231 = 2'h3 == _io_enq_1_ready_T_1 ? buf_3_target : _GEN_216; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _buf_T_3_isRVC = _T_2 ? io_enq_1_bits_isRVC : _GEN_217; // @[MultiPortFifo.scala 101:33]
  wire [31:0] _buf_T_3_instr = _T_2 ? io_enq_1_bits_instr : _GEN_227; // @[MultiPortFifo.scala 101:33]
  wire [38:0] _buf_T_3_pc = _T_2 ? io_enq_1_bits_pc : _GEN_228; // @[MultiPortFifo.scala 101:33]
  wire  _buf_T_3_isRedirect = _T_2 ? 1'h0 : _GEN_230; // @[MultiPortFifo.scala 101:33]
  wire [38:0] _buf_T_3_target = _T_2 ? 39'h0 : _GEN_231; // @[MultiPortFifo.scala 101:33]
  wire  _T_4 = io_enq_2_ready & io_enq_2_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_296 = _T_4 ? 2'h0 == _io_enq_2_ready_T_1 | _GEN_168 : _GEN_168; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_297 = _T_4 ? 2'h1 == _io_enq_2_ready_T_1 | _GEN_169 : _GEN_169; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_298 = _T_4 ? 2'h2 == _io_enq_2_ready_T_1 | _GEN_170 : _GEN_170; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_299 = _T_4 ? 2'h3 == _io_enq_2_ready_T_1 | _GEN_171 : _GEN_171; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_300 = 2'h0 == _io_deq_0_valid_T[1:0] ? 1'h0 : _GEN_296; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_301 = 2'h1 == _io_deq_0_valid_T[1:0] ? 1'h0 : _GEN_297; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_302 = 2'h2 == _io_deq_0_valid_T[1:0] ? 1'h0 : _GEN_298; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_303 = 2'h3 == _io_deq_0_valid_T[1:0] ? 1'h0 : _GEN_299; // @[MultiPortFifo.scala 98:{57,57}]
  wire  _GEN_304 = _T_1 ? _GEN_300 : _GEN_296; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_305 = _T_1 ? _GEN_301 : _GEN_297; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_306 = _T_1 ? _GEN_302 : _GEN_298; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_307 = _T_1 ? _GEN_303 : _GEN_299; // @[MultiPortFifo.scala 98:34]
  wire  _GEN_323 = 2'h1 == _io_enq_2_ready_T_1 ? buf_1_isRVC : buf_0_isRVC; // @[MultiPortFifo.scala 101:{33,33}]
  wire [31:0] _GEN_333 = 2'h1 == _io_enq_2_ready_T_1 ? buf_1_instr : buf_0_instr; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_334 = 2'h1 == _io_enq_2_ready_T_1 ? buf_1_pc : buf_0_pc; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_336 = 2'h1 == _io_enq_2_ready_T_1 ? buf_1_isRedirect : buf_0_isRedirect; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_337 = 2'h1 == _io_enq_2_ready_T_1 ? buf_1_target : buf_0_target; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_338 = 2'h2 == _io_enq_2_ready_T_1 ? buf_2_isRVC : _GEN_323; // @[MultiPortFifo.scala 101:{33,33}]
  wire [31:0] _GEN_348 = 2'h2 == _io_enq_2_ready_T_1 ? buf_2_instr : _GEN_333; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_349 = 2'h2 == _io_enq_2_ready_T_1 ? buf_2_pc : _GEN_334; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_351 = 2'h2 == _io_enq_2_ready_T_1 ? buf_2_isRedirect : _GEN_336; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_352 = 2'h2 == _io_enq_2_ready_T_1 ? buf_2_target : _GEN_337; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_353 = 2'h3 == _io_enq_2_ready_T_1 ? buf_3_isRVC : _GEN_338; // @[MultiPortFifo.scala 101:{33,33}]
  wire [31:0] _GEN_363 = 2'h3 == _io_enq_2_ready_T_1 ? buf_3_instr : _GEN_348; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_364 = 2'h3 == _io_enq_2_ready_T_1 ? buf_3_pc : _GEN_349; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_366 = 2'h3 == _io_enq_2_ready_T_1 ? buf_3_isRedirect : _GEN_351; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_367 = 2'h3 == _io_enq_2_ready_T_1 ? buf_3_target : _GEN_352; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _T_6 = io_enq_3_ready & io_enq_3_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_432 = _T_6 ? 2'h0 == _io_enq_3_ready_T_1 | _GEN_304 : _GEN_304; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_433 = _T_6 ? 2'h1 == _io_enq_3_ready_T_1 | _GEN_305 : _GEN_305; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_434 = _T_6 ? 2'h2 == _io_enq_3_ready_T_1 | _GEN_306 : _GEN_306; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_435 = _T_6 ? 2'h3 == _io_enq_3_ready_T_1 | _GEN_307 : _GEN_307; // @[MultiPortFifo.scala 97:34]
  wire  _GEN_459 = 2'h1 == _io_enq_3_ready_T_1 ? buf_1_isRVC : buf_0_isRVC; // @[MultiPortFifo.scala 101:{33,33}]
  wire [31:0] _GEN_469 = 2'h1 == _io_enq_3_ready_T_1 ? buf_1_instr : buf_0_instr; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_470 = 2'h1 == _io_enq_3_ready_T_1 ? buf_1_pc : buf_0_pc; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_472 = 2'h1 == _io_enq_3_ready_T_1 ? buf_1_isRedirect : buf_0_isRedirect; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_473 = 2'h1 == _io_enq_3_ready_T_1 ? buf_1_target : buf_0_target; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_474 = 2'h2 == _io_enq_3_ready_T_1 ? buf_2_isRVC : _GEN_459; // @[MultiPortFifo.scala 101:{33,33}]
  wire [31:0] _GEN_484 = 2'h2 == _io_enq_3_ready_T_1 ? buf_2_instr : _GEN_469; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_485 = 2'h2 == _io_enq_3_ready_T_1 ? buf_2_pc : _GEN_470; // @[MultiPortFifo.scala 101:{33,33}]
  wire  _GEN_487 = 2'h2 == _io_enq_3_ready_T_1 ? buf_2_isRedirect : _GEN_472; // @[MultiPortFifo.scala 101:{33,33}]
  wire [38:0] _GEN_488 = 2'h2 == _io_enq_3_ready_T_1 ? buf_2_target : _GEN_473; // @[MultiPortFifo.scala 101:{33,33}]
  wire [1:0] _GEN_58 = {{1'd0}, _T_1}; // @[MultiPortFifo.scala 106:26]
  wire [1:0] _rd_ptr_T_2 = rd_ptr + _GEN_58; // @[MultiPortFifo.scala 106:26]
  wire [1:0] _wr_ptr_T_1 = _T_2 ? 2'h2 : {{1'd0}, _T}; // @[Mux.scala 101:16]
  wire [1:0] _wr_ptr_T_2 = _T_4 ? 2'h3 : _wr_ptr_T_1; // @[Mux.scala 101:16]
  wire [2:0] _wr_ptr_T_3 = _T_6 ? 3'h4 : {{1'd0}, _wr_ptr_T_2}; // @[Mux.scala 101:16]
  wire [2:0] _wr_ptr_T_5 = _io_enq_0_ready_T + _wr_ptr_T_3; // @[MultiPortFifo.scala 107:26]
  wire [2:0] _GEN_569 = io_flush ? 3'h0 : _wr_ptr_T_5; // @[MultiPortFifo.scala 107:16 87:23 90:16]
  wire  _GEN_645 = 2'h1 == _io_deq_0_valid_T[1:0] ? buf_1_isRVC : buf_0_isRVC; // @[MultiPortFifo.scala 114:{14,14}]
  wire [31:0] _GEN_655 = 2'h1 == _io_deq_0_valid_T[1:0] ? buf_1_instr : buf_0_instr; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_656 = 2'h1 == _io_deq_0_valid_T[1:0] ? buf_1_pc : buf_0_pc; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_658 = 2'h1 == _io_deq_0_valid_T[1:0] ? buf_1_isRedirect : buf_0_isRedirect; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_659 = 2'h1 == _io_deq_0_valid_T[1:0] ? buf_1_target : buf_0_target; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_660 = 2'h2 == _io_deq_0_valid_T[1:0] ? buf_2_isRVC : _GEN_645; // @[MultiPortFifo.scala 114:{14,14}]
  wire [31:0] _GEN_670 = 2'h2 == _io_deq_0_valid_T[1:0] ? buf_2_instr : _GEN_655; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_671 = 2'h2 == _io_deq_0_valid_T[1:0] ? buf_2_pc : _GEN_656; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _GEN_673 = 2'h2 == _io_deq_0_valid_T[1:0] ? buf_2_isRedirect : _GEN_658; // @[MultiPortFifo.scala 114:{14,14}]
  wire [38:0] _GEN_674 = 2'h2 == _io_deq_0_valid_T[1:0] ? buf_2_target : _GEN_659; // @[MultiPortFifo.scala 114:{14,14}]
  wire  _T_15 = ~reset; // @[MultiPortFifo.scala 161:13]
  wire [2:0] _GEN_60 = reset ? 3'h0 : _GEN_569; // @[MultiPortFifo.scala 61:{27,27}]
  assign io_enq_0_ready = ~_GEN_3; // @[MultiPortFifo.scala 64:94]
  assign io_enq_1_ready = ~_GEN_7; // @[MultiPortFifo.scala 64:94]
  assign io_enq_2_ready = ~_GEN_11; // @[MultiPortFifo.scala 64:94]
  assign io_enq_3_ready = ~_GEN_15; // @[MultiPortFifo.scala 64:94]
  assign io_deq_0_valid = 2'h3 == _io_deq_0_valid_T[1:0] ? buf_valid_3 : _GEN_18; // @[MultiPortFifo.scala 65:{94,94}]
  assign io_deq_0_bits_isRVC = 2'h3 == _io_deq_0_valid_T[1:0] ? buf_3_isRVC : _GEN_660; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_instr = 2'h3 == _io_deq_0_valid_T[1:0] ? buf_3_instr : _GEN_670; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_pc = 2'h3 == _io_deq_0_valid_T[1:0] ? buf_3_pc : _GEN_671; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_isRedirect = 2'h3 == _io_deq_0_valid_T[1:0] ? buf_3_isRedirect : _GEN_673; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_target = 2'h3 == _io_deq_0_valid_T[1:0] ? buf_3_target : _GEN_674; // @[MultiPortFifo.scala 114:{14,14}]
  always @(posedge clock) begin
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (2'h0 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_6) begin // @[MultiPortFifo.scala 101:33]
          buf_0_isRVC <= io_enq_3_bits_isRVC;
        end else if (2'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:33]
          buf_0_isRVC <= buf_3_isRVC; // @[MultiPortFifo.scala 101:33]
        end else begin
          buf_0_isRVC <= _GEN_474;
        end
      end else if (2'h0 == _io_enq_2_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_4) begin // @[MultiPortFifo.scala 101:33]
          buf_0_isRVC <= io_enq_2_bits_isRVC;
        end else begin
          buf_0_isRVC <= _GEN_353;
        end
      end else if (2'h0 == _io_enq_1_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_0_isRVC <= _buf_T_3_isRVC; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_0_isRVC <= _GEN_96;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (2'h0 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_6) begin // @[MultiPortFifo.scala 101:33]
          buf_0_instr <= io_enq_3_bits_instr;
        end else if (2'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:33]
          buf_0_instr <= buf_3_instr; // @[MultiPortFifo.scala 101:33]
        end else begin
          buf_0_instr <= _GEN_484;
        end
      end else if (2'h0 == _io_enq_2_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_4) begin // @[MultiPortFifo.scala 101:33]
          buf_0_instr <= io_enq_2_bits_instr;
        end else begin
          buf_0_instr <= _GEN_363;
        end
      end else if (2'h0 == _io_enq_1_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_0_instr <= _buf_T_3_instr; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_0_instr <= _GEN_136;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (2'h0 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_6) begin // @[MultiPortFifo.scala 101:33]
          buf_0_pc <= io_enq_3_bits_pc;
        end else if (2'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:33]
          buf_0_pc <= buf_3_pc; // @[MultiPortFifo.scala 101:33]
        end else begin
          buf_0_pc <= _GEN_485;
        end
      end else if (2'h0 == _io_enq_2_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_4) begin // @[MultiPortFifo.scala 101:33]
          buf_0_pc <= io_enq_2_bits_pc;
        end else begin
          buf_0_pc <= _GEN_364;
        end
      end else if (2'h0 == _io_enq_1_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_0_pc <= _buf_T_3_pc; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_0_pc <= _GEN_140;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (2'h0 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_6) begin // @[MultiPortFifo.scala 101:33]
          buf_0_isRedirect <= 1'h0;
        end else if (2'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:33]
          buf_0_isRedirect <= buf_3_isRedirect; // @[MultiPortFifo.scala 101:33]
        end else begin
          buf_0_isRedirect <= _GEN_487;
        end
      end else if (2'h0 == _io_enq_2_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_4) begin // @[MultiPortFifo.scala 101:33]
          buf_0_isRedirect <= 1'h0;
        end else begin
          buf_0_isRedirect <= _GEN_366;
        end
      end else if (2'h0 == _io_enq_1_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_0_isRedirect <= _buf_T_3_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_0_isRedirect <= _GEN_148;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (2'h0 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_6) begin // @[MultiPortFifo.scala 101:33]
          buf_0_target <= 39'h0;
        end else if (2'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:33]
          buf_0_target <= buf_3_target; // @[MultiPortFifo.scala 101:33]
        end else begin
          buf_0_target <= _GEN_488;
        end
      end else if (2'h0 == _io_enq_2_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_4) begin // @[MultiPortFifo.scala 101:33]
          buf_0_target <= 39'h0;
        end else begin
          buf_0_target <= _GEN_367;
        end
      end else if (2'h0 == _io_enq_1_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_0_target <= _buf_T_3_target; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_0_target <= _GEN_152;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (2'h1 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_6) begin // @[MultiPortFifo.scala 101:33]
          buf_1_isRVC <= io_enq_3_bits_isRVC;
        end else if (2'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:33]
          buf_1_isRVC <= buf_3_isRVC; // @[MultiPortFifo.scala 101:33]
        end else begin
          buf_1_isRVC <= _GEN_474;
        end
      end else if (2'h1 == _io_enq_2_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_4) begin // @[MultiPortFifo.scala 101:33]
          buf_1_isRVC <= io_enq_2_bits_isRVC;
        end else begin
          buf_1_isRVC <= _GEN_353;
        end
      end else if (2'h1 == _io_enq_1_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_1_isRVC <= _buf_T_3_isRVC; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_1_isRVC <= _GEN_97;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (2'h1 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_6) begin // @[MultiPortFifo.scala 101:33]
          buf_1_instr <= io_enq_3_bits_instr;
        end else if (2'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:33]
          buf_1_instr <= buf_3_instr; // @[MultiPortFifo.scala 101:33]
        end else begin
          buf_1_instr <= _GEN_484;
        end
      end else if (2'h1 == _io_enq_2_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_4) begin // @[MultiPortFifo.scala 101:33]
          buf_1_instr <= io_enq_2_bits_instr;
        end else begin
          buf_1_instr <= _GEN_363;
        end
      end else if (2'h1 == _io_enq_1_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_1_instr <= _buf_T_3_instr; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_1_instr <= _GEN_137;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (2'h1 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_6) begin // @[MultiPortFifo.scala 101:33]
          buf_1_pc <= io_enq_3_bits_pc;
        end else if (2'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:33]
          buf_1_pc <= buf_3_pc; // @[MultiPortFifo.scala 101:33]
        end else begin
          buf_1_pc <= _GEN_485;
        end
      end else if (2'h1 == _io_enq_2_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_4) begin // @[MultiPortFifo.scala 101:33]
          buf_1_pc <= io_enq_2_bits_pc;
        end else begin
          buf_1_pc <= _GEN_364;
        end
      end else if (2'h1 == _io_enq_1_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_1_pc <= _buf_T_3_pc; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_1_pc <= _GEN_141;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (2'h1 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_6) begin // @[MultiPortFifo.scala 101:33]
          buf_1_isRedirect <= 1'h0;
        end else if (2'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:33]
          buf_1_isRedirect <= buf_3_isRedirect; // @[MultiPortFifo.scala 101:33]
        end else begin
          buf_1_isRedirect <= _GEN_487;
        end
      end else if (2'h1 == _io_enq_2_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_4) begin // @[MultiPortFifo.scala 101:33]
          buf_1_isRedirect <= 1'h0;
        end else begin
          buf_1_isRedirect <= _GEN_366;
        end
      end else if (2'h1 == _io_enq_1_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_1_isRedirect <= _buf_T_3_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_1_isRedirect <= _GEN_149;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (2'h1 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_6) begin // @[MultiPortFifo.scala 101:33]
          buf_1_target <= 39'h0;
        end else if (2'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:33]
          buf_1_target <= buf_3_target; // @[MultiPortFifo.scala 101:33]
        end else begin
          buf_1_target <= _GEN_488;
        end
      end else if (2'h1 == _io_enq_2_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_4) begin // @[MultiPortFifo.scala 101:33]
          buf_1_target <= 39'h0;
        end else begin
          buf_1_target <= _GEN_367;
        end
      end else if (2'h1 == _io_enq_1_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_1_target <= _buf_T_3_target; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_1_target <= _GEN_153;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (2'h2 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_6) begin // @[MultiPortFifo.scala 101:33]
          buf_2_isRVC <= io_enq_3_bits_isRVC;
        end else if (2'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:33]
          buf_2_isRVC <= buf_3_isRVC; // @[MultiPortFifo.scala 101:33]
        end else begin
          buf_2_isRVC <= _GEN_474;
        end
      end else if (2'h2 == _io_enq_2_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_4) begin // @[MultiPortFifo.scala 101:33]
          buf_2_isRVC <= io_enq_2_bits_isRVC;
        end else begin
          buf_2_isRVC <= _GEN_353;
        end
      end else if (2'h2 == _io_enq_1_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_2_isRVC <= _buf_T_3_isRVC; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_2_isRVC <= _GEN_98;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (2'h2 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_6) begin // @[MultiPortFifo.scala 101:33]
          buf_2_instr <= io_enq_3_bits_instr;
        end else if (2'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:33]
          buf_2_instr <= buf_3_instr; // @[MultiPortFifo.scala 101:33]
        end else begin
          buf_2_instr <= _GEN_484;
        end
      end else if (2'h2 == _io_enq_2_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_4) begin // @[MultiPortFifo.scala 101:33]
          buf_2_instr <= io_enq_2_bits_instr;
        end else begin
          buf_2_instr <= _GEN_363;
        end
      end else if (2'h2 == _io_enq_1_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_2_instr <= _buf_T_3_instr; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_2_instr <= _GEN_138;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (2'h2 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_6) begin // @[MultiPortFifo.scala 101:33]
          buf_2_pc <= io_enq_3_bits_pc;
        end else if (2'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:33]
          buf_2_pc <= buf_3_pc; // @[MultiPortFifo.scala 101:33]
        end else begin
          buf_2_pc <= _GEN_485;
        end
      end else if (2'h2 == _io_enq_2_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_4) begin // @[MultiPortFifo.scala 101:33]
          buf_2_pc <= io_enq_2_bits_pc;
        end else begin
          buf_2_pc <= _GEN_364;
        end
      end else if (2'h2 == _io_enq_1_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_2_pc <= _buf_T_3_pc; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_2_pc <= _GEN_142;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (2'h2 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_6) begin // @[MultiPortFifo.scala 101:33]
          buf_2_isRedirect <= 1'h0;
        end else if (2'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:33]
          buf_2_isRedirect <= buf_3_isRedirect; // @[MultiPortFifo.scala 101:33]
        end else begin
          buf_2_isRedirect <= _GEN_487;
        end
      end else if (2'h2 == _io_enq_2_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_4) begin // @[MultiPortFifo.scala 101:33]
          buf_2_isRedirect <= 1'h0;
        end else begin
          buf_2_isRedirect <= _GEN_366;
        end
      end else if (2'h2 == _io_enq_1_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_2_isRedirect <= _buf_T_3_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_2_isRedirect <= _GEN_150;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (2'h2 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_6) begin // @[MultiPortFifo.scala 101:33]
          buf_2_target <= 39'h0;
        end else if (2'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:33]
          buf_2_target <= buf_3_target; // @[MultiPortFifo.scala 101:33]
        end else begin
          buf_2_target <= _GEN_488;
        end
      end else if (2'h2 == _io_enq_2_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_4) begin // @[MultiPortFifo.scala 101:33]
          buf_2_target <= 39'h0;
        end else begin
          buf_2_target <= _GEN_367;
        end
      end else if (2'h2 == _io_enq_1_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_2_target <= _buf_T_3_target; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_2_target <= _GEN_154;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (2'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_6) begin // @[MultiPortFifo.scala 101:33]
          buf_3_isRVC <= io_enq_3_bits_isRVC;
        end else if (!(2'h3 == _io_enq_3_ready_T_1)) begin // @[MultiPortFifo.scala 101:33]
          buf_3_isRVC <= _GEN_474;
        end
      end else if (2'h3 == _io_enq_2_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_4) begin // @[MultiPortFifo.scala 101:33]
          buf_3_isRVC <= io_enq_2_bits_isRVC;
        end else begin
          buf_3_isRVC <= _GEN_353;
        end
      end else if (2'h3 == _io_enq_1_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_3_isRVC <= _buf_T_3_isRVC; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_3_isRVC <= _GEN_99;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (2'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_6) begin // @[MultiPortFifo.scala 101:33]
          buf_3_instr <= io_enq_3_bits_instr;
        end else if (!(2'h3 == _io_enq_3_ready_T_1)) begin // @[MultiPortFifo.scala 101:33]
          buf_3_instr <= _GEN_484;
        end
      end else if (2'h3 == _io_enq_2_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_4) begin // @[MultiPortFifo.scala 101:33]
          buf_3_instr <= io_enq_2_bits_instr;
        end else begin
          buf_3_instr <= _GEN_363;
        end
      end else if (2'h3 == _io_enq_1_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_3_instr <= _buf_T_3_instr; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_3_instr <= _GEN_139;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (2'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_6) begin // @[MultiPortFifo.scala 101:33]
          buf_3_pc <= io_enq_3_bits_pc;
        end else if (!(2'h3 == _io_enq_3_ready_T_1)) begin // @[MultiPortFifo.scala 101:33]
          buf_3_pc <= _GEN_485;
        end
      end else if (2'h3 == _io_enq_2_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_4) begin // @[MultiPortFifo.scala 101:33]
          buf_3_pc <= io_enq_2_bits_pc;
        end else begin
          buf_3_pc <= _GEN_364;
        end
      end else if (2'h3 == _io_enq_1_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_3_pc <= _buf_T_3_pc; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_3_pc <= _GEN_143;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (2'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_6) begin // @[MultiPortFifo.scala 101:33]
          buf_3_isRedirect <= 1'h0;
        end else if (!(2'h3 == _io_enq_3_ready_T_1)) begin // @[MultiPortFifo.scala 101:33]
          buf_3_isRedirect <= _GEN_487;
        end
      end else if (2'h3 == _io_enq_2_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_4) begin // @[MultiPortFifo.scala 101:33]
          buf_3_isRedirect <= 1'h0;
        end else begin
          buf_3_isRedirect <= _GEN_366;
        end
      end else if (2'h3 == _io_enq_1_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_3_isRedirect <= _buf_T_3_isRedirect; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_3_isRedirect <= _GEN_151;
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (2'h3 == _io_enq_3_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_6) begin // @[MultiPortFifo.scala 101:33]
          buf_3_target <= 39'h0;
        end else if (!(2'h3 == _io_enq_3_ready_T_1)) begin // @[MultiPortFifo.scala 101:33]
          buf_3_target <= _GEN_488;
        end
      end else if (2'h3 == _io_enq_2_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        if (_T_4) begin // @[MultiPortFifo.scala 101:33]
          buf_3_target <= 39'h0;
        end else begin
          buf_3_target <= _GEN_367;
        end
      end else if (2'h3 == _io_enq_1_ready_T_1) begin // @[MultiPortFifo.scala 101:27]
        buf_3_target <= _buf_T_3_target; // @[MultiPortFifo.scala 101:27]
      end else begin
        buf_3_target <= _GEN_155;
      end
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 88:54]
    end else if (_T_1) begin // @[MultiPortFifo.scala 98:34]
      if (2'h0 == _io_deq_0_valid_T[1:0]) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_0 <= _GEN_432;
      end
    end else begin
      buf_valid_0 <= _GEN_432;
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 88:54]
    end else if (_T_1) begin // @[MultiPortFifo.scala 98:34]
      if (2'h1 == _io_deq_0_valid_T[1:0]) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_1 <= _GEN_433;
      end
    end else begin
      buf_valid_1 <= _GEN_433;
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_2 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      buf_valid_2 <= 1'h0; // @[MultiPortFifo.scala 88:54]
    end else if (_T_1) begin // @[MultiPortFifo.scala 98:34]
      if (2'h2 == _io_deq_0_valid_T[1:0]) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_2 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_2 <= _GEN_434;
      end
    end else begin
      buf_valid_2 <= _GEN_434;
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_3 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      buf_valid_3 <= 1'h0; // @[MultiPortFifo.scala 88:54]
    end else if (_T_1) begin // @[MultiPortFifo.scala 98:34]
      if (2'h3 == _io_deq_0_valid_T[1:0]) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_3 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_3 <= _GEN_435;
      end
    end else begin
      buf_valid_3 <= _GEN_435;
    end
    if (reset) begin // @[MultiPortFifo.scala 60:27]
      rd_ptr <= 2'h0; // @[MultiPortFifo.scala 60:27]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      rd_ptr <= 2'h0; // @[MultiPortFifo.scala 89:16]
    end else begin
      rd_ptr <= _rd_ptr_T_2; // @[MultiPortFifo.scala 106:16]
    end
    wr_ptr <= _GEN_60[1:0]; // @[MultiPortFifo.scala 61:{27,27}]
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_0_valid & ~io_enq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_0_valid & ~io_enq_0_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_1_valid & ~io_enq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_1_valid & ~io_enq_0_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_1_valid & ~io_enq_1_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_1_valid & ~io_enq_1_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_2_valid & ~io_enq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_2_valid & ~io_enq_0_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_2_valid & ~io_enq_1_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_2_valid & ~io_enq_1_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_2_valid & ~io_enq_2_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_2_valid & ~io_enq_2_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_3_valid & ~io_enq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_3_valid & ~io_enq_0_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_3_valid & ~io_enq_1_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_3_valid & ~io_enq_1_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_3_valid & ~io_enq_2_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_3_valid & ~io_enq_2_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_3_valid & ~io_enq_3_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_3_valid & ~io_enq_3_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_15 & ~(~(io_deq_0_valid & ~io_deq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! out port illegal\n    at MultiPortFifo.scala:164 assert( !(io.deq(i).valid === true.B && io.deq(j).valid === false.B && i.U >= j.U), \"Assert Fail! out port illegal\")\n"
            ); // @[MultiPortFifo.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_deq_0_valid & ~io_deq_0_valid)) & _T_15) begin
          $fatal; // @[MultiPortFifo.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_2 & _T_15 & ~_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, illegal multi-port-fifo behavior\n    at MultiPortFifo.scala:169 assert( io.enq(j).fire, \"Assert Failed, illegal multi-port-fifo behavior\" )\n"
            ); // @[MultiPortFifo.scala 169:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T & (_T_2 & _T_15)) begin
          $fatal; // @[MultiPortFifo.scala 169:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_4 & _T_15 & ~_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, illegal multi-port-fifo behavior\n    at MultiPortFifo.scala:169 assert( io.enq(j).fire, \"Assert Failed, illegal multi-port-fifo behavior\" )\n"
            ); // @[MultiPortFifo.scala 169:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T & (_T_4 & _T_15)) begin
          $fatal; // @[MultiPortFifo.scala 169:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_4 & _T_15 & ~_T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, illegal multi-port-fifo behavior\n    at MultiPortFifo.scala:169 assert( io.enq(j).fire, \"Assert Failed, illegal multi-port-fifo behavior\" )\n"
            ); // @[MultiPortFifo.scala 169:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_2 & (_T_4 & _T_15)) begin
          $fatal; // @[MultiPortFifo.scala 169:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_6 & _T_15 & ~_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, illegal multi-port-fifo behavior\n    at MultiPortFifo.scala:169 assert( io.enq(j).fire, \"Assert Failed, illegal multi-port-fifo behavior\" )\n"
            ); // @[MultiPortFifo.scala 169:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T & (_T_6 & _T_15)) begin
          $fatal; // @[MultiPortFifo.scala 169:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_6 & _T_15 & ~_T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, illegal multi-port-fifo behavior\n    at MultiPortFifo.scala:169 assert( io.enq(j).fire, \"Assert Failed, illegal multi-port-fifo behavior\" )\n"
            ); // @[MultiPortFifo.scala 169:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_2 & (_T_6 & _T_15)) begin
          $fatal; // @[MultiPortFifo.scala 169:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_6 & _T_15 & ~_T_4) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, illegal multi-port-fifo behavior\n    at MultiPortFifo.scala:169 assert( io.enq(j).fire, \"Assert Failed, illegal multi-port-fifo behavior\" )\n"
            ); // @[MultiPortFifo.scala 169:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_4 & (_T_6 & _T_15)) begin
          $fatal; // @[MultiPortFifo.scala 169:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  buf_0_isRVC = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  buf_0_instr = _RAND_1[31:0];
  _RAND_2 = {2{`RANDOM}};
  buf_0_pc = _RAND_2[38:0];
  _RAND_3 = {1{`RANDOM}};
  buf_0_isRedirect = _RAND_3[0:0];
  _RAND_4 = {2{`RANDOM}};
  buf_0_target = _RAND_4[38:0];
  _RAND_5 = {1{`RANDOM}};
  buf_1_isRVC = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  buf_1_instr = _RAND_6[31:0];
  _RAND_7 = {2{`RANDOM}};
  buf_1_pc = _RAND_7[38:0];
  _RAND_8 = {1{`RANDOM}};
  buf_1_isRedirect = _RAND_8[0:0];
  _RAND_9 = {2{`RANDOM}};
  buf_1_target = _RAND_9[38:0];
  _RAND_10 = {1{`RANDOM}};
  buf_2_isRVC = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  buf_2_instr = _RAND_11[31:0];
  _RAND_12 = {2{`RANDOM}};
  buf_2_pc = _RAND_12[38:0];
  _RAND_13 = {1{`RANDOM}};
  buf_2_isRedirect = _RAND_13[0:0];
  _RAND_14 = {2{`RANDOM}};
  buf_2_target = _RAND_14[38:0];
  _RAND_15 = {1{`RANDOM}};
  buf_3_isRVC = _RAND_15[0:0];
  _RAND_16 = {1{`RANDOM}};
  buf_3_instr = _RAND_16[31:0];
  _RAND_17 = {2{`RANDOM}};
  buf_3_pc = _RAND_17[38:0];
  _RAND_18 = {1{`RANDOM}};
  buf_3_isRedirect = _RAND_18[0:0];
  _RAND_19 = {2{`RANDOM}};
  buf_3_target = _RAND_19[38:0];
  _RAND_20 = {1{`RANDOM}};
  buf_valid_0 = _RAND_20[0:0];
  _RAND_21 = {1{`RANDOM}};
  buf_valid_1 = _RAND_21[0:0];
  _RAND_22 = {1{`RANDOM}};
  buf_valid_2 = _RAND_22[0:0];
  _RAND_23 = {1{`RANDOM}};
  buf_valid_3 = _RAND_23[0:0];
  _RAND_24 = {1{`RANDOM}};
  rd_ptr = _RAND_24[1:0];
  _RAND_25 = {1{`RANDOM}};
  wr_ptr = _RAND_25[1:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module IF3(
  input         clock,
  input         reset,
  output        io_if3_req_0_ready,
  input         io_if3_req_0_valid,
  input  [38:0] io_if3_req_0_bits_pc,
  input  [15:0] io_if3_req_0_bits_instr,
  input         io_if3_req_0_bits_isRedirect,
  output        io_if3_req_1_ready,
  input         io_if3_req_1_valid,
  input  [38:0] io_if3_req_1_bits_pc,
  input  [15:0] io_if3_req_1_bits_instr,
  input         io_if3_req_1_bits_isFault,
  input         io_if3_req_1_bits_isRedirect,
  output        io_if3_req_2_ready,
  input         io_if3_req_2_valid,
  input  [38:0] io_if3_req_2_bits_pc,
  input  [15:0] io_if3_req_2_bits_instr,
  input         io_if3_req_2_bits_isFault,
  input         io_if3_req_2_bits_isRedirect,
  output        io_if3_req_3_ready,
  input         io_if3_req_3_valid,
  input  [38:0] io_if3_req_3_bits_pc,
  input  [15:0] io_if3_req_3_bits_instr,
  input         io_if3_req_3_bits_isFault,
  input         io_if3_req_3_bits_isRedirect,
  input         io_if3_resp_0_ready,
  output        io_if3_resp_0_valid,
  output        io_if3_resp_0_bits_isRVC,
  output [31:0] io_if3_resp_0_bits_instr,
  output [38:0] io_if3_resp_0_bits_pc,
  output        io_if3_resp_0_bits_isRedirect,
  output [38:0] io_if3_resp_0_bits_target,
  input         io_btbResp_0_ready,
  output        io_btbResp_0_valid,
  output [38:0] io_btbResp_0_bits_target,
  input         io_bimResp_0_ready,
  output        io_bimResp_0_valid,
  output        io_bimResp_0_bits_bim_p,
  output        io_bimResp_0_bits_bim_h,
  input         io_jcmm_update_valid,
  input  [38:0] io_jcmm_update_bits_pc,
  input  [63:0] io_jcmm_update_bits_finalTarget,
  input         io_bcmm_update_valid,
  input  [38:0] io_bcmm_update_bits_pc,
  input         io_bcmm_update_bits_bimResp_bim_p,
  input         io_bcmm_update_bits_bimResp_bim_h,
  input         io_bcmm_update_bits_isFinalTaken,
  input         io_if4Redirect_valid,
  input         io_flush
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
`endif // RANDOMIZE_REG_INIT
  wire  combPDT_clock; // @[IF3.scala 52:23]
  wire  combPDT_reset; // @[IF3.scala 52:23]
  wire  combPDT_io_enq_0_ready; // @[IF3.scala 52:23]
  wire  combPDT_io_enq_0_valid; // @[IF3.scala 52:23]
  wire  combPDT_io_enq_0_bits_isRVC; // @[IF3.scala 52:23]
  wire [31:0] combPDT_io_enq_0_bits_instr; // @[IF3.scala 52:23]
  wire [38:0] combPDT_io_enq_0_bits_pc; // @[IF3.scala 52:23]
  wire  combPDT_io_enq_1_ready; // @[IF3.scala 52:23]
  wire  combPDT_io_enq_1_valid; // @[IF3.scala 52:23]
  wire  combPDT_io_enq_1_bits_isRVC; // @[IF3.scala 52:23]
  wire [31:0] combPDT_io_enq_1_bits_instr; // @[IF3.scala 52:23]
  wire [38:0] combPDT_io_enq_1_bits_pc; // @[IF3.scala 52:23]
  wire  combPDT_io_enq_2_ready; // @[IF3.scala 52:23]
  wire  combPDT_io_enq_2_valid; // @[IF3.scala 52:23]
  wire  combPDT_io_enq_2_bits_isRVC; // @[IF3.scala 52:23]
  wire [31:0] combPDT_io_enq_2_bits_instr; // @[IF3.scala 52:23]
  wire [38:0] combPDT_io_enq_2_bits_pc; // @[IF3.scala 52:23]
  wire  combPDT_io_enq_3_ready; // @[IF3.scala 52:23]
  wire  combPDT_io_enq_3_valid; // @[IF3.scala 52:23]
  wire  combPDT_io_enq_3_bits_isRVC; // @[IF3.scala 52:23]
  wire [31:0] combPDT_io_enq_3_bits_instr; // @[IF3.scala 52:23]
  wire [38:0] combPDT_io_enq_3_bits_pc; // @[IF3.scala 52:23]
  wire  combPDT_io_deq_0_ready; // @[IF3.scala 52:23]
  wire  combPDT_io_deq_0_valid; // @[IF3.scala 52:23]
  wire  combPDT_io_deq_0_bits_isRVC; // @[IF3.scala 52:23]
  wire [31:0] combPDT_io_deq_0_bits_instr; // @[IF3.scala 52:23]
  wire [38:0] combPDT_io_deq_0_bits_pc; // @[IF3.scala 52:23]
  wire  combPDT_io_deq_1_ready; // @[IF3.scala 52:23]
  wire  combPDT_io_deq_1_valid; // @[IF3.scala 52:23]
  wire  combPDT_io_deq_1_bits_isRVC; // @[IF3.scala 52:23]
  wire [31:0] combPDT_io_deq_1_bits_instr; // @[IF3.scala 52:23]
  wire [38:0] combPDT_io_deq_1_bits_pc; // @[IF3.scala 52:23]
  wire  combPDT_io_deq_2_ready; // @[IF3.scala 52:23]
  wire  combPDT_io_deq_2_valid; // @[IF3.scala 52:23]
  wire  combPDT_io_deq_2_bits_isRVC; // @[IF3.scala 52:23]
  wire [31:0] combPDT_io_deq_2_bits_instr; // @[IF3.scala 52:23]
  wire [38:0] combPDT_io_deq_2_bits_pc; // @[IF3.scala 52:23]
  wire  combPDT_io_deq_3_ready; // @[IF3.scala 52:23]
  wire  combPDT_io_deq_3_valid; // @[IF3.scala 52:23]
  wire  combPDT_io_deq_3_bits_isRVC; // @[IF3.scala 52:23]
  wire [31:0] combPDT_io_deq_3_bits_instr; // @[IF3.scala 52:23]
  wire [38:0] combPDT_io_deq_3_bits_pc; // @[IF3.scala 52:23]
  wire  btb_clock; // @[IF3.scala 56:19]
  wire  btb_reset; // @[IF3.scala 56:19]
  wire  btb_io_req_ready; // @[IF3.scala 56:19]
  wire  btb_io_req_valid; // @[IF3.scala 56:19]
  wire [38:0] btb_io_req_bits_pc; // @[IF3.scala 56:19]
  wire  btb_io_resp_ready; // @[IF3.scala 56:19]
  wire  btb_io_resp_valid; // @[IF3.scala 56:19]
  wire [38:0] btb_io_resp_bits_target; // @[IF3.scala 56:19]
  wire  btb_io_update_valid; // @[IF3.scala 56:19]
  wire [38:0] btb_io_update_bits_target; // @[IF3.scala 56:19]
  wire [38:0] btb_io_update_bits_pc; // @[IF3.scala 56:19]
  wire  btb_io_isReady; // @[IF3.scala 56:19]
  wire  bim_clock; // @[IF3.scala 57:19]
  wire  bim_reset; // @[IF3.scala 57:19]
  wire  bim_io_req_ready; // @[IF3.scala 57:19]
  wire  bim_io_req_valid; // @[IF3.scala 57:19]
  wire [38:0] bim_io_req_bits_pc; // @[IF3.scala 57:19]
  wire  bim_io_resp_ready; // @[IF3.scala 57:19]
  wire  bim_io_resp_valid; // @[IF3.scala 57:19]
  wire  bim_io_resp_bits_bim_p; // @[IF3.scala 57:19]
  wire  bim_io_resp_bits_bim_h; // @[IF3.scala 57:19]
  wire  bim_io_update_valid; // @[IF3.scala 57:19]
  wire  bim_io_update_bits_bim_p; // @[IF3.scala 57:19]
  wire  bim_io_update_bits_bim_h; // @[IF3.scala 57:19]
  wire [38:0] bim_io_update_bits_pc; // @[IF3.scala 57:19]
  wire  bim_io_update_bits_isFinalTaken; // @[IF3.scala 57:19]
  wire  bim_io_isReady; // @[IF3.scala 57:19]
  wire  btbFifo_clock; // @[IF3.scala 60:24]
  wire  btbFifo_reset; // @[IF3.scala 60:24]
  wire  btbFifo_io_enq_0_ready; // @[IF3.scala 60:24]
  wire  btbFifo_io_enq_0_valid; // @[IF3.scala 60:24]
  wire [38:0] btbFifo_io_enq_0_bits_target; // @[IF3.scala 60:24]
  wire  btbFifo_io_deq_0_ready; // @[IF3.scala 60:24]
  wire  btbFifo_io_deq_0_valid; // @[IF3.scala 60:24]
  wire [38:0] btbFifo_io_deq_0_bits_target; // @[IF3.scala 60:24]
  wire  btbFifo_io_flush; // @[IF3.scala 60:24]
  wire  bimFifo_clock; // @[IF3.scala 61:24]
  wire  bimFifo_reset; // @[IF3.scala 61:24]
  wire  bimFifo_io_enq_0_ready; // @[IF3.scala 61:24]
  wire  bimFifo_io_enq_0_valid; // @[IF3.scala 61:24]
  wire  bimFifo_io_enq_0_bits_bim_p; // @[IF3.scala 61:24]
  wire  bimFifo_io_enq_0_bits_bim_h; // @[IF3.scala 61:24]
  wire  bimFifo_io_deq_0_ready; // @[IF3.scala 61:24]
  wire  bimFifo_io_deq_0_valid; // @[IF3.scala 61:24]
  wire  bimFifo_io_deq_0_bits_bim_p; // @[IF3.scala 61:24]
  wire  bimFifo_io_deq_0_bits_bim_h; // @[IF3.scala 61:24]
  wire  bimFifo_io_flush; // @[IF3.scala 61:24]
  wire  tageFifo_clock; // @[IF3.scala 62:24]
  wire  tageFifo_reset; // @[IF3.scala 62:24]
  wire  tageFifo_io_deq_0_valid; // @[IF3.scala 62:24]
  wire  if3_resp_fifo_clock; // @[IF3.scala 67:29]
  wire  if3_resp_fifo_reset; // @[IF3.scala 67:29]
  wire  if3_resp_fifo_io_enq_0_ready; // @[IF3.scala 67:29]
  wire  if3_resp_fifo_io_enq_0_valid; // @[IF3.scala 67:29]
  wire  if3_resp_fifo_io_enq_0_bits_isRVC; // @[IF3.scala 67:29]
  wire [31:0] if3_resp_fifo_io_enq_0_bits_instr; // @[IF3.scala 67:29]
  wire [38:0] if3_resp_fifo_io_enq_0_bits_pc; // @[IF3.scala 67:29]
  wire  if3_resp_fifo_io_enq_1_ready; // @[IF3.scala 67:29]
  wire  if3_resp_fifo_io_enq_1_valid; // @[IF3.scala 67:29]
  wire  if3_resp_fifo_io_enq_1_bits_isRVC; // @[IF3.scala 67:29]
  wire [31:0] if3_resp_fifo_io_enq_1_bits_instr; // @[IF3.scala 67:29]
  wire [38:0] if3_resp_fifo_io_enq_1_bits_pc; // @[IF3.scala 67:29]
  wire  if3_resp_fifo_io_enq_2_ready; // @[IF3.scala 67:29]
  wire  if3_resp_fifo_io_enq_2_valid; // @[IF3.scala 67:29]
  wire  if3_resp_fifo_io_enq_2_bits_isRVC; // @[IF3.scala 67:29]
  wire [31:0] if3_resp_fifo_io_enq_2_bits_instr; // @[IF3.scala 67:29]
  wire [38:0] if3_resp_fifo_io_enq_2_bits_pc; // @[IF3.scala 67:29]
  wire  if3_resp_fifo_io_enq_3_ready; // @[IF3.scala 67:29]
  wire  if3_resp_fifo_io_enq_3_valid; // @[IF3.scala 67:29]
  wire  if3_resp_fifo_io_enq_3_bits_isRVC; // @[IF3.scala 67:29]
  wire [31:0] if3_resp_fifo_io_enq_3_bits_instr; // @[IF3.scala 67:29]
  wire [38:0] if3_resp_fifo_io_enq_3_bits_pc; // @[IF3.scala 67:29]
  wire  if3_resp_fifo_io_deq_0_ready; // @[IF3.scala 67:29]
  wire  if3_resp_fifo_io_deq_0_valid; // @[IF3.scala 67:29]
  wire  if3_resp_fifo_io_deq_0_bits_isRVC; // @[IF3.scala 67:29]
  wire [31:0] if3_resp_fifo_io_deq_0_bits_instr; // @[IF3.scala 67:29]
  wire [38:0] if3_resp_fifo_io_deq_0_bits_pc; // @[IF3.scala 67:29]
  wire  if3_resp_fifo_io_deq_0_bits_isRedirect; // @[IF3.scala 67:29]
  wire [38:0] if3_resp_fifo_io_deq_0_bits_target; // @[IF3.scala 67:29]
  wire  if3_resp_fifo_io_flush; // @[IF3.scala 67:29]
  reg  pipeLineLock; // @[IF3.scala 54:29]
  wire  predictor_ready = btb_io_isReady & bim_io_isReady; // @[IF3.scala 65:40]
  wire  is_instr32_0 = io_if3_req_0_bits_instr[1:0] == 2'h3; // @[IF3.scala 81:54]
  wire  is_instr32_1 = io_if3_req_1_bits_instr[1:0] == 2'h3; // @[IF3.scala 81:54]
  wire  is_instr32_2 = io_if3_req_2_bits_instr[1:0] == 2'h3; // @[IF3.scala 81:54]
  wire  is_instr32_3 = io_if3_req_3_bits_instr[1:0] == 2'h3; // @[IF3.scala 81:54]
  wire  isPassThrough_1 = is_instr32_0 | io_if3_req_0_bits_isRedirect; // @[IF3.scala 86:51]
  wire  _T_3 = ~isPassThrough_1; // @[IF3.scala 86:30]
  wire  isPassThrough_2 = is_instr32_1 & ~isPassThrough_1 | io_if3_req_1_bits_isRedirect; // @[IF3.scala 86:51]
  wire  _T_6 = ~isPassThrough_2; // @[IF3.scala 86:30]
  wire  _T_8 = is_instr32_2 & ~isPassThrough_2 | io_if3_req_2_bits_isRedirect; // @[IF3.scala 86:51]
  wire  isPassThrough_3 = is_instr32_3 | _T_8; // @[IF3.scala 89:27 90:24]
  wire [31:0] _reAlign_0_bits_instr_T = {io_if3_req_1_bits_instr,io_if3_req_0_bits_instr}; // @[Cat.scala 33:92]
  wire [31:0] _reAlign_0_bits_instr_T_1 = io_if3_req_1_bits_isFault ? {{16'd0}, io_if3_req_1_bits_instr} :
    _reAlign_0_bits_instr_T; // @[IF3.scala 106:44]
  wire [15:0] _reAlignPreDecode_0_info16_is_jalr_T = io_if3_req_1_bits_instr & 16'he07f; // @[IF3.scala 345:34]
  wire  reAlignPreDecode_0_info16_is_jalr = 16'h8002 == _reAlignPreDecode_0_info16_is_jalr_T & io_if3_req_1_bits_instr[
    11:7] != 5'h0; // @[IF3.scala 345:66]
  wire [15:0] _reAlignPreDecode_0_info16_is_branch_T = io_if3_req_1_bits_instr & 16'hc003; // @[IF3.scala 346:34]
  wire  reAlignPreDecode_0_info16_is_branch = 16'hc001 == _reAlignPreDecode_0_info16_is_branch_T; // @[IF3.scala 346:34]
  wire  reAlignPreDecode_0_info32_is_jalr = _reAlign_0_bits_instr_T[6:0] == 7'h67; // @[IF3.scala 371:39]
  wire  reAlignPreDecode_0_info32_is_branch = _reAlign_0_bits_instr_T[6:0] == 7'h63; // @[IF3.scala 372:39]
  wire [31:0] _reAlignPreDecode_0_info32_is_fencei_T = _reAlign_0_bits_instr_T & 32'h707f; // @[IF3.scala 375:35]
  wire  reAlignPreDecode_0_info32_is_fencei = 32'h100f == _reAlignPreDecode_0_info32_is_fencei_T; // @[IF3.scala 375:35]
  wire [31:0] _reAlignPreDecode_0_info32_is_sfencevma_T = _reAlign_0_bits_instr_T & 32'hfe007fff; // @[IF3.scala 376:38]
  wire  reAlignPreDecode_0_info32_is_sfencevma = 32'h12000073 == _reAlignPreDecode_0_info32_is_sfencevma_T; // @[IF3.scala 376:38]
  wire  _reAlignPreDecode_0_T_1_is_jalr = io_if3_req_1_bits_isFault ? reAlignPreDecode_0_info16_is_jalr :
    reAlignPreDecode_0_info32_is_jalr; // @[IF3.scala 107:37]
  wire  _reAlignPreDecode_0_T_1_is_branch = io_if3_req_1_bits_isFault ? reAlignPreDecode_0_info16_is_branch :
    reAlignPreDecode_0_info32_is_branch; // @[IF3.scala 107:37]
  wire  _reAlignPreDecode_0_T_1_is_fencei = io_if3_req_1_bits_isFault ? 1'h0 : reAlignPreDecode_0_info32_is_fencei; // @[IF3.scala 107:37]
  wire  _reAlignPreDecode_0_T_1_is_sfencevma = io_if3_req_1_bits_isFault ? 1'h0 : reAlignPreDecode_0_info32_is_sfencevma
    ; // @[IF3.scala 107:37]
  wire  _reAlign_0_valid_T = io_if3_req_0_ready & io_if3_req_0_valid; // @[Decoupled.scala 52:35]
  wire  _reAlign_0_valid_T_1 = io_if3_req_1_ready & io_if3_req_1_valid; // @[Decoupled.scala 52:35]
  wire  _reAlign_0_valid_T_4 = ~pipeLineLock; // @[IF3.scala 112:100]
  wire  _reAlign_0_valid_T_5 = _reAlign_0_valid_T & _reAlign_0_valid_T_1 & predictor_ready & ~pipeLineLock; // @[IF3.scala 112:98]
  wire [15:0] _reAlignPreDecode_0_info16_is_branch_T_2 = io_if3_req_0_bits_instr & 16'hc003; // @[IF3.scala 346:34]
  wire  reAlignPreDecode_0_info16_1_is_branch = 16'hc001 == _reAlignPreDecode_0_info16_is_branch_T_2; // @[IF3.scala 346:34]
  wire  reAlignPreDecode_0_is_branch = is_instr32_0 ? _reAlignPreDecode_0_T_1_is_branch :
    reAlignPreDecode_0_info16_1_is_branch; // @[IF3.scala 102:31 107:31 138:31]
  wire [15:0] _reAlignPreDecode_0_info16_is_jalr_T_5 = io_if3_req_0_bits_instr & 16'he07f; // @[IF3.scala 345:34]
  wire  reAlignPreDecode_0_info16_1_is_jalr = 16'h8002 == _reAlignPreDecode_0_info16_is_jalr_T_5 &
    io_if3_req_0_bits_instr[11:7] != 5'h0; // @[IF3.scala 345:66]
  wire  reAlignPreDecode_0_is_jalr = is_instr32_0 ? _reAlignPreDecode_0_T_1_is_jalr :
    reAlignPreDecode_0_info16_1_is_jalr; // @[IF3.scala 102:31 107:31 138:31]
  wire  _reAlign_0_ready_T = combPDT_io_enq_0_ready & btb_io_req_ready; // @[IF3.scala 202:53]
  wire  _GEN_332 = reAlignPreDecode_0_is_jalr ? _reAlign_0_ready_T : combPDT_io_enq_0_ready; // @[IF3.scala 179:11 196:27]
  wire  _reAlign_0_ready_T_1 = combPDT_io_enq_0_ready & bim_io_req_ready; // @[IF3.scala 213:53]
  wire  reAlign_0_ready = reAlignPreDecode_0_is_branch ? _reAlign_0_ready_T_1 : _GEN_332; // @[IF3.scala 207:27]
  wire  _io_if3_req_0_ready_T_2 = reAlign_0_ready & predictor_ready & _reAlign_0_valid_T_4; // @[IF3.scala 113:73]
  wire  _io_if3_req_0_ready_T_3 = reAlign_0_ready & predictor_ready & _reAlign_0_valid_T_4 & io_if3_req_1_valid; // @[IF3.scala 113:89]
  wire  _T_15 = ~reset; // @[IF3.scala 132:17]
  wire  _reAlign_0_valid_T_21 = _reAlign_0_valid_T & predictor_ready & _reAlign_0_valid_T_4; // @[IF3.scala 143:75]
  wire  reAlignPreDecode_0_is_fencei = is_instr32_0 & _reAlignPreDecode_0_T_1_is_fencei; // @[IF3.scala 102:31 107:31 138:31]
  wire  reAlignPreDecode_0_is_sfencevma = is_instr32_0 & _reAlignPreDecode_0_T_1_is_sfencevma; // @[IF3.scala 102:31 107:31 138:31]
  wire  reAlign_0_valid = is_instr32_0 ? _reAlign_0_valid_T_5 : _reAlign_0_valid_T_21; // @[IF3.scala 102:31]
  wire  _GEN_34 = is_instr32_0 & _io_if3_req_0_ready_T_2; // @[IF3.scala 102:31]
  wire [31:0] _reAlign_1_bits_instr_T = {io_if3_req_2_bits_instr,io_if3_req_1_bits_instr}; // @[Cat.scala 33:92]
  wire [31:0] _reAlign_1_bits_instr_T_1 = io_if3_req_2_bits_isFault ? {{16'd0}, io_if3_req_2_bits_instr} :
    _reAlign_1_bits_instr_T; // @[IF3.scala 106:44]
  wire [15:0] _reAlignPreDecode_1_info16_is_jalr_T = io_if3_req_2_bits_instr & 16'he07f; // @[IF3.scala 345:34]
  wire  reAlignPreDecode_1_info16_is_jalr = 16'h8002 == _reAlignPreDecode_1_info16_is_jalr_T & io_if3_req_2_bits_instr[
    11:7] != 5'h0; // @[IF3.scala 345:66]
  wire [15:0] _reAlignPreDecode_1_info16_is_branch_T = io_if3_req_2_bits_instr & 16'hc003; // @[IF3.scala 346:34]
  wire  reAlignPreDecode_1_info16_is_branch = 16'hc001 == _reAlignPreDecode_1_info16_is_branch_T; // @[IF3.scala 346:34]
  wire  reAlignPreDecode_1_info32_is_jalr = _reAlign_1_bits_instr_T[6:0] == 7'h67; // @[IF3.scala 371:39]
  wire  reAlignPreDecode_1_info32_is_branch = _reAlign_1_bits_instr_T[6:0] == 7'h63; // @[IF3.scala 372:39]
  wire [31:0] _reAlignPreDecode_1_info32_is_fencei_T = _reAlign_1_bits_instr_T & 32'h707f; // @[IF3.scala 375:35]
  wire  reAlignPreDecode_1_info32_is_fencei = 32'h100f == _reAlignPreDecode_1_info32_is_fencei_T; // @[IF3.scala 375:35]
  wire [31:0] _reAlignPreDecode_1_info32_is_sfencevma_T = _reAlign_1_bits_instr_T & 32'hfe007fff; // @[IF3.scala 376:38]
  wire  reAlignPreDecode_1_info32_is_sfencevma = 32'h12000073 == _reAlignPreDecode_1_info32_is_sfencevma_T; // @[IF3.scala 376:38]
  wire  _reAlignPreDecode_1_T_1_is_jalr = io_if3_req_2_bits_isFault ? reAlignPreDecode_1_info16_is_jalr :
    reAlignPreDecode_1_info32_is_jalr; // @[IF3.scala 107:37]
  wire  _reAlignPreDecode_1_T_1_is_branch = io_if3_req_2_bits_isFault ? reAlignPreDecode_1_info16_is_branch :
    reAlignPreDecode_1_info32_is_branch; // @[IF3.scala 107:37]
  wire  _reAlignPreDecode_1_T_1_is_fencei = io_if3_req_2_bits_isFault ? 1'h0 : reAlignPreDecode_1_info32_is_fencei; // @[IF3.scala 107:37]
  wire  _reAlignPreDecode_1_T_1_is_sfencevma = io_if3_req_2_bits_isFault ? 1'h0 : reAlignPreDecode_1_info32_is_sfencevma
    ; // @[IF3.scala 107:37]
  wire  _reAlign_1_valid_T_1 = io_if3_req_2_ready & io_if3_req_2_valid; // @[Decoupled.scala 52:35]
  wire  _reAlign_1_valid_T_5 = _reAlign_0_valid_T_1 & _reAlign_1_valid_T_1 & predictor_ready & ~pipeLineLock; // @[IF3.scala 112:98]
  wire  is_lock_pipe_0 = reAlignPreDecode_0_is_fencei | reAlignPreDecode_0_is_sfencevma; // @[frontend.scala 100:32]
  wire  _GEN_74 = is_instr32_1 ? _reAlignPreDecode_1_T_1_is_branch : reAlignPreDecode_0_info16_is_branch; // @[IF3.scala 102:31 107:31 138:31]
  wire  reAlignPreDecode_1_is_branch = _T_3 & _GEN_74; // @[IF3.scala 101:33 97:25]
  wire  _GEN_73 = is_instr32_1 ? _reAlignPreDecode_1_T_1_is_jalr : reAlignPreDecode_0_info16_is_jalr; // @[IF3.scala 102:31 107:31 138:31]
  wire  reAlignPreDecode_1_is_jalr = _T_3 & _GEN_73; // @[IF3.scala 101:33 97:25]
  wire  _GEN_268 = reAlignPreDecode_0_is_jalr ? combPDT_io_enq_1_ready : combPDT_io_enq_1_ready & btb_io_req_ready; // @[IF3.scala 197:100 179:11 202:26]
  wire  _GEN_271 = reAlignPreDecode_1_is_jalr ? _GEN_268 : combPDT_io_enq_1_ready; // @[IF3.scala 179:11 196:27]
  wire  _GEN_274 = reAlignPreDecode_0_is_branch ? _GEN_271 : combPDT_io_enq_1_ready & bim_io_req_ready; // @[IF3.scala 208:103 213:26]
  wire  _GEN_277 = reAlignPreDecode_1_is_branch ? _GEN_274 : _GEN_271; // @[IF3.scala 207:27]
  wire  _GEN_291 = reAlignPreDecode_0_is_jalr ? 1'h0 : _GEN_277; // @[IF3.scala 242:100 245:28]
  wire  _GEN_297 = reAlignPreDecode_1_is_jalr ? _GEN_291 : _GEN_277; // @[IF3.scala 241:27]
  wire  _GEN_303 = reAlignPreDecode_0_is_branch ? 1'h0 : _GEN_297; // @[IF3.scala 252:103 255:28]
  wire  _GEN_309 = reAlignPreDecode_1_is_branch ? _GEN_303 : _GEN_297; // @[IF3.scala 251:27]
  wire  _GEN_326 = ~reAlign_0_ready ? 1'h0 : _GEN_309; // @[IF3.scala 271:44 272:26]
  wire  reAlign_1_ready = is_lock_pipe_0 ? 1'h0 : _GEN_326; // @[IF3.scala 234:29 237:26]
  wire  _io_if3_req_1_ready_T_11 = reAlign_1_ready & predictor_ready & _reAlign_0_valid_T_4; // @[IF3.scala 113:73]
  wire  _io_if3_req_1_ready_T_12 = reAlign_1_ready & predictor_ready & _reAlign_0_valid_T_4 & io_if3_req_2_valid; // @[IF3.scala 113:89]
  wire  _reAlign_1_valid_T_21 = _reAlign_0_valid_T_1 & predictor_ready & _reAlign_0_valid_T_4; // @[IF3.scala 143:75]
  wire [31:0] _GEN_71 = is_instr32_1 ? _reAlign_1_bits_instr_T_1 : {{16'd0}, io_if3_req_1_bits_instr}; // @[IF3.scala 102:31 106:38 137:33]
  wire  _GEN_77 = is_instr32_1 ? io_if3_req_2_bits_isFault : 1'h1; // @[IF3.scala 102:31 107:31 138:31]
  wire  _GEN_78 = is_instr32_1 & _reAlignPreDecode_1_T_1_is_fencei; // @[IF3.scala 102:31 107:31 138:31]
  wire  _GEN_79 = is_instr32_1 & _reAlignPreDecode_1_T_1_is_sfencevma; // @[IF3.scala 102:31 107:31 138:31]
  wire  reAlignPreDecode_1_is_rvc = _T_3 & _GEN_77; // @[IF3.scala 101:33 97:25]
  wire  _GEN_82 = is_instr32_1 ? _reAlign_1_valid_T_5 : _reAlign_1_valid_T_21; // @[IF3.scala 102:31]
  wire  _GEN_83 = is_instr32_1 ? _io_if3_req_1_ready_T_12 : _io_if3_req_1_ready_T_11; // @[IF3.scala 102:31]
  wire  _GEN_84 = is_instr32_1 & _io_if3_req_1_ready_T_11; // @[IF3.scala 102:31]
  wire [38:0] reAlign_1_bits_pc = _T_3 ? io_if3_req_1_bits_pc : 39'h0; // @[IF3.scala 101:33 96:22]
  wire  reAlignPreDecode_1_is_fencei = _T_3 & _GEN_78; // @[IF3.scala 101:33 97:25]
  wire  reAlignPreDecode_1_is_sfencevma = _T_3 & _GEN_79; // @[IF3.scala 101:33 97:25]
  wire  _GEN_100 = _T_3 & _GEN_82; // @[IF3.scala 101:33 95:22]
  wire [31:0] _reAlign_2_bits_instr_T = {io_if3_req_3_bits_instr,io_if3_req_2_bits_instr}; // @[Cat.scala 33:92]
  wire [31:0] _reAlign_2_bits_instr_T_1 = io_if3_req_3_bits_isFault ? {{16'd0}, io_if3_req_3_bits_instr} :
    _reAlign_2_bits_instr_T; // @[IF3.scala 106:44]
  wire [15:0] _reAlignPreDecode_2_info16_is_jalr_T = io_if3_req_3_bits_instr & 16'he07f; // @[IF3.scala 345:34]
  wire  reAlignPreDecode_2_info16_is_jalr = 16'h8002 == _reAlignPreDecode_2_info16_is_jalr_T & io_if3_req_3_bits_instr[
    11:7] != 5'h0; // @[IF3.scala 345:66]
  wire [15:0] _reAlignPreDecode_2_info16_is_branch_T = io_if3_req_3_bits_instr & 16'hc003; // @[IF3.scala 346:34]
  wire  reAlignPreDecode_2_info16_is_branch = 16'hc001 == _reAlignPreDecode_2_info16_is_branch_T; // @[IF3.scala 346:34]
  wire  reAlignPreDecode_2_info32_is_jalr = _reAlign_2_bits_instr_T[6:0] == 7'h67; // @[IF3.scala 371:39]
  wire  reAlignPreDecode_2_info32_is_branch = _reAlign_2_bits_instr_T[6:0] == 7'h63; // @[IF3.scala 372:39]
  wire [31:0] _reAlignPreDecode_2_info32_is_fencei_T = _reAlign_2_bits_instr_T & 32'h707f; // @[IF3.scala 375:35]
  wire  reAlignPreDecode_2_info32_is_fencei = 32'h100f == _reAlignPreDecode_2_info32_is_fencei_T; // @[IF3.scala 375:35]
  wire [31:0] _reAlignPreDecode_2_info32_is_sfencevma_T = _reAlign_2_bits_instr_T & 32'hfe007fff; // @[IF3.scala 376:38]
  wire  reAlignPreDecode_2_info32_is_sfencevma = 32'h12000073 == _reAlignPreDecode_2_info32_is_sfencevma_T; // @[IF3.scala 376:38]
  wire  _reAlignPreDecode_2_T_1_is_jalr = io_if3_req_3_bits_isFault ? reAlignPreDecode_2_info16_is_jalr :
    reAlignPreDecode_2_info32_is_jalr; // @[IF3.scala 107:37]
  wire  _reAlignPreDecode_2_T_1_is_branch = io_if3_req_3_bits_isFault ? reAlignPreDecode_2_info16_is_branch :
    reAlignPreDecode_2_info32_is_branch; // @[IF3.scala 107:37]
  wire  _reAlignPreDecode_2_T_1_is_fencei = io_if3_req_3_bits_isFault ? 1'h0 : reAlignPreDecode_2_info32_is_fencei; // @[IF3.scala 107:37]
  wire  _reAlignPreDecode_2_T_1_is_sfencevma = io_if3_req_3_bits_isFault ? 1'h0 : reAlignPreDecode_2_info32_is_sfencevma
    ; // @[IF3.scala 107:37]
  wire  _reAlign_2_valid_T_1 = io_if3_req_3_ready & io_if3_req_3_valid; // @[Decoupled.scala 52:35]
  wire  _reAlign_2_valid_T_5 = _reAlign_1_valid_T_1 & _reAlign_2_valid_T_1 & predictor_ready & ~pipeLineLock; // @[IF3.scala 112:98]
  wire  is_lock_pipe_1 = reAlignPreDecode_1_is_fencei | reAlignPreDecode_1_is_sfencevma; // @[frontend.scala 100:32]
  wire  _GEN_121 = is_instr32_2 ? _reAlignPreDecode_2_T_1_is_branch : reAlignPreDecode_1_info16_is_branch; // @[IF3.scala 102:31 107:31 138:31]
  wire  reAlignPreDecode_2_is_branch = _T_6 & _GEN_121; // @[IF3.scala 101:33 97:25]
  wire  _T_98 = reAlignPreDecode_0_is_branch | reAlignPreDecode_1_is_branch; // @[IF3.scala 252:94]
  wire  _GEN_120 = is_instr32_2 ? _reAlignPreDecode_2_T_1_is_jalr : reAlignPreDecode_1_info16_is_jalr; // @[IF3.scala 102:31 107:31 138:31]
  wire  reAlignPreDecode_2_is_jalr = _T_6 & _GEN_120; // @[IF3.scala 101:33 97:25]
  wire  _T_97 = reAlignPreDecode_0_is_jalr | reAlignPreDecode_1_is_jalr; // @[IF3.scala 242:92]
  wire  _GEN_220 = _T_97 ? combPDT_io_enq_2_ready : combPDT_io_enq_2_ready & btb_io_req_ready; // @[IF3.scala 197:100 179:11 202:26]
  wire  _GEN_223 = reAlignPreDecode_2_is_jalr ? _GEN_220 : combPDT_io_enq_2_ready; // @[IF3.scala 179:11 196:27]
  wire  _GEN_226 = _T_98 ? _GEN_223 : combPDT_io_enq_2_ready & bim_io_req_ready; // @[IF3.scala 208:103 213:26]
  wire  _GEN_229 = reAlignPreDecode_2_is_branch ? _GEN_226 : _GEN_223; // @[IF3.scala 207:27]
  wire  _GEN_241 = reAlignPreDecode_0_is_jalr | reAlignPreDecode_1_is_jalr ? 1'h0 : _GEN_229; // @[IF3.scala 242:100 245:28]
  wire  _GEN_245 = reAlignPreDecode_2_is_jalr ? _GEN_241 : _GEN_229; // @[IF3.scala 241:27]
  wire  _GEN_249 = reAlignPreDecode_0_is_branch | reAlignPreDecode_1_is_branch ? 1'h0 : _GEN_245; // @[IF3.scala 252:103 255:28]
  wire  _GEN_253 = reAlignPreDecode_2_is_branch ? _GEN_249 : _GEN_245; // @[IF3.scala 251:27]
  wire  _GEN_264 = ~reAlign_0_ready ? 1'h0 : _GEN_253; // @[IF3.scala 271:44 272:26]
  wire  _GEN_265 = ~reAlign_1_ready ? 1'h0 : _GEN_264; // @[IF3.scala 271:44 272:26]
  wire  _GEN_287 = is_lock_pipe_1 ? 1'h0 : _GEN_265; // @[IF3.scala 234:29 237:26]
  wire  _GEN_293 = reAlignPreDecode_0_is_jalr ? 1'h0 : _GEN_287; // @[IF3.scala 242:100 245:28]
  wire  _GEN_299 = reAlignPreDecode_1_is_jalr ? _GEN_293 : _GEN_287; // @[IF3.scala 241:27]
  wire  _GEN_305 = reAlignPreDecode_0_is_branch ? 1'h0 : _GEN_299; // @[IF3.scala 252:103 255:28]
  wire  _GEN_311 = reAlignPreDecode_1_is_branch ? _GEN_305 : _GEN_299; // @[IF3.scala 251:27]
  wire  reAlign_2_ready = is_lock_pipe_0 ? 1'h0 : _GEN_311; // @[IF3.scala 234:29 237:26]
  wire  _io_if3_req_2_ready_T_14 = reAlign_2_ready & predictor_ready & _reAlign_0_valid_T_4; // @[IF3.scala 113:73]
  wire  _io_if3_req_2_ready_T_15 = reAlign_2_ready & predictor_ready & _reAlign_0_valid_T_4 & io_if3_req_3_valid; // @[IF3.scala 113:89]
  wire  _reAlign_2_valid_T_15 = _reAlign_1_valid_T_1 & predictor_ready & _reAlign_0_valid_T_4; // @[IF3.scala 143:75]
  wire [31:0] _GEN_118 = is_instr32_2 ? _reAlign_2_bits_instr_T_1 : {{16'd0}, io_if3_req_2_bits_instr}; // @[IF3.scala 102:31 106:38 137:33]
  wire  _GEN_124 = is_instr32_2 ? io_if3_req_3_bits_isFault : 1'h1; // @[IF3.scala 102:31 107:31 138:31]
  wire  _GEN_125 = is_instr32_2 & _reAlignPreDecode_2_T_1_is_fencei; // @[IF3.scala 102:31 107:31 138:31]
  wire  _GEN_126 = is_instr32_2 & _reAlignPreDecode_2_T_1_is_sfencevma; // @[IF3.scala 102:31 107:31 138:31]
  wire  reAlignPreDecode_2_is_rvc = _T_6 & _GEN_124; // @[IF3.scala 101:33 97:25]
  wire  _GEN_129 = is_instr32_2 ? _reAlign_2_valid_T_5 : _reAlign_2_valid_T_15; // @[IF3.scala 102:31]
  wire  _GEN_130 = is_instr32_2 ? _io_if3_req_2_ready_T_15 : _io_if3_req_2_ready_T_14; // @[IF3.scala 102:31]
  wire  _GEN_131 = is_instr32_2 & _io_if3_req_2_ready_T_14; // @[IF3.scala 102:31]
  wire [38:0] reAlign_2_bits_pc = _T_6 ? io_if3_req_2_bits_pc : 39'h0; // @[IF3.scala 101:33 96:22]
  wire  reAlignPreDecode_2_is_fencei = _T_6 & _GEN_125; // @[IF3.scala 101:33 97:25]
  wire  reAlignPreDecode_2_is_sfencevma = _T_6 & _GEN_126; // @[IF3.scala 101:33 97:25]
  wire  _GEN_146 = _T_6 & _GEN_129; // @[IF3.scala 101:33 95:22]
  wire  _GEN_148 = _T_6 & _GEN_131; // @[IF3.scala 101:33]
  wire  _reAlign_3_valid_T_3 = _reAlign_2_valid_T_1 & predictor_ready & _reAlign_0_valid_T_4; // @[IF3.scala 143:75]
  wire  is_lock_pipe_2 = reAlignPreDecode_2_is_fencei | reAlignPreDecode_2_is_sfencevma; // @[frontend.scala 100:32]
  wire  _GEN_157 = is_instr32_3 ? 1'h0 : reAlignPreDecode_2_info16_is_branch; // @[IF3.scala 102:31 97:25 138:31]
  wire  reAlignPreDecode_3_is_branch = ~isPassThrough_3 & _GEN_157; // @[IF3.scala 101:33 97:25]
  wire  _T_88 = reAlignPreDecode_0_is_branch | reAlignPreDecode_1_is_branch | reAlignPreDecode_2_is_branch; // @[IF3.scala 252:94]
  wire  _GEN_156 = is_instr32_3 ? 1'h0 : reAlignPreDecode_2_info16_is_jalr; // @[IF3.scala 102:31 97:25 138:31]
  wire  reAlignPreDecode_3_is_jalr = ~isPassThrough_3 & _GEN_156; // @[IF3.scala 101:33 97:25]
  wire  _T_86 = reAlignPreDecode_0_is_jalr | reAlignPreDecode_1_is_jalr | reAlignPreDecode_2_is_jalr; // @[IF3.scala 242:92]
  wire  _GEN_185 = _T_86 ? combPDT_io_enq_3_ready : combPDT_io_enq_3_ready & btb_io_req_ready; // @[IF3.scala 197:100 179:11 202:26]
  wire  _GEN_188 = reAlignPreDecode_3_is_jalr ? _GEN_185 : combPDT_io_enq_3_ready; // @[IF3.scala 179:11 196:27]
  wire  _GEN_191 = _T_88 ? _GEN_188 : combPDT_io_enq_3_ready & bim_io_req_ready; // @[IF3.scala 208:103 213:26]
  wire  _GEN_194 = reAlignPreDecode_3_is_branch ? _GEN_191 : _GEN_188; // @[IF3.scala 207:27]
  wire  _GEN_204 = reAlignPreDecode_0_is_jalr | reAlignPreDecode_1_is_jalr | reAlignPreDecode_2_is_jalr ? 1'h0 :
    _GEN_194; // @[IF3.scala 242:100 245:28]
  wire  _GEN_206 = reAlignPreDecode_3_is_jalr ? _GEN_204 : _GEN_194; // @[IF3.scala 241:27]
  wire  _GEN_208 = reAlignPreDecode_0_is_branch | reAlignPreDecode_1_is_branch | reAlignPreDecode_2_is_branch ? 1'h0 :
    _GEN_206; // @[IF3.scala 252:103 255:28]
  wire  _GEN_210 = reAlignPreDecode_3_is_branch ? _GEN_208 : _GEN_206; // @[IF3.scala 251:27]
  wire  _GEN_215 = ~reAlign_0_ready ? 1'h0 : _GEN_210; // @[IF3.scala 271:44 272:26]
  wire  _GEN_216 = ~reAlign_1_ready ? 1'h0 : _GEN_215; // @[IF3.scala 271:44 272:26]
  wire  _GEN_217 = ~reAlign_2_ready ? 1'h0 : _GEN_216; // @[IF3.scala 271:44 272:26]
  wire  _GEN_239 = is_lock_pipe_2 ? 1'h0 : _GEN_217; // @[IF3.scala 234:29 237:26]
  wire  _GEN_243 = reAlignPreDecode_0_is_jalr | reAlignPreDecode_1_is_jalr ? 1'h0 : _GEN_239; // @[IF3.scala 242:100 245:28]
  wire  _GEN_247 = reAlignPreDecode_2_is_jalr ? _GEN_243 : _GEN_239; // @[IF3.scala 241:27]
  wire  _GEN_251 = reAlignPreDecode_0_is_branch | reAlignPreDecode_1_is_branch ? 1'h0 : _GEN_247; // @[IF3.scala 252:103 255:28]
  wire  _GEN_255 = reAlignPreDecode_2_is_branch ? _GEN_251 : _GEN_247; // @[IF3.scala 251:27]
  wire  _GEN_289 = is_lock_pipe_1 ? 1'h0 : _GEN_255; // @[IF3.scala 234:29 237:26]
  wire  _GEN_295 = reAlignPreDecode_0_is_jalr ? 1'h0 : _GEN_289; // @[IF3.scala 242:100 245:28]
  wire  _GEN_301 = reAlignPreDecode_1_is_jalr ? _GEN_295 : _GEN_289; // @[IF3.scala 241:27]
  wire  _GEN_307 = reAlignPreDecode_0_is_branch ? 1'h0 : _GEN_301; // @[IF3.scala 252:103 255:28]
  wire  _GEN_313 = reAlignPreDecode_1_is_branch ? _GEN_307 : _GEN_301; // @[IF3.scala 251:27]
  wire  reAlign_3_ready = is_lock_pipe_0 ? 1'h0 : _GEN_313; // @[IF3.scala 234:29 237:26]
  wire  _io_if3_req_3_ready_T_11 = reAlign_3_ready & predictor_ready & _reAlign_0_valid_T_4; // @[IF3.scala 144:73]
  wire [38:0] _GEN_151 = is_instr32_3 ? 39'h0 : io_if3_req_3_bits_pc; // @[IF3.scala 102:31 96:22 134:33]
  wire [31:0] _GEN_154 = is_instr32_3 ? 32'h0 : {{16'd0}, io_if3_req_3_bits_instr}; // @[IF3.scala 102:31 96:22 137:33]
  wire  _GEN_160 = is_instr32_3 ? 1'h0 : 1'h1; // @[IF3.scala 102:31 97:25 138:31]
  wire  reAlignPreDecode_3_is_rvc = ~isPassThrough_3 & _GEN_160; // @[IF3.scala 101:33 97:25]
  wire  _GEN_164 = is_instr32_3 ? 1'h0 : reAlignPreDecode_3_is_rvc; // @[IF3.scala 102:31 96:22 139:33]
  wire  _GEN_165 = is_instr32_3 ? 1'h0 : _reAlign_3_valid_T_3; // @[IF3.scala 102:31 95:22]
  wire  _GEN_166 = is_instr32_3 ? _GEN_148 : _io_if3_req_3_ready_T_11; // @[IF3.scala 102:31]
  wire [38:0] reAlign_3_bits_pc = ~isPassThrough_3 ? _GEN_151 : 39'h0; // @[IF3.scala 101:33 96:22]
  wire  _GEN_181 = ~isPassThrough_3 & _GEN_165; // @[IF3.scala 101:33 95:22]
  wire  _btb_io_req_valid_T = io_flush | io_if4Redirect_valid; // @[IF3.scala 200:59]
  wire  _GEN_203 = reAlignPreDecode_0_is_jalr | reAlignPreDecode_1_is_jalr | reAlignPreDecode_2_is_jalr ? 1'h0 :
    _GEN_181; // @[IF3.scala 242:100 244:28]
  wire  _GEN_205 = reAlignPreDecode_3_is_jalr ? _GEN_203 : _GEN_181; // @[IF3.scala 241:27]
  wire  _GEN_207 = reAlignPreDecode_0_is_branch | reAlignPreDecode_1_is_branch | reAlignPreDecode_2_is_branch ? 1'h0 :
    _GEN_205; // @[IF3.scala 252:103 254:28]
  wire  _GEN_209 = reAlignPreDecode_3_is_branch ? _GEN_207 : _GEN_205; // @[IF3.scala 251:27]
  wire  _GEN_238 = is_lock_pipe_2 ? 1'h0 : _GEN_209; // @[IF3.scala 234:29 236:26]
  wire  _GEN_242 = reAlignPreDecode_0_is_jalr | reAlignPreDecode_1_is_jalr ? 1'h0 : _GEN_238; // @[IF3.scala 242:100 244:28]
  wire  _GEN_246 = reAlignPreDecode_2_is_jalr ? _GEN_242 : _GEN_238; // @[IF3.scala 241:27]
  wire  _GEN_250 = reAlignPreDecode_0_is_branch | reAlignPreDecode_1_is_branch ? 1'h0 : _GEN_246; // @[IF3.scala 252:103 254:28]
  wire  _GEN_254 = reAlignPreDecode_2_is_branch ? _GEN_250 : _GEN_246; // @[IF3.scala 251:27]
  wire  _GEN_288 = is_lock_pipe_1 ? 1'h0 : _GEN_254; // @[IF3.scala 234:29 236:26]
  wire  _GEN_294 = reAlignPreDecode_0_is_jalr ? 1'h0 : _GEN_288; // @[IF3.scala 242:100 244:28]
  wire  _GEN_300 = reAlignPreDecode_1_is_jalr ? _GEN_294 : _GEN_288; // @[IF3.scala 241:27]
  wire  _GEN_306 = reAlignPreDecode_0_is_branch ? 1'h0 : _GEN_300; // @[IF3.scala 252:103 254:28]
  wire  _GEN_312 = reAlignPreDecode_1_is_branch ? _GEN_306 : _GEN_300; // @[IF3.scala 251:27]
  wire  reAlign_3_valid = is_lock_pipe_0 ? 1'h0 : _GEN_312; // @[IF3.scala 234:29 236:26]
  wire  _btb_io_req_valid_T_2 = reAlign_3_valid & ~(io_flush | io_if4Redirect_valid); // @[IF3.scala 200:46]
  wire  _GEN_183 = _T_86 ? 1'h0 : reAlign_3_valid & ~(io_flush | io_if4Redirect_valid); // @[IF3.scala 197:100 185:20 200:26]
  wire [38:0] _GEN_184 = _T_86 ? 39'h0 : reAlign_3_bits_pc; // @[IF3.scala 197:100 182:22 201:28]
  wire  _GEN_186 = reAlignPreDecode_3_is_jalr & _GEN_183; // @[IF3.scala 185:20 196:27]
  wire [38:0] _GEN_187 = reAlignPreDecode_3_is_jalr ? _GEN_184 : 39'h0; // @[IF3.scala 182:22 196:27]
  wire  _GEN_189 = _T_88 ? 1'h0 : _btb_io_req_valid_T_2; // @[IF3.scala 208:103 186:20 211:26]
  wire [38:0] _GEN_190 = _T_88 ? 39'h0 : reAlign_3_bits_pc; // @[IF3.scala 208:103 183:22 212:28]
  wire  _GEN_192 = reAlignPreDecode_3_is_branch & _GEN_189; // @[IF3.scala 186:20 207:27]
  wire [38:0] _GEN_193 = reAlignPreDecode_3_is_branch ? _GEN_190 : 39'h0; // @[IF3.scala 183:22 207:27]
  wire  _GEN_240 = reAlignPreDecode_0_is_jalr | reAlignPreDecode_1_is_jalr ? 1'h0 : _GEN_146; // @[IF3.scala 242:100 244:28]
  wire  _GEN_244 = reAlignPreDecode_2_is_jalr ? _GEN_240 : _GEN_146; // @[IF3.scala 241:27]
  wire  _GEN_248 = reAlignPreDecode_0_is_branch | reAlignPreDecode_1_is_branch ? 1'h0 : _GEN_244; // @[IF3.scala 252:103 254:28]
  wire  _GEN_252 = reAlignPreDecode_2_is_branch ? _GEN_248 : _GEN_244; // @[IF3.scala 251:27]
  wire  _GEN_286 = is_lock_pipe_1 ? 1'h0 : _GEN_252; // @[IF3.scala 234:29 236:26]
  wire  _GEN_292 = reAlignPreDecode_0_is_jalr ? 1'h0 : _GEN_286; // @[IF3.scala 242:100 244:28]
  wire  _GEN_298 = reAlignPreDecode_1_is_jalr ? _GEN_292 : _GEN_286; // @[IF3.scala 241:27]
  wire  _GEN_304 = reAlignPreDecode_0_is_branch ? 1'h0 : _GEN_298; // @[IF3.scala 252:103 254:28]
  wire  _GEN_310 = reAlignPreDecode_1_is_branch ? _GEN_304 : _GEN_298; // @[IF3.scala 251:27]
  wire  reAlign_2_valid = is_lock_pipe_0 ? 1'h0 : _GEN_310; // @[IF3.scala 234:29 236:26]
  wire  _btb_io_req_valid_T_5 = reAlign_2_valid & ~(io_flush | io_if4Redirect_valid); // @[IF3.scala 200:46]
  wire  _GEN_218 = _T_97 ? _GEN_186 : reAlign_2_valid & ~(io_flush | io_if4Redirect_valid); // @[IF3.scala 197:100 200:26]
  wire [38:0] _GEN_219 = _T_97 ? _GEN_187 : reAlign_2_bits_pc; // @[IF3.scala 197:100 201:28]
  wire  _GEN_221 = reAlignPreDecode_2_is_jalr ? _GEN_218 : _GEN_186; // @[IF3.scala 196:27]
  wire [38:0] _GEN_222 = reAlignPreDecode_2_is_jalr ? _GEN_219 : _GEN_187; // @[IF3.scala 196:27]
  wire  _GEN_224 = _T_98 ? _GEN_192 : _btb_io_req_valid_T_5; // @[IF3.scala 208:103 211:26]
  wire [38:0] _GEN_225 = _T_98 ? _GEN_193 : reAlign_2_bits_pc; // @[IF3.scala 208:103 212:28]
  wire  _GEN_227 = reAlignPreDecode_2_is_branch ? _GEN_224 : _GEN_192; // @[IF3.scala 207:27]
  wire [38:0] _GEN_228 = reAlignPreDecode_2_is_branch ? _GEN_225 : _GEN_193; // @[IF3.scala 207:27]
  wire  _GEN_290 = reAlignPreDecode_0_is_jalr ? 1'h0 : _GEN_100; // @[IF3.scala 242:100 244:28]
  wire  _GEN_296 = reAlignPreDecode_1_is_jalr ? _GEN_290 : _GEN_100; // @[IF3.scala 241:27]
  wire  _GEN_302 = reAlignPreDecode_0_is_branch ? 1'h0 : _GEN_296; // @[IF3.scala 252:103 254:28]
  wire  _GEN_308 = reAlignPreDecode_1_is_branch ? _GEN_302 : _GEN_296; // @[IF3.scala 251:27]
  wire  reAlign_1_valid = is_lock_pipe_0 ? 1'h0 : _GEN_308; // @[IF3.scala 234:29 236:26]
  wire  _btb_io_req_valid_T_8 = reAlign_1_valid & ~(io_flush | io_if4Redirect_valid); // @[IF3.scala 200:46]
  wire  _GEN_266 = reAlignPreDecode_0_is_jalr ? _GEN_221 : reAlign_1_valid & ~(io_flush | io_if4Redirect_valid); // @[IF3.scala 197:100 200:26]
  wire [38:0] _GEN_267 = reAlignPreDecode_0_is_jalr ? _GEN_222 : reAlign_1_bits_pc; // @[IF3.scala 197:100 201:28]
  wire  _GEN_269 = reAlignPreDecode_1_is_jalr ? _GEN_266 : _GEN_221; // @[IF3.scala 196:27]
  wire [38:0] _GEN_270 = reAlignPreDecode_1_is_jalr ? _GEN_267 : _GEN_222; // @[IF3.scala 196:27]
  wire  _GEN_272 = reAlignPreDecode_0_is_branch ? _GEN_227 : _btb_io_req_valid_T_8; // @[IF3.scala 208:103 211:26]
  wire [38:0] _GEN_273 = reAlignPreDecode_0_is_branch ? _GEN_228 : reAlign_1_bits_pc; // @[IF3.scala 208:103 212:28]
  wire  _GEN_275 = reAlignPreDecode_1_is_branch ? _GEN_272 : _GEN_227; // @[IF3.scala 207:27]
  wire [38:0] _GEN_276 = reAlignPreDecode_1_is_branch ? _GEN_273 : _GEN_228; // @[IF3.scala 207:27]
  wire  _btb_io_req_valid_T_11 = reAlign_0_valid & ~(io_flush | io_if4Redirect_valid); // @[IF3.scala 200:46]
  wire  _T_105 = reAlign_0_ready & reAlign_0_valid; // @[Decoupled.scala 52:35]
  wire  _T_108 = reAlign_1_ready & reAlign_1_valid; // @[Decoupled.scala 52:35]
  wire  _T_111 = reAlign_2_ready & reAlign_2_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_401 = is_lock_pipe_0 & _T_105 | is_lock_pipe_1 & _T_108 | is_lock_pipe_2 & _T_111 | pipeLineLock; // @[IF3.scala 329:{113,128} 54:29]
  RePort combPDT ( // @[IF3.scala 52:23]
    .clock(combPDT_clock),
    .reset(combPDT_reset),
    .io_enq_0_ready(combPDT_io_enq_0_ready),
    .io_enq_0_valid(combPDT_io_enq_0_valid),
    .io_enq_0_bits_isRVC(combPDT_io_enq_0_bits_isRVC),
    .io_enq_0_bits_instr(combPDT_io_enq_0_bits_instr),
    .io_enq_0_bits_pc(combPDT_io_enq_0_bits_pc),
    .io_enq_1_ready(combPDT_io_enq_1_ready),
    .io_enq_1_valid(combPDT_io_enq_1_valid),
    .io_enq_1_bits_isRVC(combPDT_io_enq_1_bits_isRVC),
    .io_enq_1_bits_instr(combPDT_io_enq_1_bits_instr),
    .io_enq_1_bits_pc(combPDT_io_enq_1_bits_pc),
    .io_enq_2_ready(combPDT_io_enq_2_ready),
    .io_enq_2_valid(combPDT_io_enq_2_valid),
    .io_enq_2_bits_isRVC(combPDT_io_enq_2_bits_isRVC),
    .io_enq_2_bits_instr(combPDT_io_enq_2_bits_instr),
    .io_enq_2_bits_pc(combPDT_io_enq_2_bits_pc),
    .io_enq_3_ready(combPDT_io_enq_3_ready),
    .io_enq_3_valid(combPDT_io_enq_3_valid),
    .io_enq_3_bits_isRVC(combPDT_io_enq_3_bits_isRVC),
    .io_enq_3_bits_instr(combPDT_io_enq_3_bits_instr),
    .io_enq_3_bits_pc(combPDT_io_enq_3_bits_pc),
    .io_deq_0_ready(combPDT_io_deq_0_ready),
    .io_deq_0_valid(combPDT_io_deq_0_valid),
    .io_deq_0_bits_isRVC(combPDT_io_deq_0_bits_isRVC),
    .io_deq_0_bits_instr(combPDT_io_deq_0_bits_instr),
    .io_deq_0_bits_pc(combPDT_io_deq_0_bits_pc),
    .io_deq_1_ready(combPDT_io_deq_1_ready),
    .io_deq_1_valid(combPDT_io_deq_1_valid),
    .io_deq_1_bits_isRVC(combPDT_io_deq_1_bits_isRVC),
    .io_deq_1_bits_instr(combPDT_io_deq_1_bits_instr),
    .io_deq_1_bits_pc(combPDT_io_deq_1_bits_pc),
    .io_deq_2_ready(combPDT_io_deq_2_ready),
    .io_deq_2_valid(combPDT_io_deq_2_valid),
    .io_deq_2_bits_isRVC(combPDT_io_deq_2_bits_isRVC),
    .io_deq_2_bits_instr(combPDT_io_deq_2_bits_instr),
    .io_deq_2_bits_pc(combPDT_io_deq_2_bits_pc),
    .io_deq_3_ready(combPDT_io_deq_3_ready),
    .io_deq_3_valid(combPDT_io_deq_3_valid),
    .io_deq_3_bits_isRVC(combPDT_io_deq_3_bits_isRVC),
    .io_deq_3_bits_instr(combPDT_io_deq_3_bits_instr),
    .io_deq_3_bits_pc(combPDT_io_deq_3_bits_pc)
  );
  BTB btb ( // @[IF3.scala 56:19]
    .clock(btb_clock),
    .reset(btb_reset),
    .io_req_ready(btb_io_req_ready),
    .io_req_valid(btb_io_req_valid),
    .io_req_bits_pc(btb_io_req_bits_pc),
    .io_resp_ready(btb_io_resp_ready),
    .io_resp_valid(btb_io_resp_valid),
    .io_resp_bits_target(btb_io_resp_bits_target),
    .io_update_valid(btb_io_update_valid),
    .io_update_bits_target(btb_io_update_bits_target),
    .io_update_bits_pc(btb_io_update_bits_pc),
    .io_isReady(btb_io_isReady)
  );
  BIM bim ( // @[IF3.scala 57:19]
    .clock(bim_clock),
    .reset(bim_reset),
    .io_req_ready(bim_io_req_ready),
    .io_req_valid(bim_io_req_valid),
    .io_req_bits_pc(bim_io_req_bits_pc),
    .io_resp_ready(bim_io_resp_ready),
    .io_resp_valid(bim_io_resp_valid),
    .io_resp_bits_bim_p(bim_io_resp_bits_bim_p),
    .io_resp_bits_bim_h(bim_io_resp_bits_bim_h),
    .io_update_valid(bim_io_update_valid),
    .io_update_bits_bim_p(bim_io_update_bits_bim_p),
    .io_update_bits_bim_h(bim_io_update_bits_bim_h),
    .io_update_bits_pc(bim_io_update_bits_pc),
    .io_update_bits_isFinalTaken(bim_io_update_bits_isFinalTaken),
    .io_isReady(bim_io_isReady)
  );
  MultiPortFifo_in1_out1_1 btbFifo ( // @[IF3.scala 60:24]
    .clock(btbFifo_clock),
    .reset(btbFifo_reset),
    .io_enq_0_ready(btbFifo_io_enq_0_ready),
    .io_enq_0_valid(btbFifo_io_enq_0_valid),
    .io_enq_0_bits_target(btbFifo_io_enq_0_bits_target),
    .io_deq_0_ready(btbFifo_io_deq_0_ready),
    .io_deq_0_valid(btbFifo_io_deq_0_valid),
    .io_deq_0_bits_target(btbFifo_io_deq_0_bits_target),
    .io_flush(btbFifo_io_flush)
  );
  MultiPortFifo_in1_out1_3 bimFifo ( // @[IF3.scala 61:24]
    .clock(bimFifo_clock),
    .reset(bimFifo_reset),
    .io_enq_0_ready(bimFifo_io_enq_0_ready),
    .io_enq_0_valid(bimFifo_io_enq_0_valid),
    .io_enq_0_bits_bim_p(bimFifo_io_enq_0_bits_bim_p),
    .io_enq_0_bits_bim_h(bimFifo_io_enq_0_bits_bim_h),
    .io_deq_0_ready(bimFifo_io_deq_0_ready),
    .io_deq_0_valid(bimFifo_io_deq_0_valid),
    .io_deq_0_bits_bim_p(bimFifo_io_deq_0_bits_bim_p),
    .io_deq_0_bits_bim_h(bimFifo_io_deq_0_bits_bim_h),
    .io_flush(bimFifo_io_flush)
  );
  MultiPortFifo_in1_out1_5 tageFifo ( // @[IF3.scala 62:24]
    .clock(tageFifo_clock),
    .reset(tageFifo_reset),
    .io_deq_0_valid(tageFifo_io_deq_0_valid)
  );
  MultiPortFifo_in4_out1 if3_resp_fifo ( // @[IF3.scala 67:29]
    .clock(if3_resp_fifo_clock),
    .reset(if3_resp_fifo_reset),
    .io_enq_0_ready(if3_resp_fifo_io_enq_0_ready),
    .io_enq_0_valid(if3_resp_fifo_io_enq_0_valid),
    .io_enq_0_bits_isRVC(if3_resp_fifo_io_enq_0_bits_isRVC),
    .io_enq_0_bits_instr(if3_resp_fifo_io_enq_0_bits_instr),
    .io_enq_0_bits_pc(if3_resp_fifo_io_enq_0_bits_pc),
    .io_enq_1_ready(if3_resp_fifo_io_enq_1_ready),
    .io_enq_1_valid(if3_resp_fifo_io_enq_1_valid),
    .io_enq_1_bits_isRVC(if3_resp_fifo_io_enq_1_bits_isRVC),
    .io_enq_1_bits_instr(if3_resp_fifo_io_enq_1_bits_instr),
    .io_enq_1_bits_pc(if3_resp_fifo_io_enq_1_bits_pc),
    .io_enq_2_ready(if3_resp_fifo_io_enq_2_ready),
    .io_enq_2_valid(if3_resp_fifo_io_enq_2_valid),
    .io_enq_2_bits_isRVC(if3_resp_fifo_io_enq_2_bits_isRVC),
    .io_enq_2_bits_instr(if3_resp_fifo_io_enq_2_bits_instr),
    .io_enq_2_bits_pc(if3_resp_fifo_io_enq_2_bits_pc),
    .io_enq_3_ready(if3_resp_fifo_io_enq_3_ready),
    .io_enq_3_valid(if3_resp_fifo_io_enq_3_valid),
    .io_enq_3_bits_isRVC(if3_resp_fifo_io_enq_3_bits_isRVC),
    .io_enq_3_bits_instr(if3_resp_fifo_io_enq_3_bits_instr),
    .io_enq_3_bits_pc(if3_resp_fifo_io_enq_3_bits_pc),
    .io_deq_0_ready(if3_resp_fifo_io_deq_0_ready),
    .io_deq_0_valid(if3_resp_fifo_io_deq_0_valid),
    .io_deq_0_bits_isRVC(if3_resp_fifo_io_deq_0_bits_isRVC),
    .io_deq_0_bits_instr(if3_resp_fifo_io_deq_0_bits_instr),
    .io_deq_0_bits_pc(if3_resp_fifo_io_deq_0_bits_pc),
    .io_deq_0_bits_isRedirect(if3_resp_fifo_io_deq_0_bits_isRedirect),
    .io_deq_0_bits_target(if3_resp_fifo_io_deq_0_bits_target),
    .io_flush(if3_resp_fifo_io_flush)
  );
  assign io_if3_req_0_ready = is_instr32_0 ? _io_if3_req_0_ready_T_3 : _io_if3_req_0_ready_T_2; // @[IF3.scala 102:31]
  assign io_if3_req_1_ready = _T_3 ? _GEN_83 : _GEN_34; // @[IF3.scala 101:33]
  assign io_if3_req_2_ready = _T_6 ? _GEN_130 : _T_3 & _GEN_84; // @[IF3.scala 101:33]
  assign io_if3_req_3_ready = ~isPassThrough_3 ? _GEN_166 : _T_6 & _GEN_131; // @[IF3.scala 101:33]
  assign io_if3_resp_0_valid = if3_resp_fifo_io_deq_0_valid; // @[IF3.scala 71:15]
  assign io_if3_resp_0_bits_isRVC = if3_resp_fifo_io_deq_0_bits_isRVC; // @[IF3.scala 71:15]
  assign io_if3_resp_0_bits_instr = if3_resp_fifo_io_deq_0_bits_instr; // @[IF3.scala 71:15]
  assign io_if3_resp_0_bits_pc = if3_resp_fifo_io_deq_0_bits_pc; // @[IF3.scala 71:15]
  assign io_if3_resp_0_bits_isRedirect = if3_resp_fifo_io_deq_0_bits_isRedirect; // @[IF3.scala 71:15]
  assign io_if3_resp_0_bits_target = if3_resp_fifo_io_deq_0_bits_target; // @[IF3.scala 71:15]
  assign io_btbResp_0_valid = btbFifo_io_deq_0_valid; // @[IF3.scala 397:19]
  assign io_btbResp_0_bits_target = btbFifo_io_deq_0_bits_target; // @[IF3.scala 397:19]
  assign io_bimResp_0_valid = bimFifo_io_deq_0_valid; // @[IF3.scala 398:19]
  assign io_bimResp_0_bits_bim_p = bimFifo_io_deq_0_bits_bim_p; // @[IF3.scala 398:19]
  assign io_bimResp_0_bits_bim_h = bimFifo_io_deq_0_bits_bim_h; // @[IF3.scala 398:19]
  assign combPDT_clock = clock;
  assign combPDT_reset = reset;
  assign combPDT_io_enq_0_valid = is_instr32_0 ? _reAlign_0_valid_T_5 : _reAlign_0_valid_T_21; // @[IF3.scala 102:31]
  assign combPDT_io_enq_0_bits_isRVC = is_instr32_0 ? io_if3_req_1_bits_isFault : 1'h1; // @[IF3.scala 102:31 107:31 138:31]
  assign combPDT_io_enq_0_bits_instr = is_instr32_0 ? _reAlign_0_bits_instr_T_1 : {{16'd0}, io_if3_req_0_bits_instr}; // @[IF3.scala 102:31 106:38 137:33]
  assign combPDT_io_enq_0_bits_pc = io_if3_req_0_bits_pc; // @[IF3.scala 101:33 96:22]
  assign combPDT_io_enq_1_valid = is_lock_pipe_0 ? 1'h0 : _GEN_308; // @[IF3.scala 234:29 236:26]
  assign combPDT_io_enq_1_bits_isRVC = _T_3 & reAlignPreDecode_1_is_rvc; // @[IF3.scala 101:33 96:22]
  assign combPDT_io_enq_1_bits_instr = _T_3 ? _GEN_71 : 32'h0; // @[IF3.scala 101:33 96:22]
  assign combPDT_io_enq_1_bits_pc = _T_3 ? io_if3_req_1_bits_pc : 39'h0; // @[IF3.scala 101:33 96:22]
  assign combPDT_io_enq_2_valid = is_lock_pipe_0 ? 1'h0 : _GEN_310; // @[IF3.scala 234:29 236:26]
  assign combPDT_io_enq_2_bits_isRVC = _T_6 & reAlignPreDecode_2_is_rvc; // @[IF3.scala 101:33 96:22]
  assign combPDT_io_enq_2_bits_instr = _T_6 ? _GEN_118 : 32'h0; // @[IF3.scala 101:33 96:22]
  assign combPDT_io_enq_2_bits_pc = _T_6 ? io_if3_req_2_bits_pc : 39'h0; // @[IF3.scala 101:33 96:22]
  assign combPDT_io_enq_3_valid = is_lock_pipe_0 ? 1'h0 : _GEN_312; // @[IF3.scala 234:29 236:26]
  assign combPDT_io_enq_3_bits_isRVC = ~isPassThrough_3 & _GEN_164; // @[IF3.scala 101:33 96:22]
  assign combPDT_io_enq_3_bits_instr = ~isPassThrough_3 ? _GEN_154 : 32'h0; // @[IF3.scala 101:33 96:22]
  assign combPDT_io_enq_3_bits_pc = ~isPassThrough_3 ? _GEN_151 : 39'h0; // @[IF3.scala 101:33 96:22]
  assign combPDT_io_deq_0_ready = if3_resp_fifo_io_enq_0_ready; // @[IF3.scala 70:24]
  assign combPDT_io_deq_1_ready = if3_resp_fifo_io_enq_1_ready; // @[IF3.scala 70:24]
  assign combPDT_io_deq_2_ready = if3_resp_fifo_io_enq_2_ready; // @[IF3.scala 70:24]
  assign combPDT_io_deq_3_ready = if3_resp_fifo_io_enq_3_ready; // @[IF3.scala 70:24]
  assign btb_clock = clock;
  assign btb_reset = reset;
  assign btb_io_req_valid = reAlignPreDecode_0_is_jalr ? _btb_io_req_valid_T_11 : _GEN_269; // @[IF3.scala 196:27]
  assign btb_io_req_bits_pc = reAlignPreDecode_0_is_jalr ? io_if3_req_0_bits_pc : _GEN_270; // @[IF3.scala 196:27]
  assign btb_io_resp_ready = btbFifo_io_enq_0_ready; // @[IF3.scala 393:22]
  assign btb_io_update_valid = io_jcmm_update_valid; // @[IF3.scala 284:33]
  assign btb_io_update_bits_target = io_jcmm_update_bits_finalTarget[38:0]; // @[IF3.scala 286:33]
  assign btb_io_update_bits_pc = io_jcmm_update_bits_pc; // @[IF3.scala 285:33]
  assign bim_clock = clock;
  assign bim_reset = reset;
  assign bim_io_req_valid = reAlignPreDecode_0_is_branch ? _btb_io_req_valid_T_11 : _GEN_275; // @[IF3.scala 207:27]
  assign bim_io_req_bits_pc = reAlignPreDecode_0_is_branch ? io_if3_req_0_bits_pc : _GEN_276; // @[IF3.scala 207:27]
  assign bim_io_resp_ready = bimFifo_io_enq_0_ready; // @[IF3.scala 394:22]
  assign bim_io_update_valid = io_bcmm_update_valid; // @[IF3.scala 288:38]
  assign bim_io_update_bits_bim_p = io_bcmm_update_bits_bimResp_bim_p; // @[IF3.scala 289:60]
  assign bim_io_update_bits_bim_h = io_bcmm_update_bits_bimResp_bim_h; // @[IF3.scala 289:60]
  assign bim_io_update_bits_pc = io_bcmm_update_bits_pc; // @[IF3.scala 290:38]
  assign bim_io_update_bits_isFinalTaken = io_bcmm_update_bits_isFinalTaken; // @[IF3.scala 291:38]
  assign btbFifo_clock = clock;
  assign btbFifo_reset = reset;
  assign btbFifo_io_enq_0_valid = btb_io_resp_valid; // @[IF3.scala 393:22]
  assign btbFifo_io_enq_0_bits_target = btb_io_resp_bits_target; // @[IF3.scala 393:22]
  assign btbFifo_io_deq_0_ready = io_btbResp_0_ready; // @[IF3.scala 397:19]
  assign btbFifo_io_flush = io_flush | io_if4Redirect_valid; // @[IF3.scala 401:33]
  assign bimFifo_clock = clock;
  assign bimFifo_reset = reset;
  assign bimFifo_io_enq_0_valid = bim_io_resp_valid; // @[IF3.scala 394:22]
  assign bimFifo_io_enq_0_bits_bim_p = bim_io_resp_bits_bim_p; // @[IF3.scala 394:22]
  assign bimFifo_io_enq_0_bits_bim_h = bim_io_resp_bits_bim_h; // @[IF3.scala 394:22]
  assign bimFifo_io_deq_0_ready = io_bimResp_0_ready; // @[IF3.scala 398:19]
  assign bimFifo_io_flush = io_flush | io_if4Redirect_valid; // @[IF3.scala 402:33]
  assign tageFifo_clock = clock;
  assign tageFifo_reset = reset;
  assign if3_resp_fifo_clock = clock;
  assign if3_resp_fifo_reset = reset;
  assign if3_resp_fifo_io_enq_0_valid = combPDT_io_deq_0_valid; // @[IF3.scala 70:24]
  assign if3_resp_fifo_io_enq_0_bits_isRVC = combPDT_io_deq_0_bits_isRVC; // @[IF3.scala 70:24]
  assign if3_resp_fifo_io_enq_0_bits_instr = combPDT_io_deq_0_bits_instr; // @[IF3.scala 70:24]
  assign if3_resp_fifo_io_enq_0_bits_pc = combPDT_io_deq_0_bits_pc; // @[IF3.scala 70:24]
  assign if3_resp_fifo_io_enq_1_valid = combPDT_io_deq_1_valid; // @[IF3.scala 70:24]
  assign if3_resp_fifo_io_enq_1_bits_isRVC = combPDT_io_deq_1_bits_isRVC; // @[IF3.scala 70:24]
  assign if3_resp_fifo_io_enq_1_bits_instr = combPDT_io_deq_1_bits_instr; // @[IF3.scala 70:24]
  assign if3_resp_fifo_io_enq_1_bits_pc = combPDT_io_deq_1_bits_pc; // @[IF3.scala 70:24]
  assign if3_resp_fifo_io_enq_2_valid = combPDT_io_deq_2_valid; // @[IF3.scala 70:24]
  assign if3_resp_fifo_io_enq_2_bits_isRVC = combPDT_io_deq_2_bits_isRVC; // @[IF3.scala 70:24]
  assign if3_resp_fifo_io_enq_2_bits_instr = combPDT_io_deq_2_bits_instr; // @[IF3.scala 70:24]
  assign if3_resp_fifo_io_enq_2_bits_pc = combPDT_io_deq_2_bits_pc; // @[IF3.scala 70:24]
  assign if3_resp_fifo_io_enq_3_valid = combPDT_io_deq_3_valid; // @[IF3.scala 70:24]
  assign if3_resp_fifo_io_enq_3_bits_isRVC = combPDT_io_deq_3_bits_isRVC; // @[IF3.scala 70:24]
  assign if3_resp_fifo_io_enq_3_bits_instr = combPDT_io_deq_3_bits_instr; // @[IF3.scala 70:24]
  assign if3_resp_fifo_io_enq_3_bits_pc = combPDT_io_deq_3_bits_pc; // @[IF3.scala 70:24]
  assign if3_resp_fifo_io_deq_0_ready = io_if3_resp_0_ready; // @[IF3.scala 71:15]
  assign if3_resp_fifo_io_flush = io_if4Redirect_valid | io_flush; // @[IF3.scala 69:49]
  always @(posedge clock) begin
    if (reset) begin // @[IF3.scala 54:29]
      pipeLineLock <= 1'h0; // @[IF3.scala 54:29]
    end else if (_btb_io_req_valid_T) begin // @[IF3.scala 328:42]
      pipeLineLock <= 1'h0; // @[IF3.scala 328:57]
    end else begin
      pipeLineLock <= _GEN_401;
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (is_instr32_0 & ~reset & ~(_reAlign_0_valid_T == _reAlign_0_valid_T_1)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at IF3.scala:132 assert(io.if3_req(i).fire === io.if3_req(i+1).fire)\n"); // @[IF3.scala 132:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_reAlign_0_valid_T == _reAlign_0_valid_T_1) & (is_instr32_0 & ~reset)) begin
          $fatal; // @[IF3.scala 132:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_reAlign_0_valid_T & io_if3_req_0_bits_isRedirect & _T_15 & ~_reAlign_0_valid_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed at IF3, Redirect will pop next-entry either by rv32 or force-pop!\n    at IF3.scala:160 when( io.if3_req(i).fire  & io.if3_req(i).bits.isRedirect ) { assert(io.if3_req(i+1).fire, \"Assert Failed at IF3, Redirect will pop next-entry either by rv32 or force-pop!\") }\n"
            ); // @[IF3.scala 160:75]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_reAlign_0_valid_T_1 & (_reAlign_0_valid_T & io_if3_req_0_bits_isRedirect & _T_15)) begin
          $fatal; // @[IF3.scala 160:75]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_if3_req_0_valid & io_if3_req_0_bits_isRedirect & _T_15 & ~(~(io_if3_req_1_valid &
          io_if3_req_1_bits_isRedirect))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed at IF3, No succession isRedirect will appear\n    at IF3.scala:161 when( io.if3_req(i).valid & io.if3_req(i).bits.isRedirect ) { assert( ~(io.if3_req(i+1).valid & io.if3_req(i+1).bits.isRedirect), \"Assert Failed at IF3, No succession isRedirect will appear\" ) }\n"
            ); // @[IF3.scala 161:75]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_if3_req_1_valid & io_if3_req_1_bits_isRedirect)) & (io_if3_req_0_valid & io_if3_req_0_bits_isRedirect
           & _T_15)) begin
          $fatal; // @[IF3.scala 161:75]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_3 & is_instr32_1 & ~reset & ~(_reAlign_0_valid_T_1 == _reAlign_1_valid_T_1)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at IF3.scala:132 assert(io.if3_req(i).fire === io.if3_req(i+1).fire)\n"); // @[IF3.scala 132:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_reAlign_0_valid_T_1 == _reAlign_1_valid_T_1) & (_T_3 & is_instr32_1 & ~reset)) begin
          $fatal; // @[IF3.scala 132:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_reAlign_0_valid_T_1 & io_if3_req_1_bits_isRedirect & _T_15 & ~_reAlign_1_valid_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed at IF3, Redirect will pop next-entry either by rv32 or force-pop!\n    at IF3.scala:160 when( io.if3_req(i).fire  & io.if3_req(i).bits.isRedirect ) { assert(io.if3_req(i+1).fire, \"Assert Failed at IF3, Redirect will pop next-entry either by rv32 or force-pop!\") }\n"
            ); // @[IF3.scala 160:75]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_reAlign_1_valid_T_1 & (_reAlign_0_valid_T_1 & io_if3_req_1_bits_isRedirect & _T_15)) begin
          $fatal; // @[IF3.scala 160:75]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_if3_req_1_valid & io_if3_req_1_bits_isRedirect & _T_15 & ~(~(io_if3_req_2_valid &
          io_if3_req_2_bits_isRedirect))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed at IF3, No succession isRedirect will appear\n    at IF3.scala:161 when( io.if3_req(i).valid & io.if3_req(i).bits.isRedirect ) { assert( ~(io.if3_req(i+1).valid & io.if3_req(i+1).bits.isRedirect), \"Assert Failed at IF3, No succession isRedirect will appear\" ) }\n"
            ); // @[IF3.scala 161:75]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_if3_req_2_valid & io_if3_req_2_bits_isRedirect)) & (io_if3_req_1_valid & io_if3_req_1_bits_isRedirect
           & _T_15)) begin
          $fatal; // @[IF3.scala 161:75]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_6 & is_instr32_2 & ~reset & ~(_reAlign_1_valid_T_1 == _reAlign_2_valid_T_1)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at IF3.scala:132 assert(io.if3_req(i).fire === io.if3_req(i+1).fire)\n"); // @[IF3.scala 132:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_reAlign_1_valid_T_1 == _reAlign_2_valid_T_1) & (_T_6 & is_instr32_2 & ~reset)) begin
          $fatal; // @[IF3.scala 132:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_reAlign_1_valid_T_1 & io_if3_req_2_bits_isRedirect & _T_15 & ~_reAlign_2_valid_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed at IF3, Redirect will pop next-entry either by rv32 or force-pop!\n    at IF3.scala:160 when( io.if3_req(i).fire  & io.if3_req(i).bits.isRedirect ) { assert(io.if3_req(i+1).fire, \"Assert Failed at IF3, Redirect will pop next-entry either by rv32 or force-pop!\") }\n"
            ); // @[IF3.scala 160:75]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_reAlign_2_valid_T_1 & (_reAlign_1_valid_T_1 & io_if3_req_2_bits_isRedirect & _T_15)) begin
          $fatal; // @[IF3.scala 160:75]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_if3_req_2_valid & io_if3_req_2_bits_isRedirect & _T_15 & ~(~(io_if3_req_3_valid &
          io_if3_req_3_bits_isRedirect))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed at IF3, No succession isRedirect will appear\n    at IF3.scala:161 when( io.if3_req(i).valid & io.if3_req(i).bits.isRedirect ) { assert( ~(io.if3_req(i+1).valid & io.if3_req(i+1).bits.isRedirect), \"Assert Failed at IF3, No succession isRedirect will appear\" ) }\n"
            ); // @[IF3.scala 161:75]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_if3_req_3_valid & io_if3_req_3_bits_isRedirect)) & (io_if3_req_2_valid & io_if3_req_2_bits_isRedirect
           & _T_15)) begin
          $fatal; // @[IF3.scala 161:75]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_reAlign_2_valid_T_1 & _T_15 & ~(~io_if3_req_3_bits_isRedirect)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed at IF3, never Redirect at last-entry!\n    at IF3.scala:163 when( io.if3_req(i).fire ) { assert( ~io.if3_req(i).bits.isRedirect, \"Assert Failed at IF3, never Redirect at last-entry!\" ) }\n"
            ); // @[IF3.scala 163:42]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~io_if3_req_3_bits_isRedirect) & (_reAlign_2_valid_T_1 & _T_15)) begin
          $fatal; // @[IF3.scala 163:42]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  pipeLineLock = _RAND_0[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module RAS(
  input         clock,
  input         reset,
  input         io_enq_valid,
  input  [38:0] io_enq_bits_target,
  input         io_deq_ready,
  output        io_deq_valid,
  output [38:0] io_deq_bits_target,
  input         io_flush
);
`ifdef RANDOMIZE_MEM_INIT
  reg [63:0] _RAND_0;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [63:0] _RAND_3;
`endif // RANDOMIZE_REG_INIT
  reg [38:0] buf_target [0:3]; // @[RAS.scala 43:18]
  wire  buf_target_io_deq_bits_MPORT_en; // @[RAS.scala 43:18]
  wire [1:0] buf_target_io_deq_bits_MPORT_addr; // @[RAS.scala 43:18]
  wire [38:0] buf_target_io_deq_bits_MPORT_data; // @[RAS.scala 43:18]
  wire [38:0] buf_target_MPORT_data; // @[RAS.scala 43:18]
  wire [1:0] buf_target_MPORT_addr; // @[RAS.scala 43:18]
  wire  buf_target_MPORT_mask; // @[RAS.scala 43:18]
  wire  buf_target_MPORT_en; // @[RAS.scala 43:18]
  reg [2:0] btm_ptr; // @[RAS.scala 44:26]
  reg [2:0] top_ptr; // @[RAS.scala 45:26]
  wire  is_empty = btm_ptr == top_ptr; // @[RAS.scala 50:29]
  wire  is_full = btm_ptr[1:0] == top_ptr[1:0] & btm_ptr[2] != top_ptr[2]; // @[RAS.scala 51:61]
  wire [2:0] _btm_ptr_T_1 = btm_ptr + 3'h1; // @[RAS.scala 66:30]
  wire [2:0] _top_ptr_T_1 = top_ptr + 3'h1; // @[RAS.scala 68:28]
  wire  _T = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire [2:0] _top_ptr_T_3 = top_ptr - 3'h1; // @[RAS.scala 71:28]
  reg [38:0] io_deq_bits_REG_target; // @[RAS.scala 76:29]
  assign buf_target_io_deq_bits_MPORT_en = 1'h1;
  assign buf_target_io_deq_bits_MPORT_addr = top_ptr[1:0] - 2'h1;
  assign buf_target_io_deq_bits_MPORT_data = buf_target[buf_target_io_deq_bits_MPORT_addr]; // @[RAS.scala 43:18]
  assign buf_target_MPORT_data = io_enq_bits_target;
  assign buf_target_MPORT_addr = top_ptr[1:0];
  assign buf_target_MPORT_mask = 1'h1;
  assign buf_target_MPORT_en = io_enq_valid;
  assign io_deq_valid = ~is_empty; // @[RAS.scala 75:22]
  assign io_deq_bits_target = io_deq_bits_REG_target; // @[RAS.scala 76:19]
  always @(posedge clock) begin
    if (buf_target_MPORT_en & buf_target_MPORT_mask) begin
      buf_target[buf_target_MPORT_addr] <= buf_target_MPORT_data; // @[RAS.scala 43:18]
    end
    if (reset) begin // @[RAS.scala 44:26]
      btm_ptr <= 3'h0; // @[RAS.scala 44:26]
    end else if (io_flush) begin // @[RAS.scala 59:20]
      btm_ptr <= 3'h0; // @[RAS.scala 60:15]
    end else if (io_enq_valid) begin // @[RAS.scala 64:27]
      if (is_full) begin // @[RAS.scala 65:23]
        btm_ptr <= _btm_ptr_T_1; // @[RAS.scala 66:19]
      end
    end
    if (reset) begin // @[RAS.scala 45:26]
      top_ptr <= 3'h0; // @[RAS.scala 45:26]
    end else if (io_flush) begin // @[RAS.scala 59:20]
      top_ptr <= 3'h0; // @[RAS.scala 61:15]
    end else if (_T) begin // @[RAS.scala 70:27]
      top_ptr <= _top_ptr_T_3; // @[RAS.scala 71:17]
    end else if (io_enq_valid) begin // @[RAS.scala 64:27]
      top_ptr <= _top_ptr_T_1; // @[RAS.scala 68:17]
    end
    io_deq_bits_REG_target <= buf_target_io_deq_bits_MPORT_data; // @[RAS.scala 76:29]
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {2{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    buf_target[initvar] = _RAND_0[38:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_1 = {1{`RANDOM}};
  btm_ptr = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  top_ptr = _RAND_2[2:0];
  _RAND_3 = {2{`RANDOM}};
  io_deq_bits_REG_target = _RAND_3[38:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module MultiPortFifo_in1_out1_6(
  input         clock,
  input         reset,
  output        io_enq_0_ready,
  input         io_enq_0_valid,
  input         io_enq_0_bits_alu_isa_lui,
  input         io_enq_0_bits_alu_isa_auipc,
  input         io_enq_0_bits_alu_isa_addi,
  input         io_enq_0_bits_alu_isa_addiw,
  input         io_enq_0_bits_alu_isa_slti,
  input         io_enq_0_bits_alu_isa_sltiu,
  input         io_enq_0_bits_alu_isa_xori,
  input         io_enq_0_bits_alu_isa_ori,
  input         io_enq_0_bits_alu_isa_andi,
  input         io_enq_0_bits_alu_isa_slli,
  input         io_enq_0_bits_alu_isa_slliw,
  input         io_enq_0_bits_alu_isa_srli,
  input         io_enq_0_bits_alu_isa_srliw,
  input         io_enq_0_bits_alu_isa_srai,
  input         io_enq_0_bits_alu_isa_sraiw,
  input         io_enq_0_bits_alu_isa_add,
  input         io_enq_0_bits_alu_isa_addw,
  input         io_enq_0_bits_alu_isa_sub,
  input         io_enq_0_bits_alu_isa_subw,
  input         io_enq_0_bits_alu_isa_sll,
  input         io_enq_0_bits_alu_isa_sllw,
  input         io_enq_0_bits_alu_isa_slt,
  input         io_enq_0_bits_alu_isa_sltu,
  input         io_enq_0_bits_alu_isa_xor,
  input         io_enq_0_bits_alu_isa_srl,
  input         io_enq_0_bits_alu_isa_srlw,
  input         io_enq_0_bits_alu_isa_sra,
  input         io_enq_0_bits_alu_isa_sraw,
  input         io_enq_0_bits_alu_isa_or,
  input         io_enq_0_bits_alu_isa_and,
  input         io_enq_0_bits_alu_isa_wfi,
  input         io_enq_0_bits_bru_isa_jal,
  input         io_enq_0_bits_bru_isa_jalr,
  input         io_enq_0_bits_bru_isa_beq,
  input         io_enq_0_bits_bru_isa_bne,
  input         io_enq_0_bits_bru_isa_blt,
  input         io_enq_0_bits_bru_isa_bge,
  input         io_enq_0_bits_bru_isa_bltu,
  input         io_enq_0_bits_bru_isa_bgeu,
  input         io_enq_0_bits_lsu_isa_lb,
  input         io_enq_0_bits_lsu_isa_lh,
  input         io_enq_0_bits_lsu_isa_lw,
  input         io_enq_0_bits_lsu_isa_ld,
  input         io_enq_0_bits_lsu_isa_lbu,
  input         io_enq_0_bits_lsu_isa_lhu,
  input         io_enq_0_bits_lsu_isa_lwu,
  input         io_enq_0_bits_lsu_isa_sb,
  input         io_enq_0_bits_lsu_isa_sh,
  input         io_enq_0_bits_lsu_isa_sw,
  input         io_enq_0_bits_lsu_isa_sd,
  input         io_enq_0_bits_lsu_isa_fence,
  input         io_enq_0_bits_lsu_isa_fence_i,
  input         io_enq_0_bits_lsu_isa_sfence_vma,
  input         io_enq_0_bits_lsu_isa_lr_w,
  input         io_enq_0_bits_lsu_isa_sc_w,
  input         io_enq_0_bits_lsu_isa_amoswap_w,
  input         io_enq_0_bits_lsu_isa_amoadd_w,
  input         io_enq_0_bits_lsu_isa_amoxor_w,
  input         io_enq_0_bits_lsu_isa_amoand_w,
  input         io_enq_0_bits_lsu_isa_amoor_w,
  input         io_enq_0_bits_lsu_isa_amomin_w,
  input         io_enq_0_bits_lsu_isa_amomax_w,
  input         io_enq_0_bits_lsu_isa_amominu_w,
  input         io_enq_0_bits_lsu_isa_amomaxu_w,
  input         io_enq_0_bits_lsu_isa_lr_d,
  input         io_enq_0_bits_lsu_isa_sc_d,
  input         io_enq_0_bits_lsu_isa_amoswap_d,
  input         io_enq_0_bits_lsu_isa_amoadd_d,
  input         io_enq_0_bits_lsu_isa_amoxor_d,
  input         io_enq_0_bits_lsu_isa_amoand_d,
  input         io_enq_0_bits_lsu_isa_amoor_d,
  input         io_enq_0_bits_lsu_isa_amomin_d,
  input         io_enq_0_bits_lsu_isa_amomax_d,
  input         io_enq_0_bits_lsu_isa_amominu_d,
  input         io_enq_0_bits_lsu_isa_amomaxu_d,
  input         io_enq_0_bits_csr_isa_rw,
  input         io_enq_0_bits_csr_isa_rs,
  input         io_enq_0_bits_csr_isa_rc,
  input         io_enq_0_bits_csr_isa_rwi,
  input         io_enq_0_bits_csr_isa_rsi,
  input         io_enq_0_bits_csr_isa_rci,
  input         io_enq_0_bits_mul_isa_mul,
  input         io_enq_0_bits_mul_isa_mulh,
  input         io_enq_0_bits_mul_isa_mulhsu,
  input         io_enq_0_bits_mul_isa_mulhu,
  input         io_enq_0_bits_mul_isa_div,
  input         io_enq_0_bits_mul_isa_divu,
  input         io_enq_0_bits_mul_isa_rem,
  input         io_enq_0_bits_mul_isa_remu,
  input         io_enq_0_bits_mul_isa_mulw,
  input         io_enq_0_bits_mul_isa_divw,
  input         io_enq_0_bits_mul_isa_divuw,
  input         io_enq_0_bits_mul_isa_remw,
  input         io_enq_0_bits_mul_isa_remuw,
  input         io_enq_0_bits_privil_isa_ecall,
  input         io_enq_0_bits_privil_isa_ebreak,
  input         io_enq_0_bits_privil_isa_mret,
  input         io_enq_0_bits_privil_isa_uret,
  input         io_enq_0_bits_privil_isa_sret,
  input         io_enq_0_bits_privil_isa_dret,
  input         io_enq_0_bits_privil_isa_hfence_vvma,
  input         io_enq_0_bits_privil_isa_hfence_gvma,
  input         io_enq_0_bits_privil_isa_hlv_b,
  input         io_enq_0_bits_privil_isa_hlv_bu,
  input         io_enq_0_bits_privil_isa_hlv_h,
  input         io_enq_0_bits_privil_isa_hlv_hu,
  input         io_enq_0_bits_privil_isa_hlvx_hu,
  input         io_enq_0_bits_privil_isa_hlv_w,
  input         io_enq_0_bits_privil_isa_hlvx_wu,
  input         io_enq_0_bits_privil_isa_hsv_b,
  input         io_enq_0_bits_privil_isa_hsv_h,
  input         io_enq_0_bits_privil_isa_hsv_w,
  input         io_enq_0_bits_privil_isa_hlv_wu,
  input         io_enq_0_bits_privil_isa_hlv_d,
  input         io_enq_0_bits_privil_isa_hsv_d,
  input         io_enq_0_bits_privil_isa_is_access_fault,
  input         io_enq_0_bits_privil_isa_is_paging_fault,
  input         io_enq_0_bits_param_is_rvc,
  input  [38:0] io_enq_0_bits_param_pc,
  input  [63:0] io_enq_0_bits_param_imm,
  input  [4:0]  io_enq_0_bits_param_raw_rs1,
  input  [4:0]  io_enq_0_bits_param_raw_rs2,
  input  [4:0]  io_enq_0_bits_param_raw_rd0,
  input         io_deq_0_ready,
  output        io_deq_0_valid,
  output        io_deq_0_bits_alu_isa_lui,
  output        io_deq_0_bits_alu_isa_auipc,
  output        io_deq_0_bits_alu_isa_addi,
  output        io_deq_0_bits_alu_isa_addiw,
  output        io_deq_0_bits_alu_isa_slti,
  output        io_deq_0_bits_alu_isa_sltiu,
  output        io_deq_0_bits_alu_isa_xori,
  output        io_deq_0_bits_alu_isa_ori,
  output        io_deq_0_bits_alu_isa_andi,
  output        io_deq_0_bits_alu_isa_slli,
  output        io_deq_0_bits_alu_isa_slliw,
  output        io_deq_0_bits_alu_isa_srli,
  output        io_deq_0_bits_alu_isa_srliw,
  output        io_deq_0_bits_alu_isa_srai,
  output        io_deq_0_bits_alu_isa_sraiw,
  output        io_deq_0_bits_alu_isa_add,
  output        io_deq_0_bits_alu_isa_addw,
  output        io_deq_0_bits_alu_isa_sub,
  output        io_deq_0_bits_alu_isa_subw,
  output        io_deq_0_bits_alu_isa_sll,
  output        io_deq_0_bits_alu_isa_sllw,
  output        io_deq_0_bits_alu_isa_slt,
  output        io_deq_0_bits_alu_isa_sltu,
  output        io_deq_0_bits_alu_isa_xor,
  output        io_deq_0_bits_alu_isa_srl,
  output        io_deq_0_bits_alu_isa_srlw,
  output        io_deq_0_bits_alu_isa_sra,
  output        io_deq_0_bits_alu_isa_sraw,
  output        io_deq_0_bits_alu_isa_or,
  output        io_deq_0_bits_alu_isa_and,
  output        io_deq_0_bits_alu_isa_wfi,
  output        io_deq_0_bits_bru_isa_jal,
  output        io_deq_0_bits_bru_isa_jalr,
  output        io_deq_0_bits_bru_isa_beq,
  output        io_deq_0_bits_bru_isa_bne,
  output        io_deq_0_bits_bru_isa_blt,
  output        io_deq_0_bits_bru_isa_bge,
  output        io_deq_0_bits_bru_isa_bltu,
  output        io_deq_0_bits_bru_isa_bgeu,
  output        io_deq_0_bits_lsu_isa_lb,
  output        io_deq_0_bits_lsu_isa_lh,
  output        io_deq_0_bits_lsu_isa_lw,
  output        io_deq_0_bits_lsu_isa_ld,
  output        io_deq_0_bits_lsu_isa_lbu,
  output        io_deq_0_bits_lsu_isa_lhu,
  output        io_deq_0_bits_lsu_isa_lwu,
  output        io_deq_0_bits_lsu_isa_sb,
  output        io_deq_0_bits_lsu_isa_sh,
  output        io_deq_0_bits_lsu_isa_sw,
  output        io_deq_0_bits_lsu_isa_sd,
  output        io_deq_0_bits_lsu_isa_fence,
  output        io_deq_0_bits_lsu_isa_fence_i,
  output        io_deq_0_bits_lsu_isa_sfence_vma,
  output        io_deq_0_bits_lsu_isa_lr_w,
  output        io_deq_0_bits_lsu_isa_sc_w,
  output        io_deq_0_bits_lsu_isa_amoswap_w,
  output        io_deq_0_bits_lsu_isa_amoadd_w,
  output        io_deq_0_bits_lsu_isa_amoxor_w,
  output        io_deq_0_bits_lsu_isa_amoand_w,
  output        io_deq_0_bits_lsu_isa_amoor_w,
  output        io_deq_0_bits_lsu_isa_amomin_w,
  output        io_deq_0_bits_lsu_isa_amomax_w,
  output        io_deq_0_bits_lsu_isa_amominu_w,
  output        io_deq_0_bits_lsu_isa_amomaxu_w,
  output        io_deq_0_bits_lsu_isa_lr_d,
  output        io_deq_0_bits_lsu_isa_sc_d,
  output        io_deq_0_bits_lsu_isa_amoswap_d,
  output        io_deq_0_bits_lsu_isa_amoadd_d,
  output        io_deq_0_bits_lsu_isa_amoxor_d,
  output        io_deq_0_bits_lsu_isa_amoand_d,
  output        io_deq_0_bits_lsu_isa_amoor_d,
  output        io_deq_0_bits_lsu_isa_amomin_d,
  output        io_deq_0_bits_lsu_isa_amomax_d,
  output        io_deq_0_bits_lsu_isa_amominu_d,
  output        io_deq_0_bits_lsu_isa_amomaxu_d,
  output        io_deq_0_bits_lsu_isa_flw,
  output        io_deq_0_bits_lsu_isa_fsw,
  output        io_deq_0_bits_lsu_isa_fld,
  output        io_deq_0_bits_lsu_isa_fsd,
  output        io_deq_0_bits_csr_isa_rw,
  output        io_deq_0_bits_csr_isa_rs,
  output        io_deq_0_bits_csr_isa_rc,
  output        io_deq_0_bits_csr_isa_rwi,
  output        io_deq_0_bits_csr_isa_rsi,
  output        io_deq_0_bits_csr_isa_rci,
  output        io_deq_0_bits_mul_isa_mul,
  output        io_deq_0_bits_mul_isa_mulh,
  output        io_deq_0_bits_mul_isa_mulhsu,
  output        io_deq_0_bits_mul_isa_mulhu,
  output        io_deq_0_bits_mul_isa_div,
  output        io_deq_0_bits_mul_isa_divu,
  output        io_deq_0_bits_mul_isa_rem,
  output        io_deq_0_bits_mul_isa_remu,
  output        io_deq_0_bits_mul_isa_mulw,
  output        io_deq_0_bits_mul_isa_divw,
  output        io_deq_0_bits_mul_isa_divuw,
  output        io_deq_0_bits_mul_isa_remw,
  output        io_deq_0_bits_mul_isa_remuw,
  output        io_deq_0_bits_privil_isa_ecall,
  output        io_deq_0_bits_privil_isa_ebreak,
  output        io_deq_0_bits_privil_isa_mret,
  output        io_deq_0_bits_privil_isa_uret,
  output        io_deq_0_bits_privil_isa_sret,
  output        io_deq_0_bits_privil_isa_dret,
  output        io_deq_0_bits_privil_isa_hfence_vvma,
  output        io_deq_0_bits_privil_isa_hfence_gvma,
  output        io_deq_0_bits_privil_isa_hlv_b,
  output        io_deq_0_bits_privil_isa_hlv_bu,
  output        io_deq_0_bits_privil_isa_hlv_h,
  output        io_deq_0_bits_privil_isa_hlv_hu,
  output        io_deq_0_bits_privil_isa_hlvx_hu,
  output        io_deq_0_bits_privil_isa_hlv_w,
  output        io_deq_0_bits_privil_isa_hlvx_wu,
  output        io_deq_0_bits_privil_isa_hsv_b,
  output        io_deq_0_bits_privil_isa_hsv_h,
  output        io_deq_0_bits_privil_isa_hsv_w,
  output        io_deq_0_bits_privil_isa_hlv_wu,
  output        io_deq_0_bits_privil_isa_hlv_d,
  output        io_deq_0_bits_privil_isa_hsv_d,
  output        io_deq_0_bits_privil_isa_is_access_fault,
  output        io_deq_0_bits_privil_isa_is_paging_fault,
  output        io_deq_0_bits_fpu_isa_fmadd_s,
  output        io_deq_0_bits_fpu_isa_fmsub_s,
  output        io_deq_0_bits_fpu_isa_fnmsub_s,
  output        io_deq_0_bits_fpu_isa_fnmadd_s,
  output        io_deq_0_bits_fpu_isa_fadd_s,
  output        io_deq_0_bits_fpu_isa_fsub_s,
  output        io_deq_0_bits_fpu_isa_fmul_s,
  output        io_deq_0_bits_fpu_isa_fdiv_s,
  output        io_deq_0_bits_fpu_isa_fsqrt_s,
  output        io_deq_0_bits_fpu_isa_fsgnj_s,
  output        io_deq_0_bits_fpu_isa_fsgnjn_s,
  output        io_deq_0_bits_fpu_isa_fsgnjx_s,
  output        io_deq_0_bits_fpu_isa_fmin_s,
  output        io_deq_0_bits_fpu_isa_fmax_s,
  output        io_deq_0_bits_fpu_isa_fcvt_w_s,
  output        io_deq_0_bits_fpu_isa_fcvt_wu_s,
  output        io_deq_0_bits_fpu_isa_fmv_x_w,
  output        io_deq_0_bits_fpu_isa_feq_s,
  output        io_deq_0_bits_fpu_isa_flt_s,
  output        io_deq_0_bits_fpu_isa_fle_s,
  output        io_deq_0_bits_fpu_isa_fclass_s,
  output        io_deq_0_bits_fpu_isa_fcvt_s_w,
  output        io_deq_0_bits_fpu_isa_fcvt_s_wu,
  output        io_deq_0_bits_fpu_isa_fmv_w_x,
  output        io_deq_0_bits_fpu_isa_fcvt_l_s,
  output        io_deq_0_bits_fpu_isa_fcvt_lu_s,
  output        io_deq_0_bits_fpu_isa_fcvt_s_l,
  output        io_deq_0_bits_fpu_isa_fcvt_s_lu,
  output        io_deq_0_bits_fpu_isa_fmadd_d,
  output        io_deq_0_bits_fpu_isa_fmsub_d,
  output        io_deq_0_bits_fpu_isa_fnmsub_d,
  output        io_deq_0_bits_fpu_isa_fnmadd_d,
  output        io_deq_0_bits_fpu_isa_fadd_d,
  output        io_deq_0_bits_fpu_isa_fsub_d,
  output        io_deq_0_bits_fpu_isa_fmul_d,
  output        io_deq_0_bits_fpu_isa_fdiv_d,
  output        io_deq_0_bits_fpu_isa_fsqrt_d,
  output        io_deq_0_bits_fpu_isa_fsgnj_d,
  output        io_deq_0_bits_fpu_isa_fsgnjn_d,
  output        io_deq_0_bits_fpu_isa_fsgnjx_d,
  output        io_deq_0_bits_fpu_isa_fmin_d,
  output        io_deq_0_bits_fpu_isa_fmax_d,
  output        io_deq_0_bits_fpu_isa_fcvt_s_d,
  output        io_deq_0_bits_fpu_isa_fcvt_d_s,
  output        io_deq_0_bits_fpu_isa_feq_d,
  output        io_deq_0_bits_fpu_isa_flt_d,
  output        io_deq_0_bits_fpu_isa_fle_d,
  output        io_deq_0_bits_fpu_isa_fclass_d,
  output        io_deq_0_bits_fpu_isa_fcvt_w_d,
  output        io_deq_0_bits_fpu_isa_fcvt_wu_d,
  output        io_deq_0_bits_fpu_isa_fcvt_d_w,
  output        io_deq_0_bits_fpu_isa_fcvt_d_wu,
  output        io_deq_0_bits_fpu_isa_fcvt_l_d,
  output        io_deq_0_bits_fpu_isa_fcvt_lu_d,
  output        io_deq_0_bits_fpu_isa_fmv_x_d,
  output        io_deq_0_bits_fpu_isa_fcvt_d_l,
  output        io_deq_0_bits_fpu_isa_fcvt_d_lu,
  output        io_deq_0_bits_fpu_isa_fmv_d_x,
  output        io_deq_0_bits_fpu_isa_fcsr_rw,
  output        io_deq_0_bits_fpu_isa_fcsr_rs,
  output        io_deq_0_bits_fpu_isa_fcsr_rc,
  output        io_deq_0_bits_fpu_isa_fcsr_rwi,
  output        io_deq_0_bits_fpu_isa_fcsr_rsi,
  output        io_deq_0_bits_fpu_isa_fcsr_rci,
  output        io_deq_0_bits_param_is_rvc,
  output [38:0] io_deq_0_bits_param_pc,
  output [63:0] io_deq_0_bits_param_imm,
  output [4:0]  io_deq_0_bits_param_raw_rs1,
  output [4:0]  io_deq_0_bits_param_raw_rs2,
  output [4:0]  io_deq_0_bits_param_raw_rd0,
  input         io_flush
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
  reg [31:0] _RAND_33;
  reg [31:0] _RAND_34;
  reg [31:0] _RAND_35;
  reg [31:0] _RAND_36;
  reg [31:0] _RAND_37;
  reg [31:0] _RAND_38;
  reg [31:0] _RAND_39;
  reg [31:0] _RAND_40;
  reg [31:0] _RAND_41;
  reg [31:0] _RAND_42;
  reg [31:0] _RAND_43;
  reg [31:0] _RAND_44;
  reg [31:0] _RAND_45;
  reg [31:0] _RAND_46;
  reg [31:0] _RAND_47;
  reg [31:0] _RAND_48;
  reg [31:0] _RAND_49;
  reg [31:0] _RAND_50;
  reg [31:0] _RAND_51;
  reg [31:0] _RAND_52;
  reg [31:0] _RAND_53;
  reg [31:0] _RAND_54;
  reg [31:0] _RAND_55;
  reg [31:0] _RAND_56;
  reg [31:0] _RAND_57;
  reg [31:0] _RAND_58;
  reg [31:0] _RAND_59;
  reg [31:0] _RAND_60;
  reg [31:0] _RAND_61;
  reg [31:0] _RAND_62;
  reg [31:0] _RAND_63;
  reg [31:0] _RAND_64;
  reg [31:0] _RAND_65;
  reg [31:0] _RAND_66;
  reg [31:0] _RAND_67;
  reg [31:0] _RAND_68;
  reg [31:0] _RAND_69;
  reg [31:0] _RAND_70;
  reg [31:0] _RAND_71;
  reg [31:0] _RAND_72;
  reg [31:0] _RAND_73;
  reg [31:0] _RAND_74;
  reg [31:0] _RAND_75;
  reg [31:0] _RAND_76;
  reg [31:0] _RAND_77;
  reg [31:0] _RAND_78;
  reg [31:0] _RAND_79;
  reg [31:0] _RAND_80;
  reg [31:0] _RAND_81;
  reg [31:0] _RAND_82;
  reg [31:0] _RAND_83;
  reg [31:0] _RAND_84;
  reg [31:0] _RAND_85;
  reg [31:0] _RAND_86;
  reg [31:0] _RAND_87;
  reg [31:0] _RAND_88;
  reg [31:0] _RAND_89;
  reg [31:0] _RAND_90;
  reg [31:0] _RAND_91;
  reg [31:0] _RAND_92;
  reg [31:0] _RAND_93;
  reg [31:0] _RAND_94;
  reg [31:0] _RAND_95;
  reg [31:0] _RAND_96;
  reg [31:0] _RAND_97;
  reg [31:0] _RAND_98;
  reg [31:0] _RAND_99;
  reg [31:0] _RAND_100;
  reg [31:0] _RAND_101;
  reg [31:0] _RAND_102;
  reg [31:0] _RAND_103;
  reg [31:0] _RAND_104;
  reg [31:0] _RAND_105;
  reg [31:0] _RAND_106;
  reg [31:0] _RAND_107;
  reg [31:0] _RAND_108;
  reg [31:0] _RAND_109;
  reg [31:0] _RAND_110;
  reg [31:0] _RAND_111;
  reg [31:0] _RAND_112;
  reg [31:0] _RAND_113;
  reg [31:0] _RAND_114;
  reg [31:0] _RAND_115;
  reg [31:0] _RAND_116;
  reg [31:0] _RAND_117;
  reg [31:0] _RAND_118;
  reg [31:0] _RAND_119;
  reg [31:0] _RAND_120;
  reg [31:0] _RAND_121;
  reg [31:0] _RAND_122;
  reg [31:0] _RAND_123;
  reg [31:0] _RAND_124;
  reg [31:0] _RAND_125;
  reg [31:0] _RAND_126;
  reg [31:0] _RAND_127;
  reg [31:0] _RAND_128;
  reg [31:0] _RAND_129;
  reg [31:0] _RAND_130;
  reg [31:0] _RAND_131;
  reg [31:0] _RAND_132;
  reg [31:0] _RAND_133;
  reg [31:0] _RAND_134;
  reg [31:0] _RAND_135;
  reg [31:0] _RAND_136;
  reg [31:0] _RAND_137;
  reg [31:0] _RAND_138;
  reg [31:0] _RAND_139;
  reg [31:0] _RAND_140;
  reg [31:0] _RAND_141;
  reg [31:0] _RAND_142;
  reg [31:0] _RAND_143;
  reg [31:0] _RAND_144;
  reg [31:0] _RAND_145;
  reg [31:0] _RAND_146;
  reg [31:0] _RAND_147;
  reg [31:0] _RAND_148;
  reg [31:0] _RAND_149;
  reg [31:0] _RAND_150;
  reg [31:0] _RAND_151;
  reg [31:0] _RAND_152;
  reg [31:0] _RAND_153;
  reg [31:0] _RAND_154;
  reg [31:0] _RAND_155;
  reg [31:0] _RAND_156;
  reg [31:0] _RAND_157;
  reg [31:0] _RAND_158;
  reg [31:0] _RAND_159;
  reg [31:0] _RAND_160;
  reg [31:0] _RAND_161;
  reg [31:0] _RAND_162;
  reg [31:0] _RAND_163;
  reg [31:0] _RAND_164;
  reg [31:0] _RAND_165;
  reg [31:0] _RAND_166;
  reg [31:0] _RAND_167;
  reg [31:0] _RAND_168;
  reg [31:0] _RAND_169;
  reg [31:0] _RAND_170;
  reg [31:0] _RAND_171;
  reg [31:0] _RAND_172;
  reg [31:0] _RAND_173;
  reg [31:0] _RAND_174;
  reg [31:0] _RAND_175;
  reg [31:0] _RAND_176;
  reg [31:0] _RAND_177;
  reg [31:0] _RAND_178;
  reg [31:0] _RAND_179;
  reg [31:0] _RAND_180;
  reg [31:0] _RAND_181;
  reg [31:0] _RAND_182;
  reg [31:0] _RAND_183;
  reg [31:0] _RAND_184;
  reg [31:0] _RAND_185;
  reg [63:0] _RAND_186;
  reg [63:0] _RAND_187;
  reg [31:0] _RAND_188;
  reg [31:0] _RAND_189;
  reg [31:0] _RAND_190;
  reg [31:0] _RAND_191;
  reg [31:0] _RAND_192;
  reg [31:0] _RAND_193;
  reg [31:0] _RAND_194;
  reg [31:0] _RAND_195;
  reg [31:0] _RAND_196;
  reg [31:0] _RAND_197;
  reg [31:0] _RAND_198;
  reg [31:0] _RAND_199;
  reg [31:0] _RAND_200;
  reg [31:0] _RAND_201;
  reg [31:0] _RAND_202;
  reg [31:0] _RAND_203;
  reg [31:0] _RAND_204;
  reg [31:0] _RAND_205;
  reg [31:0] _RAND_206;
  reg [31:0] _RAND_207;
  reg [31:0] _RAND_208;
  reg [31:0] _RAND_209;
  reg [31:0] _RAND_210;
  reg [31:0] _RAND_211;
  reg [31:0] _RAND_212;
  reg [31:0] _RAND_213;
  reg [31:0] _RAND_214;
  reg [31:0] _RAND_215;
  reg [31:0] _RAND_216;
  reg [31:0] _RAND_217;
  reg [31:0] _RAND_218;
  reg [31:0] _RAND_219;
  reg [31:0] _RAND_220;
  reg [31:0] _RAND_221;
  reg [31:0] _RAND_222;
  reg [31:0] _RAND_223;
  reg [31:0] _RAND_224;
  reg [31:0] _RAND_225;
  reg [31:0] _RAND_226;
  reg [31:0] _RAND_227;
  reg [31:0] _RAND_228;
  reg [31:0] _RAND_229;
  reg [31:0] _RAND_230;
  reg [31:0] _RAND_231;
  reg [31:0] _RAND_232;
  reg [31:0] _RAND_233;
  reg [31:0] _RAND_234;
  reg [31:0] _RAND_235;
  reg [31:0] _RAND_236;
  reg [31:0] _RAND_237;
  reg [31:0] _RAND_238;
  reg [31:0] _RAND_239;
  reg [31:0] _RAND_240;
  reg [31:0] _RAND_241;
  reg [31:0] _RAND_242;
  reg [31:0] _RAND_243;
  reg [31:0] _RAND_244;
  reg [31:0] _RAND_245;
  reg [31:0] _RAND_246;
  reg [31:0] _RAND_247;
  reg [31:0] _RAND_248;
  reg [31:0] _RAND_249;
  reg [31:0] _RAND_250;
  reg [31:0] _RAND_251;
  reg [31:0] _RAND_252;
  reg [31:0] _RAND_253;
  reg [31:0] _RAND_254;
  reg [31:0] _RAND_255;
  reg [31:0] _RAND_256;
  reg [31:0] _RAND_257;
  reg [31:0] _RAND_258;
  reg [31:0] _RAND_259;
  reg [31:0] _RAND_260;
  reg [31:0] _RAND_261;
  reg [31:0] _RAND_262;
  reg [31:0] _RAND_263;
  reg [31:0] _RAND_264;
  reg [31:0] _RAND_265;
  reg [31:0] _RAND_266;
  reg [31:0] _RAND_267;
  reg [31:0] _RAND_268;
  reg [31:0] _RAND_269;
  reg [31:0] _RAND_270;
  reg [31:0] _RAND_271;
  reg [31:0] _RAND_272;
  reg [31:0] _RAND_273;
  reg [31:0] _RAND_274;
  reg [31:0] _RAND_275;
  reg [31:0] _RAND_276;
  reg [31:0] _RAND_277;
  reg [31:0] _RAND_278;
  reg [31:0] _RAND_279;
  reg [31:0] _RAND_280;
  reg [31:0] _RAND_281;
  reg [31:0] _RAND_282;
  reg [31:0] _RAND_283;
  reg [31:0] _RAND_284;
  reg [31:0] _RAND_285;
  reg [31:0] _RAND_286;
  reg [31:0] _RAND_287;
  reg [31:0] _RAND_288;
  reg [31:0] _RAND_289;
  reg [31:0] _RAND_290;
  reg [31:0] _RAND_291;
  reg [31:0] _RAND_292;
  reg [31:0] _RAND_293;
  reg [31:0] _RAND_294;
  reg [31:0] _RAND_295;
  reg [31:0] _RAND_296;
  reg [31:0] _RAND_297;
  reg [31:0] _RAND_298;
  reg [31:0] _RAND_299;
  reg [31:0] _RAND_300;
  reg [31:0] _RAND_301;
  reg [31:0] _RAND_302;
  reg [31:0] _RAND_303;
  reg [31:0] _RAND_304;
  reg [31:0] _RAND_305;
  reg [31:0] _RAND_306;
  reg [31:0] _RAND_307;
  reg [31:0] _RAND_308;
  reg [31:0] _RAND_309;
  reg [31:0] _RAND_310;
  reg [31:0] _RAND_311;
  reg [31:0] _RAND_312;
  reg [31:0] _RAND_313;
  reg [31:0] _RAND_314;
  reg [31:0] _RAND_315;
  reg [31:0] _RAND_316;
  reg [31:0] _RAND_317;
  reg [31:0] _RAND_318;
  reg [31:0] _RAND_319;
  reg [31:0] _RAND_320;
  reg [31:0] _RAND_321;
  reg [31:0] _RAND_322;
  reg [31:0] _RAND_323;
  reg [31:0] _RAND_324;
  reg [31:0] _RAND_325;
  reg [31:0] _RAND_326;
  reg [31:0] _RAND_327;
  reg [31:0] _RAND_328;
  reg [31:0] _RAND_329;
  reg [31:0] _RAND_330;
  reg [31:0] _RAND_331;
  reg [31:0] _RAND_332;
  reg [31:0] _RAND_333;
  reg [31:0] _RAND_334;
  reg [31:0] _RAND_335;
  reg [31:0] _RAND_336;
  reg [31:0] _RAND_337;
  reg [31:0] _RAND_338;
  reg [31:0] _RAND_339;
  reg [31:0] _RAND_340;
  reg [31:0] _RAND_341;
  reg [31:0] _RAND_342;
  reg [31:0] _RAND_343;
  reg [31:0] _RAND_344;
  reg [31:0] _RAND_345;
  reg [31:0] _RAND_346;
  reg [31:0] _RAND_347;
  reg [31:0] _RAND_348;
  reg [31:0] _RAND_349;
  reg [31:0] _RAND_350;
  reg [31:0] _RAND_351;
  reg [31:0] _RAND_352;
  reg [31:0] _RAND_353;
  reg [31:0] _RAND_354;
  reg [31:0] _RAND_355;
  reg [31:0] _RAND_356;
  reg [31:0] _RAND_357;
  reg [31:0] _RAND_358;
  reg [31:0] _RAND_359;
  reg [31:0] _RAND_360;
  reg [31:0] _RAND_361;
  reg [31:0] _RAND_362;
  reg [31:0] _RAND_363;
  reg [31:0] _RAND_364;
  reg [31:0] _RAND_365;
  reg [31:0] _RAND_366;
  reg [31:0] _RAND_367;
  reg [31:0] _RAND_368;
  reg [31:0] _RAND_369;
  reg [31:0] _RAND_370;
  reg [31:0] _RAND_371;
  reg [31:0] _RAND_372;
  reg [31:0] _RAND_373;
  reg [31:0] _RAND_374;
  reg [31:0] _RAND_375;
  reg [31:0] _RAND_376;
  reg [63:0] _RAND_377;
  reg [63:0] _RAND_378;
  reg [31:0] _RAND_379;
  reg [31:0] _RAND_380;
  reg [31:0] _RAND_381;
  reg [31:0] _RAND_382;
  reg [31:0] _RAND_383;
  reg [31:0] _RAND_384;
  reg [31:0] _RAND_385;
`endif // RANDOMIZE_REG_INIT
  reg  buf_0_alu_isa_lui; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_auipc; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_addi; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_addiw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_slti; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_sltiu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_xori; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_ori; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_andi; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_slli; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_slliw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_srli; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_srliw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_srai; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_sraiw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_add; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_addw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_sub; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_subw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_sll; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_sllw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_slt; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_sltu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_xor; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_srl; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_srlw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_sra; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_sraw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_or; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_and; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_wfi; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_bru_isa_jal; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_bru_isa_jalr; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_bru_isa_beq; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_bru_isa_bne; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_bru_isa_blt; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_bru_isa_bge; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_bru_isa_bltu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_bru_isa_bgeu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_lb; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_lh; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_lw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_ld; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_lbu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_lhu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_lwu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_sb; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_sh; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_sw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_sd; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_fence; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_fence_i; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_sfence_vma; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_lr_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_sc_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amoswap_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amoadd_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amoxor_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amoand_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amoor_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amomin_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amomax_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amominu_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amomaxu_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_lr_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_sc_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amoswap_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amoadd_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amoxor_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amoand_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amoor_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amomin_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amomax_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amominu_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amomaxu_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_flw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_fsw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_fld; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_fsd; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_csr_isa_rw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_csr_isa_rs; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_csr_isa_rc; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_csr_isa_rwi; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_csr_isa_rsi; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_csr_isa_rci; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_mul; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_mulh; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_mulhsu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_mulhu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_div; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_divu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_rem; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_remu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_mulw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_divw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_divuw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_remw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_remuw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_ecall; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_ebreak; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_mret; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_uret; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_sret; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_dret; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_hfence_vvma; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_hfence_gvma; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_hlv_b; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_hlv_bu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_hlv_h; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_hlv_hu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_hlvx_hu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_hlv_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_hlvx_wu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_hsv_b; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_hsv_h; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_hsv_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_hlv_wu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_hlv_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_hsv_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_is_access_fault; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_isa_is_paging_fault; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmadd_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmsub_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fnmsub_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fnmadd_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fadd_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fsub_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmul_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fdiv_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fsqrt_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fsgnj_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fsgnjn_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fsgnjx_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmin_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmax_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_w_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_wu_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmv_x_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_feq_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_flt_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fle_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fclass_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_s_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_s_wu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmv_w_x; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_l_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_lu_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_s_l; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_s_lu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmadd_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmsub_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fnmsub_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fnmadd_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fadd_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fsub_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmul_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fdiv_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fsqrt_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fsgnj_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fsgnjn_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fsgnjx_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmin_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmax_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_s_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_d_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_feq_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_flt_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fle_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fclass_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_w_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_wu_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_d_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_d_wu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_l_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_lu_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmv_x_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_d_l; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_d_lu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmv_d_x; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcsr_rw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcsr_rs; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcsr_rc; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcsr_rwi; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcsr_rsi; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcsr_rci; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_param_is_rvc; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_0_param_pc; // @[MultiPortFifo.scala 57:20]
  reg [63:0] buf_0_param_imm; // @[MultiPortFifo.scala 57:20]
  reg [4:0] buf_0_param_raw_rs1; // @[MultiPortFifo.scala 57:20]
  reg [4:0] buf_0_param_raw_rs2; // @[MultiPortFifo.scala 57:20]
  reg [4:0] buf_0_param_raw_rd0; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_lui; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_auipc; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_addi; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_addiw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_slti; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_sltiu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_xori; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_ori; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_andi; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_slli; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_slliw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_srli; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_srliw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_srai; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_sraiw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_add; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_addw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_sub; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_subw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_sll; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_sllw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_slt; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_sltu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_xor; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_srl; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_srlw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_sra; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_sraw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_or; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_and; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_wfi; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_bru_isa_jal; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_bru_isa_jalr; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_bru_isa_beq; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_bru_isa_bne; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_bru_isa_blt; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_bru_isa_bge; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_bru_isa_bltu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_bru_isa_bgeu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_lb; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_lh; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_lw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_ld; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_lbu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_lhu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_lwu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_sb; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_sh; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_sw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_sd; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_fence; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_fence_i; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_sfence_vma; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_lr_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_sc_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amoswap_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amoadd_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amoxor_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amoand_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amoor_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amomin_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amomax_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amominu_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amomaxu_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_lr_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_sc_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amoswap_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amoadd_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amoxor_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amoand_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amoor_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amomin_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amomax_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amominu_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amomaxu_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_flw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_fsw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_fld; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_fsd; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_csr_isa_rw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_csr_isa_rs; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_csr_isa_rc; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_csr_isa_rwi; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_csr_isa_rsi; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_csr_isa_rci; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_mul; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_mulh; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_mulhsu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_mulhu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_div; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_divu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_rem; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_remu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_mulw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_divw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_divuw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_remw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_remuw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_ecall; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_ebreak; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_mret; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_uret; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_sret; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_dret; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_hfence_vvma; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_hfence_gvma; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_hlv_b; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_hlv_bu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_hlv_h; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_hlv_hu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_hlvx_hu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_hlv_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_hlvx_wu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_hsv_b; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_hsv_h; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_hsv_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_hlv_wu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_hlv_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_hsv_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_is_access_fault; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_isa_is_paging_fault; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmadd_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmsub_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fnmsub_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fnmadd_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fadd_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fsub_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmul_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fdiv_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fsqrt_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fsgnj_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fsgnjn_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fsgnjx_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmin_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmax_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_w_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_wu_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmv_x_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_feq_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_flt_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fle_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fclass_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_s_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_s_wu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmv_w_x; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_l_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_lu_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_s_l; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_s_lu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmadd_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmsub_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fnmsub_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fnmadd_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fadd_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fsub_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmul_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fdiv_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fsqrt_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fsgnj_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fsgnjn_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fsgnjx_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmin_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmax_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_s_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_d_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_feq_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_flt_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fle_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fclass_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_w_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_wu_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_d_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_d_wu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_l_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_lu_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmv_x_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_d_l; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_d_lu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmv_d_x; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcsr_rw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcsr_rs; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcsr_rc; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcsr_rwi; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcsr_rsi; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcsr_rci; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_param_is_rvc; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_1_param_pc; // @[MultiPortFifo.scala 57:20]
  reg [63:0] buf_1_param_imm; // @[MultiPortFifo.scala 57:20]
  reg [4:0] buf_1_param_raw_rs1; // @[MultiPortFifo.scala 57:20]
  reg [4:0] buf_1_param_raw_rs2; // @[MultiPortFifo.scala 57:20]
  reg [4:0] buf_1_param_raw_rd0; // @[MultiPortFifo.scala 57:20]
  reg  buf_valid_0; // @[MultiPortFifo.scala 58:30]
  reg  buf_valid_1; // @[MultiPortFifo.scala 58:30]
  reg  rd_ptr; // @[MultiPortFifo.scala 60:27]
  reg  wr_ptr; // @[MultiPortFifo.scala 61:27]
  wire [1:0] _io_enq_0_ready_T = {{1'd0}, wr_ptr}; // @[MultiPortFifo.scala 64:78]
  wire  _GEN_1 = _io_enq_0_ready_T[0] ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 64:{94,94}]
  wire [1:0] _io_deq_0_valid_T = {{1'd0}, rd_ptr}; // @[MultiPortFifo.scala 65:78]
  wire  _T = io_enq_0_ready & io_enq_0_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_6 = _T ? ~_io_enq_0_ready_T[0] | buf_valid_0 : buf_valid_0; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _GEN_7 = _T ? _io_enq_0_ready_T[0] | buf_valid_1 : buf_valid_1; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _T_1 = io_deq_0_ready & io_deq_0_valid; // @[Decoupled.scala 52:35]
  wire  _T_9 = ~reset; // @[MultiPortFifo.scala 161:13]
  assign io_enq_0_ready = ~_GEN_1; // @[MultiPortFifo.scala 64:94]
  assign io_deq_0_valid = _io_deq_0_valid_T[0] ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 65:{94,94}]
  assign io_deq_0_bits_alu_isa_lui = _io_deq_0_valid_T[0] ? buf_1_alu_isa_lui : buf_0_alu_isa_lui; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_auipc = _io_deq_0_valid_T[0] ? buf_1_alu_isa_auipc : buf_0_alu_isa_auipc; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_addi = _io_deq_0_valid_T[0] ? buf_1_alu_isa_addi : buf_0_alu_isa_addi; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_addiw = _io_deq_0_valid_T[0] ? buf_1_alu_isa_addiw : buf_0_alu_isa_addiw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_slti = _io_deq_0_valid_T[0] ? buf_1_alu_isa_slti : buf_0_alu_isa_slti; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_sltiu = _io_deq_0_valid_T[0] ? buf_1_alu_isa_sltiu : buf_0_alu_isa_sltiu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_xori = _io_deq_0_valid_T[0] ? buf_1_alu_isa_xori : buf_0_alu_isa_xori; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_ori = _io_deq_0_valid_T[0] ? buf_1_alu_isa_ori : buf_0_alu_isa_ori; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_andi = _io_deq_0_valid_T[0] ? buf_1_alu_isa_andi : buf_0_alu_isa_andi; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_slli = _io_deq_0_valid_T[0] ? buf_1_alu_isa_slli : buf_0_alu_isa_slli; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_slliw = _io_deq_0_valid_T[0] ? buf_1_alu_isa_slliw : buf_0_alu_isa_slliw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_srli = _io_deq_0_valid_T[0] ? buf_1_alu_isa_srli : buf_0_alu_isa_srli; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_srliw = _io_deq_0_valid_T[0] ? buf_1_alu_isa_srliw : buf_0_alu_isa_srliw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_srai = _io_deq_0_valid_T[0] ? buf_1_alu_isa_srai : buf_0_alu_isa_srai; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_sraiw = _io_deq_0_valid_T[0] ? buf_1_alu_isa_sraiw : buf_0_alu_isa_sraiw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_add = _io_deq_0_valid_T[0] ? buf_1_alu_isa_add : buf_0_alu_isa_add; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_addw = _io_deq_0_valid_T[0] ? buf_1_alu_isa_addw : buf_0_alu_isa_addw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_sub = _io_deq_0_valid_T[0] ? buf_1_alu_isa_sub : buf_0_alu_isa_sub; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_subw = _io_deq_0_valid_T[0] ? buf_1_alu_isa_subw : buf_0_alu_isa_subw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_sll = _io_deq_0_valid_T[0] ? buf_1_alu_isa_sll : buf_0_alu_isa_sll; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_sllw = _io_deq_0_valid_T[0] ? buf_1_alu_isa_sllw : buf_0_alu_isa_sllw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_slt = _io_deq_0_valid_T[0] ? buf_1_alu_isa_slt : buf_0_alu_isa_slt; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_sltu = _io_deq_0_valid_T[0] ? buf_1_alu_isa_sltu : buf_0_alu_isa_sltu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_xor = _io_deq_0_valid_T[0] ? buf_1_alu_isa_xor : buf_0_alu_isa_xor; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_srl = _io_deq_0_valid_T[0] ? buf_1_alu_isa_srl : buf_0_alu_isa_srl; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_srlw = _io_deq_0_valid_T[0] ? buf_1_alu_isa_srlw : buf_0_alu_isa_srlw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_sra = _io_deq_0_valid_T[0] ? buf_1_alu_isa_sra : buf_0_alu_isa_sra; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_sraw = _io_deq_0_valid_T[0] ? buf_1_alu_isa_sraw : buf_0_alu_isa_sraw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_or = _io_deq_0_valid_T[0] ? buf_1_alu_isa_or : buf_0_alu_isa_or; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_and = _io_deq_0_valid_T[0] ? buf_1_alu_isa_and : buf_0_alu_isa_and; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_wfi = _io_deq_0_valid_T[0] ? buf_1_alu_isa_wfi : buf_0_alu_isa_wfi; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_bru_isa_jal = _io_deq_0_valid_T[0] ? buf_1_bru_isa_jal : buf_0_bru_isa_jal; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_bru_isa_jalr = _io_deq_0_valid_T[0] ? buf_1_bru_isa_jalr : buf_0_bru_isa_jalr; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_bru_isa_beq = _io_deq_0_valid_T[0] ? buf_1_bru_isa_beq : buf_0_bru_isa_beq; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_bru_isa_bne = _io_deq_0_valid_T[0] ? buf_1_bru_isa_bne : buf_0_bru_isa_bne; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_bru_isa_blt = _io_deq_0_valid_T[0] ? buf_1_bru_isa_blt : buf_0_bru_isa_blt; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_bru_isa_bge = _io_deq_0_valid_T[0] ? buf_1_bru_isa_bge : buf_0_bru_isa_bge; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_bru_isa_bltu = _io_deq_0_valid_T[0] ? buf_1_bru_isa_bltu : buf_0_bru_isa_bltu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_bru_isa_bgeu = _io_deq_0_valid_T[0] ? buf_1_bru_isa_bgeu : buf_0_bru_isa_bgeu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_lb = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_lb : buf_0_lsu_isa_lb; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_lh = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_lh : buf_0_lsu_isa_lh; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_lw = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_lw : buf_0_lsu_isa_lw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_ld = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_ld : buf_0_lsu_isa_ld; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_lbu = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_lbu : buf_0_lsu_isa_lbu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_lhu = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_lhu : buf_0_lsu_isa_lhu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_lwu = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_lwu : buf_0_lsu_isa_lwu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_sb = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_sb : buf_0_lsu_isa_sb; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_sh = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_sh : buf_0_lsu_isa_sh; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_sw = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_sw : buf_0_lsu_isa_sw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_sd = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_sd : buf_0_lsu_isa_sd; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_fence = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_fence : buf_0_lsu_isa_fence; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_fence_i = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_fence_i : buf_0_lsu_isa_fence_i; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_sfence_vma = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_sfence_vma : buf_0_lsu_isa_sfence_vma; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_lr_w = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_lr_w : buf_0_lsu_isa_lr_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_sc_w = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_sc_w : buf_0_lsu_isa_sc_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amoswap_w = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amoswap_w : buf_0_lsu_isa_amoswap_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amoadd_w = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amoadd_w : buf_0_lsu_isa_amoadd_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amoxor_w = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amoxor_w : buf_0_lsu_isa_amoxor_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amoand_w = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amoand_w : buf_0_lsu_isa_amoand_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amoor_w = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amoor_w : buf_0_lsu_isa_amoor_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amomin_w = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amomin_w : buf_0_lsu_isa_amomin_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amomax_w = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amomax_w : buf_0_lsu_isa_amomax_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amominu_w = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amominu_w : buf_0_lsu_isa_amominu_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amomaxu_w = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amomaxu_w : buf_0_lsu_isa_amomaxu_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_lr_d = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_lr_d : buf_0_lsu_isa_lr_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_sc_d = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_sc_d : buf_0_lsu_isa_sc_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amoswap_d = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amoswap_d : buf_0_lsu_isa_amoswap_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amoadd_d = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amoadd_d : buf_0_lsu_isa_amoadd_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amoxor_d = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amoxor_d : buf_0_lsu_isa_amoxor_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amoand_d = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amoand_d : buf_0_lsu_isa_amoand_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amoor_d = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amoor_d : buf_0_lsu_isa_amoor_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amomin_d = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amomin_d : buf_0_lsu_isa_amomin_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amomax_d = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amomax_d : buf_0_lsu_isa_amomax_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amominu_d = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amominu_d : buf_0_lsu_isa_amominu_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amomaxu_d = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amomaxu_d : buf_0_lsu_isa_amomaxu_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_flw = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_flw : buf_0_lsu_isa_flw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_fsw = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_fsw : buf_0_lsu_isa_fsw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_fld = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_fld : buf_0_lsu_isa_fld; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_fsd = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_fsd : buf_0_lsu_isa_fsd; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_csr_isa_rw = _io_deq_0_valid_T[0] ? buf_1_csr_isa_rw : buf_0_csr_isa_rw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_csr_isa_rs = _io_deq_0_valid_T[0] ? buf_1_csr_isa_rs : buf_0_csr_isa_rs; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_csr_isa_rc = _io_deq_0_valid_T[0] ? buf_1_csr_isa_rc : buf_0_csr_isa_rc; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_csr_isa_rwi = _io_deq_0_valid_T[0] ? buf_1_csr_isa_rwi : buf_0_csr_isa_rwi; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_csr_isa_rsi = _io_deq_0_valid_T[0] ? buf_1_csr_isa_rsi : buf_0_csr_isa_rsi; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_csr_isa_rci = _io_deq_0_valid_T[0] ? buf_1_csr_isa_rci : buf_0_csr_isa_rci; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_mul = _io_deq_0_valid_T[0] ? buf_1_mul_isa_mul : buf_0_mul_isa_mul; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_mulh = _io_deq_0_valid_T[0] ? buf_1_mul_isa_mulh : buf_0_mul_isa_mulh; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_mulhsu = _io_deq_0_valid_T[0] ? buf_1_mul_isa_mulhsu : buf_0_mul_isa_mulhsu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_mulhu = _io_deq_0_valid_T[0] ? buf_1_mul_isa_mulhu : buf_0_mul_isa_mulhu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_div = _io_deq_0_valid_T[0] ? buf_1_mul_isa_div : buf_0_mul_isa_div; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_divu = _io_deq_0_valid_T[0] ? buf_1_mul_isa_divu : buf_0_mul_isa_divu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_rem = _io_deq_0_valid_T[0] ? buf_1_mul_isa_rem : buf_0_mul_isa_rem; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_remu = _io_deq_0_valid_T[0] ? buf_1_mul_isa_remu : buf_0_mul_isa_remu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_mulw = _io_deq_0_valid_T[0] ? buf_1_mul_isa_mulw : buf_0_mul_isa_mulw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_divw = _io_deq_0_valid_T[0] ? buf_1_mul_isa_divw : buf_0_mul_isa_divw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_divuw = _io_deq_0_valid_T[0] ? buf_1_mul_isa_divuw : buf_0_mul_isa_divuw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_remw = _io_deq_0_valid_T[0] ? buf_1_mul_isa_remw : buf_0_mul_isa_remw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_remuw = _io_deq_0_valid_T[0] ? buf_1_mul_isa_remuw : buf_0_mul_isa_remuw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_ecall = _io_deq_0_valid_T[0] ? buf_1_privil_isa_ecall : buf_0_privil_isa_ecall; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_ebreak = _io_deq_0_valid_T[0] ? buf_1_privil_isa_ebreak : buf_0_privil_isa_ebreak; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_mret = _io_deq_0_valid_T[0] ? buf_1_privil_isa_mret : buf_0_privil_isa_mret; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_uret = _io_deq_0_valid_T[0] ? buf_1_privil_isa_uret : buf_0_privil_isa_uret; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_sret = _io_deq_0_valid_T[0] ? buf_1_privil_isa_sret : buf_0_privil_isa_sret; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_dret = _io_deq_0_valid_T[0] ? buf_1_privil_isa_dret : buf_0_privil_isa_dret; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_hfence_vvma = _io_deq_0_valid_T[0] ? buf_1_privil_isa_hfence_vvma :
    buf_0_privil_isa_hfence_vvma; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_hfence_gvma = _io_deq_0_valid_T[0] ? buf_1_privil_isa_hfence_gvma :
    buf_0_privil_isa_hfence_gvma; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_hlv_b = _io_deq_0_valid_T[0] ? buf_1_privil_isa_hlv_b : buf_0_privil_isa_hlv_b; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_hlv_bu = _io_deq_0_valid_T[0] ? buf_1_privil_isa_hlv_bu : buf_0_privil_isa_hlv_bu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_hlv_h = _io_deq_0_valid_T[0] ? buf_1_privil_isa_hlv_h : buf_0_privil_isa_hlv_h; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_hlv_hu = _io_deq_0_valid_T[0] ? buf_1_privil_isa_hlv_hu : buf_0_privil_isa_hlv_hu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_hlvx_hu = _io_deq_0_valid_T[0] ? buf_1_privil_isa_hlvx_hu : buf_0_privil_isa_hlvx_hu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_hlv_w = _io_deq_0_valid_T[0] ? buf_1_privil_isa_hlv_w : buf_0_privil_isa_hlv_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_hlvx_wu = _io_deq_0_valid_T[0] ? buf_1_privil_isa_hlvx_wu : buf_0_privil_isa_hlvx_wu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_hsv_b = _io_deq_0_valid_T[0] ? buf_1_privil_isa_hsv_b : buf_0_privil_isa_hsv_b; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_hsv_h = _io_deq_0_valid_T[0] ? buf_1_privil_isa_hsv_h : buf_0_privil_isa_hsv_h; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_hsv_w = _io_deq_0_valid_T[0] ? buf_1_privil_isa_hsv_w : buf_0_privil_isa_hsv_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_hlv_wu = _io_deq_0_valid_T[0] ? buf_1_privil_isa_hlv_wu : buf_0_privil_isa_hlv_wu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_hlv_d = _io_deq_0_valid_T[0] ? buf_1_privil_isa_hlv_d : buf_0_privil_isa_hlv_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_hsv_d = _io_deq_0_valid_T[0] ? buf_1_privil_isa_hsv_d : buf_0_privil_isa_hsv_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_is_access_fault = _io_deq_0_valid_T[0] ? buf_1_privil_isa_is_access_fault :
    buf_0_privil_isa_is_access_fault; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_isa_is_paging_fault = _io_deq_0_valid_T[0] ? buf_1_privil_isa_is_paging_fault :
    buf_0_privil_isa_is_paging_fault; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmadd_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmadd_s : buf_0_fpu_isa_fmadd_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmsub_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmsub_s : buf_0_fpu_isa_fmsub_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fnmsub_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fnmsub_s : buf_0_fpu_isa_fnmsub_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fnmadd_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fnmadd_s : buf_0_fpu_isa_fnmadd_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fadd_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fadd_s : buf_0_fpu_isa_fadd_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fsub_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fsub_s : buf_0_fpu_isa_fsub_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmul_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmul_s : buf_0_fpu_isa_fmul_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fdiv_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fdiv_s : buf_0_fpu_isa_fdiv_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fsqrt_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fsqrt_s : buf_0_fpu_isa_fsqrt_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fsgnj_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fsgnj_s : buf_0_fpu_isa_fsgnj_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fsgnjn_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fsgnjn_s : buf_0_fpu_isa_fsgnjn_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fsgnjx_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fsgnjx_s : buf_0_fpu_isa_fsgnjx_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmin_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmin_s : buf_0_fpu_isa_fmin_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmax_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmax_s : buf_0_fpu_isa_fmax_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_w_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_w_s : buf_0_fpu_isa_fcvt_w_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_wu_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_wu_s : buf_0_fpu_isa_fcvt_wu_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmv_x_w = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmv_x_w : buf_0_fpu_isa_fmv_x_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_feq_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_feq_s : buf_0_fpu_isa_feq_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_flt_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_flt_s : buf_0_fpu_isa_flt_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fle_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fle_s : buf_0_fpu_isa_fle_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fclass_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fclass_s : buf_0_fpu_isa_fclass_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_s_w = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_s_w : buf_0_fpu_isa_fcvt_s_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_s_wu = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_s_wu : buf_0_fpu_isa_fcvt_s_wu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmv_w_x = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmv_w_x : buf_0_fpu_isa_fmv_w_x; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_l_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_l_s : buf_0_fpu_isa_fcvt_l_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_lu_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_lu_s : buf_0_fpu_isa_fcvt_lu_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_s_l = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_s_l : buf_0_fpu_isa_fcvt_s_l; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_s_lu = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_s_lu : buf_0_fpu_isa_fcvt_s_lu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmadd_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmadd_d : buf_0_fpu_isa_fmadd_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmsub_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmsub_d : buf_0_fpu_isa_fmsub_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fnmsub_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fnmsub_d : buf_0_fpu_isa_fnmsub_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fnmadd_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fnmadd_d : buf_0_fpu_isa_fnmadd_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fadd_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fadd_d : buf_0_fpu_isa_fadd_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fsub_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fsub_d : buf_0_fpu_isa_fsub_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmul_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmul_d : buf_0_fpu_isa_fmul_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fdiv_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fdiv_d : buf_0_fpu_isa_fdiv_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fsqrt_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fsqrt_d : buf_0_fpu_isa_fsqrt_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fsgnj_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fsgnj_d : buf_0_fpu_isa_fsgnj_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fsgnjn_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fsgnjn_d : buf_0_fpu_isa_fsgnjn_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fsgnjx_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fsgnjx_d : buf_0_fpu_isa_fsgnjx_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmin_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmin_d : buf_0_fpu_isa_fmin_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmax_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmax_d : buf_0_fpu_isa_fmax_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_s_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_s_d : buf_0_fpu_isa_fcvt_s_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_d_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_d_s : buf_0_fpu_isa_fcvt_d_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_feq_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_feq_d : buf_0_fpu_isa_feq_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_flt_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_flt_d : buf_0_fpu_isa_flt_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fle_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fle_d : buf_0_fpu_isa_fle_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fclass_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fclass_d : buf_0_fpu_isa_fclass_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_w_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_w_d : buf_0_fpu_isa_fcvt_w_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_wu_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_wu_d : buf_0_fpu_isa_fcvt_wu_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_d_w = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_d_w : buf_0_fpu_isa_fcvt_d_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_d_wu = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_d_wu : buf_0_fpu_isa_fcvt_d_wu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_l_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_l_d : buf_0_fpu_isa_fcvt_l_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_lu_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_lu_d : buf_0_fpu_isa_fcvt_lu_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmv_x_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmv_x_d : buf_0_fpu_isa_fmv_x_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_d_l = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_d_l : buf_0_fpu_isa_fcvt_d_l; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_d_lu = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_d_lu : buf_0_fpu_isa_fcvt_d_lu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmv_d_x = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmv_d_x : buf_0_fpu_isa_fmv_d_x; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcsr_rw = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcsr_rw : buf_0_fpu_isa_fcsr_rw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcsr_rs = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcsr_rs : buf_0_fpu_isa_fcsr_rs; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcsr_rc = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcsr_rc : buf_0_fpu_isa_fcsr_rc; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcsr_rwi = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcsr_rwi : buf_0_fpu_isa_fcsr_rwi; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcsr_rsi = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcsr_rsi : buf_0_fpu_isa_fcsr_rsi; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcsr_rci = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcsr_rci : buf_0_fpu_isa_fcsr_rci; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_param_is_rvc = _io_deq_0_valid_T[0] ? buf_1_param_is_rvc : buf_0_param_is_rvc; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_param_pc = _io_deq_0_valid_T[0] ? buf_1_param_pc : buf_0_param_pc; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_param_imm = _io_deq_0_valid_T[0] ? buf_1_param_imm : buf_0_param_imm; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_param_raw_rs1 = _io_deq_0_valid_T[0] ? buf_1_param_raw_rs1 : buf_0_param_raw_rs1; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_param_raw_rs2 = _io_deq_0_valid_T[0] ? buf_1_param_raw_rs2 : buf_0_param_raw_rs2; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_param_raw_rd0 = _io_deq_0_valid_T[0] ? buf_1_param_raw_rd0 : buf_0_param_raw_rd0; // @[MultiPortFifo.scala 114:{14,14}]
  always @(posedge clock) begin
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_lui <= io_enq_0_bits_alu_isa_lui;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_lui <= buf_1_alu_isa_lui; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_auipc <= io_enq_0_bits_alu_isa_auipc;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_auipc <= buf_1_alu_isa_auipc; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_addi <= io_enq_0_bits_alu_isa_addi;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_addi <= buf_1_alu_isa_addi; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_addiw <= io_enq_0_bits_alu_isa_addiw;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_addiw <= buf_1_alu_isa_addiw; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_slti <= io_enq_0_bits_alu_isa_slti;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_slti <= buf_1_alu_isa_slti; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_sltiu <= io_enq_0_bits_alu_isa_sltiu;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_sltiu <= buf_1_alu_isa_sltiu; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_xori <= io_enq_0_bits_alu_isa_xori;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_xori <= buf_1_alu_isa_xori; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_ori <= io_enq_0_bits_alu_isa_ori;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_ori <= buf_1_alu_isa_ori; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_andi <= io_enq_0_bits_alu_isa_andi;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_andi <= buf_1_alu_isa_andi; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_slli <= io_enq_0_bits_alu_isa_slli;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_slli <= buf_1_alu_isa_slli; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_slliw <= io_enq_0_bits_alu_isa_slliw;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_slliw <= buf_1_alu_isa_slliw; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_srli <= io_enq_0_bits_alu_isa_srli;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_srli <= buf_1_alu_isa_srli; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_srliw <= io_enq_0_bits_alu_isa_srliw;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_srliw <= buf_1_alu_isa_srliw; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_srai <= io_enq_0_bits_alu_isa_srai;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_srai <= buf_1_alu_isa_srai; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_sraiw <= io_enq_0_bits_alu_isa_sraiw;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_sraiw <= buf_1_alu_isa_sraiw; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_add <= io_enq_0_bits_alu_isa_add;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_add <= buf_1_alu_isa_add; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_addw <= io_enq_0_bits_alu_isa_addw;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_addw <= buf_1_alu_isa_addw; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_sub <= io_enq_0_bits_alu_isa_sub;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_sub <= buf_1_alu_isa_sub; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_subw <= io_enq_0_bits_alu_isa_subw;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_subw <= buf_1_alu_isa_subw; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_sll <= io_enq_0_bits_alu_isa_sll;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_sll <= buf_1_alu_isa_sll; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_sllw <= io_enq_0_bits_alu_isa_sllw;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_sllw <= buf_1_alu_isa_sllw; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_slt <= io_enq_0_bits_alu_isa_slt;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_slt <= buf_1_alu_isa_slt; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_sltu <= io_enq_0_bits_alu_isa_sltu;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_sltu <= buf_1_alu_isa_sltu; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_xor <= io_enq_0_bits_alu_isa_xor;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_xor <= buf_1_alu_isa_xor; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_srl <= io_enq_0_bits_alu_isa_srl;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_srl <= buf_1_alu_isa_srl; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_srlw <= io_enq_0_bits_alu_isa_srlw;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_srlw <= buf_1_alu_isa_srlw; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_sra <= io_enq_0_bits_alu_isa_sra;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_sra <= buf_1_alu_isa_sra; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_sraw <= io_enq_0_bits_alu_isa_sraw;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_sraw <= buf_1_alu_isa_sraw; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_or <= io_enq_0_bits_alu_isa_or;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_or <= buf_1_alu_isa_or; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_and <= io_enq_0_bits_alu_isa_and;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_and <= buf_1_alu_isa_and; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_wfi <= io_enq_0_bits_alu_isa_wfi;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_alu_isa_wfi <= buf_1_alu_isa_wfi; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bru_isa_jal <= io_enq_0_bits_bru_isa_jal;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bru_isa_jal <= buf_1_bru_isa_jal; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bru_isa_jalr <= io_enq_0_bits_bru_isa_jalr;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bru_isa_jalr <= buf_1_bru_isa_jalr; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bru_isa_beq <= io_enq_0_bits_bru_isa_beq;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bru_isa_beq <= buf_1_bru_isa_beq; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bru_isa_bne <= io_enq_0_bits_bru_isa_bne;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bru_isa_bne <= buf_1_bru_isa_bne; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bru_isa_blt <= io_enq_0_bits_bru_isa_blt;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bru_isa_blt <= buf_1_bru_isa_blt; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bru_isa_bge <= io_enq_0_bits_bru_isa_bge;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bru_isa_bge <= buf_1_bru_isa_bge; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bru_isa_bltu <= io_enq_0_bits_bru_isa_bltu;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bru_isa_bltu <= buf_1_bru_isa_bltu; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bru_isa_bgeu <= io_enq_0_bits_bru_isa_bgeu;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bru_isa_bgeu <= buf_1_bru_isa_bgeu; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_lb <= io_enq_0_bits_lsu_isa_lb;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_lb <= buf_1_lsu_isa_lb; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_lh <= io_enq_0_bits_lsu_isa_lh;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_lh <= buf_1_lsu_isa_lh; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_lw <= io_enq_0_bits_lsu_isa_lw;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_lw <= buf_1_lsu_isa_lw; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_ld <= io_enq_0_bits_lsu_isa_ld;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_ld <= buf_1_lsu_isa_ld; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_lbu <= io_enq_0_bits_lsu_isa_lbu;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_lbu <= buf_1_lsu_isa_lbu; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_lhu <= io_enq_0_bits_lsu_isa_lhu;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_lhu <= buf_1_lsu_isa_lhu; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_lwu <= io_enq_0_bits_lsu_isa_lwu;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_lwu <= buf_1_lsu_isa_lwu; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_sb <= io_enq_0_bits_lsu_isa_sb;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_sb <= buf_1_lsu_isa_sb; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_sh <= io_enq_0_bits_lsu_isa_sh;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_sh <= buf_1_lsu_isa_sh; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_sw <= io_enq_0_bits_lsu_isa_sw;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_sw <= buf_1_lsu_isa_sw; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_sd <= io_enq_0_bits_lsu_isa_sd;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_sd <= buf_1_lsu_isa_sd; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_fence <= io_enq_0_bits_lsu_isa_fence;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_fence <= buf_1_lsu_isa_fence; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_fence_i <= io_enq_0_bits_lsu_isa_fence_i;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_fence_i <= buf_1_lsu_isa_fence_i; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_sfence_vma <= io_enq_0_bits_lsu_isa_sfence_vma;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_sfence_vma <= buf_1_lsu_isa_sfence_vma; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_lr_w <= io_enq_0_bits_lsu_isa_lr_w;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_lr_w <= buf_1_lsu_isa_lr_w; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_sc_w <= io_enq_0_bits_lsu_isa_sc_w;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_sc_w <= buf_1_lsu_isa_sc_w; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amoswap_w <= io_enq_0_bits_lsu_isa_amoswap_w;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amoswap_w <= buf_1_lsu_isa_amoswap_w; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amoadd_w <= io_enq_0_bits_lsu_isa_amoadd_w;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amoadd_w <= buf_1_lsu_isa_amoadd_w; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amoxor_w <= io_enq_0_bits_lsu_isa_amoxor_w;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amoxor_w <= buf_1_lsu_isa_amoxor_w; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amoand_w <= io_enq_0_bits_lsu_isa_amoand_w;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amoand_w <= buf_1_lsu_isa_amoand_w; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amoor_w <= io_enq_0_bits_lsu_isa_amoor_w;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amoor_w <= buf_1_lsu_isa_amoor_w; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amomin_w <= io_enq_0_bits_lsu_isa_amomin_w;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amomin_w <= buf_1_lsu_isa_amomin_w; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amomax_w <= io_enq_0_bits_lsu_isa_amomax_w;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amomax_w <= buf_1_lsu_isa_amomax_w; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amominu_w <= io_enq_0_bits_lsu_isa_amominu_w;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amominu_w <= buf_1_lsu_isa_amominu_w; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amomaxu_w <= io_enq_0_bits_lsu_isa_amomaxu_w;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amomaxu_w <= buf_1_lsu_isa_amomaxu_w; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_lr_d <= io_enq_0_bits_lsu_isa_lr_d;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_lr_d <= buf_1_lsu_isa_lr_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_sc_d <= io_enq_0_bits_lsu_isa_sc_d;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_sc_d <= buf_1_lsu_isa_sc_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amoswap_d <= io_enq_0_bits_lsu_isa_amoswap_d;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amoswap_d <= buf_1_lsu_isa_amoswap_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amoadd_d <= io_enq_0_bits_lsu_isa_amoadd_d;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amoadd_d <= buf_1_lsu_isa_amoadd_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amoxor_d <= io_enq_0_bits_lsu_isa_amoxor_d;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amoxor_d <= buf_1_lsu_isa_amoxor_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amoand_d <= io_enq_0_bits_lsu_isa_amoand_d;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amoand_d <= buf_1_lsu_isa_amoand_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amoor_d <= io_enq_0_bits_lsu_isa_amoor_d;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amoor_d <= buf_1_lsu_isa_amoor_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amomin_d <= io_enq_0_bits_lsu_isa_amomin_d;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amomin_d <= buf_1_lsu_isa_amomin_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amomax_d <= io_enq_0_bits_lsu_isa_amomax_d;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amomax_d <= buf_1_lsu_isa_amomax_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amominu_d <= io_enq_0_bits_lsu_isa_amominu_d;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amominu_d <= buf_1_lsu_isa_amominu_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amomaxu_d <= io_enq_0_bits_lsu_isa_amomaxu_d;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_amomaxu_d <= buf_1_lsu_isa_amomaxu_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_flw <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_flw <= buf_1_lsu_isa_flw; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_fsw <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_fsw <= buf_1_lsu_isa_fsw; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_fld <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_fld <= buf_1_lsu_isa_fld; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_fsd <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_lsu_isa_fsd <= buf_1_lsu_isa_fsd; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_csr_isa_rw <= io_enq_0_bits_csr_isa_rw;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_csr_isa_rw <= buf_1_csr_isa_rw; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_csr_isa_rs <= io_enq_0_bits_csr_isa_rs;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_csr_isa_rs <= buf_1_csr_isa_rs; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_csr_isa_rc <= io_enq_0_bits_csr_isa_rc;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_csr_isa_rc <= buf_1_csr_isa_rc; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_csr_isa_rwi <= io_enq_0_bits_csr_isa_rwi;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_csr_isa_rwi <= buf_1_csr_isa_rwi; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_csr_isa_rsi <= io_enq_0_bits_csr_isa_rsi;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_csr_isa_rsi <= buf_1_csr_isa_rsi; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_csr_isa_rci <= io_enq_0_bits_csr_isa_rci;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_csr_isa_rci <= buf_1_csr_isa_rci; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_mul <= io_enq_0_bits_mul_isa_mul;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_mul <= buf_1_mul_isa_mul; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_mulh <= io_enq_0_bits_mul_isa_mulh;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_mulh <= buf_1_mul_isa_mulh; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_mulhsu <= io_enq_0_bits_mul_isa_mulhsu;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_mulhsu <= buf_1_mul_isa_mulhsu; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_mulhu <= io_enq_0_bits_mul_isa_mulhu;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_mulhu <= buf_1_mul_isa_mulhu; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_div <= io_enq_0_bits_mul_isa_div;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_div <= buf_1_mul_isa_div; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_divu <= io_enq_0_bits_mul_isa_divu;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_divu <= buf_1_mul_isa_divu; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_rem <= io_enq_0_bits_mul_isa_rem;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_rem <= buf_1_mul_isa_rem; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_remu <= io_enq_0_bits_mul_isa_remu;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_remu <= buf_1_mul_isa_remu; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_mulw <= io_enq_0_bits_mul_isa_mulw;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_mulw <= buf_1_mul_isa_mulw; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_divw <= io_enq_0_bits_mul_isa_divw;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_divw <= buf_1_mul_isa_divw; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_divuw <= io_enq_0_bits_mul_isa_divuw;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_divuw <= buf_1_mul_isa_divuw; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_remw <= io_enq_0_bits_mul_isa_remw;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_remw <= buf_1_mul_isa_remw; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_remuw <= io_enq_0_bits_mul_isa_remuw;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_mul_isa_remuw <= buf_1_mul_isa_remuw; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_ecall <= io_enq_0_bits_privil_isa_ecall;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_ecall <= buf_1_privil_isa_ecall; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_ebreak <= io_enq_0_bits_privil_isa_ebreak;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_ebreak <= buf_1_privil_isa_ebreak; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_mret <= io_enq_0_bits_privil_isa_mret;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_mret <= buf_1_privil_isa_mret; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_uret <= io_enq_0_bits_privil_isa_uret;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_uret <= buf_1_privil_isa_uret; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_sret <= io_enq_0_bits_privil_isa_sret;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_sret <= buf_1_privil_isa_sret; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_dret <= io_enq_0_bits_privil_isa_dret;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_dret <= buf_1_privil_isa_dret; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hfence_vvma <= io_enq_0_bits_privil_isa_hfence_vvma;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hfence_vvma <= buf_1_privil_isa_hfence_vvma; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hfence_gvma <= io_enq_0_bits_privil_isa_hfence_gvma;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hfence_gvma <= buf_1_privil_isa_hfence_gvma; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hlv_b <= io_enq_0_bits_privil_isa_hlv_b;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hlv_b <= buf_1_privil_isa_hlv_b; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hlv_bu <= io_enq_0_bits_privil_isa_hlv_bu;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hlv_bu <= buf_1_privil_isa_hlv_bu; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hlv_h <= io_enq_0_bits_privil_isa_hlv_h;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hlv_h <= buf_1_privil_isa_hlv_h; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hlv_hu <= io_enq_0_bits_privil_isa_hlv_hu;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hlv_hu <= buf_1_privil_isa_hlv_hu; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hlvx_hu <= io_enq_0_bits_privil_isa_hlvx_hu;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hlvx_hu <= buf_1_privil_isa_hlvx_hu; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hlv_w <= io_enq_0_bits_privil_isa_hlv_w;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hlv_w <= buf_1_privil_isa_hlv_w; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hlvx_wu <= io_enq_0_bits_privil_isa_hlvx_wu;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hlvx_wu <= buf_1_privil_isa_hlvx_wu; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hsv_b <= io_enq_0_bits_privil_isa_hsv_b;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hsv_b <= buf_1_privil_isa_hsv_b; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hsv_h <= io_enq_0_bits_privil_isa_hsv_h;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hsv_h <= buf_1_privil_isa_hsv_h; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hsv_w <= io_enq_0_bits_privil_isa_hsv_w;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hsv_w <= buf_1_privil_isa_hsv_w; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hlv_wu <= io_enq_0_bits_privil_isa_hlv_wu;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hlv_wu <= buf_1_privil_isa_hlv_wu; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hlv_d <= io_enq_0_bits_privil_isa_hlv_d;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hlv_d <= buf_1_privil_isa_hlv_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hsv_d <= io_enq_0_bits_privil_isa_hsv_d;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_hsv_d <= buf_1_privil_isa_hsv_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_is_access_fault <= io_enq_0_bits_privil_isa_is_access_fault;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_is_access_fault <= buf_1_privil_isa_is_access_fault; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_is_paging_fault <= io_enq_0_bits_privil_isa_is_paging_fault;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_privil_isa_is_paging_fault <= buf_1_privil_isa_is_paging_fault; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmadd_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmadd_s <= buf_1_fpu_isa_fmadd_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmsub_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmsub_s <= buf_1_fpu_isa_fmsub_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fnmsub_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fnmsub_s <= buf_1_fpu_isa_fnmsub_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fnmadd_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fnmadd_s <= buf_1_fpu_isa_fnmadd_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fadd_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fadd_s <= buf_1_fpu_isa_fadd_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fsub_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fsub_s <= buf_1_fpu_isa_fsub_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmul_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmul_s <= buf_1_fpu_isa_fmul_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fdiv_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fdiv_s <= buf_1_fpu_isa_fdiv_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fsqrt_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fsqrt_s <= buf_1_fpu_isa_fsqrt_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fsgnj_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fsgnj_s <= buf_1_fpu_isa_fsgnj_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fsgnjn_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fsgnjn_s <= buf_1_fpu_isa_fsgnjn_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fsgnjx_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fsgnjx_s <= buf_1_fpu_isa_fsgnjx_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmin_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmin_s <= buf_1_fpu_isa_fmin_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmax_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmax_s <= buf_1_fpu_isa_fmax_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_w_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_w_s <= buf_1_fpu_isa_fcvt_w_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_wu_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_wu_s <= buf_1_fpu_isa_fcvt_wu_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmv_x_w <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmv_x_w <= buf_1_fpu_isa_fmv_x_w; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_feq_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_feq_s <= buf_1_fpu_isa_feq_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_flt_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_flt_s <= buf_1_fpu_isa_flt_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fle_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fle_s <= buf_1_fpu_isa_fle_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fclass_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fclass_s <= buf_1_fpu_isa_fclass_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_s_w <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_s_w <= buf_1_fpu_isa_fcvt_s_w; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_s_wu <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_s_wu <= buf_1_fpu_isa_fcvt_s_wu; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmv_w_x <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmv_w_x <= buf_1_fpu_isa_fmv_w_x; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_l_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_l_s <= buf_1_fpu_isa_fcvt_l_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_lu_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_lu_s <= buf_1_fpu_isa_fcvt_lu_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_s_l <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_s_l <= buf_1_fpu_isa_fcvt_s_l; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_s_lu <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_s_lu <= buf_1_fpu_isa_fcvt_s_lu; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmadd_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmadd_d <= buf_1_fpu_isa_fmadd_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmsub_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmsub_d <= buf_1_fpu_isa_fmsub_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fnmsub_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fnmsub_d <= buf_1_fpu_isa_fnmsub_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fnmadd_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fnmadd_d <= buf_1_fpu_isa_fnmadd_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fadd_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fadd_d <= buf_1_fpu_isa_fadd_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fsub_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fsub_d <= buf_1_fpu_isa_fsub_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmul_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmul_d <= buf_1_fpu_isa_fmul_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fdiv_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fdiv_d <= buf_1_fpu_isa_fdiv_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fsqrt_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fsqrt_d <= buf_1_fpu_isa_fsqrt_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fsgnj_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fsgnj_d <= buf_1_fpu_isa_fsgnj_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fsgnjn_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fsgnjn_d <= buf_1_fpu_isa_fsgnjn_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fsgnjx_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fsgnjx_d <= buf_1_fpu_isa_fsgnjx_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmin_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmin_d <= buf_1_fpu_isa_fmin_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmax_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmax_d <= buf_1_fpu_isa_fmax_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_s_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_s_d <= buf_1_fpu_isa_fcvt_s_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_d_s <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_d_s <= buf_1_fpu_isa_fcvt_d_s; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_feq_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_feq_d <= buf_1_fpu_isa_feq_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_flt_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_flt_d <= buf_1_fpu_isa_flt_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fle_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fle_d <= buf_1_fpu_isa_fle_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fclass_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fclass_d <= buf_1_fpu_isa_fclass_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_w_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_w_d <= buf_1_fpu_isa_fcvt_w_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_wu_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_wu_d <= buf_1_fpu_isa_fcvt_wu_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_d_w <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_d_w <= buf_1_fpu_isa_fcvt_d_w; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_d_wu <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_d_wu <= buf_1_fpu_isa_fcvt_d_wu; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_l_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_l_d <= buf_1_fpu_isa_fcvt_l_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_lu_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_lu_d <= buf_1_fpu_isa_fcvt_lu_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmv_x_d <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmv_x_d <= buf_1_fpu_isa_fmv_x_d; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_d_l <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_d_l <= buf_1_fpu_isa_fcvt_d_l; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_d_lu <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcvt_d_lu <= buf_1_fpu_isa_fcvt_d_lu; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmv_d_x <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fmv_d_x <= buf_1_fpu_isa_fmv_d_x; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcsr_rw <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcsr_rw <= buf_1_fpu_isa_fcsr_rw; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcsr_rs <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcsr_rs <= buf_1_fpu_isa_fcsr_rs; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcsr_rc <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcsr_rc <= buf_1_fpu_isa_fcsr_rc; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcsr_rwi <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcsr_rwi <= buf_1_fpu_isa_fcsr_rwi; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcsr_rsi <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcsr_rsi <= buf_1_fpu_isa_fcsr_rsi; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcsr_rci <= 1'h0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_fpu_isa_fcsr_rci <= buf_1_fpu_isa_fcsr_rci; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_param_is_rvc <= io_enq_0_bits_param_is_rvc;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_param_is_rvc <= buf_1_param_is_rvc; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_param_pc <= io_enq_0_bits_param_pc;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_param_pc <= buf_1_param_pc; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_param_imm <= io_enq_0_bits_param_imm;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_param_imm <= buf_1_param_imm; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_param_raw_rs1 <= io_enq_0_bits_param_raw_rs1;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_param_raw_rs1 <= buf_1_param_raw_rs1; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_param_raw_rs2 <= io_enq_0_bits_param_raw_rs2;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_param_raw_rs2 <= buf_1_param_raw_rs2; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_param_raw_rd0 <= io_enq_0_bits_param_raw_rd0;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_param_raw_rd0 <= buf_1_param_raw_rd0; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_lui <= io_enq_0_bits_alu_isa_lui;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_lui <= buf_0_alu_isa_lui;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_auipc <= io_enq_0_bits_alu_isa_auipc;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_auipc <= buf_0_alu_isa_auipc;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_addi <= io_enq_0_bits_alu_isa_addi;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_addi <= buf_0_alu_isa_addi;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_addiw <= io_enq_0_bits_alu_isa_addiw;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_addiw <= buf_0_alu_isa_addiw;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_slti <= io_enq_0_bits_alu_isa_slti;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_slti <= buf_0_alu_isa_slti;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_sltiu <= io_enq_0_bits_alu_isa_sltiu;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_sltiu <= buf_0_alu_isa_sltiu;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_xori <= io_enq_0_bits_alu_isa_xori;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_xori <= buf_0_alu_isa_xori;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_ori <= io_enq_0_bits_alu_isa_ori;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_ori <= buf_0_alu_isa_ori;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_andi <= io_enq_0_bits_alu_isa_andi;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_andi <= buf_0_alu_isa_andi;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_slli <= io_enq_0_bits_alu_isa_slli;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_slli <= buf_0_alu_isa_slli;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_slliw <= io_enq_0_bits_alu_isa_slliw;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_slliw <= buf_0_alu_isa_slliw;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_srli <= io_enq_0_bits_alu_isa_srli;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_srli <= buf_0_alu_isa_srli;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_srliw <= io_enq_0_bits_alu_isa_srliw;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_srliw <= buf_0_alu_isa_srliw;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_srai <= io_enq_0_bits_alu_isa_srai;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_srai <= buf_0_alu_isa_srai;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_sraiw <= io_enq_0_bits_alu_isa_sraiw;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_sraiw <= buf_0_alu_isa_sraiw;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_add <= io_enq_0_bits_alu_isa_add;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_add <= buf_0_alu_isa_add;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_addw <= io_enq_0_bits_alu_isa_addw;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_addw <= buf_0_alu_isa_addw;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_sub <= io_enq_0_bits_alu_isa_sub;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_sub <= buf_0_alu_isa_sub;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_subw <= io_enq_0_bits_alu_isa_subw;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_subw <= buf_0_alu_isa_subw;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_sll <= io_enq_0_bits_alu_isa_sll;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_sll <= buf_0_alu_isa_sll;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_sllw <= io_enq_0_bits_alu_isa_sllw;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_sllw <= buf_0_alu_isa_sllw;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_slt <= io_enq_0_bits_alu_isa_slt;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_slt <= buf_0_alu_isa_slt;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_sltu <= io_enq_0_bits_alu_isa_sltu;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_sltu <= buf_0_alu_isa_sltu;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_xor <= io_enq_0_bits_alu_isa_xor;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_xor <= buf_0_alu_isa_xor;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_srl <= io_enq_0_bits_alu_isa_srl;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_srl <= buf_0_alu_isa_srl;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_srlw <= io_enq_0_bits_alu_isa_srlw;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_srlw <= buf_0_alu_isa_srlw;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_sra <= io_enq_0_bits_alu_isa_sra;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_sra <= buf_0_alu_isa_sra;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_sraw <= io_enq_0_bits_alu_isa_sraw;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_sraw <= buf_0_alu_isa_sraw;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_or <= io_enq_0_bits_alu_isa_or;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_or <= buf_0_alu_isa_or;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_and <= io_enq_0_bits_alu_isa_and;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_and <= buf_0_alu_isa_and;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_wfi <= io_enq_0_bits_alu_isa_wfi;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_alu_isa_wfi <= buf_0_alu_isa_wfi;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bru_isa_jal <= io_enq_0_bits_bru_isa_jal;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bru_isa_jal <= buf_0_bru_isa_jal;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bru_isa_jalr <= io_enq_0_bits_bru_isa_jalr;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bru_isa_jalr <= buf_0_bru_isa_jalr;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bru_isa_beq <= io_enq_0_bits_bru_isa_beq;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bru_isa_beq <= buf_0_bru_isa_beq;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bru_isa_bne <= io_enq_0_bits_bru_isa_bne;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bru_isa_bne <= buf_0_bru_isa_bne;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bru_isa_blt <= io_enq_0_bits_bru_isa_blt;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bru_isa_blt <= buf_0_bru_isa_blt;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bru_isa_bge <= io_enq_0_bits_bru_isa_bge;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bru_isa_bge <= buf_0_bru_isa_bge;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bru_isa_bltu <= io_enq_0_bits_bru_isa_bltu;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bru_isa_bltu <= buf_0_bru_isa_bltu;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bru_isa_bgeu <= io_enq_0_bits_bru_isa_bgeu;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bru_isa_bgeu <= buf_0_bru_isa_bgeu;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_lb <= io_enq_0_bits_lsu_isa_lb;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_lb <= buf_0_lsu_isa_lb;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_lh <= io_enq_0_bits_lsu_isa_lh;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_lh <= buf_0_lsu_isa_lh;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_lw <= io_enq_0_bits_lsu_isa_lw;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_lw <= buf_0_lsu_isa_lw;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_ld <= io_enq_0_bits_lsu_isa_ld;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_ld <= buf_0_lsu_isa_ld;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_lbu <= io_enq_0_bits_lsu_isa_lbu;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_lbu <= buf_0_lsu_isa_lbu;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_lhu <= io_enq_0_bits_lsu_isa_lhu;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_lhu <= buf_0_lsu_isa_lhu;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_lwu <= io_enq_0_bits_lsu_isa_lwu;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_lwu <= buf_0_lsu_isa_lwu;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_sb <= io_enq_0_bits_lsu_isa_sb;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_sb <= buf_0_lsu_isa_sb;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_sh <= io_enq_0_bits_lsu_isa_sh;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_sh <= buf_0_lsu_isa_sh;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_sw <= io_enq_0_bits_lsu_isa_sw;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_sw <= buf_0_lsu_isa_sw;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_sd <= io_enq_0_bits_lsu_isa_sd;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_sd <= buf_0_lsu_isa_sd;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_fence <= io_enq_0_bits_lsu_isa_fence;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_fence <= buf_0_lsu_isa_fence;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_fence_i <= io_enq_0_bits_lsu_isa_fence_i;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_fence_i <= buf_0_lsu_isa_fence_i;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_sfence_vma <= io_enq_0_bits_lsu_isa_sfence_vma;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_sfence_vma <= buf_0_lsu_isa_sfence_vma;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_lr_w <= io_enq_0_bits_lsu_isa_lr_w;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_lr_w <= buf_0_lsu_isa_lr_w;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_sc_w <= io_enq_0_bits_lsu_isa_sc_w;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_sc_w <= buf_0_lsu_isa_sc_w;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amoswap_w <= io_enq_0_bits_lsu_isa_amoswap_w;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amoswap_w <= buf_0_lsu_isa_amoswap_w;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amoadd_w <= io_enq_0_bits_lsu_isa_amoadd_w;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amoadd_w <= buf_0_lsu_isa_amoadd_w;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amoxor_w <= io_enq_0_bits_lsu_isa_amoxor_w;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amoxor_w <= buf_0_lsu_isa_amoxor_w;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amoand_w <= io_enq_0_bits_lsu_isa_amoand_w;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amoand_w <= buf_0_lsu_isa_amoand_w;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amoor_w <= io_enq_0_bits_lsu_isa_amoor_w;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amoor_w <= buf_0_lsu_isa_amoor_w;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amomin_w <= io_enq_0_bits_lsu_isa_amomin_w;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amomin_w <= buf_0_lsu_isa_amomin_w;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amomax_w <= io_enq_0_bits_lsu_isa_amomax_w;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amomax_w <= buf_0_lsu_isa_amomax_w;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amominu_w <= io_enq_0_bits_lsu_isa_amominu_w;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amominu_w <= buf_0_lsu_isa_amominu_w;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amomaxu_w <= io_enq_0_bits_lsu_isa_amomaxu_w;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amomaxu_w <= buf_0_lsu_isa_amomaxu_w;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_lr_d <= io_enq_0_bits_lsu_isa_lr_d;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_lr_d <= buf_0_lsu_isa_lr_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_sc_d <= io_enq_0_bits_lsu_isa_sc_d;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_sc_d <= buf_0_lsu_isa_sc_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amoswap_d <= io_enq_0_bits_lsu_isa_amoswap_d;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amoswap_d <= buf_0_lsu_isa_amoswap_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amoadd_d <= io_enq_0_bits_lsu_isa_amoadd_d;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amoadd_d <= buf_0_lsu_isa_amoadd_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amoxor_d <= io_enq_0_bits_lsu_isa_amoxor_d;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amoxor_d <= buf_0_lsu_isa_amoxor_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amoand_d <= io_enq_0_bits_lsu_isa_amoand_d;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amoand_d <= buf_0_lsu_isa_amoand_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amoor_d <= io_enq_0_bits_lsu_isa_amoor_d;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amoor_d <= buf_0_lsu_isa_amoor_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amomin_d <= io_enq_0_bits_lsu_isa_amomin_d;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amomin_d <= buf_0_lsu_isa_amomin_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amomax_d <= io_enq_0_bits_lsu_isa_amomax_d;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amomax_d <= buf_0_lsu_isa_amomax_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amominu_d <= io_enq_0_bits_lsu_isa_amominu_d;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amominu_d <= buf_0_lsu_isa_amominu_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amomaxu_d <= io_enq_0_bits_lsu_isa_amomaxu_d;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_amomaxu_d <= buf_0_lsu_isa_amomaxu_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_flw <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_flw <= buf_0_lsu_isa_flw;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_fsw <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_fsw <= buf_0_lsu_isa_fsw;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_fld <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_fld <= buf_0_lsu_isa_fld;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_fsd <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_lsu_isa_fsd <= buf_0_lsu_isa_fsd;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_csr_isa_rw <= io_enq_0_bits_csr_isa_rw;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_csr_isa_rw <= buf_0_csr_isa_rw;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_csr_isa_rs <= io_enq_0_bits_csr_isa_rs;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_csr_isa_rs <= buf_0_csr_isa_rs;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_csr_isa_rc <= io_enq_0_bits_csr_isa_rc;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_csr_isa_rc <= buf_0_csr_isa_rc;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_csr_isa_rwi <= io_enq_0_bits_csr_isa_rwi;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_csr_isa_rwi <= buf_0_csr_isa_rwi;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_csr_isa_rsi <= io_enq_0_bits_csr_isa_rsi;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_csr_isa_rsi <= buf_0_csr_isa_rsi;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_csr_isa_rci <= io_enq_0_bits_csr_isa_rci;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_csr_isa_rci <= buf_0_csr_isa_rci;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_mul <= io_enq_0_bits_mul_isa_mul;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_mul <= buf_0_mul_isa_mul;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_mulh <= io_enq_0_bits_mul_isa_mulh;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_mulh <= buf_0_mul_isa_mulh;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_mulhsu <= io_enq_0_bits_mul_isa_mulhsu;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_mulhsu <= buf_0_mul_isa_mulhsu;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_mulhu <= io_enq_0_bits_mul_isa_mulhu;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_mulhu <= buf_0_mul_isa_mulhu;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_div <= io_enq_0_bits_mul_isa_div;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_div <= buf_0_mul_isa_div;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_divu <= io_enq_0_bits_mul_isa_divu;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_divu <= buf_0_mul_isa_divu;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_rem <= io_enq_0_bits_mul_isa_rem;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_rem <= buf_0_mul_isa_rem;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_remu <= io_enq_0_bits_mul_isa_remu;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_remu <= buf_0_mul_isa_remu;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_mulw <= io_enq_0_bits_mul_isa_mulw;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_mulw <= buf_0_mul_isa_mulw;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_divw <= io_enq_0_bits_mul_isa_divw;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_divw <= buf_0_mul_isa_divw;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_divuw <= io_enq_0_bits_mul_isa_divuw;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_divuw <= buf_0_mul_isa_divuw;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_remw <= io_enq_0_bits_mul_isa_remw;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_remw <= buf_0_mul_isa_remw;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_remuw <= io_enq_0_bits_mul_isa_remuw;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_mul_isa_remuw <= buf_0_mul_isa_remuw;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_ecall <= io_enq_0_bits_privil_isa_ecall;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_ecall <= buf_0_privil_isa_ecall;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_ebreak <= io_enq_0_bits_privil_isa_ebreak;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_ebreak <= buf_0_privil_isa_ebreak;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_mret <= io_enq_0_bits_privil_isa_mret;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_mret <= buf_0_privil_isa_mret;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_uret <= io_enq_0_bits_privil_isa_uret;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_uret <= buf_0_privil_isa_uret;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_sret <= io_enq_0_bits_privil_isa_sret;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_sret <= buf_0_privil_isa_sret;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_dret <= io_enq_0_bits_privil_isa_dret;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_dret <= buf_0_privil_isa_dret;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hfence_vvma <= io_enq_0_bits_privil_isa_hfence_vvma;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hfence_vvma <= buf_0_privil_isa_hfence_vvma;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hfence_gvma <= io_enq_0_bits_privil_isa_hfence_gvma;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hfence_gvma <= buf_0_privil_isa_hfence_gvma;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hlv_b <= io_enq_0_bits_privil_isa_hlv_b;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hlv_b <= buf_0_privil_isa_hlv_b;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hlv_bu <= io_enq_0_bits_privil_isa_hlv_bu;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hlv_bu <= buf_0_privil_isa_hlv_bu;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hlv_h <= io_enq_0_bits_privil_isa_hlv_h;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hlv_h <= buf_0_privil_isa_hlv_h;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hlv_hu <= io_enq_0_bits_privil_isa_hlv_hu;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hlv_hu <= buf_0_privil_isa_hlv_hu;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hlvx_hu <= io_enq_0_bits_privil_isa_hlvx_hu;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hlvx_hu <= buf_0_privil_isa_hlvx_hu;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hlv_w <= io_enq_0_bits_privil_isa_hlv_w;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hlv_w <= buf_0_privil_isa_hlv_w;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hlvx_wu <= io_enq_0_bits_privil_isa_hlvx_wu;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hlvx_wu <= buf_0_privil_isa_hlvx_wu;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hsv_b <= io_enq_0_bits_privil_isa_hsv_b;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hsv_b <= buf_0_privil_isa_hsv_b;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hsv_h <= io_enq_0_bits_privil_isa_hsv_h;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hsv_h <= buf_0_privil_isa_hsv_h;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hsv_w <= io_enq_0_bits_privil_isa_hsv_w;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hsv_w <= buf_0_privil_isa_hsv_w;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hlv_wu <= io_enq_0_bits_privil_isa_hlv_wu;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hlv_wu <= buf_0_privil_isa_hlv_wu;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hlv_d <= io_enq_0_bits_privil_isa_hlv_d;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hlv_d <= buf_0_privil_isa_hlv_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hsv_d <= io_enq_0_bits_privil_isa_hsv_d;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_hsv_d <= buf_0_privil_isa_hsv_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_is_access_fault <= io_enq_0_bits_privil_isa_is_access_fault;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_is_access_fault <= buf_0_privil_isa_is_access_fault;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_is_paging_fault <= io_enq_0_bits_privil_isa_is_paging_fault;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_privil_isa_is_paging_fault <= buf_0_privil_isa_is_paging_fault;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmadd_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmadd_s <= buf_0_fpu_isa_fmadd_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmsub_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmsub_s <= buf_0_fpu_isa_fmsub_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fnmsub_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fnmsub_s <= buf_0_fpu_isa_fnmsub_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fnmadd_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fnmadd_s <= buf_0_fpu_isa_fnmadd_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fadd_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fadd_s <= buf_0_fpu_isa_fadd_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fsub_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fsub_s <= buf_0_fpu_isa_fsub_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmul_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmul_s <= buf_0_fpu_isa_fmul_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fdiv_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fdiv_s <= buf_0_fpu_isa_fdiv_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fsqrt_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fsqrt_s <= buf_0_fpu_isa_fsqrt_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fsgnj_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fsgnj_s <= buf_0_fpu_isa_fsgnj_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fsgnjn_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fsgnjn_s <= buf_0_fpu_isa_fsgnjn_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fsgnjx_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fsgnjx_s <= buf_0_fpu_isa_fsgnjx_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmin_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmin_s <= buf_0_fpu_isa_fmin_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmax_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmax_s <= buf_0_fpu_isa_fmax_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_w_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_w_s <= buf_0_fpu_isa_fcvt_w_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_wu_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_wu_s <= buf_0_fpu_isa_fcvt_wu_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmv_x_w <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmv_x_w <= buf_0_fpu_isa_fmv_x_w;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_feq_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_feq_s <= buf_0_fpu_isa_feq_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_flt_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_flt_s <= buf_0_fpu_isa_flt_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fle_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fle_s <= buf_0_fpu_isa_fle_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fclass_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fclass_s <= buf_0_fpu_isa_fclass_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_s_w <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_s_w <= buf_0_fpu_isa_fcvt_s_w;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_s_wu <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_s_wu <= buf_0_fpu_isa_fcvt_s_wu;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmv_w_x <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmv_w_x <= buf_0_fpu_isa_fmv_w_x;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_l_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_l_s <= buf_0_fpu_isa_fcvt_l_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_lu_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_lu_s <= buf_0_fpu_isa_fcvt_lu_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_s_l <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_s_l <= buf_0_fpu_isa_fcvt_s_l;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_s_lu <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_s_lu <= buf_0_fpu_isa_fcvt_s_lu;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmadd_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmadd_d <= buf_0_fpu_isa_fmadd_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmsub_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmsub_d <= buf_0_fpu_isa_fmsub_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fnmsub_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fnmsub_d <= buf_0_fpu_isa_fnmsub_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fnmadd_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fnmadd_d <= buf_0_fpu_isa_fnmadd_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fadd_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fadd_d <= buf_0_fpu_isa_fadd_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fsub_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fsub_d <= buf_0_fpu_isa_fsub_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmul_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmul_d <= buf_0_fpu_isa_fmul_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fdiv_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fdiv_d <= buf_0_fpu_isa_fdiv_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fsqrt_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fsqrt_d <= buf_0_fpu_isa_fsqrt_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fsgnj_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fsgnj_d <= buf_0_fpu_isa_fsgnj_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fsgnjn_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fsgnjn_d <= buf_0_fpu_isa_fsgnjn_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fsgnjx_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fsgnjx_d <= buf_0_fpu_isa_fsgnjx_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmin_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmin_d <= buf_0_fpu_isa_fmin_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmax_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmax_d <= buf_0_fpu_isa_fmax_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_s_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_s_d <= buf_0_fpu_isa_fcvt_s_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_d_s <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_d_s <= buf_0_fpu_isa_fcvt_d_s;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_feq_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_feq_d <= buf_0_fpu_isa_feq_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_flt_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_flt_d <= buf_0_fpu_isa_flt_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fle_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fle_d <= buf_0_fpu_isa_fle_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fclass_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fclass_d <= buf_0_fpu_isa_fclass_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_w_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_w_d <= buf_0_fpu_isa_fcvt_w_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_wu_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_wu_d <= buf_0_fpu_isa_fcvt_wu_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_d_w <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_d_w <= buf_0_fpu_isa_fcvt_d_w;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_d_wu <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_d_wu <= buf_0_fpu_isa_fcvt_d_wu;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_l_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_l_d <= buf_0_fpu_isa_fcvt_l_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_lu_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_lu_d <= buf_0_fpu_isa_fcvt_lu_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmv_x_d <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmv_x_d <= buf_0_fpu_isa_fmv_x_d;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_d_l <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_d_l <= buf_0_fpu_isa_fcvt_d_l;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_d_lu <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcvt_d_lu <= buf_0_fpu_isa_fcvt_d_lu;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmv_d_x <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fmv_d_x <= buf_0_fpu_isa_fmv_d_x;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcsr_rw <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcsr_rw <= buf_0_fpu_isa_fcsr_rw;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcsr_rs <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcsr_rs <= buf_0_fpu_isa_fcsr_rs;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcsr_rc <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcsr_rc <= buf_0_fpu_isa_fcsr_rc;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcsr_rwi <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcsr_rwi <= buf_0_fpu_isa_fcsr_rwi;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcsr_rsi <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcsr_rsi <= buf_0_fpu_isa_fcsr_rsi;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcsr_rci <= 1'h0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_fpu_isa_fcsr_rci <= buf_0_fpu_isa_fcsr_rci;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_param_is_rvc <= io_enq_0_bits_param_is_rvc;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_param_is_rvc <= buf_0_param_is_rvc;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_param_pc <= io_enq_0_bits_param_pc;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_param_pc <= buf_0_param_pc;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_param_imm <= io_enq_0_bits_param_imm;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_param_imm <= buf_0_param_imm;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_param_raw_rs1 <= io_enq_0_bits_param_raw_rs1;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_param_raw_rs1 <= buf_0_param_raw_rs1;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_param_raw_rs2 <= io_enq_0_bits_param_raw_rs2;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_param_raw_rs2 <= buf_0_param_raw_rs2;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_param_raw_rd0 <= io_enq_0_bits_param_raw_rd0;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_param_raw_rd0 <= buf_0_param_raw_rd0;
        end
      end
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 88:54]
    end else if (_T_1) begin // @[MultiPortFifo.scala 98:34]
      if (~_io_deq_0_valid_T[0]) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_0 <= _GEN_6;
      end
    end else begin
      buf_valid_0 <= _GEN_6;
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 88:54]
    end else if (_T_1) begin // @[MultiPortFifo.scala 98:34]
      if (_io_deq_0_valid_T[0]) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_1 <= _GEN_7;
      end
    end else begin
      buf_valid_1 <= _GEN_7;
    end
    if (reset) begin // @[MultiPortFifo.scala 60:27]
      rd_ptr <= 1'h0; // @[MultiPortFifo.scala 60:27]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      rd_ptr <= 1'h0; // @[MultiPortFifo.scala 89:16]
    end else begin
      rd_ptr <= rd_ptr + _T_1; // @[MultiPortFifo.scala 106:16]
    end
    if (reset) begin // @[MultiPortFifo.scala 61:27]
      wr_ptr <= 1'h0; // @[MultiPortFifo.scala 61:27]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      wr_ptr <= 1'h0; // @[MultiPortFifo.scala 90:16]
    end else begin
      wr_ptr <= wr_ptr + _T; // @[MultiPortFifo.scala 107:16]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_0_valid & ~io_enq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_0_valid & ~io_enq_0_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_9 & ~(~(io_deq_0_valid & ~io_deq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! out port illegal\n    at MultiPortFifo.scala:164 assert( !(io.deq(i).valid === true.B && io.deq(j).valid === false.B && i.U >= j.U), \"Assert Fail! out port illegal\")\n"
            ); // @[MultiPortFifo.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_deq_0_valid & ~io_deq_0_valid)) & _T_9) begin
          $fatal; // @[MultiPortFifo.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  buf_0_alu_isa_lui = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  buf_0_alu_isa_auipc = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  buf_0_alu_isa_addi = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  buf_0_alu_isa_addiw = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  buf_0_alu_isa_slti = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  buf_0_alu_isa_sltiu = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  buf_0_alu_isa_xori = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  buf_0_alu_isa_ori = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  buf_0_alu_isa_andi = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  buf_0_alu_isa_slli = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  buf_0_alu_isa_slliw = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  buf_0_alu_isa_srli = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  buf_0_alu_isa_srliw = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  buf_0_alu_isa_srai = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  buf_0_alu_isa_sraiw = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  buf_0_alu_isa_add = _RAND_15[0:0];
  _RAND_16 = {1{`RANDOM}};
  buf_0_alu_isa_addw = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  buf_0_alu_isa_sub = _RAND_17[0:0];
  _RAND_18 = {1{`RANDOM}};
  buf_0_alu_isa_subw = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  buf_0_alu_isa_sll = _RAND_19[0:0];
  _RAND_20 = {1{`RANDOM}};
  buf_0_alu_isa_sllw = _RAND_20[0:0];
  _RAND_21 = {1{`RANDOM}};
  buf_0_alu_isa_slt = _RAND_21[0:0];
  _RAND_22 = {1{`RANDOM}};
  buf_0_alu_isa_sltu = _RAND_22[0:0];
  _RAND_23 = {1{`RANDOM}};
  buf_0_alu_isa_xor = _RAND_23[0:0];
  _RAND_24 = {1{`RANDOM}};
  buf_0_alu_isa_srl = _RAND_24[0:0];
  _RAND_25 = {1{`RANDOM}};
  buf_0_alu_isa_srlw = _RAND_25[0:0];
  _RAND_26 = {1{`RANDOM}};
  buf_0_alu_isa_sra = _RAND_26[0:0];
  _RAND_27 = {1{`RANDOM}};
  buf_0_alu_isa_sraw = _RAND_27[0:0];
  _RAND_28 = {1{`RANDOM}};
  buf_0_alu_isa_or = _RAND_28[0:0];
  _RAND_29 = {1{`RANDOM}};
  buf_0_alu_isa_and = _RAND_29[0:0];
  _RAND_30 = {1{`RANDOM}};
  buf_0_alu_isa_wfi = _RAND_30[0:0];
  _RAND_31 = {1{`RANDOM}};
  buf_0_bru_isa_jal = _RAND_31[0:0];
  _RAND_32 = {1{`RANDOM}};
  buf_0_bru_isa_jalr = _RAND_32[0:0];
  _RAND_33 = {1{`RANDOM}};
  buf_0_bru_isa_beq = _RAND_33[0:0];
  _RAND_34 = {1{`RANDOM}};
  buf_0_bru_isa_bne = _RAND_34[0:0];
  _RAND_35 = {1{`RANDOM}};
  buf_0_bru_isa_blt = _RAND_35[0:0];
  _RAND_36 = {1{`RANDOM}};
  buf_0_bru_isa_bge = _RAND_36[0:0];
  _RAND_37 = {1{`RANDOM}};
  buf_0_bru_isa_bltu = _RAND_37[0:0];
  _RAND_38 = {1{`RANDOM}};
  buf_0_bru_isa_bgeu = _RAND_38[0:0];
  _RAND_39 = {1{`RANDOM}};
  buf_0_lsu_isa_lb = _RAND_39[0:0];
  _RAND_40 = {1{`RANDOM}};
  buf_0_lsu_isa_lh = _RAND_40[0:0];
  _RAND_41 = {1{`RANDOM}};
  buf_0_lsu_isa_lw = _RAND_41[0:0];
  _RAND_42 = {1{`RANDOM}};
  buf_0_lsu_isa_ld = _RAND_42[0:0];
  _RAND_43 = {1{`RANDOM}};
  buf_0_lsu_isa_lbu = _RAND_43[0:0];
  _RAND_44 = {1{`RANDOM}};
  buf_0_lsu_isa_lhu = _RAND_44[0:0];
  _RAND_45 = {1{`RANDOM}};
  buf_0_lsu_isa_lwu = _RAND_45[0:0];
  _RAND_46 = {1{`RANDOM}};
  buf_0_lsu_isa_sb = _RAND_46[0:0];
  _RAND_47 = {1{`RANDOM}};
  buf_0_lsu_isa_sh = _RAND_47[0:0];
  _RAND_48 = {1{`RANDOM}};
  buf_0_lsu_isa_sw = _RAND_48[0:0];
  _RAND_49 = {1{`RANDOM}};
  buf_0_lsu_isa_sd = _RAND_49[0:0];
  _RAND_50 = {1{`RANDOM}};
  buf_0_lsu_isa_fence = _RAND_50[0:0];
  _RAND_51 = {1{`RANDOM}};
  buf_0_lsu_isa_fence_i = _RAND_51[0:0];
  _RAND_52 = {1{`RANDOM}};
  buf_0_lsu_isa_sfence_vma = _RAND_52[0:0];
  _RAND_53 = {1{`RANDOM}};
  buf_0_lsu_isa_lr_w = _RAND_53[0:0];
  _RAND_54 = {1{`RANDOM}};
  buf_0_lsu_isa_sc_w = _RAND_54[0:0];
  _RAND_55 = {1{`RANDOM}};
  buf_0_lsu_isa_amoswap_w = _RAND_55[0:0];
  _RAND_56 = {1{`RANDOM}};
  buf_0_lsu_isa_amoadd_w = _RAND_56[0:0];
  _RAND_57 = {1{`RANDOM}};
  buf_0_lsu_isa_amoxor_w = _RAND_57[0:0];
  _RAND_58 = {1{`RANDOM}};
  buf_0_lsu_isa_amoand_w = _RAND_58[0:0];
  _RAND_59 = {1{`RANDOM}};
  buf_0_lsu_isa_amoor_w = _RAND_59[0:0];
  _RAND_60 = {1{`RANDOM}};
  buf_0_lsu_isa_amomin_w = _RAND_60[0:0];
  _RAND_61 = {1{`RANDOM}};
  buf_0_lsu_isa_amomax_w = _RAND_61[0:0];
  _RAND_62 = {1{`RANDOM}};
  buf_0_lsu_isa_amominu_w = _RAND_62[0:0];
  _RAND_63 = {1{`RANDOM}};
  buf_0_lsu_isa_amomaxu_w = _RAND_63[0:0];
  _RAND_64 = {1{`RANDOM}};
  buf_0_lsu_isa_lr_d = _RAND_64[0:0];
  _RAND_65 = {1{`RANDOM}};
  buf_0_lsu_isa_sc_d = _RAND_65[0:0];
  _RAND_66 = {1{`RANDOM}};
  buf_0_lsu_isa_amoswap_d = _RAND_66[0:0];
  _RAND_67 = {1{`RANDOM}};
  buf_0_lsu_isa_amoadd_d = _RAND_67[0:0];
  _RAND_68 = {1{`RANDOM}};
  buf_0_lsu_isa_amoxor_d = _RAND_68[0:0];
  _RAND_69 = {1{`RANDOM}};
  buf_0_lsu_isa_amoand_d = _RAND_69[0:0];
  _RAND_70 = {1{`RANDOM}};
  buf_0_lsu_isa_amoor_d = _RAND_70[0:0];
  _RAND_71 = {1{`RANDOM}};
  buf_0_lsu_isa_amomin_d = _RAND_71[0:0];
  _RAND_72 = {1{`RANDOM}};
  buf_0_lsu_isa_amomax_d = _RAND_72[0:0];
  _RAND_73 = {1{`RANDOM}};
  buf_0_lsu_isa_amominu_d = _RAND_73[0:0];
  _RAND_74 = {1{`RANDOM}};
  buf_0_lsu_isa_amomaxu_d = _RAND_74[0:0];
  _RAND_75 = {1{`RANDOM}};
  buf_0_lsu_isa_flw = _RAND_75[0:0];
  _RAND_76 = {1{`RANDOM}};
  buf_0_lsu_isa_fsw = _RAND_76[0:0];
  _RAND_77 = {1{`RANDOM}};
  buf_0_lsu_isa_fld = _RAND_77[0:0];
  _RAND_78 = {1{`RANDOM}};
  buf_0_lsu_isa_fsd = _RAND_78[0:0];
  _RAND_79 = {1{`RANDOM}};
  buf_0_csr_isa_rw = _RAND_79[0:0];
  _RAND_80 = {1{`RANDOM}};
  buf_0_csr_isa_rs = _RAND_80[0:0];
  _RAND_81 = {1{`RANDOM}};
  buf_0_csr_isa_rc = _RAND_81[0:0];
  _RAND_82 = {1{`RANDOM}};
  buf_0_csr_isa_rwi = _RAND_82[0:0];
  _RAND_83 = {1{`RANDOM}};
  buf_0_csr_isa_rsi = _RAND_83[0:0];
  _RAND_84 = {1{`RANDOM}};
  buf_0_csr_isa_rci = _RAND_84[0:0];
  _RAND_85 = {1{`RANDOM}};
  buf_0_mul_isa_mul = _RAND_85[0:0];
  _RAND_86 = {1{`RANDOM}};
  buf_0_mul_isa_mulh = _RAND_86[0:0];
  _RAND_87 = {1{`RANDOM}};
  buf_0_mul_isa_mulhsu = _RAND_87[0:0];
  _RAND_88 = {1{`RANDOM}};
  buf_0_mul_isa_mulhu = _RAND_88[0:0];
  _RAND_89 = {1{`RANDOM}};
  buf_0_mul_isa_div = _RAND_89[0:0];
  _RAND_90 = {1{`RANDOM}};
  buf_0_mul_isa_divu = _RAND_90[0:0];
  _RAND_91 = {1{`RANDOM}};
  buf_0_mul_isa_rem = _RAND_91[0:0];
  _RAND_92 = {1{`RANDOM}};
  buf_0_mul_isa_remu = _RAND_92[0:0];
  _RAND_93 = {1{`RANDOM}};
  buf_0_mul_isa_mulw = _RAND_93[0:0];
  _RAND_94 = {1{`RANDOM}};
  buf_0_mul_isa_divw = _RAND_94[0:0];
  _RAND_95 = {1{`RANDOM}};
  buf_0_mul_isa_divuw = _RAND_95[0:0];
  _RAND_96 = {1{`RANDOM}};
  buf_0_mul_isa_remw = _RAND_96[0:0];
  _RAND_97 = {1{`RANDOM}};
  buf_0_mul_isa_remuw = _RAND_97[0:0];
  _RAND_98 = {1{`RANDOM}};
  buf_0_privil_isa_ecall = _RAND_98[0:0];
  _RAND_99 = {1{`RANDOM}};
  buf_0_privil_isa_ebreak = _RAND_99[0:0];
  _RAND_100 = {1{`RANDOM}};
  buf_0_privil_isa_mret = _RAND_100[0:0];
  _RAND_101 = {1{`RANDOM}};
  buf_0_privil_isa_uret = _RAND_101[0:0];
  _RAND_102 = {1{`RANDOM}};
  buf_0_privil_isa_sret = _RAND_102[0:0];
  _RAND_103 = {1{`RANDOM}};
  buf_0_privil_isa_dret = _RAND_103[0:0];
  _RAND_104 = {1{`RANDOM}};
  buf_0_privil_isa_hfence_vvma = _RAND_104[0:0];
  _RAND_105 = {1{`RANDOM}};
  buf_0_privil_isa_hfence_gvma = _RAND_105[0:0];
  _RAND_106 = {1{`RANDOM}};
  buf_0_privil_isa_hlv_b = _RAND_106[0:0];
  _RAND_107 = {1{`RANDOM}};
  buf_0_privil_isa_hlv_bu = _RAND_107[0:0];
  _RAND_108 = {1{`RANDOM}};
  buf_0_privil_isa_hlv_h = _RAND_108[0:0];
  _RAND_109 = {1{`RANDOM}};
  buf_0_privil_isa_hlv_hu = _RAND_109[0:0];
  _RAND_110 = {1{`RANDOM}};
  buf_0_privil_isa_hlvx_hu = _RAND_110[0:0];
  _RAND_111 = {1{`RANDOM}};
  buf_0_privil_isa_hlv_w = _RAND_111[0:0];
  _RAND_112 = {1{`RANDOM}};
  buf_0_privil_isa_hlvx_wu = _RAND_112[0:0];
  _RAND_113 = {1{`RANDOM}};
  buf_0_privil_isa_hsv_b = _RAND_113[0:0];
  _RAND_114 = {1{`RANDOM}};
  buf_0_privil_isa_hsv_h = _RAND_114[0:0];
  _RAND_115 = {1{`RANDOM}};
  buf_0_privil_isa_hsv_w = _RAND_115[0:0];
  _RAND_116 = {1{`RANDOM}};
  buf_0_privil_isa_hlv_wu = _RAND_116[0:0];
  _RAND_117 = {1{`RANDOM}};
  buf_0_privil_isa_hlv_d = _RAND_117[0:0];
  _RAND_118 = {1{`RANDOM}};
  buf_0_privil_isa_hsv_d = _RAND_118[0:0];
  _RAND_119 = {1{`RANDOM}};
  buf_0_privil_isa_is_access_fault = _RAND_119[0:0];
  _RAND_120 = {1{`RANDOM}};
  buf_0_privil_isa_is_paging_fault = _RAND_120[0:0];
  _RAND_121 = {1{`RANDOM}};
  buf_0_fpu_isa_fmadd_s = _RAND_121[0:0];
  _RAND_122 = {1{`RANDOM}};
  buf_0_fpu_isa_fmsub_s = _RAND_122[0:0];
  _RAND_123 = {1{`RANDOM}};
  buf_0_fpu_isa_fnmsub_s = _RAND_123[0:0];
  _RAND_124 = {1{`RANDOM}};
  buf_0_fpu_isa_fnmadd_s = _RAND_124[0:0];
  _RAND_125 = {1{`RANDOM}};
  buf_0_fpu_isa_fadd_s = _RAND_125[0:0];
  _RAND_126 = {1{`RANDOM}};
  buf_0_fpu_isa_fsub_s = _RAND_126[0:0];
  _RAND_127 = {1{`RANDOM}};
  buf_0_fpu_isa_fmul_s = _RAND_127[0:0];
  _RAND_128 = {1{`RANDOM}};
  buf_0_fpu_isa_fdiv_s = _RAND_128[0:0];
  _RAND_129 = {1{`RANDOM}};
  buf_0_fpu_isa_fsqrt_s = _RAND_129[0:0];
  _RAND_130 = {1{`RANDOM}};
  buf_0_fpu_isa_fsgnj_s = _RAND_130[0:0];
  _RAND_131 = {1{`RANDOM}};
  buf_0_fpu_isa_fsgnjn_s = _RAND_131[0:0];
  _RAND_132 = {1{`RANDOM}};
  buf_0_fpu_isa_fsgnjx_s = _RAND_132[0:0];
  _RAND_133 = {1{`RANDOM}};
  buf_0_fpu_isa_fmin_s = _RAND_133[0:0];
  _RAND_134 = {1{`RANDOM}};
  buf_0_fpu_isa_fmax_s = _RAND_134[0:0];
  _RAND_135 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_w_s = _RAND_135[0:0];
  _RAND_136 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_wu_s = _RAND_136[0:0];
  _RAND_137 = {1{`RANDOM}};
  buf_0_fpu_isa_fmv_x_w = _RAND_137[0:0];
  _RAND_138 = {1{`RANDOM}};
  buf_0_fpu_isa_feq_s = _RAND_138[0:0];
  _RAND_139 = {1{`RANDOM}};
  buf_0_fpu_isa_flt_s = _RAND_139[0:0];
  _RAND_140 = {1{`RANDOM}};
  buf_0_fpu_isa_fle_s = _RAND_140[0:0];
  _RAND_141 = {1{`RANDOM}};
  buf_0_fpu_isa_fclass_s = _RAND_141[0:0];
  _RAND_142 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_s_w = _RAND_142[0:0];
  _RAND_143 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_s_wu = _RAND_143[0:0];
  _RAND_144 = {1{`RANDOM}};
  buf_0_fpu_isa_fmv_w_x = _RAND_144[0:0];
  _RAND_145 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_l_s = _RAND_145[0:0];
  _RAND_146 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_lu_s = _RAND_146[0:0];
  _RAND_147 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_s_l = _RAND_147[0:0];
  _RAND_148 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_s_lu = _RAND_148[0:0];
  _RAND_149 = {1{`RANDOM}};
  buf_0_fpu_isa_fmadd_d = _RAND_149[0:0];
  _RAND_150 = {1{`RANDOM}};
  buf_0_fpu_isa_fmsub_d = _RAND_150[0:0];
  _RAND_151 = {1{`RANDOM}};
  buf_0_fpu_isa_fnmsub_d = _RAND_151[0:0];
  _RAND_152 = {1{`RANDOM}};
  buf_0_fpu_isa_fnmadd_d = _RAND_152[0:0];
  _RAND_153 = {1{`RANDOM}};
  buf_0_fpu_isa_fadd_d = _RAND_153[0:0];
  _RAND_154 = {1{`RANDOM}};
  buf_0_fpu_isa_fsub_d = _RAND_154[0:0];
  _RAND_155 = {1{`RANDOM}};
  buf_0_fpu_isa_fmul_d = _RAND_155[0:0];
  _RAND_156 = {1{`RANDOM}};
  buf_0_fpu_isa_fdiv_d = _RAND_156[0:0];
  _RAND_157 = {1{`RANDOM}};
  buf_0_fpu_isa_fsqrt_d = _RAND_157[0:0];
  _RAND_158 = {1{`RANDOM}};
  buf_0_fpu_isa_fsgnj_d = _RAND_158[0:0];
  _RAND_159 = {1{`RANDOM}};
  buf_0_fpu_isa_fsgnjn_d = _RAND_159[0:0];
  _RAND_160 = {1{`RANDOM}};
  buf_0_fpu_isa_fsgnjx_d = _RAND_160[0:0];
  _RAND_161 = {1{`RANDOM}};
  buf_0_fpu_isa_fmin_d = _RAND_161[0:0];
  _RAND_162 = {1{`RANDOM}};
  buf_0_fpu_isa_fmax_d = _RAND_162[0:0];
  _RAND_163 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_s_d = _RAND_163[0:0];
  _RAND_164 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_d_s = _RAND_164[0:0];
  _RAND_165 = {1{`RANDOM}};
  buf_0_fpu_isa_feq_d = _RAND_165[0:0];
  _RAND_166 = {1{`RANDOM}};
  buf_0_fpu_isa_flt_d = _RAND_166[0:0];
  _RAND_167 = {1{`RANDOM}};
  buf_0_fpu_isa_fle_d = _RAND_167[0:0];
  _RAND_168 = {1{`RANDOM}};
  buf_0_fpu_isa_fclass_d = _RAND_168[0:0];
  _RAND_169 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_w_d = _RAND_169[0:0];
  _RAND_170 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_wu_d = _RAND_170[0:0];
  _RAND_171 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_d_w = _RAND_171[0:0];
  _RAND_172 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_d_wu = _RAND_172[0:0];
  _RAND_173 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_l_d = _RAND_173[0:0];
  _RAND_174 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_lu_d = _RAND_174[0:0];
  _RAND_175 = {1{`RANDOM}};
  buf_0_fpu_isa_fmv_x_d = _RAND_175[0:0];
  _RAND_176 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_d_l = _RAND_176[0:0];
  _RAND_177 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_d_lu = _RAND_177[0:0];
  _RAND_178 = {1{`RANDOM}};
  buf_0_fpu_isa_fmv_d_x = _RAND_178[0:0];
  _RAND_179 = {1{`RANDOM}};
  buf_0_fpu_isa_fcsr_rw = _RAND_179[0:0];
  _RAND_180 = {1{`RANDOM}};
  buf_0_fpu_isa_fcsr_rs = _RAND_180[0:0];
  _RAND_181 = {1{`RANDOM}};
  buf_0_fpu_isa_fcsr_rc = _RAND_181[0:0];
  _RAND_182 = {1{`RANDOM}};
  buf_0_fpu_isa_fcsr_rwi = _RAND_182[0:0];
  _RAND_183 = {1{`RANDOM}};
  buf_0_fpu_isa_fcsr_rsi = _RAND_183[0:0];
  _RAND_184 = {1{`RANDOM}};
  buf_0_fpu_isa_fcsr_rci = _RAND_184[0:0];
  _RAND_185 = {1{`RANDOM}};
  buf_0_param_is_rvc = _RAND_185[0:0];
  _RAND_186 = {2{`RANDOM}};
  buf_0_param_pc = _RAND_186[38:0];
  _RAND_187 = {2{`RANDOM}};
  buf_0_param_imm = _RAND_187[63:0];
  _RAND_188 = {1{`RANDOM}};
  buf_0_param_raw_rs1 = _RAND_188[4:0];
  _RAND_189 = {1{`RANDOM}};
  buf_0_param_raw_rs2 = _RAND_189[4:0];
  _RAND_190 = {1{`RANDOM}};
  buf_0_param_raw_rd0 = _RAND_190[4:0];
  _RAND_191 = {1{`RANDOM}};
  buf_1_alu_isa_lui = _RAND_191[0:0];
  _RAND_192 = {1{`RANDOM}};
  buf_1_alu_isa_auipc = _RAND_192[0:0];
  _RAND_193 = {1{`RANDOM}};
  buf_1_alu_isa_addi = _RAND_193[0:0];
  _RAND_194 = {1{`RANDOM}};
  buf_1_alu_isa_addiw = _RAND_194[0:0];
  _RAND_195 = {1{`RANDOM}};
  buf_1_alu_isa_slti = _RAND_195[0:0];
  _RAND_196 = {1{`RANDOM}};
  buf_1_alu_isa_sltiu = _RAND_196[0:0];
  _RAND_197 = {1{`RANDOM}};
  buf_1_alu_isa_xori = _RAND_197[0:0];
  _RAND_198 = {1{`RANDOM}};
  buf_1_alu_isa_ori = _RAND_198[0:0];
  _RAND_199 = {1{`RANDOM}};
  buf_1_alu_isa_andi = _RAND_199[0:0];
  _RAND_200 = {1{`RANDOM}};
  buf_1_alu_isa_slli = _RAND_200[0:0];
  _RAND_201 = {1{`RANDOM}};
  buf_1_alu_isa_slliw = _RAND_201[0:0];
  _RAND_202 = {1{`RANDOM}};
  buf_1_alu_isa_srli = _RAND_202[0:0];
  _RAND_203 = {1{`RANDOM}};
  buf_1_alu_isa_srliw = _RAND_203[0:0];
  _RAND_204 = {1{`RANDOM}};
  buf_1_alu_isa_srai = _RAND_204[0:0];
  _RAND_205 = {1{`RANDOM}};
  buf_1_alu_isa_sraiw = _RAND_205[0:0];
  _RAND_206 = {1{`RANDOM}};
  buf_1_alu_isa_add = _RAND_206[0:0];
  _RAND_207 = {1{`RANDOM}};
  buf_1_alu_isa_addw = _RAND_207[0:0];
  _RAND_208 = {1{`RANDOM}};
  buf_1_alu_isa_sub = _RAND_208[0:0];
  _RAND_209 = {1{`RANDOM}};
  buf_1_alu_isa_subw = _RAND_209[0:0];
  _RAND_210 = {1{`RANDOM}};
  buf_1_alu_isa_sll = _RAND_210[0:0];
  _RAND_211 = {1{`RANDOM}};
  buf_1_alu_isa_sllw = _RAND_211[0:0];
  _RAND_212 = {1{`RANDOM}};
  buf_1_alu_isa_slt = _RAND_212[0:0];
  _RAND_213 = {1{`RANDOM}};
  buf_1_alu_isa_sltu = _RAND_213[0:0];
  _RAND_214 = {1{`RANDOM}};
  buf_1_alu_isa_xor = _RAND_214[0:0];
  _RAND_215 = {1{`RANDOM}};
  buf_1_alu_isa_srl = _RAND_215[0:0];
  _RAND_216 = {1{`RANDOM}};
  buf_1_alu_isa_srlw = _RAND_216[0:0];
  _RAND_217 = {1{`RANDOM}};
  buf_1_alu_isa_sra = _RAND_217[0:0];
  _RAND_218 = {1{`RANDOM}};
  buf_1_alu_isa_sraw = _RAND_218[0:0];
  _RAND_219 = {1{`RANDOM}};
  buf_1_alu_isa_or = _RAND_219[0:0];
  _RAND_220 = {1{`RANDOM}};
  buf_1_alu_isa_and = _RAND_220[0:0];
  _RAND_221 = {1{`RANDOM}};
  buf_1_alu_isa_wfi = _RAND_221[0:0];
  _RAND_222 = {1{`RANDOM}};
  buf_1_bru_isa_jal = _RAND_222[0:0];
  _RAND_223 = {1{`RANDOM}};
  buf_1_bru_isa_jalr = _RAND_223[0:0];
  _RAND_224 = {1{`RANDOM}};
  buf_1_bru_isa_beq = _RAND_224[0:0];
  _RAND_225 = {1{`RANDOM}};
  buf_1_bru_isa_bne = _RAND_225[0:0];
  _RAND_226 = {1{`RANDOM}};
  buf_1_bru_isa_blt = _RAND_226[0:0];
  _RAND_227 = {1{`RANDOM}};
  buf_1_bru_isa_bge = _RAND_227[0:0];
  _RAND_228 = {1{`RANDOM}};
  buf_1_bru_isa_bltu = _RAND_228[0:0];
  _RAND_229 = {1{`RANDOM}};
  buf_1_bru_isa_bgeu = _RAND_229[0:0];
  _RAND_230 = {1{`RANDOM}};
  buf_1_lsu_isa_lb = _RAND_230[0:0];
  _RAND_231 = {1{`RANDOM}};
  buf_1_lsu_isa_lh = _RAND_231[0:0];
  _RAND_232 = {1{`RANDOM}};
  buf_1_lsu_isa_lw = _RAND_232[0:0];
  _RAND_233 = {1{`RANDOM}};
  buf_1_lsu_isa_ld = _RAND_233[0:0];
  _RAND_234 = {1{`RANDOM}};
  buf_1_lsu_isa_lbu = _RAND_234[0:0];
  _RAND_235 = {1{`RANDOM}};
  buf_1_lsu_isa_lhu = _RAND_235[0:0];
  _RAND_236 = {1{`RANDOM}};
  buf_1_lsu_isa_lwu = _RAND_236[0:0];
  _RAND_237 = {1{`RANDOM}};
  buf_1_lsu_isa_sb = _RAND_237[0:0];
  _RAND_238 = {1{`RANDOM}};
  buf_1_lsu_isa_sh = _RAND_238[0:0];
  _RAND_239 = {1{`RANDOM}};
  buf_1_lsu_isa_sw = _RAND_239[0:0];
  _RAND_240 = {1{`RANDOM}};
  buf_1_lsu_isa_sd = _RAND_240[0:0];
  _RAND_241 = {1{`RANDOM}};
  buf_1_lsu_isa_fence = _RAND_241[0:0];
  _RAND_242 = {1{`RANDOM}};
  buf_1_lsu_isa_fence_i = _RAND_242[0:0];
  _RAND_243 = {1{`RANDOM}};
  buf_1_lsu_isa_sfence_vma = _RAND_243[0:0];
  _RAND_244 = {1{`RANDOM}};
  buf_1_lsu_isa_lr_w = _RAND_244[0:0];
  _RAND_245 = {1{`RANDOM}};
  buf_1_lsu_isa_sc_w = _RAND_245[0:0];
  _RAND_246 = {1{`RANDOM}};
  buf_1_lsu_isa_amoswap_w = _RAND_246[0:0];
  _RAND_247 = {1{`RANDOM}};
  buf_1_lsu_isa_amoadd_w = _RAND_247[0:0];
  _RAND_248 = {1{`RANDOM}};
  buf_1_lsu_isa_amoxor_w = _RAND_248[0:0];
  _RAND_249 = {1{`RANDOM}};
  buf_1_lsu_isa_amoand_w = _RAND_249[0:0];
  _RAND_250 = {1{`RANDOM}};
  buf_1_lsu_isa_amoor_w = _RAND_250[0:0];
  _RAND_251 = {1{`RANDOM}};
  buf_1_lsu_isa_amomin_w = _RAND_251[0:0];
  _RAND_252 = {1{`RANDOM}};
  buf_1_lsu_isa_amomax_w = _RAND_252[0:0];
  _RAND_253 = {1{`RANDOM}};
  buf_1_lsu_isa_amominu_w = _RAND_253[0:0];
  _RAND_254 = {1{`RANDOM}};
  buf_1_lsu_isa_amomaxu_w = _RAND_254[0:0];
  _RAND_255 = {1{`RANDOM}};
  buf_1_lsu_isa_lr_d = _RAND_255[0:0];
  _RAND_256 = {1{`RANDOM}};
  buf_1_lsu_isa_sc_d = _RAND_256[0:0];
  _RAND_257 = {1{`RANDOM}};
  buf_1_lsu_isa_amoswap_d = _RAND_257[0:0];
  _RAND_258 = {1{`RANDOM}};
  buf_1_lsu_isa_amoadd_d = _RAND_258[0:0];
  _RAND_259 = {1{`RANDOM}};
  buf_1_lsu_isa_amoxor_d = _RAND_259[0:0];
  _RAND_260 = {1{`RANDOM}};
  buf_1_lsu_isa_amoand_d = _RAND_260[0:0];
  _RAND_261 = {1{`RANDOM}};
  buf_1_lsu_isa_amoor_d = _RAND_261[0:0];
  _RAND_262 = {1{`RANDOM}};
  buf_1_lsu_isa_amomin_d = _RAND_262[0:0];
  _RAND_263 = {1{`RANDOM}};
  buf_1_lsu_isa_amomax_d = _RAND_263[0:0];
  _RAND_264 = {1{`RANDOM}};
  buf_1_lsu_isa_amominu_d = _RAND_264[0:0];
  _RAND_265 = {1{`RANDOM}};
  buf_1_lsu_isa_amomaxu_d = _RAND_265[0:0];
  _RAND_266 = {1{`RANDOM}};
  buf_1_lsu_isa_flw = _RAND_266[0:0];
  _RAND_267 = {1{`RANDOM}};
  buf_1_lsu_isa_fsw = _RAND_267[0:0];
  _RAND_268 = {1{`RANDOM}};
  buf_1_lsu_isa_fld = _RAND_268[0:0];
  _RAND_269 = {1{`RANDOM}};
  buf_1_lsu_isa_fsd = _RAND_269[0:0];
  _RAND_270 = {1{`RANDOM}};
  buf_1_csr_isa_rw = _RAND_270[0:0];
  _RAND_271 = {1{`RANDOM}};
  buf_1_csr_isa_rs = _RAND_271[0:0];
  _RAND_272 = {1{`RANDOM}};
  buf_1_csr_isa_rc = _RAND_272[0:0];
  _RAND_273 = {1{`RANDOM}};
  buf_1_csr_isa_rwi = _RAND_273[0:0];
  _RAND_274 = {1{`RANDOM}};
  buf_1_csr_isa_rsi = _RAND_274[0:0];
  _RAND_275 = {1{`RANDOM}};
  buf_1_csr_isa_rci = _RAND_275[0:0];
  _RAND_276 = {1{`RANDOM}};
  buf_1_mul_isa_mul = _RAND_276[0:0];
  _RAND_277 = {1{`RANDOM}};
  buf_1_mul_isa_mulh = _RAND_277[0:0];
  _RAND_278 = {1{`RANDOM}};
  buf_1_mul_isa_mulhsu = _RAND_278[0:0];
  _RAND_279 = {1{`RANDOM}};
  buf_1_mul_isa_mulhu = _RAND_279[0:0];
  _RAND_280 = {1{`RANDOM}};
  buf_1_mul_isa_div = _RAND_280[0:0];
  _RAND_281 = {1{`RANDOM}};
  buf_1_mul_isa_divu = _RAND_281[0:0];
  _RAND_282 = {1{`RANDOM}};
  buf_1_mul_isa_rem = _RAND_282[0:0];
  _RAND_283 = {1{`RANDOM}};
  buf_1_mul_isa_remu = _RAND_283[0:0];
  _RAND_284 = {1{`RANDOM}};
  buf_1_mul_isa_mulw = _RAND_284[0:0];
  _RAND_285 = {1{`RANDOM}};
  buf_1_mul_isa_divw = _RAND_285[0:0];
  _RAND_286 = {1{`RANDOM}};
  buf_1_mul_isa_divuw = _RAND_286[0:0];
  _RAND_287 = {1{`RANDOM}};
  buf_1_mul_isa_remw = _RAND_287[0:0];
  _RAND_288 = {1{`RANDOM}};
  buf_1_mul_isa_remuw = _RAND_288[0:0];
  _RAND_289 = {1{`RANDOM}};
  buf_1_privil_isa_ecall = _RAND_289[0:0];
  _RAND_290 = {1{`RANDOM}};
  buf_1_privil_isa_ebreak = _RAND_290[0:0];
  _RAND_291 = {1{`RANDOM}};
  buf_1_privil_isa_mret = _RAND_291[0:0];
  _RAND_292 = {1{`RANDOM}};
  buf_1_privil_isa_uret = _RAND_292[0:0];
  _RAND_293 = {1{`RANDOM}};
  buf_1_privil_isa_sret = _RAND_293[0:0];
  _RAND_294 = {1{`RANDOM}};
  buf_1_privil_isa_dret = _RAND_294[0:0];
  _RAND_295 = {1{`RANDOM}};
  buf_1_privil_isa_hfence_vvma = _RAND_295[0:0];
  _RAND_296 = {1{`RANDOM}};
  buf_1_privil_isa_hfence_gvma = _RAND_296[0:0];
  _RAND_297 = {1{`RANDOM}};
  buf_1_privil_isa_hlv_b = _RAND_297[0:0];
  _RAND_298 = {1{`RANDOM}};
  buf_1_privil_isa_hlv_bu = _RAND_298[0:0];
  _RAND_299 = {1{`RANDOM}};
  buf_1_privil_isa_hlv_h = _RAND_299[0:0];
  _RAND_300 = {1{`RANDOM}};
  buf_1_privil_isa_hlv_hu = _RAND_300[0:0];
  _RAND_301 = {1{`RANDOM}};
  buf_1_privil_isa_hlvx_hu = _RAND_301[0:0];
  _RAND_302 = {1{`RANDOM}};
  buf_1_privil_isa_hlv_w = _RAND_302[0:0];
  _RAND_303 = {1{`RANDOM}};
  buf_1_privil_isa_hlvx_wu = _RAND_303[0:0];
  _RAND_304 = {1{`RANDOM}};
  buf_1_privil_isa_hsv_b = _RAND_304[0:0];
  _RAND_305 = {1{`RANDOM}};
  buf_1_privil_isa_hsv_h = _RAND_305[0:0];
  _RAND_306 = {1{`RANDOM}};
  buf_1_privil_isa_hsv_w = _RAND_306[0:0];
  _RAND_307 = {1{`RANDOM}};
  buf_1_privil_isa_hlv_wu = _RAND_307[0:0];
  _RAND_308 = {1{`RANDOM}};
  buf_1_privil_isa_hlv_d = _RAND_308[0:0];
  _RAND_309 = {1{`RANDOM}};
  buf_1_privil_isa_hsv_d = _RAND_309[0:0];
  _RAND_310 = {1{`RANDOM}};
  buf_1_privil_isa_is_access_fault = _RAND_310[0:0];
  _RAND_311 = {1{`RANDOM}};
  buf_1_privil_isa_is_paging_fault = _RAND_311[0:0];
  _RAND_312 = {1{`RANDOM}};
  buf_1_fpu_isa_fmadd_s = _RAND_312[0:0];
  _RAND_313 = {1{`RANDOM}};
  buf_1_fpu_isa_fmsub_s = _RAND_313[0:0];
  _RAND_314 = {1{`RANDOM}};
  buf_1_fpu_isa_fnmsub_s = _RAND_314[0:0];
  _RAND_315 = {1{`RANDOM}};
  buf_1_fpu_isa_fnmadd_s = _RAND_315[0:0];
  _RAND_316 = {1{`RANDOM}};
  buf_1_fpu_isa_fadd_s = _RAND_316[0:0];
  _RAND_317 = {1{`RANDOM}};
  buf_1_fpu_isa_fsub_s = _RAND_317[0:0];
  _RAND_318 = {1{`RANDOM}};
  buf_1_fpu_isa_fmul_s = _RAND_318[0:0];
  _RAND_319 = {1{`RANDOM}};
  buf_1_fpu_isa_fdiv_s = _RAND_319[0:0];
  _RAND_320 = {1{`RANDOM}};
  buf_1_fpu_isa_fsqrt_s = _RAND_320[0:0];
  _RAND_321 = {1{`RANDOM}};
  buf_1_fpu_isa_fsgnj_s = _RAND_321[0:0];
  _RAND_322 = {1{`RANDOM}};
  buf_1_fpu_isa_fsgnjn_s = _RAND_322[0:0];
  _RAND_323 = {1{`RANDOM}};
  buf_1_fpu_isa_fsgnjx_s = _RAND_323[0:0];
  _RAND_324 = {1{`RANDOM}};
  buf_1_fpu_isa_fmin_s = _RAND_324[0:0];
  _RAND_325 = {1{`RANDOM}};
  buf_1_fpu_isa_fmax_s = _RAND_325[0:0];
  _RAND_326 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_w_s = _RAND_326[0:0];
  _RAND_327 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_wu_s = _RAND_327[0:0];
  _RAND_328 = {1{`RANDOM}};
  buf_1_fpu_isa_fmv_x_w = _RAND_328[0:0];
  _RAND_329 = {1{`RANDOM}};
  buf_1_fpu_isa_feq_s = _RAND_329[0:0];
  _RAND_330 = {1{`RANDOM}};
  buf_1_fpu_isa_flt_s = _RAND_330[0:0];
  _RAND_331 = {1{`RANDOM}};
  buf_1_fpu_isa_fle_s = _RAND_331[0:0];
  _RAND_332 = {1{`RANDOM}};
  buf_1_fpu_isa_fclass_s = _RAND_332[0:0];
  _RAND_333 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_s_w = _RAND_333[0:0];
  _RAND_334 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_s_wu = _RAND_334[0:0];
  _RAND_335 = {1{`RANDOM}};
  buf_1_fpu_isa_fmv_w_x = _RAND_335[0:0];
  _RAND_336 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_l_s = _RAND_336[0:0];
  _RAND_337 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_lu_s = _RAND_337[0:0];
  _RAND_338 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_s_l = _RAND_338[0:0];
  _RAND_339 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_s_lu = _RAND_339[0:0];
  _RAND_340 = {1{`RANDOM}};
  buf_1_fpu_isa_fmadd_d = _RAND_340[0:0];
  _RAND_341 = {1{`RANDOM}};
  buf_1_fpu_isa_fmsub_d = _RAND_341[0:0];
  _RAND_342 = {1{`RANDOM}};
  buf_1_fpu_isa_fnmsub_d = _RAND_342[0:0];
  _RAND_343 = {1{`RANDOM}};
  buf_1_fpu_isa_fnmadd_d = _RAND_343[0:0];
  _RAND_344 = {1{`RANDOM}};
  buf_1_fpu_isa_fadd_d = _RAND_344[0:0];
  _RAND_345 = {1{`RANDOM}};
  buf_1_fpu_isa_fsub_d = _RAND_345[0:0];
  _RAND_346 = {1{`RANDOM}};
  buf_1_fpu_isa_fmul_d = _RAND_346[0:0];
  _RAND_347 = {1{`RANDOM}};
  buf_1_fpu_isa_fdiv_d = _RAND_347[0:0];
  _RAND_348 = {1{`RANDOM}};
  buf_1_fpu_isa_fsqrt_d = _RAND_348[0:0];
  _RAND_349 = {1{`RANDOM}};
  buf_1_fpu_isa_fsgnj_d = _RAND_349[0:0];
  _RAND_350 = {1{`RANDOM}};
  buf_1_fpu_isa_fsgnjn_d = _RAND_350[0:0];
  _RAND_351 = {1{`RANDOM}};
  buf_1_fpu_isa_fsgnjx_d = _RAND_351[0:0];
  _RAND_352 = {1{`RANDOM}};
  buf_1_fpu_isa_fmin_d = _RAND_352[0:0];
  _RAND_353 = {1{`RANDOM}};
  buf_1_fpu_isa_fmax_d = _RAND_353[0:0];
  _RAND_354 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_s_d = _RAND_354[0:0];
  _RAND_355 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_d_s = _RAND_355[0:0];
  _RAND_356 = {1{`RANDOM}};
  buf_1_fpu_isa_feq_d = _RAND_356[0:0];
  _RAND_357 = {1{`RANDOM}};
  buf_1_fpu_isa_flt_d = _RAND_357[0:0];
  _RAND_358 = {1{`RANDOM}};
  buf_1_fpu_isa_fle_d = _RAND_358[0:0];
  _RAND_359 = {1{`RANDOM}};
  buf_1_fpu_isa_fclass_d = _RAND_359[0:0];
  _RAND_360 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_w_d = _RAND_360[0:0];
  _RAND_361 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_wu_d = _RAND_361[0:0];
  _RAND_362 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_d_w = _RAND_362[0:0];
  _RAND_363 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_d_wu = _RAND_363[0:0];
  _RAND_364 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_l_d = _RAND_364[0:0];
  _RAND_365 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_lu_d = _RAND_365[0:0];
  _RAND_366 = {1{`RANDOM}};
  buf_1_fpu_isa_fmv_x_d = _RAND_366[0:0];
  _RAND_367 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_d_l = _RAND_367[0:0];
  _RAND_368 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_d_lu = _RAND_368[0:0];
  _RAND_369 = {1{`RANDOM}};
  buf_1_fpu_isa_fmv_d_x = _RAND_369[0:0];
  _RAND_370 = {1{`RANDOM}};
  buf_1_fpu_isa_fcsr_rw = _RAND_370[0:0];
  _RAND_371 = {1{`RANDOM}};
  buf_1_fpu_isa_fcsr_rs = _RAND_371[0:0];
  _RAND_372 = {1{`RANDOM}};
  buf_1_fpu_isa_fcsr_rc = _RAND_372[0:0];
  _RAND_373 = {1{`RANDOM}};
  buf_1_fpu_isa_fcsr_rwi = _RAND_373[0:0];
  _RAND_374 = {1{`RANDOM}};
  buf_1_fpu_isa_fcsr_rsi = _RAND_374[0:0];
  _RAND_375 = {1{`RANDOM}};
  buf_1_fpu_isa_fcsr_rci = _RAND_375[0:0];
  _RAND_376 = {1{`RANDOM}};
  buf_1_param_is_rvc = _RAND_376[0:0];
  _RAND_377 = {2{`RANDOM}};
  buf_1_param_pc = _RAND_377[38:0];
  _RAND_378 = {2{`RANDOM}};
  buf_1_param_imm = _RAND_378[63:0];
  _RAND_379 = {1{`RANDOM}};
  buf_1_param_raw_rs1 = _RAND_379[4:0];
  _RAND_380 = {1{`RANDOM}};
  buf_1_param_raw_rs2 = _RAND_380[4:0];
  _RAND_381 = {1{`RANDOM}};
  buf_1_param_raw_rd0 = _RAND_381[4:0];
  _RAND_382 = {1{`RANDOM}};
  buf_valid_0 = _RAND_382[0:0];
  _RAND_383 = {1{`RANDOM}};
  buf_valid_1 = _RAND_383[0:0];
  _RAND_384 = {1{`RANDOM}};
  rd_ptr = _RAND_384[0:0];
  _RAND_385 = {1{`RANDOM}};
  wr_ptr = _RAND_385[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module MultiPortFifo_in1_out1_7(
  input         clock,
  input         reset,
  output        io_enq_0_ready,
  input         io_enq_0_valid,
  input  [38:0] io_enq_0_bits_pc,
  input         io_enq_0_bits_bimResp_bim_p,
  input         io_enq_0_bits_bimResp_bim_h,
  input         io_enq_0_bits_isPredictTaken,
  input         io_deq_0_ready,
  output        io_deq_0_valid,
  output [38:0] io_deq_0_bits_pc,
  output        io_deq_0_bits_bimResp_bim_p,
  output        io_deq_0_bits_bimResp_bim_h,
  output        io_deq_0_bits_isPredictTaken,
  input         io_flush
);
`ifdef RANDOMIZE_REG_INIT
  reg [63:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [63:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
`endif // RANDOMIZE_REG_INIT
  reg [38:0] buf_0_pc; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_bimResp_bim_p; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_bimResp_bim_h; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_isPredictTaken; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_1_pc; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_bimResp_bim_p; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_bimResp_bim_h; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_isPredictTaken; // @[MultiPortFifo.scala 57:20]
  reg  buf_valid_0; // @[MultiPortFifo.scala 58:30]
  reg  buf_valid_1; // @[MultiPortFifo.scala 58:30]
  reg  rd_ptr; // @[MultiPortFifo.scala 60:27]
  reg  wr_ptr; // @[MultiPortFifo.scala 61:27]
  wire [1:0] _io_enq_0_ready_T = {{1'd0}, wr_ptr}; // @[MultiPortFifo.scala 64:78]
  wire  _GEN_1 = _io_enq_0_ready_T[0] ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 64:{94,94}]
  wire [1:0] _io_deq_0_valid_T = {{1'd0}, rd_ptr}; // @[MultiPortFifo.scala 65:78]
  wire  _T = io_enq_0_ready & io_enq_0_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_6 = _T ? ~_io_enq_0_ready_T[0] | buf_valid_0 : buf_valid_0; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _GEN_7 = _T ? _io_enq_0_ready_T[0] | buf_valid_1 : buf_valid_1; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _T_1 = io_deq_0_ready & io_deq_0_valid; // @[Decoupled.scala 52:35]
  wire  _T_9 = ~reset; // @[MultiPortFifo.scala 161:13]
  assign io_enq_0_ready = ~_GEN_1; // @[MultiPortFifo.scala 64:94]
  assign io_deq_0_valid = _io_deq_0_valid_T[0] ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 65:{94,94}]
  assign io_deq_0_bits_pc = _io_deq_0_valid_T[0] ? buf_1_pc : buf_0_pc; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_bimResp_bim_p = _io_deq_0_valid_T[0] ? buf_1_bimResp_bim_p : buf_0_bimResp_bim_p; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_bimResp_bim_h = _io_deq_0_valid_T[0] ? buf_1_bimResp_bim_h : buf_0_bimResp_bim_h; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_isPredictTaken = _io_deq_0_valid_T[0] ? buf_1_isPredictTaken : buf_0_isPredictTaken; // @[MultiPortFifo.scala 114:{14,14}]
  always @(posedge clock) begin
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_pc <= io_enq_0_bits_pc;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_pc <= buf_1_pc; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bimResp_bim_p <= io_enq_0_bits_bimResp_bim_p;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bimResp_bim_p <= buf_1_bimResp_bim_p; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bimResp_bim_h <= io_enq_0_bits_bimResp_bim_h;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_bimResp_bim_h <= buf_1_bimResp_bim_h; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_isPredictTaken <= io_enq_0_bits_isPredictTaken;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_isPredictTaken <= buf_1_isPredictTaken; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_pc <= io_enq_0_bits_pc;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_pc <= buf_0_pc;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bimResp_bim_p <= io_enq_0_bits_bimResp_bim_p;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bimResp_bim_p <= buf_0_bimResp_bim_p;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bimResp_bim_h <= io_enq_0_bits_bimResp_bim_h;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_bimResp_bim_h <= buf_0_bimResp_bim_h;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_isPredictTaken <= io_enq_0_bits_isPredictTaken;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_isPredictTaken <= buf_0_isPredictTaken;
        end
      end
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 88:54]
    end else if (_T_1) begin // @[MultiPortFifo.scala 98:34]
      if (~_io_deq_0_valid_T[0]) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_0 <= _GEN_6;
      end
    end else begin
      buf_valid_0 <= _GEN_6;
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 88:54]
    end else if (_T_1) begin // @[MultiPortFifo.scala 98:34]
      if (_io_deq_0_valid_T[0]) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_1 <= _GEN_7;
      end
    end else begin
      buf_valid_1 <= _GEN_7;
    end
    if (reset) begin // @[MultiPortFifo.scala 60:27]
      rd_ptr <= 1'h0; // @[MultiPortFifo.scala 60:27]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      rd_ptr <= 1'h0; // @[MultiPortFifo.scala 89:16]
    end else begin
      rd_ptr <= rd_ptr + _T_1; // @[MultiPortFifo.scala 106:16]
    end
    if (reset) begin // @[MultiPortFifo.scala 61:27]
      wr_ptr <= 1'h0; // @[MultiPortFifo.scala 61:27]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      wr_ptr <= 1'h0; // @[MultiPortFifo.scala 90:16]
    end else begin
      wr_ptr <= wr_ptr + _T; // @[MultiPortFifo.scala 107:16]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_0_valid & ~io_enq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_0_valid & ~io_enq_0_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_9 & ~(~(io_deq_0_valid & ~io_deq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! out port illegal\n    at MultiPortFifo.scala:164 assert( !(io.deq(i).valid === true.B && io.deq(j).valid === false.B && i.U >= j.U), \"Assert Fail! out port illegal\")\n"
            ); // @[MultiPortFifo.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_deq_0_valid & ~io_deq_0_valid)) & _T_9) begin
          $fatal; // @[MultiPortFifo.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {2{`RANDOM}};
  buf_0_pc = _RAND_0[38:0];
  _RAND_1 = {1{`RANDOM}};
  buf_0_bimResp_bim_p = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  buf_0_bimResp_bim_h = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  buf_0_isPredictTaken = _RAND_3[0:0];
  _RAND_4 = {2{`RANDOM}};
  buf_1_pc = _RAND_4[38:0];
  _RAND_5 = {1{`RANDOM}};
  buf_1_bimResp_bim_p = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  buf_1_bimResp_bim_h = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  buf_1_isPredictTaken = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  buf_valid_0 = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  buf_valid_1 = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  rd_ptr = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  wr_ptr = _RAND_11[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module MultiPortFifo_in1_out1_8(
  input         clock,
  input         reset,
  output        io_enq_0_ready,
  input         io_enq_0_valid,
  input  [38:0] io_enq_0_bits_pc,
  input  [38:0] io_enq_0_bits_btbResp_target,
  input  [38:0] io_enq_0_bits_rasResp_target,
  input         io_enq_0_bits_isRas,
  input         io_deq_0_ready,
  output        io_deq_0_valid,
  output [38:0] io_deq_0_bits_pc,
  output [38:0] io_deq_0_bits_btbResp_target,
  output [38:0] io_deq_0_bits_rasResp_target,
  output        io_deq_0_bits_isRas,
  input         io_flush
);
`ifdef RANDOMIZE_REG_INIT
  reg [63:0] _RAND_0;
  reg [63:0] _RAND_1;
  reg [63:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [63:0] _RAND_4;
  reg [63:0] _RAND_5;
  reg [63:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
`endif // RANDOMIZE_REG_INIT
  reg [38:0] buf_0_pc; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_0_btbResp_target; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_0_rasResp_target; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_isRas; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_1_pc; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_1_btbResp_target; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_1_rasResp_target; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_isRas; // @[MultiPortFifo.scala 57:20]
  reg  buf_valid_0; // @[MultiPortFifo.scala 58:30]
  reg  buf_valid_1; // @[MultiPortFifo.scala 58:30]
  reg  rd_ptr; // @[MultiPortFifo.scala 60:27]
  reg  wr_ptr; // @[MultiPortFifo.scala 61:27]
  wire [1:0] _io_enq_0_ready_T = {{1'd0}, wr_ptr}; // @[MultiPortFifo.scala 64:78]
  wire  _GEN_1 = _io_enq_0_ready_T[0] ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 64:{94,94}]
  wire [1:0] _io_deq_0_valid_T = {{1'd0}, rd_ptr}; // @[MultiPortFifo.scala 65:78]
  wire  _T = io_enq_0_ready & io_enq_0_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_6 = _T ? ~_io_enq_0_ready_T[0] | buf_valid_0 : buf_valid_0; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _GEN_7 = _T ? _io_enq_0_ready_T[0] | buf_valid_1 : buf_valid_1; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _T_1 = io_deq_0_ready & io_deq_0_valid; // @[Decoupled.scala 52:35]
  wire  _T_9 = ~reset; // @[MultiPortFifo.scala 161:13]
  assign io_enq_0_ready = ~_GEN_1; // @[MultiPortFifo.scala 64:94]
  assign io_deq_0_valid = _io_deq_0_valid_T[0] ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 65:{94,94}]
  assign io_deq_0_bits_pc = _io_deq_0_valid_T[0] ? buf_1_pc : buf_0_pc; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_btbResp_target = _io_deq_0_valid_T[0] ? buf_1_btbResp_target : buf_0_btbResp_target; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_rasResp_target = _io_deq_0_valid_T[0] ? buf_1_rasResp_target : buf_0_rasResp_target; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_isRas = _io_deq_0_valid_T[0] ? buf_1_isRas : buf_0_isRas; // @[MultiPortFifo.scala 114:{14,14}]
  always @(posedge clock) begin
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_pc <= io_enq_0_bits_pc;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_pc <= buf_1_pc; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_btbResp_target <= io_enq_0_bits_btbResp_target;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_btbResp_target <= buf_1_btbResp_target; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_rasResp_target <= io_enq_0_bits_rasResp_target;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_rasResp_target <= buf_1_rasResp_target; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_0_isRas <= io_enq_0_bits_isRas;
        end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
          buf_0_isRas <= buf_1_isRas; // @[MultiPortFifo.scala 101:33]
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_pc <= io_enq_0_bits_pc;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_pc <= buf_0_pc;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_btbResp_target <= io_enq_0_bits_btbResp_target;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_btbResp_target <= buf_0_btbResp_target;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_rasResp_target <= io_enq_0_bits_rasResp_target;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_rasResp_target <= buf_0_rasResp_target;
        end
      end
    end
    if (!(io_flush)) begin // @[MultiPortFifo.scala 87:23]
      if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
        if (_T) begin // @[MultiPortFifo.scala 101:33]
          buf_1_isRas <= io_enq_0_bits_isRas;
        end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
          buf_1_isRas <= buf_0_isRas;
        end
      end
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 88:54]
    end else if (_T_1) begin // @[MultiPortFifo.scala 98:34]
      if (~_io_deq_0_valid_T[0]) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_0 <= _GEN_6;
      end
    end else begin
      buf_valid_0 <= _GEN_6;
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 88:54]
    end else if (_T_1) begin // @[MultiPortFifo.scala 98:34]
      if (_io_deq_0_valid_T[0]) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_1 <= _GEN_7;
      end
    end else begin
      buf_valid_1 <= _GEN_7;
    end
    if (reset) begin // @[MultiPortFifo.scala 60:27]
      rd_ptr <= 1'h0; // @[MultiPortFifo.scala 60:27]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      rd_ptr <= 1'h0; // @[MultiPortFifo.scala 89:16]
    end else begin
      rd_ptr <= rd_ptr + _T_1; // @[MultiPortFifo.scala 106:16]
    end
    if (reset) begin // @[MultiPortFifo.scala 61:27]
      wr_ptr <= 1'h0; // @[MultiPortFifo.scala 61:27]
    end else if (io_flush) begin // @[MultiPortFifo.scala 87:23]
      wr_ptr <= 1'h0; // @[MultiPortFifo.scala 90:16]
    end else begin
      wr_ptr <= wr_ptr + _T; // @[MultiPortFifo.scala 107:16]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_0_valid & ~io_enq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_0_valid & ~io_enq_0_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_9 & ~(~(io_deq_0_valid & ~io_deq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! out port illegal\n    at MultiPortFifo.scala:164 assert( !(io.deq(i).valid === true.B && io.deq(j).valid === false.B && i.U >= j.U), \"Assert Fail! out port illegal\")\n"
            ); // @[MultiPortFifo.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_deq_0_valid & ~io_deq_0_valid)) & _T_9) begin
          $fatal; // @[MultiPortFifo.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {2{`RANDOM}};
  buf_0_pc = _RAND_0[38:0];
  _RAND_1 = {2{`RANDOM}};
  buf_0_btbResp_target = _RAND_1[38:0];
  _RAND_2 = {2{`RANDOM}};
  buf_0_rasResp_target = _RAND_2[38:0];
  _RAND_3 = {1{`RANDOM}};
  buf_0_isRas = _RAND_3[0:0];
  _RAND_4 = {2{`RANDOM}};
  buf_1_pc = _RAND_4[38:0];
  _RAND_5 = {2{`RANDOM}};
  buf_1_btbResp_target = _RAND_5[38:0];
  _RAND_6 = {2{`RANDOM}};
  buf_1_rasResp_target = _RAND_6[38:0];
  _RAND_7 = {1{`RANDOM}};
  buf_1_isRas = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  buf_valid_0 = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  buf_valid_1 = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  rd_ptr = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  wr_ptr = _RAND_11[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module RePort_4(
  input         clock,
  input         reset,
  output        io_enq_0_ready,
  input         io_enq_0_valid,
  input  [38:0] io_enq_0_bits_pc,
  input         io_enq_0_bits_bimResp_bim_p,
  input         io_enq_0_bits_bimResp_bim_h,
  input         io_enq_0_bits_isPredictTaken,
  input         io_deq_0_ready,
  output        io_deq_0_valid,
  output [38:0] io_deq_0_bits_pc,
  output        io_deq_0_bits_bimResp_bim_p,
  output        io_deq_0_bits_bimResp_bim_h,
  output        io_deq_0_bits_isPredictTaken
);
  wire  _T = io_enq_0_ready & io_enq_0_valid; // @[Decoupled.scala 52:35]
  wire  _T_1 = io_deq_0_ready & io_deq_0_valid; // @[Decoupled.scala 52:35]
  wire  is_end_0 = ~io_enq_0_valid; // @[RePort.scala 62:21]
  assign io_enq_0_ready = io_deq_0_ready; // @[RePort.scala 80:69]
  assign io_deq_0_valid = _T > 1'h0; // @[RePort.scala 79:81]
  assign io_deq_0_bits_pc = ~is_end_0 ? io_enq_0_bits_pc : 39'h0; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_bimResp_bim_p = ~is_end_0 & io_enq_0_bits_bimResp_bim_p; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_bimResp_bim_h = ~is_end_0 & io_enq_0_bits_bimResp_bim_h; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_isPredictTaken = ~is_end_0 & io_enq_0_bits_isPredictTaken; // @[RePort.scala 37:21 75:24 76:22]
  always @(posedge clock) begin
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(_T == _T_1)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed at RePort! enq-fire should equal to deq-fire!\n    at RePort.scala:32 assert ( PopCount( io.enq.map(_.fire) ) === PopCount( io.deq.map(_.fire) ), \"Assert Failed at RePort! enq-fire should equal to deq-fire!\"  )\n"
            ); // @[RePort.scala 32:12]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T == _T_1) & ~reset) begin
          $fatal; // @[RePort.scala 32:12]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
endmodule
module RePort_5(
  input         clock,
  input         reset,
  output        io_enq_0_ready,
  input         io_enq_0_valid,
  input  [38:0] io_enq_0_bits_pc,
  input  [38:0] io_enq_0_bits_btbResp_target,
  input  [38:0] io_enq_0_bits_rasResp_target,
  input         io_enq_0_bits_isRas,
  input         io_deq_0_ready,
  output        io_deq_0_valid,
  output [38:0] io_deq_0_bits_pc,
  output [38:0] io_deq_0_bits_btbResp_target,
  output [38:0] io_deq_0_bits_rasResp_target,
  output        io_deq_0_bits_isRas
);
  wire  _T = io_enq_0_ready & io_enq_0_valid; // @[Decoupled.scala 52:35]
  wire  _T_1 = io_deq_0_ready & io_deq_0_valid; // @[Decoupled.scala 52:35]
  wire  is_end_0 = ~io_enq_0_valid; // @[RePort.scala 62:21]
  assign io_enq_0_ready = io_deq_0_ready; // @[RePort.scala 80:69]
  assign io_deq_0_valid = _T > 1'h0; // @[RePort.scala 79:81]
  assign io_deq_0_bits_pc = ~is_end_0 ? io_enq_0_bits_pc : 39'h0; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_btbResp_target = ~is_end_0 ? io_enq_0_bits_btbResp_target : 39'h0; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_rasResp_target = ~is_end_0 ? io_enq_0_bits_rasResp_target : 39'h0; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_isRas = ~is_end_0 & io_enq_0_bits_isRas; // @[RePort.scala 37:21 75:24 76:22]
  always @(posedge clock) begin
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(_T == _T_1)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed at RePort! enq-fire should equal to deq-fire!\n    at RePort.scala:32 assert ( PopCount( io.enq.map(_.fire) ) === PopCount( io.deq.map(_.fire) ), \"Assert Failed at RePort! enq-fire should equal to deq-fire!\"  )\n"
            ); // @[RePort.scala 32:12]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T == _T_1) & ~reset) begin
          $fatal; // @[RePort.scala 32:12]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
endmodule
module ReDirect_1(
  output  io_enq_0_ready,
  input   io_enq_0_valid,
  input   io_enq_0_bits_bim_p,
  input   io_enq_0_bits_bim_h,
  input   io_deq_0_ready,
  output  io_deq_0_valid,
  output  io_deq_0_bits_bim_p,
  output  io_deq_0_bits_bim_h,
  input   io_mapper_0
);
  assign io_enq_0_ready = io_mapper_0 & io_deq_0_ready; // @[RePort.scala 161:22 180:{28,40}]
  assign io_deq_0_valid = io_mapper_0 & io_enq_0_valid; // @[RePort.scala 159:21 180:{28,40}]
  assign io_deq_0_bits_bim_p = io_mapper_0 & io_enq_0_bits_bim_p; // @[RePort.scala 160:21 180:{28,40}]
  assign io_deq_0_bits_bim_h = io_mapper_0 & io_enq_0_bits_bim_h; // @[RePort.scala 160:21 180:{28,40}]
endmodule
module ReDirect_2(
  output        io_enq_0_ready,
  input         io_enq_0_valid,
  input  [38:0] io_enq_0_bits_target,
  input         io_deq_0_ready,
  output        io_deq_0_valid,
  output [38:0] io_deq_0_bits_target,
  input         io_mapper_0
);
  assign io_enq_0_ready = io_mapper_0 & io_deq_0_ready; // @[RePort.scala 161:22 180:{28,40}]
  assign io_deq_0_valid = io_mapper_0 & io_enq_0_valid; // @[RePort.scala 159:21 180:{28,40}]
  assign io_deq_0_bits_target = io_mapper_0 ? io_enq_0_bits_target : 39'h0; // @[RePort.scala 160:21 180:{28,40}]
endmodule
module Decode16(
  input  [15:0] io_x,
  input  [63:0] io_pc,
  output        io_info_alu_isa_lui,
  output        io_info_alu_isa_addi,
  output        io_info_alu_isa_addiw,
  output        io_info_alu_isa_andi,
  output        io_info_alu_isa_slli,
  output        io_info_alu_isa_srli,
  output        io_info_alu_isa_srai,
  output        io_info_alu_isa_add,
  output        io_info_alu_isa_addw,
  output        io_info_alu_isa_sub,
  output        io_info_alu_isa_subw,
  output        io_info_alu_isa_xor,
  output        io_info_alu_isa_or,
  output        io_info_alu_isa_and,
  output        io_info_bru_isa_jal,
  output        io_info_bru_isa_jalr,
  output        io_info_bru_isa_beq,
  output        io_info_bru_isa_bne,
  output        io_info_lsu_isa_lw,
  output        io_info_lsu_isa_ld,
  output        io_info_lsu_isa_sw,
  output        io_info_lsu_isa_sd,
  output        io_info_privil_isa_ebreak,
  output        io_info_privil_isa_is_access_fault,
  output        io_info_privil_isa_is_paging_fault,
  output [38:0] io_info_param_pc,
  output [63:0] io_info_param_imm,
  output [4:0]  io_info_param_raw_rs1,
  output [4:0]  io_info_param_raw_rs2,
  output [4:0]  io_info_param_raw_rd0
);
  wire [15:0] _info_param_raw_rd0_T = io_x & 16'he003; // @[Decoder.scala 63:24]
  wire  _info_param_raw_rd0_T_4 = 16'h0 == _info_param_raw_rd0_T & io_x[12:5] != 8'h0; // @[Decoder.scala 63:74]
  wire [4:0] _info_param_raw_rd0_T_6 = {2'h1,io_x[4:2]}; // @[Cat.scala 33:92]
  wire  _info_param_raw_rd0_T_10 = 16'h4000 == _info_param_raw_rd0_T; // @[Decoder.scala 64:24]
  wire  _info_param_raw_rd0_T_14 = 16'h6000 == _info_param_raw_rd0_T; // @[Decoder.scala 65:24]
  wire  _info_param_raw_rd0_T_18 = 16'hc000 == _info_param_raw_rd0_T; // @[Decoder.scala 66:24]
  wire  _info_param_raw_rd0_T_20 = 16'he000 == _info_param_raw_rd0_T; // @[Decoder.scala 67:24]
  wire  _info_param_raw_rd0_T_22 = 16'h1 == io_x; // @[Decoder.scala 68:24]
  wire  _info_param_raw_rd0_T_26 = io_x[11:7] != 5'h0; // @[Decoder.scala 69:85]
  wire  _info_param_raw_rd0_T_27 = 16'h1 == _info_param_raw_rd0_T & io_x[11:7] != 5'h0; // @[Decoder.scala 69:74]
  wire  _info_param_raw_rd0_T_33 = 16'h2001 == _info_param_raw_rd0_T & _info_param_raw_rd0_T_26; // @[Decoder.scala 70:74]
  wire  _info_param_raw_rd0_T_39 = 16'h4001 == _info_param_raw_rd0_T & _info_param_raw_rd0_T_26; // @[Decoder.scala 71:74]
  wire [15:0] _info_param_raw_rd0_T_41 = io_x & 16'hef83; // @[Decoder.scala 72:24]
  wire [5:0] _info_param_raw_rd0_T_48 = {io_x[12],io_x[6:2]}; // @[Cat.scala 33:92]
  wire  _info_param_raw_rd0_T_49 = _info_param_raw_rd0_T_48 != 6'h0; // @[Decoder.scala 72:116]
  wire  _info_param_raw_rd0_T_50 = 16'h6101 == _info_param_raw_rd0_T_41 & io_x[11:7] == 5'h2 & _info_param_raw_rd0_T_48
     != 6'h0; // @[Decoder.scala 72:94]
  wire  _info_param_raw_rd0_T_58 = 16'h6001 == _info_param_raw_rd0_T & io_x[11:7] != 5'h2 & io_x[12:2] != 11'h0; // @[Decoder.scala 73:94]
  wire [15:0] _info_param_raw_rd0_T_60 = io_x & 16'hec03; // @[Decoder.scala 74:24]
  wire  _info_param_raw_rd0_T_66 = 16'h8001 == _info_param_raw_rd0_T_60 & _info_param_raw_rd0_T_49; // @[Decoder.scala 74:74]
  wire [4:0] _info_param_raw_rd0_T_68 = {2'h1,io_x[9:7]}; // @[Cat.scala 33:92]
  wire  _info_param_raw_rd0_T_75 = 16'h8401 == _info_param_raw_rd0_T_60 & _info_param_raw_rd0_T_49; // @[Decoder.scala 75:74]
  wire  _info_param_raw_rd0_T_79 = 16'h8801 == _info_param_raw_rd0_T_60; // @[Decoder.scala 77:24]
  wire [15:0] _info_param_raw_rd0_T_82 = io_x & 16'hfc63; // @[Decoder.scala 78:24]
  wire  _info_param_raw_rd0_T_83 = 16'h8c01 == _info_param_raw_rd0_T_82; // @[Decoder.scala 78:24]
  wire  _info_param_raw_rd0_T_87 = 16'h8c21 == _info_param_raw_rd0_T_82; // @[Decoder.scala 79:24]
  wire  _info_param_raw_rd0_T_91 = 16'h8c41 == _info_param_raw_rd0_T_82; // @[Decoder.scala 80:24]
  wire  _info_param_raw_rd0_T_95 = 16'h8c61 == _info_param_raw_rd0_T_82; // @[Decoder.scala 81:24]
  wire  _info_param_raw_rd0_T_99 = 16'h9c01 == _info_param_raw_rd0_T_82; // @[Decoder.scala 82:24]
  wire  _info_param_raw_rd0_T_103 = 16'h9c21 == _info_param_raw_rd0_T_82; // @[Decoder.scala 83:24]
  wire  _info_param_raw_rd0_T_107 = 16'ha001 == _info_param_raw_rd0_T; // @[Decoder.scala 84:24]
  wire  _info_param_raw_rd0_T_109 = 16'hc001 == _info_param_raw_rd0_T; // @[Decoder.scala 85:24]
  wire  _info_param_raw_rd0_T_111 = 16'he001 == _info_param_raw_rd0_T; // @[Decoder.scala 86:24]
  wire  _info_param_raw_rd0_T_116 = 16'h2 == _info_param_raw_rd0_T & _info_param_raw_rd0_T_26; // @[Decoder.scala 87:74]
  wire  _info_param_raw_rd0_T_123 = 16'h4002 == _info_param_raw_rd0_T & _info_param_raw_rd0_T_26; // @[Decoder.scala 89:74]
  wire  _info_param_raw_rd0_T_129 = 16'h6002 == _info_param_raw_rd0_T & _info_param_raw_rd0_T_26; // @[Decoder.scala 90:74]
  wire [15:0] _info_param_raw_rd0_T_131 = io_x & 16'hf07f; // @[Decoder.scala 91:24]
  wire  _info_param_raw_rd0_T_135 = 16'h8002 == _info_param_raw_rd0_T_131 & _info_param_raw_rd0_T_26; // @[Decoder.scala 91:74]
  wire [15:0] _info_param_raw_rd0_T_136 = io_x & 16'hf003; // @[Decoder.scala 92:24]
  wire  _info_param_raw_rd0_T_142 = io_x[6:2] != 5'h0; // @[Decoder.scala 92:104]
  wire  _info_param_raw_rd0_T_143 = 16'h8002 == _info_param_raw_rd0_T_136 & _info_param_raw_rd0_T_26 & io_x[6:2] != 5'h0
    ; // @[Decoder.scala 92:94]
  wire  _info_param_raw_rd0_T_151 = 16'h9002 == _info_param_raw_rd0_T_131 & _info_param_raw_rd0_T_26; // @[Decoder.scala 94:74]
  wire  _info_param_raw_rd0_T_159 = 16'h9002 == _info_param_raw_rd0_T_136 & _info_param_raw_rd0_T_26 &
    _info_param_raw_rd0_T_142; // @[Decoder.scala 95:94]
  wire  _info_param_raw_rd0_T_162 = 16'hc002 == _info_param_raw_rd0_T; // @[Decoder.scala 97:24]
  wire  _info_param_raw_rd0_T_164 = 16'he002 == _info_param_raw_rd0_T; // @[Decoder.scala 98:24]
  wire [4:0] _info_param_raw_rd0_T_165 = _info_param_raw_rd0_T_4 ? _info_param_raw_rd0_T_6 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_167 = _info_param_raw_rd0_T_10 ? _info_param_raw_rd0_T_6 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_168 = _info_param_raw_rd0_T_14 ? _info_param_raw_rd0_T_6 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_173 = _info_param_raw_rd0_T_27 ? io_x[11:7] : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_174 = _info_param_raw_rd0_T_33 ? io_x[11:7] : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_175 = _info_param_raw_rd0_T_39 ? io_x[11:7] : 5'h0; // @[Mux.scala 27:73]
  wire [1:0] _info_param_raw_rd0_T_176 = _info_param_raw_rd0_T_50 ? 2'h2 : 2'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_177 = _info_param_raw_rd0_T_58 ? io_x[11:7] : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_178 = _info_param_raw_rd0_T_66 ? _info_param_raw_rd0_T_68 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_179 = _info_param_raw_rd0_T_75 ? _info_param_raw_rd0_T_68 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_180 = _info_param_raw_rd0_T_79 ? _info_param_raw_rd0_T_68 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_181 = _info_param_raw_rd0_T_83 ? _info_param_raw_rd0_T_68 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_182 = _info_param_raw_rd0_T_87 ? _info_param_raw_rd0_T_68 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_183 = _info_param_raw_rd0_T_91 ? _info_param_raw_rd0_T_68 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_184 = _info_param_raw_rd0_T_95 ? _info_param_raw_rd0_T_68 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_185 = _info_param_raw_rd0_T_99 ? _info_param_raw_rd0_T_68 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_186 = _info_param_raw_rd0_T_103 ? _info_param_raw_rd0_T_68 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_190 = _info_param_raw_rd0_T_116 ? io_x[11:7] : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_192 = _info_param_raw_rd0_T_123 ? io_x[11:7] : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_193 = _info_param_raw_rd0_T_129 ? io_x[11:7] : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_195 = _info_param_raw_rd0_T_143 ? io_x[11:7] : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_198 = _info_param_raw_rd0_T_159 ? io_x[11:7] : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_203 = _info_param_raw_rd0_T_165 | _info_param_raw_rd0_T_167; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_204 = _info_param_raw_rd0_T_203 | _info_param_raw_rd0_T_168; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_209 = _info_param_raw_rd0_T_204 | _info_param_raw_rd0_T_173; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_210 = _info_param_raw_rd0_T_209 | _info_param_raw_rd0_T_174; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_211 = _info_param_raw_rd0_T_210 | _info_param_raw_rd0_T_175; // @[Mux.scala 27:73]
  wire [4:0] _GEN_0 = {{3'd0}, _info_param_raw_rd0_T_176}; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_212 = _info_param_raw_rd0_T_211 | _GEN_0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_213 = _info_param_raw_rd0_T_212 | _info_param_raw_rd0_T_177; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_214 = _info_param_raw_rd0_T_213 | _info_param_raw_rd0_T_178; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_215 = _info_param_raw_rd0_T_214 | _info_param_raw_rd0_T_179; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_216 = _info_param_raw_rd0_T_215 | _info_param_raw_rd0_T_180; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_217 = _info_param_raw_rd0_T_216 | _info_param_raw_rd0_T_181; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_218 = _info_param_raw_rd0_T_217 | _info_param_raw_rd0_T_182; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_219 = _info_param_raw_rd0_T_218 | _info_param_raw_rd0_T_183; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_220 = _info_param_raw_rd0_T_219 | _info_param_raw_rd0_T_184; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_221 = _info_param_raw_rd0_T_220 | _info_param_raw_rd0_T_185; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_222 = _info_param_raw_rd0_T_221 | _info_param_raw_rd0_T_186; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_226 = _info_param_raw_rd0_T_222 | _info_param_raw_rd0_T_190; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_228 = _info_param_raw_rd0_T_226 | _info_param_raw_rd0_T_192; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_229 = _info_param_raw_rd0_T_228 | _info_param_raw_rd0_T_193; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_231 = _info_param_raw_rd0_T_229 | _info_param_raw_rd0_T_195; // @[Mux.scala 27:73]
  wire [4:0] _GEN_1 = {{4'd0}, _info_param_raw_rd0_T_151}; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rd0_T_233 = _info_param_raw_rd0_T_231 | _GEN_1; // @[Mux.scala 27:73]
  wire [1:0] _info_param_raw_rs1_T_169 = _info_param_raw_rd0_T_4 ? 2'h2 : 2'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_171 = _info_param_raw_rd0_T_10 ? _info_param_raw_rd0_T_68 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_172 = _info_param_raw_rd0_T_14 ? _info_param_raw_rd0_T_68 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_174 = _info_param_raw_rd0_T_18 ? _info_param_raw_rd0_T_68 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_175 = _info_param_raw_rd0_T_20 ? _info_param_raw_rd0_T_68 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_192 = _info_param_raw_rd0_T_109 ? _info_param_raw_rd0_T_68 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_193 = _info_param_raw_rd0_T_111 ? _info_param_raw_rd0_T_68 : 5'h0; // @[Mux.scala 27:73]
  wire [1:0] _info_param_raw_rs1_T_196 = _info_param_raw_rd0_T_123 ? 2'h2 : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _info_param_raw_rs1_T_197 = _info_param_raw_rd0_T_129 ? 2'h2 : 2'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_198 = _info_param_raw_rd0_T_135 ? io_x[11:7] : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_201 = _info_param_raw_rd0_T_151 ? io_x[11:7] : 5'h0; // @[Mux.scala 27:73]
  wire [1:0] _info_param_raw_rs1_T_204 = _info_param_raw_rd0_T_162 ? 2'h2 : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _info_param_raw_rs1_T_205 = _info_param_raw_rd0_T_164 ? 2'h2 : 2'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_206 = {{3'd0}, _info_param_raw_rs1_T_169}; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_207 = _info_param_raw_rs1_T_206 | _info_param_raw_rs1_T_171; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_208 = _info_param_raw_rs1_T_207 | _info_param_raw_rs1_T_172; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_210 = _info_param_raw_rs1_T_208 | _info_param_raw_rs1_T_174; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_211 = _info_param_raw_rs1_T_210 | _info_param_raw_rs1_T_175; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_213 = _info_param_raw_rs1_T_211 | _info_param_raw_rd0_T_173; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_214 = _info_param_raw_rs1_T_213 | _info_param_raw_rd0_T_174; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_216 = _info_param_raw_rs1_T_214 | _GEN_0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_218 = _info_param_raw_rs1_T_216 | _info_param_raw_rd0_T_178; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_219 = _info_param_raw_rs1_T_218 | _info_param_raw_rd0_T_179; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_220 = _info_param_raw_rs1_T_219 | _info_param_raw_rd0_T_180; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_221 = _info_param_raw_rs1_T_220 | _info_param_raw_rd0_T_181; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_222 = _info_param_raw_rs1_T_221 | _info_param_raw_rd0_T_182; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_223 = _info_param_raw_rs1_T_222 | _info_param_raw_rd0_T_183; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_224 = _info_param_raw_rs1_T_223 | _info_param_raw_rd0_T_184; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_225 = _info_param_raw_rs1_T_224 | _info_param_raw_rd0_T_185; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_226 = _info_param_raw_rs1_T_225 | _info_param_raw_rd0_T_186; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_228 = _info_param_raw_rs1_T_226 | _info_param_raw_rs1_T_192; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_229 = _info_param_raw_rs1_T_228 | _info_param_raw_rs1_T_193; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_230 = _info_param_raw_rs1_T_229 | _info_param_raw_rd0_T_190; // @[Mux.scala 27:73]
  wire [4:0] _GEN_3 = {{3'd0}, _info_param_raw_rs1_T_196}; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_232 = _info_param_raw_rs1_T_230 | _GEN_3; // @[Mux.scala 27:73]
  wire [4:0] _GEN_4 = {{3'd0}, _info_param_raw_rs1_T_197}; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_233 = _info_param_raw_rs1_T_232 | _GEN_4; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_234 = _info_param_raw_rs1_T_233 | _info_param_raw_rs1_T_198; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_237 = _info_param_raw_rs1_T_234 | _info_param_raw_rs1_T_201; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_238 = _info_param_raw_rs1_T_237 | _info_param_raw_rd0_T_198; // @[Mux.scala 27:73]
  wire [4:0] _GEN_5 = {{3'd0}, _info_param_raw_rs1_T_204}; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs1_T_240 = _info_param_raw_rs1_T_238 | _GEN_5; // @[Mux.scala 27:73]
  wire [4:0] _GEN_6 = {{3'd0}, _info_param_raw_rs1_T_205}; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs2_T_157 = _info_param_raw_rd0_T_18 ? _info_param_raw_rd0_T_6 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs2_T_158 = _info_param_raw_rd0_T_20 ? _info_param_raw_rd0_T_6 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs2_T_168 = _info_param_raw_rd0_T_83 ? _info_param_raw_rd0_T_6 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs2_T_169 = _info_param_raw_rd0_T_87 ? _info_param_raw_rd0_T_6 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs2_T_170 = _info_param_raw_rd0_T_91 ? _info_param_raw_rd0_T_6 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs2_T_171 = _info_param_raw_rd0_T_95 ? _info_param_raw_rd0_T_6 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs2_T_172 = _info_param_raw_rd0_T_99 ? _info_param_raw_rd0_T_6 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs2_T_173 = _info_param_raw_rd0_T_103 ? _info_param_raw_rd0_T_6 : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs2_T_182 = _info_param_raw_rd0_T_143 ? io_x[6:2] : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs2_T_185 = _info_param_raw_rd0_T_159 ? io_x[6:2] : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs2_T_187 = _info_param_raw_rd0_T_162 ? io_x[6:2] : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs2_T_188 = _info_param_raw_rd0_T_164 ? io_x[6:2] : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs2_T_194 = _info_param_raw_rs2_T_157 | _info_param_raw_rs2_T_158; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs2_T_204 = _info_param_raw_rs2_T_194 | _info_param_raw_rs2_T_168; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs2_T_205 = _info_param_raw_rs2_T_204 | _info_param_raw_rs2_T_169; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs2_T_206 = _info_param_raw_rs2_T_205 | _info_param_raw_rs2_T_170; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs2_T_207 = _info_param_raw_rs2_T_206 | _info_param_raw_rs2_T_171; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs2_T_208 = _info_param_raw_rs2_T_207 | _info_param_raw_rs2_T_172; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs2_T_209 = _info_param_raw_rs2_T_208 | _info_param_raw_rs2_T_173; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs2_T_218 = _info_param_raw_rs2_T_209 | _info_param_raw_rs2_T_182; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs2_T_221 = _info_param_raw_rs2_T_218 | _info_param_raw_rs2_T_185; // @[Mux.scala 27:73]
  wire [4:0] _info_param_raw_rs2_T_223 = _info_param_raw_rs2_T_221 | _info_param_raw_rs2_T_187; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_9 = {54'h0,io_x[10:7],io_x[12:11],io_x[5],io_x[6],2'h0}; // @[Cat.scala 33:92]
  wire [63:0] _info_param_imm_T_12 = {56'h0,io_x[6:5],io_x[12:10],3'h0}; // @[Cat.scala 33:92]
  wire [63:0] _info_param_imm_T_18 = {57'h0,io_x[5],io_x[12:10],io_x[6],2'h0}; // @[Cat.scala 33:92]
  wire [58:0] _info_param_imm_T_45 = io_x[12] ? 59'h7ffffffffffffff : 59'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _info_param_imm_T_47 = {_info_param_imm_T_45,io_x[6:2]}; // @[Cat.scala 33:92]
  wire [54:0] _info_param_imm_T_80 = io_x[12] ? 55'h7fffffffffffff : 55'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _info_param_imm_T_85 = {_info_param_imm_T_80,io_x[4:3],io_x[5],io_x[2],io_x[6],4'h0}; // @[Cat.scala 33:92]
  wire [46:0] _info_param_imm_T_96 = io_x[12] ? 47'h7fffffffffff : 47'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _info_param_imm_T_98 = {_info_param_imm_T_96,io_x[6:2],12'h0}; // @[Cat.scala 33:92]
  wire [52:0] _info_param_imm_T_110 = io_x[12] ? 53'h1fffffffffffff : 53'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _info_param_imm_T_118 = {_info_param_imm_T_110,io_x[8],io_x[10:9],io_x[6],io_x[7],io_x[2],io_x[11],io_x[5:
    3],1'h0}; // @[Cat.scala 33:92]
  wire [55:0] _info_param_imm_T_123 = io_x[12] ? 56'hffffffffffffff : 56'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _info_param_imm_T_128 = {_info_param_imm_T_123,io_x[6:5],io_x[2],io_x[11:10],io_x[4:3],1'h0}; // @[Cat.scala 33:92]
  wire [63:0] _info_param_imm_T_142 = {55'h0,io_x[4:2],io_x[12],io_x[6:5],3'h0}; // @[Cat.scala 33:92]
  wire [63:0] _info_param_imm_T_151 = {56'h0,io_x[3:2],io_x[12],io_x[6:4],2'h0}; // @[Cat.scala 33:92]
  wire [63:0] _info_param_imm_T_163 = {55'h0,io_x[9:7],io_x[12:10],3'h0}; // @[Cat.scala 33:92]
  wire [63:0] _info_param_imm_T_168 = {56'h0,io_x[8:7],io_x[12:9],2'h0}; // @[Cat.scala 33:92]
  wire [63:0] _info_param_imm_T_202 = _info_param_raw_rd0_T_4 ? _info_param_imm_T_9 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_204 = _info_param_raw_rd0_T_10 ? _info_param_imm_T_18 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_205 = _info_param_raw_rd0_T_14 ? _info_param_imm_T_12 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_207 = _info_param_raw_rd0_T_18 ? _info_param_imm_T_18 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_208 = _info_param_raw_rd0_T_20 ? _info_param_imm_T_12 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_209 = _info_param_raw_rd0_T_27 ? _info_param_imm_T_47 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_210 = _info_param_raw_rd0_T_33 ? _info_param_imm_T_47 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_211 = _info_param_raw_rd0_T_39 ? _info_param_imm_T_47 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_212 = _info_param_raw_rd0_T_50 ? _info_param_imm_T_85 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_213 = _info_param_raw_rd0_T_58 ? _info_param_imm_T_98 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_214 = _info_param_raw_rd0_T_79 ? _info_param_imm_T_47 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_215 = _info_param_raw_rd0_T_107 ? _info_param_imm_T_118 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_216 = _info_param_raw_rd0_T_109 ? _info_param_imm_T_128 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_217 = _info_param_raw_rd0_T_111 ? _info_param_imm_T_128 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_219 = _info_param_raw_rd0_T_123 ? _info_param_imm_T_151 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_220 = _info_param_raw_rd0_T_129 ? _info_param_imm_T_142 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_222 = _info_param_raw_rd0_T_162 ? _info_param_imm_T_168 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_223 = _info_param_raw_rd0_T_164 ? _info_param_imm_T_163 : 64'h0; // @[Mux.scala 27:73]
  wire [5:0] _info_param_imm_T_224 = _info_param_raw_rd0_T_116 ? _info_param_raw_rd0_T_48 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _info_param_imm_T_225 = _info_param_raw_rd0_T_66 ? _info_param_raw_rd0_T_48 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _info_param_imm_T_226 = _info_param_raw_rd0_T_75 ? _info_param_raw_rd0_T_48 : 6'h0; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_228 = _info_param_imm_T_202 | _info_param_imm_T_204; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_229 = _info_param_imm_T_228 | _info_param_imm_T_205; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_231 = _info_param_imm_T_229 | _info_param_imm_T_207; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_232 = _info_param_imm_T_231 | _info_param_imm_T_208; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_233 = _info_param_imm_T_232 | _info_param_imm_T_209; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_234 = _info_param_imm_T_233 | _info_param_imm_T_210; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_235 = _info_param_imm_T_234 | _info_param_imm_T_211; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_236 = _info_param_imm_T_235 | _info_param_imm_T_212; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_237 = _info_param_imm_T_236 | _info_param_imm_T_213; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_238 = _info_param_imm_T_237 | _info_param_imm_T_214; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_239 = _info_param_imm_T_238 | _info_param_imm_T_215; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_240 = _info_param_imm_T_239 | _info_param_imm_T_216; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_241 = _info_param_imm_T_240 | _info_param_imm_T_217; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_243 = _info_param_imm_T_241 | _info_param_imm_T_219; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_244 = _info_param_imm_T_243 | _info_param_imm_T_220; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_246 = _info_param_imm_T_244 | _info_param_imm_T_222; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_247 = _info_param_imm_T_246 | _info_param_imm_T_223; // @[Mux.scala 27:73]
  wire [63:0] _GEN_7 = {{58'd0}, _info_param_imm_T_224}; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_248 = _info_param_imm_T_247 | _GEN_7; // @[Mux.scala 27:73]
  wire [63:0] _GEN_8 = {{58'd0}, _info_param_imm_T_225}; // @[Mux.scala 27:73]
  wire [63:0] _info_param_imm_T_249 = _info_param_imm_T_248 | _GEN_8; // @[Mux.scala 27:73]
  wire [63:0] _GEN_9 = {{58'd0}, _info_param_imm_T_226}; // @[Mux.scala 27:73]
  assign io_info_alu_isa_lui = 16'h6001 == _info_param_raw_rd0_T & io_x[11:7] != 5'h2 & io_x[12:2] != 11'h0; // @[Decoder.scala 73:94]
  assign io_info_alu_isa_addi = _info_param_raw_rd0_T_4 | _info_param_raw_rd0_T_22 | _info_param_raw_rd0_T_27 |
    _info_param_raw_rd0_T_39 | _info_param_raw_rd0_T_50; // @[Decoder.scala 279:66]
  assign io_info_alu_isa_addiw = 16'h2001 == _info_param_raw_rd0_T & _info_param_raw_rd0_T_26; // @[Decoder.scala 70:74]
  assign io_info_alu_isa_andi = 16'h8801 == _info_param_raw_rd0_T_60; // @[Decoder.scala 77:24]
  assign io_info_alu_isa_slli = 16'h2 == _info_param_raw_rd0_T & _info_param_raw_rd0_T_26; // @[Decoder.scala 87:74]
  assign io_info_alu_isa_srli = 16'h8001 == _info_param_raw_rd0_T_60 & _info_param_raw_rd0_T_49; // @[Decoder.scala 74:74]
  assign io_info_alu_isa_srai = 16'h8401 == _info_param_raw_rd0_T_60 & _info_param_raw_rd0_T_49; // @[Decoder.scala 75:74]
  assign io_info_alu_isa_add = _info_param_raw_rd0_T_143 | _info_param_raw_rd0_T_159; // @[Decoder.scala 292:36]
  assign io_info_alu_isa_addw = 16'h9c21 == _info_param_raw_rd0_T_82; // @[Decoder.scala 83:24]
  assign io_info_alu_isa_sub = 16'h8c01 == _info_param_raw_rd0_T_82; // @[Decoder.scala 78:24]
  assign io_info_alu_isa_subw = 16'h9c01 == _info_param_raw_rd0_T_82; // @[Decoder.scala 82:24]
  assign io_info_alu_isa_xor = 16'h8c21 == _info_param_raw_rd0_T_82; // @[Decoder.scala 79:24]
  assign io_info_alu_isa_or = 16'h8c41 == _info_param_raw_rd0_T_82; // @[Decoder.scala 80:24]
  assign io_info_alu_isa_and = 16'h8c61 == _info_param_raw_rd0_T_82; // @[Decoder.scala 81:24]
  assign io_info_bru_isa_jal = 16'ha001 == _info_param_raw_rd0_T; // @[Decoder.scala 84:24]
  assign io_info_bru_isa_jalr = _info_param_raw_rd0_T_135 | _info_param_raw_rd0_T_151; // @[Decoder.scala 310:36]
  assign io_info_bru_isa_beq = 16'hc001 == _info_param_raw_rd0_T; // @[Decoder.scala 85:24]
  assign io_info_bru_isa_bne = 16'he001 == _info_param_raw_rd0_T; // @[Decoder.scala 86:24]
  assign io_info_lsu_isa_lw = _info_param_raw_rd0_T_10 | _info_param_raw_rd0_T_123; // @[Decoder.scala 320:36]
  assign io_info_lsu_isa_ld = _info_param_raw_rd0_T_14 | _info_param_raw_rd0_T_129; // @[Decoder.scala 321:36]
  assign io_info_lsu_isa_sw = _info_param_raw_rd0_T_18 | _info_param_raw_rd0_T_162; // @[Decoder.scala 327:36]
  assign io_info_lsu_isa_sd = _info_param_raw_rd0_T_20 | _info_param_raw_rd0_T_164; // @[Decoder.scala 328:36]
  assign io_info_privil_isa_ebreak = 16'h9002 == io_x; // @[Decoder.scala 93:24]
  assign io_info_privil_isa_is_access_fault = 16'h9c41 == io_x; // @[Decoder.scala 473:42]
  assign io_info_privil_isa_is_paging_fault = 16'h9c45 == io_x; // @[Decoder.scala 474:42]
  assign io_info_param_pc = io_pc[38:0]; // @[Decoder.scala 42:18 45:17]
  assign io_info_param_imm = _info_param_imm_T_249 | _GEN_9; // @[Mux.scala 27:73]
  assign io_info_param_raw_rs1 = _info_param_raw_rs1_T_240 | _GEN_6; // @[Mux.scala 27:73]
  assign io_info_param_raw_rs2 = _info_param_raw_rs2_T_223 | _info_param_raw_rs2_T_188; // @[Mux.scala 27:73]
  assign io_info_param_raw_rd0 = _info_param_raw_rd0_T_233 | _info_param_raw_rd0_T_198; // @[Mux.scala 27:73]
endmodule
module Decode32(
  input  [31:0] io_x,
  input  [63:0] io_pc,
  output        io_info_alu_isa_lui,
  output        io_info_alu_isa_auipc,
  output        io_info_alu_isa_addi,
  output        io_info_alu_isa_addiw,
  output        io_info_alu_isa_slti,
  output        io_info_alu_isa_sltiu,
  output        io_info_alu_isa_xori,
  output        io_info_alu_isa_ori,
  output        io_info_alu_isa_andi,
  output        io_info_alu_isa_slli,
  output        io_info_alu_isa_slliw,
  output        io_info_alu_isa_srli,
  output        io_info_alu_isa_srliw,
  output        io_info_alu_isa_srai,
  output        io_info_alu_isa_sraiw,
  output        io_info_alu_isa_add,
  output        io_info_alu_isa_addw,
  output        io_info_alu_isa_sub,
  output        io_info_alu_isa_subw,
  output        io_info_alu_isa_sll,
  output        io_info_alu_isa_sllw,
  output        io_info_alu_isa_slt,
  output        io_info_alu_isa_sltu,
  output        io_info_alu_isa_xor,
  output        io_info_alu_isa_srl,
  output        io_info_alu_isa_srlw,
  output        io_info_alu_isa_sra,
  output        io_info_alu_isa_sraw,
  output        io_info_alu_isa_or,
  output        io_info_alu_isa_and,
  output        io_info_alu_isa_wfi,
  output        io_info_bru_isa_jal,
  output        io_info_bru_isa_jalr,
  output        io_info_bru_isa_beq,
  output        io_info_bru_isa_bne,
  output        io_info_bru_isa_blt,
  output        io_info_bru_isa_bge,
  output        io_info_bru_isa_bltu,
  output        io_info_bru_isa_bgeu,
  output        io_info_lsu_isa_lb,
  output        io_info_lsu_isa_lh,
  output        io_info_lsu_isa_lw,
  output        io_info_lsu_isa_ld,
  output        io_info_lsu_isa_lbu,
  output        io_info_lsu_isa_lhu,
  output        io_info_lsu_isa_lwu,
  output        io_info_lsu_isa_sb,
  output        io_info_lsu_isa_sh,
  output        io_info_lsu_isa_sw,
  output        io_info_lsu_isa_sd,
  output        io_info_lsu_isa_fence,
  output        io_info_lsu_isa_fence_i,
  output        io_info_lsu_isa_sfence_vma,
  output        io_info_lsu_isa_lr_w,
  output        io_info_lsu_isa_sc_w,
  output        io_info_lsu_isa_amoswap_w,
  output        io_info_lsu_isa_amoadd_w,
  output        io_info_lsu_isa_amoxor_w,
  output        io_info_lsu_isa_amoand_w,
  output        io_info_lsu_isa_amoor_w,
  output        io_info_lsu_isa_amomin_w,
  output        io_info_lsu_isa_amomax_w,
  output        io_info_lsu_isa_amominu_w,
  output        io_info_lsu_isa_amomaxu_w,
  output        io_info_lsu_isa_lr_d,
  output        io_info_lsu_isa_sc_d,
  output        io_info_lsu_isa_amoswap_d,
  output        io_info_lsu_isa_amoadd_d,
  output        io_info_lsu_isa_amoxor_d,
  output        io_info_lsu_isa_amoand_d,
  output        io_info_lsu_isa_amoor_d,
  output        io_info_lsu_isa_amomin_d,
  output        io_info_lsu_isa_amomax_d,
  output        io_info_lsu_isa_amominu_d,
  output        io_info_lsu_isa_amomaxu_d,
  output        io_info_csr_isa_rw,
  output        io_info_csr_isa_rs,
  output        io_info_csr_isa_rc,
  output        io_info_csr_isa_rwi,
  output        io_info_csr_isa_rsi,
  output        io_info_csr_isa_rci,
  output        io_info_mul_isa_mul,
  output        io_info_mul_isa_mulh,
  output        io_info_mul_isa_mulhsu,
  output        io_info_mul_isa_mulhu,
  output        io_info_mul_isa_div,
  output        io_info_mul_isa_divu,
  output        io_info_mul_isa_rem,
  output        io_info_mul_isa_remu,
  output        io_info_mul_isa_mulw,
  output        io_info_mul_isa_divw,
  output        io_info_mul_isa_divuw,
  output        io_info_mul_isa_remw,
  output        io_info_mul_isa_remuw,
  output        io_info_privil_isa_ecall,
  output        io_info_privil_isa_ebreak,
  output        io_info_privil_isa_mret,
  output        io_info_privil_isa_uret,
  output        io_info_privil_isa_sret,
  output        io_info_privil_isa_dret,
  output        io_info_privil_isa_hfence_vvma,
  output        io_info_privil_isa_hfence_gvma,
  output        io_info_privil_isa_hlv_b,
  output        io_info_privil_isa_hlv_bu,
  output        io_info_privil_isa_hlv_h,
  output        io_info_privil_isa_hlv_hu,
  output        io_info_privil_isa_hlvx_hu,
  output        io_info_privil_isa_hlv_w,
  output        io_info_privil_isa_hlvx_wu,
  output        io_info_privil_isa_hsv_b,
  output        io_info_privil_isa_hsv_h,
  output        io_info_privil_isa_hsv_w,
  output        io_info_privil_isa_hlv_wu,
  output        io_info_privil_isa_hlv_d,
  output        io_info_privil_isa_hsv_d,
  output [38:0] io_info_param_pc,
  output [63:0] io_info_param_imm,
  output [4:0]  io_info_param_raw_rs1,
  output [4:0]  io_info_param_raw_rs2,
  output [4:0]  io_info_param_raw_rd0
);
  wire [31:0] _info_bru_isa_jalr_T = io_x & 32'h707f; // @[Decoder.scala 725:37]
  wire  info_bru_isa_jalr = 32'h67 == _info_bru_isa_jalr_T; // @[Decoder.scala 725:37]
  wire  info_lsu_isa_lb = 32'h3 == _info_bru_isa_jalr_T; // @[Decoder.scala 733:37]
  wire  info_lsu_isa_lh = 32'h1003 == _info_bru_isa_jalr_T; // @[Decoder.scala 734:37]
  wire  info_lsu_isa_lw = 32'h2003 == _info_bru_isa_jalr_T; // @[Decoder.scala 735:37]
  wire  info_lsu_isa_lbu = 32'h4003 == _info_bru_isa_jalr_T; // @[Decoder.scala 737:37]
  wire  info_lsu_isa_lhu = 32'h5003 == _info_bru_isa_jalr_T; // @[Decoder.scala 738:37]
  wire  info_lsu_isa_lwu = 32'h6003 == _info_bru_isa_jalr_T; // @[Decoder.scala 739:37]
  wire  info_lsu_isa_ld = 32'h3003 == _info_bru_isa_jalr_T; // @[Decoder.scala 736:37]
  wire  info_alu_isa_addi = 32'h13 == _info_bru_isa_jalr_T; // @[Decoder.scala 694:37]
  wire  info_alu_isa_addiw = 32'h1b == _info_bru_isa_jalr_T; // @[Decoder.scala 695:37]
  wire  info_alu_isa_slti = 32'h2013 == _info_bru_isa_jalr_T; // @[Decoder.scala 696:37]
  wire  info_alu_isa_sltiu = 32'h3013 == _info_bru_isa_jalr_T; // @[Decoder.scala 697:37]
  wire  info_alu_isa_xori = 32'h4013 == _info_bru_isa_jalr_T; // @[Decoder.scala 698:37]
  wire  info_alu_isa_ori = 32'h6013 == _info_bru_isa_jalr_T; // @[Decoder.scala 699:37]
  wire  info_alu_isa_andi = 32'h7013 == _info_bru_isa_jalr_T; // @[Decoder.scala 700:37]
  wire  info_lsu_isa_fence = 32'hf == _info_bru_isa_jalr_T; // @[Decoder.scala 744:37]
  wire  info_lsu_isa_fence_i = 32'h100f == _info_bru_isa_jalr_T; // @[Decoder.scala 745:37]
  wire  _info_csr_isa_rw_T_9 = io_x[31:20] != 12'h1 & io_x[31:20] != 12'h2 & io_x[31:20] != 12'h3; // @[Decoder.scala 748:127]
  wire  info_csr_isa_rw = 32'h1073 == _info_bru_isa_jalr_T & (io_x[31:20] != 12'h1 & io_x[31:20] != 12'h2 & io_x[31:20]
     != 12'h3); // @[Decoder.scala 748:87]
  wire  info_csr_isa_rs = 32'h2073 == _info_bru_isa_jalr_T & _info_csr_isa_rw_T_9; // @[Decoder.scala 749:87]
  wire  info_csr_isa_rc = 32'h3073 == _info_bru_isa_jalr_T & _info_csr_isa_rw_T_9; // @[Decoder.scala 750:87]
  wire  info_csr_isa_rwi = 32'h5073 == _info_bru_isa_jalr_T & _info_csr_isa_rw_T_9; // @[Decoder.scala 751:87]
  wire  info_csr_isa_rsi = 32'h6073 == _info_bru_isa_jalr_T & _info_csr_isa_rw_T_9; // @[Decoder.scala 752:87]
  wire  info_csr_isa_rci = 32'h7073 == _info_bru_isa_jalr_T & _info_csr_isa_rw_T_9; // @[Decoder.scala 753:87]
  wire  _info_param_imm_T_21 = info_bru_isa_jalr | info_lsu_isa_lb | info_lsu_isa_lh | info_lsu_isa_lw |
    info_lsu_isa_lbu | info_lsu_isa_lhu | info_lsu_isa_lwu | info_lsu_isa_ld | info_alu_isa_addi | info_alu_isa_addiw |
    info_alu_isa_slti | info_alu_isa_sltiu | info_alu_isa_xori | info_alu_isa_ori | info_alu_isa_andi |
    info_lsu_isa_fence | info_lsu_isa_fence_i | info_csr_isa_rw | info_csr_isa_rs | info_csr_isa_rc | info_csr_isa_rwi
     | info_csr_isa_rsi | info_csr_isa_rci; // @[Decoder.scala 514:443]
  wire [51:0] _info_param_imm_T_32 = io_x[31] ? 52'hfffffffffffff : 52'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _info_param_imm_T_34 = {_info_param_imm_T_32,io_x[31:20]}; // @[Cat.scala 33:92]
  wire  info_lsu_isa_sb = 32'h23 == _info_bru_isa_jalr_T; // @[Decoder.scala 740:37]
  wire  info_lsu_isa_sh = 32'h1023 == _info_bru_isa_jalr_T; // @[Decoder.scala 741:37]
  wire  info_lsu_isa_sw = 32'h2023 == _info_bru_isa_jalr_T; // @[Decoder.scala 742:37]
  wire  info_lsu_isa_sd = 32'h3023 == _info_bru_isa_jalr_T; // @[Decoder.scala 743:37]
  wire  _info_param_imm_T_37 = info_lsu_isa_sb | info_lsu_isa_sh | info_lsu_isa_sw | info_lsu_isa_sd; // @[Decoder.scala 515:72]
  wire [63:0] _info_param_imm_T_45 = {_info_param_imm_T_32,io_x[31:25],io_x[11:7]}; // @[Cat.scala 33:92]
  wire  info_bru_isa_beq = 32'h63 == _info_bru_isa_jalr_T; // @[Decoder.scala 726:37]
  wire  info_bru_isa_bne = 32'h1063 == _info_bru_isa_jalr_T; // @[Decoder.scala 727:37]
  wire  info_bru_isa_blt = 32'h4063 == _info_bru_isa_jalr_T; // @[Decoder.scala 728:37]
  wire  info_bru_isa_bge = 32'h5063 == _info_bru_isa_jalr_T; // @[Decoder.scala 729:37]
  wire  info_bru_isa_bltu = 32'h6063 == _info_bru_isa_jalr_T; // @[Decoder.scala 730:37]
  wire  info_bru_isa_bgeu = 32'h7063 == _info_bru_isa_jalr_T; // @[Decoder.scala 731:37]
  wire  _info_param_imm_T_50 = info_bru_isa_beq | info_bru_isa_bne | info_bru_isa_blt | info_bru_isa_bge |
    info_bru_isa_bltu | info_bru_isa_bgeu; // @[Decoder.scala 516:114]
  wire [63:0] _info_param_imm_T_57 = {_info_param_imm_T_32,io_x[7],io_x[30:25],io_x[11:8],1'h0}; // @[Cat.scala 33:92]
  wire [31:0] _info_alu_isa_lui_T = io_x & 32'h7f; // @[Decoder.scala 692:37]
  wire  info_alu_isa_lui = 32'h37 == _info_alu_isa_lui_T; // @[Decoder.scala 692:37]
  wire  info_alu_isa_auipc = 32'h17 == _info_alu_isa_lui_T; // @[Decoder.scala 693:37]
  wire  _info_param_imm_T_58 = info_alu_isa_lui | info_alu_isa_auipc; // @[Decoder.scala 517:37]
  wire [31:0] _info_param_imm_T_61 = io_x[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _info_param_imm_T_63 = {_info_param_imm_T_61,io_x[31:12],12'h0}; // @[Cat.scala 33:92]
  wire [43:0] _info_param_imm_T_66 = io_x[31] ? 44'hfffffffffff : 44'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _info_param_imm_T_70 = {_info_param_imm_T_66,io_x[19:12],io_x[20],io_x[30:21],1'h0}; // @[Cat.scala 33:92]
  wire [31:0] _info_lsu_isa_sc_d_T = io_x & 32'hf800707f; // @[Decoder.scala 824:37]
  wire  info_lsu_isa_sc_d = 32'h1800302f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 824:37]
  wire  info_lsu_isa_sc_w = 32'h1800202f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 813:37]
  wire  _info_param_imm_T_71 = info_lsu_isa_sc_d | info_lsu_isa_sc_w; // @[riscv_isa.scala 140:20]
  wire [31:0] _info_lsu_isa_lr_d_T = io_x & 32'hf9f0707f; // @[Decoder.scala 823:37]
  wire  info_lsu_isa_lr_d = 32'h1000302f == _info_lsu_isa_lr_d_T; // @[Decoder.scala 823:37]
  wire  info_lsu_isa_lr_w = 32'h1000202f == _info_lsu_isa_lr_d_T; // @[Decoder.scala 812:37]
  wire  _info_param_imm_T_72 = info_lsu_isa_lr_d | info_lsu_isa_lr_w; // @[riscv_isa.scala 141:20]
  wire  _info_param_imm_T_73 = _info_param_imm_T_71 | _info_param_imm_T_72; // @[riscv_isa.scala 146:23]
  wire  info_lsu_isa_amoswap_w = 32'h800202f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 814:37]
  wire  info_lsu_isa_amoadd_w = 32'h202f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 815:37]
  wire  info_lsu_isa_amoxor_w = 32'h2000202f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 816:37]
  wire  info_lsu_isa_amoand_w = 32'h6000202f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 817:37]
  wire  info_lsu_isa_amoor_w = 32'h4000202f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 818:37]
  wire  info_lsu_isa_amomin_w = 32'h8000202f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 819:37]
  wire  info_lsu_isa_amomax_w = 32'ha000202f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 820:37]
  wire  info_lsu_isa_amominu_w = 32'hc000202f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 821:37]
  wire  info_lsu_isa_amomaxu_w = 32'he000202f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 822:37]
  wire  info_lsu_isa_amoswap_d = 32'h800302f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 825:37]
  wire  info_lsu_isa_amoadd_d = 32'h302f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 826:37]
  wire  info_lsu_isa_amoxor_d = 32'h2000302f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 827:37]
  wire  info_lsu_isa_amoand_d = 32'h6000302f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 828:37]
  wire  info_lsu_isa_amoor_d = 32'h4000302f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 829:37]
  wire  info_lsu_isa_amomin_d = 32'h8000302f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 830:37]
  wire  info_lsu_isa_amomax_d = 32'ha000302f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 831:37]
  wire  info_lsu_isa_amominu_d = 32'hc000302f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 832:37]
  wire  info_lsu_isa_amomaxu_d = 32'he000302f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 833:37]
  wire  _info_param_imm_T_92 = info_lsu_isa_amoswap_w | info_lsu_isa_amoadd_w | info_lsu_isa_amoxor_w |
    info_lsu_isa_amoand_w | info_lsu_isa_amoor_w | info_lsu_isa_amomin_w | info_lsu_isa_amomax_w |
    info_lsu_isa_amominu_w | info_lsu_isa_amomaxu_w | info_lsu_isa_amoswap_d | info_lsu_isa_amoadd_d |
    info_lsu_isa_amoxor_d | info_lsu_isa_amoand_d | info_lsu_isa_amoor_d | info_lsu_isa_amomin_d | info_lsu_isa_amomax_d
     | info_lsu_isa_amominu_d | info_lsu_isa_amomaxu_d | _info_param_imm_T_71; // @[riscv_isa.scala 148:205]
  wire  _info_param_imm_T_93 = _info_param_imm_T_73 | _info_param_imm_T_92; // @[Decoder.scala 519:41]
  wire [63:0] _info_param_imm_T_96 = {62'h0,io_x[26:25]}; // @[Cat.scala 33:92]
  wire [31:0] _info_alu_isa_slli_T = io_x & 32'hfc00707f; // @[Decoder.scala 701:37]
  wire  info_alu_isa_slli = 32'h1013 == _info_alu_isa_slli_T; // @[Decoder.scala 701:37]
  wire  info_alu_isa_srli = 32'h5013 == _info_alu_isa_slli_T; // @[Decoder.scala 703:37]
  wire  info_alu_isa_srai = 32'h40005013 == _info_alu_isa_slli_T; // @[Decoder.scala 705:37]
  wire [31:0] _info_alu_isa_slliw_T = io_x & 32'hfe00707f; // @[Decoder.scala 702:37]
  wire  info_alu_isa_slliw = 32'h101b == _info_alu_isa_slliw_T; // @[Decoder.scala 702:37]
  wire  info_alu_isa_srliw = 32'h501b == _info_alu_isa_slliw_T; // @[Decoder.scala 704:37]
  wire  info_alu_isa_sraiw = 32'h4000501b == _info_alu_isa_slliw_T; // @[Decoder.scala 706:37]
  wire  _info_param_imm_T_174 = info_alu_isa_slli | info_alu_isa_srli | info_alu_isa_srai | info_alu_isa_slliw |
    info_alu_isa_srliw | info_alu_isa_sraiw; // @[Decoder.scala 521:120]
  wire [63:0] _info_param_imm_T_177 = {58'h0,io_x[25:20]}; // @[Cat.scala 33:92]
  wire [63:0] _info_param_imm_T_178 = _info_param_imm_T_174 ? _info_param_imm_T_177 : 64'h0; // @[Mux.scala 101:16]
  wire [63:0] _info_param_imm_T_180 = _info_param_imm_T_93 ? _info_param_imm_T_96 : _info_param_imm_T_178; // @[Mux.scala 101:16]
  wire  info_bru_isa_jal = 32'h6f == _info_alu_isa_lui_T; // @[Decoder.scala 724:37]
  wire [63:0] _info_param_imm_T_181 = info_bru_isa_jal ? _info_param_imm_T_70 : _info_param_imm_T_180; // @[Mux.scala 101:16]
  wire [63:0] _info_param_imm_T_182 = _info_param_imm_T_58 ? _info_param_imm_T_63 : _info_param_imm_T_181; // @[Mux.scala 101:16]
  wire [63:0] _info_param_imm_T_183 = _info_param_imm_T_50 ? _info_param_imm_T_57 : _info_param_imm_T_182; // @[Mux.scala 101:16]
  wire [63:0] _info_param_imm_T_184 = _info_param_imm_T_37 ? _info_param_imm_T_45 : _info_param_imm_T_183; // @[Mux.scala 101:16]
  wire [31:0] _info_privil_isa_hsv_d_T = io_x & 32'hfe007fff; // @[Decoder.scala 810:40]
  wire  info_privil_isa_hsv_d = 32'h6e004073 == _info_privil_isa_hsv_d_T; // @[Decoder.scala 810:40]
  wire [4:0] _info_param_raw_rd0_T_1 = info_privil_isa_hsv_d ? 5'h0 : io_x[11:7]; // @[Mux.scala 101:16]
  wire  info_privil_isa_hsv_w = 32'h6a004073 == _info_privil_isa_hsv_d_T; // @[Decoder.scala 807:40]
  wire [4:0] _info_param_raw_rd0_T_2 = info_privil_isa_hsv_w ? 5'h0 : _info_param_raw_rd0_T_1; // @[Mux.scala 101:16]
  wire  info_privil_isa_hsv_h = 32'h66004073 == _info_privil_isa_hsv_d_T; // @[Decoder.scala 806:40]
  wire [4:0] _info_param_raw_rd0_T_3 = info_privil_isa_hsv_h ? 5'h0 : _info_param_raw_rd0_T_2; // @[Mux.scala 101:16]
  wire  info_privil_isa_hsv_b = 32'h62004073 == _info_privil_isa_hsv_d_T; // @[Decoder.scala 805:40]
  wire [4:0] _info_param_raw_rd0_T_4 = info_privil_isa_hsv_b ? 5'h0 : _info_param_raw_rd0_T_3; // @[Mux.scala 101:16]
  wire  info_privil_isa_hfence_gvma = 32'h62000073 == _info_privil_isa_hsv_d_T; // @[Decoder.scala 796:40]
  wire [4:0] _info_param_raw_rd0_T_5 = info_privil_isa_hfence_gvma ? 5'h0 : _info_param_raw_rd0_T_4; // @[Mux.scala 101:16]
  wire  info_privil_isa_hfence_vvma = 32'h22000073 == _info_privil_isa_hsv_d_T; // @[Decoder.scala 795:40]
  wire [4:0] _info_param_raw_rd0_T_6 = info_privil_isa_hfence_vvma ? 5'h0 : _info_param_raw_rd0_T_5; // @[Mux.scala 101:16]
  wire  info_privil_isa_dret = 32'h7b200073 == io_x; // @[Decoder.scala 791:40]
  wire [4:0] _info_param_raw_rd0_T_7 = info_privil_isa_dret ? 5'h0 : _info_param_raw_rd0_T_6; // @[Mux.scala 101:16]
  wire  info_privil_isa_sret = 32'h10200073 == io_x; // @[Decoder.scala 790:40]
  wire [4:0] _info_param_raw_rd0_T_8 = info_privil_isa_sret ? 5'h0 : _info_param_raw_rd0_T_7; // @[Mux.scala 101:16]
  wire  info_privil_isa_uret = 32'h200073 == io_x; // @[Decoder.scala 789:40]
  wire [4:0] _info_param_raw_rd0_T_9 = info_privil_isa_uret ? 5'h0 : _info_param_raw_rd0_T_8; // @[Mux.scala 101:16]
  wire  info_privil_isa_mret = 32'h30200073 == io_x; // @[Decoder.scala 788:40]
  wire [4:0] _info_param_raw_rd0_T_10 = info_privil_isa_mret ? 5'h0 : _info_param_raw_rd0_T_9; // @[Mux.scala 101:16]
  wire  info_privil_isa_ebreak = 32'h100073 == io_x; // @[Decoder.scala 787:40]
  wire [4:0] _info_param_raw_rd0_T_11 = info_privil_isa_ebreak ? 5'h0 : _info_param_raw_rd0_T_10; // @[Mux.scala 101:16]
  wire  info_privil_isa_ecall = 32'h73 == io_x; // @[Decoder.scala 786:40]
  wire [4:0] _info_param_raw_rd0_T_12 = info_privil_isa_ecall ? 5'h0 : _info_param_raw_rd0_T_11; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rd0_T_15 = info_lsu_isa_sd ? 5'h0 : _info_param_raw_rd0_T_12; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rd0_T_16 = info_lsu_isa_sw ? 5'h0 : _info_param_raw_rd0_T_15; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rd0_T_17 = info_lsu_isa_sh ? 5'h0 : _info_param_raw_rd0_T_16; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rd0_T_18 = info_lsu_isa_sb ? 5'h0 : _info_param_raw_rd0_T_17; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rd0_T_19 = info_bru_isa_bgeu ? 5'h0 : _info_param_raw_rd0_T_18; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rd0_T_20 = info_bru_isa_bltu ? 5'h0 : _info_param_raw_rd0_T_19; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rd0_T_21 = info_bru_isa_bge ? 5'h0 : _info_param_raw_rd0_T_20; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rd0_T_22 = info_bru_isa_blt ? 5'h0 : _info_param_raw_rd0_T_21; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rd0_T_23 = info_bru_isa_bne ? 5'h0 : _info_param_raw_rd0_T_22; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rd0_T_24 = info_bru_isa_beq ? 5'h0 : _info_param_raw_rd0_T_23; // @[Mux.scala 101:16]
  wire  info_alu_isa_wfi = 32'h10500073 == io_x; // @[Decoder.scala 722:37]
  wire [4:0] _info_param_raw_rs1_T_1 = info_privil_isa_dret ? 5'h0 : io_x[19:15]; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs1_T_2 = info_privil_isa_mret ? 5'h0 : _info_param_raw_rs1_T_1; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs1_T_3 = info_privil_isa_sret ? 5'h0 : _info_param_raw_rs1_T_2; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs1_T_4 = info_privil_isa_uret ? 5'h0 : _info_param_raw_rs1_T_3; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs1_T_5 = info_privil_isa_ebreak ? 5'h0 : _info_param_raw_rs1_T_4; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs1_T_6 = info_privil_isa_ecall ? 5'h0 : _info_param_raw_rs1_T_5; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs1_T_7 = info_bru_isa_jal ? 5'h0 : _info_param_raw_rs1_T_6; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs1_T_8 = info_alu_isa_wfi ? 5'h0 : _info_param_raw_rs1_T_7; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs1_T_9 = info_alu_isa_auipc ? 5'h0 : _info_param_raw_rs1_T_8; // @[Mux.scala 101:16]
  wire  _info_param_raw_rs2_T_5 = info_csr_isa_rw | info_csr_isa_rs | info_csr_isa_rc | info_csr_isa_rwi |
    info_csr_isa_rsi | info_csr_isa_rci; // @[riscv_isa.scala 179:41]
  wire [31:0] _info_privil_isa_hlv_d_T = io_x & 32'hfff0707f; // @[Decoder.scala 809:40]
  wire  info_privil_isa_hlv_d = 32'h6c004073 == _info_privil_isa_hlv_d_T; // @[Decoder.scala 809:40]
  wire [4:0] _info_param_raw_rs2_T_6 = info_privil_isa_hlv_d ? 5'h0 : io_x[24:20]; // @[Mux.scala 101:16]
  wire  info_privil_isa_hlv_wu = 32'h68104073 == _info_privil_isa_hlv_d_T; // @[Decoder.scala 808:40]
  wire [4:0] _info_param_raw_rs2_T_7 = info_privil_isa_hlv_wu ? 5'h0 : _info_param_raw_rs2_T_6; // @[Mux.scala 101:16]
  wire  info_privil_isa_hlvx_wu = 32'h68304073 == _info_privil_isa_hlv_d_T; // @[Decoder.scala 804:40]
  wire [4:0] _info_param_raw_rs2_T_8 = info_privil_isa_hlvx_wu ? 5'h0 : _info_param_raw_rs2_T_7; // @[Mux.scala 101:16]
  wire  info_privil_isa_hlv_w = 32'h68004073 == _info_privil_isa_hlv_d_T; // @[Decoder.scala 803:40]
  wire [4:0] _info_param_raw_rs2_T_9 = info_privil_isa_hlv_w ? 5'h0 : _info_param_raw_rs2_T_8; // @[Mux.scala 101:16]
  wire  info_privil_isa_hlvx_hu = 32'h64304073 == _info_privil_isa_hlv_d_T; // @[Decoder.scala 802:40]
  wire [4:0] _info_param_raw_rs2_T_10 = info_privil_isa_hlvx_hu ? 5'h0 : _info_param_raw_rs2_T_9; // @[Mux.scala 101:16]
  wire  info_privil_isa_hlv_hu = 32'h64104073 == _info_privil_isa_hlv_d_T; // @[Decoder.scala 801:40]
  wire [4:0] _info_param_raw_rs2_T_11 = info_privil_isa_hlv_hu ? 5'h0 : _info_param_raw_rs2_T_10; // @[Mux.scala 101:16]
  wire  info_privil_isa_hlv_h = 32'h64004073 == _info_privil_isa_hlv_d_T; // @[Decoder.scala 800:40]
  wire [4:0] _info_param_raw_rs2_T_12 = info_privil_isa_hlv_h ? 5'h0 : _info_param_raw_rs2_T_11; // @[Mux.scala 101:16]
  wire  info_privil_isa_hlv_bu = 32'h60104073 == _info_privil_isa_hlv_d_T; // @[Decoder.scala 799:40]
  wire [4:0] _info_param_raw_rs2_T_13 = info_privil_isa_hlv_bu ? 5'h0 : _info_param_raw_rs2_T_12; // @[Mux.scala 101:16]
  wire  info_privil_isa_hlv_b = 32'h60004073 == _info_privil_isa_hlv_d_T; // @[Decoder.scala 798:40]
  wire [4:0] _info_param_raw_rs2_T_14 = info_privil_isa_hlv_b ? 5'h0 : _info_param_raw_rs2_T_13; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_47 = _info_param_raw_rs2_T_5 ? 5'h0 : _info_param_raw_rs2_T_14; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_48 = info_privil_isa_dret ? 5'h0 : _info_param_raw_rs2_T_47; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_49 = info_privil_isa_mret ? 5'h0 : _info_param_raw_rs2_T_48; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_50 = info_privil_isa_sret ? 5'h0 : _info_param_raw_rs2_T_49; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_51 = info_privil_isa_uret ? 5'h0 : _info_param_raw_rs2_T_50; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_52 = info_privil_isa_ebreak ? 5'h0 : _info_param_raw_rs2_T_51; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_53 = info_privil_isa_ecall ? 5'h0 : _info_param_raw_rs2_T_52; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_55 = info_lsu_isa_lr_d ? 5'h0 : _info_param_raw_rs2_T_53; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_56 = info_lsu_isa_lr_w ? 5'h0 : _info_param_raw_rs2_T_55; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_57 = info_lsu_isa_fence_i ? 5'h0 : _info_param_raw_rs2_T_56; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_58 = info_lsu_isa_fence ? 5'h0 : _info_param_raw_rs2_T_57; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_59 = info_lsu_isa_ld ? 5'h0 : _info_param_raw_rs2_T_58; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_60 = info_lsu_isa_lwu ? 5'h0 : _info_param_raw_rs2_T_59; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_61 = info_lsu_isa_lhu ? 5'h0 : _info_param_raw_rs2_T_60; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_62 = info_lsu_isa_lbu ? 5'h0 : _info_param_raw_rs2_T_61; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_63 = info_lsu_isa_lw ? 5'h0 : _info_param_raw_rs2_T_62; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_64 = info_lsu_isa_lh ? 5'h0 : _info_param_raw_rs2_T_63; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_65 = info_lsu_isa_lb ? 5'h0 : _info_param_raw_rs2_T_64; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_66 = info_bru_isa_jalr ? 5'h0 : _info_param_raw_rs2_T_65; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_67 = info_bru_isa_jal ? 5'h0 : _info_param_raw_rs2_T_66; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_68 = info_alu_isa_wfi ? 5'h0 : _info_param_raw_rs2_T_67; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_69 = info_alu_isa_sraiw ? 5'h0 : _info_param_raw_rs2_T_68; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_70 = info_alu_isa_srliw ? 5'h0 : _info_param_raw_rs2_T_69; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_71 = info_alu_isa_slliw ? 5'h0 : _info_param_raw_rs2_T_70; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_72 = info_alu_isa_addiw ? 5'h0 : _info_param_raw_rs2_T_71; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_73 = info_alu_isa_srai ? 5'h0 : _info_param_raw_rs2_T_72; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_74 = info_alu_isa_srli ? 5'h0 : _info_param_raw_rs2_T_73; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_75 = info_alu_isa_slli ? 5'h0 : _info_param_raw_rs2_T_74; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_76 = info_alu_isa_srai ? 5'h0 : _info_param_raw_rs2_T_75; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_77 = info_alu_isa_srli ? 5'h0 : _info_param_raw_rs2_T_76; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_78 = info_alu_isa_slli ? 5'h0 : _info_param_raw_rs2_T_77; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_79 = info_alu_isa_andi ? 5'h0 : _info_param_raw_rs2_T_78; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_80 = info_alu_isa_ori ? 5'h0 : _info_param_raw_rs2_T_79; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_81 = info_alu_isa_xori ? 5'h0 : _info_param_raw_rs2_T_80; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_82 = info_alu_isa_sltiu ? 5'h0 : _info_param_raw_rs2_T_81; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_83 = info_alu_isa_slti ? 5'h0 : _info_param_raw_rs2_T_82; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_84 = info_alu_isa_addi ? 5'h0 : _info_param_raw_rs2_T_83; // @[Mux.scala 101:16]
  wire [4:0] _info_param_raw_rs2_T_85 = info_alu_isa_auipc ? 5'h0 : _info_param_raw_rs2_T_84; // @[Mux.scala 101:16]
  assign io_info_alu_isa_lui = 32'h37 == _info_alu_isa_lui_T; // @[Decoder.scala 692:37]
  assign io_info_alu_isa_auipc = 32'h17 == _info_alu_isa_lui_T; // @[Decoder.scala 693:37]
  assign io_info_alu_isa_addi = 32'h13 == _info_bru_isa_jalr_T; // @[Decoder.scala 694:37]
  assign io_info_alu_isa_addiw = 32'h1b == _info_bru_isa_jalr_T; // @[Decoder.scala 695:37]
  assign io_info_alu_isa_slti = 32'h2013 == _info_bru_isa_jalr_T; // @[Decoder.scala 696:37]
  assign io_info_alu_isa_sltiu = 32'h3013 == _info_bru_isa_jalr_T; // @[Decoder.scala 697:37]
  assign io_info_alu_isa_xori = 32'h4013 == _info_bru_isa_jalr_T; // @[Decoder.scala 698:37]
  assign io_info_alu_isa_ori = 32'h6013 == _info_bru_isa_jalr_T; // @[Decoder.scala 699:37]
  assign io_info_alu_isa_andi = 32'h7013 == _info_bru_isa_jalr_T; // @[Decoder.scala 700:37]
  assign io_info_alu_isa_slli = 32'h1013 == _info_alu_isa_slli_T; // @[Decoder.scala 701:37]
  assign io_info_alu_isa_slliw = 32'h101b == _info_alu_isa_slliw_T; // @[Decoder.scala 702:37]
  assign io_info_alu_isa_srli = 32'h5013 == _info_alu_isa_slli_T; // @[Decoder.scala 703:37]
  assign io_info_alu_isa_srliw = 32'h501b == _info_alu_isa_slliw_T; // @[Decoder.scala 704:37]
  assign io_info_alu_isa_srai = 32'h40005013 == _info_alu_isa_slli_T; // @[Decoder.scala 705:37]
  assign io_info_alu_isa_sraiw = 32'h4000501b == _info_alu_isa_slliw_T; // @[Decoder.scala 706:37]
  assign io_info_alu_isa_add = 32'h33 == _info_alu_isa_slliw_T; // @[Decoder.scala 707:37]
  assign io_info_alu_isa_addw = 32'h3b == _info_alu_isa_slliw_T; // @[Decoder.scala 708:37]
  assign io_info_alu_isa_sub = 32'h40000033 == _info_alu_isa_slliw_T; // @[Decoder.scala 709:37]
  assign io_info_alu_isa_subw = 32'h4000003b == _info_alu_isa_slliw_T; // @[Decoder.scala 710:37]
  assign io_info_alu_isa_sll = 32'h1033 == _info_alu_isa_slliw_T; // @[Decoder.scala 711:37]
  assign io_info_alu_isa_sllw = 32'h103b == _info_alu_isa_slliw_T; // @[Decoder.scala 712:37]
  assign io_info_alu_isa_slt = 32'h2033 == _info_alu_isa_slliw_T; // @[Decoder.scala 713:37]
  assign io_info_alu_isa_sltu = 32'h3033 == _info_alu_isa_slliw_T; // @[Decoder.scala 714:37]
  assign io_info_alu_isa_xor = 32'h4033 == _info_alu_isa_slliw_T; // @[Decoder.scala 715:37]
  assign io_info_alu_isa_srl = 32'h5033 == _info_alu_isa_slliw_T; // @[Decoder.scala 716:37]
  assign io_info_alu_isa_srlw = 32'h503b == _info_alu_isa_slliw_T; // @[Decoder.scala 717:37]
  assign io_info_alu_isa_sra = 32'h40005033 == _info_alu_isa_slliw_T; // @[Decoder.scala 718:37]
  assign io_info_alu_isa_sraw = 32'h4000503b == _info_alu_isa_slliw_T; // @[Decoder.scala 719:37]
  assign io_info_alu_isa_or = 32'h6033 == _info_alu_isa_slliw_T; // @[Decoder.scala 720:37]
  assign io_info_alu_isa_and = 32'h7033 == _info_alu_isa_slliw_T; // @[Decoder.scala 721:37]
  assign io_info_alu_isa_wfi = 32'h10500073 == io_x; // @[Decoder.scala 722:37]
  assign io_info_bru_isa_jal = 32'h6f == _info_alu_isa_lui_T; // @[Decoder.scala 724:37]
  assign io_info_bru_isa_jalr = 32'h67 == _info_bru_isa_jalr_T; // @[Decoder.scala 725:37]
  assign io_info_bru_isa_beq = 32'h63 == _info_bru_isa_jalr_T; // @[Decoder.scala 726:37]
  assign io_info_bru_isa_bne = 32'h1063 == _info_bru_isa_jalr_T; // @[Decoder.scala 727:37]
  assign io_info_bru_isa_blt = 32'h4063 == _info_bru_isa_jalr_T; // @[Decoder.scala 728:37]
  assign io_info_bru_isa_bge = 32'h5063 == _info_bru_isa_jalr_T; // @[Decoder.scala 729:37]
  assign io_info_bru_isa_bltu = 32'h6063 == _info_bru_isa_jalr_T; // @[Decoder.scala 730:37]
  assign io_info_bru_isa_bgeu = 32'h7063 == _info_bru_isa_jalr_T; // @[Decoder.scala 731:37]
  assign io_info_lsu_isa_lb = 32'h3 == _info_bru_isa_jalr_T; // @[Decoder.scala 733:37]
  assign io_info_lsu_isa_lh = 32'h1003 == _info_bru_isa_jalr_T; // @[Decoder.scala 734:37]
  assign io_info_lsu_isa_lw = 32'h2003 == _info_bru_isa_jalr_T; // @[Decoder.scala 735:37]
  assign io_info_lsu_isa_ld = 32'h3003 == _info_bru_isa_jalr_T; // @[Decoder.scala 736:37]
  assign io_info_lsu_isa_lbu = 32'h4003 == _info_bru_isa_jalr_T; // @[Decoder.scala 737:37]
  assign io_info_lsu_isa_lhu = 32'h5003 == _info_bru_isa_jalr_T; // @[Decoder.scala 738:37]
  assign io_info_lsu_isa_lwu = 32'h6003 == _info_bru_isa_jalr_T; // @[Decoder.scala 739:37]
  assign io_info_lsu_isa_sb = 32'h23 == _info_bru_isa_jalr_T; // @[Decoder.scala 740:37]
  assign io_info_lsu_isa_sh = 32'h1023 == _info_bru_isa_jalr_T; // @[Decoder.scala 741:37]
  assign io_info_lsu_isa_sw = 32'h2023 == _info_bru_isa_jalr_T; // @[Decoder.scala 742:37]
  assign io_info_lsu_isa_sd = 32'h3023 == _info_bru_isa_jalr_T; // @[Decoder.scala 743:37]
  assign io_info_lsu_isa_fence = 32'hf == _info_bru_isa_jalr_T; // @[Decoder.scala 744:37]
  assign io_info_lsu_isa_fence_i = 32'h100f == _info_bru_isa_jalr_T; // @[Decoder.scala 745:37]
  assign io_info_lsu_isa_sfence_vma = 32'h12000073 == _info_privil_isa_hsv_d_T; // @[Decoder.scala 746:37]
  assign io_info_lsu_isa_lr_w = 32'h1000202f == _info_lsu_isa_lr_d_T; // @[Decoder.scala 812:37]
  assign io_info_lsu_isa_sc_w = 32'h1800202f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 813:37]
  assign io_info_lsu_isa_amoswap_w = 32'h800202f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 814:37]
  assign io_info_lsu_isa_amoadd_w = 32'h202f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 815:37]
  assign io_info_lsu_isa_amoxor_w = 32'h2000202f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 816:37]
  assign io_info_lsu_isa_amoand_w = 32'h6000202f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 817:37]
  assign io_info_lsu_isa_amoor_w = 32'h4000202f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 818:37]
  assign io_info_lsu_isa_amomin_w = 32'h8000202f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 819:37]
  assign io_info_lsu_isa_amomax_w = 32'ha000202f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 820:37]
  assign io_info_lsu_isa_amominu_w = 32'hc000202f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 821:37]
  assign io_info_lsu_isa_amomaxu_w = 32'he000202f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 822:37]
  assign io_info_lsu_isa_lr_d = 32'h1000302f == _info_lsu_isa_lr_d_T; // @[Decoder.scala 823:37]
  assign io_info_lsu_isa_sc_d = 32'h1800302f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 824:37]
  assign io_info_lsu_isa_amoswap_d = 32'h800302f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 825:37]
  assign io_info_lsu_isa_amoadd_d = 32'h302f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 826:37]
  assign io_info_lsu_isa_amoxor_d = 32'h2000302f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 827:37]
  assign io_info_lsu_isa_amoand_d = 32'h6000302f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 828:37]
  assign io_info_lsu_isa_amoor_d = 32'h4000302f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 829:37]
  assign io_info_lsu_isa_amomin_d = 32'h8000302f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 830:37]
  assign io_info_lsu_isa_amomax_d = 32'ha000302f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 831:37]
  assign io_info_lsu_isa_amominu_d = 32'hc000302f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 832:37]
  assign io_info_lsu_isa_amomaxu_d = 32'he000302f == _info_lsu_isa_sc_d_T; // @[Decoder.scala 833:37]
  assign io_info_csr_isa_rw = 32'h1073 == _info_bru_isa_jalr_T & (io_x[31:20] != 12'h1 & io_x[31:20] != 12'h2 & io_x[31:
    20] != 12'h3); // @[Decoder.scala 748:87]
  assign io_info_csr_isa_rs = 32'h2073 == _info_bru_isa_jalr_T & _info_csr_isa_rw_T_9; // @[Decoder.scala 749:87]
  assign io_info_csr_isa_rc = 32'h3073 == _info_bru_isa_jalr_T & _info_csr_isa_rw_T_9; // @[Decoder.scala 750:87]
  assign io_info_csr_isa_rwi = 32'h5073 == _info_bru_isa_jalr_T & _info_csr_isa_rw_T_9; // @[Decoder.scala 751:87]
  assign io_info_csr_isa_rsi = 32'h6073 == _info_bru_isa_jalr_T & _info_csr_isa_rw_T_9; // @[Decoder.scala 752:87]
  assign io_info_csr_isa_rci = 32'h7073 == _info_bru_isa_jalr_T & _info_csr_isa_rw_T_9; // @[Decoder.scala 753:87]
  assign io_info_mul_isa_mul = 32'h2000033 == _info_alu_isa_slliw_T; // @[Decoder.scala 772:37]
  assign io_info_mul_isa_mulh = 32'h2001033 == _info_alu_isa_slliw_T; // @[Decoder.scala 773:37]
  assign io_info_mul_isa_mulhsu = 32'h2002033 == _info_alu_isa_slliw_T; // @[Decoder.scala 774:37]
  assign io_info_mul_isa_mulhu = 32'h2003033 == _info_alu_isa_slliw_T; // @[Decoder.scala 775:37]
  assign io_info_mul_isa_div = 32'h2004033 == _info_alu_isa_slliw_T; // @[Decoder.scala 776:37]
  assign io_info_mul_isa_divu = 32'h2005033 == _info_alu_isa_slliw_T; // @[Decoder.scala 777:37]
  assign io_info_mul_isa_rem = 32'h2006033 == _info_alu_isa_slliw_T; // @[Decoder.scala 778:37]
  assign io_info_mul_isa_remu = 32'h2007033 == _info_alu_isa_slliw_T; // @[Decoder.scala 779:37]
  assign io_info_mul_isa_mulw = 32'h200003b == _info_alu_isa_slliw_T; // @[Decoder.scala 780:37]
  assign io_info_mul_isa_divw = 32'h200403b == _info_alu_isa_slliw_T; // @[Decoder.scala 781:37]
  assign io_info_mul_isa_divuw = 32'h200503b == _info_alu_isa_slliw_T; // @[Decoder.scala 782:37]
  assign io_info_mul_isa_remw = 32'h200603b == _info_alu_isa_slliw_T; // @[Decoder.scala 783:37]
  assign io_info_mul_isa_remuw = 32'h200703b == _info_alu_isa_slliw_T; // @[Decoder.scala 784:37]
  assign io_info_privil_isa_ecall = 32'h73 == io_x; // @[Decoder.scala 786:40]
  assign io_info_privil_isa_ebreak = 32'h100073 == io_x; // @[Decoder.scala 787:40]
  assign io_info_privil_isa_mret = 32'h30200073 == io_x; // @[Decoder.scala 788:40]
  assign io_info_privil_isa_uret = 32'h200073 == io_x; // @[Decoder.scala 789:40]
  assign io_info_privil_isa_sret = 32'h10200073 == io_x; // @[Decoder.scala 790:40]
  assign io_info_privil_isa_dret = 32'h7b200073 == io_x; // @[Decoder.scala 791:40]
  assign io_info_privil_isa_hfence_vvma = 32'h22000073 == _info_privil_isa_hsv_d_T; // @[Decoder.scala 795:40]
  assign io_info_privil_isa_hfence_gvma = 32'h62000073 == _info_privil_isa_hsv_d_T; // @[Decoder.scala 796:40]
  assign io_info_privil_isa_hlv_b = 32'h60004073 == _info_privil_isa_hlv_d_T; // @[Decoder.scala 798:40]
  assign io_info_privil_isa_hlv_bu = 32'h60104073 == _info_privil_isa_hlv_d_T; // @[Decoder.scala 799:40]
  assign io_info_privil_isa_hlv_h = 32'h64004073 == _info_privil_isa_hlv_d_T; // @[Decoder.scala 800:40]
  assign io_info_privil_isa_hlv_hu = 32'h64104073 == _info_privil_isa_hlv_d_T; // @[Decoder.scala 801:40]
  assign io_info_privil_isa_hlvx_hu = 32'h64304073 == _info_privil_isa_hlv_d_T; // @[Decoder.scala 802:40]
  assign io_info_privil_isa_hlv_w = 32'h68004073 == _info_privil_isa_hlv_d_T; // @[Decoder.scala 803:40]
  assign io_info_privil_isa_hlvx_wu = 32'h68304073 == _info_privil_isa_hlv_d_T; // @[Decoder.scala 804:40]
  assign io_info_privil_isa_hsv_b = 32'h62004073 == _info_privil_isa_hsv_d_T; // @[Decoder.scala 805:40]
  assign io_info_privil_isa_hsv_h = 32'h66004073 == _info_privil_isa_hsv_d_T; // @[Decoder.scala 806:40]
  assign io_info_privil_isa_hsv_w = 32'h6a004073 == _info_privil_isa_hsv_d_T; // @[Decoder.scala 807:40]
  assign io_info_privil_isa_hlv_wu = 32'h68104073 == _info_privil_isa_hlv_d_T; // @[Decoder.scala 808:40]
  assign io_info_privil_isa_hlv_d = 32'h6c004073 == _info_privil_isa_hlv_d_T; // @[Decoder.scala 809:40]
  assign io_info_privil_isa_hsv_d = 32'h6e004073 == _info_privil_isa_hsv_d_T; // @[Decoder.scala 810:40]
  assign io_info_param_pc = io_pc[38:0]; // @[Decoder.scala 498:20 501:19]
  assign io_info_param_imm = _info_param_imm_T_21 ? _info_param_imm_T_34 : _info_param_imm_T_184; // @[Mux.scala 101:16]
  assign io_info_param_raw_rs1 = info_alu_isa_lui ? 5'h0 : _info_param_raw_rs1_T_9; // @[Mux.scala 101:16]
  assign io_info_param_raw_rs2 = info_alu_isa_lui ? 5'h0 : _info_param_raw_rs2_T_85; // @[Mux.scala 101:16]
  assign io_info_param_raw_rd0 = info_alu_isa_wfi ? 5'h0 : _info_param_raw_rd0_T_24; // @[Mux.scala 101:16]
endmodule
module IF4(
  input         clock,
  input         reset,
  output        io_if4_req_0_ready,
  input         io_if4_req_0_valid,
  input         io_if4_req_0_bits_isRVC,
  input  [31:0] io_if4_req_0_bits_instr,
  input  [38:0] io_if4_req_0_bits_pc,
  input         io_if4_req_0_bits_isRedirect,
  input  [38:0] io_if4_req_0_bits_target,
  output        io_btbResp_0_ready,
  input         io_btbResp_0_valid,
  input  [38:0] io_btbResp_0_bits_target,
  output        io_bimResp_0_ready,
  input         io_bimResp_0_valid,
  input         io_bimResp_0_bits_bim_p,
  input         io_bimResp_0_bits_bim_h,
  input         io_if4_resp_0_ready,
  output        io_if4_resp_0_valid,
  output        io_if4_resp_0_bits_alu_isa_lui,
  output        io_if4_resp_0_bits_alu_isa_auipc,
  output        io_if4_resp_0_bits_alu_isa_addi,
  output        io_if4_resp_0_bits_alu_isa_addiw,
  output        io_if4_resp_0_bits_alu_isa_slti,
  output        io_if4_resp_0_bits_alu_isa_sltiu,
  output        io_if4_resp_0_bits_alu_isa_xori,
  output        io_if4_resp_0_bits_alu_isa_ori,
  output        io_if4_resp_0_bits_alu_isa_andi,
  output        io_if4_resp_0_bits_alu_isa_slli,
  output        io_if4_resp_0_bits_alu_isa_slliw,
  output        io_if4_resp_0_bits_alu_isa_srli,
  output        io_if4_resp_0_bits_alu_isa_srliw,
  output        io_if4_resp_0_bits_alu_isa_srai,
  output        io_if4_resp_0_bits_alu_isa_sraiw,
  output        io_if4_resp_0_bits_alu_isa_add,
  output        io_if4_resp_0_bits_alu_isa_addw,
  output        io_if4_resp_0_bits_alu_isa_sub,
  output        io_if4_resp_0_bits_alu_isa_subw,
  output        io_if4_resp_0_bits_alu_isa_sll,
  output        io_if4_resp_0_bits_alu_isa_sllw,
  output        io_if4_resp_0_bits_alu_isa_slt,
  output        io_if4_resp_0_bits_alu_isa_sltu,
  output        io_if4_resp_0_bits_alu_isa_xor,
  output        io_if4_resp_0_bits_alu_isa_srl,
  output        io_if4_resp_0_bits_alu_isa_srlw,
  output        io_if4_resp_0_bits_alu_isa_sra,
  output        io_if4_resp_0_bits_alu_isa_sraw,
  output        io_if4_resp_0_bits_alu_isa_or,
  output        io_if4_resp_0_bits_alu_isa_and,
  output        io_if4_resp_0_bits_alu_isa_wfi,
  output        io_if4_resp_0_bits_bru_isa_jal,
  output        io_if4_resp_0_bits_bru_isa_jalr,
  output        io_if4_resp_0_bits_bru_isa_beq,
  output        io_if4_resp_0_bits_bru_isa_bne,
  output        io_if4_resp_0_bits_bru_isa_blt,
  output        io_if4_resp_0_bits_bru_isa_bge,
  output        io_if4_resp_0_bits_bru_isa_bltu,
  output        io_if4_resp_0_bits_bru_isa_bgeu,
  output        io_if4_resp_0_bits_lsu_isa_lb,
  output        io_if4_resp_0_bits_lsu_isa_lh,
  output        io_if4_resp_0_bits_lsu_isa_lw,
  output        io_if4_resp_0_bits_lsu_isa_ld,
  output        io_if4_resp_0_bits_lsu_isa_lbu,
  output        io_if4_resp_0_bits_lsu_isa_lhu,
  output        io_if4_resp_0_bits_lsu_isa_lwu,
  output        io_if4_resp_0_bits_lsu_isa_sb,
  output        io_if4_resp_0_bits_lsu_isa_sh,
  output        io_if4_resp_0_bits_lsu_isa_sw,
  output        io_if4_resp_0_bits_lsu_isa_sd,
  output        io_if4_resp_0_bits_lsu_isa_fence,
  output        io_if4_resp_0_bits_lsu_isa_fence_i,
  output        io_if4_resp_0_bits_lsu_isa_sfence_vma,
  output        io_if4_resp_0_bits_lsu_isa_lr_w,
  output        io_if4_resp_0_bits_lsu_isa_sc_w,
  output        io_if4_resp_0_bits_lsu_isa_amoswap_w,
  output        io_if4_resp_0_bits_lsu_isa_amoadd_w,
  output        io_if4_resp_0_bits_lsu_isa_amoxor_w,
  output        io_if4_resp_0_bits_lsu_isa_amoand_w,
  output        io_if4_resp_0_bits_lsu_isa_amoor_w,
  output        io_if4_resp_0_bits_lsu_isa_amomin_w,
  output        io_if4_resp_0_bits_lsu_isa_amomax_w,
  output        io_if4_resp_0_bits_lsu_isa_amominu_w,
  output        io_if4_resp_0_bits_lsu_isa_amomaxu_w,
  output        io_if4_resp_0_bits_lsu_isa_lr_d,
  output        io_if4_resp_0_bits_lsu_isa_sc_d,
  output        io_if4_resp_0_bits_lsu_isa_amoswap_d,
  output        io_if4_resp_0_bits_lsu_isa_amoadd_d,
  output        io_if4_resp_0_bits_lsu_isa_amoxor_d,
  output        io_if4_resp_0_bits_lsu_isa_amoand_d,
  output        io_if4_resp_0_bits_lsu_isa_amoor_d,
  output        io_if4_resp_0_bits_lsu_isa_amomin_d,
  output        io_if4_resp_0_bits_lsu_isa_amomax_d,
  output        io_if4_resp_0_bits_lsu_isa_amominu_d,
  output        io_if4_resp_0_bits_lsu_isa_amomaxu_d,
  output        io_if4_resp_0_bits_lsu_isa_flw,
  output        io_if4_resp_0_bits_lsu_isa_fsw,
  output        io_if4_resp_0_bits_lsu_isa_fld,
  output        io_if4_resp_0_bits_lsu_isa_fsd,
  output        io_if4_resp_0_bits_csr_isa_rw,
  output        io_if4_resp_0_bits_csr_isa_rs,
  output        io_if4_resp_0_bits_csr_isa_rc,
  output        io_if4_resp_0_bits_csr_isa_rwi,
  output        io_if4_resp_0_bits_csr_isa_rsi,
  output        io_if4_resp_0_bits_csr_isa_rci,
  output        io_if4_resp_0_bits_mul_isa_mul,
  output        io_if4_resp_0_bits_mul_isa_mulh,
  output        io_if4_resp_0_bits_mul_isa_mulhsu,
  output        io_if4_resp_0_bits_mul_isa_mulhu,
  output        io_if4_resp_0_bits_mul_isa_div,
  output        io_if4_resp_0_bits_mul_isa_divu,
  output        io_if4_resp_0_bits_mul_isa_rem,
  output        io_if4_resp_0_bits_mul_isa_remu,
  output        io_if4_resp_0_bits_mul_isa_mulw,
  output        io_if4_resp_0_bits_mul_isa_divw,
  output        io_if4_resp_0_bits_mul_isa_divuw,
  output        io_if4_resp_0_bits_mul_isa_remw,
  output        io_if4_resp_0_bits_mul_isa_remuw,
  output        io_if4_resp_0_bits_privil_isa_ecall,
  output        io_if4_resp_0_bits_privil_isa_ebreak,
  output        io_if4_resp_0_bits_privil_isa_mret,
  output        io_if4_resp_0_bits_privil_isa_uret,
  output        io_if4_resp_0_bits_privil_isa_sret,
  output        io_if4_resp_0_bits_privil_isa_dret,
  output        io_if4_resp_0_bits_privil_isa_hfence_vvma,
  output        io_if4_resp_0_bits_privil_isa_hfence_gvma,
  output        io_if4_resp_0_bits_privil_isa_hlv_b,
  output        io_if4_resp_0_bits_privil_isa_hlv_bu,
  output        io_if4_resp_0_bits_privil_isa_hlv_h,
  output        io_if4_resp_0_bits_privil_isa_hlv_hu,
  output        io_if4_resp_0_bits_privil_isa_hlvx_hu,
  output        io_if4_resp_0_bits_privil_isa_hlv_w,
  output        io_if4_resp_0_bits_privil_isa_hlvx_wu,
  output        io_if4_resp_0_bits_privil_isa_hsv_b,
  output        io_if4_resp_0_bits_privil_isa_hsv_h,
  output        io_if4_resp_0_bits_privil_isa_hsv_w,
  output        io_if4_resp_0_bits_privil_isa_hlv_wu,
  output        io_if4_resp_0_bits_privil_isa_hlv_d,
  output        io_if4_resp_0_bits_privil_isa_hsv_d,
  output        io_if4_resp_0_bits_privil_isa_is_access_fault,
  output        io_if4_resp_0_bits_privil_isa_is_paging_fault,
  output        io_if4_resp_0_bits_fpu_isa_fmadd_s,
  output        io_if4_resp_0_bits_fpu_isa_fmsub_s,
  output        io_if4_resp_0_bits_fpu_isa_fnmsub_s,
  output        io_if4_resp_0_bits_fpu_isa_fnmadd_s,
  output        io_if4_resp_0_bits_fpu_isa_fadd_s,
  output        io_if4_resp_0_bits_fpu_isa_fsub_s,
  output        io_if4_resp_0_bits_fpu_isa_fmul_s,
  output        io_if4_resp_0_bits_fpu_isa_fdiv_s,
  output        io_if4_resp_0_bits_fpu_isa_fsqrt_s,
  output        io_if4_resp_0_bits_fpu_isa_fsgnj_s,
  output        io_if4_resp_0_bits_fpu_isa_fsgnjn_s,
  output        io_if4_resp_0_bits_fpu_isa_fsgnjx_s,
  output        io_if4_resp_0_bits_fpu_isa_fmin_s,
  output        io_if4_resp_0_bits_fpu_isa_fmax_s,
  output        io_if4_resp_0_bits_fpu_isa_fcvt_w_s,
  output        io_if4_resp_0_bits_fpu_isa_fcvt_wu_s,
  output        io_if4_resp_0_bits_fpu_isa_fmv_x_w,
  output        io_if4_resp_0_bits_fpu_isa_feq_s,
  output        io_if4_resp_0_bits_fpu_isa_flt_s,
  output        io_if4_resp_0_bits_fpu_isa_fle_s,
  output        io_if4_resp_0_bits_fpu_isa_fclass_s,
  output        io_if4_resp_0_bits_fpu_isa_fcvt_s_w,
  output        io_if4_resp_0_bits_fpu_isa_fcvt_s_wu,
  output        io_if4_resp_0_bits_fpu_isa_fmv_w_x,
  output        io_if4_resp_0_bits_fpu_isa_fcvt_l_s,
  output        io_if4_resp_0_bits_fpu_isa_fcvt_lu_s,
  output        io_if4_resp_0_bits_fpu_isa_fcvt_s_l,
  output        io_if4_resp_0_bits_fpu_isa_fcvt_s_lu,
  output        io_if4_resp_0_bits_fpu_isa_fmadd_d,
  output        io_if4_resp_0_bits_fpu_isa_fmsub_d,
  output        io_if4_resp_0_bits_fpu_isa_fnmsub_d,
  output        io_if4_resp_0_bits_fpu_isa_fnmadd_d,
  output        io_if4_resp_0_bits_fpu_isa_fadd_d,
  output        io_if4_resp_0_bits_fpu_isa_fsub_d,
  output        io_if4_resp_0_bits_fpu_isa_fmul_d,
  output        io_if4_resp_0_bits_fpu_isa_fdiv_d,
  output        io_if4_resp_0_bits_fpu_isa_fsqrt_d,
  output        io_if4_resp_0_bits_fpu_isa_fsgnj_d,
  output        io_if4_resp_0_bits_fpu_isa_fsgnjn_d,
  output        io_if4_resp_0_bits_fpu_isa_fsgnjx_d,
  output        io_if4_resp_0_bits_fpu_isa_fmin_d,
  output        io_if4_resp_0_bits_fpu_isa_fmax_d,
  output        io_if4_resp_0_bits_fpu_isa_fcvt_s_d,
  output        io_if4_resp_0_bits_fpu_isa_fcvt_d_s,
  output        io_if4_resp_0_bits_fpu_isa_feq_d,
  output        io_if4_resp_0_bits_fpu_isa_flt_d,
  output        io_if4_resp_0_bits_fpu_isa_fle_d,
  output        io_if4_resp_0_bits_fpu_isa_fclass_d,
  output        io_if4_resp_0_bits_fpu_isa_fcvt_w_d,
  output        io_if4_resp_0_bits_fpu_isa_fcvt_wu_d,
  output        io_if4_resp_0_bits_fpu_isa_fcvt_d_w,
  output        io_if4_resp_0_bits_fpu_isa_fcvt_d_wu,
  output        io_if4_resp_0_bits_fpu_isa_fcvt_l_d,
  output        io_if4_resp_0_bits_fpu_isa_fcvt_lu_d,
  output        io_if4_resp_0_bits_fpu_isa_fmv_x_d,
  output        io_if4_resp_0_bits_fpu_isa_fcvt_d_l,
  output        io_if4_resp_0_bits_fpu_isa_fcvt_d_lu,
  output        io_if4_resp_0_bits_fpu_isa_fmv_d_x,
  output        io_if4_resp_0_bits_fpu_isa_fcsr_rw,
  output        io_if4_resp_0_bits_fpu_isa_fcsr_rs,
  output        io_if4_resp_0_bits_fpu_isa_fcsr_rc,
  output        io_if4_resp_0_bits_fpu_isa_fcsr_rwi,
  output        io_if4_resp_0_bits_fpu_isa_fcsr_rsi,
  output        io_if4_resp_0_bits_fpu_isa_fcsr_rci,
  output        io_if4_resp_0_bits_param_is_rvc,
  output [38:0] io_if4_resp_0_bits_param_pc,
  output [63:0] io_if4_resp_0_bits_param_imm,
  output [4:0]  io_if4_resp_0_bits_param_raw_rs1,
  output [4:0]  io_if4_resp_0_bits_param_raw_rs2,
  output [4:0]  io_if4_resp_0_bits_param_raw_rd0,
  output        io_if4Redirect_valid,
  output [38:0] io_if4Redirect_bits_target,
  input         io_bftq_ready,
  output        io_bftq_valid,
  output [38:0] io_bftq_bits_pc,
  output        io_bftq_bits_bimResp_bim_p,
  output        io_bftq_bits_bimResp_bim_h,
  output        io_bftq_bits_isPredictTaken,
  input         io_jftq_ready,
  output        io_jftq_valid,
  output [38:0] io_jftq_bits_pc,
  output [38:0] io_jftq_bits_btbResp_target,
  output [38:0] io_jftq_bits_rasResp_target,
  output        io_jftq_bits_isRas,
  input         io_flush
);
  wire  ras_clock; // @[IF4.scala 49:19]
  wire  ras_reset; // @[IF4.scala 49:19]
  wire  ras_io_enq_valid; // @[IF4.scala 49:19]
  wire [38:0] ras_io_enq_bits_target; // @[IF4.scala 49:19]
  wire  ras_io_deq_ready; // @[IF4.scala 49:19]
  wire  ras_io_deq_valid; // @[IF4.scala 49:19]
  wire [38:0] ras_io_deq_bits_target; // @[IF4.scala 49:19]
  wire  ras_io_flush; // @[IF4.scala 49:19]
  wire  instr_fifo_clock; // @[IF4.scala 50:26]
  wire  instr_fifo_reset; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_ready; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_valid; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_lui; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_auipc; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_addi; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_addiw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_slti; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_sltiu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_xori; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_ori; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_andi; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_slli; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_slliw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_srli; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_srliw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_srai; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_sraiw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_add; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_addw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_sub; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_subw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_sll; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_sllw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_slt; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_sltu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_xor; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_srl; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_srlw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_sra; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_sraw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_or; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_and; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_alu_isa_wfi; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_bru_isa_jal; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_bru_isa_jalr; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_bru_isa_beq; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_bru_isa_bne; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_bru_isa_blt; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_bru_isa_bge; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_bru_isa_bltu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_bru_isa_bgeu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_lb; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_lh; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_lw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_ld; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_lbu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_lhu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_lwu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_sb; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_sh; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_sw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_sd; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_fence; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_fence_i; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_sfence_vma; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_lr_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_sc_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_amoswap_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_amoadd_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_amoxor_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_amoand_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_amoor_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_amomin_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_amomax_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_amominu_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_amomaxu_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_lr_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_sc_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_amoswap_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_amoadd_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_amoxor_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_amoand_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_amoor_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_amomin_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_amomax_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_amominu_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_lsu_isa_amomaxu_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_csr_isa_rw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_csr_isa_rs; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_csr_isa_rc; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_csr_isa_rwi; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_csr_isa_rsi; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_csr_isa_rci; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_mul_isa_mul; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_mul_isa_mulh; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_mul_isa_mulhsu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_mul_isa_mulhu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_mul_isa_div; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_mul_isa_divu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_mul_isa_rem; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_mul_isa_remu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_mul_isa_mulw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_mul_isa_divw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_mul_isa_divuw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_mul_isa_remw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_mul_isa_remuw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_ecall; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_ebreak; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_mret; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_uret; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_sret; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_dret; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_hfence_vvma; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_hfence_gvma; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_hlv_b; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_hlv_bu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_hlv_h; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_hlv_hu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_hlvx_hu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_hlv_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_hlvx_wu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_hsv_b; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_hsv_h; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_hsv_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_hlv_wu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_hlv_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_hsv_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_is_access_fault; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_privil_isa_is_paging_fault; // @[IF4.scala 50:26]
  wire  instr_fifo_io_enq_0_bits_param_is_rvc; // @[IF4.scala 50:26]
  wire [38:0] instr_fifo_io_enq_0_bits_param_pc; // @[IF4.scala 50:26]
  wire [63:0] instr_fifo_io_enq_0_bits_param_imm; // @[IF4.scala 50:26]
  wire [4:0] instr_fifo_io_enq_0_bits_param_raw_rs1; // @[IF4.scala 50:26]
  wire [4:0] instr_fifo_io_enq_0_bits_param_raw_rs2; // @[IF4.scala 50:26]
  wire [4:0] instr_fifo_io_enq_0_bits_param_raw_rd0; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_ready; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_valid; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_lui; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_auipc; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_addi; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_addiw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_slti; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_sltiu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_xori; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_ori; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_andi; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_slli; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_slliw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_srli; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_srliw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_srai; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_sraiw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_add; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_addw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_sub; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_subw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_sll; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_sllw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_slt; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_sltu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_xor; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_srl; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_srlw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_sra; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_sraw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_or; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_and; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_alu_isa_wfi; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_bru_isa_jal; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_bru_isa_jalr; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_bru_isa_beq; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_bru_isa_bne; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_bru_isa_blt; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_bru_isa_bge; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_bru_isa_bltu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_bru_isa_bgeu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_lb; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_lh; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_lw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_ld; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_lbu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_lhu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_lwu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_sb; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_sh; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_sw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_sd; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_fence; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_fence_i; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_sfence_vma; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_lr_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_sc_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_amoswap_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_amoadd_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_amoxor_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_amoand_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_amoor_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_amomin_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_amomax_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_amominu_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_amomaxu_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_lr_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_sc_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_amoswap_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_amoadd_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_amoxor_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_amoand_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_amoor_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_amomin_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_amomax_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_amominu_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_amomaxu_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_flw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_fsw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_fld; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_lsu_isa_fsd; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_csr_isa_rw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_csr_isa_rs; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_csr_isa_rc; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_csr_isa_rwi; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_csr_isa_rsi; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_csr_isa_rci; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_mul_isa_mul; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_mul_isa_mulh; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_mul_isa_mulhsu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_mul_isa_mulhu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_mul_isa_div; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_mul_isa_divu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_mul_isa_rem; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_mul_isa_remu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_mul_isa_mulw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_mul_isa_divw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_mul_isa_divuw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_mul_isa_remw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_mul_isa_remuw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_ecall; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_ebreak; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_mret; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_uret; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_sret; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_dret; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_hfence_vvma; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_hfence_gvma; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_hlv_b; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_hlv_bu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_hlv_h; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_hlv_hu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_hlvx_hu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_hlv_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_hlvx_wu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_hsv_b; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_hsv_h; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_hsv_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_hlv_wu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_hlv_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_hsv_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_is_access_fault; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_privil_isa_is_paging_fault; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fmadd_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fmsub_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fnmsub_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fnmadd_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fadd_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fsub_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fmul_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fdiv_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fsqrt_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fsgnj_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fsgnjn_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fsgnjx_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fmin_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fmax_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcvt_w_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcvt_wu_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fmv_x_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_feq_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_flt_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fle_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fclass_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcvt_s_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcvt_s_wu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fmv_w_x; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcvt_l_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcvt_lu_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcvt_s_l; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcvt_s_lu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fmadd_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fmsub_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fnmsub_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fnmadd_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fadd_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fsub_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fmul_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fdiv_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fsqrt_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fsgnj_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fsgnjn_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fsgnjx_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fmin_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fmax_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcvt_s_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcvt_d_s; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_feq_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_flt_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fle_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fclass_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcvt_w_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcvt_wu_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcvt_d_w; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcvt_d_wu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcvt_l_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcvt_lu_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fmv_x_d; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcvt_d_l; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcvt_d_lu; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fmv_d_x; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcsr_rw; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcsr_rs; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcsr_rc; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcsr_rwi; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcsr_rsi; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_fpu_isa_fcsr_rci; // @[IF4.scala 50:26]
  wire  instr_fifo_io_deq_0_bits_param_is_rvc; // @[IF4.scala 50:26]
  wire [38:0] instr_fifo_io_deq_0_bits_param_pc; // @[IF4.scala 50:26]
  wire [63:0] instr_fifo_io_deq_0_bits_param_imm; // @[IF4.scala 50:26]
  wire [4:0] instr_fifo_io_deq_0_bits_param_raw_rs1; // @[IF4.scala 50:26]
  wire [4:0] instr_fifo_io_deq_0_bits_param_raw_rs2; // @[IF4.scala 50:26]
  wire [4:0] instr_fifo_io_deq_0_bits_param_raw_rd0; // @[IF4.scala 50:26]
  wire  instr_fifo_io_flush; // @[IF4.scala 50:26]
  wire  bftq_clock; // @[IF4.scala 51:20]
  wire  bftq_reset; // @[IF4.scala 51:20]
  wire  bftq_io_enq_0_ready; // @[IF4.scala 51:20]
  wire  bftq_io_enq_0_valid; // @[IF4.scala 51:20]
  wire [38:0] bftq_io_enq_0_bits_pc; // @[IF4.scala 51:20]
  wire  bftq_io_enq_0_bits_bimResp_bim_p; // @[IF4.scala 51:20]
  wire  bftq_io_enq_0_bits_bimResp_bim_h; // @[IF4.scala 51:20]
  wire  bftq_io_enq_0_bits_isPredictTaken; // @[IF4.scala 51:20]
  wire  bftq_io_deq_0_ready; // @[IF4.scala 51:20]
  wire  bftq_io_deq_0_valid; // @[IF4.scala 51:20]
  wire [38:0] bftq_io_deq_0_bits_pc; // @[IF4.scala 51:20]
  wire  bftq_io_deq_0_bits_bimResp_bim_p; // @[IF4.scala 51:20]
  wire  bftq_io_deq_0_bits_bimResp_bim_h; // @[IF4.scala 51:20]
  wire  bftq_io_deq_0_bits_isPredictTaken; // @[IF4.scala 51:20]
  wire  bftq_io_flush; // @[IF4.scala 51:20]
  wire  jftq_clock; // @[IF4.scala 52:20]
  wire  jftq_reset; // @[IF4.scala 52:20]
  wire  jftq_io_enq_0_ready; // @[IF4.scala 52:20]
  wire  jftq_io_enq_0_valid; // @[IF4.scala 52:20]
  wire [38:0] jftq_io_enq_0_bits_pc; // @[IF4.scala 52:20]
  wire [38:0] jftq_io_enq_0_bits_btbResp_target; // @[IF4.scala 52:20]
  wire [38:0] jftq_io_enq_0_bits_rasResp_target; // @[IF4.scala 52:20]
  wire  jftq_io_enq_0_bits_isRas; // @[IF4.scala 52:20]
  wire  jftq_io_deq_0_ready; // @[IF4.scala 52:20]
  wire  jftq_io_deq_0_valid; // @[IF4.scala 52:20]
  wire [38:0] jftq_io_deq_0_bits_pc; // @[IF4.scala 52:20]
  wire [38:0] jftq_io_deq_0_bits_btbResp_target; // @[IF4.scala 52:20]
  wire [38:0] jftq_io_deq_0_bits_rasResp_target; // @[IF4.scala 52:20]
  wire  jftq_io_deq_0_bits_isRas; // @[IF4.scala 52:20]
  wire  jftq_io_flush; // @[IF4.scala 52:20]
  wire  bRePort_clock; // @[IF4.scala 55:23]
  wire  bRePort_reset; // @[IF4.scala 55:23]
  wire  bRePort_io_enq_0_ready; // @[IF4.scala 55:23]
  wire  bRePort_io_enq_0_valid; // @[IF4.scala 55:23]
  wire [38:0] bRePort_io_enq_0_bits_pc; // @[IF4.scala 55:23]
  wire  bRePort_io_enq_0_bits_bimResp_bim_p; // @[IF4.scala 55:23]
  wire  bRePort_io_enq_0_bits_bimResp_bim_h; // @[IF4.scala 55:23]
  wire  bRePort_io_enq_0_bits_isPredictTaken; // @[IF4.scala 55:23]
  wire  bRePort_io_deq_0_ready; // @[IF4.scala 55:23]
  wire  bRePort_io_deq_0_valid; // @[IF4.scala 55:23]
  wire [38:0] bRePort_io_deq_0_bits_pc; // @[IF4.scala 55:23]
  wire  bRePort_io_deq_0_bits_bimResp_bim_p; // @[IF4.scala 55:23]
  wire  bRePort_io_deq_0_bits_bimResp_bim_h; // @[IF4.scala 55:23]
  wire  bRePort_io_deq_0_bits_isPredictTaken; // @[IF4.scala 55:23]
  wire  jRePort_clock; // @[IF4.scala 56:23]
  wire  jRePort_reset; // @[IF4.scala 56:23]
  wire  jRePort_io_enq_0_ready; // @[IF4.scala 56:23]
  wire  jRePort_io_enq_0_valid; // @[IF4.scala 56:23]
  wire [38:0] jRePort_io_enq_0_bits_pc; // @[IF4.scala 56:23]
  wire [38:0] jRePort_io_enq_0_bits_btbResp_target; // @[IF4.scala 56:23]
  wire [38:0] jRePort_io_enq_0_bits_rasResp_target; // @[IF4.scala 56:23]
  wire  jRePort_io_enq_0_bits_isRas; // @[IF4.scala 56:23]
  wire  jRePort_io_deq_0_ready; // @[IF4.scala 56:23]
  wire  jRePort_io_deq_0_valid; // @[IF4.scala 56:23]
  wire [38:0] jRePort_io_deq_0_bits_pc; // @[IF4.scala 56:23]
  wire [38:0] jRePort_io_deq_0_bits_btbResp_target; // @[IF4.scala 56:23]
  wire [38:0] jRePort_io_deq_0_bits_rasResp_target; // @[IF4.scala 56:23]
  wire  jRePort_io_deq_0_bits_isRas; // @[IF4.scala 56:23]
  wire  bimRedirect_mdl_io_enq_0_ready; // @[RePort.scala 188:21]
  wire  bimRedirect_mdl_io_enq_0_valid; // @[RePort.scala 188:21]
  wire  bimRedirect_mdl_io_enq_0_bits_bim_p; // @[RePort.scala 188:21]
  wire  bimRedirect_mdl_io_enq_0_bits_bim_h; // @[RePort.scala 188:21]
  wire  bimRedirect_mdl_io_deq_0_ready; // @[RePort.scala 188:21]
  wire  bimRedirect_mdl_io_deq_0_valid; // @[RePort.scala 188:21]
  wire  bimRedirect_mdl_io_deq_0_bits_bim_p; // @[RePort.scala 188:21]
  wire  bimRedirect_mdl_io_deq_0_bits_bim_h; // @[RePort.scala 188:21]
  wire  bimRedirect_mdl_io_mapper_0; // @[RePort.scala 188:21]
  wire  btbRedirect_mdl_io_enq_0_ready; // @[RePort.scala 188:21]
  wire  btbRedirect_mdl_io_enq_0_valid; // @[RePort.scala 188:21]
  wire [38:0] btbRedirect_mdl_io_enq_0_bits_target; // @[RePort.scala 188:21]
  wire  btbRedirect_mdl_io_deq_0_ready; // @[RePort.scala 188:21]
  wire  btbRedirect_mdl_io_deq_0_valid; // @[RePort.scala 188:21]
  wire [38:0] btbRedirect_mdl_io_deq_0_bits_target; // @[RePort.scala 188:21]
  wire  btbRedirect_mdl_io_mapper_0; // @[RePort.scala 188:21]
  wire [15:0] instr_fifo_io_enq_0_bits_dec16_io_x; // @[Decoder.scala 481:23]
  wire [63:0] instr_fifo_io_enq_0_bits_dec16_io_pc; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_lui; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_addi; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_addiw; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_andi; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_slli; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_srli; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_srai; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_add; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_addw; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_sub; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_subw; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_xor; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_or; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_and; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_bru_isa_jal; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_bru_isa_jalr; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_bru_isa_beq; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_bru_isa_bne; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_lsu_isa_lw; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_lsu_isa_ld; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_lsu_isa_sw; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_lsu_isa_sd; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_privil_isa_ebreak; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_privil_isa_is_access_fault; // @[Decoder.scala 481:23]
  wire  instr_fifo_io_enq_0_bits_dec16_io_info_privil_isa_is_paging_fault; // @[Decoder.scala 481:23]
  wire [38:0] instr_fifo_io_enq_0_bits_dec16_io_info_param_pc; // @[Decoder.scala 481:23]
  wire [63:0] instr_fifo_io_enq_0_bits_dec16_io_info_param_imm; // @[Decoder.scala 481:23]
  wire [4:0] instr_fifo_io_enq_0_bits_dec16_io_info_param_raw_rs1; // @[Decoder.scala 481:23]
  wire [4:0] instr_fifo_io_enq_0_bits_dec16_io_info_param_raw_rs2; // @[Decoder.scala 481:23]
  wire [4:0] instr_fifo_io_enq_0_bits_dec16_io_info_param_raw_rd0; // @[Decoder.scala 481:23]
  wire [31:0] instr_fifo_io_enq_0_bits_dec32_io_x; // @[Decoder.scala 921:23]
  wire [63:0] instr_fifo_io_enq_0_bits_dec32_io_pc; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_lui; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_auipc; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_addi; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_addiw; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_slti; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sltiu; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_xori; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_ori; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_andi; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_slli; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_slliw; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_srli; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_srliw; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_srai; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sraiw; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_add; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_addw; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sub; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_subw; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sll; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sllw; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_slt; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sltu; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_xor; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_srl; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_srlw; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sra; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sraw; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_or; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_and; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_wfi; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_jal; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_jalr; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_beq; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_bne; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_blt; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_bge; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_bltu; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_bgeu; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lb; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lh; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lw; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_ld; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lbu; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lhu; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lwu; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_sb; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_sh; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_sw; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_sd; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_fence; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_fence_i; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_sfence_vma; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lr_w; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_sc_w; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoswap_w; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoadd_w; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoxor_w; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoand_w; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoor_w; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amomin_w; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amomax_w; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amominu_w; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amomaxu_w; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lr_d; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_sc_d; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoswap_d; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoadd_d; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoxor_d; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoand_d; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoor_d; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amomin_d; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amomax_d; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amominu_d; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amomaxu_d; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_csr_isa_rw; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_csr_isa_rs; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_csr_isa_rc; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_csr_isa_rwi; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_csr_isa_rsi; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_csr_isa_rci; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_mul; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_mulh; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_mulhsu; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_mulhu; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_div; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_divu; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_rem; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_remu; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_mulw; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_divw; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_divuw; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_remw; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_remuw; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_ecall; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_ebreak; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_mret; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_uret; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_sret; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_dret; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hfence_vvma; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hfence_gvma; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlv_b; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlv_bu; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlv_h; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlv_hu; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlvx_hu; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlv_w; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlvx_wu; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hsv_b; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hsv_h; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hsv_w; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlv_wu; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlv_d; // @[Decoder.scala 921:23]
  wire  instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hsv_d; // @[Decoder.scala 921:23]
  wire [38:0] instr_fifo_io_enq_0_bits_dec32_io_info_param_pc; // @[Decoder.scala 921:23]
  wire [63:0] instr_fifo_io_enq_0_bits_dec32_io_info_param_imm; // @[Decoder.scala 921:23]
  wire [4:0] instr_fifo_io_enq_0_bits_dec32_io_info_param_raw_rs1; // @[Decoder.scala 921:23]
  wire [4:0] instr_fifo_io_enq_0_bits_dec32_io_info_param_raw_rs2; // @[Decoder.scala 921:23]
  wire [4:0] instr_fifo_io_enq_0_bits_dec32_io_info_param_raw_rd0; // @[Decoder.scala 921:23]
  wire [15:0] _preDecodeAgn_info16_is_jal_T = io_if4_req_0_bits_instr[15:0] & 16'he003; // @[IF3.scala 344:34]
  wire  preDecodeAgn_info16_is_jal = 16'ha001 == _preDecodeAgn_info16_is_jal_T; // @[IF3.scala 344:34]
  wire [15:0] _preDecodeAgn_info16_is_jalr_T = io_if4_req_0_bits_instr[15:0] & 16'he07f; // @[IF3.scala 345:34]
  wire  _preDecodeAgn_info16_is_jalr_T_3 = io_if4_req_0_bits_instr[11:7] != 5'h0; // @[IF3.scala 345:82]
  wire  preDecodeAgn_info16_is_jalr = 16'h8002 == _preDecodeAgn_info16_is_jalr_T & io_if4_req_0_bits_instr[11:7] != 5'h0
    ; // @[IF3.scala 345:66]
  wire [15:0] _preDecodeAgn_info16_is_branch_T = io_if4_req_0_bits_instr[15:0] & 16'hc003; // @[IF3.scala 346:34]
  wire  preDecodeAgn_info16_is_branch = 16'hc001 == _preDecodeAgn_info16_is_branch_T; // @[IF3.scala 346:34]
  wire [15:0] _preDecodeAgn_info16_is_call_T = io_if4_req_0_bits_instr[15:0] & 16'hf07f; // @[IF3.scala 347:34]
  wire  preDecodeAgn_info16_is_call = 16'h9002 == _preDecodeAgn_info16_is_call_T & _preDecodeAgn_info16_is_jalr_T_3; // @[IF3.scala 347:66]
  wire [15:0] _preDecodeAgn_info16_is_return_T = io_if4_req_0_bits_instr[15:0] & 16'hfdff; // @[IF3.scala 348:34]
  wire  preDecodeAgn_info16_is_return = 16'h8082 == _preDecodeAgn_info16_is_return_T; // @[IF3.scala 348:34]
  wire [51:0] _preDecodeAgn_info16_imm_T_2 = io_if4_req_0_bits_instr[12] ? 52'hfffffffffffff : 52'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _preDecodeAgn_info16_imm_T_11 = {_preDecodeAgn_info16_imm_T_2,io_if4_req_0_bits_instr[12],
    io_if4_req_0_bits_instr[8],io_if4_req_0_bits_instr[10:9],io_if4_req_0_bits_instr[6],io_if4_req_0_bits_instr[7],
    io_if4_req_0_bits_instr[2],io_if4_req_0_bits_instr[11],io_if4_req_0_bits_instr[5:3],1'h0}; // @[Cat.scala 33:92]
  wire [54:0] _preDecodeAgn_info16_imm_T_14 = io_if4_req_0_bits_instr[12] ? 55'h7fffffffffffff : 55'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _preDecodeAgn_info16_imm_T_20 = {_preDecodeAgn_info16_imm_T_14,io_if4_req_0_bits_instr[12],
    io_if4_req_0_bits_instr[6:5],io_if4_req_0_bits_instr[2],io_if4_req_0_bits_instr[11:10],io_if4_req_0_bits_instr[4:3],1'h0
    }; // @[Cat.scala 33:92]
  wire [63:0] _preDecodeAgn_info16_imm_T_21 = preDecodeAgn_info16_is_jal ? _preDecodeAgn_info16_imm_T_11 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _preDecodeAgn_info16_imm_T_23 = preDecodeAgn_info16_is_branch ? _preDecodeAgn_info16_imm_T_20 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] preDecodeAgn_info16_imm = _preDecodeAgn_info16_imm_T_21 | _preDecodeAgn_info16_imm_T_23; // @[Mux.scala 27:73]
  wire  preDecodeAgn_info32_is_jal = io_if4_req_0_bits_instr[6:0] == 7'h6f; // @[IF3.scala 370:39]
  wire  preDecodeAgn_info32_is_jalr = io_if4_req_0_bits_instr[6:0] == 7'h67; // @[IF3.scala 371:39]
  wire  preDecodeAgn_info32_is_branch = io_if4_req_0_bits_instr[6:0] == 7'h63; // @[IF3.scala 372:39]
  wire [4:0] _preDecodeAgn_info32_is_call_T_2 = io_if4_req_0_bits_instr[11:7] & 5'h1b; // @[IF3.scala 373:78]
  wire  preDecodeAgn_info32_is_call = (preDecodeAgn_info32_is_jal | preDecodeAgn_info32_is_jalr) & 5'h1 ==
    _preDecodeAgn_info32_is_call_T_2; // @[IF3.scala 373:60]
  wire [4:0] _preDecodeAgn_info32_is_return_T_1 = io_if4_req_0_bits_instr[19:15] & 5'h1b; // @[IF3.scala 374:59]
  wire  preDecodeAgn_info32_is_return = preDecodeAgn_info32_is_jalr & 5'h1 == _preDecodeAgn_info32_is_return_T_1 &
    io_if4_req_0_bits_instr[19:15] != io_if4_req_0_bits_instr[11:7]; // @[IF3.scala 374:82]
  wire [43:0] _preDecodeAgn_info32_imm_T_2 = io_if4_req_0_bits_instr[31] ? 44'hfffffffffff : 44'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _preDecodeAgn_info32_imm_T_6 = {_preDecodeAgn_info32_imm_T_2,io_if4_req_0_bits_instr[19:12],
    io_if4_req_0_bits_instr[20],io_if4_req_0_bits_instr[30:21],1'h0}; // @[Cat.scala 33:92]
  wire [51:0] _preDecodeAgn_info32_imm_T_9 = io_if4_req_0_bits_instr[31] ? 52'hfffffffffffff : 52'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _preDecodeAgn_info32_imm_T_11 = {_preDecodeAgn_info32_imm_T_9,io_if4_req_0_bits_instr[31:20]}; // @[Cat.scala 33:92]
  wire [63:0] _preDecodeAgn_info32_imm_T_18 = {_preDecodeAgn_info32_imm_T_9,io_if4_req_0_bits_instr[7],
    io_if4_req_0_bits_instr[30:25],io_if4_req_0_bits_instr[11:8],1'h0}; // @[Cat.scala 33:92]
  wire [63:0] _preDecodeAgn_info32_imm_T_19 = preDecodeAgn_info32_is_jal ? _preDecodeAgn_info32_imm_T_6 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _preDecodeAgn_info32_imm_T_20 = preDecodeAgn_info32_is_jalr ? _preDecodeAgn_info32_imm_T_11 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _preDecodeAgn_info32_imm_T_21 = preDecodeAgn_info32_is_branch ? _preDecodeAgn_info32_imm_T_18 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _preDecodeAgn_info32_imm_T_22 = _preDecodeAgn_info32_imm_T_19 | _preDecodeAgn_info32_imm_T_20; // @[Mux.scala 27:73]
  wire [63:0] preDecodeAgn_info32_imm = _preDecodeAgn_info32_imm_T_22 | _preDecodeAgn_info32_imm_T_21; // @[Mux.scala 27:73]
  wire  preDecodeAgn_0_is_jal = io_if4_req_0_bits_isRVC ? preDecodeAgn_info16_is_jal : preDecodeAgn_info32_is_jal; // @[IF4.scala 58:46]
  wire  preDecodeAgn_0_is_jalr = io_if4_req_0_bits_isRVC ? preDecodeAgn_info16_is_jalr : preDecodeAgn_info32_is_jalr; // @[IF4.scala 58:46]
  wire  preDecodeAgn_0_is_branch = io_if4_req_0_bits_isRVC ? preDecodeAgn_info16_is_branch :
    preDecodeAgn_info32_is_branch; // @[IF4.scala 58:46]
  wire  preDecodeAgn_0_is_call = io_if4_req_0_bits_isRVC ? preDecodeAgn_info16_is_call : preDecodeAgn_info32_is_call; // @[IF4.scala 58:46]
  wire  preDecodeAgn_0_is_return = io_if4_req_0_bits_isRVC ? preDecodeAgn_info16_is_return :
    preDecodeAgn_info32_is_return; // @[IF4.scala 58:46]
  wire [63:0] preDecodeAgn_0_imm = io_if4_req_0_bits_isRVC ? preDecodeAgn_info16_imm : preDecodeAgn_info32_imm; // @[IF4.scala 58:46]
  wire  _tage_decode_T_3 = ~reset; // @[TAGE.scala 262:13]
  wire  _isRedirect_0_T = preDecodeAgn_0_is_branch & bimRedirect_mdl_io_deq_0_bits_bim_p; // @[IF4.scala 123:19]
  wire  _isRedirect_0_T_1 = preDecodeAgn_0_is_branch & bimRedirect_mdl_io_deq_0_bits_bim_p | preDecodeAgn_0_is_jal; // @[IF4.scala 123:35]
  wire  isRedirect_0 = _isRedirect_0_T_1 | preDecodeAgn_0_is_jalr; // @[IF4.scala 124:15]
  wire [38:0] _jalr_pc_T_1 = preDecodeAgn_0_is_return & ras_io_deq_valid ? ras_io_deq_bits_target :
    btbRedirect_mdl_io_deq_0_bits_target; // @[IF4.scala 129:18]
  wire [24:0] _jalr_pc_v64_T_2 = _jalr_pc_T_1[38] ? 25'h1ffffff : 25'h0; // @[Bitwise.scala 77:12]
  wire [63:0] jalr_pc_0 = {_jalr_pc_v64_T_2,_jalr_pc_T_1}; // @[Cat.scala 33:92]
  wire  _ras_io_deq_ready_T = io_if4_req_0_ready & io_if4_req_0_valid; // @[Decoupled.scala 52:35]
  wire [2:0] _ras_io_enq_bits_target_T = io_if4_req_0_bits_isRVC ? 3'h2 : 3'h4; // @[IF4.scala 139:32]
  wire [38:0] _GEN_21 = {{36'd0}, _ras_io_enq_bits_target_T}; // @[IF4.scala 139:27]
  wire [38:0] _ras_io_enq_bits_target_T_2 = io_if4_req_0_bits_pc + _GEN_21; // @[IF4.scala 139:27]
  wire [63:0] _GEN_22 = {{25'd0}, io_if4_req_0_bits_pc}; // @[IF4.scala 146:47]
  wire [63:0] _redirectTarget_0_T_2 = _GEN_22 + preDecodeAgn_0_imm; // @[IF4.scala 146:47]
  wire [63:0] _redirectTarget_0_T_5 = _isRedirect_0_T ? _redirectTarget_0_T_2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _redirectTarget_0_T_6 = preDecodeAgn_0_is_jal ? _redirectTarget_0_T_2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _redirectTarget_0_T_7 = preDecodeAgn_0_is_jalr ? jalr_pc_0 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _redirectTarget_0_T_8 = _redirectTarget_0_T_5 | _redirectTarget_0_T_6; // @[Mux.scala 27:73]
  wire [63:0] redirectTarget_0 = _redirectTarget_0_T_8 | _redirectTarget_0_T_7; // @[Mux.scala 27:73]
  wire [63:0] _GEN_24 = {{25'd0}, io_if4_req_0_bits_target}; // @[IF4.scala 169:87]
  wire  _isDisAgreeWithIF1_0_T_3 = isRedirect_0 == io_if4_req_0_bits_isRedirect & _GEN_24 != redirectTarget_0; // @[IF4.scala 169:58]
  wire  isDisAgreeWithIF1_0 = isRedirect_0 != io_if4_req_0_bits_isRedirect | _isDisAgreeWithIF1_0_T_3; // @[IF4.scala 168:58]
  wire  isIf4Redirect_0 = _ras_io_deq_ready_T & isDisAgreeWithIF1_0; // @[IF4.scala 171:44]
  wire [63:0] _io_if4Redirect_bits_target_T_3 = isRedirect_0 ? redirectTarget_0 : {{25'd0}, _ras_io_enq_bits_target_T_2}
    ; // @[IF4.scala 181:31]
  wire [63:0] _io_if4Redirect_bits_target_T_4 = isIf4Redirect_0 ? _io_if4Redirect_bits_target_T_3 : 64'h0; // @[Mux.scala 101:16]
  RAS ras ( // @[IF4.scala 49:19]
    .clock(ras_clock),
    .reset(ras_reset),
    .io_enq_valid(ras_io_enq_valid),
    .io_enq_bits_target(ras_io_enq_bits_target),
    .io_deq_ready(ras_io_deq_ready),
    .io_deq_valid(ras_io_deq_valid),
    .io_deq_bits_target(ras_io_deq_bits_target),
    .io_flush(ras_io_flush)
  );
  MultiPortFifo_in1_out1_6 instr_fifo ( // @[IF4.scala 50:26]
    .clock(instr_fifo_clock),
    .reset(instr_fifo_reset),
    .io_enq_0_ready(instr_fifo_io_enq_0_ready),
    .io_enq_0_valid(instr_fifo_io_enq_0_valid),
    .io_enq_0_bits_alu_isa_lui(instr_fifo_io_enq_0_bits_alu_isa_lui),
    .io_enq_0_bits_alu_isa_auipc(instr_fifo_io_enq_0_bits_alu_isa_auipc),
    .io_enq_0_bits_alu_isa_addi(instr_fifo_io_enq_0_bits_alu_isa_addi),
    .io_enq_0_bits_alu_isa_addiw(instr_fifo_io_enq_0_bits_alu_isa_addiw),
    .io_enq_0_bits_alu_isa_slti(instr_fifo_io_enq_0_bits_alu_isa_slti),
    .io_enq_0_bits_alu_isa_sltiu(instr_fifo_io_enq_0_bits_alu_isa_sltiu),
    .io_enq_0_bits_alu_isa_xori(instr_fifo_io_enq_0_bits_alu_isa_xori),
    .io_enq_0_bits_alu_isa_ori(instr_fifo_io_enq_0_bits_alu_isa_ori),
    .io_enq_0_bits_alu_isa_andi(instr_fifo_io_enq_0_bits_alu_isa_andi),
    .io_enq_0_bits_alu_isa_slli(instr_fifo_io_enq_0_bits_alu_isa_slli),
    .io_enq_0_bits_alu_isa_slliw(instr_fifo_io_enq_0_bits_alu_isa_slliw),
    .io_enq_0_bits_alu_isa_srli(instr_fifo_io_enq_0_bits_alu_isa_srli),
    .io_enq_0_bits_alu_isa_srliw(instr_fifo_io_enq_0_bits_alu_isa_srliw),
    .io_enq_0_bits_alu_isa_srai(instr_fifo_io_enq_0_bits_alu_isa_srai),
    .io_enq_0_bits_alu_isa_sraiw(instr_fifo_io_enq_0_bits_alu_isa_sraiw),
    .io_enq_0_bits_alu_isa_add(instr_fifo_io_enq_0_bits_alu_isa_add),
    .io_enq_0_bits_alu_isa_addw(instr_fifo_io_enq_0_bits_alu_isa_addw),
    .io_enq_0_bits_alu_isa_sub(instr_fifo_io_enq_0_bits_alu_isa_sub),
    .io_enq_0_bits_alu_isa_subw(instr_fifo_io_enq_0_bits_alu_isa_subw),
    .io_enq_0_bits_alu_isa_sll(instr_fifo_io_enq_0_bits_alu_isa_sll),
    .io_enq_0_bits_alu_isa_sllw(instr_fifo_io_enq_0_bits_alu_isa_sllw),
    .io_enq_0_bits_alu_isa_slt(instr_fifo_io_enq_0_bits_alu_isa_slt),
    .io_enq_0_bits_alu_isa_sltu(instr_fifo_io_enq_0_bits_alu_isa_sltu),
    .io_enq_0_bits_alu_isa_xor(instr_fifo_io_enq_0_bits_alu_isa_xor),
    .io_enq_0_bits_alu_isa_srl(instr_fifo_io_enq_0_bits_alu_isa_srl),
    .io_enq_0_bits_alu_isa_srlw(instr_fifo_io_enq_0_bits_alu_isa_srlw),
    .io_enq_0_bits_alu_isa_sra(instr_fifo_io_enq_0_bits_alu_isa_sra),
    .io_enq_0_bits_alu_isa_sraw(instr_fifo_io_enq_0_bits_alu_isa_sraw),
    .io_enq_0_bits_alu_isa_or(instr_fifo_io_enq_0_bits_alu_isa_or),
    .io_enq_0_bits_alu_isa_and(instr_fifo_io_enq_0_bits_alu_isa_and),
    .io_enq_0_bits_alu_isa_wfi(instr_fifo_io_enq_0_bits_alu_isa_wfi),
    .io_enq_0_bits_bru_isa_jal(instr_fifo_io_enq_0_bits_bru_isa_jal),
    .io_enq_0_bits_bru_isa_jalr(instr_fifo_io_enq_0_bits_bru_isa_jalr),
    .io_enq_0_bits_bru_isa_beq(instr_fifo_io_enq_0_bits_bru_isa_beq),
    .io_enq_0_bits_bru_isa_bne(instr_fifo_io_enq_0_bits_bru_isa_bne),
    .io_enq_0_bits_bru_isa_blt(instr_fifo_io_enq_0_bits_bru_isa_blt),
    .io_enq_0_bits_bru_isa_bge(instr_fifo_io_enq_0_bits_bru_isa_bge),
    .io_enq_0_bits_bru_isa_bltu(instr_fifo_io_enq_0_bits_bru_isa_bltu),
    .io_enq_0_bits_bru_isa_bgeu(instr_fifo_io_enq_0_bits_bru_isa_bgeu),
    .io_enq_0_bits_lsu_isa_lb(instr_fifo_io_enq_0_bits_lsu_isa_lb),
    .io_enq_0_bits_lsu_isa_lh(instr_fifo_io_enq_0_bits_lsu_isa_lh),
    .io_enq_0_bits_lsu_isa_lw(instr_fifo_io_enq_0_bits_lsu_isa_lw),
    .io_enq_0_bits_lsu_isa_ld(instr_fifo_io_enq_0_bits_lsu_isa_ld),
    .io_enq_0_bits_lsu_isa_lbu(instr_fifo_io_enq_0_bits_lsu_isa_lbu),
    .io_enq_0_bits_lsu_isa_lhu(instr_fifo_io_enq_0_bits_lsu_isa_lhu),
    .io_enq_0_bits_lsu_isa_lwu(instr_fifo_io_enq_0_bits_lsu_isa_lwu),
    .io_enq_0_bits_lsu_isa_sb(instr_fifo_io_enq_0_bits_lsu_isa_sb),
    .io_enq_0_bits_lsu_isa_sh(instr_fifo_io_enq_0_bits_lsu_isa_sh),
    .io_enq_0_bits_lsu_isa_sw(instr_fifo_io_enq_0_bits_lsu_isa_sw),
    .io_enq_0_bits_lsu_isa_sd(instr_fifo_io_enq_0_bits_lsu_isa_sd),
    .io_enq_0_bits_lsu_isa_fence(instr_fifo_io_enq_0_bits_lsu_isa_fence),
    .io_enq_0_bits_lsu_isa_fence_i(instr_fifo_io_enq_0_bits_lsu_isa_fence_i),
    .io_enq_0_bits_lsu_isa_sfence_vma(instr_fifo_io_enq_0_bits_lsu_isa_sfence_vma),
    .io_enq_0_bits_lsu_isa_lr_w(instr_fifo_io_enq_0_bits_lsu_isa_lr_w),
    .io_enq_0_bits_lsu_isa_sc_w(instr_fifo_io_enq_0_bits_lsu_isa_sc_w),
    .io_enq_0_bits_lsu_isa_amoswap_w(instr_fifo_io_enq_0_bits_lsu_isa_amoswap_w),
    .io_enq_0_bits_lsu_isa_amoadd_w(instr_fifo_io_enq_0_bits_lsu_isa_amoadd_w),
    .io_enq_0_bits_lsu_isa_amoxor_w(instr_fifo_io_enq_0_bits_lsu_isa_amoxor_w),
    .io_enq_0_bits_lsu_isa_amoand_w(instr_fifo_io_enq_0_bits_lsu_isa_amoand_w),
    .io_enq_0_bits_lsu_isa_amoor_w(instr_fifo_io_enq_0_bits_lsu_isa_amoor_w),
    .io_enq_0_bits_lsu_isa_amomin_w(instr_fifo_io_enq_0_bits_lsu_isa_amomin_w),
    .io_enq_0_bits_lsu_isa_amomax_w(instr_fifo_io_enq_0_bits_lsu_isa_amomax_w),
    .io_enq_0_bits_lsu_isa_amominu_w(instr_fifo_io_enq_0_bits_lsu_isa_amominu_w),
    .io_enq_0_bits_lsu_isa_amomaxu_w(instr_fifo_io_enq_0_bits_lsu_isa_amomaxu_w),
    .io_enq_0_bits_lsu_isa_lr_d(instr_fifo_io_enq_0_bits_lsu_isa_lr_d),
    .io_enq_0_bits_lsu_isa_sc_d(instr_fifo_io_enq_0_bits_lsu_isa_sc_d),
    .io_enq_0_bits_lsu_isa_amoswap_d(instr_fifo_io_enq_0_bits_lsu_isa_amoswap_d),
    .io_enq_0_bits_lsu_isa_amoadd_d(instr_fifo_io_enq_0_bits_lsu_isa_amoadd_d),
    .io_enq_0_bits_lsu_isa_amoxor_d(instr_fifo_io_enq_0_bits_lsu_isa_amoxor_d),
    .io_enq_0_bits_lsu_isa_amoand_d(instr_fifo_io_enq_0_bits_lsu_isa_amoand_d),
    .io_enq_0_bits_lsu_isa_amoor_d(instr_fifo_io_enq_0_bits_lsu_isa_amoor_d),
    .io_enq_0_bits_lsu_isa_amomin_d(instr_fifo_io_enq_0_bits_lsu_isa_amomin_d),
    .io_enq_0_bits_lsu_isa_amomax_d(instr_fifo_io_enq_0_bits_lsu_isa_amomax_d),
    .io_enq_0_bits_lsu_isa_amominu_d(instr_fifo_io_enq_0_bits_lsu_isa_amominu_d),
    .io_enq_0_bits_lsu_isa_amomaxu_d(instr_fifo_io_enq_0_bits_lsu_isa_amomaxu_d),
    .io_enq_0_bits_csr_isa_rw(instr_fifo_io_enq_0_bits_csr_isa_rw),
    .io_enq_0_bits_csr_isa_rs(instr_fifo_io_enq_0_bits_csr_isa_rs),
    .io_enq_0_bits_csr_isa_rc(instr_fifo_io_enq_0_bits_csr_isa_rc),
    .io_enq_0_bits_csr_isa_rwi(instr_fifo_io_enq_0_bits_csr_isa_rwi),
    .io_enq_0_bits_csr_isa_rsi(instr_fifo_io_enq_0_bits_csr_isa_rsi),
    .io_enq_0_bits_csr_isa_rci(instr_fifo_io_enq_0_bits_csr_isa_rci),
    .io_enq_0_bits_mul_isa_mul(instr_fifo_io_enq_0_bits_mul_isa_mul),
    .io_enq_0_bits_mul_isa_mulh(instr_fifo_io_enq_0_bits_mul_isa_mulh),
    .io_enq_0_bits_mul_isa_mulhsu(instr_fifo_io_enq_0_bits_mul_isa_mulhsu),
    .io_enq_0_bits_mul_isa_mulhu(instr_fifo_io_enq_0_bits_mul_isa_mulhu),
    .io_enq_0_bits_mul_isa_div(instr_fifo_io_enq_0_bits_mul_isa_div),
    .io_enq_0_bits_mul_isa_divu(instr_fifo_io_enq_0_bits_mul_isa_divu),
    .io_enq_0_bits_mul_isa_rem(instr_fifo_io_enq_0_bits_mul_isa_rem),
    .io_enq_0_bits_mul_isa_remu(instr_fifo_io_enq_0_bits_mul_isa_remu),
    .io_enq_0_bits_mul_isa_mulw(instr_fifo_io_enq_0_bits_mul_isa_mulw),
    .io_enq_0_bits_mul_isa_divw(instr_fifo_io_enq_0_bits_mul_isa_divw),
    .io_enq_0_bits_mul_isa_divuw(instr_fifo_io_enq_0_bits_mul_isa_divuw),
    .io_enq_0_bits_mul_isa_remw(instr_fifo_io_enq_0_bits_mul_isa_remw),
    .io_enq_0_bits_mul_isa_remuw(instr_fifo_io_enq_0_bits_mul_isa_remuw),
    .io_enq_0_bits_privil_isa_ecall(instr_fifo_io_enq_0_bits_privil_isa_ecall),
    .io_enq_0_bits_privil_isa_ebreak(instr_fifo_io_enq_0_bits_privil_isa_ebreak),
    .io_enq_0_bits_privil_isa_mret(instr_fifo_io_enq_0_bits_privil_isa_mret),
    .io_enq_0_bits_privil_isa_uret(instr_fifo_io_enq_0_bits_privil_isa_uret),
    .io_enq_0_bits_privil_isa_sret(instr_fifo_io_enq_0_bits_privil_isa_sret),
    .io_enq_0_bits_privil_isa_dret(instr_fifo_io_enq_0_bits_privil_isa_dret),
    .io_enq_0_bits_privil_isa_hfence_vvma(instr_fifo_io_enq_0_bits_privil_isa_hfence_vvma),
    .io_enq_0_bits_privil_isa_hfence_gvma(instr_fifo_io_enq_0_bits_privil_isa_hfence_gvma),
    .io_enq_0_bits_privil_isa_hlv_b(instr_fifo_io_enq_0_bits_privil_isa_hlv_b),
    .io_enq_0_bits_privil_isa_hlv_bu(instr_fifo_io_enq_0_bits_privil_isa_hlv_bu),
    .io_enq_0_bits_privil_isa_hlv_h(instr_fifo_io_enq_0_bits_privil_isa_hlv_h),
    .io_enq_0_bits_privil_isa_hlv_hu(instr_fifo_io_enq_0_bits_privil_isa_hlv_hu),
    .io_enq_0_bits_privil_isa_hlvx_hu(instr_fifo_io_enq_0_bits_privil_isa_hlvx_hu),
    .io_enq_0_bits_privil_isa_hlv_w(instr_fifo_io_enq_0_bits_privil_isa_hlv_w),
    .io_enq_0_bits_privil_isa_hlvx_wu(instr_fifo_io_enq_0_bits_privil_isa_hlvx_wu),
    .io_enq_0_bits_privil_isa_hsv_b(instr_fifo_io_enq_0_bits_privil_isa_hsv_b),
    .io_enq_0_bits_privil_isa_hsv_h(instr_fifo_io_enq_0_bits_privil_isa_hsv_h),
    .io_enq_0_bits_privil_isa_hsv_w(instr_fifo_io_enq_0_bits_privil_isa_hsv_w),
    .io_enq_0_bits_privil_isa_hlv_wu(instr_fifo_io_enq_0_bits_privil_isa_hlv_wu),
    .io_enq_0_bits_privil_isa_hlv_d(instr_fifo_io_enq_0_bits_privil_isa_hlv_d),
    .io_enq_0_bits_privil_isa_hsv_d(instr_fifo_io_enq_0_bits_privil_isa_hsv_d),
    .io_enq_0_bits_privil_isa_is_access_fault(instr_fifo_io_enq_0_bits_privil_isa_is_access_fault),
    .io_enq_0_bits_privil_isa_is_paging_fault(instr_fifo_io_enq_0_bits_privil_isa_is_paging_fault),
    .io_enq_0_bits_param_is_rvc(instr_fifo_io_enq_0_bits_param_is_rvc),
    .io_enq_0_bits_param_pc(instr_fifo_io_enq_0_bits_param_pc),
    .io_enq_0_bits_param_imm(instr_fifo_io_enq_0_bits_param_imm),
    .io_enq_0_bits_param_raw_rs1(instr_fifo_io_enq_0_bits_param_raw_rs1),
    .io_enq_0_bits_param_raw_rs2(instr_fifo_io_enq_0_bits_param_raw_rs2),
    .io_enq_0_bits_param_raw_rd0(instr_fifo_io_enq_0_bits_param_raw_rd0),
    .io_deq_0_ready(instr_fifo_io_deq_0_ready),
    .io_deq_0_valid(instr_fifo_io_deq_0_valid),
    .io_deq_0_bits_alu_isa_lui(instr_fifo_io_deq_0_bits_alu_isa_lui),
    .io_deq_0_bits_alu_isa_auipc(instr_fifo_io_deq_0_bits_alu_isa_auipc),
    .io_deq_0_bits_alu_isa_addi(instr_fifo_io_deq_0_bits_alu_isa_addi),
    .io_deq_0_bits_alu_isa_addiw(instr_fifo_io_deq_0_bits_alu_isa_addiw),
    .io_deq_0_bits_alu_isa_slti(instr_fifo_io_deq_0_bits_alu_isa_slti),
    .io_deq_0_bits_alu_isa_sltiu(instr_fifo_io_deq_0_bits_alu_isa_sltiu),
    .io_deq_0_bits_alu_isa_xori(instr_fifo_io_deq_0_bits_alu_isa_xori),
    .io_deq_0_bits_alu_isa_ori(instr_fifo_io_deq_0_bits_alu_isa_ori),
    .io_deq_0_bits_alu_isa_andi(instr_fifo_io_deq_0_bits_alu_isa_andi),
    .io_deq_0_bits_alu_isa_slli(instr_fifo_io_deq_0_bits_alu_isa_slli),
    .io_deq_0_bits_alu_isa_slliw(instr_fifo_io_deq_0_bits_alu_isa_slliw),
    .io_deq_0_bits_alu_isa_srli(instr_fifo_io_deq_0_bits_alu_isa_srli),
    .io_deq_0_bits_alu_isa_srliw(instr_fifo_io_deq_0_bits_alu_isa_srliw),
    .io_deq_0_bits_alu_isa_srai(instr_fifo_io_deq_0_bits_alu_isa_srai),
    .io_deq_0_bits_alu_isa_sraiw(instr_fifo_io_deq_0_bits_alu_isa_sraiw),
    .io_deq_0_bits_alu_isa_add(instr_fifo_io_deq_0_bits_alu_isa_add),
    .io_deq_0_bits_alu_isa_addw(instr_fifo_io_deq_0_bits_alu_isa_addw),
    .io_deq_0_bits_alu_isa_sub(instr_fifo_io_deq_0_bits_alu_isa_sub),
    .io_deq_0_bits_alu_isa_subw(instr_fifo_io_deq_0_bits_alu_isa_subw),
    .io_deq_0_bits_alu_isa_sll(instr_fifo_io_deq_0_bits_alu_isa_sll),
    .io_deq_0_bits_alu_isa_sllw(instr_fifo_io_deq_0_bits_alu_isa_sllw),
    .io_deq_0_bits_alu_isa_slt(instr_fifo_io_deq_0_bits_alu_isa_slt),
    .io_deq_0_bits_alu_isa_sltu(instr_fifo_io_deq_0_bits_alu_isa_sltu),
    .io_deq_0_bits_alu_isa_xor(instr_fifo_io_deq_0_bits_alu_isa_xor),
    .io_deq_0_bits_alu_isa_srl(instr_fifo_io_deq_0_bits_alu_isa_srl),
    .io_deq_0_bits_alu_isa_srlw(instr_fifo_io_deq_0_bits_alu_isa_srlw),
    .io_deq_0_bits_alu_isa_sra(instr_fifo_io_deq_0_bits_alu_isa_sra),
    .io_deq_0_bits_alu_isa_sraw(instr_fifo_io_deq_0_bits_alu_isa_sraw),
    .io_deq_0_bits_alu_isa_or(instr_fifo_io_deq_0_bits_alu_isa_or),
    .io_deq_0_bits_alu_isa_and(instr_fifo_io_deq_0_bits_alu_isa_and),
    .io_deq_0_bits_alu_isa_wfi(instr_fifo_io_deq_0_bits_alu_isa_wfi),
    .io_deq_0_bits_bru_isa_jal(instr_fifo_io_deq_0_bits_bru_isa_jal),
    .io_deq_0_bits_bru_isa_jalr(instr_fifo_io_deq_0_bits_bru_isa_jalr),
    .io_deq_0_bits_bru_isa_beq(instr_fifo_io_deq_0_bits_bru_isa_beq),
    .io_deq_0_bits_bru_isa_bne(instr_fifo_io_deq_0_bits_bru_isa_bne),
    .io_deq_0_bits_bru_isa_blt(instr_fifo_io_deq_0_bits_bru_isa_blt),
    .io_deq_0_bits_bru_isa_bge(instr_fifo_io_deq_0_bits_bru_isa_bge),
    .io_deq_0_bits_bru_isa_bltu(instr_fifo_io_deq_0_bits_bru_isa_bltu),
    .io_deq_0_bits_bru_isa_bgeu(instr_fifo_io_deq_0_bits_bru_isa_bgeu),
    .io_deq_0_bits_lsu_isa_lb(instr_fifo_io_deq_0_bits_lsu_isa_lb),
    .io_deq_0_bits_lsu_isa_lh(instr_fifo_io_deq_0_bits_lsu_isa_lh),
    .io_deq_0_bits_lsu_isa_lw(instr_fifo_io_deq_0_bits_lsu_isa_lw),
    .io_deq_0_bits_lsu_isa_ld(instr_fifo_io_deq_0_bits_lsu_isa_ld),
    .io_deq_0_bits_lsu_isa_lbu(instr_fifo_io_deq_0_bits_lsu_isa_lbu),
    .io_deq_0_bits_lsu_isa_lhu(instr_fifo_io_deq_0_bits_lsu_isa_lhu),
    .io_deq_0_bits_lsu_isa_lwu(instr_fifo_io_deq_0_bits_lsu_isa_lwu),
    .io_deq_0_bits_lsu_isa_sb(instr_fifo_io_deq_0_bits_lsu_isa_sb),
    .io_deq_0_bits_lsu_isa_sh(instr_fifo_io_deq_0_bits_lsu_isa_sh),
    .io_deq_0_bits_lsu_isa_sw(instr_fifo_io_deq_0_bits_lsu_isa_sw),
    .io_deq_0_bits_lsu_isa_sd(instr_fifo_io_deq_0_bits_lsu_isa_sd),
    .io_deq_0_bits_lsu_isa_fence(instr_fifo_io_deq_0_bits_lsu_isa_fence),
    .io_deq_0_bits_lsu_isa_fence_i(instr_fifo_io_deq_0_bits_lsu_isa_fence_i),
    .io_deq_0_bits_lsu_isa_sfence_vma(instr_fifo_io_deq_0_bits_lsu_isa_sfence_vma),
    .io_deq_0_bits_lsu_isa_lr_w(instr_fifo_io_deq_0_bits_lsu_isa_lr_w),
    .io_deq_0_bits_lsu_isa_sc_w(instr_fifo_io_deq_0_bits_lsu_isa_sc_w),
    .io_deq_0_bits_lsu_isa_amoswap_w(instr_fifo_io_deq_0_bits_lsu_isa_amoswap_w),
    .io_deq_0_bits_lsu_isa_amoadd_w(instr_fifo_io_deq_0_bits_lsu_isa_amoadd_w),
    .io_deq_0_bits_lsu_isa_amoxor_w(instr_fifo_io_deq_0_bits_lsu_isa_amoxor_w),
    .io_deq_0_bits_lsu_isa_amoand_w(instr_fifo_io_deq_0_bits_lsu_isa_amoand_w),
    .io_deq_0_bits_lsu_isa_amoor_w(instr_fifo_io_deq_0_bits_lsu_isa_amoor_w),
    .io_deq_0_bits_lsu_isa_amomin_w(instr_fifo_io_deq_0_bits_lsu_isa_amomin_w),
    .io_deq_0_bits_lsu_isa_amomax_w(instr_fifo_io_deq_0_bits_lsu_isa_amomax_w),
    .io_deq_0_bits_lsu_isa_amominu_w(instr_fifo_io_deq_0_bits_lsu_isa_amominu_w),
    .io_deq_0_bits_lsu_isa_amomaxu_w(instr_fifo_io_deq_0_bits_lsu_isa_amomaxu_w),
    .io_deq_0_bits_lsu_isa_lr_d(instr_fifo_io_deq_0_bits_lsu_isa_lr_d),
    .io_deq_0_bits_lsu_isa_sc_d(instr_fifo_io_deq_0_bits_lsu_isa_sc_d),
    .io_deq_0_bits_lsu_isa_amoswap_d(instr_fifo_io_deq_0_bits_lsu_isa_amoswap_d),
    .io_deq_0_bits_lsu_isa_amoadd_d(instr_fifo_io_deq_0_bits_lsu_isa_amoadd_d),
    .io_deq_0_bits_lsu_isa_amoxor_d(instr_fifo_io_deq_0_bits_lsu_isa_amoxor_d),
    .io_deq_0_bits_lsu_isa_amoand_d(instr_fifo_io_deq_0_bits_lsu_isa_amoand_d),
    .io_deq_0_bits_lsu_isa_amoor_d(instr_fifo_io_deq_0_bits_lsu_isa_amoor_d),
    .io_deq_0_bits_lsu_isa_amomin_d(instr_fifo_io_deq_0_bits_lsu_isa_amomin_d),
    .io_deq_0_bits_lsu_isa_amomax_d(instr_fifo_io_deq_0_bits_lsu_isa_amomax_d),
    .io_deq_0_bits_lsu_isa_amominu_d(instr_fifo_io_deq_0_bits_lsu_isa_amominu_d),
    .io_deq_0_bits_lsu_isa_amomaxu_d(instr_fifo_io_deq_0_bits_lsu_isa_amomaxu_d),
    .io_deq_0_bits_lsu_isa_flw(instr_fifo_io_deq_0_bits_lsu_isa_flw),
    .io_deq_0_bits_lsu_isa_fsw(instr_fifo_io_deq_0_bits_lsu_isa_fsw),
    .io_deq_0_bits_lsu_isa_fld(instr_fifo_io_deq_0_bits_lsu_isa_fld),
    .io_deq_0_bits_lsu_isa_fsd(instr_fifo_io_deq_0_bits_lsu_isa_fsd),
    .io_deq_0_bits_csr_isa_rw(instr_fifo_io_deq_0_bits_csr_isa_rw),
    .io_deq_0_bits_csr_isa_rs(instr_fifo_io_deq_0_bits_csr_isa_rs),
    .io_deq_0_bits_csr_isa_rc(instr_fifo_io_deq_0_bits_csr_isa_rc),
    .io_deq_0_bits_csr_isa_rwi(instr_fifo_io_deq_0_bits_csr_isa_rwi),
    .io_deq_0_bits_csr_isa_rsi(instr_fifo_io_deq_0_bits_csr_isa_rsi),
    .io_deq_0_bits_csr_isa_rci(instr_fifo_io_deq_0_bits_csr_isa_rci),
    .io_deq_0_bits_mul_isa_mul(instr_fifo_io_deq_0_bits_mul_isa_mul),
    .io_deq_0_bits_mul_isa_mulh(instr_fifo_io_deq_0_bits_mul_isa_mulh),
    .io_deq_0_bits_mul_isa_mulhsu(instr_fifo_io_deq_0_bits_mul_isa_mulhsu),
    .io_deq_0_bits_mul_isa_mulhu(instr_fifo_io_deq_0_bits_mul_isa_mulhu),
    .io_deq_0_bits_mul_isa_div(instr_fifo_io_deq_0_bits_mul_isa_div),
    .io_deq_0_bits_mul_isa_divu(instr_fifo_io_deq_0_bits_mul_isa_divu),
    .io_deq_0_bits_mul_isa_rem(instr_fifo_io_deq_0_bits_mul_isa_rem),
    .io_deq_0_bits_mul_isa_remu(instr_fifo_io_deq_0_bits_mul_isa_remu),
    .io_deq_0_bits_mul_isa_mulw(instr_fifo_io_deq_0_bits_mul_isa_mulw),
    .io_deq_0_bits_mul_isa_divw(instr_fifo_io_deq_0_bits_mul_isa_divw),
    .io_deq_0_bits_mul_isa_divuw(instr_fifo_io_deq_0_bits_mul_isa_divuw),
    .io_deq_0_bits_mul_isa_remw(instr_fifo_io_deq_0_bits_mul_isa_remw),
    .io_deq_0_bits_mul_isa_remuw(instr_fifo_io_deq_0_bits_mul_isa_remuw),
    .io_deq_0_bits_privil_isa_ecall(instr_fifo_io_deq_0_bits_privil_isa_ecall),
    .io_deq_0_bits_privil_isa_ebreak(instr_fifo_io_deq_0_bits_privil_isa_ebreak),
    .io_deq_0_bits_privil_isa_mret(instr_fifo_io_deq_0_bits_privil_isa_mret),
    .io_deq_0_bits_privil_isa_uret(instr_fifo_io_deq_0_bits_privil_isa_uret),
    .io_deq_0_bits_privil_isa_sret(instr_fifo_io_deq_0_bits_privil_isa_sret),
    .io_deq_0_bits_privil_isa_dret(instr_fifo_io_deq_0_bits_privil_isa_dret),
    .io_deq_0_bits_privil_isa_hfence_vvma(instr_fifo_io_deq_0_bits_privil_isa_hfence_vvma),
    .io_deq_0_bits_privil_isa_hfence_gvma(instr_fifo_io_deq_0_bits_privil_isa_hfence_gvma),
    .io_deq_0_bits_privil_isa_hlv_b(instr_fifo_io_deq_0_bits_privil_isa_hlv_b),
    .io_deq_0_bits_privil_isa_hlv_bu(instr_fifo_io_deq_0_bits_privil_isa_hlv_bu),
    .io_deq_0_bits_privil_isa_hlv_h(instr_fifo_io_deq_0_bits_privil_isa_hlv_h),
    .io_deq_0_bits_privil_isa_hlv_hu(instr_fifo_io_deq_0_bits_privil_isa_hlv_hu),
    .io_deq_0_bits_privil_isa_hlvx_hu(instr_fifo_io_deq_0_bits_privil_isa_hlvx_hu),
    .io_deq_0_bits_privil_isa_hlv_w(instr_fifo_io_deq_0_bits_privil_isa_hlv_w),
    .io_deq_0_bits_privil_isa_hlvx_wu(instr_fifo_io_deq_0_bits_privil_isa_hlvx_wu),
    .io_deq_0_bits_privil_isa_hsv_b(instr_fifo_io_deq_0_bits_privil_isa_hsv_b),
    .io_deq_0_bits_privil_isa_hsv_h(instr_fifo_io_deq_0_bits_privil_isa_hsv_h),
    .io_deq_0_bits_privil_isa_hsv_w(instr_fifo_io_deq_0_bits_privil_isa_hsv_w),
    .io_deq_0_bits_privil_isa_hlv_wu(instr_fifo_io_deq_0_bits_privil_isa_hlv_wu),
    .io_deq_0_bits_privil_isa_hlv_d(instr_fifo_io_deq_0_bits_privil_isa_hlv_d),
    .io_deq_0_bits_privil_isa_hsv_d(instr_fifo_io_deq_0_bits_privil_isa_hsv_d),
    .io_deq_0_bits_privil_isa_is_access_fault(instr_fifo_io_deq_0_bits_privil_isa_is_access_fault),
    .io_deq_0_bits_privil_isa_is_paging_fault(instr_fifo_io_deq_0_bits_privil_isa_is_paging_fault),
    .io_deq_0_bits_fpu_isa_fmadd_s(instr_fifo_io_deq_0_bits_fpu_isa_fmadd_s),
    .io_deq_0_bits_fpu_isa_fmsub_s(instr_fifo_io_deq_0_bits_fpu_isa_fmsub_s),
    .io_deq_0_bits_fpu_isa_fnmsub_s(instr_fifo_io_deq_0_bits_fpu_isa_fnmsub_s),
    .io_deq_0_bits_fpu_isa_fnmadd_s(instr_fifo_io_deq_0_bits_fpu_isa_fnmadd_s),
    .io_deq_0_bits_fpu_isa_fadd_s(instr_fifo_io_deq_0_bits_fpu_isa_fadd_s),
    .io_deq_0_bits_fpu_isa_fsub_s(instr_fifo_io_deq_0_bits_fpu_isa_fsub_s),
    .io_deq_0_bits_fpu_isa_fmul_s(instr_fifo_io_deq_0_bits_fpu_isa_fmul_s),
    .io_deq_0_bits_fpu_isa_fdiv_s(instr_fifo_io_deq_0_bits_fpu_isa_fdiv_s),
    .io_deq_0_bits_fpu_isa_fsqrt_s(instr_fifo_io_deq_0_bits_fpu_isa_fsqrt_s),
    .io_deq_0_bits_fpu_isa_fsgnj_s(instr_fifo_io_deq_0_bits_fpu_isa_fsgnj_s),
    .io_deq_0_bits_fpu_isa_fsgnjn_s(instr_fifo_io_deq_0_bits_fpu_isa_fsgnjn_s),
    .io_deq_0_bits_fpu_isa_fsgnjx_s(instr_fifo_io_deq_0_bits_fpu_isa_fsgnjx_s),
    .io_deq_0_bits_fpu_isa_fmin_s(instr_fifo_io_deq_0_bits_fpu_isa_fmin_s),
    .io_deq_0_bits_fpu_isa_fmax_s(instr_fifo_io_deq_0_bits_fpu_isa_fmax_s),
    .io_deq_0_bits_fpu_isa_fcvt_w_s(instr_fifo_io_deq_0_bits_fpu_isa_fcvt_w_s),
    .io_deq_0_bits_fpu_isa_fcvt_wu_s(instr_fifo_io_deq_0_bits_fpu_isa_fcvt_wu_s),
    .io_deq_0_bits_fpu_isa_fmv_x_w(instr_fifo_io_deq_0_bits_fpu_isa_fmv_x_w),
    .io_deq_0_bits_fpu_isa_feq_s(instr_fifo_io_deq_0_bits_fpu_isa_feq_s),
    .io_deq_0_bits_fpu_isa_flt_s(instr_fifo_io_deq_0_bits_fpu_isa_flt_s),
    .io_deq_0_bits_fpu_isa_fle_s(instr_fifo_io_deq_0_bits_fpu_isa_fle_s),
    .io_deq_0_bits_fpu_isa_fclass_s(instr_fifo_io_deq_0_bits_fpu_isa_fclass_s),
    .io_deq_0_bits_fpu_isa_fcvt_s_w(instr_fifo_io_deq_0_bits_fpu_isa_fcvt_s_w),
    .io_deq_0_bits_fpu_isa_fcvt_s_wu(instr_fifo_io_deq_0_bits_fpu_isa_fcvt_s_wu),
    .io_deq_0_bits_fpu_isa_fmv_w_x(instr_fifo_io_deq_0_bits_fpu_isa_fmv_w_x),
    .io_deq_0_bits_fpu_isa_fcvt_l_s(instr_fifo_io_deq_0_bits_fpu_isa_fcvt_l_s),
    .io_deq_0_bits_fpu_isa_fcvt_lu_s(instr_fifo_io_deq_0_bits_fpu_isa_fcvt_lu_s),
    .io_deq_0_bits_fpu_isa_fcvt_s_l(instr_fifo_io_deq_0_bits_fpu_isa_fcvt_s_l),
    .io_deq_0_bits_fpu_isa_fcvt_s_lu(instr_fifo_io_deq_0_bits_fpu_isa_fcvt_s_lu),
    .io_deq_0_bits_fpu_isa_fmadd_d(instr_fifo_io_deq_0_bits_fpu_isa_fmadd_d),
    .io_deq_0_bits_fpu_isa_fmsub_d(instr_fifo_io_deq_0_bits_fpu_isa_fmsub_d),
    .io_deq_0_bits_fpu_isa_fnmsub_d(instr_fifo_io_deq_0_bits_fpu_isa_fnmsub_d),
    .io_deq_0_bits_fpu_isa_fnmadd_d(instr_fifo_io_deq_0_bits_fpu_isa_fnmadd_d),
    .io_deq_0_bits_fpu_isa_fadd_d(instr_fifo_io_deq_0_bits_fpu_isa_fadd_d),
    .io_deq_0_bits_fpu_isa_fsub_d(instr_fifo_io_deq_0_bits_fpu_isa_fsub_d),
    .io_deq_0_bits_fpu_isa_fmul_d(instr_fifo_io_deq_0_bits_fpu_isa_fmul_d),
    .io_deq_0_bits_fpu_isa_fdiv_d(instr_fifo_io_deq_0_bits_fpu_isa_fdiv_d),
    .io_deq_0_bits_fpu_isa_fsqrt_d(instr_fifo_io_deq_0_bits_fpu_isa_fsqrt_d),
    .io_deq_0_bits_fpu_isa_fsgnj_d(instr_fifo_io_deq_0_bits_fpu_isa_fsgnj_d),
    .io_deq_0_bits_fpu_isa_fsgnjn_d(instr_fifo_io_deq_0_bits_fpu_isa_fsgnjn_d),
    .io_deq_0_bits_fpu_isa_fsgnjx_d(instr_fifo_io_deq_0_bits_fpu_isa_fsgnjx_d),
    .io_deq_0_bits_fpu_isa_fmin_d(instr_fifo_io_deq_0_bits_fpu_isa_fmin_d),
    .io_deq_0_bits_fpu_isa_fmax_d(instr_fifo_io_deq_0_bits_fpu_isa_fmax_d),
    .io_deq_0_bits_fpu_isa_fcvt_s_d(instr_fifo_io_deq_0_bits_fpu_isa_fcvt_s_d),
    .io_deq_0_bits_fpu_isa_fcvt_d_s(instr_fifo_io_deq_0_bits_fpu_isa_fcvt_d_s),
    .io_deq_0_bits_fpu_isa_feq_d(instr_fifo_io_deq_0_bits_fpu_isa_feq_d),
    .io_deq_0_bits_fpu_isa_flt_d(instr_fifo_io_deq_0_bits_fpu_isa_flt_d),
    .io_deq_0_bits_fpu_isa_fle_d(instr_fifo_io_deq_0_bits_fpu_isa_fle_d),
    .io_deq_0_bits_fpu_isa_fclass_d(instr_fifo_io_deq_0_bits_fpu_isa_fclass_d),
    .io_deq_0_bits_fpu_isa_fcvt_w_d(instr_fifo_io_deq_0_bits_fpu_isa_fcvt_w_d),
    .io_deq_0_bits_fpu_isa_fcvt_wu_d(instr_fifo_io_deq_0_bits_fpu_isa_fcvt_wu_d),
    .io_deq_0_bits_fpu_isa_fcvt_d_w(instr_fifo_io_deq_0_bits_fpu_isa_fcvt_d_w),
    .io_deq_0_bits_fpu_isa_fcvt_d_wu(instr_fifo_io_deq_0_bits_fpu_isa_fcvt_d_wu),
    .io_deq_0_bits_fpu_isa_fcvt_l_d(instr_fifo_io_deq_0_bits_fpu_isa_fcvt_l_d),
    .io_deq_0_bits_fpu_isa_fcvt_lu_d(instr_fifo_io_deq_0_bits_fpu_isa_fcvt_lu_d),
    .io_deq_0_bits_fpu_isa_fmv_x_d(instr_fifo_io_deq_0_bits_fpu_isa_fmv_x_d),
    .io_deq_0_bits_fpu_isa_fcvt_d_l(instr_fifo_io_deq_0_bits_fpu_isa_fcvt_d_l),
    .io_deq_0_bits_fpu_isa_fcvt_d_lu(instr_fifo_io_deq_0_bits_fpu_isa_fcvt_d_lu),
    .io_deq_0_bits_fpu_isa_fmv_d_x(instr_fifo_io_deq_0_bits_fpu_isa_fmv_d_x),
    .io_deq_0_bits_fpu_isa_fcsr_rw(instr_fifo_io_deq_0_bits_fpu_isa_fcsr_rw),
    .io_deq_0_bits_fpu_isa_fcsr_rs(instr_fifo_io_deq_0_bits_fpu_isa_fcsr_rs),
    .io_deq_0_bits_fpu_isa_fcsr_rc(instr_fifo_io_deq_0_bits_fpu_isa_fcsr_rc),
    .io_deq_0_bits_fpu_isa_fcsr_rwi(instr_fifo_io_deq_0_bits_fpu_isa_fcsr_rwi),
    .io_deq_0_bits_fpu_isa_fcsr_rsi(instr_fifo_io_deq_0_bits_fpu_isa_fcsr_rsi),
    .io_deq_0_bits_fpu_isa_fcsr_rci(instr_fifo_io_deq_0_bits_fpu_isa_fcsr_rci),
    .io_deq_0_bits_param_is_rvc(instr_fifo_io_deq_0_bits_param_is_rvc),
    .io_deq_0_bits_param_pc(instr_fifo_io_deq_0_bits_param_pc),
    .io_deq_0_bits_param_imm(instr_fifo_io_deq_0_bits_param_imm),
    .io_deq_0_bits_param_raw_rs1(instr_fifo_io_deq_0_bits_param_raw_rs1),
    .io_deq_0_bits_param_raw_rs2(instr_fifo_io_deq_0_bits_param_raw_rs2),
    .io_deq_0_bits_param_raw_rd0(instr_fifo_io_deq_0_bits_param_raw_rd0),
    .io_flush(instr_fifo_io_flush)
  );
  MultiPortFifo_in1_out1_7 bftq ( // @[IF4.scala 51:20]
    .clock(bftq_clock),
    .reset(bftq_reset),
    .io_enq_0_ready(bftq_io_enq_0_ready),
    .io_enq_0_valid(bftq_io_enq_0_valid),
    .io_enq_0_bits_pc(bftq_io_enq_0_bits_pc),
    .io_enq_0_bits_bimResp_bim_p(bftq_io_enq_0_bits_bimResp_bim_p),
    .io_enq_0_bits_bimResp_bim_h(bftq_io_enq_0_bits_bimResp_bim_h),
    .io_enq_0_bits_isPredictTaken(bftq_io_enq_0_bits_isPredictTaken),
    .io_deq_0_ready(bftq_io_deq_0_ready),
    .io_deq_0_valid(bftq_io_deq_0_valid),
    .io_deq_0_bits_pc(bftq_io_deq_0_bits_pc),
    .io_deq_0_bits_bimResp_bim_p(bftq_io_deq_0_bits_bimResp_bim_p),
    .io_deq_0_bits_bimResp_bim_h(bftq_io_deq_0_bits_bimResp_bim_h),
    .io_deq_0_bits_isPredictTaken(bftq_io_deq_0_bits_isPredictTaken),
    .io_flush(bftq_io_flush)
  );
  MultiPortFifo_in1_out1_8 jftq ( // @[IF4.scala 52:20]
    .clock(jftq_clock),
    .reset(jftq_reset),
    .io_enq_0_ready(jftq_io_enq_0_ready),
    .io_enq_0_valid(jftq_io_enq_0_valid),
    .io_enq_0_bits_pc(jftq_io_enq_0_bits_pc),
    .io_enq_0_bits_btbResp_target(jftq_io_enq_0_bits_btbResp_target),
    .io_enq_0_bits_rasResp_target(jftq_io_enq_0_bits_rasResp_target),
    .io_enq_0_bits_isRas(jftq_io_enq_0_bits_isRas),
    .io_deq_0_ready(jftq_io_deq_0_ready),
    .io_deq_0_valid(jftq_io_deq_0_valid),
    .io_deq_0_bits_pc(jftq_io_deq_0_bits_pc),
    .io_deq_0_bits_btbResp_target(jftq_io_deq_0_bits_btbResp_target),
    .io_deq_0_bits_rasResp_target(jftq_io_deq_0_bits_rasResp_target),
    .io_deq_0_bits_isRas(jftq_io_deq_0_bits_isRas),
    .io_flush(jftq_io_flush)
  );
  RePort_4 bRePort ( // @[IF4.scala 55:23]
    .clock(bRePort_clock),
    .reset(bRePort_reset),
    .io_enq_0_ready(bRePort_io_enq_0_ready),
    .io_enq_0_valid(bRePort_io_enq_0_valid),
    .io_enq_0_bits_pc(bRePort_io_enq_0_bits_pc),
    .io_enq_0_bits_bimResp_bim_p(bRePort_io_enq_0_bits_bimResp_bim_p),
    .io_enq_0_bits_bimResp_bim_h(bRePort_io_enq_0_bits_bimResp_bim_h),
    .io_enq_0_bits_isPredictTaken(bRePort_io_enq_0_bits_isPredictTaken),
    .io_deq_0_ready(bRePort_io_deq_0_ready),
    .io_deq_0_valid(bRePort_io_deq_0_valid),
    .io_deq_0_bits_pc(bRePort_io_deq_0_bits_pc),
    .io_deq_0_bits_bimResp_bim_p(bRePort_io_deq_0_bits_bimResp_bim_p),
    .io_deq_0_bits_bimResp_bim_h(bRePort_io_deq_0_bits_bimResp_bim_h),
    .io_deq_0_bits_isPredictTaken(bRePort_io_deq_0_bits_isPredictTaken)
  );
  RePort_5 jRePort ( // @[IF4.scala 56:23]
    .clock(jRePort_clock),
    .reset(jRePort_reset),
    .io_enq_0_ready(jRePort_io_enq_0_ready),
    .io_enq_0_valid(jRePort_io_enq_0_valid),
    .io_enq_0_bits_pc(jRePort_io_enq_0_bits_pc),
    .io_enq_0_bits_btbResp_target(jRePort_io_enq_0_bits_btbResp_target),
    .io_enq_0_bits_rasResp_target(jRePort_io_enq_0_bits_rasResp_target),
    .io_enq_0_bits_isRas(jRePort_io_enq_0_bits_isRas),
    .io_deq_0_ready(jRePort_io_deq_0_ready),
    .io_deq_0_valid(jRePort_io_deq_0_valid),
    .io_deq_0_bits_pc(jRePort_io_deq_0_bits_pc),
    .io_deq_0_bits_btbResp_target(jRePort_io_deq_0_bits_btbResp_target),
    .io_deq_0_bits_rasResp_target(jRePort_io_deq_0_bits_rasResp_target),
    .io_deq_0_bits_isRas(jRePort_io_deq_0_bits_isRas)
  );
  ReDirect_1 bimRedirect_mdl ( // @[RePort.scala 188:21]
    .io_enq_0_ready(bimRedirect_mdl_io_enq_0_ready),
    .io_enq_0_valid(bimRedirect_mdl_io_enq_0_valid),
    .io_enq_0_bits_bim_p(bimRedirect_mdl_io_enq_0_bits_bim_p),
    .io_enq_0_bits_bim_h(bimRedirect_mdl_io_enq_0_bits_bim_h),
    .io_deq_0_ready(bimRedirect_mdl_io_deq_0_ready),
    .io_deq_0_valid(bimRedirect_mdl_io_deq_0_valid),
    .io_deq_0_bits_bim_p(bimRedirect_mdl_io_deq_0_bits_bim_p),
    .io_deq_0_bits_bim_h(bimRedirect_mdl_io_deq_0_bits_bim_h),
    .io_mapper_0(bimRedirect_mdl_io_mapper_0)
  );
  ReDirect_2 btbRedirect_mdl ( // @[RePort.scala 188:21]
    .io_enq_0_ready(btbRedirect_mdl_io_enq_0_ready),
    .io_enq_0_valid(btbRedirect_mdl_io_enq_0_valid),
    .io_enq_0_bits_target(btbRedirect_mdl_io_enq_0_bits_target),
    .io_deq_0_ready(btbRedirect_mdl_io_deq_0_ready),
    .io_deq_0_valid(btbRedirect_mdl_io_deq_0_valid),
    .io_deq_0_bits_target(btbRedirect_mdl_io_deq_0_bits_target),
    .io_mapper_0(btbRedirect_mdl_io_mapper_0)
  );
  Decode16 instr_fifo_io_enq_0_bits_dec16 ( // @[Decoder.scala 481:23]
    .io_x(instr_fifo_io_enq_0_bits_dec16_io_x),
    .io_pc(instr_fifo_io_enq_0_bits_dec16_io_pc),
    .io_info_alu_isa_lui(instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_lui),
    .io_info_alu_isa_addi(instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_addi),
    .io_info_alu_isa_addiw(instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_addiw),
    .io_info_alu_isa_andi(instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_andi),
    .io_info_alu_isa_slli(instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_slli),
    .io_info_alu_isa_srli(instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_srli),
    .io_info_alu_isa_srai(instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_srai),
    .io_info_alu_isa_add(instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_add),
    .io_info_alu_isa_addw(instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_addw),
    .io_info_alu_isa_sub(instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_sub),
    .io_info_alu_isa_subw(instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_subw),
    .io_info_alu_isa_xor(instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_xor),
    .io_info_alu_isa_or(instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_or),
    .io_info_alu_isa_and(instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_and),
    .io_info_bru_isa_jal(instr_fifo_io_enq_0_bits_dec16_io_info_bru_isa_jal),
    .io_info_bru_isa_jalr(instr_fifo_io_enq_0_bits_dec16_io_info_bru_isa_jalr),
    .io_info_bru_isa_beq(instr_fifo_io_enq_0_bits_dec16_io_info_bru_isa_beq),
    .io_info_bru_isa_bne(instr_fifo_io_enq_0_bits_dec16_io_info_bru_isa_bne),
    .io_info_lsu_isa_lw(instr_fifo_io_enq_0_bits_dec16_io_info_lsu_isa_lw),
    .io_info_lsu_isa_ld(instr_fifo_io_enq_0_bits_dec16_io_info_lsu_isa_ld),
    .io_info_lsu_isa_sw(instr_fifo_io_enq_0_bits_dec16_io_info_lsu_isa_sw),
    .io_info_lsu_isa_sd(instr_fifo_io_enq_0_bits_dec16_io_info_lsu_isa_sd),
    .io_info_privil_isa_ebreak(instr_fifo_io_enq_0_bits_dec16_io_info_privil_isa_ebreak),
    .io_info_privil_isa_is_access_fault(instr_fifo_io_enq_0_bits_dec16_io_info_privil_isa_is_access_fault),
    .io_info_privil_isa_is_paging_fault(instr_fifo_io_enq_0_bits_dec16_io_info_privil_isa_is_paging_fault),
    .io_info_param_pc(instr_fifo_io_enq_0_bits_dec16_io_info_param_pc),
    .io_info_param_imm(instr_fifo_io_enq_0_bits_dec16_io_info_param_imm),
    .io_info_param_raw_rs1(instr_fifo_io_enq_0_bits_dec16_io_info_param_raw_rs1),
    .io_info_param_raw_rs2(instr_fifo_io_enq_0_bits_dec16_io_info_param_raw_rs2),
    .io_info_param_raw_rd0(instr_fifo_io_enq_0_bits_dec16_io_info_param_raw_rd0)
  );
  Decode32 instr_fifo_io_enq_0_bits_dec32 ( // @[Decoder.scala 921:23]
    .io_x(instr_fifo_io_enq_0_bits_dec32_io_x),
    .io_pc(instr_fifo_io_enq_0_bits_dec32_io_pc),
    .io_info_alu_isa_lui(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_lui),
    .io_info_alu_isa_auipc(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_auipc),
    .io_info_alu_isa_addi(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_addi),
    .io_info_alu_isa_addiw(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_addiw),
    .io_info_alu_isa_slti(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_slti),
    .io_info_alu_isa_sltiu(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sltiu),
    .io_info_alu_isa_xori(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_xori),
    .io_info_alu_isa_ori(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_ori),
    .io_info_alu_isa_andi(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_andi),
    .io_info_alu_isa_slli(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_slli),
    .io_info_alu_isa_slliw(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_slliw),
    .io_info_alu_isa_srli(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_srli),
    .io_info_alu_isa_srliw(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_srliw),
    .io_info_alu_isa_srai(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_srai),
    .io_info_alu_isa_sraiw(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sraiw),
    .io_info_alu_isa_add(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_add),
    .io_info_alu_isa_addw(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_addw),
    .io_info_alu_isa_sub(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sub),
    .io_info_alu_isa_subw(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_subw),
    .io_info_alu_isa_sll(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sll),
    .io_info_alu_isa_sllw(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sllw),
    .io_info_alu_isa_slt(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_slt),
    .io_info_alu_isa_sltu(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sltu),
    .io_info_alu_isa_xor(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_xor),
    .io_info_alu_isa_srl(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_srl),
    .io_info_alu_isa_srlw(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_srlw),
    .io_info_alu_isa_sra(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sra),
    .io_info_alu_isa_sraw(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sraw),
    .io_info_alu_isa_or(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_or),
    .io_info_alu_isa_and(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_and),
    .io_info_alu_isa_wfi(instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_wfi),
    .io_info_bru_isa_jal(instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_jal),
    .io_info_bru_isa_jalr(instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_jalr),
    .io_info_bru_isa_beq(instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_beq),
    .io_info_bru_isa_bne(instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_bne),
    .io_info_bru_isa_blt(instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_blt),
    .io_info_bru_isa_bge(instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_bge),
    .io_info_bru_isa_bltu(instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_bltu),
    .io_info_bru_isa_bgeu(instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_bgeu),
    .io_info_lsu_isa_lb(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lb),
    .io_info_lsu_isa_lh(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lh),
    .io_info_lsu_isa_lw(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lw),
    .io_info_lsu_isa_ld(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_ld),
    .io_info_lsu_isa_lbu(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lbu),
    .io_info_lsu_isa_lhu(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lhu),
    .io_info_lsu_isa_lwu(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lwu),
    .io_info_lsu_isa_sb(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_sb),
    .io_info_lsu_isa_sh(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_sh),
    .io_info_lsu_isa_sw(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_sw),
    .io_info_lsu_isa_sd(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_sd),
    .io_info_lsu_isa_fence(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_fence),
    .io_info_lsu_isa_fence_i(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_fence_i),
    .io_info_lsu_isa_sfence_vma(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_sfence_vma),
    .io_info_lsu_isa_lr_w(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lr_w),
    .io_info_lsu_isa_sc_w(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_sc_w),
    .io_info_lsu_isa_amoswap_w(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoswap_w),
    .io_info_lsu_isa_amoadd_w(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoadd_w),
    .io_info_lsu_isa_amoxor_w(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoxor_w),
    .io_info_lsu_isa_amoand_w(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoand_w),
    .io_info_lsu_isa_amoor_w(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoor_w),
    .io_info_lsu_isa_amomin_w(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amomin_w),
    .io_info_lsu_isa_amomax_w(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amomax_w),
    .io_info_lsu_isa_amominu_w(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amominu_w),
    .io_info_lsu_isa_amomaxu_w(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amomaxu_w),
    .io_info_lsu_isa_lr_d(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lr_d),
    .io_info_lsu_isa_sc_d(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_sc_d),
    .io_info_lsu_isa_amoswap_d(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoswap_d),
    .io_info_lsu_isa_amoadd_d(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoadd_d),
    .io_info_lsu_isa_amoxor_d(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoxor_d),
    .io_info_lsu_isa_amoand_d(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoand_d),
    .io_info_lsu_isa_amoor_d(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoor_d),
    .io_info_lsu_isa_amomin_d(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amomin_d),
    .io_info_lsu_isa_amomax_d(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amomax_d),
    .io_info_lsu_isa_amominu_d(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amominu_d),
    .io_info_lsu_isa_amomaxu_d(instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amomaxu_d),
    .io_info_csr_isa_rw(instr_fifo_io_enq_0_bits_dec32_io_info_csr_isa_rw),
    .io_info_csr_isa_rs(instr_fifo_io_enq_0_bits_dec32_io_info_csr_isa_rs),
    .io_info_csr_isa_rc(instr_fifo_io_enq_0_bits_dec32_io_info_csr_isa_rc),
    .io_info_csr_isa_rwi(instr_fifo_io_enq_0_bits_dec32_io_info_csr_isa_rwi),
    .io_info_csr_isa_rsi(instr_fifo_io_enq_0_bits_dec32_io_info_csr_isa_rsi),
    .io_info_csr_isa_rci(instr_fifo_io_enq_0_bits_dec32_io_info_csr_isa_rci),
    .io_info_mul_isa_mul(instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_mul),
    .io_info_mul_isa_mulh(instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_mulh),
    .io_info_mul_isa_mulhsu(instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_mulhsu),
    .io_info_mul_isa_mulhu(instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_mulhu),
    .io_info_mul_isa_div(instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_div),
    .io_info_mul_isa_divu(instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_divu),
    .io_info_mul_isa_rem(instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_rem),
    .io_info_mul_isa_remu(instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_remu),
    .io_info_mul_isa_mulw(instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_mulw),
    .io_info_mul_isa_divw(instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_divw),
    .io_info_mul_isa_divuw(instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_divuw),
    .io_info_mul_isa_remw(instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_remw),
    .io_info_mul_isa_remuw(instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_remuw),
    .io_info_privil_isa_ecall(instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_ecall),
    .io_info_privil_isa_ebreak(instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_ebreak),
    .io_info_privil_isa_mret(instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_mret),
    .io_info_privil_isa_uret(instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_uret),
    .io_info_privil_isa_sret(instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_sret),
    .io_info_privil_isa_dret(instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_dret),
    .io_info_privil_isa_hfence_vvma(instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hfence_vvma),
    .io_info_privil_isa_hfence_gvma(instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hfence_gvma),
    .io_info_privil_isa_hlv_b(instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlv_b),
    .io_info_privil_isa_hlv_bu(instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlv_bu),
    .io_info_privil_isa_hlv_h(instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlv_h),
    .io_info_privil_isa_hlv_hu(instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlv_hu),
    .io_info_privil_isa_hlvx_hu(instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlvx_hu),
    .io_info_privil_isa_hlv_w(instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlv_w),
    .io_info_privil_isa_hlvx_wu(instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlvx_wu),
    .io_info_privil_isa_hsv_b(instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hsv_b),
    .io_info_privil_isa_hsv_h(instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hsv_h),
    .io_info_privil_isa_hsv_w(instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hsv_w),
    .io_info_privil_isa_hlv_wu(instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlv_wu),
    .io_info_privil_isa_hlv_d(instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlv_d),
    .io_info_privil_isa_hsv_d(instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hsv_d),
    .io_info_param_pc(instr_fifo_io_enq_0_bits_dec32_io_info_param_pc),
    .io_info_param_imm(instr_fifo_io_enq_0_bits_dec32_io_info_param_imm),
    .io_info_param_raw_rs1(instr_fifo_io_enq_0_bits_dec32_io_info_param_raw_rs1),
    .io_info_param_raw_rs2(instr_fifo_io_enq_0_bits_dec32_io_info_param_raw_rs2),
    .io_info_param_raw_rd0(instr_fifo_io_enq_0_bits_dec32_io_info_param_raw_rd0)
  );
  assign io_if4_req_0_ready = bRePort_io_enq_0_ready & jRePort_io_enq_0_ready & instr_fifo_io_enq_0_ready; // @[IF4.scala 254:76]
  assign io_btbResp_0_ready = btbRedirect_mdl_io_enq_0_ready; // @[RePort.scala 190:9]
  assign io_bimResp_0_ready = bimRedirect_mdl_io_enq_0_ready; // @[RePort.scala 190:9]
  assign io_if4_resp_0_valid = instr_fifo_io_deq_0_valid; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_lui = instr_fifo_io_deq_0_bits_alu_isa_lui; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_auipc = instr_fifo_io_deq_0_bits_alu_isa_auipc; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_addi = instr_fifo_io_deq_0_bits_alu_isa_addi; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_addiw = instr_fifo_io_deq_0_bits_alu_isa_addiw; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_slti = instr_fifo_io_deq_0_bits_alu_isa_slti; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_sltiu = instr_fifo_io_deq_0_bits_alu_isa_sltiu; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_xori = instr_fifo_io_deq_0_bits_alu_isa_xori; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_ori = instr_fifo_io_deq_0_bits_alu_isa_ori; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_andi = instr_fifo_io_deq_0_bits_alu_isa_andi; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_slli = instr_fifo_io_deq_0_bits_alu_isa_slli; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_slliw = instr_fifo_io_deq_0_bits_alu_isa_slliw; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_srli = instr_fifo_io_deq_0_bits_alu_isa_srli; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_srliw = instr_fifo_io_deq_0_bits_alu_isa_srliw; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_srai = instr_fifo_io_deq_0_bits_alu_isa_srai; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_sraiw = instr_fifo_io_deq_0_bits_alu_isa_sraiw; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_add = instr_fifo_io_deq_0_bits_alu_isa_add; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_addw = instr_fifo_io_deq_0_bits_alu_isa_addw; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_sub = instr_fifo_io_deq_0_bits_alu_isa_sub; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_subw = instr_fifo_io_deq_0_bits_alu_isa_subw; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_sll = instr_fifo_io_deq_0_bits_alu_isa_sll; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_sllw = instr_fifo_io_deq_0_bits_alu_isa_sllw; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_slt = instr_fifo_io_deq_0_bits_alu_isa_slt; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_sltu = instr_fifo_io_deq_0_bits_alu_isa_sltu; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_xor = instr_fifo_io_deq_0_bits_alu_isa_xor; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_srl = instr_fifo_io_deq_0_bits_alu_isa_srl; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_srlw = instr_fifo_io_deq_0_bits_alu_isa_srlw; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_sra = instr_fifo_io_deq_0_bits_alu_isa_sra; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_sraw = instr_fifo_io_deq_0_bits_alu_isa_sraw; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_or = instr_fifo_io_deq_0_bits_alu_isa_or; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_and = instr_fifo_io_deq_0_bits_alu_isa_and; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_alu_isa_wfi = instr_fifo_io_deq_0_bits_alu_isa_wfi; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_bru_isa_jal = instr_fifo_io_deq_0_bits_bru_isa_jal; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_bru_isa_jalr = instr_fifo_io_deq_0_bits_bru_isa_jalr; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_bru_isa_beq = instr_fifo_io_deq_0_bits_bru_isa_beq; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_bru_isa_bne = instr_fifo_io_deq_0_bits_bru_isa_bne; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_bru_isa_blt = instr_fifo_io_deq_0_bits_bru_isa_blt; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_bru_isa_bge = instr_fifo_io_deq_0_bits_bru_isa_bge; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_bru_isa_bltu = instr_fifo_io_deq_0_bits_bru_isa_bltu; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_bru_isa_bgeu = instr_fifo_io_deq_0_bits_bru_isa_bgeu; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_lb = instr_fifo_io_deq_0_bits_lsu_isa_lb; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_lh = instr_fifo_io_deq_0_bits_lsu_isa_lh; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_lw = instr_fifo_io_deq_0_bits_lsu_isa_lw; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_ld = instr_fifo_io_deq_0_bits_lsu_isa_ld; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_lbu = instr_fifo_io_deq_0_bits_lsu_isa_lbu; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_lhu = instr_fifo_io_deq_0_bits_lsu_isa_lhu; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_lwu = instr_fifo_io_deq_0_bits_lsu_isa_lwu; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_sb = instr_fifo_io_deq_0_bits_lsu_isa_sb; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_sh = instr_fifo_io_deq_0_bits_lsu_isa_sh; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_sw = instr_fifo_io_deq_0_bits_lsu_isa_sw; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_sd = instr_fifo_io_deq_0_bits_lsu_isa_sd; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_fence = instr_fifo_io_deq_0_bits_lsu_isa_fence; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_fence_i = instr_fifo_io_deq_0_bits_lsu_isa_fence_i; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_sfence_vma = instr_fifo_io_deq_0_bits_lsu_isa_sfence_vma; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_lr_w = instr_fifo_io_deq_0_bits_lsu_isa_lr_w; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_sc_w = instr_fifo_io_deq_0_bits_lsu_isa_sc_w; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_amoswap_w = instr_fifo_io_deq_0_bits_lsu_isa_amoswap_w; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_amoadd_w = instr_fifo_io_deq_0_bits_lsu_isa_amoadd_w; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_amoxor_w = instr_fifo_io_deq_0_bits_lsu_isa_amoxor_w; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_amoand_w = instr_fifo_io_deq_0_bits_lsu_isa_amoand_w; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_amoor_w = instr_fifo_io_deq_0_bits_lsu_isa_amoor_w; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_amomin_w = instr_fifo_io_deq_0_bits_lsu_isa_amomin_w; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_amomax_w = instr_fifo_io_deq_0_bits_lsu_isa_amomax_w; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_amominu_w = instr_fifo_io_deq_0_bits_lsu_isa_amominu_w; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_amomaxu_w = instr_fifo_io_deq_0_bits_lsu_isa_amomaxu_w; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_lr_d = instr_fifo_io_deq_0_bits_lsu_isa_lr_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_sc_d = instr_fifo_io_deq_0_bits_lsu_isa_sc_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_amoswap_d = instr_fifo_io_deq_0_bits_lsu_isa_amoswap_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_amoadd_d = instr_fifo_io_deq_0_bits_lsu_isa_amoadd_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_amoxor_d = instr_fifo_io_deq_0_bits_lsu_isa_amoxor_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_amoand_d = instr_fifo_io_deq_0_bits_lsu_isa_amoand_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_amoor_d = instr_fifo_io_deq_0_bits_lsu_isa_amoor_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_amomin_d = instr_fifo_io_deq_0_bits_lsu_isa_amomin_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_amomax_d = instr_fifo_io_deq_0_bits_lsu_isa_amomax_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_amominu_d = instr_fifo_io_deq_0_bits_lsu_isa_amominu_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_amomaxu_d = instr_fifo_io_deq_0_bits_lsu_isa_amomaxu_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_flw = instr_fifo_io_deq_0_bits_lsu_isa_flw; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_fsw = instr_fifo_io_deq_0_bits_lsu_isa_fsw; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_fld = instr_fifo_io_deq_0_bits_lsu_isa_fld; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_lsu_isa_fsd = instr_fifo_io_deq_0_bits_lsu_isa_fsd; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_csr_isa_rw = instr_fifo_io_deq_0_bits_csr_isa_rw; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_csr_isa_rs = instr_fifo_io_deq_0_bits_csr_isa_rs; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_csr_isa_rc = instr_fifo_io_deq_0_bits_csr_isa_rc; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_csr_isa_rwi = instr_fifo_io_deq_0_bits_csr_isa_rwi; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_csr_isa_rsi = instr_fifo_io_deq_0_bits_csr_isa_rsi; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_csr_isa_rci = instr_fifo_io_deq_0_bits_csr_isa_rci; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_mul_isa_mul = instr_fifo_io_deq_0_bits_mul_isa_mul; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_mul_isa_mulh = instr_fifo_io_deq_0_bits_mul_isa_mulh; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_mul_isa_mulhsu = instr_fifo_io_deq_0_bits_mul_isa_mulhsu; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_mul_isa_mulhu = instr_fifo_io_deq_0_bits_mul_isa_mulhu; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_mul_isa_div = instr_fifo_io_deq_0_bits_mul_isa_div; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_mul_isa_divu = instr_fifo_io_deq_0_bits_mul_isa_divu; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_mul_isa_rem = instr_fifo_io_deq_0_bits_mul_isa_rem; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_mul_isa_remu = instr_fifo_io_deq_0_bits_mul_isa_remu; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_mul_isa_mulw = instr_fifo_io_deq_0_bits_mul_isa_mulw; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_mul_isa_divw = instr_fifo_io_deq_0_bits_mul_isa_divw; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_mul_isa_divuw = instr_fifo_io_deq_0_bits_mul_isa_divuw; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_mul_isa_remw = instr_fifo_io_deq_0_bits_mul_isa_remw; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_mul_isa_remuw = instr_fifo_io_deq_0_bits_mul_isa_remuw; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_ecall = instr_fifo_io_deq_0_bits_privil_isa_ecall; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_ebreak = instr_fifo_io_deq_0_bits_privil_isa_ebreak; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_mret = instr_fifo_io_deq_0_bits_privil_isa_mret; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_uret = instr_fifo_io_deq_0_bits_privil_isa_uret; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_sret = instr_fifo_io_deq_0_bits_privil_isa_sret; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_dret = instr_fifo_io_deq_0_bits_privil_isa_dret; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_hfence_vvma = instr_fifo_io_deq_0_bits_privil_isa_hfence_vvma; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_hfence_gvma = instr_fifo_io_deq_0_bits_privil_isa_hfence_gvma; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_hlv_b = instr_fifo_io_deq_0_bits_privil_isa_hlv_b; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_hlv_bu = instr_fifo_io_deq_0_bits_privil_isa_hlv_bu; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_hlv_h = instr_fifo_io_deq_0_bits_privil_isa_hlv_h; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_hlv_hu = instr_fifo_io_deq_0_bits_privil_isa_hlv_hu; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_hlvx_hu = instr_fifo_io_deq_0_bits_privil_isa_hlvx_hu; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_hlv_w = instr_fifo_io_deq_0_bits_privil_isa_hlv_w; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_hlvx_wu = instr_fifo_io_deq_0_bits_privil_isa_hlvx_wu; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_hsv_b = instr_fifo_io_deq_0_bits_privil_isa_hsv_b; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_hsv_h = instr_fifo_io_deq_0_bits_privil_isa_hsv_h; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_hsv_w = instr_fifo_io_deq_0_bits_privil_isa_hsv_w; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_hlv_wu = instr_fifo_io_deq_0_bits_privil_isa_hlv_wu; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_hlv_d = instr_fifo_io_deq_0_bits_privil_isa_hlv_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_hsv_d = instr_fifo_io_deq_0_bits_privil_isa_hsv_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_is_access_fault = instr_fifo_io_deq_0_bits_privil_isa_is_access_fault; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_privil_isa_is_paging_fault = instr_fifo_io_deq_0_bits_privil_isa_is_paging_fault; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fmadd_s = instr_fifo_io_deq_0_bits_fpu_isa_fmadd_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fmsub_s = instr_fifo_io_deq_0_bits_fpu_isa_fmsub_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fnmsub_s = instr_fifo_io_deq_0_bits_fpu_isa_fnmsub_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fnmadd_s = instr_fifo_io_deq_0_bits_fpu_isa_fnmadd_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fadd_s = instr_fifo_io_deq_0_bits_fpu_isa_fadd_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fsub_s = instr_fifo_io_deq_0_bits_fpu_isa_fsub_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fmul_s = instr_fifo_io_deq_0_bits_fpu_isa_fmul_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fdiv_s = instr_fifo_io_deq_0_bits_fpu_isa_fdiv_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fsqrt_s = instr_fifo_io_deq_0_bits_fpu_isa_fsqrt_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fsgnj_s = instr_fifo_io_deq_0_bits_fpu_isa_fsgnj_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fsgnjn_s = instr_fifo_io_deq_0_bits_fpu_isa_fsgnjn_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fsgnjx_s = instr_fifo_io_deq_0_bits_fpu_isa_fsgnjx_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fmin_s = instr_fifo_io_deq_0_bits_fpu_isa_fmin_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fmax_s = instr_fifo_io_deq_0_bits_fpu_isa_fmax_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcvt_w_s = instr_fifo_io_deq_0_bits_fpu_isa_fcvt_w_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcvt_wu_s = instr_fifo_io_deq_0_bits_fpu_isa_fcvt_wu_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fmv_x_w = instr_fifo_io_deq_0_bits_fpu_isa_fmv_x_w; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_feq_s = instr_fifo_io_deq_0_bits_fpu_isa_feq_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_flt_s = instr_fifo_io_deq_0_bits_fpu_isa_flt_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fle_s = instr_fifo_io_deq_0_bits_fpu_isa_fle_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fclass_s = instr_fifo_io_deq_0_bits_fpu_isa_fclass_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcvt_s_w = instr_fifo_io_deq_0_bits_fpu_isa_fcvt_s_w; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcvt_s_wu = instr_fifo_io_deq_0_bits_fpu_isa_fcvt_s_wu; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fmv_w_x = instr_fifo_io_deq_0_bits_fpu_isa_fmv_w_x; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcvt_l_s = instr_fifo_io_deq_0_bits_fpu_isa_fcvt_l_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcvt_lu_s = instr_fifo_io_deq_0_bits_fpu_isa_fcvt_lu_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcvt_s_l = instr_fifo_io_deq_0_bits_fpu_isa_fcvt_s_l; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcvt_s_lu = instr_fifo_io_deq_0_bits_fpu_isa_fcvt_s_lu; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fmadd_d = instr_fifo_io_deq_0_bits_fpu_isa_fmadd_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fmsub_d = instr_fifo_io_deq_0_bits_fpu_isa_fmsub_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fnmsub_d = instr_fifo_io_deq_0_bits_fpu_isa_fnmsub_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fnmadd_d = instr_fifo_io_deq_0_bits_fpu_isa_fnmadd_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fadd_d = instr_fifo_io_deq_0_bits_fpu_isa_fadd_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fsub_d = instr_fifo_io_deq_0_bits_fpu_isa_fsub_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fmul_d = instr_fifo_io_deq_0_bits_fpu_isa_fmul_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fdiv_d = instr_fifo_io_deq_0_bits_fpu_isa_fdiv_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fsqrt_d = instr_fifo_io_deq_0_bits_fpu_isa_fsqrt_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fsgnj_d = instr_fifo_io_deq_0_bits_fpu_isa_fsgnj_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fsgnjn_d = instr_fifo_io_deq_0_bits_fpu_isa_fsgnjn_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fsgnjx_d = instr_fifo_io_deq_0_bits_fpu_isa_fsgnjx_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fmin_d = instr_fifo_io_deq_0_bits_fpu_isa_fmin_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fmax_d = instr_fifo_io_deq_0_bits_fpu_isa_fmax_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcvt_s_d = instr_fifo_io_deq_0_bits_fpu_isa_fcvt_s_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcvt_d_s = instr_fifo_io_deq_0_bits_fpu_isa_fcvt_d_s; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_feq_d = instr_fifo_io_deq_0_bits_fpu_isa_feq_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_flt_d = instr_fifo_io_deq_0_bits_fpu_isa_flt_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fle_d = instr_fifo_io_deq_0_bits_fpu_isa_fle_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fclass_d = instr_fifo_io_deq_0_bits_fpu_isa_fclass_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcvt_w_d = instr_fifo_io_deq_0_bits_fpu_isa_fcvt_w_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcvt_wu_d = instr_fifo_io_deq_0_bits_fpu_isa_fcvt_wu_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcvt_d_w = instr_fifo_io_deq_0_bits_fpu_isa_fcvt_d_w; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcvt_d_wu = instr_fifo_io_deq_0_bits_fpu_isa_fcvt_d_wu; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcvt_l_d = instr_fifo_io_deq_0_bits_fpu_isa_fcvt_l_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcvt_lu_d = instr_fifo_io_deq_0_bits_fpu_isa_fcvt_lu_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fmv_x_d = instr_fifo_io_deq_0_bits_fpu_isa_fmv_x_d; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcvt_d_l = instr_fifo_io_deq_0_bits_fpu_isa_fcvt_d_l; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcvt_d_lu = instr_fifo_io_deq_0_bits_fpu_isa_fcvt_d_lu; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fmv_d_x = instr_fifo_io_deq_0_bits_fpu_isa_fmv_d_x; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcsr_rw = instr_fifo_io_deq_0_bits_fpu_isa_fcsr_rw; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcsr_rs = instr_fifo_io_deq_0_bits_fpu_isa_fcsr_rs; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcsr_rc = instr_fifo_io_deq_0_bits_fpu_isa_fcsr_rc; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcsr_rwi = instr_fifo_io_deq_0_bits_fpu_isa_fcsr_rwi; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcsr_rsi = instr_fifo_io_deq_0_bits_fpu_isa_fcsr_rsi; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_fpu_isa_fcsr_rci = instr_fifo_io_deq_0_bits_fpu_isa_fcsr_rci; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_param_is_rvc = instr_fifo_io_deq_0_bits_param_is_rvc; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_param_pc = instr_fifo_io_deq_0_bits_param_pc; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_param_imm = instr_fifo_io_deq_0_bits_param_imm; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_param_raw_rs1 = instr_fifo_io_deq_0_bits_param_raw_rs1; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_param_raw_rs2 = instr_fifo_io_deq_0_bits_param_raw_rs2; // @[IF4.scala 237:15]
  assign io_if4_resp_0_bits_param_raw_rd0 = instr_fifo_io_deq_0_bits_param_raw_rd0; // @[IF4.scala 237:15]
  assign io_if4Redirect_valid = _ras_io_deq_ready_T & isDisAgreeWithIF1_0; // @[IF4.scala 171:44]
  assign io_if4Redirect_bits_target = _io_if4Redirect_bits_target_T_4[38:0]; // @[IF4.scala 179:30]
  assign io_bftq_valid = bftq_io_deq_0_valid; // @[IF4.scala 238:11]
  assign io_bftq_bits_pc = bftq_io_deq_0_bits_pc; // @[IF4.scala 238:11]
  assign io_bftq_bits_bimResp_bim_p = bftq_io_deq_0_bits_bimResp_bim_p; // @[IF4.scala 238:11]
  assign io_bftq_bits_bimResp_bim_h = bftq_io_deq_0_bits_bimResp_bim_h; // @[IF4.scala 238:11]
  assign io_bftq_bits_isPredictTaken = bftq_io_deq_0_bits_isPredictTaken; // @[IF4.scala 238:11]
  assign io_jftq_valid = jftq_io_deq_0_valid; // @[IF4.scala 239:11]
  assign io_jftq_bits_pc = jftq_io_deq_0_bits_pc; // @[IF4.scala 239:11]
  assign io_jftq_bits_btbResp_target = jftq_io_deq_0_bits_btbResp_target; // @[IF4.scala 239:11]
  assign io_jftq_bits_rasResp_target = jftq_io_deq_0_bits_rasResp_target; // @[IF4.scala 239:11]
  assign io_jftq_bits_isRas = jftq_io_deq_0_bits_isRas; // @[IF4.scala 239:11]
  assign ras_clock = clock;
  assign ras_reset = reset;
  assign ras_io_enq_valid = preDecodeAgn_0_is_call & _ras_io_deq_ready_T; // @[IF4.scala 135:16]
  assign ras_io_enq_bits_target = preDecodeAgn_0_is_call ? _ras_io_enq_bits_target_T_2 : 39'h0; // @[Mux.scala 101:16]
  assign ras_io_deq_ready = preDecodeAgn_0_is_return & _ras_io_deq_ready_T; // @[IF4.scala 132:65]
  assign ras_io_flush = io_flush; // @[IF4.scala 212:16]
  assign instr_fifo_clock = clock;
  assign instr_fifo_reset = reset;
  assign instr_fifo_io_enq_0_valid = io_if4_req_0_ready & io_if4_req_0_valid; // @[Decoupled.scala 52:35]
  assign instr_fifo_io_enq_0_bits_alu_isa_lui = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_lui : instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_lui; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_auipc = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_auipc; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_addi = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_addi : instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_addi; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_addiw = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_addiw : instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_addiw; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_slti = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_slti; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_sltiu = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sltiu; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_xori = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_xori; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_ori = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_ori; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_andi = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_andi : instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_andi; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_slli = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_slli : instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_slli; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_slliw = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_slliw; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_srli = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_srli : instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_srli; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_srliw = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_srliw; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_srai = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_srai : instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_srai; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_sraiw = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sraiw; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_add = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_add : instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_add; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_addw = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_addw : instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_addw; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_sub = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_sub : instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sub; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_subw = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_subw : instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_subw; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_sll = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sll; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_sllw = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sllw; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_slt = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_slt; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_sltu = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sltu; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_xor = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_xor : instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_xor; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_srl = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_srl; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_srlw = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_srlw; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_sra = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sra; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_sraw = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_sraw; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_or = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_or : instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_or; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_and = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_alu_isa_and : instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_and; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_alu_isa_wfi = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_alu_isa_wfi; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_bru_isa_jal = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_bru_isa_jal : instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_jal; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_bru_isa_jalr = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_bru_isa_jalr : instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_jalr; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_bru_isa_beq = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_bru_isa_beq : instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_beq; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_bru_isa_bne = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_bru_isa_bne : instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_bne; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_bru_isa_blt = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_blt; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_bru_isa_bge = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_bge; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_bru_isa_bltu = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_bltu; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_bru_isa_bgeu = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_bru_isa_bgeu; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_lb = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lb; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_lh = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lh; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_lw = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_lsu_isa_lw : instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lw; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_ld = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_lsu_isa_ld : instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_ld; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_lbu = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lbu; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_lhu = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lhu; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_lwu = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lwu; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_sb = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_sb; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_sh = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_sh; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_sw = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_lsu_isa_sw : instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_sw; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_sd = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_lsu_isa_sd : instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_sd; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_fence = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_fence; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_fence_i = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_fence_i; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_sfence_vma = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_sfence_vma; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_lr_w = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lr_w; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_sc_w = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_sc_w; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_amoswap_w = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoswap_w; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_amoadd_w = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoadd_w; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_amoxor_w = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoxor_w; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_amoand_w = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoand_w; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_amoor_w = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoor_w; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_amomin_w = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amomin_w; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_amomax_w = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amomax_w; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_amominu_w = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amominu_w; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_amomaxu_w = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amomaxu_w; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_lr_d = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_lr_d; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_sc_d = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_sc_d; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_amoswap_d = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoswap_d; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_amoadd_d = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoadd_d; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_amoxor_d = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoxor_d; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_amoand_d = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoand_d; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_amoor_d = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amoor_d; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_amomin_d = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amomin_d; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_amomax_d = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amomax_d; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_amominu_d = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amominu_d; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_lsu_isa_amomaxu_d = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_lsu_isa_amomaxu_d; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_csr_isa_rw = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_csr_isa_rw; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_csr_isa_rs = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_csr_isa_rs; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_csr_isa_rc = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_csr_isa_rc; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_csr_isa_rwi = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_csr_isa_rwi; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_csr_isa_rsi = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_csr_isa_rsi; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_csr_isa_rci = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_csr_isa_rci; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_mul_isa_mul = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_mul; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_mul_isa_mulh = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_mulh; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_mul_isa_mulhsu = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_mulhsu; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_mul_isa_mulhu = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_mulhu; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_mul_isa_div = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_div; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_mul_isa_divu = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_divu; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_mul_isa_rem = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_rem; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_mul_isa_remu = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_remu; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_mul_isa_mulw = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_mulw; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_mul_isa_divw = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_divw; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_mul_isa_divuw = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_divuw; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_mul_isa_remw = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_remw; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_mul_isa_remuw = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_mul_isa_remuw; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_ecall = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_ecall; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_ebreak = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_privil_isa_ebreak : instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_ebreak; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_mret = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_mret; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_uret = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_uret; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_sret = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_sret; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_dret = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_dret; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_hfence_vvma = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hfence_vvma; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_hfence_gvma = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hfence_gvma; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_hlv_b = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlv_b; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_hlv_bu = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlv_bu; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_hlv_h = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlv_h; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_hlv_hu = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlv_hu; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_hlvx_hu = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlvx_hu; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_hlv_w = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlv_w; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_hlvx_wu = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlvx_wu; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_hsv_b = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hsv_b; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_hsv_h = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hsv_h; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_hsv_w = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hsv_w; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_hlv_wu = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlv_wu; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_hlv_d = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hlv_d; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_hsv_d = io_if4_req_0_bits_isRVC ? 1'h0 :
    instr_fifo_io_enq_0_bits_dec32_io_info_privil_isa_hsv_d; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_is_access_fault = io_if4_req_0_bits_isRVC &
    instr_fifo_io_enq_0_bits_dec16_io_info_privil_isa_is_access_fault; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_privil_isa_is_paging_fault = io_if4_req_0_bits_isRVC &
    instr_fifo_io_enq_0_bits_dec16_io_info_privil_isa_is_paging_fault; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_param_is_rvc = io_if4_req_0_bits_isRVC; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_param_pc = io_if4_req_0_bits_isRVC ? instr_fifo_io_enq_0_bits_dec16_io_info_param_pc
     : instr_fifo_io_enq_0_bits_dec32_io_info_param_pc; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_param_imm = io_if4_req_0_bits_isRVC ? instr_fifo_io_enq_0_bits_dec16_io_info_param_imm
     : instr_fifo_io_enq_0_bits_dec32_io_info_param_imm; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_param_raw_rs1 = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_param_raw_rs1 : instr_fifo_io_enq_0_bits_dec32_io_info_param_raw_rs1; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_param_raw_rs2 = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_param_raw_rs2 : instr_fifo_io_enq_0_bits_dec32_io_info_param_raw_rs2; // @[IF4.scala 93:10]
  assign instr_fifo_io_enq_0_bits_param_raw_rd0 = io_if4_req_0_bits_isRVC ?
    instr_fifo_io_enq_0_bits_dec16_io_info_param_raw_rd0 : instr_fifo_io_enq_0_bits_dec32_io_info_param_raw_rd0; // @[IF4.scala 93:10]
  assign instr_fifo_io_deq_0_ready = io_if4_resp_0_ready; // @[IF4.scala 237:15]
  assign instr_fifo_io_flush = io_flush; // @[IF4.scala 264:23]
  assign bftq_clock = clock;
  assign bftq_reset = reset;
  assign bftq_io_enq_0_valid = bRePort_io_deq_0_valid; // @[IF4.scala 241:15]
  assign bftq_io_enq_0_bits_pc = bRePort_io_deq_0_bits_pc; // @[IF4.scala 241:15]
  assign bftq_io_enq_0_bits_bimResp_bim_p = bRePort_io_deq_0_bits_bimResp_bim_p; // @[IF4.scala 241:15]
  assign bftq_io_enq_0_bits_bimResp_bim_h = bRePort_io_deq_0_bits_bimResp_bim_h; // @[IF4.scala 241:15]
  assign bftq_io_enq_0_bits_isPredictTaken = bRePort_io_deq_0_bits_isPredictTaken; // @[IF4.scala 241:15]
  assign bftq_io_deq_0_ready = io_bftq_ready; // @[IF4.scala 238:11]
  assign bftq_io_flush = io_flush; // @[IF4.scala 265:17]
  assign jftq_clock = clock;
  assign jftq_reset = reset;
  assign jftq_io_enq_0_valid = jRePort_io_deq_0_valid; // @[IF4.scala 242:15]
  assign jftq_io_enq_0_bits_pc = jRePort_io_deq_0_bits_pc; // @[IF4.scala 242:15]
  assign jftq_io_enq_0_bits_btbResp_target = jRePort_io_deq_0_bits_btbResp_target; // @[IF4.scala 242:15]
  assign jftq_io_enq_0_bits_rasResp_target = jRePort_io_deq_0_bits_rasResp_target; // @[IF4.scala 242:15]
  assign jftq_io_enq_0_bits_isRas = jRePort_io_deq_0_bits_isRas; // @[IF4.scala 242:15]
  assign jftq_io_deq_0_ready = io_jftq_ready; // @[IF4.scala 239:11]
  assign jftq_io_flush = io_flush; // @[IF4.scala 266:17]
  assign bRePort_clock = clock;
  assign bRePort_reset = reset;
  assign bRePort_io_enq_0_valid = _ras_io_deq_ready_T & preDecodeAgn_0_is_branch; // @[IF4.scala 247:51]
  assign bRePort_io_enq_0_bits_pc = io_if4_req_0_bits_pc; // @[IF4.scala 196:43]
  assign bRePort_io_enq_0_bits_bimResp_bim_p = bimRedirect_mdl_io_deq_0_bits_bim_p; // @[IF4.scala 198:43]
  assign bRePort_io_enq_0_bits_bimResp_bim_h = bimRedirect_mdl_io_deq_0_bits_bim_h; // @[IF4.scala 198:43]
  assign bRePort_io_enq_0_bits_isPredictTaken = bimRedirect_mdl_io_deq_0_bits_bim_p; // @[IF4.scala 200:43]
  assign bRePort_io_deq_0_ready = bftq_io_enq_0_ready; // @[IF4.scala 241:15]
  assign jRePort_clock = clock;
  assign jRePort_reset = reset;
  assign jRePort_io_enq_0_valid = _ras_io_deq_ready_T & preDecodeAgn_0_is_jalr; // @[IF4.scala 248:51]
  assign jRePort_io_enq_0_bits_pc = io_if4_req_0_bits_pc; // @[IF4.scala 202:36]
  assign jRePort_io_enq_0_bits_btbResp_target = btbRedirect_mdl_io_deq_0_bits_target; // @[IF4.scala 203:36]
  assign jRePort_io_enq_0_bits_rasResp_target = ras_io_deq_bits_target; // @[IF4.scala 204:36]
  assign jRePort_io_enq_0_bits_isRas = preDecodeAgn_0_is_return & ras_io_deq_valid; // @[IF4.scala 205:52]
  assign jRePort_io_deq_0_ready = jftq_io_enq_0_ready; // @[IF4.scala 242:15]
  assign bimRedirect_mdl_io_enq_0_valid = io_bimResp_0_valid; // @[RePort.scala 190:9]
  assign bimRedirect_mdl_io_enq_0_bits_bim_p = io_bimResp_0_bits_bim_p; // @[RePort.scala 190:9]
  assign bimRedirect_mdl_io_enq_0_bits_bim_h = io_bimResp_0_bits_bim_h; // @[RePort.scala 190:9]
  assign bimRedirect_mdl_io_deq_0_ready = preDecodeAgn_0_is_branch & _ras_io_deq_ready_T; // @[IF4.scala 221:43]
  assign bimRedirect_mdl_io_mapper_0 = io_if4_req_0_bits_isRVC ? preDecodeAgn_info16_is_branch :
    preDecodeAgn_info32_is_branch; // @[IF4.scala 58:46]
  assign btbRedirect_mdl_io_enq_0_valid = io_btbResp_0_valid; // @[RePort.scala 190:9]
  assign btbRedirect_mdl_io_enq_0_bits_target = io_btbResp_0_bits_target; // @[RePort.scala 190:9]
  assign btbRedirect_mdl_io_deq_0_ready = preDecodeAgn_0_is_jalr & _ras_io_deq_ready_T; // @[IF4.scala 220:43]
  assign btbRedirect_mdl_io_mapper_0 = io_if4_req_0_bits_isRVC ? preDecodeAgn_info16_is_jalr :
    preDecodeAgn_info32_is_jalr; // @[IF4.scala 58:46]
  assign instr_fifo_io_enq_0_bits_dec16_io_x = io_if4_req_0_bits_instr[15:0]; // @[IF4.scala 94:46]
  assign instr_fifo_io_enq_0_bits_dec16_io_pc = {{25'd0}, io_if4_req_0_bits_pc}; // @[Decoder.scala 483:17]
  assign instr_fifo_io_enq_0_bits_dec32_io_x = io_if4_req_0_bits_instr; // @[Decoder.scala 922:16]
  assign instr_fifo_io_enq_0_bits_dec32_io_pc = {{25'd0}, io_if4_req_0_bits_pc}; // @[Decoder.scala 923:17]
  always @(posedge clock) begin
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~isRedirect_0 & _tage_decode_T_3 & ~(redirectTarget_0 == 64'h0)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at IF4.scala:173 when( ~isRedirect(i) ) { assert( redirectTarget(i) === 0.U ) }\n"); // @[IF4.scala 173:36]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(redirectTarget_0 == 64'h0) & (~isRedirect_0 & _tage_decode_T_3)) begin
          $fatal; // @[IF4.scala 173:36]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_if4_req_0_valid & ~io_if4_req_0_bits_isRedirect & _tage_decode_T_3 & ~(io_if4_req_0_bits_target == 39'h0)
          ) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at IF4.scala:174 when( io.if4_req(i).valid & ~io.if4_req(i).bits.isRedirect ) { assert( io.if4_req(i).bits.target === 0.U ) }\n"
            ); // @[IF4.scala 174:74]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(io_if4_req_0_bits_target == 39'h0) & (io_if4_req_0_valid & ~io_if4_req_0_bits_isRedirect &
          _tage_decode_T_3)) begin
          $fatal; // @[IF4.scala 174:74]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_tage_decode_T_3 & ~(~(btbRedirect_mdl_io_deq_0_ready & ~btbRedirect_mdl_io_deq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at IF4.scala:224 assert( ~(btbRedirect(i).ready  & ~btbRedirect(i).valid) )\n"); // @[IF4.scala 224:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(btbRedirect_mdl_io_deq_0_ready & ~btbRedirect_mdl_io_deq_0_valid)) & _tage_decode_T_3) begin
          $fatal; // @[IF4.scala 224:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_tage_decode_T_3 & ~(~(bimRedirect_mdl_io_deq_0_ready & ~bimRedirect_mdl_io_deq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at IF4.scala:225 assert( ~(bimRedirect(i).ready  & ~bimRedirect(i).valid) )\n"); // @[IF4.scala 225:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(bimRedirect_mdl_io_deq_0_ready & ~bimRedirect_mdl_io_deq_0_valid)) & _tage_decode_T_3) begin
          $fatal; // @[IF4.scala 225:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
endmodule
module RePort_6(
  input         clock,
  input         reset,
  output        io_enq_0_ready,
  input         io_enq_0_valid,
  input         io_enq_0_bits_alu_isa_lui,
  input         io_enq_0_bits_alu_isa_auipc,
  input         io_enq_0_bits_alu_isa_addi,
  input         io_enq_0_bits_alu_isa_addiw,
  input         io_enq_0_bits_alu_isa_slti,
  input         io_enq_0_bits_alu_isa_sltiu,
  input         io_enq_0_bits_alu_isa_xori,
  input         io_enq_0_bits_alu_isa_ori,
  input         io_enq_0_bits_alu_isa_andi,
  input         io_enq_0_bits_alu_isa_slli,
  input         io_enq_0_bits_alu_isa_slliw,
  input         io_enq_0_bits_alu_isa_srli,
  input         io_enq_0_bits_alu_isa_srliw,
  input         io_enq_0_bits_alu_isa_srai,
  input         io_enq_0_bits_alu_isa_sraiw,
  input         io_enq_0_bits_alu_isa_add,
  input         io_enq_0_bits_alu_isa_addw,
  input         io_enq_0_bits_alu_isa_sub,
  input         io_enq_0_bits_alu_isa_subw,
  input         io_enq_0_bits_alu_isa_sll,
  input         io_enq_0_bits_alu_isa_sllw,
  input         io_enq_0_bits_alu_isa_slt,
  input         io_enq_0_bits_alu_isa_sltu,
  input         io_enq_0_bits_alu_isa_xor,
  input         io_enq_0_bits_alu_isa_srl,
  input         io_enq_0_bits_alu_isa_srlw,
  input         io_enq_0_bits_alu_isa_sra,
  input         io_enq_0_bits_alu_isa_sraw,
  input         io_enq_0_bits_alu_isa_or,
  input         io_enq_0_bits_alu_isa_and,
  input         io_enq_0_bits_alu_isa_wfi,
  input         io_enq_0_bits_bru_isa_jal,
  input         io_enq_0_bits_bru_isa_jalr,
  input         io_enq_0_bits_bru_isa_beq,
  input         io_enq_0_bits_bru_isa_bne,
  input         io_enq_0_bits_bru_isa_blt,
  input         io_enq_0_bits_bru_isa_bge,
  input         io_enq_0_bits_bru_isa_bltu,
  input         io_enq_0_bits_bru_isa_bgeu,
  input         io_enq_0_bits_lsu_isa_lb,
  input         io_enq_0_bits_lsu_isa_lh,
  input         io_enq_0_bits_lsu_isa_lw,
  input         io_enq_0_bits_lsu_isa_ld,
  input         io_enq_0_bits_lsu_isa_lbu,
  input         io_enq_0_bits_lsu_isa_lhu,
  input         io_enq_0_bits_lsu_isa_lwu,
  input         io_enq_0_bits_lsu_isa_sb,
  input         io_enq_0_bits_lsu_isa_sh,
  input         io_enq_0_bits_lsu_isa_sw,
  input         io_enq_0_bits_lsu_isa_sd,
  input         io_enq_0_bits_lsu_isa_fence,
  input         io_enq_0_bits_lsu_isa_fence_i,
  input         io_enq_0_bits_lsu_isa_sfence_vma,
  input         io_enq_0_bits_lsu_isa_lr_w,
  input         io_enq_0_bits_lsu_isa_sc_w,
  input         io_enq_0_bits_lsu_isa_amoswap_w,
  input         io_enq_0_bits_lsu_isa_amoadd_w,
  input         io_enq_0_bits_lsu_isa_amoxor_w,
  input         io_enq_0_bits_lsu_isa_amoand_w,
  input         io_enq_0_bits_lsu_isa_amoor_w,
  input         io_enq_0_bits_lsu_isa_amomin_w,
  input         io_enq_0_bits_lsu_isa_amomax_w,
  input         io_enq_0_bits_lsu_isa_amominu_w,
  input         io_enq_0_bits_lsu_isa_amomaxu_w,
  input         io_enq_0_bits_lsu_isa_lr_d,
  input         io_enq_0_bits_lsu_isa_sc_d,
  input         io_enq_0_bits_lsu_isa_amoswap_d,
  input         io_enq_0_bits_lsu_isa_amoadd_d,
  input         io_enq_0_bits_lsu_isa_amoxor_d,
  input         io_enq_0_bits_lsu_isa_amoand_d,
  input         io_enq_0_bits_lsu_isa_amoor_d,
  input         io_enq_0_bits_lsu_isa_amomin_d,
  input         io_enq_0_bits_lsu_isa_amomax_d,
  input         io_enq_0_bits_lsu_isa_amominu_d,
  input         io_enq_0_bits_lsu_isa_amomaxu_d,
  input         io_enq_0_bits_lsu_isa_flw,
  input         io_enq_0_bits_lsu_isa_fsw,
  input         io_enq_0_bits_lsu_isa_fld,
  input         io_enq_0_bits_lsu_isa_fsd,
  input         io_enq_0_bits_csr_isa_rw,
  input         io_enq_0_bits_csr_isa_rs,
  input         io_enq_0_bits_csr_isa_rc,
  input         io_enq_0_bits_csr_isa_rwi,
  input         io_enq_0_bits_csr_isa_rsi,
  input         io_enq_0_bits_csr_isa_rci,
  input         io_enq_0_bits_mul_isa_mul,
  input         io_enq_0_bits_mul_isa_mulh,
  input         io_enq_0_bits_mul_isa_mulhsu,
  input         io_enq_0_bits_mul_isa_mulhu,
  input         io_enq_0_bits_mul_isa_div,
  input         io_enq_0_bits_mul_isa_divu,
  input         io_enq_0_bits_mul_isa_rem,
  input         io_enq_0_bits_mul_isa_remu,
  input         io_enq_0_bits_mul_isa_mulw,
  input         io_enq_0_bits_mul_isa_divw,
  input         io_enq_0_bits_mul_isa_divuw,
  input         io_enq_0_bits_mul_isa_remw,
  input         io_enq_0_bits_mul_isa_remuw,
  input         io_enq_0_bits_fpu_isa_fmadd_s,
  input         io_enq_0_bits_fpu_isa_fmsub_s,
  input         io_enq_0_bits_fpu_isa_fnmsub_s,
  input         io_enq_0_bits_fpu_isa_fnmadd_s,
  input         io_enq_0_bits_fpu_isa_fadd_s,
  input         io_enq_0_bits_fpu_isa_fsub_s,
  input         io_enq_0_bits_fpu_isa_fmul_s,
  input         io_enq_0_bits_fpu_isa_fdiv_s,
  input         io_enq_0_bits_fpu_isa_fsqrt_s,
  input         io_enq_0_bits_fpu_isa_fsgnj_s,
  input         io_enq_0_bits_fpu_isa_fsgnjn_s,
  input         io_enq_0_bits_fpu_isa_fsgnjx_s,
  input         io_enq_0_bits_fpu_isa_fmin_s,
  input         io_enq_0_bits_fpu_isa_fmax_s,
  input         io_enq_0_bits_fpu_isa_fcvt_w_s,
  input         io_enq_0_bits_fpu_isa_fcvt_wu_s,
  input         io_enq_0_bits_fpu_isa_fmv_x_w,
  input         io_enq_0_bits_fpu_isa_feq_s,
  input         io_enq_0_bits_fpu_isa_flt_s,
  input         io_enq_0_bits_fpu_isa_fle_s,
  input         io_enq_0_bits_fpu_isa_fclass_s,
  input         io_enq_0_bits_fpu_isa_fcvt_l_s,
  input         io_enq_0_bits_fpu_isa_fcvt_lu_s,
  input         io_enq_0_bits_fpu_isa_fmadd_d,
  input         io_enq_0_bits_fpu_isa_fmsub_d,
  input         io_enq_0_bits_fpu_isa_fnmsub_d,
  input         io_enq_0_bits_fpu_isa_fnmadd_d,
  input         io_enq_0_bits_fpu_isa_fadd_d,
  input         io_enq_0_bits_fpu_isa_fsub_d,
  input         io_enq_0_bits_fpu_isa_fmul_d,
  input         io_enq_0_bits_fpu_isa_fdiv_d,
  input         io_enq_0_bits_fpu_isa_fsqrt_d,
  input         io_enq_0_bits_fpu_isa_fsgnj_d,
  input         io_enq_0_bits_fpu_isa_fsgnjn_d,
  input         io_enq_0_bits_fpu_isa_fsgnjx_d,
  input         io_enq_0_bits_fpu_isa_fmin_d,
  input         io_enq_0_bits_fpu_isa_fmax_d,
  input         io_enq_0_bits_fpu_isa_fcvt_s_d,
  input         io_enq_0_bits_fpu_isa_fcvt_d_s,
  input         io_enq_0_bits_fpu_isa_feq_d,
  input         io_enq_0_bits_fpu_isa_flt_d,
  input         io_enq_0_bits_fpu_isa_fle_d,
  input         io_enq_0_bits_fpu_isa_fclass_d,
  input         io_enq_0_bits_fpu_isa_fcvt_w_d,
  input         io_enq_0_bits_fpu_isa_fcvt_wu_d,
  input         io_enq_0_bits_fpu_isa_fcvt_l_d,
  input         io_enq_0_bits_fpu_isa_fcvt_lu_d,
  input         io_enq_0_bits_fpu_isa_fmv_x_d,
  input         io_enq_0_bits_param_is_rvc,
  input  [38:0] io_enq_0_bits_param_pc,
  input  [63:0] io_enq_0_bits_param_imm,
  input  [4:0]  io_enq_0_bits_param_raw_rs1,
  input  [5:0]  io_enq_0_bits_phy_rs1,
  input  [5:0]  io_enq_0_bits_phy_rs2,
  input  [5:0]  io_enq_0_bits_phy_rs3,
  input  [5:0]  io_enq_0_bits_phy_rd0,
  input         io_deq_0_ready,
  output        io_deq_0_valid,
  output        io_deq_0_bits_alu_isa_lui,
  output        io_deq_0_bits_alu_isa_auipc,
  output        io_deq_0_bits_alu_isa_addi,
  output        io_deq_0_bits_alu_isa_addiw,
  output        io_deq_0_bits_alu_isa_slti,
  output        io_deq_0_bits_alu_isa_sltiu,
  output        io_deq_0_bits_alu_isa_xori,
  output        io_deq_0_bits_alu_isa_ori,
  output        io_deq_0_bits_alu_isa_andi,
  output        io_deq_0_bits_alu_isa_slli,
  output        io_deq_0_bits_alu_isa_slliw,
  output        io_deq_0_bits_alu_isa_srli,
  output        io_deq_0_bits_alu_isa_srliw,
  output        io_deq_0_bits_alu_isa_srai,
  output        io_deq_0_bits_alu_isa_sraiw,
  output        io_deq_0_bits_alu_isa_add,
  output        io_deq_0_bits_alu_isa_addw,
  output        io_deq_0_bits_alu_isa_sub,
  output        io_deq_0_bits_alu_isa_subw,
  output        io_deq_0_bits_alu_isa_sll,
  output        io_deq_0_bits_alu_isa_sllw,
  output        io_deq_0_bits_alu_isa_slt,
  output        io_deq_0_bits_alu_isa_sltu,
  output        io_deq_0_bits_alu_isa_xor,
  output        io_deq_0_bits_alu_isa_srl,
  output        io_deq_0_bits_alu_isa_srlw,
  output        io_deq_0_bits_alu_isa_sra,
  output        io_deq_0_bits_alu_isa_sraw,
  output        io_deq_0_bits_alu_isa_or,
  output        io_deq_0_bits_alu_isa_and,
  output        io_deq_0_bits_alu_isa_wfi,
  output        io_deq_0_bits_bru_isa_jal,
  output        io_deq_0_bits_bru_isa_jalr,
  output        io_deq_0_bits_bru_isa_beq,
  output        io_deq_0_bits_bru_isa_bne,
  output        io_deq_0_bits_bru_isa_blt,
  output        io_deq_0_bits_bru_isa_bge,
  output        io_deq_0_bits_bru_isa_bltu,
  output        io_deq_0_bits_bru_isa_bgeu,
  output        io_deq_0_bits_lsu_isa_lb,
  output        io_deq_0_bits_lsu_isa_lh,
  output        io_deq_0_bits_lsu_isa_lw,
  output        io_deq_0_bits_lsu_isa_ld,
  output        io_deq_0_bits_lsu_isa_lbu,
  output        io_deq_0_bits_lsu_isa_lhu,
  output        io_deq_0_bits_lsu_isa_lwu,
  output        io_deq_0_bits_lsu_isa_sb,
  output        io_deq_0_bits_lsu_isa_sh,
  output        io_deq_0_bits_lsu_isa_sw,
  output        io_deq_0_bits_lsu_isa_sd,
  output        io_deq_0_bits_lsu_isa_fence,
  output        io_deq_0_bits_lsu_isa_fence_i,
  output        io_deq_0_bits_lsu_isa_sfence_vma,
  output        io_deq_0_bits_lsu_isa_lr_w,
  output        io_deq_0_bits_lsu_isa_sc_w,
  output        io_deq_0_bits_lsu_isa_amoswap_w,
  output        io_deq_0_bits_lsu_isa_amoadd_w,
  output        io_deq_0_bits_lsu_isa_amoxor_w,
  output        io_deq_0_bits_lsu_isa_amoand_w,
  output        io_deq_0_bits_lsu_isa_amoor_w,
  output        io_deq_0_bits_lsu_isa_amomin_w,
  output        io_deq_0_bits_lsu_isa_amomax_w,
  output        io_deq_0_bits_lsu_isa_amominu_w,
  output        io_deq_0_bits_lsu_isa_amomaxu_w,
  output        io_deq_0_bits_lsu_isa_lr_d,
  output        io_deq_0_bits_lsu_isa_sc_d,
  output        io_deq_0_bits_lsu_isa_amoswap_d,
  output        io_deq_0_bits_lsu_isa_amoadd_d,
  output        io_deq_0_bits_lsu_isa_amoxor_d,
  output        io_deq_0_bits_lsu_isa_amoand_d,
  output        io_deq_0_bits_lsu_isa_amoor_d,
  output        io_deq_0_bits_lsu_isa_amomin_d,
  output        io_deq_0_bits_lsu_isa_amomax_d,
  output        io_deq_0_bits_lsu_isa_amominu_d,
  output        io_deq_0_bits_lsu_isa_amomaxu_d,
  output        io_deq_0_bits_lsu_isa_flw,
  output        io_deq_0_bits_lsu_isa_fsw,
  output        io_deq_0_bits_lsu_isa_fld,
  output        io_deq_0_bits_lsu_isa_fsd,
  output        io_deq_0_bits_csr_isa_rw,
  output        io_deq_0_bits_csr_isa_rs,
  output        io_deq_0_bits_csr_isa_rc,
  output        io_deq_0_bits_csr_isa_rwi,
  output        io_deq_0_bits_csr_isa_rsi,
  output        io_deq_0_bits_csr_isa_rci,
  output        io_deq_0_bits_mul_isa_mul,
  output        io_deq_0_bits_mul_isa_mulh,
  output        io_deq_0_bits_mul_isa_mulhsu,
  output        io_deq_0_bits_mul_isa_mulhu,
  output        io_deq_0_bits_mul_isa_div,
  output        io_deq_0_bits_mul_isa_divu,
  output        io_deq_0_bits_mul_isa_rem,
  output        io_deq_0_bits_mul_isa_remu,
  output        io_deq_0_bits_mul_isa_mulw,
  output        io_deq_0_bits_mul_isa_divw,
  output        io_deq_0_bits_mul_isa_divuw,
  output        io_deq_0_bits_mul_isa_remw,
  output        io_deq_0_bits_mul_isa_remuw,
  output        io_deq_0_bits_fpu_isa_fmadd_s,
  output        io_deq_0_bits_fpu_isa_fmsub_s,
  output        io_deq_0_bits_fpu_isa_fnmsub_s,
  output        io_deq_0_bits_fpu_isa_fnmadd_s,
  output        io_deq_0_bits_fpu_isa_fadd_s,
  output        io_deq_0_bits_fpu_isa_fsub_s,
  output        io_deq_0_bits_fpu_isa_fmul_s,
  output        io_deq_0_bits_fpu_isa_fdiv_s,
  output        io_deq_0_bits_fpu_isa_fsqrt_s,
  output        io_deq_0_bits_fpu_isa_fsgnj_s,
  output        io_deq_0_bits_fpu_isa_fsgnjn_s,
  output        io_deq_0_bits_fpu_isa_fsgnjx_s,
  output        io_deq_0_bits_fpu_isa_fmin_s,
  output        io_deq_0_bits_fpu_isa_fmax_s,
  output        io_deq_0_bits_fpu_isa_fcvt_w_s,
  output        io_deq_0_bits_fpu_isa_fcvt_wu_s,
  output        io_deq_0_bits_fpu_isa_fmv_x_w,
  output        io_deq_0_bits_fpu_isa_feq_s,
  output        io_deq_0_bits_fpu_isa_flt_s,
  output        io_deq_0_bits_fpu_isa_fle_s,
  output        io_deq_0_bits_fpu_isa_fclass_s,
  output        io_deq_0_bits_fpu_isa_fcvt_l_s,
  output        io_deq_0_bits_fpu_isa_fcvt_lu_s,
  output        io_deq_0_bits_fpu_isa_fmadd_d,
  output        io_deq_0_bits_fpu_isa_fmsub_d,
  output        io_deq_0_bits_fpu_isa_fnmsub_d,
  output        io_deq_0_bits_fpu_isa_fnmadd_d,
  output        io_deq_0_bits_fpu_isa_fadd_d,
  output        io_deq_0_bits_fpu_isa_fsub_d,
  output        io_deq_0_bits_fpu_isa_fmul_d,
  output        io_deq_0_bits_fpu_isa_fdiv_d,
  output        io_deq_0_bits_fpu_isa_fsqrt_d,
  output        io_deq_0_bits_fpu_isa_fsgnj_d,
  output        io_deq_0_bits_fpu_isa_fsgnjn_d,
  output        io_deq_0_bits_fpu_isa_fsgnjx_d,
  output        io_deq_0_bits_fpu_isa_fmin_d,
  output        io_deq_0_bits_fpu_isa_fmax_d,
  output        io_deq_0_bits_fpu_isa_fcvt_s_d,
  output        io_deq_0_bits_fpu_isa_fcvt_d_s,
  output        io_deq_0_bits_fpu_isa_feq_d,
  output        io_deq_0_bits_fpu_isa_flt_d,
  output        io_deq_0_bits_fpu_isa_fle_d,
  output        io_deq_0_bits_fpu_isa_fclass_d,
  output        io_deq_0_bits_fpu_isa_fcvt_w_d,
  output        io_deq_0_bits_fpu_isa_fcvt_wu_d,
  output        io_deq_0_bits_fpu_isa_fcvt_l_d,
  output        io_deq_0_bits_fpu_isa_fcvt_lu_d,
  output        io_deq_0_bits_fpu_isa_fmv_x_d,
  output        io_deq_0_bits_param_is_rvc,
  output [38:0] io_deq_0_bits_param_pc,
  output [63:0] io_deq_0_bits_param_imm,
  output [4:0]  io_deq_0_bits_param_raw_rs1,
  output [5:0]  io_deq_0_bits_phy_rs1,
  output [5:0]  io_deq_0_bits_phy_rs2,
  output [5:0]  io_deq_0_bits_phy_rs3,
  output [5:0]  io_deq_0_bits_phy_rd0
);
  wire  _T = io_enq_0_ready & io_enq_0_valid; // @[Decoupled.scala 52:35]
  wire  _T_1 = io_deq_0_ready & io_deq_0_valid; // @[Decoupled.scala 52:35]
  wire  is_end_0 = ~io_enq_0_valid; // @[RePort.scala 62:21]
  assign io_enq_0_ready = io_deq_0_ready; // @[RePort.scala 80:69]
  assign io_deq_0_valid = _T > 1'h0; // @[RePort.scala 79:81]
  assign io_deq_0_bits_alu_isa_lui = ~is_end_0 & io_enq_0_bits_alu_isa_lui; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_auipc = ~is_end_0 & io_enq_0_bits_alu_isa_auipc; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_addi = ~is_end_0 & io_enq_0_bits_alu_isa_addi; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_addiw = ~is_end_0 & io_enq_0_bits_alu_isa_addiw; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_slti = ~is_end_0 & io_enq_0_bits_alu_isa_slti; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_sltiu = ~is_end_0 & io_enq_0_bits_alu_isa_sltiu; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_xori = ~is_end_0 & io_enq_0_bits_alu_isa_xori; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_ori = ~is_end_0 & io_enq_0_bits_alu_isa_ori; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_andi = ~is_end_0 & io_enq_0_bits_alu_isa_andi; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_slli = ~is_end_0 & io_enq_0_bits_alu_isa_slli; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_slliw = ~is_end_0 & io_enq_0_bits_alu_isa_slliw; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_srli = ~is_end_0 & io_enq_0_bits_alu_isa_srli; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_srliw = ~is_end_0 & io_enq_0_bits_alu_isa_srliw; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_srai = ~is_end_0 & io_enq_0_bits_alu_isa_srai; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_sraiw = ~is_end_0 & io_enq_0_bits_alu_isa_sraiw; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_add = ~is_end_0 & io_enq_0_bits_alu_isa_add; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_addw = ~is_end_0 & io_enq_0_bits_alu_isa_addw; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_sub = ~is_end_0 & io_enq_0_bits_alu_isa_sub; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_subw = ~is_end_0 & io_enq_0_bits_alu_isa_subw; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_sll = ~is_end_0 & io_enq_0_bits_alu_isa_sll; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_sllw = ~is_end_0 & io_enq_0_bits_alu_isa_sllw; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_slt = ~is_end_0 & io_enq_0_bits_alu_isa_slt; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_sltu = ~is_end_0 & io_enq_0_bits_alu_isa_sltu; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_xor = ~is_end_0 & io_enq_0_bits_alu_isa_xor; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_srl = ~is_end_0 & io_enq_0_bits_alu_isa_srl; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_srlw = ~is_end_0 & io_enq_0_bits_alu_isa_srlw; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_sra = ~is_end_0 & io_enq_0_bits_alu_isa_sra; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_sraw = ~is_end_0 & io_enq_0_bits_alu_isa_sraw; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_or = ~is_end_0 & io_enq_0_bits_alu_isa_or; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_and = ~is_end_0 & io_enq_0_bits_alu_isa_and; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_alu_isa_wfi = ~is_end_0 & io_enq_0_bits_alu_isa_wfi; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_bru_isa_jal = ~is_end_0 & io_enq_0_bits_bru_isa_jal; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_bru_isa_jalr = ~is_end_0 & io_enq_0_bits_bru_isa_jalr; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_bru_isa_beq = ~is_end_0 & io_enq_0_bits_bru_isa_beq; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_bru_isa_bne = ~is_end_0 & io_enq_0_bits_bru_isa_bne; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_bru_isa_blt = ~is_end_0 & io_enq_0_bits_bru_isa_blt; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_bru_isa_bge = ~is_end_0 & io_enq_0_bits_bru_isa_bge; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_bru_isa_bltu = ~is_end_0 & io_enq_0_bits_bru_isa_bltu; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_bru_isa_bgeu = ~is_end_0 & io_enq_0_bits_bru_isa_bgeu; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_lb = ~is_end_0 & io_enq_0_bits_lsu_isa_lb; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_lh = ~is_end_0 & io_enq_0_bits_lsu_isa_lh; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_lw = ~is_end_0 & io_enq_0_bits_lsu_isa_lw; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_ld = ~is_end_0 & io_enq_0_bits_lsu_isa_ld; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_lbu = ~is_end_0 & io_enq_0_bits_lsu_isa_lbu; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_lhu = ~is_end_0 & io_enq_0_bits_lsu_isa_lhu; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_lwu = ~is_end_0 & io_enq_0_bits_lsu_isa_lwu; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_sb = ~is_end_0 & io_enq_0_bits_lsu_isa_sb; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_sh = ~is_end_0 & io_enq_0_bits_lsu_isa_sh; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_sw = ~is_end_0 & io_enq_0_bits_lsu_isa_sw; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_sd = ~is_end_0 & io_enq_0_bits_lsu_isa_sd; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_fence = ~is_end_0 & io_enq_0_bits_lsu_isa_fence; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_fence_i = ~is_end_0 & io_enq_0_bits_lsu_isa_fence_i; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_sfence_vma = ~is_end_0 & io_enq_0_bits_lsu_isa_sfence_vma; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_lr_w = ~is_end_0 & io_enq_0_bits_lsu_isa_lr_w; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_sc_w = ~is_end_0 & io_enq_0_bits_lsu_isa_sc_w; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_amoswap_w = ~is_end_0 & io_enq_0_bits_lsu_isa_amoswap_w; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_amoadd_w = ~is_end_0 & io_enq_0_bits_lsu_isa_amoadd_w; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_amoxor_w = ~is_end_0 & io_enq_0_bits_lsu_isa_amoxor_w; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_amoand_w = ~is_end_0 & io_enq_0_bits_lsu_isa_amoand_w; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_amoor_w = ~is_end_0 & io_enq_0_bits_lsu_isa_amoor_w; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_amomin_w = ~is_end_0 & io_enq_0_bits_lsu_isa_amomin_w; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_amomax_w = ~is_end_0 & io_enq_0_bits_lsu_isa_amomax_w; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_amominu_w = ~is_end_0 & io_enq_0_bits_lsu_isa_amominu_w; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_amomaxu_w = ~is_end_0 & io_enq_0_bits_lsu_isa_amomaxu_w; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_lr_d = ~is_end_0 & io_enq_0_bits_lsu_isa_lr_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_sc_d = ~is_end_0 & io_enq_0_bits_lsu_isa_sc_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_amoswap_d = ~is_end_0 & io_enq_0_bits_lsu_isa_amoswap_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_amoadd_d = ~is_end_0 & io_enq_0_bits_lsu_isa_amoadd_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_amoxor_d = ~is_end_0 & io_enq_0_bits_lsu_isa_amoxor_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_amoand_d = ~is_end_0 & io_enq_0_bits_lsu_isa_amoand_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_amoor_d = ~is_end_0 & io_enq_0_bits_lsu_isa_amoor_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_amomin_d = ~is_end_0 & io_enq_0_bits_lsu_isa_amomin_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_amomax_d = ~is_end_0 & io_enq_0_bits_lsu_isa_amomax_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_amominu_d = ~is_end_0 & io_enq_0_bits_lsu_isa_amominu_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_amomaxu_d = ~is_end_0 & io_enq_0_bits_lsu_isa_amomaxu_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_flw = ~is_end_0 & io_enq_0_bits_lsu_isa_flw; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_fsw = ~is_end_0 & io_enq_0_bits_lsu_isa_fsw; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_fld = ~is_end_0 & io_enq_0_bits_lsu_isa_fld; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_lsu_isa_fsd = ~is_end_0 & io_enq_0_bits_lsu_isa_fsd; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_csr_isa_rw = ~is_end_0 & io_enq_0_bits_csr_isa_rw; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_csr_isa_rs = ~is_end_0 & io_enq_0_bits_csr_isa_rs; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_csr_isa_rc = ~is_end_0 & io_enq_0_bits_csr_isa_rc; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_csr_isa_rwi = ~is_end_0 & io_enq_0_bits_csr_isa_rwi; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_csr_isa_rsi = ~is_end_0 & io_enq_0_bits_csr_isa_rsi; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_csr_isa_rci = ~is_end_0 & io_enq_0_bits_csr_isa_rci; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_mul_isa_mul = ~is_end_0 & io_enq_0_bits_mul_isa_mul; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_mul_isa_mulh = ~is_end_0 & io_enq_0_bits_mul_isa_mulh; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_mul_isa_mulhsu = ~is_end_0 & io_enq_0_bits_mul_isa_mulhsu; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_mul_isa_mulhu = ~is_end_0 & io_enq_0_bits_mul_isa_mulhu; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_mul_isa_div = ~is_end_0 & io_enq_0_bits_mul_isa_div; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_mul_isa_divu = ~is_end_0 & io_enq_0_bits_mul_isa_divu; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_mul_isa_rem = ~is_end_0 & io_enq_0_bits_mul_isa_rem; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_mul_isa_remu = ~is_end_0 & io_enq_0_bits_mul_isa_remu; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_mul_isa_mulw = ~is_end_0 & io_enq_0_bits_mul_isa_mulw; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_mul_isa_divw = ~is_end_0 & io_enq_0_bits_mul_isa_divw; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_mul_isa_divuw = ~is_end_0 & io_enq_0_bits_mul_isa_divuw; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_mul_isa_remw = ~is_end_0 & io_enq_0_bits_mul_isa_remw; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_mul_isa_remuw = ~is_end_0 & io_enq_0_bits_mul_isa_remuw; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fmadd_s = ~is_end_0 & io_enq_0_bits_fpu_isa_fmadd_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fmsub_s = ~is_end_0 & io_enq_0_bits_fpu_isa_fmsub_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fnmsub_s = ~is_end_0 & io_enq_0_bits_fpu_isa_fnmsub_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fnmadd_s = ~is_end_0 & io_enq_0_bits_fpu_isa_fnmadd_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fadd_s = ~is_end_0 & io_enq_0_bits_fpu_isa_fadd_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fsub_s = ~is_end_0 & io_enq_0_bits_fpu_isa_fsub_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fmul_s = ~is_end_0 & io_enq_0_bits_fpu_isa_fmul_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fdiv_s = ~is_end_0 & io_enq_0_bits_fpu_isa_fdiv_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fsqrt_s = ~is_end_0 & io_enq_0_bits_fpu_isa_fsqrt_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fsgnj_s = ~is_end_0 & io_enq_0_bits_fpu_isa_fsgnj_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fsgnjn_s = ~is_end_0 & io_enq_0_bits_fpu_isa_fsgnjn_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fsgnjx_s = ~is_end_0 & io_enq_0_bits_fpu_isa_fsgnjx_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fmin_s = ~is_end_0 & io_enq_0_bits_fpu_isa_fmin_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fmax_s = ~is_end_0 & io_enq_0_bits_fpu_isa_fmax_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fcvt_w_s = ~is_end_0 & io_enq_0_bits_fpu_isa_fcvt_w_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fcvt_wu_s = ~is_end_0 & io_enq_0_bits_fpu_isa_fcvt_wu_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fmv_x_w = ~is_end_0 & io_enq_0_bits_fpu_isa_fmv_x_w; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_feq_s = ~is_end_0 & io_enq_0_bits_fpu_isa_feq_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_flt_s = ~is_end_0 & io_enq_0_bits_fpu_isa_flt_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fle_s = ~is_end_0 & io_enq_0_bits_fpu_isa_fle_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fclass_s = ~is_end_0 & io_enq_0_bits_fpu_isa_fclass_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fcvt_l_s = ~is_end_0 & io_enq_0_bits_fpu_isa_fcvt_l_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fcvt_lu_s = ~is_end_0 & io_enq_0_bits_fpu_isa_fcvt_lu_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fmadd_d = ~is_end_0 & io_enq_0_bits_fpu_isa_fmadd_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fmsub_d = ~is_end_0 & io_enq_0_bits_fpu_isa_fmsub_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fnmsub_d = ~is_end_0 & io_enq_0_bits_fpu_isa_fnmsub_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fnmadd_d = ~is_end_0 & io_enq_0_bits_fpu_isa_fnmadd_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fadd_d = ~is_end_0 & io_enq_0_bits_fpu_isa_fadd_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fsub_d = ~is_end_0 & io_enq_0_bits_fpu_isa_fsub_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fmul_d = ~is_end_0 & io_enq_0_bits_fpu_isa_fmul_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fdiv_d = ~is_end_0 & io_enq_0_bits_fpu_isa_fdiv_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fsqrt_d = ~is_end_0 & io_enq_0_bits_fpu_isa_fsqrt_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fsgnj_d = ~is_end_0 & io_enq_0_bits_fpu_isa_fsgnj_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fsgnjn_d = ~is_end_0 & io_enq_0_bits_fpu_isa_fsgnjn_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fsgnjx_d = ~is_end_0 & io_enq_0_bits_fpu_isa_fsgnjx_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fmin_d = ~is_end_0 & io_enq_0_bits_fpu_isa_fmin_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fmax_d = ~is_end_0 & io_enq_0_bits_fpu_isa_fmax_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fcvt_s_d = ~is_end_0 & io_enq_0_bits_fpu_isa_fcvt_s_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fcvt_d_s = ~is_end_0 & io_enq_0_bits_fpu_isa_fcvt_d_s; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_feq_d = ~is_end_0 & io_enq_0_bits_fpu_isa_feq_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_flt_d = ~is_end_0 & io_enq_0_bits_fpu_isa_flt_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fle_d = ~is_end_0 & io_enq_0_bits_fpu_isa_fle_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fclass_d = ~is_end_0 & io_enq_0_bits_fpu_isa_fclass_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fcvt_w_d = ~is_end_0 & io_enq_0_bits_fpu_isa_fcvt_w_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fcvt_wu_d = ~is_end_0 & io_enq_0_bits_fpu_isa_fcvt_wu_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fcvt_l_d = ~is_end_0 & io_enq_0_bits_fpu_isa_fcvt_l_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fcvt_lu_d = ~is_end_0 & io_enq_0_bits_fpu_isa_fcvt_lu_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_fpu_isa_fmv_x_d = ~is_end_0 & io_enq_0_bits_fpu_isa_fmv_x_d; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_param_is_rvc = ~is_end_0 & io_enq_0_bits_param_is_rvc; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_param_pc = ~is_end_0 ? io_enq_0_bits_param_pc : 39'h0; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_param_imm = ~is_end_0 ? io_enq_0_bits_param_imm : 64'h0; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_param_raw_rs1 = ~is_end_0 ? io_enq_0_bits_param_raw_rs1 : 5'h0; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_phy_rs1 = ~is_end_0 ? io_enq_0_bits_phy_rs1 : 6'h0; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_phy_rs2 = ~is_end_0 ? io_enq_0_bits_phy_rs2 : 6'h0; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_phy_rs3 = ~is_end_0 ? io_enq_0_bits_phy_rs3 : 6'h0; // @[RePort.scala 37:21 75:24 76:22]
  assign io_deq_0_bits_phy_rd0 = ~is_end_0 ? io_enq_0_bits_phy_rd0 : 6'h0; // @[RePort.scala 37:21 75:24 76:22]
  always @(posedge clock) begin
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(_T == _T_1)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed at RePort! enq-fire should equal to deq-fire!\n    at RePort.scala:32 assert ( PopCount( io.enq.map(_.fire) ) === PopCount( io.deq.map(_.fire) ), \"Assert Failed at RePort! enq-fire should equal to deq-fire!\"  )\n"
            ); // @[RePort.scala 32:12]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T == _T_1) & ~reset) begin
          $fatal; // @[RePort.scala 32:12]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
endmodule
module MultiPortFifo_in1_out1_9(
  input         clock,
  input         reset,
  output        io_enq_0_ready,
  input         io_enq_0_valid,
  input         io_enq_0_bits_alu_isa_lui,
  input         io_enq_0_bits_alu_isa_auipc,
  input         io_enq_0_bits_alu_isa_addi,
  input         io_enq_0_bits_alu_isa_addiw,
  input         io_enq_0_bits_alu_isa_slti,
  input         io_enq_0_bits_alu_isa_sltiu,
  input         io_enq_0_bits_alu_isa_xori,
  input         io_enq_0_bits_alu_isa_ori,
  input         io_enq_0_bits_alu_isa_andi,
  input         io_enq_0_bits_alu_isa_slli,
  input         io_enq_0_bits_alu_isa_slliw,
  input         io_enq_0_bits_alu_isa_srli,
  input         io_enq_0_bits_alu_isa_srliw,
  input         io_enq_0_bits_alu_isa_srai,
  input         io_enq_0_bits_alu_isa_sraiw,
  input         io_enq_0_bits_alu_isa_add,
  input         io_enq_0_bits_alu_isa_addw,
  input         io_enq_0_bits_alu_isa_sub,
  input         io_enq_0_bits_alu_isa_subw,
  input         io_enq_0_bits_alu_isa_sll,
  input         io_enq_0_bits_alu_isa_sllw,
  input         io_enq_0_bits_alu_isa_slt,
  input         io_enq_0_bits_alu_isa_sltu,
  input         io_enq_0_bits_alu_isa_xor,
  input         io_enq_0_bits_alu_isa_srl,
  input         io_enq_0_bits_alu_isa_srlw,
  input         io_enq_0_bits_alu_isa_sra,
  input         io_enq_0_bits_alu_isa_sraw,
  input         io_enq_0_bits_alu_isa_or,
  input         io_enq_0_bits_alu_isa_and,
  input         io_enq_0_bits_alu_isa_wfi,
  input         io_enq_0_bits_bru_isa_jal,
  input         io_enq_0_bits_bru_isa_jalr,
  input         io_enq_0_bits_bru_isa_beq,
  input         io_enq_0_bits_bru_isa_bne,
  input         io_enq_0_bits_bru_isa_blt,
  input         io_enq_0_bits_bru_isa_bge,
  input         io_enq_0_bits_bru_isa_bltu,
  input         io_enq_0_bits_bru_isa_bgeu,
  input         io_enq_0_bits_lsu_isa_lb,
  input         io_enq_0_bits_lsu_isa_lh,
  input         io_enq_0_bits_lsu_isa_lw,
  input         io_enq_0_bits_lsu_isa_ld,
  input         io_enq_0_bits_lsu_isa_lbu,
  input         io_enq_0_bits_lsu_isa_lhu,
  input         io_enq_0_bits_lsu_isa_lwu,
  input         io_enq_0_bits_lsu_isa_sb,
  input         io_enq_0_bits_lsu_isa_sh,
  input         io_enq_0_bits_lsu_isa_sw,
  input         io_enq_0_bits_lsu_isa_sd,
  input         io_enq_0_bits_lsu_isa_fence,
  input         io_enq_0_bits_lsu_isa_fence_i,
  input         io_enq_0_bits_lsu_isa_sfence_vma,
  input         io_enq_0_bits_lsu_isa_lr_w,
  input         io_enq_0_bits_lsu_isa_sc_w,
  input         io_enq_0_bits_lsu_isa_amoswap_w,
  input         io_enq_0_bits_lsu_isa_amoadd_w,
  input         io_enq_0_bits_lsu_isa_amoxor_w,
  input         io_enq_0_bits_lsu_isa_amoand_w,
  input         io_enq_0_bits_lsu_isa_amoor_w,
  input         io_enq_0_bits_lsu_isa_amomin_w,
  input         io_enq_0_bits_lsu_isa_amomax_w,
  input         io_enq_0_bits_lsu_isa_amominu_w,
  input         io_enq_0_bits_lsu_isa_amomaxu_w,
  input         io_enq_0_bits_lsu_isa_lr_d,
  input         io_enq_0_bits_lsu_isa_sc_d,
  input         io_enq_0_bits_lsu_isa_amoswap_d,
  input         io_enq_0_bits_lsu_isa_amoadd_d,
  input         io_enq_0_bits_lsu_isa_amoxor_d,
  input         io_enq_0_bits_lsu_isa_amoand_d,
  input         io_enq_0_bits_lsu_isa_amoor_d,
  input         io_enq_0_bits_lsu_isa_amomin_d,
  input         io_enq_0_bits_lsu_isa_amomax_d,
  input         io_enq_0_bits_lsu_isa_amominu_d,
  input         io_enq_0_bits_lsu_isa_amomaxu_d,
  input         io_enq_0_bits_lsu_isa_flw,
  input         io_enq_0_bits_lsu_isa_fsw,
  input         io_enq_0_bits_lsu_isa_fld,
  input         io_enq_0_bits_lsu_isa_fsd,
  input         io_enq_0_bits_csr_isa_rw,
  input         io_enq_0_bits_csr_isa_rs,
  input         io_enq_0_bits_csr_isa_rc,
  input         io_enq_0_bits_csr_isa_rwi,
  input         io_enq_0_bits_csr_isa_rsi,
  input         io_enq_0_bits_csr_isa_rci,
  input         io_enq_0_bits_mul_isa_mul,
  input         io_enq_0_bits_mul_isa_mulh,
  input         io_enq_0_bits_mul_isa_mulhsu,
  input         io_enq_0_bits_mul_isa_mulhu,
  input         io_enq_0_bits_mul_isa_div,
  input         io_enq_0_bits_mul_isa_divu,
  input         io_enq_0_bits_mul_isa_rem,
  input         io_enq_0_bits_mul_isa_remu,
  input         io_enq_0_bits_mul_isa_mulw,
  input         io_enq_0_bits_mul_isa_divw,
  input         io_enq_0_bits_mul_isa_divuw,
  input         io_enq_0_bits_mul_isa_remw,
  input         io_enq_0_bits_mul_isa_remuw,
  input         io_enq_0_bits_fpu_isa_fmadd_s,
  input         io_enq_0_bits_fpu_isa_fmsub_s,
  input         io_enq_0_bits_fpu_isa_fnmsub_s,
  input         io_enq_0_bits_fpu_isa_fnmadd_s,
  input         io_enq_0_bits_fpu_isa_fadd_s,
  input         io_enq_0_bits_fpu_isa_fsub_s,
  input         io_enq_0_bits_fpu_isa_fmul_s,
  input         io_enq_0_bits_fpu_isa_fdiv_s,
  input         io_enq_0_bits_fpu_isa_fsqrt_s,
  input         io_enq_0_bits_fpu_isa_fsgnj_s,
  input         io_enq_0_bits_fpu_isa_fsgnjn_s,
  input         io_enq_0_bits_fpu_isa_fsgnjx_s,
  input         io_enq_0_bits_fpu_isa_fmin_s,
  input         io_enq_0_bits_fpu_isa_fmax_s,
  input         io_enq_0_bits_fpu_isa_fcvt_w_s,
  input         io_enq_0_bits_fpu_isa_fcvt_wu_s,
  input         io_enq_0_bits_fpu_isa_fmv_x_w,
  input         io_enq_0_bits_fpu_isa_feq_s,
  input         io_enq_0_bits_fpu_isa_flt_s,
  input         io_enq_0_bits_fpu_isa_fle_s,
  input         io_enq_0_bits_fpu_isa_fclass_s,
  input         io_enq_0_bits_fpu_isa_fcvt_l_s,
  input         io_enq_0_bits_fpu_isa_fcvt_lu_s,
  input         io_enq_0_bits_fpu_isa_fmadd_d,
  input         io_enq_0_bits_fpu_isa_fmsub_d,
  input         io_enq_0_bits_fpu_isa_fnmsub_d,
  input         io_enq_0_bits_fpu_isa_fnmadd_d,
  input         io_enq_0_bits_fpu_isa_fadd_d,
  input         io_enq_0_bits_fpu_isa_fsub_d,
  input         io_enq_0_bits_fpu_isa_fmul_d,
  input         io_enq_0_bits_fpu_isa_fdiv_d,
  input         io_enq_0_bits_fpu_isa_fsqrt_d,
  input         io_enq_0_bits_fpu_isa_fsgnj_d,
  input         io_enq_0_bits_fpu_isa_fsgnjn_d,
  input         io_enq_0_bits_fpu_isa_fsgnjx_d,
  input         io_enq_0_bits_fpu_isa_fmin_d,
  input         io_enq_0_bits_fpu_isa_fmax_d,
  input         io_enq_0_bits_fpu_isa_fcvt_s_d,
  input         io_enq_0_bits_fpu_isa_fcvt_d_s,
  input         io_enq_0_bits_fpu_isa_feq_d,
  input         io_enq_0_bits_fpu_isa_flt_d,
  input         io_enq_0_bits_fpu_isa_fle_d,
  input         io_enq_0_bits_fpu_isa_fclass_d,
  input         io_enq_0_bits_fpu_isa_fcvt_w_d,
  input         io_enq_0_bits_fpu_isa_fcvt_wu_d,
  input         io_enq_0_bits_fpu_isa_fcvt_l_d,
  input         io_enq_0_bits_fpu_isa_fcvt_lu_d,
  input         io_enq_0_bits_fpu_isa_fmv_x_d,
  input         io_enq_0_bits_param_is_rvc,
  input  [38:0] io_enq_0_bits_param_pc,
  input  [63:0] io_enq_0_bits_param_imm,
  input  [4:0]  io_enq_0_bits_param_raw_rs1,
  input  [5:0]  io_enq_0_bits_phy_rs1,
  input  [5:0]  io_enq_0_bits_phy_rs2,
  input  [5:0]  io_enq_0_bits_phy_rs3,
  input  [5:0]  io_enq_0_bits_phy_rd0,
  output        io_deq_0_valid,
  output        io_deq_0_bits_alu_isa_lui,
  output        io_deq_0_bits_alu_isa_auipc,
  output        io_deq_0_bits_alu_isa_addi,
  output        io_deq_0_bits_alu_isa_addiw,
  output        io_deq_0_bits_alu_isa_slti,
  output        io_deq_0_bits_alu_isa_sltiu,
  output        io_deq_0_bits_alu_isa_xori,
  output        io_deq_0_bits_alu_isa_ori,
  output        io_deq_0_bits_alu_isa_andi,
  output        io_deq_0_bits_alu_isa_slli,
  output        io_deq_0_bits_alu_isa_slliw,
  output        io_deq_0_bits_alu_isa_srli,
  output        io_deq_0_bits_alu_isa_srliw,
  output        io_deq_0_bits_alu_isa_srai,
  output        io_deq_0_bits_alu_isa_sraiw,
  output        io_deq_0_bits_alu_isa_add,
  output        io_deq_0_bits_alu_isa_addw,
  output        io_deq_0_bits_alu_isa_sub,
  output        io_deq_0_bits_alu_isa_subw,
  output        io_deq_0_bits_alu_isa_sll,
  output        io_deq_0_bits_alu_isa_sllw,
  output        io_deq_0_bits_alu_isa_slt,
  output        io_deq_0_bits_alu_isa_sltu,
  output        io_deq_0_bits_alu_isa_xor,
  output        io_deq_0_bits_alu_isa_srl,
  output        io_deq_0_bits_alu_isa_srlw,
  output        io_deq_0_bits_alu_isa_sra,
  output        io_deq_0_bits_alu_isa_sraw,
  output        io_deq_0_bits_alu_isa_or,
  output        io_deq_0_bits_alu_isa_and,
  output        io_deq_0_bits_alu_isa_wfi,
  output        io_deq_0_bits_bru_isa_jal,
  output        io_deq_0_bits_bru_isa_jalr,
  output        io_deq_0_bits_bru_isa_beq,
  output        io_deq_0_bits_bru_isa_bne,
  output        io_deq_0_bits_bru_isa_blt,
  output        io_deq_0_bits_bru_isa_bge,
  output        io_deq_0_bits_bru_isa_bltu,
  output        io_deq_0_bits_bru_isa_bgeu,
  output        io_deq_0_bits_lsu_isa_lb,
  output        io_deq_0_bits_lsu_isa_lh,
  output        io_deq_0_bits_lsu_isa_lw,
  output        io_deq_0_bits_lsu_isa_ld,
  output        io_deq_0_bits_lsu_isa_lbu,
  output        io_deq_0_bits_lsu_isa_lhu,
  output        io_deq_0_bits_lsu_isa_lwu,
  output        io_deq_0_bits_lsu_isa_sb,
  output        io_deq_0_bits_lsu_isa_sh,
  output        io_deq_0_bits_lsu_isa_sw,
  output        io_deq_0_bits_lsu_isa_sd,
  output        io_deq_0_bits_lsu_isa_fence,
  output        io_deq_0_bits_lsu_isa_fence_i,
  output        io_deq_0_bits_lsu_isa_sfence_vma,
  output        io_deq_0_bits_lsu_isa_lr_w,
  output        io_deq_0_bits_lsu_isa_sc_w,
  output        io_deq_0_bits_lsu_isa_amoswap_w,
  output        io_deq_0_bits_lsu_isa_amoadd_w,
  output        io_deq_0_bits_lsu_isa_amoxor_w,
  output        io_deq_0_bits_lsu_isa_amoand_w,
  output        io_deq_0_bits_lsu_isa_amoor_w,
  output        io_deq_0_bits_lsu_isa_amomin_w,
  output        io_deq_0_bits_lsu_isa_amomax_w,
  output        io_deq_0_bits_lsu_isa_amominu_w,
  output        io_deq_0_bits_lsu_isa_amomaxu_w,
  output        io_deq_0_bits_lsu_isa_lr_d,
  output        io_deq_0_bits_lsu_isa_sc_d,
  output        io_deq_0_bits_lsu_isa_amoswap_d,
  output        io_deq_0_bits_lsu_isa_amoadd_d,
  output        io_deq_0_bits_lsu_isa_amoxor_d,
  output        io_deq_0_bits_lsu_isa_amoand_d,
  output        io_deq_0_bits_lsu_isa_amoor_d,
  output        io_deq_0_bits_lsu_isa_amomin_d,
  output        io_deq_0_bits_lsu_isa_amomax_d,
  output        io_deq_0_bits_lsu_isa_amominu_d,
  output        io_deq_0_bits_lsu_isa_amomaxu_d,
  output        io_deq_0_bits_lsu_isa_flw,
  output        io_deq_0_bits_lsu_isa_fsw,
  output        io_deq_0_bits_lsu_isa_fld,
  output        io_deq_0_bits_lsu_isa_fsd,
  output        io_deq_0_bits_csr_isa_rw,
  output        io_deq_0_bits_csr_isa_rs,
  output        io_deq_0_bits_csr_isa_rc,
  output        io_deq_0_bits_csr_isa_rwi,
  output        io_deq_0_bits_csr_isa_rsi,
  output        io_deq_0_bits_csr_isa_rci,
  output        io_deq_0_bits_mul_isa_mul,
  output        io_deq_0_bits_mul_isa_mulh,
  output        io_deq_0_bits_mul_isa_mulhsu,
  output        io_deq_0_bits_mul_isa_mulhu,
  output        io_deq_0_bits_mul_isa_div,
  output        io_deq_0_bits_mul_isa_divu,
  output        io_deq_0_bits_mul_isa_rem,
  output        io_deq_0_bits_mul_isa_remu,
  output        io_deq_0_bits_mul_isa_mulw,
  output        io_deq_0_bits_mul_isa_divw,
  output        io_deq_0_bits_mul_isa_divuw,
  output        io_deq_0_bits_mul_isa_remw,
  output        io_deq_0_bits_mul_isa_remuw,
  output        io_deq_0_bits_fpu_isa_fmadd_s,
  output        io_deq_0_bits_fpu_isa_fmsub_s,
  output        io_deq_0_bits_fpu_isa_fnmsub_s,
  output        io_deq_0_bits_fpu_isa_fnmadd_s,
  output        io_deq_0_bits_fpu_isa_fadd_s,
  output        io_deq_0_bits_fpu_isa_fsub_s,
  output        io_deq_0_bits_fpu_isa_fmul_s,
  output        io_deq_0_bits_fpu_isa_fdiv_s,
  output        io_deq_0_bits_fpu_isa_fsqrt_s,
  output        io_deq_0_bits_fpu_isa_fsgnj_s,
  output        io_deq_0_bits_fpu_isa_fsgnjn_s,
  output        io_deq_0_bits_fpu_isa_fsgnjx_s,
  output        io_deq_0_bits_fpu_isa_fmin_s,
  output        io_deq_0_bits_fpu_isa_fmax_s,
  output        io_deq_0_bits_fpu_isa_fcvt_w_s,
  output        io_deq_0_bits_fpu_isa_fcvt_wu_s,
  output        io_deq_0_bits_fpu_isa_fmv_x_w,
  output        io_deq_0_bits_fpu_isa_feq_s,
  output        io_deq_0_bits_fpu_isa_flt_s,
  output        io_deq_0_bits_fpu_isa_fle_s,
  output        io_deq_0_bits_fpu_isa_fclass_s,
  output        io_deq_0_bits_fpu_isa_fcvt_l_s,
  output        io_deq_0_bits_fpu_isa_fcvt_lu_s,
  output        io_deq_0_bits_fpu_isa_fmadd_d,
  output        io_deq_0_bits_fpu_isa_fmsub_d,
  output        io_deq_0_bits_fpu_isa_fnmsub_d,
  output        io_deq_0_bits_fpu_isa_fnmadd_d,
  output        io_deq_0_bits_fpu_isa_fadd_d,
  output        io_deq_0_bits_fpu_isa_fsub_d,
  output        io_deq_0_bits_fpu_isa_fmul_d,
  output        io_deq_0_bits_fpu_isa_fdiv_d,
  output        io_deq_0_bits_fpu_isa_fsqrt_d,
  output        io_deq_0_bits_fpu_isa_fsgnj_d,
  output        io_deq_0_bits_fpu_isa_fsgnjn_d,
  output        io_deq_0_bits_fpu_isa_fsgnjx_d,
  output        io_deq_0_bits_fpu_isa_fmin_d,
  output        io_deq_0_bits_fpu_isa_fmax_d,
  output        io_deq_0_bits_fpu_isa_fcvt_s_d,
  output        io_deq_0_bits_fpu_isa_fcvt_d_s,
  output        io_deq_0_bits_fpu_isa_feq_d,
  output        io_deq_0_bits_fpu_isa_flt_d,
  output        io_deq_0_bits_fpu_isa_fle_d,
  output        io_deq_0_bits_fpu_isa_fclass_d,
  output        io_deq_0_bits_fpu_isa_fcvt_w_d,
  output        io_deq_0_bits_fpu_isa_fcvt_wu_d,
  output        io_deq_0_bits_fpu_isa_fcvt_l_d,
  output        io_deq_0_bits_fpu_isa_fcvt_lu_d,
  output        io_deq_0_bits_fpu_isa_fmv_x_d,
  output        io_deq_0_bits_param_is_rvc,
  output [38:0] io_deq_0_bits_param_pc,
  output [63:0] io_deq_0_bits_param_imm,
  output [4:0]  io_deq_0_bits_param_raw_rs1,
  output [5:0]  io_deq_0_bits_phy_rs1,
  output [5:0]  io_deq_0_bits_phy_rs2,
  output [5:0]  io_deq_0_bits_phy_rs3,
  output [5:0]  io_deq_0_bits_phy_rd0
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
  reg [31:0] _RAND_33;
  reg [31:0] _RAND_34;
  reg [31:0] _RAND_35;
  reg [31:0] _RAND_36;
  reg [31:0] _RAND_37;
  reg [31:0] _RAND_38;
  reg [31:0] _RAND_39;
  reg [31:0] _RAND_40;
  reg [31:0] _RAND_41;
  reg [31:0] _RAND_42;
  reg [31:0] _RAND_43;
  reg [31:0] _RAND_44;
  reg [31:0] _RAND_45;
  reg [31:0] _RAND_46;
  reg [31:0] _RAND_47;
  reg [31:0] _RAND_48;
  reg [31:0] _RAND_49;
  reg [31:0] _RAND_50;
  reg [31:0] _RAND_51;
  reg [31:0] _RAND_52;
  reg [31:0] _RAND_53;
  reg [31:0] _RAND_54;
  reg [31:0] _RAND_55;
  reg [31:0] _RAND_56;
  reg [31:0] _RAND_57;
  reg [31:0] _RAND_58;
  reg [31:0] _RAND_59;
  reg [31:0] _RAND_60;
  reg [31:0] _RAND_61;
  reg [31:0] _RAND_62;
  reg [31:0] _RAND_63;
  reg [31:0] _RAND_64;
  reg [31:0] _RAND_65;
  reg [31:0] _RAND_66;
  reg [31:0] _RAND_67;
  reg [31:0] _RAND_68;
  reg [31:0] _RAND_69;
  reg [31:0] _RAND_70;
  reg [31:0] _RAND_71;
  reg [31:0] _RAND_72;
  reg [31:0] _RAND_73;
  reg [31:0] _RAND_74;
  reg [31:0] _RAND_75;
  reg [31:0] _RAND_76;
  reg [31:0] _RAND_77;
  reg [31:0] _RAND_78;
  reg [31:0] _RAND_79;
  reg [31:0] _RAND_80;
  reg [31:0] _RAND_81;
  reg [31:0] _RAND_82;
  reg [31:0] _RAND_83;
  reg [31:0] _RAND_84;
  reg [31:0] _RAND_85;
  reg [31:0] _RAND_86;
  reg [31:0] _RAND_87;
  reg [31:0] _RAND_88;
  reg [31:0] _RAND_89;
  reg [31:0] _RAND_90;
  reg [31:0] _RAND_91;
  reg [31:0] _RAND_92;
  reg [31:0] _RAND_93;
  reg [31:0] _RAND_94;
  reg [31:0] _RAND_95;
  reg [31:0] _RAND_96;
  reg [31:0] _RAND_97;
  reg [31:0] _RAND_98;
  reg [31:0] _RAND_99;
  reg [31:0] _RAND_100;
  reg [31:0] _RAND_101;
  reg [31:0] _RAND_102;
  reg [31:0] _RAND_103;
  reg [31:0] _RAND_104;
  reg [31:0] _RAND_105;
  reg [31:0] _RAND_106;
  reg [31:0] _RAND_107;
  reg [31:0] _RAND_108;
  reg [31:0] _RAND_109;
  reg [31:0] _RAND_110;
  reg [31:0] _RAND_111;
  reg [31:0] _RAND_112;
  reg [31:0] _RAND_113;
  reg [31:0] _RAND_114;
  reg [31:0] _RAND_115;
  reg [31:0] _RAND_116;
  reg [31:0] _RAND_117;
  reg [31:0] _RAND_118;
  reg [31:0] _RAND_119;
  reg [31:0] _RAND_120;
  reg [31:0] _RAND_121;
  reg [31:0] _RAND_122;
  reg [31:0] _RAND_123;
  reg [31:0] _RAND_124;
  reg [31:0] _RAND_125;
  reg [31:0] _RAND_126;
  reg [31:0] _RAND_127;
  reg [31:0] _RAND_128;
  reg [31:0] _RAND_129;
  reg [31:0] _RAND_130;
  reg [31:0] _RAND_131;
  reg [31:0] _RAND_132;
  reg [31:0] _RAND_133;
  reg [31:0] _RAND_134;
  reg [31:0] _RAND_135;
  reg [31:0] _RAND_136;
  reg [31:0] _RAND_137;
  reg [31:0] _RAND_138;
  reg [31:0] _RAND_139;
  reg [31:0] _RAND_140;
  reg [31:0] _RAND_141;
  reg [31:0] _RAND_142;
  reg [31:0] _RAND_143;
  reg [31:0] _RAND_144;
  reg [31:0] _RAND_145;
  reg [31:0] _RAND_146;
  reg [63:0] _RAND_147;
  reg [63:0] _RAND_148;
  reg [31:0] _RAND_149;
  reg [31:0] _RAND_150;
  reg [31:0] _RAND_151;
  reg [31:0] _RAND_152;
  reg [31:0] _RAND_153;
  reg [31:0] _RAND_154;
  reg [31:0] _RAND_155;
  reg [31:0] _RAND_156;
  reg [31:0] _RAND_157;
  reg [31:0] _RAND_158;
  reg [31:0] _RAND_159;
  reg [31:0] _RAND_160;
  reg [31:0] _RAND_161;
  reg [31:0] _RAND_162;
  reg [31:0] _RAND_163;
  reg [31:0] _RAND_164;
  reg [31:0] _RAND_165;
  reg [31:0] _RAND_166;
  reg [31:0] _RAND_167;
  reg [31:0] _RAND_168;
  reg [31:0] _RAND_169;
  reg [31:0] _RAND_170;
  reg [31:0] _RAND_171;
  reg [31:0] _RAND_172;
  reg [31:0] _RAND_173;
  reg [31:0] _RAND_174;
  reg [31:0] _RAND_175;
  reg [31:0] _RAND_176;
  reg [31:0] _RAND_177;
  reg [31:0] _RAND_178;
  reg [31:0] _RAND_179;
  reg [31:0] _RAND_180;
  reg [31:0] _RAND_181;
  reg [31:0] _RAND_182;
  reg [31:0] _RAND_183;
  reg [31:0] _RAND_184;
  reg [31:0] _RAND_185;
  reg [31:0] _RAND_186;
  reg [31:0] _RAND_187;
  reg [31:0] _RAND_188;
  reg [31:0] _RAND_189;
  reg [31:0] _RAND_190;
  reg [31:0] _RAND_191;
  reg [31:0] _RAND_192;
  reg [31:0] _RAND_193;
  reg [31:0] _RAND_194;
  reg [31:0] _RAND_195;
  reg [31:0] _RAND_196;
  reg [31:0] _RAND_197;
  reg [31:0] _RAND_198;
  reg [31:0] _RAND_199;
  reg [31:0] _RAND_200;
  reg [31:0] _RAND_201;
  reg [31:0] _RAND_202;
  reg [31:0] _RAND_203;
  reg [31:0] _RAND_204;
  reg [31:0] _RAND_205;
  reg [31:0] _RAND_206;
  reg [31:0] _RAND_207;
  reg [31:0] _RAND_208;
  reg [31:0] _RAND_209;
  reg [31:0] _RAND_210;
  reg [31:0] _RAND_211;
  reg [31:0] _RAND_212;
  reg [31:0] _RAND_213;
  reg [31:0] _RAND_214;
  reg [31:0] _RAND_215;
  reg [31:0] _RAND_216;
  reg [31:0] _RAND_217;
  reg [31:0] _RAND_218;
  reg [31:0] _RAND_219;
  reg [31:0] _RAND_220;
  reg [31:0] _RAND_221;
  reg [31:0] _RAND_222;
  reg [31:0] _RAND_223;
  reg [31:0] _RAND_224;
  reg [31:0] _RAND_225;
  reg [31:0] _RAND_226;
  reg [31:0] _RAND_227;
  reg [31:0] _RAND_228;
  reg [31:0] _RAND_229;
  reg [31:0] _RAND_230;
  reg [31:0] _RAND_231;
  reg [31:0] _RAND_232;
  reg [31:0] _RAND_233;
  reg [31:0] _RAND_234;
  reg [31:0] _RAND_235;
  reg [31:0] _RAND_236;
  reg [31:0] _RAND_237;
  reg [31:0] _RAND_238;
  reg [31:0] _RAND_239;
  reg [31:0] _RAND_240;
  reg [31:0] _RAND_241;
  reg [31:0] _RAND_242;
  reg [31:0] _RAND_243;
  reg [31:0] _RAND_244;
  reg [31:0] _RAND_245;
  reg [31:0] _RAND_246;
  reg [31:0] _RAND_247;
  reg [31:0] _RAND_248;
  reg [31:0] _RAND_249;
  reg [31:0] _RAND_250;
  reg [31:0] _RAND_251;
  reg [31:0] _RAND_252;
  reg [31:0] _RAND_253;
  reg [31:0] _RAND_254;
  reg [31:0] _RAND_255;
  reg [31:0] _RAND_256;
  reg [31:0] _RAND_257;
  reg [31:0] _RAND_258;
  reg [31:0] _RAND_259;
  reg [31:0] _RAND_260;
  reg [31:0] _RAND_261;
  reg [31:0] _RAND_262;
  reg [31:0] _RAND_263;
  reg [31:0] _RAND_264;
  reg [31:0] _RAND_265;
  reg [31:0] _RAND_266;
  reg [31:0] _RAND_267;
  reg [31:0] _RAND_268;
  reg [31:0] _RAND_269;
  reg [31:0] _RAND_270;
  reg [31:0] _RAND_271;
  reg [31:0] _RAND_272;
  reg [31:0] _RAND_273;
  reg [31:0] _RAND_274;
  reg [31:0] _RAND_275;
  reg [31:0] _RAND_276;
  reg [31:0] _RAND_277;
  reg [31:0] _RAND_278;
  reg [31:0] _RAND_279;
  reg [31:0] _RAND_280;
  reg [31:0] _RAND_281;
  reg [31:0] _RAND_282;
  reg [31:0] _RAND_283;
  reg [31:0] _RAND_284;
  reg [31:0] _RAND_285;
  reg [31:0] _RAND_286;
  reg [31:0] _RAND_287;
  reg [31:0] _RAND_288;
  reg [31:0] _RAND_289;
  reg [31:0] _RAND_290;
  reg [31:0] _RAND_291;
  reg [31:0] _RAND_292;
  reg [31:0] _RAND_293;
  reg [31:0] _RAND_294;
  reg [31:0] _RAND_295;
  reg [31:0] _RAND_296;
  reg [31:0] _RAND_297;
  reg [31:0] _RAND_298;
  reg [31:0] _RAND_299;
  reg [31:0] _RAND_300;
  reg [63:0] _RAND_301;
  reg [63:0] _RAND_302;
  reg [31:0] _RAND_303;
  reg [31:0] _RAND_304;
  reg [31:0] _RAND_305;
  reg [31:0] _RAND_306;
  reg [31:0] _RAND_307;
  reg [31:0] _RAND_308;
  reg [31:0] _RAND_309;
  reg [31:0] _RAND_310;
  reg [31:0] _RAND_311;
`endif // RANDOMIZE_REG_INIT
  reg  buf_0_alu_isa_lui; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_auipc; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_addi; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_addiw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_slti; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_sltiu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_xori; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_ori; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_andi; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_slli; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_slliw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_srli; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_srliw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_srai; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_sraiw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_add; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_addw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_sub; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_subw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_sll; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_sllw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_slt; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_sltu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_xor; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_srl; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_srlw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_sra; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_sraw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_or; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_and; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_alu_isa_wfi; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_bru_isa_jal; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_bru_isa_jalr; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_bru_isa_beq; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_bru_isa_bne; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_bru_isa_blt; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_bru_isa_bge; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_bru_isa_bltu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_bru_isa_bgeu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_lb; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_lh; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_lw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_ld; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_lbu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_lhu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_lwu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_sb; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_sh; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_sw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_sd; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_fence; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_fence_i; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_sfence_vma; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_lr_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_sc_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amoswap_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amoadd_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amoxor_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amoand_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amoor_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amomin_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amomax_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amominu_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amomaxu_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_lr_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_sc_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amoswap_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amoadd_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amoxor_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amoand_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amoor_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amomin_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amomax_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amominu_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_amomaxu_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_flw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_fsw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_fld; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_lsu_isa_fsd; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_csr_isa_rw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_csr_isa_rs; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_csr_isa_rc; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_csr_isa_rwi; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_csr_isa_rsi; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_csr_isa_rci; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_mul; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_mulh; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_mulhsu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_mulhu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_div; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_divu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_rem; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_remu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_mulw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_divw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_divuw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_remw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_mul_isa_remuw; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmadd_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmsub_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fnmsub_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fnmadd_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fadd_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fsub_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmul_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fdiv_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fsqrt_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fsgnj_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fsgnjn_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fsgnjx_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmin_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmax_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_w_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_wu_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmv_x_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_feq_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_flt_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fle_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fclass_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_l_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_lu_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmadd_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmsub_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fnmsub_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fnmadd_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fadd_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fsub_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmul_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fdiv_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fsqrt_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fsgnj_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fsgnjn_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fsgnjx_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmin_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmax_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_s_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_d_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_feq_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_flt_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fle_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fclass_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_w_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_wu_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_l_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fcvt_lu_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_fpu_isa_fmv_x_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_param_is_rvc; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_0_param_pc; // @[MultiPortFifo.scala 57:20]
  reg [63:0] buf_0_param_imm; // @[MultiPortFifo.scala 57:20]
  reg [4:0] buf_0_param_raw_rs1; // @[MultiPortFifo.scala 57:20]
  reg [5:0] buf_0_phy_rs1; // @[MultiPortFifo.scala 57:20]
  reg [5:0] buf_0_phy_rs2; // @[MultiPortFifo.scala 57:20]
  reg [5:0] buf_0_phy_rs3; // @[MultiPortFifo.scala 57:20]
  reg [5:0] buf_0_phy_rd0; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_lui; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_auipc; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_addi; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_addiw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_slti; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_sltiu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_xori; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_ori; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_andi; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_slli; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_slliw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_srli; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_srliw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_srai; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_sraiw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_add; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_addw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_sub; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_subw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_sll; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_sllw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_slt; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_sltu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_xor; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_srl; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_srlw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_sra; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_sraw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_or; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_and; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_alu_isa_wfi; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_bru_isa_jal; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_bru_isa_jalr; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_bru_isa_beq; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_bru_isa_bne; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_bru_isa_blt; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_bru_isa_bge; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_bru_isa_bltu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_bru_isa_bgeu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_lb; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_lh; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_lw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_ld; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_lbu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_lhu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_lwu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_sb; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_sh; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_sw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_sd; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_fence; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_fence_i; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_sfence_vma; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_lr_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_sc_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amoswap_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amoadd_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amoxor_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amoand_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amoor_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amomin_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amomax_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amominu_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amomaxu_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_lr_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_sc_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amoswap_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amoadd_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amoxor_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amoand_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amoor_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amomin_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amomax_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amominu_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_amomaxu_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_flw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_fsw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_fld; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_lsu_isa_fsd; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_csr_isa_rw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_csr_isa_rs; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_csr_isa_rc; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_csr_isa_rwi; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_csr_isa_rsi; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_csr_isa_rci; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_mul; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_mulh; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_mulhsu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_mulhu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_div; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_divu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_rem; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_remu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_mulw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_divw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_divuw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_remw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_mul_isa_remuw; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmadd_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmsub_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fnmsub_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fnmadd_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fadd_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fsub_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmul_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fdiv_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fsqrt_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fsgnj_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fsgnjn_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fsgnjx_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmin_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmax_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_w_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_wu_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmv_x_w; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_feq_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_flt_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fle_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fclass_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_l_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_lu_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmadd_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmsub_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fnmsub_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fnmadd_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fadd_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fsub_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmul_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fdiv_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fsqrt_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fsgnj_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fsgnjn_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fsgnjx_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmin_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmax_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_s_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_d_s; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_feq_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_flt_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fle_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fclass_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_w_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_wu_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_l_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fcvt_lu_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_fpu_isa_fmv_x_d; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_param_is_rvc; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_1_param_pc; // @[MultiPortFifo.scala 57:20]
  reg [63:0] buf_1_param_imm; // @[MultiPortFifo.scala 57:20]
  reg [4:0] buf_1_param_raw_rs1; // @[MultiPortFifo.scala 57:20]
  reg [5:0] buf_1_phy_rs1; // @[MultiPortFifo.scala 57:20]
  reg [5:0] buf_1_phy_rs2; // @[MultiPortFifo.scala 57:20]
  reg [5:0] buf_1_phy_rs3; // @[MultiPortFifo.scala 57:20]
  reg [5:0] buf_1_phy_rd0; // @[MultiPortFifo.scala 57:20]
  reg  buf_valid_0; // @[MultiPortFifo.scala 58:30]
  reg  buf_valid_1; // @[MultiPortFifo.scala 58:30]
  reg  rd_ptr; // @[MultiPortFifo.scala 60:27]
  reg  wr_ptr; // @[MultiPortFifo.scala 61:27]
  wire [1:0] _io_enq_0_ready_T = {{1'd0}, wr_ptr}; // @[MultiPortFifo.scala 64:78]
  wire  _GEN_1 = _io_enq_0_ready_T[0] ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 64:{94,94}]
  wire [1:0] _io_deq_0_valid_T = {{1'd0}, rd_ptr}; // @[MultiPortFifo.scala 65:78]
  wire  _T = io_enq_0_ready & io_enq_0_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_6 = _T ? ~_io_enq_0_ready_T[0] | buf_valid_0 : buf_valid_0; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _GEN_7 = _T ? _io_enq_0_ready_T[0] | buf_valid_1 : buf_valid_1; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _rd_ptr_T_2 = rd_ptr + io_deq_0_valid; // @[MultiPortFifo.scala 106:26]
  wire  _wr_ptr_T_2 = wr_ptr + _T; // @[MultiPortFifo.scala 107:26]
  wire  _T_9 = ~reset; // @[MultiPortFifo.scala 161:13]
  assign io_enq_0_ready = ~_GEN_1; // @[MultiPortFifo.scala 64:94]
  assign io_deq_0_valid = _io_deq_0_valid_T[0] ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 65:{94,94}]
  assign io_deq_0_bits_alu_isa_lui = _io_deq_0_valid_T[0] ? buf_1_alu_isa_lui : buf_0_alu_isa_lui; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_auipc = _io_deq_0_valid_T[0] ? buf_1_alu_isa_auipc : buf_0_alu_isa_auipc; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_addi = _io_deq_0_valid_T[0] ? buf_1_alu_isa_addi : buf_0_alu_isa_addi; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_addiw = _io_deq_0_valid_T[0] ? buf_1_alu_isa_addiw : buf_0_alu_isa_addiw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_slti = _io_deq_0_valid_T[0] ? buf_1_alu_isa_slti : buf_0_alu_isa_slti; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_sltiu = _io_deq_0_valid_T[0] ? buf_1_alu_isa_sltiu : buf_0_alu_isa_sltiu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_xori = _io_deq_0_valid_T[0] ? buf_1_alu_isa_xori : buf_0_alu_isa_xori; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_ori = _io_deq_0_valid_T[0] ? buf_1_alu_isa_ori : buf_0_alu_isa_ori; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_andi = _io_deq_0_valid_T[0] ? buf_1_alu_isa_andi : buf_0_alu_isa_andi; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_slli = _io_deq_0_valid_T[0] ? buf_1_alu_isa_slli : buf_0_alu_isa_slli; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_slliw = _io_deq_0_valid_T[0] ? buf_1_alu_isa_slliw : buf_0_alu_isa_slliw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_srli = _io_deq_0_valid_T[0] ? buf_1_alu_isa_srli : buf_0_alu_isa_srli; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_srliw = _io_deq_0_valid_T[0] ? buf_1_alu_isa_srliw : buf_0_alu_isa_srliw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_srai = _io_deq_0_valid_T[0] ? buf_1_alu_isa_srai : buf_0_alu_isa_srai; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_sraiw = _io_deq_0_valid_T[0] ? buf_1_alu_isa_sraiw : buf_0_alu_isa_sraiw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_add = _io_deq_0_valid_T[0] ? buf_1_alu_isa_add : buf_0_alu_isa_add; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_addw = _io_deq_0_valid_T[0] ? buf_1_alu_isa_addw : buf_0_alu_isa_addw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_sub = _io_deq_0_valid_T[0] ? buf_1_alu_isa_sub : buf_0_alu_isa_sub; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_subw = _io_deq_0_valid_T[0] ? buf_1_alu_isa_subw : buf_0_alu_isa_subw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_sll = _io_deq_0_valid_T[0] ? buf_1_alu_isa_sll : buf_0_alu_isa_sll; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_sllw = _io_deq_0_valid_T[0] ? buf_1_alu_isa_sllw : buf_0_alu_isa_sllw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_slt = _io_deq_0_valid_T[0] ? buf_1_alu_isa_slt : buf_0_alu_isa_slt; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_sltu = _io_deq_0_valid_T[0] ? buf_1_alu_isa_sltu : buf_0_alu_isa_sltu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_xor = _io_deq_0_valid_T[0] ? buf_1_alu_isa_xor : buf_0_alu_isa_xor; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_srl = _io_deq_0_valid_T[0] ? buf_1_alu_isa_srl : buf_0_alu_isa_srl; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_srlw = _io_deq_0_valid_T[0] ? buf_1_alu_isa_srlw : buf_0_alu_isa_srlw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_sra = _io_deq_0_valid_T[0] ? buf_1_alu_isa_sra : buf_0_alu_isa_sra; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_sraw = _io_deq_0_valid_T[0] ? buf_1_alu_isa_sraw : buf_0_alu_isa_sraw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_or = _io_deq_0_valid_T[0] ? buf_1_alu_isa_or : buf_0_alu_isa_or; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_and = _io_deq_0_valid_T[0] ? buf_1_alu_isa_and : buf_0_alu_isa_and; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_alu_isa_wfi = _io_deq_0_valid_T[0] ? buf_1_alu_isa_wfi : buf_0_alu_isa_wfi; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_bru_isa_jal = _io_deq_0_valid_T[0] ? buf_1_bru_isa_jal : buf_0_bru_isa_jal; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_bru_isa_jalr = _io_deq_0_valid_T[0] ? buf_1_bru_isa_jalr : buf_0_bru_isa_jalr; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_bru_isa_beq = _io_deq_0_valid_T[0] ? buf_1_bru_isa_beq : buf_0_bru_isa_beq; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_bru_isa_bne = _io_deq_0_valid_T[0] ? buf_1_bru_isa_bne : buf_0_bru_isa_bne; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_bru_isa_blt = _io_deq_0_valid_T[0] ? buf_1_bru_isa_blt : buf_0_bru_isa_blt; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_bru_isa_bge = _io_deq_0_valid_T[0] ? buf_1_bru_isa_bge : buf_0_bru_isa_bge; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_bru_isa_bltu = _io_deq_0_valid_T[0] ? buf_1_bru_isa_bltu : buf_0_bru_isa_bltu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_bru_isa_bgeu = _io_deq_0_valid_T[0] ? buf_1_bru_isa_bgeu : buf_0_bru_isa_bgeu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_lb = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_lb : buf_0_lsu_isa_lb; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_lh = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_lh : buf_0_lsu_isa_lh; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_lw = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_lw : buf_0_lsu_isa_lw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_ld = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_ld : buf_0_lsu_isa_ld; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_lbu = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_lbu : buf_0_lsu_isa_lbu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_lhu = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_lhu : buf_0_lsu_isa_lhu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_lwu = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_lwu : buf_0_lsu_isa_lwu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_sb = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_sb : buf_0_lsu_isa_sb; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_sh = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_sh : buf_0_lsu_isa_sh; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_sw = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_sw : buf_0_lsu_isa_sw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_sd = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_sd : buf_0_lsu_isa_sd; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_fence = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_fence : buf_0_lsu_isa_fence; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_fence_i = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_fence_i : buf_0_lsu_isa_fence_i; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_sfence_vma = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_sfence_vma : buf_0_lsu_isa_sfence_vma; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_lr_w = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_lr_w : buf_0_lsu_isa_lr_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_sc_w = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_sc_w : buf_0_lsu_isa_sc_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amoswap_w = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amoswap_w : buf_0_lsu_isa_amoswap_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amoadd_w = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amoadd_w : buf_0_lsu_isa_amoadd_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amoxor_w = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amoxor_w : buf_0_lsu_isa_amoxor_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amoand_w = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amoand_w : buf_0_lsu_isa_amoand_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amoor_w = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amoor_w : buf_0_lsu_isa_amoor_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amomin_w = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amomin_w : buf_0_lsu_isa_amomin_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amomax_w = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amomax_w : buf_0_lsu_isa_amomax_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amominu_w = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amominu_w : buf_0_lsu_isa_amominu_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amomaxu_w = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amomaxu_w : buf_0_lsu_isa_amomaxu_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_lr_d = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_lr_d : buf_0_lsu_isa_lr_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_sc_d = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_sc_d : buf_0_lsu_isa_sc_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amoswap_d = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amoswap_d : buf_0_lsu_isa_amoswap_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amoadd_d = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amoadd_d : buf_0_lsu_isa_amoadd_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amoxor_d = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amoxor_d : buf_0_lsu_isa_amoxor_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amoand_d = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amoand_d : buf_0_lsu_isa_amoand_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amoor_d = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amoor_d : buf_0_lsu_isa_amoor_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amomin_d = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amomin_d : buf_0_lsu_isa_amomin_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amomax_d = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amomax_d : buf_0_lsu_isa_amomax_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amominu_d = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amominu_d : buf_0_lsu_isa_amominu_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_amomaxu_d = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_amomaxu_d : buf_0_lsu_isa_amomaxu_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_flw = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_flw : buf_0_lsu_isa_flw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_fsw = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_fsw : buf_0_lsu_isa_fsw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_fld = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_fld : buf_0_lsu_isa_fld; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_lsu_isa_fsd = _io_deq_0_valid_T[0] ? buf_1_lsu_isa_fsd : buf_0_lsu_isa_fsd; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_csr_isa_rw = _io_deq_0_valid_T[0] ? buf_1_csr_isa_rw : buf_0_csr_isa_rw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_csr_isa_rs = _io_deq_0_valid_T[0] ? buf_1_csr_isa_rs : buf_0_csr_isa_rs; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_csr_isa_rc = _io_deq_0_valid_T[0] ? buf_1_csr_isa_rc : buf_0_csr_isa_rc; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_csr_isa_rwi = _io_deq_0_valid_T[0] ? buf_1_csr_isa_rwi : buf_0_csr_isa_rwi; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_csr_isa_rsi = _io_deq_0_valid_T[0] ? buf_1_csr_isa_rsi : buf_0_csr_isa_rsi; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_csr_isa_rci = _io_deq_0_valid_T[0] ? buf_1_csr_isa_rci : buf_0_csr_isa_rci; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_mul = _io_deq_0_valid_T[0] ? buf_1_mul_isa_mul : buf_0_mul_isa_mul; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_mulh = _io_deq_0_valid_T[0] ? buf_1_mul_isa_mulh : buf_0_mul_isa_mulh; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_mulhsu = _io_deq_0_valid_T[0] ? buf_1_mul_isa_mulhsu : buf_0_mul_isa_mulhsu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_mulhu = _io_deq_0_valid_T[0] ? buf_1_mul_isa_mulhu : buf_0_mul_isa_mulhu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_div = _io_deq_0_valid_T[0] ? buf_1_mul_isa_div : buf_0_mul_isa_div; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_divu = _io_deq_0_valid_T[0] ? buf_1_mul_isa_divu : buf_0_mul_isa_divu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_rem = _io_deq_0_valid_T[0] ? buf_1_mul_isa_rem : buf_0_mul_isa_rem; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_remu = _io_deq_0_valid_T[0] ? buf_1_mul_isa_remu : buf_0_mul_isa_remu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_mulw = _io_deq_0_valid_T[0] ? buf_1_mul_isa_mulw : buf_0_mul_isa_mulw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_divw = _io_deq_0_valid_T[0] ? buf_1_mul_isa_divw : buf_0_mul_isa_divw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_divuw = _io_deq_0_valid_T[0] ? buf_1_mul_isa_divuw : buf_0_mul_isa_divuw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_remw = _io_deq_0_valid_T[0] ? buf_1_mul_isa_remw : buf_0_mul_isa_remw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_mul_isa_remuw = _io_deq_0_valid_T[0] ? buf_1_mul_isa_remuw : buf_0_mul_isa_remuw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmadd_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmadd_s : buf_0_fpu_isa_fmadd_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmsub_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmsub_s : buf_0_fpu_isa_fmsub_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fnmsub_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fnmsub_s : buf_0_fpu_isa_fnmsub_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fnmadd_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fnmadd_s : buf_0_fpu_isa_fnmadd_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fadd_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fadd_s : buf_0_fpu_isa_fadd_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fsub_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fsub_s : buf_0_fpu_isa_fsub_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmul_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmul_s : buf_0_fpu_isa_fmul_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fdiv_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fdiv_s : buf_0_fpu_isa_fdiv_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fsqrt_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fsqrt_s : buf_0_fpu_isa_fsqrt_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fsgnj_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fsgnj_s : buf_0_fpu_isa_fsgnj_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fsgnjn_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fsgnjn_s : buf_0_fpu_isa_fsgnjn_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fsgnjx_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fsgnjx_s : buf_0_fpu_isa_fsgnjx_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmin_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmin_s : buf_0_fpu_isa_fmin_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmax_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmax_s : buf_0_fpu_isa_fmax_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_w_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_w_s : buf_0_fpu_isa_fcvt_w_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_wu_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_wu_s : buf_0_fpu_isa_fcvt_wu_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmv_x_w = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmv_x_w : buf_0_fpu_isa_fmv_x_w; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_feq_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_feq_s : buf_0_fpu_isa_feq_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_flt_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_flt_s : buf_0_fpu_isa_flt_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fle_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fle_s : buf_0_fpu_isa_fle_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fclass_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fclass_s : buf_0_fpu_isa_fclass_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_l_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_l_s : buf_0_fpu_isa_fcvt_l_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_lu_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_lu_s : buf_0_fpu_isa_fcvt_lu_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmadd_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmadd_d : buf_0_fpu_isa_fmadd_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmsub_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmsub_d : buf_0_fpu_isa_fmsub_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fnmsub_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fnmsub_d : buf_0_fpu_isa_fnmsub_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fnmadd_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fnmadd_d : buf_0_fpu_isa_fnmadd_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fadd_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fadd_d : buf_0_fpu_isa_fadd_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fsub_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fsub_d : buf_0_fpu_isa_fsub_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmul_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmul_d : buf_0_fpu_isa_fmul_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fdiv_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fdiv_d : buf_0_fpu_isa_fdiv_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fsqrt_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fsqrt_d : buf_0_fpu_isa_fsqrt_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fsgnj_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fsgnj_d : buf_0_fpu_isa_fsgnj_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fsgnjn_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fsgnjn_d : buf_0_fpu_isa_fsgnjn_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fsgnjx_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fsgnjx_d : buf_0_fpu_isa_fsgnjx_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmin_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmin_d : buf_0_fpu_isa_fmin_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmax_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmax_d : buf_0_fpu_isa_fmax_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_s_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_s_d : buf_0_fpu_isa_fcvt_s_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_d_s = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_d_s : buf_0_fpu_isa_fcvt_d_s; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_feq_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_feq_d : buf_0_fpu_isa_feq_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_flt_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_flt_d : buf_0_fpu_isa_flt_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fle_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fle_d : buf_0_fpu_isa_fle_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fclass_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fclass_d : buf_0_fpu_isa_fclass_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_w_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_w_d : buf_0_fpu_isa_fcvt_w_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_wu_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_wu_d : buf_0_fpu_isa_fcvt_wu_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_l_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_l_d : buf_0_fpu_isa_fcvt_l_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fcvt_lu_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fcvt_lu_d : buf_0_fpu_isa_fcvt_lu_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_fpu_isa_fmv_x_d = _io_deq_0_valid_T[0] ? buf_1_fpu_isa_fmv_x_d : buf_0_fpu_isa_fmv_x_d; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_param_is_rvc = _io_deq_0_valid_T[0] ? buf_1_param_is_rvc : buf_0_param_is_rvc; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_param_pc = _io_deq_0_valid_T[0] ? buf_1_param_pc : buf_0_param_pc; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_param_imm = _io_deq_0_valid_T[0] ? buf_1_param_imm : buf_0_param_imm; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_param_raw_rs1 = _io_deq_0_valid_T[0] ? buf_1_param_raw_rs1 : buf_0_param_raw_rs1; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_phy_rs1 = _io_deq_0_valid_T[0] ? buf_1_phy_rs1 : buf_0_phy_rs1; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_phy_rs2 = _io_deq_0_valid_T[0] ? buf_1_phy_rs2 : buf_0_phy_rs2; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_phy_rs3 = _io_deq_0_valid_T[0] ? buf_1_phy_rs3 : buf_0_phy_rs3; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_phy_rd0 = _io_deq_0_valid_T[0] ? buf_1_phy_rd0 : buf_0_phy_rd0; // @[MultiPortFifo.scala 114:{14,14}]
  always @(posedge clock) begin
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_lui <= io_enq_0_bits_alu_isa_lui;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_lui <= buf_1_alu_isa_lui; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_auipc <= io_enq_0_bits_alu_isa_auipc;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_auipc <= buf_1_alu_isa_auipc; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_addi <= io_enq_0_bits_alu_isa_addi;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_addi <= buf_1_alu_isa_addi; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_addiw <= io_enq_0_bits_alu_isa_addiw;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_addiw <= buf_1_alu_isa_addiw; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_slti <= io_enq_0_bits_alu_isa_slti;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_slti <= buf_1_alu_isa_slti; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_sltiu <= io_enq_0_bits_alu_isa_sltiu;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_sltiu <= buf_1_alu_isa_sltiu; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_xori <= io_enq_0_bits_alu_isa_xori;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_xori <= buf_1_alu_isa_xori; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_ori <= io_enq_0_bits_alu_isa_ori;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_ori <= buf_1_alu_isa_ori; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_andi <= io_enq_0_bits_alu_isa_andi;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_andi <= buf_1_alu_isa_andi; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_slli <= io_enq_0_bits_alu_isa_slli;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_slli <= buf_1_alu_isa_slli; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_slliw <= io_enq_0_bits_alu_isa_slliw;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_slliw <= buf_1_alu_isa_slliw; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_srli <= io_enq_0_bits_alu_isa_srli;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_srli <= buf_1_alu_isa_srli; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_srliw <= io_enq_0_bits_alu_isa_srliw;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_srliw <= buf_1_alu_isa_srliw; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_srai <= io_enq_0_bits_alu_isa_srai;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_srai <= buf_1_alu_isa_srai; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_sraiw <= io_enq_0_bits_alu_isa_sraiw;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_sraiw <= buf_1_alu_isa_sraiw; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_add <= io_enq_0_bits_alu_isa_add;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_add <= buf_1_alu_isa_add; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_addw <= io_enq_0_bits_alu_isa_addw;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_addw <= buf_1_alu_isa_addw; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_sub <= io_enq_0_bits_alu_isa_sub;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_sub <= buf_1_alu_isa_sub; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_subw <= io_enq_0_bits_alu_isa_subw;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_subw <= buf_1_alu_isa_subw; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_sll <= io_enq_0_bits_alu_isa_sll;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_sll <= buf_1_alu_isa_sll; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_sllw <= io_enq_0_bits_alu_isa_sllw;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_sllw <= buf_1_alu_isa_sllw; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_slt <= io_enq_0_bits_alu_isa_slt;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_slt <= buf_1_alu_isa_slt; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_sltu <= io_enq_0_bits_alu_isa_sltu;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_sltu <= buf_1_alu_isa_sltu; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_xor <= io_enq_0_bits_alu_isa_xor;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_xor <= buf_1_alu_isa_xor; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_srl <= io_enq_0_bits_alu_isa_srl;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_srl <= buf_1_alu_isa_srl; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_srlw <= io_enq_0_bits_alu_isa_srlw;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_srlw <= buf_1_alu_isa_srlw; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_sra <= io_enq_0_bits_alu_isa_sra;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_sra <= buf_1_alu_isa_sra; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_sraw <= io_enq_0_bits_alu_isa_sraw;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_sraw <= buf_1_alu_isa_sraw; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_or <= io_enq_0_bits_alu_isa_or;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_or <= buf_1_alu_isa_or; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_and <= io_enq_0_bits_alu_isa_and;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_and <= buf_1_alu_isa_and; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_wfi <= io_enq_0_bits_alu_isa_wfi;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_alu_isa_wfi <= buf_1_alu_isa_wfi; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_bru_isa_jal <= io_enq_0_bits_bru_isa_jal;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_bru_isa_jal <= buf_1_bru_isa_jal; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_bru_isa_jalr <= io_enq_0_bits_bru_isa_jalr;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_bru_isa_jalr <= buf_1_bru_isa_jalr; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_bru_isa_beq <= io_enq_0_bits_bru_isa_beq;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_bru_isa_beq <= buf_1_bru_isa_beq; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_bru_isa_bne <= io_enq_0_bits_bru_isa_bne;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_bru_isa_bne <= buf_1_bru_isa_bne; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_bru_isa_blt <= io_enq_0_bits_bru_isa_blt;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_bru_isa_blt <= buf_1_bru_isa_blt; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_bru_isa_bge <= io_enq_0_bits_bru_isa_bge;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_bru_isa_bge <= buf_1_bru_isa_bge; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_bru_isa_bltu <= io_enq_0_bits_bru_isa_bltu;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_bru_isa_bltu <= buf_1_bru_isa_bltu; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_bru_isa_bgeu <= io_enq_0_bits_bru_isa_bgeu;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_bru_isa_bgeu <= buf_1_bru_isa_bgeu; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_lb <= io_enq_0_bits_lsu_isa_lb;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_lb <= buf_1_lsu_isa_lb; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_lh <= io_enq_0_bits_lsu_isa_lh;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_lh <= buf_1_lsu_isa_lh; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_lw <= io_enq_0_bits_lsu_isa_lw;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_lw <= buf_1_lsu_isa_lw; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_ld <= io_enq_0_bits_lsu_isa_ld;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_ld <= buf_1_lsu_isa_ld; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_lbu <= io_enq_0_bits_lsu_isa_lbu;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_lbu <= buf_1_lsu_isa_lbu; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_lhu <= io_enq_0_bits_lsu_isa_lhu;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_lhu <= buf_1_lsu_isa_lhu; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_lwu <= io_enq_0_bits_lsu_isa_lwu;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_lwu <= buf_1_lsu_isa_lwu; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_sb <= io_enq_0_bits_lsu_isa_sb;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_sb <= buf_1_lsu_isa_sb; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_sh <= io_enq_0_bits_lsu_isa_sh;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_sh <= buf_1_lsu_isa_sh; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_sw <= io_enq_0_bits_lsu_isa_sw;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_sw <= buf_1_lsu_isa_sw; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_sd <= io_enq_0_bits_lsu_isa_sd;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_sd <= buf_1_lsu_isa_sd; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_fence <= io_enq_0_bits_lsu_isa_fence;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_fence <= buf_1_lsu_isa_fence; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_fence_i <= io_enq_0_bits_lsu_isa_fence_i;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_fence_i <= buf_1_lsu_isa_fence_i; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_sfence_vma <= io_enq_0_bits_lsu_isa_sfence_vma;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_sfence_vma <= buf_1_lsu_isa_sfence_vma; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_lr_w <= io_enq_0_bits_lsu_isa_lr_w;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_lr_w <= buf_1_lsu_isa_lr_w; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_sc_w <= io_enq_0_bits_lsu_isa_sc_w;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_sc_w <= buf_1_lsu_isa_sc_w; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amoswap_w <= io_enq_0_bits_lsu_isa_amoswap_w;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amoswap_w <= buf_1_lsu_isa_amoswap_w; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amoadd_w <= io_enq_0_bits_lsu_isa_amoadd_w;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amoadd_w <= buf_1_lsu_isa_amoadd_w; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amoxor_w <= io_enq_0_bits_lsu_isa_amoxor_w;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amoxor_w <= buf_1_lsu_isa_amoxor_w; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amoand_w <= io_enq_0_bits_lsu_isa_amoand_w;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amoand_w <= buf_1_lsu_isa_amoand_w; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amoor_w <= io_enq_0_bits_lsu_isa_amoor_w;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amoor_w <= buf_1_lsu_isa_amoor_w; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amomin_w <= io_enq_0_bits_lsu_isa_amomin_w;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amomin_w <= buf_1_lsu_isa_amomin_w; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amomax_w <= io_enq_0_bits_lsu_isa_amomax_w;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amomax_w <= buf_1_lsu_isa_amomax_w; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amominu_w <= io_enq_0_bits_lsu_isa_amominu_w;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amominu_w <= buf_1_lsu_isa_amominu_w; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amomaxu_w <= io_enq_0_bits_lsu_isa_amomaxu_w;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amomaxu_w <= buf_1_lsu_isa_amomaxu_w; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_lr_d <= io_enq_0_bits_lsu_isa_lr_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_lr_d <= buf_1_lsu_isa_lr_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_sc_d <= io_enq_0_bits_lsu_isa_sc_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_sc_d <= buf_1_lsu_isa_sc_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amoswap_d <= io_enq_0_bits_lsu_isa_amoswap_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amoswap_d <= buf_1_lsu_isa_amoswap_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amoadd_d <= io_enq_0_bits_lsu_isa_amoadd_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amoadd_d <= buf_1_lsu_isa_amoadd_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amoxor_d <= io_enq_0_bits_lsu_isa_amoxor_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amoxor_d <= buf_1_lsu_isa_amoxor_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amoand_d <= io_enq_0_bits_lsu_isa_amoand_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amoand_d <= buf_1_lsu_isa_amoand_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amoor_d <= io_enq_0_bits_lsu_isa_amoor_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amoor_d <= buf_1_lsu_isa_amoor_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amomin_d <= io_enq_0_bits_lsu_isa_amomin_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amomin_d <= buf_1_lsu_isa_amomin_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amomax_d <= io_enq_0_bits_lsu_isa_amomax_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amomax_d <= buf_1_lsu_isa_amomax_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amominu_d <= io_enq_0_bits_lsu_isa_amominu_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amominu_d <= buf_1_lsu_isa_amominu_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amomaxu_d <= io_enq_0_bits_lsu_isa_amomaxu_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_amomaxu_d <= buf_1_lsu_isa_amomaxu_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_flw <= io_enq_0_bits_lsu_isa_flw;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_flw <= buf_1_lsu_isa_flw; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_fsw <= io_enq_0_bits_lsu_isa_fsw;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_fsw <= buf_1_lsu_isa_fsw; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_fld <= io_enq_0_bits_lsu_isa_fld;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_fld <= buf_1_lsu_isa_fld; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_fsd <= io_enq_0_bits_lsu_isa_fsd;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_lsu_isa_fsd <= buf_1_lsu_isa_fsd; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_csr_isa_rw <= io_enq_0_bits_csr_isa_rw;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_csr_isa_rw <= buf_1_csr_isa_rw; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_csr_isa_rs <= io_enq_0_bits_csr_isa_rs;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_csr_isa_rs <= buf_1_csr_isa_rs; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_csr_isa_rc <= io_enq_0_bits_csr_isa_rc;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_csr_isa_rc <= buf_1_csr_isa_rc; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_csr_isa_rwi <= io_enq_0_bits_csr_isa_rwi;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_csr_isa_rwi <= buf_1_csr_isa_rwi; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_csr_isa_rsi <= io_enq_0_bits_csr_isa_rsi;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_csr_isa_rsi <= buf_1_csr_isa_rsi; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_csr_isa_rci <= io_enq_0_bits_csr_isa_rci;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_csr_isa_rci <= buf_1_csr_isa_rci; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_mul <= io_enq_0_bits_mul_isa_mul;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_mul <= buf_1_mul_isa_mul; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_mulh <= io_enq_0_bits_mul_isa_mulh;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_mulh <= buf_1_mul_isa_mulh; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_mulhsu <= io_enq_0_bits_mul_isa_mulhsu;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_mulhsu <= buf_1_mul_isa_mulhsu; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_mulhu <= io_enq_0_bits_mul_isa_mulhu;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_mulhu <= buf_1_mul_isa_mulhu; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_div <= io_enq_0_bits_mul_isa_div;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_div <= buf_1_mul_isa_div; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_divu <= io_enq_0_bits_mul_isa_divu;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_divu <= buf_1_mul_isa_divu; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_rem <= io_enq_0_bits_mul_isa_rem;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_rem <= buf_1_mul_isa_rem; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_remu <= io_enq_0_bits_mul_isa_remu;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_remu <= buf_1_mul_isa_remu; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_mulw <= io_enq_0_bits_mul_isa_mulw;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_mulw <= buf_1_mul_isa_mulw; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_divw <= io_enq_0_bits_mul_isa_divw;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_divw <= buf_1_mul_isa_divw; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_divuw <= io_enq_0_bits_mul_isa_divuw;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_divuw <= buf_1_mul_isa_divuw; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_remw <= io_enq_0_bits_mul_isa_remw;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_remw <= buf_1_mul_isa_remw; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_remuw <= io_enq_0_bits_mul_isa_remuw;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_mul_isa_remuw <= buf_1_mul_isa_remuw; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmadd_s <= io_enq_0_bits_fpu_isa_fmadd_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmadd_s <= buf_1_fpu_isa_fmadd_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmsub_s <= io_enq_0_bits_fpu_isa_fmsub_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmsub_s <= buf_1_fpu_isa_fmsub_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fnmsub_s <= io_enq_0_bits_fpu_isa_fnmsub_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fnmsub_s <= buf_1_fpu_isa_fnmsub_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fnmadd_s <= io_enq_0_bits_fpu_isa_fnmadd_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fnmadd_s <= buf_1_fpu_isa_fnmadd_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fadd_s <= io_enq_0_bits_fpu_isa_fadd_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fadd_s <= buf_1_fpu_isa_fadd_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fsub_s <= io_enq_0_bits_fpu_isa_fsub_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fsub_s <= buf_1_fpu_isa_fsub_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmul_s <= io_enq_0_bits_fpu_isa_fmul_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmul_s <= buf_1_fpu_isa_fmul_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fdiv_s <= io_enq_0_bits_fpu_isa_fdiv_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fdiv_s <= buf_1_fpu_isa_fdiv_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fsqrt_s <= io_enq_0_bits_fpu_isa_fsqrt_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fsqrt_s <= buf_1_fpu_isa_fsqrt_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fsgnj_s <= io_enq_0_bits_fpu_isa_fsgnj_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fsgnj_s <= buf_1_fpu_isa_fsgnj_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fsgnjn_s <= io_enq_0_bits_fpu_isa_fsgnjn_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fsgnjn_s <= buf_1_fpu_isa_fsgnjn_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fsgnjx_s <= io_enq_0_bits_fpu_isa_fsgnjx_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fsgnjx_s <= buf_1_fpu_isa_fsgnjx_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmin_s <= io_enq_0_bits_fpu_isa_fmin_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmin_s <= buf_1_fpu_isa_fmin_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmax_s <= io_enq_0_bits_fpu_isa_fmax_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmax_s <= buf_1_fpu_isa_fmax_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fcvt_w_s <= io_enq_0_bits_fpu_isa_fcvt_w_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fcvt_w_s <= buf_1_fpu_isa_fcvt_w_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fcvt_wu_s <= io_enq_0_bits_fpu_isa_fcvt_wu_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fcvt_wu_s <= buf_1_fpu_isa_fcvt_wu_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmv_x_w <= io_enq_0_bits_fpu_isa_fmv_x_w;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmv_x_w <= buf_1_fpu_isa_fmv_x_w; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_feq_s <= io_enq_0_bits_fpu_isa_feq_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_feq_s <= buf_1_fpu_isa_feq_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_flt_s <= io_enq_0_bits_fpu_isa_flt_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_flt_s <= buf_1_fpu_isa_flt_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fle_s <= io_enq_0_bits_fpu_isa_fle_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fle_s <= buf_1_fpu_isa_fle_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fclass_s <= io_enq_0_bits_fpu_isa_fclass_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fclass_s <= buf_1_fpu_isa_fclass_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fcvt_l_s <= io_enq_0_bits_fpu_isa_fcvt_l_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fcvt_l_s <= buf_1_fpu_isa_fcvt_l_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fcvt_lu_s <= io_enq_0_bits_fpu_isa_fcvt_lu_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fcvt_lu_s <= buf_1_fpu_isa_fcvt_lu_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmadd_d <= io_enq_0_bits_fpu_isa_fmadd_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmadd_d <= buf_1_fpu_isa_fmadd_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmsub_d <= io_enq_0_bits_fpu_isa_fmsub_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmsub_d <= buf_1_fpu_isa_fmsub_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fnmsub_d <= io_enq_0_bits_fpu_isa_fnmsub_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fnmsub_d <= buf_1_fpu_isa_fnmsub_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fnmadd_d <= io_enq_0_bits_fpu_isa_fnmadd_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fnmadd_d <= buf_1_fpu_isa_fnmadd_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fadd_d <= io_enq_0_bits_fpu_isa_fadd_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fadd_d <= buf_1_fpu_isa_fadd_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fsub_d <= io_enq_0_bits_fpu_isa_fsub_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fsub_d <= buf_1_fpu_isa_fsub_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmul_d <= io_enq_0_bits_fpu_isa_fmul_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmul_d <= buf_1_fpu_isa_fmul_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fdiv_d <= io_enq_0_bits_fpu_isa_fdiv_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fdiv_d <= buf_1_fpu_isa_fdiv_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fsqrt_d <= io_enq_0_bits_fpu_isa_fsqrt_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fsqrt_d <= buf_1_fpu_isa_fsqrt_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fsgnj_d <= io_enq_0_bits_fpu_isa_fsgnj_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fsgnj_d <= buf_1_fpu_isa_fsgnj_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fsgnjn_d <= io_enq_0_bits_fpu_isa_fsgnjn_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fsgnjn_d <= buf_1_fpu_isa_fsgnjn_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fsgnjx_d <= io_enq_0_bits_fpu_isa_fsgnjx_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fsgnjx_d <= buf_1_fpu_isa_fsgnjx_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmin_d <= io_enq_0_bits_fpu_isa_fmin_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmin_d <= buf_1_fpu_isa_fmin_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmax_d <= io_enq_0_bits_fpu_isa_fmax_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmax_d <= buf_1_fpu_isa_fmax_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fcvt_s_d <= io_enq_0_bits_fpu_isa_fcvt_s_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fcvt_s_d <= buf_1_fpu_isa_fcvt_s_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fcvt_d_s <= io_enq_0_bits_fpu_isa_fcvt_d_s;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fcvt_d_s <= buf_1_fpu_isa_fcvt_d_s; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_feq_d <= io_enq_0_bits_fpu_isa_feq_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_feq_d <= buf_1_fpu_isa_feq_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_flt_d <= io_enq_0_bits_fpu_isa_flt_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_flt_d <= buf_1_fpu_isa_flt_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fle_d <= io_enq_0_bits_fpu_isa_fle_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fle_d <= buf_1_fpu_isa_fle_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fclass_d <= io_enq_0_bits_fpu_isa_fclass_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fclass_d <= buf_1_fpu_isa_fclass_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fcvt_w_d <= io_enq_0_bits_fpu_isa_fcvt_w_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fcvt_w_d <= buf_1_fpu_isa_fcvt_w_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fcvt_wu_d <= io_enq_0_bits_fpu_isa_fcvt_wu_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fcvt_wu_d <= buf_1_fpu_isa_fcvt_wu_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fcvt_l_d <= io_enq_0_bits_fpu_isa_fcvt_l_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fcvt_l_d <= buf_1_fpu_isa_fcvt_l_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fcvt_lu_d <= io_enq_0_bits_fpu_isa_fcvt_lu_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fcvt_lu_d <= buf_1_fpu_isa_fcvt_lu_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmv_x_d <= io_enq_0_bits_fpu_isa_fmv_x_d;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_fpu_isa_fmv_x_d <= buf_1_fpu_isa_fmv_x_d; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_param_is_rvc <= io_enq_0_bits_param_is_rvc;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_param_is_rvc <= buf_1_param_is_rvc; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_param_pc <= io_enq_0_bits_param_pc;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_param_pc <= buf_1_param_pc; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_param_imm <= io_enq_0_bits_param_imm;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_param_imm <= buf_1_param_imm; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_param_raw_rs1 <= io_enq_0_bits_param_raw_rs1;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_param_raw_rs1 <= buf_1_param_raw_rs1; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_phy_rs1 <= io_enq_0_bits_phy_rs1;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_phy_rs1 <= buf_1_phy_rs1; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_phy_rs2 <= io_enq_0_bits_phy_rs2;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_phy_rs2 <= buf_1_phy_rs2; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_phy_rs3 <= io_enq_0_bits_phy_rs3;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_phy_rs3 <= buf_1_phy_rs3; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_phy_rd0 <= io_enq_0_bits_phy_rd0;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_phy_rd0 <= buf_1_phy_rd0; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_lui <= io_enq_0_bits_alu_isa_lui;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_lui <= buf_0_alu_isa_lui;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_auipc <= io_enq_0_bits_alu_isa_auipc;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_auipc <= buf_0_alu_isa_auipc;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_addi <= io_enq_0_bits_alu_isa_addi;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_addi <= buf_0_alu_isa_addi;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_addiw <= io_enq_0_bits_alu_isa_addiw;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_addiw <= buf_0_alu_isa_addiw;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_slti <= io_enq_0_bits_alu_isa_slti;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_slti <= buf_0_alu_isa_slti;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_sltiu <= io_enq_0_bits_alu_isa_sltiu;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_sltiu <= buf_0_alu_isa_sltiu;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_xori <= io_enq_0_bits_alu_isa_xori;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_xori <= buf_0_alu_isa_xori;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_ori <= io_enq_0_bits_alu_isa_ori;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_ori <= buf_0_alu_isa_ori;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_andi <= io_enq_0_bits_alu_isa_andi;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_andi <= buf_0_alu_isa_andi;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_slli <= io_enq_0_bits_alu_isa_slli;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_slli <= buf_0_alu_isa_slli;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_slliw <= io_enq_0_bits_alu_isa_slliw;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_slliw <= buf_0_alu_isa_slliw;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_srli <= io_enq_0_bits_alu_isa_srli;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_srli <= buf_0_alu_isa_srli;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_srliw <= io_enq_0_bits_alu_isa_srliw;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_srliw <= buf_0_alu_isa_srliw;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_srai <= io_enq_0_bits_alu_isa_srai;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_srai <= buf_0_alu_isa_srai;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_sraiw <= io_enq_0_bits_alu_isa_sraiw;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_sraiw <= buf_0_alu_isa_sraiw;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_add <= io_enq_0_bits_alu_isa_add;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_add <= buf_0_alu_isa_add;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_addw <= io_enq_0_bits_alu_isa_addw;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_addw <= buf_0_alu_isa_addw;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_sub <= io_enq_0_bits_alu_isa_sub;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_sub <= buf_0_alu_isa_sub;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_subw <= io_enq_0_bits_alu_isa_subw;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_subw <= buf_0_alu_isa_subw;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_sll <= io_enq_0_bits_alu_isa_sll;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_sll <= buf_0_alu_isa_sll;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_sllw <= io_enq_0_bits_alu_isa_sllw;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_sllw <= buf_0_alu_isa_sllw;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_slt <= io_enq_0_bits_alu_isa_slt;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_slt <= buf_0_alu_isa_slt;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_sltu <= io_enq_0_bits_alu_isa_sltu;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_sltu <= buf_0_alu_isa_sltu;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_xor <= io_enq_0_bits_alu_isa_xor;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_xor <= buf_0_alu_isa_xor;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_srl <= io_enq_0_bits_alu_isa_srl;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_srl <= buf_0_alu_isa_srl;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_srlw <= io_enq_0_bits_alu_isa_srlw;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_srlw <= buf_0_alu_isa_srlw;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_sra <= io_enq_0_bits_alu_isa_sra;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_sra <= buf_0_alu_isa_sra;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_sraw <= io_enq_0_bits_alu_isa_sraw;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_sraw <= buf_0_alu_isa_sraw;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_or <= io_enq_0_bits_alu_isa_or;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_or <= buf_0_alu_isa_or;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_and <= io_enq_0_bits_alu_isa_and;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_and <= buf_0_alu_isa_and;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_wfi <= io_enq_0_bits_alu_isa_wfi;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_alu_isa_wfi <= buf_0_alu_isa_wfi;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_bru_isa_jal <= io_enq_0_bits_bru_isa_jal;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_bru_isa_jal <= buf_0_bru_isa_jal;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_bru_isa_jalr <= io_enq_0_bits_bru_isa_jalr;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_bru_isa_jalr <= buf_0_bru_isa_jalr;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_bru_isa_beq <= io_enq_0_bits_bru_isa_beq;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_bru_isa_beq <= buf_0_bru_isa_beq;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_bru_isa_bne <= io_enq_0_bits_bru_isa_bne;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_bru_isa_bne <= buf_0_bru_isa_bne;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_bru_isa_blt <= io_enq_0_bits_bru_isa_blt;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_bru_isa_blt <= buf_0_bru_isa_blt;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_bru_isa_bge <= io_enq_0_bits_bru_isa_bge;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_bru_isa_bge <= buf_0_bru_isa_bge;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_bru_isa_bltu <= io_enq_0_bits_bru_isa_bltu;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_bru_isa_bltu <= buf_0_bru_isa_bltu;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_bru_isa_bgeu <= io_enq_0_bits_bru_isa_bgeu;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_bru_isa_bgeu <= buf_0_bru_isa_bgeu;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_lb <= io_enq_0_bits_lsu_isa_lb;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_lb <= buf_0_lsu_isa_lb;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_lh <= io_enq_0_bits_lsu_isa_lh;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_lh <= buf_0_lsu_isa_lh;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_lw <= io_enq_0_bits_lsu_isa_lw;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_lw <= buf_0_lsu_isa_lw;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_ld <= io_enq_0_bits_lsu_isa_ld;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_ld <= buf_0_lsu_isa_ld;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_lbu <= io_enq_0_bits_lsu_isa_lbu;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_lbu <= buf_0_lsu_isa_lbu;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_lhu <= io_enq_0_bits_lsu_isa_lhu;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_lhu <= buf_0_lsu_isa_lhu;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_lwu <= io_enq_0_bits_lsu_isa_lwu;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_lwu <= buf_0_lsu_isa_lwu;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_sb <= io_enq_0_bits_lsu_isa_sb;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_sb <= buf_0_lsu_isa_sb;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_sh <= io_enq_0_bits_lsu_isa_sh;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_sh <= buf_0_lsu_isa_sh;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_sw <= io_enq_0_bits_lsu_isa_sw;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_sw <= buf_0_lsu_isa_sw;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_sd <= io_enq_0_bits_lsu_isa_sd;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_sd <= buf_0_lsu_isa_sd;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_fence <= io_enq_0_bits_lsu_isa_fence;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_fence <= buf_0_lsu_isa_fence;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_fence_i <= io_enq_0_bits_lsu_isa_fence_i;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_fence_i <= buf_0_lsu_isa_fence_i;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_sfence_vma <= io_enq_0_bits_lsu_isa_sfence_vma;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_sfence_vma <= buf_0_lsu_isa_sfence_vma;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_lr_w <= io_enq_0_bits_lsu_isa_lr_w;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_lr_w <= buf_0_lsu_isa_lr_w;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_sc_w <= io_enq_0_bits_lsu_isa_sc_w;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_sc_w <= buf_0_lsu_isa_sc_w;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amoswap_w <= io_enq_0_bits_lsu_isa_amoswap_w;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amoswap_w <= buf_0_lsu_isa_amoswap_w;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amoadd_w <= io_enq_0_bits_lsu_isa_amoadd_w;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amoadd_w <= buf_0_lsu_isa_amoadd_w;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amoxor_w <= io_enq_0_bits_lsu_isa_amoxor_w;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amoxor_w <= buf_0_lsu_isa_amoxor_w;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amoand_w <= io_enq_0_bits_lsu_isa_amoand_w;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amoand_w <= buf_0_lsu_isa_amoand_w;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amoor_w <= io_enq_0_bits_lsu_isa_amoor_w;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amoor_w <= buf_0_lsu_isa_amoor_w;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amomin_w <= io_enq_0_bits_lsu_isa_amomin_w;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amomin_w <= buf_0_lsu_isa_amomin_w;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amomax_w <= io_enq_0_bits_lsu_isa_amomax_w;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amomax_w <= buf_0_lsu_isa_amomax_w;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amominu_w <= io_enq_0_bits_lsu_isa_amominu_w;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amominu_w <= buf_0_lsu_isa_amominu_w;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amomaxu_w <= io_enq_0_bits_lsu_isa_amomaxu_w;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amomaxu_w <= buf_0_lsu_isa_amomaxu_w;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_lr_d <= io_enq_0_bits_lsu_isa_lr_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_lr_d <= buf_0_lsu_isa_lr_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_sc_d <= io_enq_0_bits_lsu_isa_sc_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_sc_d <= buf_0_lsu_isa_sc_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amoswap_d <= io_enq_0_bits_lsu_isa_amoswap_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amoswap_d <= buf_0_lsu_isa_amoswap_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amoadd_d <= io_enq_0_bits_lsu_isa_amoadd_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amoadd_d <= buf_0_lsu_isa_amoadd_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amoxor_d <= io_enq_0_bits_lsu_isa_amoxor_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amoxor_d <= buf_0_lsu_isa_amoxor_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amoand_d <= io_enq_0_bits_lsu_isa_amoand_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amoand_d <= buf_0_lsu_isa_amoand_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amoor_d <= io_enq_0_bits_lsu_isa_amoor_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amoor_d <= buf_0_lsu_isa_amoor_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amomin_d <= io_enq_0_bits_lsu_isa_amomin_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amomin_d <= buf_0_lsu_isa_amomin_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amomax_d <= io_enq_0_bits_lsu_isa_amomax_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amomax_d <= buf_0_lsu_isa_amomax_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amominu_d <= io_enq_0_bits_lsu_isa_amominu_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amominu_d <= buf_0_lsu_isa_amominu_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amomaxu_d <= io_enq_0_bits_lsu_isa_amomaxu_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_amomaxu_d <= buf_0_lsu_isa_amomaxu_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_flw <= io_enq_0_bits_lsu_isa_flw;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_flw <= buf_0_lsu_isa_flw;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_fsw <= io_enq_0_bits_lsu_isa_fsw;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_fsw <= buf_0_lsu_isa_fsw;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_fld <= io_enq_0_bits_lsu_isa_fld;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_fld <= buf_0_lsu_isa_fld;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_fsd <= io_enq_0_bits_lsu_isa_fsd;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_lsu_isa_fsd <= buf_0_lsu_isa_fsd;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_csr_isa_rw <= io_enq_0_bits_csr_isa_rw;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_csr_isa_rw <= buf_0_csr_isa_rw;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_csr_isa_rs <= io_enq_0_bits_csr_isa_rs;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_csr_isa_rs <= buf_0_csr_isa_rs;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_csr_isa_rc <= io_enq_0_bits_csr_isa_rc;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_csr_isa_rc <= buf_0_csr_isa_rc;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_csr_isa_rwi <= io_enq_0_bits_csr_isa_rwi;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_csr_isa_rwi <= buf_0_csr_isa_rwi;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_csr_isa_rsi <= io_enq_0_bits_csr_isa_rsi;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_csr_isa_rsi <= buf_0_csr_isa_rsi;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_csr_isa_rci <= io_enq_0_bits_csr_isa_rci;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_csr_isa_rci <= buf_0_csr_isa_rci;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_mul <= io_enq_0_bits_mul_isa_mul;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_mul <= buf_0_mul_isa_mul;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_mulh <= io_enq_0_bits_mul_isa_mulh;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_mulh <= buf_0_mul_isa_mulh;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_mulhsu <= io_enq_0_bits_mul_isa_mulhsu;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_mulhsu <= buf_0_mul_isa_mulhsu;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_mulhu <= io_enq_0_bits_mul_isa_mulhu;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_mulhu <= buf_0_mul_isa_mulhu;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_div <= io_enq_0_bits_mul_isa_div;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_div <= buf_0_mul_isa_div;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_divu <= io_enq_0_bits_mul_isa_divu;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_divu <= buf_0_mul_isa_divu;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_rem <= io_enq_0_bits_mul_isa_rem;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_rem <= buf_0_mul_isa_rem;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_remu <= io_enq_0_bits_mul_isa_remu;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_remu <= buf_0_mul_isa_remu;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_mulw <= io_enq_0_bits_mul_isa_mulw;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_mulw <= buf_0_mul_isa_mulw;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_divw <= io_enq_0_bits_mul_isa_divw;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_divw <= buf_0_mul_isa_divw;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_divuw <= io_enq_0_bits_mul_isa_divuw;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_divuw <= buf_0_mul_isa_divuw;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_remw <= io_enq_0_bits_mul_isa_remw;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_remw <= buf_0_mul_isa_remw;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_remuw <= io_enq_0_bits_mul_isa_remuw;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_mul_isa_remuw <= buf_0_mul_isa_remuw;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmadd_s <= io_enq_0_bits_fpu_isa_fmadd_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmadd_s <= buf_0_fpu_isa_fmadd_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmsub_s <= io_enq_0_bits_fpu_isa_fmsub_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmsub_s <= buf_0_fpu_isa_fmsub_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fnmsub_s <= io_enq_0_bits_fpu_isa_fnmsub_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fnmsub_s <= buf_0_fpu_isa_fnmsub_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fnmadd_s <= io_enq_0_bits_fpu_isa_fnmadd_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fnmadd_s <= buf_0_fpu_isa_fnmadd_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fadd_s <= io_enq_0_bits_fpu_isa_fadd_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fadd_s <= buf_0_fpu_isa_fadd_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fsub_s <= io_enq_0_bits_fpu_isa_fsub_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fsub_s <= buf_0_fpu_isa_fsub_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmul_s <= io_enq_0_bits_fpu_isa_fmul_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmul_s <= buf_0_fpu_isa_fmul_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fdiv_s <= io_enq_0_bits_fpu_isa_fdiv_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fdiv_s <= buf_0_fpu_isa_fdiv_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fsqrt_s <= io_enq_0_bits_fpu_isa_fsqrt_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fsqrt_s <= buf_0_fpu_isa_fsqrt_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fsgnj_s <= io_enq_0_bits_fpu_isa_fsgnj_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fsgnj_s <= buf_0_fpu_isa_fsgnj_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fsgnjn_s <= io_enq_0_bits_fpu_isa_fsgnjn_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fsgnjn_s <= buf_0_fpu_isa_fsgnjn_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fsgnjx_s <= io_enq_0_bits_fpu_isa_fsgnjx_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fsgnjx_s <= buf_0_fpu_isa_fsgnjx_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmin_s <= io_enq_0_bits_fpu_isa_fmin_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmin_s <= buf_0_fpu_isa_fmin_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmax_s <= io_enq_0_bits_fpu_isa_fmax_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmax_s <= buf_0_fpu_isa_fmax_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fcvt_w_s <= io_enq_0_bits_fpu_isa_fcvt_w_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fcvt_w_s <= buf_0_fpu_isa_fcvt_w_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fcvt_wu_s <= io_enq_0_bits_fpu_isa_fcvt_wu_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fcvt_wu_s <= buf_0_fpu_isa_fcvt_wu_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmv_x_w <= io_enq_0_bits_fpu_isa_fmv_x_w;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmv_x_w <= buf_0_fpu_isa_fmv_x_w;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_feq_s <= io_enq_0_bits_fpu_isa_feq_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_feq_s <= buf_0_fpu_isa_feq_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_flt_s <= io_enq_0_bits_fpu_isa_flt_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_flt_s <= buf_0_fpu_isa_flt_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fle_s <= io_enq_0_bits_fpu_isa_fle_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fle_s <= buf_0_fpu_isa_fle_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fclass_s <= io_enq_0_bits_fpu_isa_fclass_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fclass_s <= buf_0_fpu_isa_fclass_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fcvt_l_s <= io_enq_0_bits_fpu_isa_fcvt_l_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fcvt_l_s <= buf_0_fpu_isa_fcvt_l_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fcvt_lu_s <= io_enq_0_bits_fpu_isa_fcvt_lu_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fcvt_lu_s <= buf_0_fpu_isa_fcvt_lu_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmadd_d <= io_enq_0_bits_fpu_isa_fmadd_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmadd_d <= buf_0_fpu_isa_fmadd_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmsub_d <= io_enq_0_bits_fpu_isa_fmsub_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmsub_d <= buf_0_fpu_isa_fmsub_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fnmsub_d <= io_enq_0_bits_fpu_isa_fnmsub_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fnmsub_d <= buf_0_fpu_isa_fnmsub_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fnmadd_d <= io_enq_0_bits_fpu_isa_fnmadd_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fnmadd_d <= buf_0_fpu_isa_fnmadd_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fadd_d <= io_enq_0_bits_fpu_isa_fadd_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fadd_d <= buf_0_fpu_isa_fadd_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fsub_d <= io_enq_0_bits_fpu_isa_fsub_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fsub_d <= buf_0_fpu_isa_fsub_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmul_d <= io_enq_0_bits_fpu_isa_fmul_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmul_d <= buf_0_fpu_isa_fmul_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fdiv_d <= io_enq_0_bits_fpu_isa_fdiv_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fdiv_d <= buf_0_fpu_isa_fdiv_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fsqrt_d <= io_enq_0_bits_fpu_isa_fsqrt_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fsqrt_d <= buf_0_fpu_isa_fsqrt_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fsgnj_d <= io_enq_0_bits_fpu_isa_fsgnj_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fsgnj_d <= buf_0_fpu_isa_fsgnj_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fsgnjn_d <= io_enq_0_bits_fpu_isa_fsgnjn_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fsgnjn_d <= buf_0_fpu_isa_fsgnjn_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fsgnjx_d <= io_enq_0_bits_fpu_isa_fsgnjx_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fsgnjx_d <= buf_0_fpu_isa_fsgnjx_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmin_d <= io_enq_0_bits_fpu_isa_fmin_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmin_d <= buf_0_fpu_isa_fmin_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmax_d <= io_enq_0_bits_fpu_isa_fmax_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmax_d <= buf_0_fpu_isa_fmax_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fcvt_s_d <= io_enq_0_bits_fpu_isa_fcvt_s_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fcvt_s_d <= buf_0_fpu_isa_fcvt_s_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fcvt_d_s <= io_enq_0_bits_fpu_isa_fcvt_d_s;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fcvt_d_s <= buf_0_fpu_isa_fcvt_d_s;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_feq_d <= io_enq_0_bits_fpu_isa_feq_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_feq_d <= buf_0_fpu_isa_feq_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_flt_d <= io_enq_0_bits_fpu_isa_flt_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_flt_d <= buf_0_fpu_isa_flt_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fle_d <= io_enq_0_bits_fpu_isa_fle_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fle_d <= buf_0_fpu_isa_fle_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fclass_d <= io_enq_0_bits_fpu_isa_fclass_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fclass_d <= buf_0_fpu_isa_fclass_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fcvt_w_d <= io_enq_0_bits_fpu_isa_fcvt_w_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fcvt_w_d <= buf_0_fpu_isa_fcvt_w_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fcvt_wu_d <= io_enq_0_bits_fpu_isa_fcvt_wu_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fcvt_wu_d <= buf_0_fpu_isa_fcvt_wu_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fcvt_l_d <= io_enq_0_bits_fpu_isa_fcvt_l_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fcvt_l_d <= buf_0_fpu_isa_fcvt_l_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fcvt_lu_d <= io_enq_0_bits_fpu_isa_fcvt_lu_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fcvt_lu_d <= buf_0_fpu_isa_fcvt_lu_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmv_x_d <= io_enq_0_bits_fpu_isa_fmv_x_d;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_fpu_isa_fmv_x_d <= buf_0_fpu_isa_fmv_x_d;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_param_is_rvc <= io_enq_0_bits_param_is_rvc;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_param_is_rvc <= buf_0_param_is_rvc;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_param_pc <= io_enq_0_bits_param_pc;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_param_pc <= buf_0_param_pc;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_param_imm <= io_enq_0_bits_param_imm;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_param_imm <= buf_0_param_imm;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_param_raw_rs1 <= io_enq_0_bits_param_raw_rs1;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_param_raw_rs1 <= buf_0_param_raw_rs1;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_phy_rs1 <= io_enq_0_bits_phy_rs1;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_phy_rs1 <= buf_0_phy_rs1;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_phy_rs2 <= io_enq_0_bits_phy_rs2;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_phy_rs2 <= buf_0_phy_rs2;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_phy_rs3 <= io_enq_0_bits_phy_rs3;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_phy_rs3 <= buf_0_phy_rs3;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_phy_rd0 <= io_enq_0_bits_phy_rd0;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_phy_rd0 <= buf_0_phy_rd0;
      end
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_deq_0_valid) begin // @[MultiPortFifo.scala 98:34]
      if (~_io_deq_0_valid_T[0]) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_0 <= _GEN_6;
      end
    end else begin
      buf_valid_0 <= _GEN_6;
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (io_deq_0_valid) begin // @[MultiPortFifo.scala 98:34]
      if (_io_deq_0_valid_T[0]) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_1 <= _GEN_7;
      end
    end else begin
      buf_valid_1 <= _GEN_7;
    end
    if (reset) begin // @[MultiPortFifo.scala 60:27]
      rd_ptr <= 1'h0; // @[MultiPortFifo.scala 60:27]
    end else begin
      rd_ptr <= _rd_ptr_T_2;
    end
    if (reset) begin // @[MultiPortFifo.scala 61:27]
      wr_ptr <= 1'h0; // @[MultiPortFifo.scala 61:27]
    end else begin
      wr_ptr <= _wr_ptr_T_2;
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_0_valid & ~io_enq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_0_valid & ~io_enq_0_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_9 & ~(~(io_deq_0_valid & ~io_deq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! out port illegal\n    at MultiPortFifo.scala:164 assert( !(io.deq(i).valid === true.B && io.deq(j).valid === false.B && i.U >= j.U), \"Assert Fail! out port illegal\")\n"
            ); // @[MultiPortFifo.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_deq_0_valid & ~io_deq_0_valid)) & _T_9) begin
          $fatal; // @[MultiPortFifo.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  buf_0_alu_isa_lui = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  buf_0_alu_isa_auipc = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  buf_0_alu_isa_addi = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  buf_0_alu_isa_addiw = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  buf_0_alu_isa_slti = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  buf_0_alu_isa_sltiu = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  buf_0_alu_isa_xori = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  buf_0_alu_isa_ori = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  buf_0_alu_isa_andi = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  buf_0_alu_isa_slli = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  buf_0_alu_isa_slliw = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  buf_0_alu_isa_srli = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  buf_0_alu_isa_srliw = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  buf_0_alu_isa_srai = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  buf_0_alu_isa_sraiw = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  buf_0_alu_isa_add = _RAND_15[0:0];
  _RAND_16 = {1{`RANDOM}};
  buf_0_alu_isa_addw = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  buf_0_alu_isa_sub = _RAND_17[0:0];
  _RAND_18 = {1{`RANDOM}};
  buf_0_alu_isa_subw = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  buf_0_alu_isa_sll = _RAND_19[0:0];
  _RAND_20 = {1{`RANDOM}};
  buf_0_alu_isa_sllw = _RAND_20[0:0];
  _RAND_21 = {1{`RANDOM}};
  buf_0_alu_isa_slt = _RAND_21[0:0];
  _RAND_22 = {1{`RANDOM}};
  buf_0_alu_isa_sltu = _RAND_22[0:0];
  _RAND_23 = {1{`RANDOM}};
  buf_0_alu_isa_xor = _RAND_23[0:0];
  _RAND_24 = {1{`RANDOM}};
  buf_0_alu_isa_srl = _RAND_24[0:0];
  _RAND_25 = {1{`RANDOM}};
  buf_0_alu_isa_srlw = _RAND_25[0:0];
  _RAND_26 = {1{`RANDOM}};
  buf_0_alu_isa_sra = _RAND_26[0:0];
  _RAND_27 = {1{`RANDOM}};
  buf_0_alu_isa_sraw = _RAND_27[0:0];
  _RAND_28 = {1{`RANDOM}};
  buf_0_alu_isa_or = _RAND_28[0:0];
  _RAND_29 = {1{`RANDOM}};
  buf_0_alu_isa_and = _RAND_29[0:0];
  _RAND_30 = {1{`RANDOM}};
  buf_0_alu_isa_wfi = _RAND_30[0:0];
  _RAND_31 = {1{`RANDOM}};
  buf_0_bru_isa_jal = _RAND_31[0:0];
  _RAND_32 = {1{`RANDOM}};
  buf_0_bru_isa_jalr = _RAND_32[0:0];
  _RAND_33 = {1{`RANDOM}};
  buf_0_bru_isa_beq = _RAND_33[0:0];
  _RAND_34 = {1{`RANDOM}};
  buf_0_bru_isa_bne = _RAND_34[0:0];
  _RAND_35 = {1{`RANDOM}};
  buf_0_bru_isa_blt = _RAND_35[0:0];
  _RAND_36 = {1{`RANDOM}};
  buf_0_bru_isa_bge = _RAND_36[0:0];
  _RAND_37 = {1{`RANDOM}};
  buf_0_bru_isa_bltu = _RAND_37[0:0];
  _RAND_38 = {1{`RANDOM}};
  buf_0_bru_isa_bgeu = _RAND_38[0:0];
  _RAND_39 = {1{`RANDOM}};
  buf_0_lsu_isa_lb = _RAND_39[0:0];
  _RAND_40 = {1{`RANDOM}};
  buf_0_lsu_isa_lh = _RAND_40[0:0];
  _RAND_41 = {1{`RANDOM}};
  buf_0_lsu_isa_lw = _RAND_41[0:0];
  _RAND_42 = {1{`RANDOM}};
  buf_0_lsu_isa_ld = _RAND_42[0:0];
  _RAND_43 = {1{`RANDOM}};
  buf_0_lsu_isa_lbu = _RAND_43[0:0];
  _RAND_44 = {1{`RANDOM}};
  buf_0_lsu_isa_lhu = _RAND_44[0:0];
  _RAND_45 = {1{`RANDOM}};
  buf_0_lsu_isa_lwu = _RAND_45[0:0];
  _RAND_46 = {1{`RANDOM}};
  buf_0_lsu_isa_sb = _RAND_46[0:0];
  _RAND_47 = {1{`RANDOM}};
  buf_0_lsu_isa_sh = _RAND_47[0:0];
  _RAND_48 = {1{`RANDOM}};
  buf_0_lsu_isa_sw = _RAND_48[0:0];
  _RAND_49 = {1{`RANDOM}};
  buf_0_lsu_isa_sd = _RAND_49[0:0];
  _RAND_50 = {1{`RANDOM}};
  buf_0_lsu_isa_fence = _RAND_50[0:0];
  _RAND_51 = {1{`RANDOM}};
  buf_0_lsu_isa_fence_i = _RAND_51[0:0];
  _RAND_52 = {1{`RANDOM}};
  buf_0_lsu_isa_sfence_vma = _RAND_52[0:0];
  _RAND_53 = {1{`RANDOM}};
  buf_0_lsu_isa_lr_w = _RAND_53[0:0];
  _RAND_54 = {1{`RANDOM}};
  buf_0_lsu_isa_sc_w = _RAND_54[0:0];
  _RAND_55 = {1{`RANDOM}};
  buf_0_lsu_isa_amoswap_w = _RAND_55[0:0];
  _RAND_56 = {1{`RANDOM}};
  buf_0_lsu_isa_amoadd_w = _RAND_56[0:0];
  _RAND_57 = {1{`RANDOM}};
  buf_0_lsu_isa_amoxor_w = _RAND_57[0:0];
  _RAND_58 = {1{`RANDOM}};
  buf_0_lsu_isa_amoand_w = _RAND_58[0:0];
  _RAND_59 = {1{`RANDOM}};
  buf_0_lsu_isa_amoor_w = _RAND_59[0:0];
  _RAND_60 = {1{`RANDOM}};
  buf_0_lsu_isa_amomin_w = _RAND_60[0:0];
  _RAND_61 = {1{`RANDOM}};
  buf_0_lsu_isa_amomax_w = _RAND_61[0:0];
  _RAND_62 = {1{`RANDOM}};
  buf_0_lsu_isa_amominu_w = _RAND_62[0:0];
  _RAND_63 = {1{`RANDOM}};
  buf_0_lsu_isa_amomaxu_w = _RAND_63[0:0];
  _RAND_64 = {1{`RANDOM}};
  buf_0_lsu_isa_lr_d = _RAND_64[0:0];
  _RAND_65 = {1{`RANDOM}};
  buf_0_lsu_isa_sc_d = _RAND_65[0:0];
  _RAND_66 = {1{`RANDOM}};
  buf_0_lsu_isa_amoswap_d = _RAND_66[0:0];
  _RAND_67 = {1{`RANDOM}};
  buf_0_lsu_isa_amoadd_d = _RAND_67[0:0];
  _RAND_68 = {1{`RANDOM}};
  buf_0_lsu_isa_amoxor_d = _RAND_68[0:0];
  _RAND_69 = {1{`RANDOM}};
  buf_0_lsu_isa_amoand_d = _RAND_69[0:0];
  _RAND_70 = {1{`RANDOM}};
  buf_0_lsu_isa_amoor_d = _RAND_70[0:0];
  _RAND_71 = {1{`RANDOM}};
  buf_0_lsu_isa_amomin_d = _RAND_71[0:0];
  _RAND_72 = {1{`RANDOM}};
  buf_0_lsu_isa_amomax_d = _RAND_72[0:0];
  _RAND_73 = {1{`RANDOM}};
  buf_0_lsu_isa_amominu_d = _RAND_73[0:0];
  _RAND_74 = {1{`RANDOM}};
  buf_0_lsu_isa_amomaxu_d = _RAND_74[0:0];
  _RAND_75 = {1{`RANDOM}};
  buf_0_lsu_isa_flw = _RAND_75[0:0];
  _RAND_76 = {1{`RANDOM}};
  buf_0_lsu_isa_fsw = _RAND_76[0:0];
  _RAND_77 = {1{`RANDOM}};
  buf_0_lsu_isa_fld = _RAND_77[0:0];
  _RAND_78 = {1{`RANDOM}};
  buf_0_lsu_isa_fsd = _RAND_78[0:0];
  _RAND_79 = {1{`RANDOM}};
  buf_0_csr_isa_rw = _RAND_79[0:0];
  _RAND_80 = {1{`RANDOM}};
  buf_0_csr_isa_rs = _RAND_80[0:0];
  _RAND_81 = {1{`RANDOM}};
  buf_0_csr_isa_rc = _RAND_81[0:0];
  _RAND_82 = {1{`RANDOM}};
  buf_0_csr_isa_rwi = _RAND_82[0:0];
  _RAND_83 = {1{`RANDOM}};
  buf_0_csr_isa_rsi = _RAND_83[0:0];
  _RAND_84 = {1{`RANDOM}};
  buf_0_csr_isa_rci = _RAND_84[0:0];
  _RAND_85 = {1{`RANDOM}};
  buf_0_mul_isa_mul = _RAND_85[0:0];
  _RAND_86 = {1{`RANDOM}};
  buf_0_mul_isa_mulh = _RAND_86[0:0];
  _RAND_87 = {1{`RANDOM}};
  buf_0_mul_isa_mulhsu = _RAND_87[0:0];
  _RAND_88 = {1{`RANDOM}};
  buf_0_mul_isa_mulhu = _RAND_88[0:0];
  _RAND_89 = {1{`RANDOM}};
  buf_0_mul_isa_div = _RAND_89[0:0];
  _RAND_90 = {1{`RANDOM}};
  buf_0_mul_isa_divu = _RAND_90[0:0];
  _RAND_91 = {1{`RANDOM}};
  buf_0_mul_isa_rem = _RAND_91[0:0];
  _RAND_92 = {1{`RANDOM}};
  buf_0_mul_isa_remu = _RAND_92[0:0];
  _RAND_93 = {1{`RANDOM}};
  buf_0_mul_isa_mulw = _RAND_93[0:0];
  _RAND_94 = {1{`RANDOM}};
  buf_0_mul_isa_divw = _RAND_94[0:0];
  _RAND_95 = {1{`RANDOM}};
  buf_0_mul_isa_divuw = _RAND_95[0:0];
  _RAND_96 = {1{`RANDOM}};
  buf_0_mul_isa_remw = _RAND_96[0:0];
  _RAND_97 = {1{`RANDOM}};
  buf_0_mul_isa_remuw = _RAND_97[0:0];
  _RAND_98 = {1{`RANDOM}};
  buf_0_fpu_isa_fmadd_s = _RAND_98[0:0];
  _RAND_99 = {1{`RANDOM}};
  buf_0_fpu_isa_fmsub_s = _RAND_99[0:0];
  _RAND_100 = {1{`RANDOM}};
  buf_0_fpu_isa_fnmsub_s = _RAND_100[0:0];
  _RAND_101 = {1{`RANDOM}};
  buf_0_fpu_isa_fnmadd_s = _RAND_101[0:0];
  _RAND_102 = {1{`RANDOM}};
  buf_0_fpu_isa_fadd_s = _RAND_102[0:0];
  _RAND_103 = {1{`RANDOM}};
  buf_0_fpu_isa_fsub_s = _RAND_103[0:0];
  _RAND_104 = {1{`RANDOM}};
  buf_0_fpu_isa_fmul_s = _RAND_104[0:0];
  _RAND_105 = {1{`RANDOM}};
  buf_0_fpu_isa_fdiv_s = _RAND_105[0:0];
  _RAND_106 = {1{`RANDOM}};
  buf_0_fpu_isa_fsqrt_s = _RAND_106[0:0];
  _RAND_107 = {1{`RANDOM}};
  buf_0_fpu_isa_fsgnj_s = _RAND_107[0:0];
  _RAND_108 = {1{`RANDOM}};
  buf_0_fpu_isa_fsgnjn_s = _RAND_108[0:0];
  _RAND_109 = {1{`RANDOM}};
  buf_0_fpu_isa_fsgnjx_s = _RAND_109[0:0];
  _RAND_110 = {1{`RANDOM}};
  buf_0_fpu_isa_fmin_s = _RAND_110[0:0];
  _RAND_111 = {1{`RANDOM}};
  buf_0_fpu_isa_fmax_s = _RAND_111[0:0];
  _RAND_112 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_w_s = _RAND_112[0:0];
  _RAND_113 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_wu_s = _RAND_113[0:0];
  _RAND_114 = {1{`RANDOM}};
  buf_0_fpu_isa_fmv_x_w = _RAND_114[0:0];
  _RAND_115 = {1{`RANDOM}};
  buf_0_fpu_isa_feq_s = _RAND_115[0:0];
  _RAND_116 = {1{`RANDOM}};
  buf_0_fpu_isa_flt_s = _RAND_116[0:0];
  _RAND_117 = {1{`RANDOM}};
  buf_0_fpu_isa_fle_s = _RAND_117[0:0];
  _RAND_118 = {1{`RANDOM}};
  buf_0_fpu_isa_fclass_s = _RAND_118[0:0];
  _RAND_119 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_l_s = _RAND_119[0:0];
  _RAND_120 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_lu_s = _RAND_120[0:0];
  _RAND_121 = {1{`RANDOM}};
  buf_0_fpu_isa_fmadd_d = _RAND_121[0:0];
  _RAND_122 = {1{`RANDOM}};
  buf_0_fpu_isa_fmsub_d = _RAND_122[0:0];
  _RAND_123 = {1{`RANDOM}};
  buf_0_fpu_isa_fnmsub_d = _RAND_123[0:0];
  _RAND_124 = {1{`RANDOM}};
  buf_0_fpu_isa_fnmadd_d = _RAND_124[0:0];
  _RAND_125 = {1{`RANDOM}};
  buf_0_fpu_isa_fadd_d = _RAND_125[0:0];
  _RAND_126 = {1{`RANDOM}};
  buf_0_fpu_isa_fsub_d = _RAND_126[0:0];
  _RAND_127 = {1{`RANDOM}};
  buf_0_fpu_isa_fmul_d = _RAND_127[0:0];
  _RAND_128 = {1{`RANDOM}};
  buf_0_fpu_isa_fdiv_d = _RAND_128[0:0];
  _RAND_129 = {1{`RANDOM}};
  buf_0_fpu_isa_fsqrt_d = _RAND_129[0:0];
  _RAND_130 = {1{`RANDOM}};
  buf_0_fpu_isa_fsgnj_d = _RAND_130[0:0];
  _RAND_131 = {1{`RANDOM}};
  buf_0_fpu_isa_fsgnjn_d = _RAND_131[0:0];
  _RAND_132 = {1{`RANDOM}};
  buf_0_fpu_isa_fsgnjx_d = _RAND_132[0:0];
  _RAND_133 = {1{`RANDOM}};
  buf_0_fpu_isa_fmin_d = _RAND_133[0:0];
  _RAND_134 = {1{`RANDOM}};
  buf_0_fpu_isa_fmax_d = _RAND_134[0:0];
  _RAND_135 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_s_d = _RAND_135[0:0];
  _RAND_136 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_d_s = _RAND_136[0:0];
  _RAND_137 = {1{`RANDOM}};
  buf_0_fpu_isa_feq_d = _RAND_137[0:0];
  _RAND_138 = {1{`RANDOM}};
  buf_0_fpu_isa_flt_d = _RAND_138[0:0];
  _RAND_139 = {1{`RANDOM}};
  buf_0_fpu_isa_fle_d = _RAND_139[0:0];
  _RAND_140 = {1{`RANDOM}};
  buf_0_fpu_isa_fclass_d = _RAND_140[0:0];
  _RAND_141 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_w_d = _RAND_141[0:0];
  _RAND_142 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_wu_d = _RAND_142[0:0];
  _RAND_143 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_l_d = _RAND_143[0:0];
  _RAND_144 = {1{`RANDOM}};
  buf_0_fpu_isa_fcvt_lu_d = _RAND_144[0:0];
  _RAND_145 = {1{`RANDOM}};
  buf_0_fpu_isa_fmv_x_d = _RAND_145[0:0];
  _RAND_146 = {1{`RANDOM}};
  buf_0_param_is_rvc = _RAND_146[0:0];
  _RAND_147 = {2{`RANDOM}};
  buf_0_param_pc = _RAND_147[38:0];
  _RAND_148 = {2{`RANDOM}};
  buf_0_param_imm = _RAND_148[63:0];
  _RAND_149 = {1{`RANDOM}};
  buf_0_param_raw_rs1 = _RAND_149[4:0];
  _RAND_150 = {1{`RANDOM}};
  buf_0_phy_rs1 = _RAND_150[5:0];
  _RAND_151 = {1{`RANDOM}};
  buf_0_phy_rs2 = _RAND_151[5:0];
  _RAND_152 = {1{`RANDOM}};
  buf_0_phy_rs3 = _RAND_152[5:0];
  _RAND_153 = {1{`RANDOM}};
  buf_0_phy_rd0 = _RAND_153[5:0];
  _RAND_154 = {1{`RANDOM}};
  buf_1_alu_isa_lui = _RAND_154[0:0];
  _RAND_155 = {1{`RANDOM}};
  buf_1_alu_isa_auipc = _RAND_155[0:0];
  _RAND_156 = {1{`RANDOM}};
  buf_1_alu_isa_addi = _RAND_156[0:0];
  _RAND_157 = {1{`RANDOM}};
  buf_1_alu_isa_addiw = _RAND_157[0:0];
  _RAND_158 = {1{`RANDOM}};
  buf_1_alu_isa_slti = _RAND_158[0:0];
  _RAND_159 = {1{`RANDOM}};
  buf_1_alu_isa_sltiu = _RAND_159[0:0];
  _RAND_160 = {1{`RANDOM}};
  buf_1_alu_isa_xori = _RAND_160[0:0];
  _RAND_161 = {1{`RANDOM}};
  buf_1_alu_isa_ori = _RAND_161[0:0];
  _RAND_162 = {1{`RANDOM}};
  buf_1_alu_isa_andi = _RAND_162[0:0];
  _RAND_163 = {1{`RANDOM}};
  buf_1_alu_isa_slli = _RAND_163[0:0];
  _RAND_164 = {1{`RANDOM}};
  buf_1_alu_isa_slliw = _RAND_164[0:0];
  _RAND_165 = {1{`RANDOM}};
  buf_1_alu_isa_srli = _RAND_165[0:0];
  _RAND_166 = {1{`RANDOM}};
  buf_1_alu_isa_srliw = _RAND_166[0:0];
  _RAND_167 = {1{`RANDOM}};
  buf_1_alu_isa_srai = _RAND_167[0:0];
  _RAND_168 = {1{`RANDOM}};
  buf_1_alu_isa_sraiw = _RAND_168[0:0];
  _RAND_169 = {1{`RANDOM}};
  buf_1_alu_isa_add = _RAND_169[0:0];
  _RAND_170 = {1{`RANDOM}};
  buf_1_alu_isa_addw = _RAND_170[0:0];
  _RAND_171 = {1{`RANDOM}};
  buf_1_alu_isa_sub = _RAND_171[0:0];
  _RAND_172 = {1{`RANDOM}};
  buf_1_alu_isa_subw = _RAND_172[0:0];
  _RAND_173 = {1{`RANDOM}};
  buf_1_alu_isa_sll = _RAND_173[0:0];
  _RAND_174 = {1{`RANDOM}};
  buf_1_alu_isa_sllw = _RAND_174[0:0];
  _RAND_175 = {1{`RANDOM}};
  buf_1_alu_isa_slt = _RAND_175[0:0];
  _RAND_176 = {1{`RANDOM}};
  buf_1_alu_isa_sltu = _RAND_176[0:0];
  _RAND_177 = {1{`RANDOM}};
  buf_1_alu_isa_xor = _RAND_177[0:0];
  _RAND_178 = {1{`RANDOM}};
  buf_1_alu_isa_srl = _RAND_178[0:0];
  _RAND_179 = {1{`RANDOM}};
  buf_1_alu_isa_srlw = _RAND_179[0:0];
  _RAND_180 = {1{`RANDOM}};
  buf_1_alu_isa_sra = _RAND_180[0:0];
  _RAND_181 = {1{`RANDOM}};
  buf_1_alu_isa_sraw = _RAND_181[0:0];
  _RAND_182 = {1{`RANDOM}};
  buf_1_alu_isa_or = _RAND_182[0:0];
  _RAND_183 = {1{`RANDOM}};
  buf_1_alu_isa_and = _RAND_183[0:0];
  _RAND_184 = {1{`RANDOM}};
  buf_1_alu_isa_wfi = _RAND_184[0:0];
  _RAND_185 = {1{`RANDOM}};
  buf_1_bru_isa_jal = _RAND_185[0:0];
  _RAND_186 = {1{`RANDOM}};
  buf_1_bru_isa_jalr = _RAND_186[0:0];
  _RAND_187 = {1{`RANDOM}};
  buf_1_bru_isa_beq = _RAND_187[0:0];
  _RAND_188 = {1{`RANDOM}};
  buf_1_bru_isa_bne = _RAND_188[0:0];
  _RAND_189 = {1{`RANDOM}};
  buf_1_bru_isa_blt = _RAND_189[0:0];
  _RAND_190 = {1{`RANDOM}};
  buf_1_bru_isa_bge = _RAND_190[0:0];
  _RAND_191 = {1{`RANDOM}};
  buf_1_bru_isa_bltu = _RAND_191[0:0];
  _RAND_192 = {1{`RANDOM}};
  buf_1_bru_isa_bgeu = _RAND_192[0:0];
  _RAND_193 = {1{`RANDOM}};
  buf_1_lsu_isa_lb = _RAND_193[0:0];
  _RAND_194 = {1{`RANDOM}};
  buf_1_lsu_isa_lh = _RAND_194[0:0];
  _RAND_195 = {1{`RANDOM}};
  buf_1_lsu_isa_lw = _RAND_195[0:0];
  _RAND_196 = {1{`RANDOM}};
  buf_1_lsu_isa_ld = _RAND_196[0:0];
  _RAND_197 = {1{`RANDOM}};
  buf_1_lsu_isa_lbu = _RAND_197[0:0];
  _RAND_198 = {1{`RANDOM}};
  buf_1_lsu_isa_lhu = _RAND_198[0:0];
  _RAND_199 = {1{`RANDOM}};
  buf_1_lsu_isa_lwu = _RAND_199[0:0];
  _RAND_200 = {1{`RANDOM}};
  buf_1_lsu_isa_sb = _RAND_200[0:0];
  _RAND_201 = {1{`RANDOM}};
  buf_1_lsu_isa_sh = _RAND_201[0:0];
  _RAND_202 = {1{`RANDOM}};
  buf_1_lsu_isa_sw = _RAND_202[0:0];
  _RAND_203 = {1{`RANDOM}};
  buf_1_lsu_isa_sd = _RAND_203[0:0];
  _RAND_204 = {1{`RANDOM}};
  buf_1_lsu_isa_fence = _RAND_204[0:0];
  _RAND_205 = {1{`RANDOM}};
  buf_1_lsu_isa_fence_i = _RAND_205[0:0];
  _RAND_206 = {1{`RANDOM}};
  buf_1_lsu_isa_sfence_vma = _RAND_206[0:0];
  _RAND_207 = {1{`RANDOM}};
  buf_1_lsu_isa_lr_w = _RAND_207[0:0];
  _RAND_208 = {1{`RANDOM}};
  buf_1_lsu_isa_sc_w = _RAND_208[0:0];
  _RAND_209 = {1{`RANDOM}};
  buf_1_lsu_isa_amoswap_w = _RAND_209[0:0];
  _RAND_210 = {1{`RANDOM}};
  buf_1_lsu_isa_amoadd_w = _RAND_210[0:0];
  _RAND_211 = {1{`RANDOM}};
  buf_1_lsu_isa_amoxor_w = _RAND_211[0:0];
  _RAND_212 = {1{`RANDOM}};
  buf_1_lsu_isa_amoand_w = _RAND_212[0:0];
  _RAND_213 = {1{`RANDOM}};
  buf_1_lsu_isa_amoor_w = _RAND_213[0:0];
  _RAND_214 = {1{`RANDOM}};
  buf_1_lsu_isa_amomin_w = _RAND_214[0:0];
  _RAND_215 = {1{`RANDOM}};
  buf_1_lsu_isa_amomax_w = _RAND_215[0:0];
  _RAND_216 = {1{`RANDOM}};
  buf_1_lsu_isa_amominu_w = _RAND_216[0:0];
  _RAND_217 = {1{`RANDOM}};
  buf_1_lsu_isa_amomaxu_w = _RAND_217[0:0];
  _RAND_218 = {1{`RANDOM}};
  buf_1_lsu_isa_lr_d = _RAND_218[0:0];
  _RAND_219 = {1{`RANDOM}};
  buf_1_lsu_isa_sc_d = _RAND_219[0:0];
  _RAND_220 = {1{`RANDOM}};
  buf_1_lsu_isa_amoswap_d = _RAND_220[0:0];
  _RAND_221 = {1{`RANDOM}};
  buf_1_lsu_isa_amoadd_d = _RAND_221[0:0];
  _RAND_222 = {1{`RANDOM}};
  buf_1_lsu_isa_amoxor_d = _RAND_222[0:0];
  _RAND_223 = {1{`RANDOM}};
  buf_1_lsu_isa_amoand_d = _RAND_223[0:0];
  _RAND_224 = {1{`RANDOM}};
  buf_1_lsu_isa_amoor_d = _RAND_224[0:0];
  _RAND_225 = {1{`RANDOM}};
  buf_1_lsu_isa_amomin_d = _RAND_225[0:0];
  _RAND_226 = {1{`RANDOM}};
  buf_1_lsu_isa_amomax_d = _RAND_226[0:0];
  _RAND_227 = {1{`RANDOM}};
  buf_1_lsu_isa_amominu_d = _RAND_227[0:0];
  _RAND_228 = {1{`RANDOM}};
  buf_1_lsu_isa_amomaxu_d = _RAND_228[0:0];
  _RAND_229 = {1{`RANDOM}};
  buf_1_lsu_isa_flw = _RAND_229[0:0];
  _RAND_230 = {1{`RANDOM}};
  buf_1_lsu_isa_fsw = _RAND_230[0:0];
  _RAND_231 = {1{`RANDOM}};
  buf_1_lsu_isa_fld = _RAND_231[0:0];
  _RAND_232 = {1{`RANDOM}};
  buf_1_lsu_isa_fsd = _RAND_232[0:0];
  _RAND_233 = {1{`RANDOM}};
  buf_1_csr_isa_rw = _RAND_233[0:0];
  _RAND_234 = {1{`RANDOM}};
  buf_1_csr_isa_rs = _RAND_234[0:0];
  _RAND_235 = {1{`RANDOM}};
  buf_1_csr_isa_rc = _RAND_235[0:0];
  _RAND_236 = {1{`RANDOM}};
  buf_1_csr_isa_rwi = _RAND_236[0:0];
  _RAND_237 = {1{`RANDOM}};
  buf_1_csr_isa_rsi = _RAND_237[0:0];
  _RAND_238 = {1{`RANDOM}};
  buf_1_csr_isa_rci = _RAND_238[0:0];
  _RAND_239 = {1{`RANDOM}};
  buf_1_mul_isa_mul = _RAND_239[0:0];
  _RAND_240 = {1{`RANDOM}};
  buf_1_mul_isa_mulh = _RAND_240[0:0];
  _RAND_241 = {1{`RANDOM}};
  buf_1_mul_isa_mulhsu = _RAND_241[0:0];
  _RAND_242 = {1{`RANDOM}};
  buf_1_mul_isa_mulhu = _RAND_242[0:0];
  _RAND_243 = {1{`RANDOM}};
  buf_1_mul_isa_div = _RAND_243[0:0];
  _RAND_244 = {1{`RANDOM}};
  buf_1_mul_isa_divu = _RAND_244[0:0];
  _RAND_245 = {1{`RANDOM}};
  buf_1_mul_isa_rem = _RAND_245[0:0];
  _RAND_246 = {1{`RANDOM}};
  buf_1_mul_isa_remu = _RAND_246[0:0];
  _RAND_247 = {1{`RANDOM}};
  buf_1_mul_isa_mulw = _RAND_247[0:0];
  _RAND_248 = {1{`RANDOM}};
  buf_1_mul_isa_divw = _RAND_248[0:0];
  _RAND_249 = {1{`RANDOM}};
  buf_1_mul_isa_divuw = _RAND_249[0:0];
  _RAND_250 = {1{`RANDOM}};
  buf_1_mul_isa_remw = _RAND_250[0:0];
  _RAND_251 = {1{`RANDOM}};
  buf_1_mul_isa_remuw = _RAND_251[0:0];
  _RAND_252 = {1{`RANDOM}};
  buf_1_fpu_isa_fmadd_s = _RAND_252[0:0];
  _RAND_253 = {1{`RANDOM}};
  buf_1_fpu_isa_fmsub_s = _RAND_253[0:0];
  _RAND_254 = {1{`RANDOM}};
  buf_1_fpu_isa_fnmsub_s = _RAND_254[0:0];
  _RAND_255 = {1{`RANDOM}};
  buf_1_fpu_isa_fnmadd_s = _RAND_255[0:0];
  _RAND_256 = {1{`RANDOM}};
  buf_1_fpu_isa_fadd_s = _RAND_256[0:0];
  _RAND_257 = {1{`RANDOM}};
  buf_1_fpu_isa_fsub_s = _RAND_257[0:0];
  _RAND_258 = {1{`RANDOM}};
  buf_1_fpu_isa_fmul_s = _RAND_258[0:0];
  _RAND_259 = {1{`RANDOM}};
  buf_1_fpu_isa_fdiv_s = _RAND_259[0:0];
  _RAND_260 = {1{`RANDOM}};
  buf_1_fpu_isa_fsqrt_s = _RAND_260[0:0];
  _RAND_261 = {1{`RANDOM}};
  buf_1_fpu_isa_fsgnj_s = _RAND_261[0:0];
  _RAND_262 = {1{`RANDOM}};
  buf_1_fpu_isa_fsgnjn_s = _RAND_262[0:0];
  _RAND_263 = {1{`RANDOM}};
  buf_1_fpu_isa_fsgnjx_s = _RAND_263[0:0];
  _RAND_264 = {1{`RANDOM}};
  buf_1_fpu_isa_fmin_s = _RAND_264[0:0];
  _RAND_265 = {1{`RANDOM}};
  buf_1_fpu_isa_fmax_s = _RAND_265[0:0];
  _RAND_266 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_w_s = _RAND_266[0:0];
  _RAND_267 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_wu_s = _RAND_267[0:0];
  _RAND_268 = {1{`RANDOM}};
  buf_1_fpu_isa_fmv_x_w = _RAND_268[0:0];
  _RAND_269 = {1{`RANDOM}};
  buf_1_fpu_isa_feq_s = _RAND_269[0:0];
  _RAND_270 = {1{`RANDOM}};
  buf_1_fpu_isa_flt_s = _RAND_270[0:0];
  _RAND_271 = {1{`RANDOM}};
  buf_1_fpu_isa_fle_s = _RAND_271[0:0];
  _RAND_272 = {1{`RANDOM}};
  buf_1_fpu_isa_fclass_s = _RAND_272[0:0];
  _RAND_273 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_l_s = _RAND_273[0:0];
  _RAND_274 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_lu_s = _RAND_274[0:0];
  _RAND_275 = {1{`RANDOM}};
  buf_1_fpu_isa_fmadd_d = _RAND_275[0:0];
  _RAND_276 = {1{`RANDOM}};
  buf_1_fpu_isa_fmsub_d = _RAND_276[0:0];
  _RAND_277 = {1{`RANDOM}};
  buf_1_fpu_isa_fnmsub_d = _RAND_277[0:0];
  _RAND_278 = {1{`RANDOM}};
  buf_1_fpu_isa_fnmadd_d = _RAND_278[0:0];
  _RAND_279 = {1{`RANDOM}};
  buf_1_fpu_isa_fadd_d = _RAND_279[0:0];
  _RAND_280 = {1{`RANDOM}};
  buf_1_fpu_isa_fsub_d = _RAND_280[0:0];
  _RAND_281 = {1{`RANDOM}};
  buf_1_fpu_isa_fmul_d = _RAND_281[0:0];
  _RAND_282 = {1{`RANDOM}};
  buf_1_fpu_isa_fdiv_d = _RAND_282[0:0];
  _RAND_283 = {1{`RANDOM}};
  buf_1_fpu_isa_fsqrt_d = _RAND_283[0:0];
  _RAND_284 = {1{`RANDOM}};
  buf_1_fpu_isa_fsgnj_d = _RAND_284[0:0];
  _RAND_285 = {1{`RANDOM}};
  buf_1_fpu_isa_fsgnjn_d = _RAND_285[0:0];
  _RAND_286 = {1{`RANDOM}};
  buf_1_fpu_isa_fsgnjx_d = _RAND_286[0:0];
  _RAND_287 = {1{`RANDOM}};
  buf_1_fpu_isa_fmin_d = _RAND_287[0:0];
  _RAND_288 = {1{`RANDOM}};
  buf_1_fpu_isa_fmax_d = _RAND_288[0:0];
  _RAND_289 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_s_d = _RAND_289[0:0];
  _RAND_290 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_d_s = _RAND_290[0:0];
  _RAND_291 = {1{`RANDOM}};
  buf_1_fpu_isa_feq_d = _RAND_291[0:0];
  _RAND_292 = {1{`RANDOM}};
  buf_1_fpu_isa_flt_d = _RAND_292[0:0];
  _RAND_293 = {1{`RANDOM}};
  buf_1_fpu_isa_fle_d = _RAND_293[0:0];
  _RAND_294 = {1{`RANDOM}};
  buf_1_fpu_isa_fclass_d = _RAND_294[0:0];
  _RAND_295 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_w_d = _RAND_295[0:0];
  _RAND_296 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_wu_d = _RAND_296[0:0];
  _RAND_297 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_l_d = _RAND_297[0:0];
  _RAND_298 = {1{`RANDOM}};
  buf_1_fpu_isa_fcvt_lu_d = _RAND_298[0:0];
  _RAND_299 = {1{`RANDOM}};
  buf_1_fpu_isa_fmv_x_d = _RAND_299[0:0];
  _RAND_300 = {1{`RANDOM}};
  buf_1_param_is_rvc = _RAND_300[0:0];
  _RAND_301 = {2{`RANDOM}};
  buf_1_param_pc = _RAND_301[38:0];
  _RAND_302 = {2{`RANDOM}};
  buf_1_param_imm = _RAND_302[63:0];
  _RAND_303 = {1{`RANDOM}};
  buf_1_param_raw_rs1 = _RAND_303[4:0];
  _RAND_304 = {1{`RANDOM}};
  buf_1_phy_rs1 = _RAND_304[5:0];
  _RAND_305 = {1{`RANDOM}};
  buf_1_phy_rs2 = _RAND_305[5:0];
  _RAND_306 = {1{`RANDOM}};
  buf_1_phy_rs3 = _RAND_306[5:0];
  _RAND_307 = {1{`RANDOM}};
  buf_1_phy_rd0 = _RAND_307[5:0];
  _RAND_308 = {1{`RANDOM}};
  buf_valid_0 = _RAND_308[0:0];
  _RAND_309 = {1{`RANDOM}};
  buf_valid_1 = _RAND_309[0:0];
  _RAND_310 = {1{`RANDOM}};
  rd_ptr = _RAND_310[0:0];
  _RAND_311 = {1{`RANDOM}};
  wr_ptr = _RAND_311[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module MultiPortFifo_in1_out1_10(
  input         clock,
  input         reset,
  output        io_enq_0_ready,
  input         io_enq_0_valid,
  input  [38:0] io_enq_0_bits_pc,
  input  [4:0]  io_enq_0_bits_rd0_raw,
  input  [5:0]  io_enq_0_bits_rd0_phy,
  input         io_enq_0_bits_is_branch,
  input         io_enq_0_bits_is_jalr,
  input         io_enq_0_bits_is_lu,
  input         io_enq_0_bits_is_su,
  input         io_enq_0_bits_is_amo,
  input         io_enq_0_bits_is_fence_i,
  input         io_enq_0_bits_is_sfence_vma,
  input         io_enq_0_bits_is_wfi,
  input         io_enq_0_bits_is_csr,
  input         io_enq_0_bits_is_fpu,
  input         io_enq_0_bits_is_fcsr,
  input         io_enq_0_bits_is_xcmm,
  input         io_enq_0_bits_privil_ecall,
  input         io_enq_0_bits_privil_ebreak,
  input         io_enq_0_bits_privil_mret,
  input         io_enq_0_bits_privil_sret,
  input         io_enq_0_bits_privil_dret,
  input         io_enq_0_bits_privil_is_access_fault,
  input         io_enq_0_bits_privil_is_paging_fault,
  input         io_enq_0_bits_is_illeage,
  input         io_deq_0_ready,
  output        io_deq_0_valid,
  output [38:0] io_deq_0_bits_pc,
  output [4:0]  io_deq_0_bits_rd0_raw,
  output [5:0]  io_deq_0_bits_rd0_phy,
  output        io_deq_0_bits_is_branch,
  output        io_deq_0_bits_is_jalr,
  output        io_deq_0_bits_is_lu,
  output        io_deq_0_bits_is_su,
  output        io_deq_0_bits_is_amo,
  output        io_deq_0_bits_is_fence_i,
  output        io_deq_0_bits_is_sfence_vma,
  output        io_deq_0_bits_is_wfi,
  output        io_deq_0_bits_is_csr,
  output        io_deq_0_bits_is_fpu,
  output        io_deq_0_bits_is_fcsr,
  output        io_deq_0_bits_is_xcmm,
  output        io_deq_0_bits_privil_ecall,
  output        io_deq_0_bits_privil_ebreak,
  output        io_deq_0_bits_privil_mret,
  output        io_deq_0_bits_privil_sret,
  output        io_deq_0_bits_privil_dret,
  output        io_deq_0_bits_privil_is_access_fault,
  output        io_deq_0_bits_privil_is_paging_fault,
  output        io_deq_0_bits_is_illeage
);
`ifdef RANDOMIZE_REG_INIT
  reg [63:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [63:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
  reg [31:0] _RAND_33;
  reg [31:0] _RAND_34;
  reg [31:0] _RAND_35;
  reg [31:0] _RAND_36;
  reg [31:0] _RAND_37;
  reg [31:0] _RAND_38;
  reg [31:0] _RAND_39;
  reg [31:0] _RAND_40;
  reg [31:0] _RAND_41;
  reg [31:0] _RAND_42;
  reg [31:0] _RAND_43;
  reg [31:0] _RAND_44;
  reg [31:0] _RAND_45;
  reg [31:0] _RAND_46;
  reg [31:0] _RAND_47;
  reg [31:0] _RAND_48;
  reg [31:0] _RAND_49;
`endif // RANDOMIZE_REG_INIT
  reg [38:0] buf_0_pc; // @[MultiPortFifo.scala 57:20]
  reg [4:0] buf_0_rd0_raw; // @[MultiPortFifo.scala 57:20]
  reg [5:0] buf_0_rd0_phy; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_is_branch; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_is_jalr; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_is_lu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_is_su; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_is_amo; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_is_fence_i; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_is_sfence_vma; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_is_wfi; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_is_csr; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_is_fpu; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_is_fcsr; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_is_xcmm; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_ecall; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_ebreak; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_mret; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_sret; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_dret; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_is_access_fault; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_privil_is_paging_fault; // @[MultiPortFifo.scala 57:20]
  reg  buf_0_is_illeage; // @[MultiPortFifo.scala 57:20]
  reg [38:0] buf_1_pc; // @[MultiPortFifo.scala 57:20]
  reg [4:0] buf_1_rd0_raw; // @[MultiPortFifo.scala 57:20]
  reg [5:0] buf_1_rd0_phy; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_is_branch; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_is_jalr; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_is_lu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_is_su; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_is_amo; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_is_fence_i; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_is_sfence_vma; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_is_wfi; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_is_csr; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_is_fpu; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_is_fcsr; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_is_xcmm; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_ecall; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_ebreak; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_mret; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_sret; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_dret; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_is_access_fault; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_privil_is_paging_fault; // @[MultiPortFifo.scala 57:20]
  reg  buf_1_is_illeage; // @[MultiPortFifo.scala 57:20]
  reg  buf_valid_0; // @[MultiPortFifo.scala 58:30]
  reg  buf_valid_1; // @[MultiPortFifo.scala 58:30]
  reg  rd_ptr; // @[MultiPortFifo.scala 60:27]
  reg  wr_ptr; // @[MultiPortFifo.scala 61:27]
  wire [1:0] _io_enq_0_ready_T = {{1'd0}, wr_ptr}; // @[MultiPortFifo.scala 64:78]
  wire  _GEN_1 = _io_enq_0_ready_T[0] ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 64:{94,94}]
  wire [1:0] _io_deq_0_valid_T = {{1'd0}, rd_ptr}; // @[MultiPortFifo.scala 65:78]
  wire  _T = io_enq_0_ready & io_enq_0_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_6 = _T ? ~_io_enq_0_ready_T[0] | buf_valid_0 : buf_valid_0; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _GEN_7 = _T ? _io_enq_0_ready_T[0] | buf_valid_1 : buf_valid_1; // @[MultiPortFifo.scala 58:30 97:34]
  wire  _T_1 = io_deq_0_ready & io_deq_0_valid; // @[Decoupled.scala 52:35]
  wire  _rd_ptr_T_2 = rd_ptr + _T_1; // @[MultiPortFifo.scala 106:26]
  wire  _wr_ptr_T_2 = wr_ptr + _T; // @[MultiPortFifo.scala 107:26]
  wire  _T_9 = ~reset; // @[MultiPortFifo.scala 161:13]
  assign io_enq_0_ready = ~_GEN_1; // @[MultiPortFifo.scala 64:94]
  assign io_deq_0_valid = _io_deq_0_valid_T[0] ? buf_valid_1 : buf_valid_0; // @[MultiPortFifo.scala 65:{94,94}]
  assign io_deq_0_bits_pc = _io_deq_0_valid_T[0] ? buf_1_pc : buf_0_pc; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_rd0_raw = _io_deq_0_valid_T[0] ? buf_1_rd0_raw : buf_0_rd0_raw; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_rd0_phy = _io_deq_0_valid_T[0] ? buf_1_rd0_phy : buf_0_rd0_phy; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_is_branch = _io_deq_0_valid_T[0] ? buf_1_is_branch : buf_0_is_branch; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_is_jalr = _io_deq_0_valid_T[0] ? buf_1_is_jalr : buf_0_is_jalr; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_is_lu = _io_deq_0_valid_T[0] ? buf_1_is_lu : buf_0_is_lu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_is_su = _io_deq_0_valid_T[0] ? buf_1_is_su : buf_0_is_su; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_is_amo = _io_deq_0_valid_T[0] ? buf_1_is_amo : buf_0_is_amo; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_is_fence_i = _io_deq_0_valid_T[0] ? buf_1_is_fence_i : buf_0_is_fence_i; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_is_sfence_vma = _io_deq_0_valid_T[0] ? buf_1_is_sfence_vma : buf_0_is_sfence_vma; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_is_wfi = _io_deq_0_valid_T[0] ? buf_1_is_wfi : buf_0_is_wfi; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_is_csr = _io_deq_0_valid_T[0] ? buf_1_is_csr : buf_0_is_csr; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_is_fpu = _io_deq_0_valid_T[0] ? buf_1_is_fpu : buf_0_is_fpu; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_is_fcsr = _io_deq_0_valid_T[0] ? buf_1_is_fcsr : buf_0_is_fcsr; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_is_xcmm = _io_deq_0_valid_T[0] ? buf_1_is_xcmm : buf_0_is_xcmm; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_ecall = _io_deq_0_valid_T[0] ? buf_1_privil_ecall : buf_0_privil_ecall; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_ebreak = _io_deq_0_valid_T[0] ? buf_1_privil_ebreak : buf_0_privil_ebreak; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_mret = _io_deq_0_valid_T[0] ? buf_1_privil_mret : buf_0_privil_mret; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_sret = _io_deq_0_valid_T[0] ? buf_1_privil_sret : buf_0_privil_sret; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_dret = _io_deq_0_valid_T[0] ? buf_1_privil_dret : buf_0_privil_dret; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_is_access_fault = _io_deq_0_valid_T[0] ? buf_1_privil_is_access_fault :
    buf_0_privil_is_access_fault; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_privil_is_paging_fault = _io_deq_0_valid_T[0] ? buf_1_privil_is_paging_fault :
    buf_0_privil_is_paging_fault; // @[MultiPortFifo.scala 114:{14,14}]
  assign io_deq_0_bits_is_illeage = _io_deq_0_valid_T[0] ? buf_1_is_illeage : buf_0_is_illeage; // @[MultiPortFifo.scala 114:{14,14}]
  always @(posedge clock) begin
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_pc <= io_enq_0_bits_pc;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_pc <= buf_1_pc; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_rd0_raw <= io_enq_0_bits_rd0_raw;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_rd0_raw <= buf_1_rd0_raw; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_rd0_phy <= io_enq_0_bits_rd0_phy;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_rd0_phy <= buf_1_rd0_phy; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_branch <= io_enq_0_bits_is_branch;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_branch <= buf_1_is_branch; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_jalr <= io_enq_0_bits_is_jalr;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_jalr <= buf_1_is_jalr; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_lu <= io_enq_0_bits_is_lu;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_lu <= buf_1_is_lu; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_su <= io_enq_0_bits_is_su;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_su <= buf_1_is_su; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_amo <= io_enq_0_bits_is_amo;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_amo <= buf_1_is_amo; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_fence_i <= io_enq_0_bits_is_fence_i;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_fence_i <= buf_1_is_fence_i; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_sfence_vma <= io_enq_0_bits_is_sfence_vma;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_sfence_vma <= buf_1_is_sfence_vma; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_wfi <= io_enq_0_bits_is_wfi;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_wfi <= buf_1_is_wfi; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_csr <= io_enq_0_bits_is_csr;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_csr <= buf_1_is_csr; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_fpu <= io_enq_0_bits_is_fpu;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_fpu <= buf_1_is_fpu; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_fcsr <= io_enq_0_bits_is_fcsr;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_fcsr <= buf_1_is_fcsr; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_xcmm <= io_enq_0_bits_is_xcmm;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_xcmm <= buf_1_is_xcmm; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_privil_ecall <= io_enq_0_bits_privil_ecall;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_privil_ecall <= buf_1_privil_ecall; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_privil_ebreak <= io_enq_0_bits_privil_ebreak;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_privil_ebreak <= buf_1_privil_ebreak; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_privil_mret <= io_enq_0_bits_privil_mret;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_privil_mret <= buf_1_privil_mret; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_privil_sret <= io_enq_0_bits_privil_sret;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_privil_sret <= buf_1_privil_sret; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_privil_dret <= io_enq_0_bits_privil_dret;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_privil_dret <= buf_1_privil_dret; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_privil_is_access_fault <= io_enq_0_bits_privil_is_access_fault;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_privil_is_access_fault <= buf_1_privil_is_access_fault; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_privil_is_paging_fault <= io_enq_0_bits_privil_is_paging_fault;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_privil_is_paging_fault <= buf_1_privil_is_paging_fault; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (~_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_illeage <= io_enq_0_bits_is_illeage;
      end else if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:33]
        buf_0_is_illeage <= buf_1_is_illeage; // @[MultiPortFifo.scala 101:33]
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_pc <= io_enq_0_bits_pc;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_pc <= buf_0_pc;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_rd0_raw <= io_enq_0_bits_rd0_raw;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_rd0_raw <= buf_0_rd0_raw;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_rd0_phy <= io_enq_0_bits_rd0_phy;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_rd0_phy <= buf_0_rd0_phy;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_branch <= io_enq_0_bits_is_branch;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_branch <= buf_0_is_branch;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_jalr <= io_enq_0_bits_is_jalr;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_jalr <= buf_0_is_jalr;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_lu <= io_enq_0_bits_is_lu;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_lu <= buf_0_is_lu;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_su <= io_enq_0_bits_is_su;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_su <= buf_0_is_su;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_amo <= io_enq_0_bits_is_amo;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_amo <= buf_0_is_amo;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_fence_i <= io_enq_0_bits_is_fence_i;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_fence_i <= buf_0_is_fence_i;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_sfence_vma <= io_enq_0_bits_is_sfence_vma;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_sfence_vma <= buf_0_is_sfence_vma;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_wfi <= io_enq_0_bits_is_wfi;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_wfi <= buf_0_is_wfi;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_csr <= io_enq_0_bits_is_csr;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_csr <= buf_0_is_csr;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_fpu <= io_enq_0_bits_is_fpu;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_fpu <= buf_0_is_fpu;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_fcsr <= io_enq_0_bits_is_fcsr;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_fcsr <= buf_0_is_fcsr;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_xcmm <= io_enq_0_bits_is_xcmm;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_xcmm <= buf_0_is_xcmm;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_privil_ecall <= io_enq_0_bits_privil_ecall;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_privil_ecall <= buf_0_privil_ecall;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_privil_ebreak <= io_enq_0_bits_privil_ebreak;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_privil_ebreak <= buf_0_privil_ebreak;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_privil_mret <= io_enq_0_bits_privil_mret;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_privil_mret <= buf_0_privil_mret;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_privil_sret <= io_enq_0_bits_privil_sret;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_privil_sret <= buf_0_privil_sret;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_privil_dret <= io_enq_0_bits_privil_dret;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_privil_dret <= buf_0_privil_dret;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_privil_is_access_fault <= io_enq_0_bits_privil_is_access_fault;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_privil_is_access_fault <= buf_0_privil_is_access_fault;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_privil_is_paging_fault <= io_enq_0_bits_privil_is_paging_fault;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_privil_is_paging_fault <= buf_0_privil_is_paging_fault;
      end
    end
    if (_io_enq_0_ready_T[0]) begin // @[MultiPortFifo.scala 101:27]
      if (_T) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_illeage <= io_enq_0_bits_is_illeage;
      end else if (!(_io_enq_0_ready_T[0])) begin // @[MultiPortFifo.scala 101:33]
        buf_1_is_illeage <= buf_0_is_illeage;
      end
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (_T_1) begin // @[MultiPortFifo.scala 98:34]
      if (~_io_deq_0_valid_T[0]) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_0 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_0 <= _GEN_6;
      end
    end else begin
      buf_valid_0 <= _GEN_6;
    end
    if (reset) begin // @[MultiPortFifo.scala 58:30]
      buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 58:30]
    end else if (_T_1) begin // @[MultiPortFifo.scala 98:34]
      if (_io_deq_0_valid_T[0]) begin // @[MultiPortFifo.scala 98:57]
        buf_valid_1 <= 1'h0; // @[MultiPortFifo.scala 98:57]
      end else begin
        buf_valid_1 <= _GEN_7;
      end
    end else begin
      buf_valid_1 <= _GEN_7;
    end
    if (reset) begin // @[MultiPortFifo.scala 60:27]
      rd_ptr <= 1'h0; // @[MultiPortFifo.scala 60:27]
    end else begin
      rd_ptr <= _rd_ptr_T_2;
    end
    if (reset) begin // @[MultiPortFifo.scala 61:27]
      wr_ptr <= 1'h0; // @[MultiPortFifo.scala 61:27]
    end else begin
      wr_ptr <= _wr_ptr_T_2;
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(io_enq_0_valid & ~io_enq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! in port illegal\n    at MultiPortFifo.scala:161 assert( !(io.enq(i).valid === true.B && io.enq(j).valid === false.B && i.U >= j.U), \"Assert Fail! in port illegal\")\n"
            ); // @[MultiPortFifo.scala 161:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_enq_0_valid & ~io_enq_0_valid)) & ~reset) begin
          $fatal; // @[MultiPortFifo.scala 161:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_9 & ~(~(io_deq_0_valid & ~io_deq_0_valid))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail! out port illegal\n    at MultiPortFifo.scala:164 assert( !(io.deq(i).valid === true.B && io.deq(j).valid === false.B && i.U >= j.U), \"Assert Fail! out port illegal\")\n"
            ); // @[MultiPortFifo.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_deq_0_valid & ~io_deq_0_valid)) & _T_9) begin
          $fatal; // @[MultiPortFifo.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {2{`RANDOM}};
  buf_0_pc = _RAND_0[38:0];
  _RAND_1 = {1{`RANDOM}};
  buf_0_rd0_raw = _RAND_1[4:0];
  _RAND_2 = {1{`RANDOM}};
  buf_0_rd0_phy = _RAND_2[5:0];
  _RAND_3 = {1{`RANDOM}};
  buf_0_is_branch = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  buf_0_is_jalr = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  buf_0_is_lu = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  buf_0_is_su = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  buf_0_is_amo = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  buf_0_is_fence_i = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  buf_0_is_sfence_vma = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  buf_0_is_wfi = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  buf_0_is_csr = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  buf_0_is_fpu = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  buf_0_is_fcsr = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  buf_0_is_xcmm = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  buf_0_privil_ecall = _RAND_15[0:0];
  _RAND_16 = {1{`RANDOM}};
  buf_0_privil_ebreak = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  buf_0_privil_mret = _RAND_17[0:0];
  _RAND_18 = {1{`RANDOM}};
  buf_0_privil_sret = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  buf_0_privil_dret = _RAND_19[0:0];
  _RAND_20 = {1{`RANDOM}};
  buf_0_privil_is_access_fault = _RAND_20[0:0];
  _RAND_21 = {1{`RANDOM}};
  buf_0_privil_is_paging_fault = _RAND_21[0:0];
  _RAND_22 = {1{`RANDOM}};
  buf_0_is_illeage = _RAND_22[0:0];
  _RAND_23 = {2{`RANDOM}};
  buf_1_pc = _RAND_23[38:0];
  _RAND_24 = {1{`RANDOM}};
  buf_1_rd0_raw = _RAND_24[4:0];
  _RAND_25 = {1{`RANDOM}};
  buf_1_rd0_phy = _RAND_25[5:0];
  _RAND_26 = {1{`RANDOM}};
  buf_1_is_branch = _RAND_26[0:0];
  _RAND_27 = {1{`RANDOM}};
  buf_1_is_jalr = _RAND_27[0:0];
  _RAND_28 = {1{`RANDOM}};
  buf_1_is_lu = _RAND_28[0:0];
  _RAND_29 = {1{`RANDOM}};
  buf_1_is_su = _RAND_29[0:0];
  _RAND_30 = {1{`RANDOM}};
  buf_1_is_amo = _RAND_30[0:0];
  _RAND_31 = {1{`RANDOM}};
  buf_1_is_fence_i = _RAND_31[0:0];
  _RAND_32 = {1{`RANDOM}};
  buf_1_is_sfence_vma = _RAND_32[0:0];
  _RAND_33 = {1{`RANDOM}};
  buf_1_is_wfi = _RAND_33[0:0];
  _RAND_34 = {1{`RANDOM}};
  buf_1_is_csr = _RAND_34[0:0];
  _RAND_35 = {1{`RANDOM}};
  buf_1_is_fpu = _RAND_35[0:0];
  _RAND_36 = {1{`RANDOM}};
  buf_1_is_fcsr = _RAND_36[0:0];
  _RAND_37 = {1{`RANDOM}};
  buf_1_is_xcmm = _RAND_37[0:0];
  _RAND_38 = {1{`RANDOM}};
  buf_1_privil_ecall = _RAND_38[0:0];
  _RAND_39 = {1{`RANDOM}};
  buf_1_privil_ebreak = _RAND_39[0:0];
  _RAND_40 = {1{`RANDOM}};
  buf_1_privil_mret = _RAND_40[0:0];
  _RAND_41 = {1{`RANDOM}};
  buf_1_privil_sret = _RAND_41[0:0];
  _RAND_42 = {1{`RANDOM}};
  buf_1_privil_dret = _RAND_42[0:0];
  _RAND_43 = {1{`RANDOM}};
  buf_1_privil_is_access_fault = _RAND_43[0:0];
  _RAND_44 = {1{`RANDOM}};
  buf_1_privil_is_paging_fault = _RAND_44[0:0];
  _RAND_45 = {1{`RANDOM}};
  buf_1_is_illeage = _RAND_45[0:0];
  _RAND_46 = {1{`RANDOM}};
  buf_valid_0 = _RAND_46[0:0];
  _RAND_47 = {1{`RANDOM}};
  buf_valid_1 = _RAND_47[0:0];
  _RAND_48 = {1{`RANDOM}};
  rd_ptr = _RAND_48[0:0];
  _RAND_49 = {1{`RANDOM}};
  wr_ptr = _RAND_49[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Rename(
  input         clock,
  input         reset,
  output        io_rnReq_0_ready,
  input         io_rnReq_0_valid,
  input         io_rnReq_0_bits_alu_isa_lui,
  input         io_rnReq_0_bits_alu_isa_auipc,
  input         io_rnReq_0_bits_alu_isa_addi,
  input         io_rnReq_0_bits_alu_isa_addiw,
  input         io_rnReq_0_bits_alu_isa_slti,
  input         io_rnReq_0_bits_alu_isa_sltiu,
  input         io_rnReq_0_bits_alu_isa_xori,
  input         io_rnReq_0_bits_alu_isa_ori,
  input         io_rnReq_0_bits_alu_isa_andi,
  input         io_rnReq_0_bits_alu_isa_slli,
  input         io_rnReq_0_bits_alu_isa_slliw,
  input         io_rnReq_0_bits_alu_isa_srli,
  input         io_rnReq_0_bits_alu_isa_srliw,
  input         io_rnReq_0_bits_alu_isa_srai,
  input         io_rnReq_0_bits_alu_isa_sraiw,
  input         io_rnReq_0_bits_alu_isa_add,
  input         io_rnReq_0_bits_alu_isa_addw,
  input         io_rnReq_0_bits_alu_isa_sub,
  input         io_rnReq_0_bits_alu_isa_subw,
  input         io_rnReq_0_bits_alu_isa_sll,
  input         io_rnReq_0_bits_alu_isa_sllw,
  input         io_rnReq_0_bits_alu_isa_slt,
  input         io_rnReq_0_bits_alu_isa_sltu,
  input         io_rnReq_0_bits_alu_isa_xor,
  input         io_rnReq_0_bits_alu_isa_srl,
  input         io_rnReq_0_bits_alu_isa_srlw,
  input         io_rnReq_0_bits_alu_isa_sra,
  input         io_rnReq_0_bits_alu_isa_sraw,
  input         io_rnReq_0_bits_alu_isa_or,
  input         io_rnReq_0_bits_alu_isa_and,
  input         io_rnReq_0_bits_alu_isa_wfi,
  input         io_rnReq_0_bits_bru_isa_jal,
  input         io_rnReq_0_bits_bru_isa_jalr,
  input         io_rnReq_0_bits_bru_isa_beq,
  input         io_rnReq_0_bits_bru_isa_bne,
  input         io_rnReq_0_bits_bru_isa_blt,
  input         io_rnReq_0_bits_bru_isa_bge,
  input         io_rnReq_0_bits_bru_isa_bltu,
  input         io_rnReq_0_bits_bru_isa_bgeu,
  input         io_rnReq_0_bits_lsu_isa_lb,
  input         io_rnReq_0_bits_lsu_isa_lh,
  input         io_rnReq_0_bits_lsu_isa_lw,
  input         io_rnReq_0_bits_lsu_isa_ld,
  input         io_rnReq_0_bits_lsu_isa_lbu,
  input         io_rnReq_0_bits_lsu_isa_lhu,
  input         io_rnReq_0_bits_lsu_isa_lwu,
  input         io_rnReq_0_bits_lsu_isa_sb,
  input         io_rnReq_0_bits_lsu_isa_sh,
  input         io_rnReq_0_bits_lsu_isa_sw,
  input         io_rnReq_0_bits_lsu_isa_sd,
  input         io_rnReq_0_bits_lsu_isa_fence,
  input         io_rnReq_0_bits_lsu_isa_fence_i,
  input         io_rnReq_0_bits_lsu_isa_sfence_vma,
  input         io_rnReq_0_bits_lsu_isa_lr_w,
  input         io_rnReq_0_bits_lsu_isa_sc_w,
  input         io_rnReq_0_bits_lsu_isa_amoswap_w,
  input         io_rnReq_0_bits_lsu_isa_amoadd_w,
  input         io_rnReq_0_bits_lsu_isa_amoxor_w,
  input         io_rnReq_0_bits_lsu_isa_amoand_w,
  input         io_rnReq_0_bits_lsu_isa_amoor_w,
  input         io_rnReq_0_bits_lsu_isa_amomin_w,
  input         io_rnReq_0_bits_lsu_isa_amomax_w,
  input         io_rnReq_0_bits_lsu_isa_amominu_w,
  input         io_rnReq_0_bits_lsu_isa_amomaxu_w,
  input         io_rnReq_0_bits_lsu_isa_lr_d,
  input         io_rnReq_0_bits_lsu_isa_sc_d,
  input         io_rnReq_0_bits_lsu_isa_amoswap_d,
  input         io_rnReq_0_bits_lsu_isa_amoadd_d,
  input         io_rnReq_0_bits_lsu_isa_amoxor_d,
  input         io_rnReq_0_bits_lsu_isa_amoand_d,
  input         io_rnReq_0_bits_lsu_isa_amoor_d,
  input         io_rnReq_0_bits_lsu_isa_amomin_d,
  input         io_rnReq_0_bits_lsu_isa_amomax_d,
  input         io_rnReq_0_bits_lsu_isa_amominu_d,
  input         io_rnReq_0_bits_lsu_isa_amomaxu_d,
  input         io_rnReq_0_bits_lsu_isa_flw,
  input         io_rnReq_0_bits_lsu_isa_fsw,
  input         io_rnReq_0_bits_lsu_isa_fld,
  input         io_rnReq_0_bits_lsu_isa_fsd,
  input         io_rnReq_0_bits_csr_isa_rw,
  input         io_rnReq_0_bits_csr_isa_rs,
  input         io_rnReq_0_bits_csr_isa_rc,
  input         io_rnReq_0_bits_csr_isa_rwi,
  input         io_rnReq_0_bits_csr_isa_rsi,
  input         io_rnReq_0_bits_csr_isa_rci,
  input         io_rnReq_0_bits_mul_isa_mul,
  input         io_rnReq_0_bits_mul_isa_mulh,
  input         io_rnReq_0_bits_mul_isa_mulhsu,
  input         io_rnReq_0_bits_mul_isa_mulhu,
  input         io_rnReq_0_bits_mul_isa_div,
  input         io_rnReq_0_bits_mul_isa_divu,
  input         io_rnReq_0_bits_mul_isa_rem,
  input         io_rnReq_0_bits_mul_isa_remu,
  input         io_rnReq_0_bits_mul_isa_mulw,
  input         io_rnReq_0_bits_mul_isa_divw,
  input         io_rnReq_0_bits_mul_isa_divuw,
  input         io_rnReq_0_bits_mul_isa_remw,
  input         io_rnReq_0_bits_mul_isa_remuw,
  input         io_rnReq_0_bits_privil_isa_ecall,
  input         io_rnReq_0_bits_privil_isa_ebreak,
  input         io_rnReq_0_bits_privil_isa_mret,
  input         io_rnReq_0_bits_privil_isa_uret,
  input         io_rnReq_0_bits_privil_isa_sret,
  input         io_rnReq_0_bits_privil_isa_dret,
  input         io_rnReq_0_bits_privil_isa_hfence_vvma,
  input         io_rnReq_0_bits_privil_isa_hfence_gvma,
  input         io_rnReq_0_bits_privil_isa_hlv_b,
  input         io_rnReq_0_bits_privil_isa_hlv_bu,
  input         io_rnReq_0_bits_privil_isa_hlv_h,
  input         io_rnReq_0_bits_privil_isa_hlv_hu,
  input         io_rnReq_0_bits_privil_isa_hlvx_hu,
  input         io_rnReq_0_bits_privil_isa_hlv_w,
  input         io_rnReq_0_bits_privil_isa_hlvx_wu,
  input         io_rnReq_0_bits_privil_isa_hsv_b,
  input         io_rnReq_0_bits_privil_isa_hsv_h,
  input         io_rnReq_0_bits_privil_isa_hsv_w,
  input         io_rnReq_0_bits_privil_isa_hlv_wu,
  input         io_rnReq_0_bits_privil_isa_hlv_d,
  input         io_rnReq_0_bits_privil_isa_hsv_d,
  input         io_rnReq_0_bits_privil_isa_is_access_fault,
  input         io_rnReq_0_bits_privil_isa_is_paging_fault,
  input         io_rnReq_0_bits_fpu_isa_fmadd_s,
  input         io_rnReq_0_bits_fpu_isa_fmsub_s,
  input         io_rnReq_0_bits_fpu_isa_fnmsub_s,
  input         io_rnReq_0_bits_fpu_isa_fnmadd_s,
  input         io_rnReq_0_bits_fpu_isa_fadd_s,
  input         io_rnReq_0_bits_fpu_isa_fsub_s,
  input         io_rnReq_0_bits_fpu_isa_fmul_s,
  input         io_rnReq_0_bits_fpu_isa_fdiv_s,
  input         io_rnReq_0_bits_fpu_isa_fsqrt_s,
  input         io_rnReq_0_bits_fpu_isa_fsgnj_s,
  input         io_rnReq_0_bits_fpu_isa_fsgnjn_s,
  input         io_rnReq_0_bits_fpu_isa_fsgnjx_s,
  input         io_rnReq_0_bits_fpu_isa_fmin_s,
  input         io_rnReq_0_bits_fpu_isa_fmax_s,
  input         io_rnReq_0_bits_fpu_isa_fcvt_w_s,
  input         io_rnReq_0_bits_fpu_isa_fcvt_wu_s,
  input         io_rnReq_0_bits_fpu_isa_fmv_x_w,
  input         io_rnReq_0_bits_fpu_isa_feq_s,
  input         io_rnReq_0_bits_fpu_isa_flt_s,
  input         io_rnReq_0_bits_fpu_isa_fle_s,
  input         io_rnReq_0_bits_fpu_isa_fclass_s,
  input         io_rnReq_0_bits_fpu_isa_fcvt_s_w,
  input         io_rnReq_0_bits_fpu_isa_fcvt_s_wu,
  input         io_rnReq_0_bits_fpu_isa_fmv_w_x,
  input         io_rnReq_0_bits_fpu_isa_fcvt_l_s,
  input         io_rnReq_0_bits_fpu_isa_fcvt_lu_s,
  input         io_rnReq_0_bits_fpu_isa_fcvt_s_l,
  input         io_rnReq_0_bits_fpu_isa_fcvt_s_lu,
  input         io_rnReq_0_bits_fpu_isa_fmadd_d,
  input         io_rnReq_0_bits_fpu_isa_fmsub_d,
  input         io_rnReq_0_bits_fpu_isa_fnmsub_d,
  input         io_rnReq_0_bits_fpu_isa_fnmadd_d,
  input         io_rnReq_0_bits_fpu_isa_fadd_d,
  input         io_rnReq_0_bits_fpu_isa_fsub_d,
  input         io_rnReq_0_bits_fpu_isa_fmul_d,
  input         io_rnReq_0_bits_fpu_isa_fdiv_d,
  input         io_rnReq_0_bits_fpu_isa_fsqrt_d,
  input         io_rnReq_0_bits_fpu_isa_fsgnj_d,
  input         io_rnReq_0_bits_fpu_isa_fsgnjn_d,
  input         io_rnReq_0_bits_fpu_isa_fsgnjx_d,
  input         io_rnReq_0_bits_fpu_isa_fmin_d,
  input         io_rnReq_0_bits_fpu_isa_fmax_d,
  input         io_rnReq_0_bits_fpu_isa_fcvt_s_d,
  input         io_rnReq_0_bits_fpu_isa_fcvt_d_s,
  input         io_rnReq_0_bits_fpu_isa_feq_d,
  input         io_rnReq_0_bits_fpu_isa_flt_d,
  input         io_rnReq_0_bits_fpu_isa_fle_d,
  input         io_rnReq_0_bits_fpu_isa_fclass_d,
  input         io_rnReq_0_bits_fpu_isa_fcvt_w_d,
  input         io_rnReq_0_bits_fpu_isa_fcvt_wu_d,
  input         io_rnReq_0_bits_fpu_isa_fcvt_d_w,
  input         io_rnReq_0_bits_fpu_isa_fcvt_d_wu,
  input         io_rnReq_0_bits_fpu_isa_fcvt_l_d,
  input         io_rnReq_0_bits_fpu_isa_fcvt_lu_d,
  input         io_rnReq_0_bits_fpu_isa_fmv_x_d,
  input         io_rnReq_0_bits_fpu_isa_fcvt_d_l,
  input         io_rnReq_0_bits_fpu_isa_fcvt_d_lu,
  input         io_rnReq_0_bits_fpu_isa_fmv_d_x,
  input         io_rnReq_0_bits_fpu_isa_fcsr_rw,
  input         io_rnReq_0_bits_fpu_isa_fcsr_rs,
  input         io_rnReq_0_bits_fpu_isa_fcsr_rc,
  input         io_rnReq_0_bits_fpu_isa_fcsr_rwi,
  input         io_rnReq_0_bits_fpu_isa_fcsr_rsi,
  input         io_rnReq_0_bits_fpu_isa_fcsr_rci,
  input         io_rnReq_0_bits_param_is_rvc,
  input  [38:0] io_rnReq_0_bits_param_pc,
  input  [63:0] io_rnReq_0_bits_param_imm,
  input  [4:0]  io_rnReq_0_bits_param_raw_rs1,
  input  [4:0]  io_rnReq_0_bits_param_raw_rs2,
  input  [4:0]  io_rnReq_0_bits_param_raw_rd0,
  output        io_rnRsp_0_valid,
  output        io_rnRsp_0_bits_alu_isa_lui,
  output        io_rnRsp_0_bits_alu_isa_auipc,
  output        io_rnRsp_0_bits_alu_isa_addi,
  output        io_rnRsp_0_bits_alu_isa_addiw,
  output        io_rnRsp_0_bits_alu_isa_slti,
  output        io_rnRsp_0_bits_alu_isa_sltiu,
  output        io_rnRsp_0_bits_alu_isa_xori,
  output        io_rnRsp_0_bits_alu_isa_ori,
  output        io_rnRsp_0_bits_alu_isa_andi,
  output        io_rnRsp_0_bits_alu_isa_slli,
  output        io_rnRsp_0_bits_alu_isa_slliw,
  output        io_rnRsp_0_bits_alu_isa_srli,
  output        io_rnRsp_0_bits_alu_isa_srliw,
  output        io_rnRsp_0_bits_alu_isa_srai,
  output        io_rnRsp_0_bits_alu_isa_sraiw,
  output        io_rnRsp_0_bits_alu_isa_add,
  output        io_rnRsp_0_bits_alu_isa_addw,
  output        io_rnRsp_0_bits_alu_isa_sub,
  output        io_rnRsp_0_bits_alu_isa_subw,
  output        io_rnRsp_0_bits_alu_isa_sll,
  output        io_rnRsp_0_bits_alu_isa_sllw,
  output        io_rnRsp_0_bits_alu_isa_slt,
  output        io_rnRsp_0_bits_alu_isa_sltu,
  output        io_rnRsp_0_bits_alu_isa_xor,
  output        io_rnRsp_0_bits_alu_isa_srl,
  output        io_rnRsp_0_bits_alu_isa_srlw,
  output        io_rnRsp_0_bits_alu_isa_sra,
  output        io_rnRsp_0_bits_alu_isa_sraw,
  output        io_rnRsp_0_bits_alu_isa_or,
  output        io_rnRsp_0_bits_alu_isa_and,
  output        io_rnRsp_0_bits_alu_isa_wfi,
  output        io_rnRsp_0_bits_bru_isa_jal,
  output        io_rnRsp_0_bits_bru_isa_jalr,
  output        io_rnRsp_0_bits_bru_isa_beq,
  output        io_rnRsp_0_bits_bru_isa_bne,
  output        io_rnRsp_0_bits_bru_isa_blt,
  output        io_rnRsp_0_bits_bru_isa_bge,
  output        io_rnRsp_0_bits_bru_isa_bltu,
  output        io_rnRsp_0_bits_bru_isa_bgeu,
  output        io_rnRsp_0_bits_lsu_isa_lb,
  output        io_rnRsp_0_bits_lsu_isa_lh,
  output        io_rnRsp_0_bits_lsu_isa_lw,
  output        io_rnRsp_0_bits_lsu_isa_ld,
  output        io_rnRsp_0_bits_lsu_isa_lbu,
  output        io_rnRsp_0_bits_lsu_isa_lhu,
  output        io_rnRsp_0_bits_lsu_isa_lwu,
  output        io_rnRsp_0_bits_lsu_isa_sb,
  output        io_rnRsp_0_bits_lsu_isa_sh,
  output        io_rnRsp_0_bits_lsu_isa_sw,
  output        io_rnRsp_0_bits_lsu_isa_sd,
  output        io_rnRsp_0_bits_lsu_isa_fence,
  output        io_rnRsp_0_bits_lsu_isa_fence_i,
  output        io_rnRsp_0_bits_lsu_isa_sfence_vma,
  output        io_rnRsp_0_bits_lsu_isa_lr_w,
  output        io_rnRsp_0_bits_lsu_isa_sc_w,
  output        io_rnRsp_0_bits_lsu_isa_amoswap_w,
  output        io_rnRsp_0_bits_lsu_isa_amoadd_w,
  output        io_rnRsp_0_bits_lsu_isa_amoxor_w,
  output        io_rnRsp_0_bits_lsu_isa_amoand_w,
  output        io_rnRsp_0_bits_lsu_isa_amoor_w,
  output        io_rnRsp_0_bits_lsu_isa_amomin_w,
  output        io_rnRsp_0_bits_lsu_isa_amomax_w,
  output        io_rnRsp_0_bits_lsu_isa_amominu_w,
  output        io_rnRsp_0_bits_lsu_isa_amomaxu_w,
  output        io_rnRsp_0_bits_lsu_isa_lr_d,
  output        io_rnRsp_0_bits_lsu_isa_sc_d,
  output        io_rnRsp_0_bits_lsu_isa_amoswap_d,
  output        io_rnRsp_0_bits_lsu_isa_amoadd_d,
  output        io_rnRsp_0_bits_lsu_isa_amoxor_d,
  output        io_rnRsp_0_bits_lsu_isa_amoand_d,
  output        io_rnRsp_0_bits_lsu_isa_amoor_d,
  output        io_rnRsp_0_bits_lsu_isa_amomin_d,
  output        io_rnRsp_0_bits_lsu_isa_amomax_d,
  output        io_rnRsp_0_bits_lsu_isa_amominu_d,
  output        io_rnRsp_0_bits_lsu_isa_amomaxu_d,
  output        io_rnRsp_0_bits_lsu_isa_flw,
  output        io_rnRsp_0_bits_lsu_isa_fsw,
  output        io_rnRsp_0_bits_lsu_isa_fld,
  output        io_rnRsp_0_bits_lsu_isa_fsd,
  output        io_rnRsp_0_bits_csr_isa_rw,
  output        io_rnRsp_0_bits_csr_isa_rs,
  output        io_rnRsp_0_bits_csr_isa_rc,
  output        io_rnRsp_0_bits_csr_isa_rwi,
  output        io_rnRsp_0_bits_csr_isa_rsi,
  output        io_rnRsp_0_bits_csr_isa_rci,
  output        io_rnRsp_0_bits_mul_isa_mul,
  output        io_rnRsp_0_bits_mul_isa_mulh,
  output        io_rnRsp_0_bits_mul_isa_mulhsu,
  output        io_rnRsp_0_bits_mul_isa_mulhu,
  output        io_rnRsp_0_bits_mul_isa_div,
  output        io_rnRsp_0_bits_mul_isa_divu,
  output        io_rnRsp_0_bits_mul_isa_rem,
  output        io_rnRsp_0_bits_mul_isa_remu,
  output        io_rnRsp_0_bits_mul_isa_mulw,
  output        io_rnRsp_0_bits_mul_isa_divw,
  output        io_rnRsp_0_bits_mul_isa_divuw,
  output        io_rnRsp_0_bits_mul_isa_remw,
  output        io_rnRsp_0_bits_mul_isa_remuw,
  output        io_rnRsp_0_bits_fpu_isa_fmadd_s,
  output        io_rnRsp_0_bits_fpu_isa_fmsub_s,
  output        io_rnRsp_0_bits_fpu_isa_fnmsub_s,
  output        io_rnRsp_0_bits_fpu_isa_fnmadd_s,
  output        io_rnRsp_0_bits_fpu_isa_fadd_s,
  output        io_rnRsp_0_bits_fpu_isa_fsub_s,
  output        io_rnRsp_0_bits_fpu_isa_fmul_s,
  output        io_rnRsp_0_bits_fpu_isa_fdiv_s,
  output        io_rnRsp_0_bits_fpu_isa_fsqrt_s,
  output        io_rnRsp_0_bits_fpu_isa_fsgnj_s,
  output        io_rnRsp_0_bits_fpu_isa_fsgnjn_s,
  output        io_rnRsp_0_bits_fpu_isa_fsgnjx_s,
  output        io_rnRsp_0_bits_fpu_isa_fmin_s,
  output        io_rnRsp_0_bits_fpu_isa_fmax_s,
  output        io_rnRsp_0_bits_fpu_isa_fcvt_w_s,
  output        io_rnRsp_0_bits_fpu_isa_fcvt_wu_s,
  output        io_rnRsp_0_bits_fpu_isa_fmv_x_w,
  output        io_rnRsp_0_bits_fpu_isa_feq_s,
  output        io_rnRsp_0_bits_fpu_isa_flt_s,
  output        io_rnRsp_0_bits_fpu_isa_fle_s,
  output        io_rnRsp_0_bits_fpu_isa_fclass_s,
  output        io_rnRsp_0_bits_fpu_isa_fcvt_l_s,
  output        io_rnRsp_0_bits_fpu_isa_fcvt_lu_s,
  output        io_rnRsp_0_bits_fpu_isa_fmadd_d,
  output        io_rnRsp_0_bits_fpu_isa_fmsub_d,
  output        io_rnRsp_0_bits_fpu_isa_fnmsub_d,
  output        io_rnRsp_0_bits_fpu_isa_fnmadd_d,
  output        io_rnRsp_0_bits_fpu_isa_fadd_d,
  output        io_rnRsp_0_bits_fpu_isa_fsub_d,
  output        io_rnRsp_0_bits_fpu_isa_fmul_d,
  output        io_rnRsp_0_bits_fpu_isa_fdiv_d,
  output        io_rnRsp_0_bits_fpu_isa_fsqrt_d,
  output        io_rnRsp_0_bits_fpu_isa_fsgnj_d,
  output        io_rnRsp_0_bits_fpu_isa_fsgnjn_d,
  output        io_rnRsp_0_bits_fpu_isa_fsgnjx_d,
  output        io_rnRsp_0_bits_fpu_isa_fmin_d,
  output        io_rnRsp_0_bits_fpu_isa_fmax_d,
  output        io_rnRsp_0_bits_fpu_isa_fcvt_s_d,
  output        io_rnRsp_0_bits_fpu_isa_fcvt_d_s,
  output        io_rnRsp_0_bits_fpu_isa_feq_d,
  output        io_rnRsp_0_bits_fpu_isa_flt_d,
  output        io_rnRsp_0_bits_fpu_isa_fle_d,
  output        io_rnRsp_0_bits_fpu_isa_fclass_d,
  output        io_rnRsp_0_bits_fpu_isa_fcvt_w_d,
  output        io_rnRsp_0_bits_fpu_isa_fcvt_wu_d,
  output        io_rnRsp_0_bits_fpu_isa_fcvt_l_d,
  output        io_rnRsp_0_bits_fpu_isa_fcvt_lu_d,
  output        io_rnRsp_0_bits_fpu_isa_fmv_x_d,
  output        io_rnRsp_0_bits_param_is_rvc,
  output [38:0] io_rnRsp_0_bits_param_pc,
  output [63:0] io_rnRsp_0_bits_param_imm,
  output [4:0]  io_rnRsp_0_bits_param_raw_rs1,
  output [5:0]  io_rnRsp_0_bits_phy_rs1,
  output [5:0]  io_rnRsp_0_bits_phy_rs2,
  output [5:0]  io_rnRsp_0_bits_phy_rs3,
  output [5:0]  io_rnRsp_0_bits_phy_rd0,
  input  [5:0]  io_xLookup_0_rsp_rs1,
  input  [5:0]  io_xLookup_0_rsp_rs2,
  output [4:0]  io_xLookup_0_req_rs1,
  output [4:0]  io_xLookup_0_req_rs2,
  input  [5:0]  io_xRename_0_rsp_rd0,
  input         io_xRename_0_req_ready,
  output        io_xRename_0_req_valid,
  output [4:0]  io_xRename_0_req_bits_rd0,
  output        io_fRename_0_req_valid,
  input         io_rod_i_0_ready,
  output        io_rod_i_0_valid,
  output [38:0] io_rod_i_0_bits_pc,
  output [4:0]  io_rod_i_0_bits_rd0_raw,
  output [5:0]  io_rod_i_0_bits_rd0_phy,
  output        io_rod_i_0_bits_is_branch,
  output        io_rod_i_0_bits_is_jalr,
  output        io_rod_i_0_bits_is_lu,
  output        io_rod_i_0_bits_is_su,
  output        io_rod_i_0_bits_is_amo,
  output        io_rod_i_0_bits_is_fence_i,
  output        io_rod_i_0_bits_is_sfence_vma,
  output        io_rod_i_0_bits_is_wfi,
  output        io_rod_i_0_bits_is_csr,
  output        io_rod_i_0_bits_is_fpu,
  output        io_rod_i_0_bits_is_fcsr,
  output        io_rod_i_0_bits_is_xcmm,
  output        io_rod_i_0_bits_privil_ecall,
  output        io_rod_i_0_bits_privil_ebreak,
  output        io_rod_i_0_bits_privil_mret,
  output        io_rod_i_0_bits_privil_sret,
  output        io_rod_i_0_bits_privil_dret,
  output        io_rod_i_0_bits_privil_is_access_fault,
  output        io_rod_i_0_bits_privil_is_paging_fault,
  output        io_rod_i_0_bits_is_illeage
);
  wire  rnRspReport_clock; // @[Rename.scala 42:27]
  wire  rnRspReport_reset; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_ready; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_valid; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_lui; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_auipc; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_addi; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_addiw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_slti; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_sltiu; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_xori; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_ori; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_andi; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_slli; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_slliw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_srli; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_srliw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_srai; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_sraiw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_add; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_addw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_sub; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_subw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_sll; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_sllw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_slt; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_sltu; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_xor; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_srl; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_srlw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_sra; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_sraw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_or; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_and; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_alu_isa_wfi; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_bru_isa_jal; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_bru_isa_jalr; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_bru_isa_beq; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_bru_isa_bne; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_bru_isa_blt; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_bru_isa_bge; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_bru_isa_bltu; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_bru_isa_bgeu; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_lb; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_lh; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_lw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_ld; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_lbu; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_lhu; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_lwu; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_sb; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_sh; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_sw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_sd; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_fence; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_fence_i; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_sfence_vma; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_lr_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_sc_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_amoswap_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_amoadd_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_amoxor_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_amoand_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_amoor_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_amomin_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_amomax_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_amominu_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_amomaxu_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_lr_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_sc_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_amoswap_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_amoadd_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_amoxor_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_amoand_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_amoor_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_amomin_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_amomax_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_amominu_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_amomaxu_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_flw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_fsw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_fld; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_lsu_isa_fsd; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_csr_isa_rw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_csr_isa_rs; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_csr_isa_rc; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_csr_isa_rwi; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_csr_isa_rsi; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_csr_isa_rci; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_mul_isa_mul; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_mul_isa_mulh; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_mul_isa_mulhsu; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_mul_isa_mulhu; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_mul_isa_div; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_mul_isa_divu; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_mul_isa_rem; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_mul_isa_remu; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_mul_isa_mulw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_mul_isa_divw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_mul_isa_divuw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_mul_isa_remw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_mul_isa_remuw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fmadd_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fmsub_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fnmsub_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fnmadd_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fadd_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fsub_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fmul_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fdiv_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fsqrt_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fsgnj_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fsgnjn_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fsgnjx_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fmin_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fmax_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fcvt_w_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fcvt_wu_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fmv_x_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_feq_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_flt_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fle_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fclass_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fcvt_l_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fcvt_lu_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fmadd_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fmsub_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fnmsub_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fnmadd_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fadd_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fsub_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fmul_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fdiv_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fsqrt_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fsgnj_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fsgnjn_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fsgnjx_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fmin_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fmax_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fcvt_s_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fcvt_d_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_feq_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_flt_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fle_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fclass_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fcvt_w_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fcvt_wu_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fcvt_l_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fcvt_lu_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_fpu_isa_fmv_x_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_enq_0_bits_param_is_rvc; // @[Rename.scala 42:27]
  wire [38:0] rnRspReport_io_enq_0_bits_param_pc; // @[Rename.scala 42:27]
  wire [63:0] rnRspReport_io_enq_0_bits_param_imm; // @[Rename.scala 42:27]
  wire [4:0] rnRspReport_io_enq_0_bits_param_raw_rs1; // @[Rename.scala 42:27]
  wire [5:0] rnRspReport_io_enq_0_bits_phy_rs1; // @[Rename.scala 42:27]
  wire [5:0] rnRspReport_io_enq_0_bits_phy_rs2; // @[Rename.scala 42:27]
  wire [5:0] rnRspReport_io_enq_0_bits_phy_rs3; // @[Rename.scala 42:27]
  wire [5:0] rnRspReport_io_enq_0_bits_phy_rd0; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_ready; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_valid; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_lui; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_auipc; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_addi; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_addiw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_slti; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_sltiu; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_xori; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_ori; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_andi; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_slli; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_slliw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_srli; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_srliw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_srai; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_sraiw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_add; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_addw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_sub; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_subw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_sll; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_sllw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_slt; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_sltu; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_xor; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_srl; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_srlw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_sra; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_sraw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_or; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_and; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_alu_isa_wfi; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_bru_isa_jal; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_bru_isa_jalr; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_bru_isa_beq; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_bru_isa_bne; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_bru_isa_blt; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_bru_isa_bge; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_bru_isa_bltu; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_bru_isa_bgeu; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_lb; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_lh; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_lw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_ld; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_lbu; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_lhu; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_lwu; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_sb; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_sh; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_sw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_sd; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_fence; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_fence_i; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_sfence_vma; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_lr_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_sc_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_amoswap_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_amoadd_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_amoxor_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_amoand_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_amoor_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_amomin_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_amomax_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_amominu_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_amomaxu_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_lr_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_sc_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_amoswap_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_amoadd_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_amoxor_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_amoand_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_amoor_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_amomin_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_amomax_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_amominu_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_amomaxu_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_flw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_fsw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_fld; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_lsu_isa_fsd; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_csr_isa_rw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_csr_isa_rs; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_csr_isa_rc; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_csr_isa_rwi; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_csr_isa_rsi; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_csr_isa_rci; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_mul_isa_mul; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_mul_isa_mulh; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_mul_isa_mulhsu; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_mul_isa_mulhu; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_mul_isa_div; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_mul_isa_divu; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_mul_isa_rem; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_mul_isa_remu; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_mul_isa_mulw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_mul_isa_divw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_mul_isa_divuw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_mul_isa_remw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_mul_isa_remuw; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fmadd_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fmsub_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fnmsub_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fnmadd_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fadd_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fsub_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fmul_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fdiv_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fsqrt_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fsgnj_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fsgnjn_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fsgnjx_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fmin_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fmax_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fcvt_w_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fcvt_wu_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fmv_x_w; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_feq_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_flt_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fle_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fclass_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fcvt_l_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fcvt_lu_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fmadd_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fmsub_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fnmsub_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fnmadd_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fadd_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fsub_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fmul_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fdiv_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fsqrt_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fsgnj_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fsgnjn_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fsgnjx_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fmin_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fmax_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fcvt_s_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fcvt_d_s; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_feq_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_flt_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fle_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fclass_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fcvt_w_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fcvt_wu_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fcvt_l_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fcvt_lu_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_fpu_isa_fmv_x_d; // @[Rename.scala 42:27]
  wire  rnRspReport_io_deq_0_bits_param_is_rvc; // @[Rename.scala 42:27]
  wire [38:0] rnRspReport_io_deq_0_bits_param_pc; // @[Rename.scala 42:27]
  wire [63:0] rnRspReport_io_deq_0_bits_param_imm; // @[Rename.scala 42:27]
  wire [4:0] rnRspReport_io_deq_0_bits_param_raw_rs1; // @[Rename.scala 42:27]
  wire [5:0] rnRspReport_io_deq_0_bits_phy_rs1; // @[Rename.scala 42:27]
  wire [5:0] rnRspReport_io_deq_0_bits_phy_rs2; // @[Rename.scala 42:27]
  wire [5:0] rnRspReport_io_deq_0_bits_phy_rs3; // @[Rename.scala 42:27]
  wire [5:0] rnRspReport_io_deq_0_bits_phy_rd0; // @[Rename.scala 42:27]
  wire  rnRspFifo_clock; // @[Rename.scala 43:25]
  wire  rnRspFifo_reset; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_ready; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_valid; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_lui; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_auipc; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_addi; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_addiw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_slti; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_sltiu; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_xori; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_ori; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_andi; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_slli; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_slliw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_srli; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_srliw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_srai; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_sraiw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_add; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_addw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_sub; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_subw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_sll; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_sllw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_slt; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_sltu; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_xor; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_srl; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_srlw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_sra; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_sraw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_or; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_and; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_alu_isa_wfi; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_bru_isa_jal; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_bru_isa_jalr; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_bru_isa_beq; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_bru_isa_bne; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_bru_isa_blt; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_bru_isa_bge; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_bru_isa_bltu; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_bru_isa_bgeu; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_lb; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_lh; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_lw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_ld; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_lbu; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_lhu; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_lwu; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_sb; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_sh; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_sw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_sd; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_fence; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_fence_i; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_sfence_vma; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_lr_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_sc_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_amoswap_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_amoadd_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_amoxor_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_amoand_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_amoor_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_amomin_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_amomax_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_amominu_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_amomaxu_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_lr_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_sc_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_amoswap_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_amoadd_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_amoxor_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_amoand_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_amoor_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_amomin_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_amomax_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_amominu_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_amomaxu_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_flw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_fsw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_fld; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_lsu_isa_fsd; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_csr_isa_rw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_csr_isa_rs; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_csr_isa_rc; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_csr_isa_rwi; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_csr_isa_rsi; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_csr_isa_rci; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_mul_isa_mul; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_mul_isa_mulh; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_mul_isa_mulhsu; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_mul_isa_mulhu; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_mul_isa_div; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_mul_isa_divu; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_mul_isa_rem; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_mul_isa_remu; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_mul_isa_mulw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_mul_isa_divw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_mul_isa_divuw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_mul_isa_remw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_mul_isa_remuw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fmadd_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fmsub_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fnmsub_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fnmadd_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fadd_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fsub_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fmul_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fdiv_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fsqrt_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fsgnj_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fsgnjn_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fsgnjx_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fmin_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fmax_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_w_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_wu_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fmv_x_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_feq_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_flt_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fle_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fclass_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_l_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_lu_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fmadd_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fmsub_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fnmsub_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fnmadd_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fadd_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fsub_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fmul_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fdiv_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fsqrt_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fsgnj_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fsgnjn_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fsgnjx_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fmin_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fmax_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_s_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_d_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_feq_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_flt_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fle_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fclass_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_w_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_wu_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_l_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_lu_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_fpu_isa_fmv_x_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_enq_0_bits_param_is_rvc; // @[Rename.scala 43:25]
  wire [38:0] rnRspFifo_io_enq_0_bits_param_pc; // @[Rename.scala 43:25]
  wire [63:0] rnRspFifo_io_enq_0_bits_param_imm; // @[Rename.scala 43:25]
  wire [4:0] rnRspFifo_io_enq_0_bits_param_raw_rs1; // @[Rename.scala 43:25]
  wire [5:0] rnRspFifo_io_enq_0_bits_phy_rs1; // @[Rename.scala 43:25]
  wire [5:0] rnRspFifo_io_enq_0_bits_phy_rs2; // @[Rename.scala 43:25]
  wire [5:0] rnRspFifo_io_enq_0_bits_phy_rs3; // @[Rename.scala 43:25]
  wire [5:0] rnRspFifo_io_enq_0_bits_phy_rd0; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_valid; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_lui; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_auipc; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_addi; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_addiw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_slti; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_sltiu; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_xori; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_ori; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_andi; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_slli; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_slliw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_srli; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_srliw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_srai; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_sraiw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_add; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_addw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_sub; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_subw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_sll; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_sllw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_slt; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_sltu; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_xor; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_srl; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_srlw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_sra; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_sraw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_or; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_and; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_alu_isa_wfi; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_bru_isa_jal; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_bru_isa_jalr; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_bru_isa_beq; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_bru_isa_bne; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_bru_isa_blt; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_bru_isa_bge; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_bru_isa_bltu; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_bru_isa_bgeu; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_lb; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_lh; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_lw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_ld; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_lbu; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_lhu; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_lwu; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_sb; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_sh; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_sw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_sd; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_fence; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_fence_i; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_sfence_vma; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_lr_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_sc_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_amoswap_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_amoadd_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_amoxor_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_amoand_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_amoor_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_amomin_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_amomax_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_amominu_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_amomaxu_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_lr_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_sc_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_amoswap_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_amoadd_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_amoxor_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_amoand_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_amoor_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_amomin_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_amomax_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_amominu_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_amomaxu_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_flw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_fsw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_fld; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_lsu_isa_fsd; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_csr_isa_rw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_csr_isa_rs; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_csr_isa_rc; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_csr_isa_rwi; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_csr_isa_rsi; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_csr_isa_rci; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_mul_isa_mul; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_mul_isa_mulh; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_mul_isa_mulhsu; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_mul_isa_mulhu; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_mul_isa_div; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_mul_isa_divu; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_mul_isa_rem; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_mul_isa_remu; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_mul_isa_mulw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_mul_isa_divw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_mul_isa_divuw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_mul_isa_remw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_mul_isa_remuw; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fmadd_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fmsub_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fnmsub_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fnmadd_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fadd_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fsub_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fmul_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fdiv_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fsqrt_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fsgnj_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fsgnjn_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fsgnjx_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fmin_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fmax_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_w_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_wu_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fmv_x_w; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_feq_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_flt_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fle_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fclass_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_l_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_lu_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fmadd_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fmsub_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fnmsub_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fnmadd_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fadd_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fsub_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fmul_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fdiv_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fsqrt_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fsgnj_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fsgnjn_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fsgnjx_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fmin_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fmax_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_s_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_d_s; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_feq_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_flt_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fle_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fclass_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_w_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_wu_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_l_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_lu_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_fpu_isa_fmv_x_d; // @[Rename.scala 43:25]
  wire  rnRspFifo_io_deq_0_bits_param_is_rvc; // @[Rename.scala 43:25]
  wire [38:0] rnRspFifo_io_deq_0_bits_param_pc; // @[Rename.scala 43:25]
  wire [63:0] rnRspFifo_io_deq_0_bits_param_imm; // @[Rename.scala 43:25]
  wire [4:0] rnRspFifo_io_deq_0_bits_param_raw_rs1; // @[Rename.scala 43:25]
  wire [5:0] rnRspFifo_io_deq_0_bits_phy_rs1; // @[Rename.scala 43:25]
  wire [5:0] rnRspFifo_io_deq_0_bits_phy_rs2; // @[Rename.scala 43:25]
  wire [5:0] rnRspFifo_io_deq_0_bits_phy_rs3; // @[Rename.scala 43:25]
  wire [5:0] rnRspFifo_io_deq_0_bits_phy_rd0; // @[Rename.scala 43:25]
  wire  reOrder_fifo_i_clock; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_reset; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_enq_0_ready; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_enq_0_valid; // @[Rename.scala 48:21]
  wire [38:0] reOrder_fifo_i_io_enq_0_bits_pc; // @[Rename.scala 48:21]
  wire [4:0] reOrder_fifo_i_io_enq_0_bits_rd0_raw; // @[Rename.scala 48:21]
  wire [5:0] reOrder_fifo_i_io_enq_0_bits_rd0_phy; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_enq_0_bits_is_branch; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_enq_0_bits_is_jalr; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_enq_0_bits_is_lu; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_enq_0_bits_is_su; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_enq_0_bits_is_amo; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_enq_0_bits_is_fence_i; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_enq_0_bits_is_sfence_vma; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_enq_0_bits_is_wfi; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_enq_0_bits_is_csr; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_enq_0_bits_is_fpu; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_enq_0_bits_is_fcsr; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_enq_0_bits_is_xcmm; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_enq_0_bits_privil_ecall; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_enq_0_bits_privil_ebreak; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_enq_0_bits_privil_mret; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_enq_0_bits_privil_sret; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_enq_0_bits_privil_dret; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_enq_0_bits_privil_is_access_fault; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_enq_0_bits_privil_is_paging_fault; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_enq_0_bits_is_illeage; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_deq_0_ready; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_deq_0_valid; // @[Rename.scala 48:21]
  wire [38:0] reOrder_fifo_i_io_deq_0_bits_pc; // @[Rename.scala 48:21]
  wire [4:0] reOrder_fifo_i_io_deq_0_bits_rd0_raw; // @[Rename.scala 48:21]
  wire [5:0] reOrder_fifo_i_io_deq_0_bits_rd0_phy; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_deq_0_bits_is_branch; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_deq_0_bits_is_jalr; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_deq_0_bits_is_lu; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_deq_0_bits_is_su; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_deq_0_bits_is_amo; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_deq_0_bits_is_fence_i; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_deq_0_bits_is_sfence_vma; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_deq_0_bits_is_wfi; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_deq_0_bits_is_csr; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_deq_0_bits_is_fpu; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_deq_0_bits_is_fcsr; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_deq_0_bits_is_xcmm; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_deq_0_bits_privil_ecall; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_deq_0_bits_privil_ebreak; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_deq_0_bits_privil_mret; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_deq_0_bits_privil_sret; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_deq_0_bits_privil_dret; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_deq_0_bits_privil_is_access_fault; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_deq_0_bits_privil_is_paging_fault; // @[Rename.scala 48:21]
  wire  reOrder_fifo_i_io_deq_0_bits_is_illeage; // @[Rename.scala 48:21]
  wire  _rnRspReport_io_enq_0_valid_T = io_rnReq_0_ready & io_rnReq_0_valid; // @[Decoupled.scala 52:35]
  wire  _rnRspReport_io_enq_0_valid_T_21 = io_rnReq_0_bits_privil_isa_ecall | io_rnReq_0_bits_privil_isa_ebreak |
    io_rnReq_0_bits_privil_isa_mret | io_rnReq_0_bits_privil_isa_uret | io_rnReq_0_bits_privil_isa_sret |
    io_rnReq_0_bits_privil_isa_dret | io_rnReq_0_bits_privil_isa_hfence_vvma | io_rnReq_0_bits_privil_isa_hfence_gvma |
    io_rnReq_0_bits_privil_isa_hlv_b | io_rnReq_0_bits_privil_isa_hlv_bu | io_rnReq_0_bits_privil_isa_hlv_h |
    io_rnReq_0_bits_privil_isa_hlv_hu | io_rnReq_0_bits_privil_isa_hlvx_hu | io_rnReq_0_bits_privil_isa_hlv_w |
    io_rnReq_0_bits_privil_isa_hlvx_wu | io_rnReq_0_bits_privil_isa_hsv_b | io_rnReq_0_bits_privil_isa_hsv_h |
    io_rnReq_0_bits_privil_isa_hsv_w | io_rnReq_0_bits_privil_isa_hlv_wu | io_rnReq_0_bits_privil_isa_hlv_d |
    io_rnReq_0_bits_privil_isa_hsv_d | io_rnReq_0_bits_privil_isa_is_access_fault; // @[riscv_isa.scala 248:187]
  wire  _rnRspReport_io_enq_0_valid_T_22 = _rnRspReport_io_enq_0_valid_T_21 | io_rnReq_0_bits_privil_isa_is_paging_fault
    ; // @[riscv_isa.scala 249:21]
  wire  _rnRspReport_io_enq_0_bits_T_2 = io_rnReq_0_bits_fpu_isa_fmadd_s | io_rnReq_0_bits_fpu_isa_fmsub_s |
    io_rnReq_0_bits_fpu_isa_fnmsub_s | io_rnReq_0_bits_fpu_isa_fnmadd_s; // @[riscv_isa.scala 514:37]
  wire  _rnRspReport_io_enq_0_bits_T_8 = io_rnReq_0_bits_fpu_isa_fmadd_s | io_rnReq_0_bits_fpu_isa_fmsub_s |
    io_rnReq_0_bits_fpu_isa_fnmsub_s | io_rnReq_0_bits_fpu_isa_fnmadd_s | io_rnReq_0_bits_fpu_isa_fadd_s |
    io_rnReq_0_bits_fpu_isa_fsub_s | io_rnReq_0_bits_fpu_isa_fmul_s | io_rnReq_0_bits_fpu_isa_fdiv_s |
    io_rnReq_0_bits_fpu_isa_fsqrt_s | io_rnReq_0_bits_fpu_isa_fmadd_d; // @[riscv_isa.scala 514:109]
  wire  _rnRspReport_io_enq_0_bits_T_17 = _rnRspReport_io_enq_0_bits_T_8 | io_rnReq_0_bits_fpu_isa_fmsub_d |
    io_rnReq_0_bits_fpu_isa_fnmsub_d | io_rnReq_0_bits_fpu_isa_fnmadd_d | io_rnReq_0_bits_fpu_isa_fadd_d |
    io_rnReq_0_bits_fpu_isa_fsub_d | io_rnReq_0_bits_fpu_isa_fmul_d | io_rnReq_0_bits_fpu_isa_fdiv_d |
    io_rnReq_0_bits_fpu_isa_fsqrt_d | io_rnReq_0_bits_fpu_isa_fsgnj_s; // @[riscv_isa.scala 515:109]
  wire  _rnRspReport_io_enq_0_bits_T_23 = _rnRspReport_io_enq_0_bits_T_17 | io_rnReq_0_bits_fpu_isa_fsgnjn_s |
    io_rnReq_0_bits_fpu_isa_fsgnjx_s | io_rnReq_0_bits_fpu_isa_fsgnj_d | io_rnReq_0_bits_fpu_isa_fsgnjn_d |
    io_rnReq_0_bits_fpu_isa_fsgnjx_d | io_rnReq_0_bits_fpu_isa_fmin_s; // @[riscv_isa.scala 516:73]
  wire  _rnRspReport_io_enq_0_bits_T_26 = _rnRspReport_io_enq_0_bits_T_23 | io_rnReq_0_bits_fpu_isa_fmax_s |
    io_rnReq_0_bits_fpu_isa_fmin_d | io_rnReq_0_bits_fpu_isa_fmax_d; // @[riscv_isa.scala 517:37]
  wire  _rnRspReport_io_enq_0_bits_T_27 = _rnRspReport_io_enq_0_bits_T_23 | io_rnReq_0_bits_fpu_isa_fmax_s |
    io_rnReq_0_bits_fpu_isa_fmin_d | io_rnReq_0_bits_fpu_isa_fmax_d | io_rnReq_0_bits_fpu_isa_feq_s; // @[riscv_isa.scala 517:49]
  wire  _rnRspReport_io_enq_0_bits_T_33 = _rnRspReport_io_enq_0_bits_T_27 | io_rnReq_0_bits_fpu_isa_flt_s |
    io_rnReq_0_bits_fpu_isa_fle_s | io_rnReq_0_bits_fpu_isa_feq_d | io_rnReq_0_bits_fpu_isa_flt_d |
    io_rnReq_0_bits_fpu_isa_fle_d | io_rnReq_0_bits_fpu_isa_fclass_s; // @[riscv_isa.scala 518:73]
  wire  _rnRspReport_io_enq_0_bits_T_35 = _rnRspReport_io_enq_0_bits_T_33 | io_rnReq_0_bits_fpu_isa_fclass_d |
    io_rnReq_0_bits_fpu_isa_fmv_x_w; // @[riscv_isa.scala 519:25]
  wire  _rnRspReport_io_enq_0_bits_T_39 = _rnRspReport_io_enq_0_bits_T_35 | io_rnReq_0_bits_fpu_isa_fmv_w_x |
    io_rnReq_0_bits_fpu_isa_fmv_x_d | io_rnReq_0_bits_fpu_isa_fmv_d_x | io_rnReq_0_bits_fpu_isa_fcvt_s_w; // @[riscv_isa.scala 520:49]
  wire  _rnRspReport_io_enq_0_bits_T_43 = _rnRspReport_io_enq_0_bits_T_39 | io_rnReq_0_bits_fpu_isa_fcvt_s_wu |
    io_rnReq_0_bits_fpu_isa_fcvt_l_s | io_rnReq_0_bits_fpu_isa_fcvt_lu_s | io_rnReq_0_bits_fpu_isa_fcvt_s_l; // @[riscv_isa.scala 521:49]
  wire  _rnRspReport_io_enq_0_bits_T_47 = _rnRspReport_io_enq_0_bits_T_43 | io_rnReq_0_bits_fpu_isa_fcvt_s_lu |
    io_rnReq_0_bits_fpu_isa_fcvt_s_d | io_rnReq_0_bits_fpu_isa_fcvt_d_s | io_rnReq_0_bits_fpu_isa_fcvt_w_d; // @[riscv_isa.scala 522:49]
  wire  _rnRspReport_io_enq_0_bits_T_53 = _rnRspReport_io_enq_0_bits_T_47 | io_rnReq_0_bits_fpu_isa_fcvt_wu_d |
    io_rnReq_0_bits_fpu_isa_fcvt_d_w | io_rnReq_0_bits_fpu_isa_fcvt_d_wu | io_rnReq_0_bits_fpu_isa_fcvt_l_d |
    io_rnReq_0_bits_fpu_isa_fcvt_lu_d | io_rnReq_0_bits_fpu_isa_fcvt_d_l; // @[riscv_isa.scala 523:73]
  wire  _rnRspReport_io_enq_0_bits_T_57 = _rnRspReport_io_enq_0_bits_T_53 | io_rnReq_0_bits_fpu_isa_fcvt_d_lu |
    io_rnReq_0_bits_fpu_isa_fcvt_w_s | io_rnReq_0_bits_fpu_isa_fcvt_wu_s | io_rnReq_0_bits_fpu_isa_fcsr_rw; // @[riscv_isa.scala 524:49]
  wire  _rnRspReport_io_enq_0_bits_T_62 = _rnRspReport_io_enq_0_bits_T_57 | io_rnReq_0_bits_fpu_isa_fcsr_rs |
    io_rnReq_0_bits_fpu_isa_fcsr_rc | io_rnReq_0_bits_fpu_isa_fcsr_rwi | io_rnReq_0_bits_fpu_isa_fcsr_rsi |
    io_rnReq_0_bits_fpu_isa_fcsr_rci; // @[riscv_isa.scala 525:61]
  wire  _rnRspReport_io_enq_0_bits_T_66 = _rnRspReport_io_enq_0_bits_T_2 | io_rnReq_0_bits_fpu_isa_fmadd_d; // @[riscv_isa.scala 365:43]
  wire  _rnRspReport_io_enq_0_bits_T_69 = _rnRspReport_io_enq_0_bits_T_66 | io_rnReq_0_bits_fpu_isa_fmsub_d |
    io_rnReq_0_bits_fpu_isa_fnmsub_d | io_rnReq_0_bits_fpu_isa_fnmadd_d; // @[riscv_isa.scala 366:32]
  wire  _rnRspReport_io_enq_0_bits_T_70 = _rnRspReport_io_enq_0_bits_T_69 | io_rnReq_0_bits_fpu_isa_fadd_s; // @[riscv_isa.scala 368:29]
  wire  _rnRspReport_io_enq_0_bits_T_74 = _rnRspReport_io_enq_0_bits_T_70 | io_rnReq_0_bits_fpu_isa_fsub_s |
    io_rnReq_0_bits_fpu_isa_fmul_s | io_rnReq_0_bits_fpu_isa_fdiv_s | io_rnReq_0_bits_fpu_isa_fsqrt_s; // @[riscv_isa.scala 369:37]
  wire  _rnRspReport_io_enq_0_bits_T_75 = _rnRspReport_io_enq_0_bits_T_70 | io_rnReq_0_bits_fpu_isa_fsub_s |
    io_rnReq_0_bits_fpu_isa_fmul_s | io_rnReq_0_bits_fpu_isa_fdiv_s | io_rnReq_0_bits_fpu_isa_fsqrt_s |
    io_rnReq_0_bits_fpu_isa_fsgnj_s; // @[riscv_isa.scala 369:47]
  wire  _rnRspReport_io_enq_0_bits_T_81 = _rnRspReport_io_enq_0_bits_T_75 | io_rnReq_0_bits_fpu_isa_fsgnjn_s |
    io_rnReq_0_bits_fpu_isa_fsgnjx_s | io_rnReq_0_bits_fpu_isa_fsgnj_d | io_rnReq_0_bits_fpu_isa_fsgnjn_d |
    io_rnReq_0_bits_fpu_isa_fsgnjx_d | io_rnReq_0_bits_fpu_isa_fmin_s; // @[riscv_isa.scala 370:65]
  wire  _rnRspReport_io_enq_0_bits_T_85 = _rnRspReport_io_enq_0_bits_T_81 | io_rnReq_0_bits_fpu_isa_fmax_s |
    io_rnReq_0_bits_fpu_isa_fmin_d | io_rnReq_0_bits_fpu_isa_fmax_d | io_rnReq_0_bits_fpu_isa_feq_s; // @[riscv_isa.scala 371:37]
  wire  _rnRspReport_io_enq_0_bits_T_91 = _rnRspReport_io_enq_0_bits_T_85 | io_rnReq_0_bits_fpu_isa_flt_s |
    io_rnReq_0_bits_fpu_isa_fle_s | io_rnReq_0_bits_fpu_isa_feq_d | io_rnReq_0_bits_fpu_isa_flt_d |
    io_rnReq_0_bits_fpu_isa_fle_d | io_rnReq_0_bits_fpu_isa_fadd_d; // @[riscv_isa.scala 372:48]
  wire  _rnRspReport_io_enq_0_bits_T_96 = _rnRspReport_io_enq_0_bits_T_91 | io_rnReq_0_bits_fpu_isa_fsub_d |
    io_rnReq_0_bits_fpu_isa_fmul_d | io_rnReq_0_bits_fpu_isa_fdiv_d | io_rnReq_0_bits_fpu_isa_fsqrt_d |
    io_rnReq_0_bits_fpu_isa_fcsr_rw; // @[riscv_isa.scala 373:47]
  wire  _rnRspReport_io_enq_0_bits_T_101 = _rnRspReport_io_enq_0_bits_T_96 | io_rnReq_0_bits_fpu_isa_fcsr_rs |
    io_rnReq_0_bits_fpu_isa_fcsr_rc | io_rnReq_0_bits_fpu_isa_fcsr_rwi | io_rnReq_0_bits_fpu_isa_fcsr_rsi |
    io_rnReq_0_bits_fpu_isa_fcsr_rci; // @[riscv_isa.scala 374:53]
  wire  _reg_phy_0_rs2_T_12 = _rnRspReport_io_enq_0_bits_T_74 | io_rnReq_0_bits_fpu_isa_fadd_d; // @[riscv_isa.scala 393:63]
  wire  _reg_phy_0_rs2_T_17 = _reg_phy_0_rs2_T_12 | io_rnReq_0_bits_fpu_isa_fsub_d | io_rnReq_0_bits_fpu_isa_fmul_d |
    io_rnReq_0_bits_fpu_isa_fdiv_d | io_rnReq_0_bits_fpu_isa_fsqrt_d | io_rnReq_0_bits_fpu_isa_fsgnj_s; // @[riscv_isa.scala 394:63]
  wire  _reg_phy_0_rs2_T_20 = _reg_phy_0_rs2_T_17 | io_rnReq_0_bits_fpu_isa_fsgnjn_s | io_rnReq_0_bits_fpu_isa_fsgnjx_s
     | io_rnReq_0_bits_fpu_isa_fsgnj_d; // @[riscv_isa.scala 395:39]
  wire  _reg_phy_0_rs2_T_23 = _reg_phy_0_rs2_T_20 | io_rnReq_0_bits_fpu_isa_fsgnjn_d | io_rnReq_0_bits_fpu_isa_fsgnjx_d
     | io_rnReq_0_bits_fpu_isa_fmin_s; // @[riscv_isa.scala 396:39]
  wire  _reg_phy_0_rs2_T_27 = _reg_phy_0_rs2_T_23 | io_rnReq_0_bits_fpu_isa_fmax_s | io_rnReq_0_bits_fpu_isa_fmin_d |
    io_rnReq_0_bits_fpu_isa_fmax_d | io_rnReq_0_bits_fpu_isa_fmv_x_w; // @[riscv_isa.scala 397:51]
  wire  _reg_phy_0_rs2_T_29 = _reg_phy_0_rs2_T_27 | io_rnReq_0_bits_fpu_isa_fmv_x_d | io_rnReq_0_bits_fpu_isa_feq_s; // @[riscv_isa.scala 398:27]
  wire  _reg_phy_0_rs2_T_32 = _reg_phy_0_rs2_T_29 | io_rnReq_0_bits_fpu_isa_flt_s | io_rnReq_0_bits_fpu_isa_fle_s |
    io_rnReq_0_bits_fpu_isa_feq_d; // @[riscv_isa.scala 399:39]
  wire  _reg_phy_0_rs2_T_35 = _reg_phy_0_rs2_T_32 | io_rnReq_0_bits_fpu_isa_flt_d | io_rnReq_0_bits_fpu_isa_fle_d |
    io_rnReq_0_bits_fpu_isa_fclass_s; // @[riscv_isa.scala 400:39]
  wire  _reg_phy_0_rs2_T_37 = _reg_phy_0_rs2_T_35 | io_rnReq_0_bits_fpu_isa_fclass_d | io_rnReq_0_bits_fpu_isa_fcvt_w_s; // @[riscv_isa.scala 401:27]
  wire  _reg_phy_0_rs2_T_41 = _reg_phy_0_rs2_T_37 | io_rnReq_0_bits_fpu_isa_fcvt_wu_s | io_rnReq_0_bits_fpu_isa_fcvt_l_s
     | io_rnReq_0_bits_fpu_isa_fcvt_lu_s | io_rnReq_0_bits_fpu_isa_fcvt_w_d; // @[riscv_isa.scala 402:51]
  wire  _reg_phy_0_rs2_T_45 = _reg_phy_0_rs2_T_41 | io_rnReq_0_bits_fpu_isa_fcvt_wu_d | io_rnReq_0_bits_fpu_isa_fcvt_l_d
     | io_rnReq_0_bits_fpu_isa_fcvt_lu_d | io_rnReq_0_bits_fpu_isa_fcvt_s_d; // @[riscv_isa.scala 403:51]
  wire  _reg_phy_0_rs2_T_46 = _reg_phy_0_rs2_T_45 | io_rnReq_0_bits_fpu_isa_fcvt_d_s; // @[riscv_isa.scala 404:15]
  wire  _reg_phy_0_rs2_T_47 = io_rnReq_0_bits_lsu_isa_fsw | io_rnReq_0_bits_lsu_isa_fsd; // @[riscv_isa.scala 164:20]
  wire [5:0] reg_phy_0_rs2 = _reg_phy_0_rs2_T_46 | _reg_phy_0_rs2_T_47 ? 6'h0 : io_xLookup_0_rsp_rs2; // @[Rename.scala 76:26]
  wire [5:0] _GEN_0 = ~_rnRspReport_io_enq_0_bits_T_101 ? 6'h21 : reg_phy_0_rs2; // @[Rename.scala 112:20 115:{37,51}]
  wire [5:0] reg_phy_0_rs3 = _reg_phy_0_rs2_T_46 ? 6'h0 : 6'h21; // @[Rename.scala 77:26]
  wire [5:0] _GEN_1 = ~_rnRspReport_io_enq_0_bits_T_69 ? 6'h21 : reg_phy_0_rs3; // @[Rename.scala 112:20 116:{39,53}]
  wire  _io_xRename_0_req_valid_T_1 = io_rnReq_0_bits_lsu_isa_flw | io_rnReq_0_bits_lsu_isa_fld; // @[riscv_isa.scala 166:20]
  wire  _io_xRename_0_req_valid_T_29 = _rnRspReport_io_enq_0_bits_T_26 | io_rnReq_0_bits_fpu_isa_fcvt_s_w; // @[riscv_isa.scala 418:39]
  wire  _io_xRename_0_req_valid_T_33 = _io_xRename_0_req_valid_T_29 | io_rnReq_0_bits_fpu_isa_fcvt_s_wu |
    io_rnReq_0_bits_fpu_isa_fcvt_d_w | io_rnReq_0_bits_fpu_isa_fcvt_d_wu | io_rnReq_0_bits_fpu_isa_fcvt_s_l; // @[riscv_isa.scala 419:49]
  wire  _io_xRename_0_req_valid_T_37 = _io_xRename_0_req_valid_T_33 | io_rnReq_0_bits_fpu_isa_fcvt_s_lu |
    io_rnReq_0_bits_fpu_isa_fcvt_d_l | io_rnReq_0_bits_fpu_isa_fcvt_d_lu | io_rnReq_0_bits_fpu_isa_fcvt_s_d; // @[riscv_isa.scala 420:49]
  wire  _io_xRename_0_req_valid_T_39 = _io_xRename_0_req_valid_T_37 | io_rnReq_0_bits_fpu_isa_fcvt_d_s |
    io_rnReq_0_bits_fpu_isa_fmv_w_x; // @[riscv_isa.scala 421:25]
  wire  _io_xRename_0_req_valid_T_40 = _io_xRename_0_req_valid_T_39 | io_rnReq_0_bits_fpu_isa_fmv_d_x; // @[riscv_isa.scala 422:13]
  wire  _io_xRename_0_req_valid_T_41 = _io_xRename_0_req_valid_T_1 | _io_xRename_0_req_valid_T_40; // @[riscv_isa.scala 794:20]
  wire  _io_xRename_0_req_valid_T_42 = ~_io_xRename_0_req_valid_T_41; // @[riscv_isa.scala 800:16]
  wire  _reg_phy_0_rd0_T_1 = io_xRename_0_req_ready & io_xRename_0_req_valid; // @[Decoupled.scala 52:35]
  wire [1:0] _T_2 = io_fRename_0_req_valid + _reg_phy_0_rd0_T_1; // @[Bitwise.scala 51:90]
  wire  _T_6 = ~reset; // @[Rename.scala 84:40]
  wire  _reOrder_fifo_i_io_enq_0_bits_res_is_lu_T_5 = io_rnReq_0_bits_lsu_isa_lb | io_rnReq_0_bits_lsu_isa_lh |
    io_rnReq_0_bits_lsu_isa_lw | io_rnReq_0_bits_lsu_isa_ld | io_rnReq_0_bits_lsu_isa_lbu | io_rnReq_0_bits_lsu_isa_lhu
     | io_rnReq_0_bits_lsu_isa_lwu; // @[riscv_isa.scala 143:46]
  wire  _reOrder_fifo_i_io_enq_0_bits_res_is_lu_T_8 = io_rnReq_0_bits_lsu_isa_lr_d | io_rnReq_0_bits_lsu_isa_lr_w; // @[riscv_isa.scala 141:20]
  wire  _reOrder_fifo_i_io_enq_0_bits_res_is_amo_T_17 = io_rnReq_0_bits_lsu_isa_sc_d | io_rnReq_0_bits_lsu_isa_sc_w; // @[riscv_isa.scala 140:20]
  wire  reOrder_fifo_i_io_enq_0_bits_res_is_amo = io_rnReq_0_bits_lsu_isa_amoswap_w | io_rnReq_0_bits_lsu_isa_amoadd_w
     | io_rnReq_0_bits_lsu_isa_amoxor_w | io_rnReq_0_bits_lsu_isa_amoand_w | io_rnReq_0_bits_lsu_isa_amoor_w |
    io_rnReq_0_bits_lsu_isa_amomin_w | io_rnReq_0_bits_lsu_isa_amomax_w | io_rnReq_0_bits_lsu_isa_amominu_w |
    io_rnReq_0_bits_lsu_isa_amomaxu_w | io_rnReq_0_bits_lsu_isa_amoswap_d | io_rnReq_0_bits_lsu_isa_amoadd_d |
    io_rnReq_0_bits_lsu_isa_amoxor_d | io_rnReq_0_bits_lsu_isa_amoand_d | io_rnReq_0_bits_lsu_isa_amoor_d |
    io_rnReq_0_bits_lsu_isa_amomin_d | io_rnReq_0_bits_lsu_isa_amomax_d | io_rnReq_0_bits_lsu_isa_amominu_d |
    io_rnReq_0_bits_lsu_isa_amomaxu_d | _reOrder_fifo_i_io_enq_0_bits_res_is_amo_T_17; // @[riscv_isa.scala 148:205]
  wire  reOrder_fifo_i_io_enq_0_bits_res_is_csr = io_rnReq_0_bits_csr_isa_rw | io_rnReq_0_bits_csr_isa_rs |
    io_rnReq_0_bits_csr_isa_rc | io_rnReq_0_bits_csr_isa_rwi | io_rnReq_0_bits_csr_isa_rsi | io_rnReq_0_bits_csr_isa_rci
    ; // @[riscv_isa.scala 179:41]
  wire  _reOrder_fifo_i_io_enq_0_bits_res_is_fpu_T_65 = io_rnReq_0_bits_lsu_isa_flw | io_rnReq_0_bits_lsu_isa_fsw |
    io_rnReq_0_bits_lsu_isa_fld | io_rnReq_0_bits_lsu_isa_fsd; // @[riscv_isa.scala 168:32]
  wire  _reOrder_fifo_i_io_enq_0_bits_res_is_illeage_T_29 = io_rnReq_0_bits_alu_isa_lui | io_rnReq_0_bits_alu_isa_auipc
     | io_rnReq_0_bits_alu_isa_addi | io_rnReq_0_bits_alu_isa_addiw | io_rnReq_0_bits_alu_isa_slti |
    io_rnReq_0_bits_alu_isa_sltiu | io_rnReq_0_bits_alu_isa_xori | io_rnReq_0_bits_alu_isa_ori |
    io_rnReq_0_bits_alu_isa_andi | io_rnReq_0_bits_alu_isa_slli | io_rnReq_0_bits_alu_isa_slliw |
    io_rnReq_0_bits_alu_isa_srli | io_rnReq_0_bits_alu_isa_srliw | io_rnReq_0_bits_alu_isa_srai |
    io_rnReq_0_bits_alu_isa_sraiw | io_rnReq_0_bits_alu_isa_add | io_rnReq_0_bits_alu_isa_addw |
    io_rnReq_0_bits_alu_isa_sub | io_rnReq_0_bits_alu_isa_subw | io_rnReq_0_bits_alu_isa_sll |
    io_rnReq_0_bits_alu_isa_sllw | io_rnReq_0_bits_alu_isa_slt | io_rnReq_0_bits_alu_isa_sltu |
    io_rnReq_0_bits_alu_isa_xor | io_rnReq_0_bits_alu_isa_srl | io_rnReq_0_bits_alu_isa_srlw |
    io_rnReq_0_bits_alu_isa_sra | io_rnReq_0_bits_alu_isa_sraw | io_rnReq_0_bits_alu_isa_or |
    io_rnReq_0_bits_alu_isa_and | io_rnReq_0_bits_alu_isa_wfi; // @[riscv_isa.scala 78:217]
  wire  _reOrder_fifo_i_io_enq_0_bits_res_is_illeage_T_36 = io_rnReq_0_bits_bru_isa_jal | io_rnReq_0_bits_bru_isa_jalr
     | io_rnReq_0_bits_bru_isa_beq | io_rnReq_0_bits_bru_isa_bne | io_rnReq_0_bits_bru_isa_blt |
    io_rnReq_0_bits_bru_isa_bge | io_rnReq_0_bits_bru_isa_bltu | io_rnReq_0_bits_bru_isa_bgeu; // @[riscv_isa.scala 92:58]
  wire  _reOrder_fifo_i_io_enq_0_bits_res_is_illeage_T_47 = _reOrder_fifo_i_io_enq_0_bits_res_is_lu_T_5 |
    io_rnReq_0_bits_lsu_isa_sb | io_rnReq_0_bits_lsu_isa_sh | io_rnReq_0_bits_lsu_isa_sw | io_rnReq_0_bits_lsu_isa_sd; // @[riscv_isa.scala 145:67]
  wire  _reOrder_fifo_i_io_enq_0_bits_res_is_illeage_T_50 = _reOrder_fifo_i_io_enq_0_bits_res_is_amo_T_17 |
    _reOrder_fifo_i_io_enq_0_bits_res_is_lu_T_8; // @[riscv_isa.scala 146:23]
  wire  _reOrder_fifo_i_io_enq_0_bits_res_is_illeage_T_77 = io_rnReq_0_bits_lsu_isa_fence |
    io_rnReq_0_bits_lsu_isa_fence_i | io_rnReq_0_bits_lsu_isa_sfence_vma; // @[riscv_isa.scala 150:34]
  wire  _reOrder_fifo_i_io_enq_0_bits_res_is_illeage_T_78 = _reOrder_fifo_i_io_enq_0_bits_res_is_illeage_T_47 |
    _reOrder_fifo_i_io_enq_0_bits_res_is_illeage_T_50 | reOrder_fifo_i_io_enq_0_bits_res_is_amo |
    _reOrder_fifo_i_io_enq_0_bits_res_is_fpu_T_65 | _reOrder_fifo_i_io_enq_0_bits_res_is_illeage_T_77; // @[riscv_isa.scala 151:51]
  wire  _reOrder_fifo_i_io_enq_0_bits_res_is_illeage_T_89 = io_rnReq_0_bits_mul_isa_mul | io_rnReq_0_bits_mul_isa_mulh
     | io_rnReq_0_bits_mul_isa_mulhsu | io_rnReq_0_bits_mul_isa_mulhu | io_rnReq_0_bits_mul_isa_mulw; // @[riscv_isa.scala 203:43]
  wire  _reOrder_fifo_i_io_enq_0_bits_res_is_illeage_T_96 = io_rnReq_0_bits_mul_isa_div | io_rnReq_0_bits_mul_isa_divu
     | io_rnReq_0_bits_mul_isa_divw | io_rnReq_0_bits_mul_isa_divuw | io_rnReq_0_bits_mul_isa_rem |
    io_rnReq_0_bits_mul_isa_remu | io_rnReq_0_bits_mul_isa_remw | io_rnReq_0_bits_mul_isa_remuw; // @[riscv_isa.scala 204:61]
  wire  _reOrder_fifo_i_io_enq_0_bits_res_is_illeage_T_97 = _reOrder_fifo_i_io_enq_0_bits_res_is_illeage_T_89 |
    _reOrder_fifo_i_io_enq_0_bits_res_is_illeage_T_96; // @[riscv_isa.scala 206:25]
  wire  _GEN_5 = _rnRspReport_io_enq_0_valid_T & _T_6; // @[Rename.scala 157:15]
  RePort_6 rnRspReport ( // @[Rename.scala 42:27]
    .clock(rnRspReport_clock),
    .reset(rnRspReport_reset),
    .io_enq_0_ready(rnRspReport_io_enq_0_ready),
    .io_enq_0_valid(rnRspReport_io_enq_0_valid),
    .io_enq_0_bits_alu_isa_lui(rnRspReport_io_enq_0_bits_alu_isa_lui),
    .io_enq_0_bits_alu_isa_auipc(rnRspReport_io_enq_0_bits_alu_isa_auipc),
    .io_enq_0_bits_alu_isa_addi(rnRspReport_io_enq_0_bits_alu_isa_addi),
    .io_enq_0_bits_alu_isa_addiw(rnRspReport_io_enq_0_bits_alu_isa_addiw),
    .io_enq_0_bits_alu_isa_slti(rnRspReport_io_enq_0_bits_alu_isa_slti),
    .io_enq_0_bits_alu_isa_sltiu(rnRspReport_io_enq_0_bits_alu_isa_sltiu),
    .io_enq_0_bits_alu_isa_xori(rnRspReport_io_enq_0_bits_alu_isa_xori),
    .io_enq_0_bits_alu_isa_ori(rnRspReport_io_enq_0_bits_alu_isa_ori),
    .io_enq_0_bits_alu_isa_andi(rnRspReport_io_enq_0_bits_alu_isa_andi),
    .io_enq_0_bits_alu_isa_slli(rnRspReport_io_enq_0_bits_alu_isa_slli),
    .io_enq_0_bits_alu_isa_slliw(rnRspReport_io_enq_0_bits_alu_isa_slliw),
    .io_enq_0_bits_alu_isa_srli(rnRspReport_io_enq_0_bits_alu_isa_srli),
    .io_enq_0_bits_alu_isa_srliw(rnRspReport_io_enq_0_bits_alu_isa_srliw),
    .io_enq_0_bits_alu_isa_srai(rnRspReport_io_enq_0_bits_alu_isa_srai),
    .io_enq_0_bits_alu_isa_sraiw(rnRspReport_io_enq_0_bits_alu_isa_sraiw),
    .io_enq_0_bits_alu_isa_add(rnRspReport_io_enq_0_bits_alu_isa_add),
    .io_enq_0_bits_alu_isa_addw(rnRspReport_io_enq_0_bits_alu_isa_addw),
    .io_enq_0_bits_alu_isa_sub(rnRspReport_io_enq_0_bits_alu_isa_sub),
    .io_enq_0_bits_alu_isa_subw(rnRspReport_io_enq_0_bits_alu_isa_subw),
    .io_enq_0_bits_alu_isa_sll(rnRspReport_io_enq_0_bits_alu_isa_sll),
    .io_enq_0_bits_alu_isa_sllw(rnRspReport_io_enq_0_bits_alu_isa_sllw),
    .io_enq_0_bits_alu_isa_slt(rnRspReport_io_enq_0_bits_alu_isa_slt),
    .io_enq_0_bits_alu_isa_sltu(rnRspReport_io_enq_0_bits_alu_isa_sltu),
    .io_enq_0_bits_alu_isa_xor(rnRspReport_io_enq_0_bits_alu_isa_xor),
    .io_enq_0_bits_alu_isa_srl(rnRspReport_io_enq_0_bits_alu_isa_srl),
    .io_enq_0_bits_alu_isa_srlw(rnRspReport_io_enq_0_bits_alu_isa_srlw),
    .io_enq_0_bits_alu_isa_sra(rnRspReport_io_enq_0_bits_alu_isa_sra),
    .io_enq_0_bits_alu_isa_sraw(rnRspReport_io_enq_0_bits_alu_isa_sraw),
    .io_enq_0_bits_alu_isa_or(rnRspReport_io_enq_0_bits_alu_isa_or),
    .io_enq_0_bits_alu_isa_and(rnRspReport_io_enq_0_bits_alu_isa_and),
    .io_enq_0_bits_alu_isa_wfi(rnRspReport_io_enq_0_bits_alu_isa_wfi),
    .io_enq_0_bits_bru_isa_jal(rnRspReport_io_enq_0_bits_bru_isa_jal),
    .io_enq_0_bits_bru_isa_jalr(rnRspReport_io_enq_0_bits_bru_isa_jalr),
    .io_enq_0_bits_bru_isa_beq(rnRspReport_io_enq_0_bits_bru_isa_beq),
    .io_enq_0_bits_bru_isa_bne(rnRspReport_io_enq_0_bits_bru_isa_bne),
    .io_enq_0_bits_bru_isa_blt(rnRspReport_io_enq_0_bits_bru_isa_blt),
    .io_enq_0_bits_bru_isa_bge(rnRspReport_io_enq_0_bits_bru_isa_bge),
    .io_enq_0_bits_bru_isa_bltu(rnRspReport_io_enq_0_bits_bru_isa_bltu),
    .io_enq_0_bits_bru_isa_bgeu(rnRspReport_io_enq_0_bits_bru_isa_bgeu),
    .io_enq_0_bits_lsu_isa_lb(rnRspReport_io_enq_0_bits_lsu_isa_lb),
    .io_enq_0_bits_lsu_isa_lh(rnRspReport_io_enq_0_bits_lsu_isa_lh),
    .io_enq_0_bits_lsu_isa_lw(rnRspReport_io_enq_0_bits_lsu_isa_lw),
    .io_enq_0_bits_lsu_isa_ld(rnRspReport_io_enq_0_bits_lsu_isa_ld),
    .io_enq_0_bits_lsu_isa_lbu(rnRspReport_io_enq_0_bits_lsu_isa_lbu),
    .io_enq_0_bits_lsu_isa_lhu(rnRspReport_io_enq_0_bits_lsu_isa_lhu),
    .io_enq_0_bits_lsu_isa_lwu(rnRspReport_io_enq_0_bits_lsu_isa_lwu),
    .io_enq_0_bits_lsu_isa_sb(rnRspReport_io_enq_0_bits_lsu_isa_sb),
    .io_enq_0_bits_lsu_isa_sh(rnRspReport_io_enq_0_bits_lsu_isa_sh),
    .io_enq_0_bits_lsu_isa_sw(rnRspReport_io_enq_0_bits_lsu_isa_sw),
    .io_enq_0_bits_lsu_isa_sd(rnRspReport_io_enq_0_bits_lsu_isa_sd),
    .io_enq_0_bits_lsu_isa_fence(rnRspReport_io_enq_0_bits_lsu_isa_fence),
    .io_enq_0_bits_lsu_isa_fence_i(rnRspReport_io_enq_0_bits_lsu_isa_fence_i),
    .io_enq_0_bits_lsu_isa_sfence_vma(rnRspReport_io_enq_0_bits_lsu_isa_sfence_vma),
    .io_enq_0_bits_lsu_isa_lr_w(rnRspReport_io_enq_0_bits_lsu_isa_lr_w),
    .io_enq_0_bits_lsu_isa_sc_w(rnRspReport_io_enq_0_bits_lsu_isa_sc_w),
    .io_enq_0_bits_lsu_isa_amoswap_w(rnRspReport_io_enq_0_bits_lsu_isa_amoswap_w),
    .io_enq_0_bits_lsu_isa_amoadd_w(rnRspReport_io_enq_0_bits_lsu_isa_amoadd_w),
    .io_enq_0_bits_lsu_isa_amoxor_w(rnRspReport_io_enq_0_bits_lsu_isa_amoxor_w),
    .io_enq_0_bits_lsu_isa_amoand_w(rnRspReport_io_enq_0_bits_lsu_isa_amoand_w),
    .io_enq_0_bits_lsu_isa_amoor_w(rnRspReport_io_enq_0_bits_lsu_isa_amoor_w),
    .io_enq_0_bits_lsu_isa_amomin_w(rnRspReport_io_enq_0_bits_lsu_isa_amomin_w),
    .io_enq_0_bits_lsu_isa_amomax_w(rnRspReport_io_enq_0_bits_lsu_isa_amomax_w),
    .io_enq_0_bits_lsu_isa_amominu_w(rnRspReport_io_enq_0_bits_lsu_isa_amominu_w),
    .io_enq_0_bits_lsu_isa_amomaxu_w(rnRspReport_io_enq_0_bits_lsu_isa_amomaxu_w),
    .io_enq_0_bits_lsu_isa_lr_d(rnRspReport_io_enq_0_bits_lsu_isa_lr_d),
    .io_enq_0_bits_lsu_isa_sc_d(rnRspReport_io_enq_0_bits_lsu_isa_sc_d),
    .io_enq_0_bits_lsu_isa_amoswap_d(rnRspReport_io_enq_0_bits_lsu_isa_amoswap_d),
    .io_enq_0_bits_lsu_isa_amoadd_d(rnRspReport_io_enq_0_bits_lsu_isa_amoadd_d),
    .io_enq_0_bits_lsu_isa_amoxor_d(rnRspReport_io_enq_0_bits_lsu_isa_amoxor_d),
    .io_enq_0_bits_lsu_isa_amoand_d(rnRspReport_io_enq_0_bits_lsu_isa_amoand_d),
    .io_enq_0_bits_lsu_isa_amoor_d(rnRspReport_io_enq_0_bits_lsu_isa_amoor_d),
    .io_enq_0_bits_lsu_isa_amomin_d(rnRspReport_io_enq_0_bits_lsu_isa_amomin_d),
    .io_enq_0_bits_lsu_isa_amomax_d(rnRspReport_io_enq_0_bits_lsu_isa_amomax_d),
    .io_enq_0_bits_lsu_isa_amominu_d(rnRspReport_io_enq_0_bits_lsu_isa_amominu_d),
    .io_enq_0_bits_lsu_isa_amomaxu_d(rnRspReport_io_enq_0_bits_lsu_isa_amomaxu_d),
    .io_enq_0_bits_lsu_isa_flw(rnRspReport_io_enq_0_bits_lsu_isa_flw),
    .io_enq_0_bits_lsu_isa_fsw(rnRspReport_io_enq_0_bits_lsu_isa_fsw),
    .io_enq_0_bits_lsu_isa_fld(rnRspReport_io_enq_0_bits_lsu_isa_fld),
    .io_enq_0_bits_lsu_isa_fsd(rnRspReport_io_enq_0_bits_lsu_isa_fsd),
    .io_enq_0_bits_csr_isa_rw(rnRspReport_io_enq_0_bits_csr_isa_rw),
    .io_enq_0_bits_csr_isa_rs(rnRspReport_io_enq_0_bits_csr_isa_rs),
    .io_enq_0_bits_csr_isa_rc(rnRspReport_io_enq_0_bits_csr_isa_rc),
    .io_enq_0_bits_csr_isa_rwi(rnRspReport_io_enq_0_bits_csr_isa_rwi),
    .io_enq_0_bits_csr_isa_rsi(rnRspReport_io_enq_0_bits_csr_isa_rsi),
    .io_enq_0_bits_csr_isa_rci(rnRspReport_io_enq_0_bits_csr_isa_rci),
    .io_enq_0_bits_mul_isa_mul(rnRspReport_io_enq_0_bits_mul_isa_mul),
    .io_enq_0_bits_mul_isa_mulh(rnRspReport_io_enq_0_bits_mul_isa_mulh),
    .io_enq_0_bits_mul_isa_mulhsu(rnRspReport_io_enq_0_bits_mul_isa_mulhsu),
    .io_enq_0_bits_mul_isa_mulhu(rnRspReport_io_enq_0_bits_mul_isa_mulhu),
    .io_enq_0_bits_mul_isa_div(rnRspReport_io_enq_0_bits_mul_isa_div),
    .io_enq_0_bits_mul_isa_divu(rnRspReport_io_enq_0_bits_mul_isa_divu),
    .io_enq_0_bits_mul_isa_rem(rnRspReport_io_enq_0_bits_mul_isa_rem),
    .io_enq_0_bits_mul_isa_remu(rnRspReport_io_enq_0_bits_mul_isa_remu),
    .io_enq_0_bits_mul_isa_mulw(rnRspReport_io_enq_0_bits_mul_isa_mulw),
    .io_enq_0_bits_mul_isa_divw(rnRspReport_io_enq_0_bits_mul_isa_divw),
    .io_enq_0_bits_mul_isa_divuw(rnRspReport_io_enq_0_bits_mul_isa_divuw),
    .io_enq_0_bits_mul_isa_remw(rnRspReport_io_enq_0_bits_mul_isa_remw),
    .io_enq_0_bits_mul_isa_remuw(rnRspReport_io_enq_0_bits_mul_isa_remuw),
    .io_enq_0_bits_fpu_isa_fmadd_s(rnRspReport_io_enq_0_bits_fpu_isa_fmadd_s),
    .io_enq_0_bits_fpu_isa_fmsub_s(rnRspReport_io_enq_0_bits_fpu_isa_fmsub_s),
    .io_enq_0_bits_fpu_isa_fnmsub_s(rnRspReport_io_enq_0_bits_fpu_isa_fnmsub_s),
    .io_enq_0_bits_fpu_isa_fnmadd_s(rnRspReport_io_enq_0_bits_fpu_isa_fnmadd_s),
    .io_enq_0_bits_fpu_isa_fadd_s(rnRspReport_io_enq_0_bits_fpu_isa_fadd_s),
    .io_enq_0_bits_fpu_isa_fsub_s(rnRspReport_io_enq_0_bits_fpu_isa_fsub_s),
    .io_enq_0_bits_fpu_isa_fmul_s(rnRspReport_io_enq_0_bits_fpu_isa_fmul_s),
    .io_enq_0_bits_fpu_isa_fdiv_s(rnRspReport_io_enq_0_bits_fpu_isa_fdiv_s),
    .io_enq_0_bits_fpu_isa_fsqrt_s(rnRspReport_io_enq_0_bits_fpu_isa_fsqrt_s),
    .io_enq_0_bits_fpu_isa_fsgnj_s(rnRspReport_io_enq_0_bits_fpu_isa_fsgnj_s),
    .io_enq_0_bits_fpu_isa_fsgnjn_s(rnRspReport_io_enq_0_bits_fpu_isa_fsgnjn_s),
    .io_enq_0_bits_fpu_isa_fsgnjx_s(rnRspReport_io_enq_0_bits_fpu_isa_fsgnjx_s),
    .io_enq_0_bits_fpu_isa_fmin_s(rnRspReport_io_enq_0_bits_fpu_isa_fmin_s),
    .io_enq_0_bits_fpu_isa_fmax_s(rnRspReport_io_enq_0_bits_fpu_isa_fmax_s),
    .io_enq_0_bits_fpu_isa_fcvt_w_s(rnRspReport_io_enq_0_bits_fpu_isa_fcvt_w_s),
    .io_enq_0_bits_fpu_isa_fcvt_wu_s(rnRspReport_io_enq_0_bits_fpu_isa_fcvt_wu_s),
    .io_enq_0_bits_fpu_isa_fmv_x_w(rnRspReport_io_enq_0_bits_fpu_isa_fmv_x_w),
    .io_enq_0_bits_fpu_isa_feq_s(rnRspReport_io_enq_0_bits_fpu_isa_feq_s),
    .io_enq_0_bits_fpu_isa_flt_s(rnRspReport_io_enq_0_bits_fpu_isa_flt_s),
    .io_enq_0_bits_fpu_isa_fle_s(rnRspReport_io_enq_0_bits_fpu_isa_fle_s),
    .io_enq_0_bits_fpu_isa_fclass_s(rnRspReport_io_enq_0_bits_fpu_isa_fclass_s),
    .io_enq_0_bits_fpu_isa_fcvt_l_s(rnRspReport_io_enq_0_bits_fpu_isa_fcvt_l_s),
    .io_enq_0_bits_fpu_isa_fcvt_lu_s(rnRspReport_io_enq_0_bits_fpu_isa_fcvt_lu_s),
    .io_enq_0_bits_fpu_isa_fmadd_d(rnRspReport_io_enq_0_bits_fpu_isa_fmadd_d),
    .io_enq_0_bits_fpu_isa_fmsub_d(rnRspReport_io_enq_0_bits_fpu_isa_fmsub_d),
    .io_enq_0_bits_fpu_isa_fnmsub_d(rnRspReport_io_enq_0_bits_fpu_isa_fnmsub_d),
    .io_enq_0_bits_fpu_isa_fnmadd_d(rnRspReport_io_enq_0_bits_fpu_isa_fnmadd_d),
    .io_enq_0_bits_fpu_isa_fadd_d(rnRspReport_io_enq_0_bits_fpu_isa_fadd_d),
    .io_enq_0_bits_fpu_isa_fsub_d(rnRspReport_io_enq_0_bits_fpu_isa_fsub_d),
    .io_enq_0_bits_fpu_isa_fmul_d(rnRspReport_io_enq_0_bits_fpu_isa_fmul_d),
    .io_enq_0_bits_fpu_isa_fdiv_d(rnRspReport_io_enq_0_bits_fpu_isa_fdiv_d),
    .io_enq_0_bits_fpu_isa_fsqrt_d(rnRspReport_io_enq_0_bits_fpu_isa_fsqrt_d),
    .io_enq_0_bits_fpu_isa_fsgnj_d(rnRspReport_io_enq_0_bits_fpu_isa_fsgnj_d),
    .io_enq_0_bits_fpu_isa_fsgnjn_d(rnRspReport_io_enq_0_bits_fpu_isa_fsgnjn_d),
    .io_enq_0_bits_fpu_isa_fsgnjx_d(rnRspReport_io_enq_0_bits_fpu_isa_fsgnjx_d),
    .io_enq_0_bits_fpu_isa_fmin_d(rnRspReport_io_enq_0_bits_fpu_isa_fmin_d),
    .io_enq_0_bits_fpu_isa_fmax_d(rnRspReport_io_enq_0_bits_fpu_isa_fmax_d),
    .io_enq_0_bits_fpu_isa_fcvt_s_d(rnRspReport_io_enq_0_bits_fpu_isa_fcvt_s_d),
    .io_enq_0_bits_fpu_isa_fcvt_d_s(rnRspReport_io_enq_0_bits_fpu_isa_fcvt_d_s),
    .io_enq_0_bits_fpu_isa_feq_d(rnRspReport_io_enq_0_bits_fpu_isa_feq_d),
    .io_enq_0_bits_fpu_isa_flt_d(rnRspReport_io_enq_0_bits_fpu_isa_flt_d),
    .io_enq_0_bits_fpu_isa_fle_d(rnRspReport_io_enq_0_bits_fpu_isa_fle_d),
    .io_enq_0_bits_fpu_isa_fclass_d(rnRspReport_io_enq_0_bits_fpu_isa_fclass_d),
    .io_enq_0_bits_fpu_isa_fcvt_w_d(rnRspReport_io_enq_0_bits_fpu_isa_fcvt_w_d),
    .io_enq_0_bits_fpu_isa_fcvt_wu_d(rnRspReport_io_enq_0_bits_fpu_isa_fcvt_wu_d),
    .io_enq_0_bits_fpu_isa_fcvt_l_d(rnRspReport_io_enq_0_bits_fpu_isa_fcvt_l_d),
    .io_enq_0_bits_fpu_isa_fcvt_lu_d(rnRspReport_io_enq_0_bits_fpu_isa_fcvt_lu_d),
    .io_enq_0_bits_fpu_isa_fmv_x_d(rnRspReport_io_enq_0_bits_fpu_isa_fmv_x_d),
    .io_enq_0_bits_param_is_rvc(rnRspReport_io_enq_0_bits_param_is_rvc),
    .io_enq_0_bits_param_pc(rnRspReport_io_enq_0_bits_param_pc),
    .io_enq_0_bits_param_imm(rnRspReport_io_enq_0_bits_param_imm),
    .io_enq_0_bits_param_raw_rs1(rnRspReport_io_enq_0_bits_param_raw_rs1),
    .io_enq_0_bits_phy_rs1(rnRspReport_io_enq_0_bits_phy_rs1),
    .io_enq_0_bits_phy_rs2(rnRspReport_io_enq_0_bits_phy_rs2),
    .io_enq_0_bits_phy_rs3(rnRspReport_io_enq_0_bits_phy_rs3),
    .io_enq_0_bits_phy_rd0(rnRspReport_io_enq_0_bits_phy_rd0),
    .io_deq_0_ready(rnRspReport_io_deq_0_ready),
    .io_deq_0_valid(rnRspReport_io_deq_0_valid),
    .io_deq_0_bits_alu_isa_lui(rnRspReport_io_deq_0_bits_alu_isa_lui),
    .io_deq_0_bits_alu_isa_auipc(rnRspReport_io_deq_0_bits_alu_isa_auipc),
    .io_deq_0_bits_alu_isa_addi(rnRspReport_io_deq_0_bits_alu_isa_addi),
    .io_deq_0_bits_alu_isa_addiw(rnRspReport_io_deq_0_bits_alu_isa_addiw),
    .io_deq_0_bits_alu_isa_slti(rnRspReport_io_deq_0_bits_alu_isa_slti),
    .io_deq_0_bits_alu_isa_sltiu(rnRspReport_io_deq_0_bits_alu_isa_sltiu),
    .io_deq_0_bits_alu_isa_xori(rnRspReport_io_deq_0_bits_alu_isa_xori),
    .io_deq_0_bits_alu_isa_ori(rnRspReport_io_deq_0_bits_alu_isa_ori),
    .io_deq_0_bits_alu_isa_andi(rnRspReport_io_deq_0_bits_alu_isa_andi),
    .io_deq_0_bits_alu_isa_slli(rnRspReport_io_deq_0_bits_alu_isa_slli),
    .io_deq_0_bits_alu_isa_slliw(rnRspReport_io_deq_0_bits_alu_isa_slliw),
    .io_deq_0_bits_alu_isa_srli(rnRspReport_io_deq_0_bits_alu_isa_srli),
    .io_deq_0_bits_alu_isa_srliw(rnRspReport_io_deq_0_bits_alu_isa_srliw),
    .io_deq_0_bits_alu_isa_srai(rnRspReport_io_deq_0_bits_alu_isa_srai),
    .io_deq_0_bits_alu_isa_sraiw(rnRspReport_io_deq_0_bits_alu_isa_sraiw),
    .io_deq_0_bits_alu_isa_add(rnRspReport_io_deq_0_bits_alu_isa_add),
    .io_deq_0_bits_alu_isa_addw(rnRspReport_io_deq_0_bits_alu_isa_addw),
    .io_deq_0_bits_alu_isa_sub(rnRspReport_io_deq_0_bits_alu_isa_sub),
    .io_deq_0_bits_alu_isa_subw(rnRspReport_io_deq_0_bits_alu_isa_subw),
    .io_deq_0_bits_alu_isa_sll(rnRspReport_io_deq_0_bits_alu_isa_sll),
    .io_deq_0_bits_alu_isa_sllw(rnRspReport_io_deq_0_bits_alu_isa_sllw),
    .io_deq_0_bits_alu_isa_slt(rnRspReport_io_deq_0_bits_alu_isa_slt),
    .io_deq_0_bits_alu_isa_sltu(rnRspReport_io_deq_0_bits_alu_isa_sltu),
    .io_deq_0_bits_alu_isa_xor(rnRspReport_io_deq_0_bits_alu_isa_xor),
    .io_deq_0_bits_alu_isa_srl(rnRspReport_io_deq_0_bits_alu_isa_srl),
    .io_deq_0_bits_alu_isa_srlw(rnRspReport_io_deq_0_bits_alu_isa_srlw),
    .io_deq_0_bits_alu_isa_sra(rnRspReport_io_deq_0_bits_alu_isa_sra),
    .io_deq_0_bits_alu_isa_sraw(rnRspReport_io_deq_0_bits_alu_isa_sraw),
    .io_deq_0_bits_alu_isa_or(rnRspReport_io_deq_0_bits_alu_isa_or),
    .io_deq_0_bits_alu_isa_and(rnRspReport_io_deq_0_bits_alu_isa_and),
    .io_deq_0_bits_alu_isa_wfi(rnRspReport_io_deq_0_bits_alu_isa_wfi),
    .io_deq_0_bits_bru_isa_jal(rnRspReport_io_deq_0_bits_bru_isa_jal),
    .io_deq_0_bits_bru_isa_jalr(rnRspReport_io_deq_0_bits_bru_isa_jalr),
    .io_deq_0_bits_bru_isa_beq(rnRspReport_io_deq_0_bits_bru_isa_beq),
    .io_deq_0_bits_bru_isa_bne(rnRspReport_io_deq_0_bits_bru_isa_bne),
    .io_deq_0_bits_bru_isa_blt(rnRspReport_io_deq_0_bits_bru_isa_blt),
    .io_deq_0_bits_bru_isa_bge(rnRspReport_io_deq_0_bits_bru_isa_bge),
    .io_deq_0_bits_bru_isa_bltu(rnRspReport_io_deq_0_bits_bru_isa_bltu),
    .io_deq_0_bits_bru_isa_bgeu(rnRspReport_io_deq_0_bits_bru_isa_bgeu),
    .io_deq_0_bits_lsu_isa_lb(rnRspReport_io_deq_0_bits_lsu_isa_lb),
    .io_deq_0_bits_lsu_isa_lh(rnRspReport_io_deq_0_bits_lsu_isa_lh),
    .io_deq_0_bits_lsu_isa_lw(rnRspReport_io_deq_0_bits_lsu_isa_lw),
    .io_deq_0_bits_lsu_isa_ld(rnRspReport_io_deq_0_bits_lsu_isa_ld),
    .io_deq_0_bits_lsu_isa_lbu(rnRspReport_io_deq_0_bits_lsu_isa_lbu),
    .io_deq_0_bits_lsu_isa_lhu(rnRspReport_io_deq_0_bits_lsu_isa_lhu),
    .io_deq_0_bits_lsu_isa_lwu(rnRspReport_io_deq_0_bits_lsu_isa_lwu),
    .io_deq_0_bits_lsu_isa_sb(rnRspReport_io_deq_0_bits_lsu_isa_sb),
    .io_deq_0_bits_lsu_isa_sh(rnRspReport_io_deq_0_bits_lsu_isa_sh),
    .io_deq_0_bits_lsu_isa_sw(rnRspReport_io_deq_0_bits_lsu_isa_sw),
    .io_deq_0_bits_lsu_isa_sd(rnRspReport_io_deq_0_bits_lsu_isa_sd),
    .io_deq_0_bits_lsu_isa_fence(rnRspReport_io_deq_0_bits_lsu_isa_fence),
    .io_deq_0_bits_lsu_isa_fence_i(rnRspReport_io_deq_0_bits_lsu_isa_fence_i),
    .io_deq_0_bits_lsu_isa_sfence_vma(rnRspReport_io_deq_0_bits_lsu_isa_sfence_vma),
    .io_deq_0_bits_lsu_isa_lr_w(rnRspReport_io_deq_0_bits_lsu_isa_lr_w),
    .io_deq_0_bits_lsu_isa_sc_w(rnRspReport_io_deq_0_bits_lsu_isa_sc_w),
    .io_deq_0_bits_lsu_isa_amoswap_w(rnRspReport_io_deq_0_bits_lsu_isa_amoswap_w),
    .io_deq_0_bits_lsu_isa_amoadd_w(rnRspReport_io_deq_0_bits_lsu_isa_amoadd_w),
    .io_deq_0_bits_lsu_isa_amoxor_w(rnRspReport_io_deq_0_bits_lsu_isa_amoxor_w),
    .io_deq_0_bits_lsu_isa_amoand_w(rnRspReport_io_deq_0_bits_lsu_isa_amoand_w),
    .io_deq_0_bits_lsu_isa_amoor_w(rnRspReport_io_deq_0_bits_lsu_isa_amoor_w),
    .io_deq_0_bits_lsu_isa_amomin_w(rnRspReport_io_deq_0_bits_lsu_isa_amomin_w),
    .io_deq_0_bits_lsu_isa_amomax_w(rnRspReport_io_deq_0_bits_lsu_isa_amomax_w),
    .io_deq_0_bits_lsu_isa_amominu_w(rnRspReport_io_deq_0_bits_lsu_isa_amominu_w),
    .io_deq_0_bits_lsu_isa_amomaxu_w(rnRspReport_io_deq_0_bits_lsu_isa_amomaxu_w),
    .io_deq_0_bits_lsu_isa_lr_d(rnRspReport_io_deq_0_bits_lsu_isa_lr_d),
    .io_deq_0_bits_lsu_isa_sc_d(rnRspReport_io_deq_0_bits_lsu_isa_sc_d),
    .io_deq_0_bits_lsu_isa_amoswap_d(rnRspReport_io_deq_0_bits_lsu_isa_amoswap_d),
    .io_deq_0_bits_lsu_isa_amoadd_d(rnRspReport_io_deq_0_bits_lsu_isa_amoadd_d),
    .io_deq_0_bits_lsu_isa_amoxor_d(rnRspReport_io_deq_0_bits_lsu_isa_amoxor_d),
    .io_deq_0_bits_lsu_isa_amoand_d(rnRspReport_io_deq_0_bits_lsu_isa_amoand_d),
    .io_deq_0_bits_lsu_isa_amoor_d(rnRspReport_io_deq_0_bits_lsu_isa_amoor_d),
    .io_deq_0_bits_lsu_isa_amomin_d(rnRspReport_io_deq_0_bits_lsu_isa_amomin_d),
    .io_deq_0_bits_lsu_isa_amomax_d(rnRspReport_io_deq_0_bits_lsu_isa_amomax_d),
    .io_deq_0_bits_lsu_isa_amominu_d(rnRspReport_io_deq_0_bits_lsu_isa_amominu_d),
    .io_deq_0_bits_lsu_isa_amomaxu_d(rnRspReport_io_deq_0_bits_lsu_isa_amomaxu_d),
    .io_deq_0_bits_lsu_isa_flw(rnRspReport_io_deq_0_bits_lsu_isa_flw),
    .io_deq_0_bits_lsu_isa_fsw(rnRspReport_io_deq_0_bits_lsu_isa_fsw),
    .io_deq_0_bits_lsu_isa_fld(rnRspReport_io_deq_0_bits_lsu_isa_fld),
    .io_deq_0_bits_lsu_isa_fsd(rnRspReport_io_deq_0_bits_lsu_isa_fsd),
    .io_deq_0_bits_csr_isa_rw(rnRspReport_io_deq_0_bits_csr_isa_rw),
    .io_deq_0_bits_csr_isa_rs(rnRspReport_io_deq_0_bits_csr_isa_rs),
    .io_deq_0_bits_csr_isa_rc(rnRspReport_io_deq_0_bits_csr_isa_rc),
    .io_deq_0_bits_csr_isa_rwi(rnRspReport_io_deq_0_bits_csr_isa_rwi),
    .io_deq_0_bits_csr_isa_rsi(rnRspReport_io_deq_0_bits_csr_isa_rsi),
    .io_deq_0_bits_csr_isa_rci(rnRspReport_io_deq_0_bits_csr_isa_rci),
    .io_deq_0_bits_mul_isa_mul(rnRspReport_io_deq_0_bits_mul_isa_mul),
    .io_deq_0_bits_mul_isa_mulh(rnRspReport_io_deq_0_bits_mul_isa_mulh),
    .io_deq_0_bits_mul_isa_mulhsu(rnRspReport_io_deq_0_bits_mul_isa_mulhsu),
    .io_deq_0_bits_mul_isa_mulhu(rnRspReport_io_deq_0_bits_mul_isa_mulhu),
    .io_deq_0_bits_mul_isa_div(rnRspReport_io_deq_0_bits_mul_isa_div),
    .io_deq_0_bits_mul_isa_divu(rnRspReport_io_deq_0_bits_mul_isa_divu),
    .io_deq_0_bits_mul_isa_rem(rnRspReport_io_deq_0_bits_mul_isa_rem),
    .io_deq_0_bits_mul_isa_remu(rnRspReport_io_deq_0_bits_mul_isa_remu),
    .io_deq_0_bits_mul_isa_mulw(rnRspReport_io_deq_0_bits_mul_isa_mulw),
    .io_deq_0_bits_mul_isa_divw(rnRspReport_io_deq_0_bits_mul_isa_divw),
    .io_deq_0_bits_mul_isa_divuw(rnRspReport_io_deq_0_bits_mul_isa_divuw),
    .io_deq_0_bits_mul_isa_remw(rnRspReport_io_deq_0_bits_mul_isa_remw),
    .io_deq_0_bits_mul_isa_remuw(rnRspReport_io_deq_0_bits_mul_isa_remuw),
    .io_deq_0_bits_fpu_isa_fmadd_s(rnRspReport_io_deq_0_bits_fpu_isa_fmadd_s),
    .io_deq_0_bits_fpu_isa_fmsub_s(rnRspReport_io_deq_0_bits_fpu_isa_fmsub_s),
    .io_deq_0_bits_fpu_isa_fnmsub_s(rnRspReport_io_deq_0_bits_fpu_isa_fnmsub_s),
    .io_deq_0_bits_fpu_isa_fnmadd_s(rnRspReport_io_deq_0_bits_fpu_isa_fnmadd_s),
    .io_deq_0_bits_fpu_isa_fadd_s(rnRspReport_io_deq_0_bits_fpu_isa_fadd_s),
    .io_deq_0_bits_fpu_isa_fsub_s(rnRspReport_io_deq_0_bits_fpu_isa_fsub_s),
    .io_deq_0_bits_fpu_isa_fmul_s(rnRspReport_io_deq_0_bits_fpu_isa_fmul_s),
    .io_deq_0_bits_fpu_isa_fdiv_s(rnRspReport_io_deq_0_bits_fpu_isa_fdiv_s),
    .io_deq_0_bits_fpu_isa_fsqrt_s(rnRspReport_io_deq_0_bits_fpu_isa_fsqrt_s),
    .io_deq_0_bits_fpu_isa_fsgnj_s(rnRspReport_io_deq_0_bits_fpu_isa_fsgnj_s),
    .io_deq_0_bits_fpu_isa_fsgnjn_s(rnRspReport_io_deq_0_bits_fpu_isa_fsgnjn_s),
    .io_deq_0_bits_fpu_isa_fsgnjx_s(rnRspReport_io_deq_0_bits_fpu_isa_fsgnjx_s),
    .io_deq_0_bits_fpu_isa_fmin_s(rnRspReport_io_deq_0_bits_fpu_isa_fmin_s),
    .io_deq_0_bits_fpu_isa_fmax_s(rnRspReport_io_deq_0_bits_fpu_isa_fmax_s),
    .io_deq_0_bits_fpu_isa_fcvt_w_s(rnRspReport_io_deq_0_bits_fpu_isa_fcvt_w_s),
    .io_deq_0_bits_fpu_isa_fcvt_wu_s(rnRspReport_io_deq_0_bits_fpu_isa_fcvt_wu_s),
    .io_deq_0_bits_fpu_isa_fmv_x_w(rnRspReport_io_deq_0_bits_fpu_isa_fmv_x_w),
    .io_deq_0_bits_fpu_isa_feq_s(rnRspReport_io_deq_0_bits_fpu_isa_feq_s),
    .io_deq_0_bits_fpu_isa_flt_s(rnRspReport_io_deq_0_bits_fpu_isa_flt_s),
    .io_deq_0_bits_fpu_isa_fle_s(rnRspReport_io_deq_0_bits_fpu_isa_fle_s),
    .io_deq_0_bits_fpu_isa_fclass_s(rnRspReport_io_deq_0_bits_fpu_isa_fclass_s),
    .io_deq_0_bits_fpu_isa_fcvt_l_s(rnRspReport_io_deq_0_bits_fpu_isa_fcvt_l_s),
    .io_deq_0_bits_fpu_isa_fcvt_lu_s(rnRspReport_io_deq_0_bits_fpu_isa_fcvt_lu_s),
    .io_deq_0_bits_fpu_isa_fmadd_d(rnRspReport_io_deq_0_bits_fpu_isa_fmadd_d),
    .io_deq_0_bits_fpu_isa_fmsub_d(rnRspReport_io_deq_0_bits_fpu_isa_fmsub_d),
    .io_deq_0_bits_fpu_isa_fnmsub_d(rnRspReport_io_deq_0_bits_fpu_isa_fnmsub_d),
    .io_deq_0_bits_fpu_isa_fnmadd_d(rnRspReport_io_deq_0_bits_fpu_isa_fnmadd_d),
    .io_deq_0_bits_fpu_isa_fadd_d(rnRspReport_io_deq_0_bits_fpu_isa_fadd_d),
    .io_deq_0_bits_fpu_isa_fsub_d(rnRspReport_io_deq_0_bits_fpu_isa_fsub_d),
    .io_deq_0_bits_fpu_isa_fmul_d(rnRspReport_io_deq_0_bits_fpu_isa_fmul_d),
    .io_deq_0_bits_fpu_isa_fdiv_d(rnRspReport_io_deq_0_bits_fpu_isa_fdiv_d),
    .io_deq_0_bits_fpu_isa_fsqrt_d(rnRspReport_io_deq_0_bits_fpu_isa_fsqrt_d),
    .io_deq_0_bits_fpu_isa_fsgnj_d(rnRspReport_io_deq_0_bits_fpu_isa_fsgnj_d),
    .io_deq_0_bits_fpu_isa_fsgnjn_d(rnRspReport_io_deq_0_bits_fpu_isa_fsgnjn_d),
    .io_deq_0_bits_fpu_isa_fsgnjx_d(rnRspReport_io_deq_0_bits_fpu_isa_fsgnjx_d),
    .io_deq_0_bits_fpu_isa_fmin_d(rnRspReport_io_deq_0_bits_fpu_isa_fmin_d),
    .io_deq_0_bits_fpu_isa_fmax_d(rnRspReport_io_deq_0_bits_fpu_isa_fmax_d),
    .io_deq_0_bits_fpu_isa_fcvt_s_d(rnRspReport_io_deq_0_bits_fpu_isa_fcvt_s_d),
    .io_deq_0_bits_fpu_isa_fcvt_d_s(rnRspReport_io_deq_0_bits_fpu_isa_fcvt_d_s),
    .io_deq_0_bits_fpu_isa_feq_d(rnRspReport_io_deq_0_bits_fpu_isa_feq_d),
    .io_deq_0_bits_fpu_isa_flt_d(rnRspReport_io_deq_0_bits_fpu_isa_flt_d),
    .io_deq_0_bits_fpu_isa_fle_d(rnRspReport_io_deq_0_bits_fpu_isa_fle_d),
    .io_deq_0_bits_fpu_isa_fclass_d(rnRspReport_io_deq_0_bits_fpu_isa_fclass_d),
    .io_deq_0_bits_fpu_isa_fcvt_w_d(rnRspReport_io_deq_0_bits_fpu_isa_fcvt_w_d),
    .io_deq_0_bits_fpu_isa_fcvt_wu_d(rnRspReport_io_deq_0_bits_fpu_isa_fcvt_wu_d),
    .io_deq_0_bits_fpu_isa_fcvt_l_d(rnRspReport_io_deq_0_bits_fpu_isa_fcvt_l_d),
    .io_deq_0_bits_fpu_isa_fcvt_lu_d(rnRspReport_io_deq_0_bits_fpu_isa_fcvt_lu_d),
    .io_deq_0_bits_fpu_isa_fmv_x_d(rnRspReport_io_deq_0_bits_fpu_isa_fmv_x_d),
    .io_deq_0_bits_param_is_rvc(rnRspReport_io_deq_0_bits_param_is_rvc),
    .io_deq_0_bits_param_pc(rnRspReport_io_deq_0_bits_param_pc),
    .io_deq_0_bits_param_imm(rnRspReport_io_deq_0_bits_param_imm),
    .io_deq_0_bits_param_raw_rs1(rnRspReport_io_deq_0_bits_param_raw_rs1),
    .io_deq_0_bits_phy_rs1(rnRspReport_io_deq_0_bits_phy_rs1),
    .io_deq_0_bits_phy_rs2(rnRspReport_io_deq_0_bits_phy_rs2),
    .io_deq_0_bits_phy_rs3(rnRspReport_io_deq_0_bits_phy_rs3),
    .io_deq_0_bits_phy_rd0(rnRspReport_io_deq_0_bits_phy_rd0)
  );
  MultiPortFifo_in1_out1_9 rnRspFifo ( // @[Rename.scala 43:25]
    .clock(rnRspFifo_clock),
    .reset(rnRspFifo_reset),
    .io_enq_0_ready(rnRspFifo_io_enq_0_ready),
    .io_enq_0_valid(rnRspFifo_io_enq_0_valid),
    .io_enq_0_bits_alu_isa_lui(rnRspFifo_io_enq_0_bits_alu_isa_lui),
    .io_enq_0_bits_alu_isa_auipc(rnRspFifo_io_enq_0_bits_alu_isa_auipc),
    .io_enq_0_bits_alu_isa_addi(rnRspFifo_io_enq_0_bits_alu_isa_addi),
    .io_enq_0_bits_alu_isa_addiw(rnRspFifo_io_enq_0_bits_alu_isa_addiw),
    .io_enq_0_bits_alu_isa_slti(rnRspFifo_io_enq_0_bits_alu_isa_slti),
    .io_enq_0_bits_alu_isa_sltiu(rnRspFifo_io_enq_0_bits_alu_isa_sltiu),
    .io_enq_0_bits_alu_isa_xori(rnRspFifo_io_enq_0_bits_alu_isa_xori),
    .io_enq_0_bits_alu_isa_ori(rnRspFifo_io_enq_0_bits_alu_isa_ori),
    .io_enq_0_bits_alu_isa_andi(rnRspFifo_io_enq_0_bits_alu_isa_andi),
    .io_enq_0_bits_alu_isa_slli(rnRspFifo_io_enq_0_bits_alu_isa_slli),
    .io_enq_0_bits_alu_isa_slliw(rnRspFifo_io_enq_0_bits_alu_isa_slliw),
    .io_enq_0_bits_alu_isa_srli(rnRspFifo_io_enq_0_bits_alu_isa_srli),
    .io_enq_0_bits_alu_isa_srliw(rnRspFifo_io_enq_0_bits_alu_isa_srliw),
    .io_enq_0_bits_alu_isa_srai(rnRspFifo_io_enq_0_bits_alu_isa_srai),
    .io_enq_0_bits_alu_isa_sraiw(rnRspFifo_io_enq_0_bits_alu_isa_sraiw),
    .io_enq_0_bits_alu_isa_add(rnRspFifo_io_enq_0_bits_alu_isa_add),
    .io_enq_0_bits_alu_isa_addw(rnRspFifo_io_enq_0_bits_alu_isa_addw),
    .io_enq_0_bits_alu_isa_sub(rnRspFifo_io_enq_0_bits_alu_isa_sub),
    .io_enq_0_bits_alu_isa_subw(rnRspFifo_io_enq_0_bits_alu_isa_subw),
    .io_enq_0_bits_alu_isa_sll(rnRspFifo_io_enq_0_bits_alu_isa_sll),
    .io_enq_0_bits_alu_isa_sllw(rnRspFifo_io_enq_0_bits_alu_isa_sllw),
    .io_enq_0_bits_alu_isa_slt(rnRspFifo_io_enq_0_bits_alu_isa_slt),
    .io_enq_0_bits_alu_isa_sltu(rnRspFifo_io_enq_0_bits_alu_isa_sltu),
    .io_enq_0_bits_alu_isa_xor(rnRspFifo_io_enq_0_bits_alu_isa_xor),
    .io_enq_0_bits_alu_isa_srl(rnRspFifo_io_enq_0_bits_alu_isa_srl),
    .io_enq_0_bits_alu_isa_srlw(rnRspFifo_io_enq_0_bits_alu_isa_srlw),
    .io_enq_0_bits_alu_isa_sra(rnRspFifo_io_enq_0_bits_alu_isa_sra),
    .io_enq_0_bits_alu_isa_sraw(rnRspFifo_io_enq_0_bits_alu_isa_sraw),
    .io_enq_0_bits_alu_isa_or(rnRspFifo_io_enq_0_bits_alu_isa_or),
    .io_enq_0_bits_alu_isa_and(rnRspFifo_io_enq_0_bits_alu_isa_and),
    .io_enq_0_bits_alu_isa_wfi(rnRspFifo_io_enq_0_bits_alu_isa_wfi),
    .io_enq_0_bits_bru_isa_jal(rnRspFifo_io_enq_0_bits_bru_isa_jal),
    .io_enq_0_bits_bru_isa_jalr(rnRspFifo_io_enq_0_bits_bru_isa_jalr),
    .io_enq_0_bits_bru_isa_beq(rnRspFifo_io_enq_0_bits_bru_isa_beq),
    .io_enq_0_bits_bru_isa_bne(rnRspFifo_io_enq_0_bits_bru_isa_bne),
    .io_enq_0_bits_bru_isa_blt(rnRspFifo_io_enq_0_bits_bru_isa_blt),
    .io_enq_0_bits_bru_isa_bge(rnRspFifo_io_enq_0_bits_bru_isa_bge),
    .io_enq_0_bits_bru_isa_bltu(rnRspFifo_io_enq_0_bits_bru_isa_bltu),
    .io_enq_0_bits_bru_isa_bgeu(rnRspFifo_io_enq_0_bits_bru_isa_bgeu),
    .io_enq_0_bits_lsu_isa_lb(rnRspFifo_io_enq_0_bits_lsu_isa_lb),
    .io_enq_0_bits_lsu_isa_lh(rnRspFifo_io_enq_0_bits_lsu_isa_lh),
    .io_enq_0_bits_lsu_isa_lw(rnRspFifo_io_enq_0_bits_lsu_isa_lw),
    .io_enq_0_bits_lsu_isa_ld(rnRspFifo_io_enq_0_bits_lsu_isa_ld),
    .io_enq_0_bits_lsu_isa_lbu(rnRspFifo_io_enq_0_bits_lsu_isa_lbu),
    .io_enq_0_bits_lsu_isa_lhu(rnRspFifo_io_enq_0_bits_lsu_isa_lhu),
    .io_enq_0_bits_lsu_isa_lwu(rnRspFifo_io_enq_0_bits_lsu_isa_lwu),
    .io_enq_0_bits_lsu_isa_sb(rnRspFifo_io_enq_0_bits_lsu_isa_sb),
    .io_enq_0_bits_lsu_isa_sh(rnRspFifo_io_enq_0_bits_lsu_isa_sh),
    .io_enq_0_bits_lsu_isa_sw(rnRspFifo_io_enq_0_bits_lsu_isa_sw),
    .io_enq_0_bits_lsu_isa_sd(rnRspFifo_io_enq_0_bits_lsu_isa_sd),
    .io_enq_0_bits_lsu_isa_fence(rnRspFifo_io_enq_0_bits_lsu_isa_fence),
    .io_enq_0_bits_lsu_isa_fence_i(rnRspFifo_io_enq_0_bits_lsu_isa_fence_i),
    .io_enq_0_bits_lsu_isa_sfence_vma(rnRspFifo_io_enq_0_bits_lsu_isa_sfence_vma),
    .io_enq_0_bits_lsu_isa_lr_w(rnRspFifo_io_enq_0_bits_lsu_isa_lr_w),
    .io_enq_0_bits_lsu_isa_sc_w(rnRspFifo_io_enq_0_bits_lsu_isa_sc_w),
    .io_enq_0_bits_lsu_isa_amoswap_w(rnRspFifo_io_enq_0_bits_lsu_isa_amoswap_w),
    .io_enq_0_bits_lsu_isa_amoadd_w(rnRspFifo_io_enq_0_bits_lsu_isa_amoadd_w),
    .io_enq_0_bits_lsu_isa_amoxor_w(rnRspFifo_io_enq_0_bits_lsu_isa_amoxor_w),
    .io_enq_0_bits_lsu_isa_amoand_w(rnRspFifo_io_enq_0_bits_lsu_isa_amoand_w),
    .io_enq_0_bits_lsu_isa_amoor_w(rnRspFifo_io_enq_0_bits_lsu_isa_amoor_w),
    .io_enq_0_bits_lsu_isa_amomin_w(rnRspFifo_io_enq_0_bits_lsu_isa_amomin_w),
    .io_enq_0_bits_lsu_isa_amomax_w(rnRspFifo_io_enq_0_bits_lsu_isa_amomax_w),
    .io_enq_0_bits_lsu_isa_amominu_w(rnRspFifo_io_enq_0_bits_lsu_isa_amominu_w),
    .io_enq_0_bits_lsu_isa_amomaxu_w(rnRspFifo_io_enq_0_bits_lsu_isa_amomaxu_w),
    .io_enq_0_bits_lsu_isa_lr_d(rnRspFifo_io_enq_0_bits_lsu_isa_lr_d),
    .io_enq_0_bits_lsu_isa_sc_d(rnRspFifo_io_enq_0_bits_lsu_isa_sc_d),
    .io_enq_0_bits_lsu_isa_amoswap_d(rnRspFifo_io_enq_0_bits_lsu_isa_amoswap_d),
    .io_enq_0_bits_lsu_isa_amoadd_d(rnRspFifo_io_enq_0_bits_lsu_isa_amoadd_d),
    .io_enq_0_bits_lsu_isa_amoxor_d(rnRspFifo_io_enq_0_bits_lsu_isa_amoxor_d),
    .io_enq_0_bits_lsu_isa_amoand_d(rnRspFifo_io_enq_0_bits_lsu_isa_amoand_d),
    .io_enq_0_bits_lsu_isa_amoor_d(rnRspFifo_io_enq_0_bits_lsu_isa_amoor_d),
    .io_enq_0_bits_lsu_isa_amomin_d(rnRspFifo_io_enq_0_bits_lsu_isa_amomin_d),
    .io_enq_0_bits_lsu_isa_amomax_d(rnRspFifo_io_enq_0_bits_lsu_isa_amomax_d),
    .io_enq_0_bits_lsu_isa_amominu_d(rnRspFifo_io_enq_0_bits_lsu_isa_amominu_d),
    .io_enq_0_bits_lsu_isa_amomaxu_d(rnRspFifo_io_enq_0_bits_lsu_isa_amomaxu_d),
    .io_enq_0_bits_lsu_isa_flw(rnRspFifo_io_enq_0_bits_lsu_isa_flw),
    .io_enq_0_bits_lsu_isa_fsw(rnRspFifo_io_enq_0_bits_lsu_isa_fsw),
    .io_enq_0_bits_lsu_isa_fld(rnRspFifo_io_enq_0_bits_lsu_isa_fld),
    .io_enq_0_bits_lsu_isa_fsd(rnRspFifo_io_enq_0_bits_lsu_isa_fsd),
    .io_enq_0_bits_csr_isa_rw(rnRspFifo_io_enq_0_bits_csr_isa_rw),
    .io_enq_0_bits_csr_isa_rs(rnRspFifo_io_enq_0_bits_csr_isa_rs),
    .io_enq_0_bits_csr_isa_rc(rnRspFifo_io_enq_0_bits_csr_isa_rc),
    .io_enq_0_bits_csr_isa_rwi(rnRspFifo_io_enq_0_bits_csr_isa_rwi),
    .io_enq_0_bits_csr_isa_rsi(rnRspFifo_io_enq_0_bits_csr_isa_rsi),
    .io_enq_0_bits_csr_isa_rci(rnRspFifo_io_enq_0_bits_csr_isa_rci),
    .io_enq_0_bits_mul_isa_mul(rnRspFifo_io_enq_0_bits_mul_isa_mul),
    .io_enq_0_bits_mul_isa_mulh(rnRspFifo_io_enq_0_bits_mul_isa_mulh),
    .io_enq_0_bits_mul_isa_mulhsu(rnRspFifo_io_enq_0_bits_mul_isa_mulhsu),
    .io_enq_0_bits_mul_isa_mulhu(rnRspFifo_io_enq_0_bits_mul_isa_mulhu),
    .io_enq_0_bits_mul_isa_div(rnRspFifo_io_enq_0_bits_mul_isa_div),
    .io_enq_0_bits_mul_isa_divu(rnRspFifo_io_enq_0_bits_mul_isa_divu),
    .io_enq_0_bits_mul_isa_rem(rnRspFifo_io_enq_0_bits_mul_isa_rem),
    .io_enq_0_bits_mul_isa_remu(rnRspFifo_io_enq_0_bits_mul_isa_remu),
    .io_enq_0_bits_mul_isa_mulw(rnRspFifo_io_enq_0_bits_mul_isa_mulw),
    .io_enq_0_bits_mul_isa_divw(rnRspFifo_io_enq_0_bits_mul_isa_divw),
    .io_enq_0_bits_mul_isa_divuw(rnRspFifo_io_enq_0_bits_mul_isa_divuw),
    .io_enq_0_bits_mul_isa_remw(rnRspFifo_io_enq_0_bits_mul_isa_remw),
    .io_enq_0_bits_mul_isa_remuw(rnRspFifo_io_enq_0_bits_mul_isa_remuw),
    .io_enq_0_bits_fpu_isa_fmadd_s(rnRspFifo_io_enq_0_bits_fpu_isa_fmadd_s),
    .io_enq_0_bits_fpu_isa_fmsub_s(rnRspFifo_io_enq_0_bits_fpu_isa_fmsub_s),
    .io_enq_0_bits_fpu_isa_fnmsub_s(rnRspFifo_io_enq_0_bits_fpu_isa_fnmsub_s),
    .io_enq_0_bits_fpu_isa_fnmadd_s(rnRspFifo_io_enq_0_bits_fpu_isa_fnmadd_s),
    .io_enq_0_bits_fpu_isa_fadd_s(rnRspFifo_io_enq_0_bits_fpu_isa_fadd_s),
    .io_enq_0_bits_fpu_isa_fsub_s(rnRspFifo_io_enq_0_bits_fpu_isa_fsub_s),
    .io_enq_0_bits_fpu_isa_fmul_s(rnRspFifo_io_enq_0_bits_fpu_isa_fmul_s),
    .io_enq_0_bits_fpu_isa_fdiv_s(rnRspFifo_io_enq_0_bits_fpu_isa_fdiv_s),
    .io_enq_0_bits_fpu_isa_fsqrt_s(rnRspFifo_io_enq_0_bits_fpu_isa_fsqrt_s),
    .io_enq_0_bits_fpu_isa_fsgnj_s(rnRspFifo_io_enq_0_bits_fpu_isa_fsgnj_s),
    .io_enq_0_bits_fpu_isa_fsgnjn_s(rnRspFifo_io_enq_0_bits_fpu_isa_fsgnjn_s),
    .io_enq_0_bits_fpu_isa_fsgnjx_s(rnRspFifo_io_enq_0_bits_fpu_isa_fsgnjx_s),
    .io_enq_0_bits_fpu_isa_fmin_s(rnRspFifo_io_enq_0_bits_fpu_isa_fmin_s),
    .io_enq_0_bits_fpu_isa_fmax_s(rnRspFifo_io_enq_0_bits_fpu_isa_fmax_s),
    .io_enq_0_bits_fpu_isa_fcvt_w_s(rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_w_s),
    .io_enq_0_bits_fpu_isa_fcvt_wu_s(rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_wu_s),
    .io_enq_0_bits_fpu_isa_fmv_x_w(rnRspFifo_io_enq_0_bits_fpu_isa_fmv_x_w),
    .io_enq_0_bits_fpu_isa_feq_s(rnRspFifo_io_enq_0_bits_fpu_isa_feq_s),
    .io_enq_0_bits_fpu_isa_flt_s(rnRspFifo_io_enq_0_bits_fpu_isa_flt_s),
    .io_enq_0_bits_fpu_isa_fle_s(rnRspFifo_io_enq_0_bits_fpu_isa_fle_s),
    .io_enq_0_bits_fpu_isa_fclass_s(rnRspFifo_io_enq_0_bits_fpu_isa_fclass_s),
    .io_enq_0_bits_fpu_isa_fcvt_l_s(rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_l_s),
    .io_enq_0_bits_fpu_isa_fcvt_lu_s(rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_lu_s),
    .io_enq_0_bits_fpu_isa_fmadd_d(rnRspFifo_io_enq_0_bits_fpu_isa_fmadd_d),
    .io_enq_0_bits_fpu_isa_fmsub_d(rnRspFifo_io_enq_0_bits_fpu_isa_fmsub_d),
    .io_enq_0_bits_fpu_isa_fnmsub_d(rnRspFifo_io_enq_0_bits_fpu_isa_fnmsub_d),
    .io_enq_0_bits_fpu_isa_fnmadd_d(rnRspFifo_io_enq_0_bits_fpu_isa_fnmadd_d),
    .io_enq_0_bits_fpu_isa_fadd_d(rnRspFifo_io_enq_0_bits_fpu_isa_fadd_d),
    .io_enq_0_bits_fpu_isa_fsub_d(rnRspFifo_io_enq_0_bits_fpu_isa_fsub_d),
    .io_enq_0_bits_fpu_isa_fmul_d(rnRspFifo_io_enq_0_bits_fpu_isa_fmul_d),
    .io_enq_0_bits_fpu_isa_fdiv_d(rnRspFifo_io_enq_0_bits_fpu_isa_fdiv_d),
    .io_enq_0_bits_fpu_isa_fsqrt_d(rnRspFifo_io_enq_0_bits_fpu_isa_fsqrt_d),
    .io_enq_0_bits_fpu_isa_fsgnj_d(rnRspFifo_io_enq_0_bits_fpu_isa_fsgnj_d),
    .io_enq_0_bits_fpu_isa_fsgnjn_d(rnRspFifo_io_enq_0_bits_fpu_isa_fsgnjn_d),
    .io_enq_0_bits_fpu_isa_fsgnjx_d(rnRspFifo_io_enq_0_bits_fpu_isa_fsgnjx_d),
    .io_enq_0_bits_fpu_isa_fmin_d(rnRspFifo_io_enq_0_bits_fpu_isa_fmin_d),
    .io_enq_0_bits_fpu_isa_fmax_d(rnRspFifo_io_enq_0_bits_fpu_isa_fmax_d),
    .io_enq_0_bits_fpu_isa_fcvt_s_d(rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_s_d),
    .io_enq_0_bits_fpu_isa_fcvt_d_s(rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_d_s),
    .io_enq_0_bits_fpu_isa_feq_d(rnRspFifo_io_enq_0_bits_fpu_isa_feq_d),
    .io_enq_0_bits_fpu_isa_flt_d(rnRspFifo_io_enq_0_bits_fpu_isa_flt_d),
    .io_enq_0_bits_fpu_isa_fle_d(rnRspFifo_io_enq_0_bits_fpu_isa_fle_d),
    .io_enq_0_bits_fpu_isa_fclass_d(rnRspFifo_io_enq_0_bits_fpu_isa_fclass_d),
    .io_enq_0_bits_fpu_isa_fcvt_w_d(rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_w_d),
    .io_enq_0_bits_fpu_isa_fcvt_wu_d(rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_wu_d),
    .io_enq_0_bits_fpu_isa_fcvt_l_d(rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_l_d),
    .io_enq_0_bits_fpu_isa_fcvt_lu_d(rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_lu_d),
    .io_enq_0_bits_fpu_isa_fmv_x_d(rnRspFifo_io_enq_0_bits_fpu_isa_fmv_x_d),
    .io_enq_0_bits_param_is_rvc(rnRspFifo_io_enq_0_bits_param_is_rvc),
    .io_enq_0_bits_param_pc(rnRspFifo_io_enq_0_bits_param_pc),
    .io_enq_0_bits_param_imm(rnRspFifo_io_enq_0_bits_param_imm),
    .io_enq_0_bits_param_raw_rs1(rnRspFifo_io_enq_0_bits_param_raw_rs1),
    .io_enq_0_bits_phy_rs1(rnRspFifo_io_enq_0_bits_phy_rs1),
    .io_enq_0_bits_phy_rs2(rnRspFifo_io_enq_0_bits_phy_rs2),
    .io_enq_0_bits_phy_rs3(rnRspFifo_io_enq_0_bits_phy_rs3),
    .io_enq_0_bits_phy_rd0(rnRspFifo_io_enq_0_bits_phy_rd0),
    .io_deq_0_valid(rnRspFifo_io_deq_0_valid),
    .io_deq_0_bits_alu_isa_lui(rnRspFifo_io_deq_0_bits_alu_isa_lui),
    .io_deq_0_bits_alu_isa_auipc(rnRspFifo_io_deq_0_bits_alu_isa_auipc),
    .io_deq_0_bits_alu_isa_addi(rnRspFifo_io_deq_0_bits_alu_isa_addi),
    .io_deq_0_bits_alu_isa_addiw(rnRspFifo_io_deq_0_bits_alu_isa_addiw),
    .io_deq_0_bits_alu_isa_slti(rnRspFifo_io_deq_0_bits_alu_isa_slti),
    .io_deq_0_bits_alu_isa_sltiu(rnRspFifo_io_deq_0_bits_alu_isa_sltiu),
    .io_deq_0_bits_alu_isa_xori(rnRspFifo_io_deq_0_bits_alu_isa_xori),
    .io_deq_0_bits_alu_isa_ori(rnRspFifo_io_deq_0_bits_alu_isa_ori),
    .io_deq_0_bits_alu_isa_andi(rnRspFifo_io_deq_0_bits_alu_isa_andi),
    .io_deq_0_bits_alu_isa_slli(rnRspFifo_io_deq_0_bits_alu_isa_slli),
    .io_deq_0_bits_alu_isa_slliw(rnRspFifo_io_deq_0_bits_alu_isa_slliw),
    .io_deq_0_bits_alu_isa_srli(rnRspFifo_io_deq_0_bits_alu_isa_srli),
    .io_deq_0_bits_alu_isa_srliw(rnRspFifo_io_deq_0_bits_alu_isa_srliw),
    .io_deq_0_bits_alu_isa_srai(rnRspFifo_io_deq_0_bits_alu_isa_srai),
    .io_deq_0_bits_alu_isa_sraiw(rnRspFifo_io_deq_0_bits_alu_isa_sraiw),
    .io_deq_0_bits_alu_isa_add(rnRspFifo_io_deq_0_bits_alu_isa_add),
    .io_deq_0_bits_alu_isa_addw(rnRspFifo_io_deq_0_bits_alu_isa_addw),
    .io_deq_0_bits_alu_isa_sub(rnRspFifo_io_deq_0_bits_alu_isa_sub),
    .io_deq_0_bits_alu_isa_subw(rnRspFifo_io_deq_0_bits_alu_isa_subw),
    .io_deq_0_bits_alu_isa_sll(rnRspFifo_io_deq_0_bits_alu_isa_sll),
    .io_deq_0_bits_alu_isa_sllw(rnRspFifo_io_deq_0_bits_alu_isa_sllw),
    .io_deq_0_bits_alu_isa_slt(rnRspFifo_io_deq_0_bits_alu_isa_slt),
    .io_deq_0_bits_alu_isa_sltu(rnRspFifo_io_deq_0_bits_alu_isa_sltu),
    .io_deq_0_bits_alu_isa_xor(rnRspFifo_io_deq_0_bits_alu_isa_xor),
    .io_deq_0_bits_alu_isa_srl(rnRspFifo_io_deq_0_bits_alu_isa_srl),
    .io_deq_0_bits_alu_isa_srlw(rnRspFifo_io_deq_0_bits_alu_isa_srlw),
    .io_deq_0_bits_alu_isa_sra(rnRspFifo_io_deq_0_bits_alu_isa_sra),
    .io_deq_0_bits_alu_isa_sraw(rnRspFifo_io_deq_0_bits_alu_isa_sraw),
    .io_deq_0_bits_alu_isa_or(rnRspFifo_io_deq_0_bits_alu_isa_or),
    .io_deq_0_bits_alu_isa_and(rnRspFifo_io_deq_0_bits_alu_isa_and),
    .io_deq_0_bits_alu_isa_wfi(rnRspFifo_io_deq_0_bits_alu_isa_wfi),
    .io_deq_0_bits_bru_isa_jal(rnRspFifo_io_deq_0_bits_bru_isa_jal),
    .io_deq_0_bits_bru_isa_jalr(rnRspFifo_io_deq_0_bits_bru_isa_jalr),
    .io_deq_0_bits_bru_isa_beq(rnRspFifo_io_deq_0_bits_bru_isa_beq),
    .io_deq_0_bits_bru_isa_bne(rnRspFifo_io_deq_0_bits_bru_isa_bne),
    .io_deq_0_bits_bru_isa_blt(rnRspFifo_io_deq_0_bits_bru_isa_blt),
    .io_deq_0_bits_bru_isa_bge(rnRspFifo_io_deq_0_bits_bru_isa_bge),
    .io_deq_0_bits_bru_isa_bltu(rnRspFifo_io_deq_0_bits_bru_isa_bltu),
    .io_deq_0_bits_bru_isa_bgeu(rnRspFifo_io_deq_0_bits_bru_isa_bgeu),
    .io_deq_0_bits_lsu_isa_lb(rnRspFifo_io_deq_0_bits_lsu_isa_lb),
    .io_deq_0_bits_lsu_isa_lh(rnRspFifo_io_deq_0_bits_lsu_isa_lh),
    .io_deq_0_bits_lsu_isa_lw(rnRspFifo_io_deq_0_bits_lsu_isa_lw),
    .io_deq_0_bits_lsu_isa_ld(rnRspFifo_io_deq_0_bits_lsu_isa_ld),
    .io_deq_0_bits_lsu_isa_lbu(rnRspFifo_io_deq_0_bits_lsu_isa_lbu),
    .io_deq_0_bits_lsu_isa_lhu(rnRspFifo_io_deq_0_bits_lsu_isa_lhu),
    .io_deq_0_bits_lsu_isa_lwu(rnRspFifo_io_deq_0_bits_lsu_isa_lwu),
    .io_deq_0_bits_lsu_isa_sb(rnRspFifo_io_deq_0_bits_lsu_isa_sb),
    .io_deq_0_bits_lsu_isa_sh(rnRspFifo_io_deq_0_bits_lsu_isa_sh),
    .io_deq_0_bits_lsu_isa_sw(rnRspFifo_io_deq_0_bits_lsu_isa_sw),
    .io_deq_0_bits_lsu_isa_sd(rnRspFifo_io_deq_0_bits_lsu_isa_sd),
    .io_deq_0_bits_lsu_isa_fence(rnRspFifo_io_deq_0_bits_lsu_isa_fence),
    .io_deq_0_bits_lsu_isa_fence_i(rnRspFifo_io_deq_0_bits_lsu_isa_fence_i),
    .io_deq_0_bits_lsu_isa_sfence_vma(rnRspFifo_io_deq_0_bits_lsu_isa_sfence_vma),
    .io_deq_0_bits_lsu_isa_lr_w(rnRspFifo_io_deq_0_bits_lsu_isa_lr_w),
    .io_deq_0_bits_lsu_isa_sc_w(rnRspFifo_io_deq_0_bits_lsu_isa_sc_w),
    .io_deq_0_bits_lsu_isa_amoswap_w(rnRspFifo_io_deq_0_bits_lsu_isa_amoswap_w),
    .io_deq_0_bits_lsu_isa_amoadd_w(rnRspFifo_io_deq_0_bits_lsu_isa_amoadd_w),
    .io_deq_0_bits_lsu_isa_amoxor_w(rnRspFifo_io_deq_0_bits_lsu_isa_amoxor_w),
    .io_deq_0_bits_lsu_isa_amoand_w(rnRspFifo_io_deq_0_bits_lsu_isa_amoand_w),
    .io_deq_0_bits_lsu_isa_amoor_w(rnRspFifo_io_deq_0_bits_lsu_isa_amoor_w),
    .io_deq_0_bits_lsu_isa_amomin_w(rnRspFifo_io_deq_0_bits_lsu_isa_amomin_w),
    .io_deq_0_bits_lsu_isa_amomax_w(rnRspFifo_io_deq_0_bits_lsu_isa_amomax_w),
    .io_deq_0_bits_lsu_isa_amominu_w(rnRspFifo_io_deq_0_bits_lsu_isa_amominu_w),
    .io_deq_0_bits_lsu_isa_amomaxu_w(rnRspFifo_io_deq_0_bits_lsu_isa_amomaxu_w),
    .io_deq_0_bits_lsu_isa_lr_d(rnRspFifo_io_deq_0_bits_lsu_isa_lr_d),
    .io_deq_0_bits_lsu_isa_sc_d(rnRspFifo_io_deq_0_bits_lsu_isa_sc_d),
    .io_deq_0_bits_lsu_isa_amoswap_d(rnRspFifo_io_deq_0_bits_lsu_isa_amoswap_d),
    .io_deq_0_bits_lsu_isa_amoadd_d(rnRspFifo_io_deq_0_bits_lsu_isa_amoadd_d),
    .io_deq_0_bits_lsu_isa_amoxor_d(rnRspFifo_io_deq_0_bits_lsu_isa_amoxor_d),
    .io_deq_0_bits_lsu_isa_amoand_d(rnRspFifo_io_deq_0_bits_lsu_isa_amoand_d),
    .io_deq_0_bits_lsu_isa_amoor_d(rnRspFifo_io_deq_0_bits_lsu_isa_amoor_d),
    .io_deq_0_bits_lsu_isa_amomin_d(rnRspFifo_io_deq_0_bits_lsu_isa_amomin_d),
    .io_deq_0_bits_lsu_isa_amomax_d(rnRspFifo_io_deq_0_bits_lsu_isa_amomax_d),
    .io_deq_0_bits_lsu_isa_amominu_d(rnRspFifo_io_deq_0_bits_lsu_isa_amominu_d),
    .io_deq_0_bits_lsu_isa_amomaxu_d(rnRspFifo_io_deq_0_bits_lsu_isa_amomaxu_d),
    .io_deq_0_bits_lsu_isa_flw(rnRspFifo_io_deq_0_bits_lsu_isa_flw),
    .io_deq_0_bits_lsu_isa_fsw(rnRspFifo_io_deq_0_bits_lsu_isa_fsw),
    .io_deq_0_bits_lsu_isa_fld(rnRspFifo_io_deq_0_bits_lsu_isa_fld),
    .io_deq_0_bits_lsu_isa_fsd(rnRspFifo_io_deq_0_bits_lsu_isa_fsd),
    .io_deq_0_bits_csr_isa_rw(rnRspFifo_io_deq_0_bits_csr_isa_rw),
    .io_deq_0_bits_csr_isa_rs(rnRspFifo_io_deq_0_bits_csr_isa_rs),
    .io_deq_0_bits_csr_isa_rc(rnRspFifo_io_deq_0_bits_csr_isa_rc),
    .io_deq_0_bits_csr_isa_rwi(rnRspFifo_io_deq_0_bits_csr_isa_rwi),
    .io_deq_0_bits_csr_isa_rsi(rnRspFifo_io_deq_0_bits_csr_isa_rsi),
    .io_deq_0_bits_csr_isa_rci(rnRspFifo_io_deq_0_bits_csr_isa_rci),
    .io_deq_0_bits_mul_isa_mul(rnRspFifo_io_deq_0_bits_mul_isa_mul),
    .io_deq_0_bits_mul_isa_mulh(rnRspFifo_io_deq_0_bits_mul_isa_mulh),
    .io_deq_0_bits_mul_isa_mulhsu(rnRspFifo_io_deq_0_bits_mul_isa_mulhsu),
    .io_deq_0_bits_mul_isa_mulhu(rnRspFifo_io_deq_0_bits_mul_isa_mulhu),
    .io_deq_0_bits_mul_isa_div(rnRspFifo_io_deq_0_bits_mul_isa_div),
    .io_deq_0_bits_mul_isa_divu(rnRspFifo_io_deq_0_bits_mul_isa_divu),
    .io_deq_0_bits_mul_isa_rem(rnRspFifo_io_deq_0_bits_mul_isa_rem),
    .io_deq_0_bits_mul_isa_remu(rnRspFifo_io_deq_0_bits_mul_isa_remu),
    .io_deq_0_bits_mul_isa_mulw(rnRspFifo_io_deq_0_bits_mul_isa_mulw),
    .io_deq_0_bits_mul_isa_divw(rnRspFifo_io_deq_0_bits_mul_isa_divw),
    .io_deq_0_bits_mul_isa_divuw(rnRspFifo_io_deq_0_bits_mul_isa_divuw),
    .io_deq_0_bits_mul_isa_remw(rnRspFifo_io_deq_0_bits_mul_isa_remw),
    .io_deq_0_bits_mul_isa_remuw(rnRspFifo_io_deq_0_bits_mul_isa_remuw),
    .io_deq_0_bits_fpu_isa_fmadd_s(rnRspFifo_io_deq_0_bits_fpu_isa_fmadd_s),
    .io_deq_0_bits_fpu_isa_fmsub_s(rnRspFifo_io_deq_0_bits_fpu_isa_fmsub_s),
    .io_deq_0_bits_fpu_isa_fnmsub_s(rnRspFifo_io_deq_0_bits_fpu_isa_fnmsub_s),
    .io_deq_0_bits_fpu_isa_fnmadd_s(rnRspFifo_io_deq_0_bits_fpu_isa_fnmadd_s),
    .io_deq_0_bits_fpu_isa_fadd_s(rnRspFifo_io_deq_0_bits_fpu_isa_fadd_s),
    .io_deq_0_bits_fpu_isa_fsub_s(rnRspFifo_io_deq_0_bits_fpu_isa_fsub_s),
    .io_deq_0_bits_fpu_isa_fmul_s(rnRspFifo_io_deq_0_bits_fpu_isa_fmul_s),
    .io_deq_0_bits_fpu_isa_fdiv_s(rnRspFifo_io_deq_0_bits_fpu_isa_fdiv_s),
    .io_deq_0_bits_fpu_isa_fsqrt_s(rnRspFifo_io_deq_0_bits_fpu_isa_fsqrt_s),
    .io_deq_0_bits_fpu_isa_fsgnj_s(rnRspFifo_io_deq_0_bits_fpu_isa_fsgnj_s),
    .io_deq_0_bits_fpu_isa_fsgnjn_s(rnRspFifo_io_deq_0_bits_fpu_isa_fsgnjn_s),
    .io_deq_0_bits_fpu_isa_fsgnjx_s(rnRspFifo_io_deq_0_bits_fpu_isa_fsgnjx_s),
    .io_deq_0_bits_fpu_isa_fmin_s(rnRspFifo_io_deq_0_bits_fpu_isa_fmin_s),
    .io_deq_0_bits_fpu_isa_fmax_s(rnRspFifo_io_deq_0_bits_fpu_isa_fmax_s),
    .io_deq_0_bits_fpu_isa_fcvt_w_s(rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_w_s),
    .io_deq_0_bits_fpu_isa_fcvt_wu_s(rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_wu_s),
    .io_deq_0_bits_fpu_isa_fmv_x_w(rnRspFifo_io_deq_0_bits_fpu_isa_fmv_x_w),
    .io_deq_0_bits_fpu_isa_feq_s(rnRspFifo_io_deq_0_bits_fpu_isa_feq_s),
    .io_deq_0_bits_fpu_isa_flt_s(rnRspFifo_io_deq_0_bits_fpu_isa_flt_s),
    .io_deq_0_bits_fpu_isa_fle_s(rnRspFifo_io_deq_0_bits_fpu_isa_fle_s),
    .io_deq_0_bits_fpu_isa_fclass_s(rnRspFifo_io_deq_0_bits_fpu_isa_fclass_s),
    .io_deq_0_bits_fpu_isa_fcvt_l_s(rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_l_s),
    .io_deq_0_bits_fpu_isa_fcvt_lu_s(rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_lu_s),
    .io_deq_0_bits_fpu_isa_fmadd_d(rnRspFifo_io_deq_0_bits_fpu_isa_fmadd_d),
    .io_deq_0_bits_fpu_isa_fmsub_d(rnRspFifo_io_deq_0_bits_fpu_isa_fmsub_d),
    .io_deq_0_bits_fpu_isa_fnmsub_d(rnRspFifo_io_deq_0_bits_fpu_isa_fnmsub_d),
    .io_deq_0_bits_fpu_isa_fnmadd_d(rnRspFifo_io_deq_0_bits_fpu_isa_fnmadd_d),
    .io_deq_0_bits_fpu_isa_fadd_d(rnRspFifo_io_deq_0_bits_fpu_isa_fadd_d),
    .io_deq_0_bits_fpu_isa_fsub_d(rnRspFifo_io_deq_0_bits_fpu_isa_fsub_d),
    .io_deq_0_bits_fpu_isa_fmul_d(rnRspFifo_io_deq_0_bits_fpu_isa_fmul_d),
    .io_deq_0_bits_fpu_isa_fdiv_d(rnRspFifo_io_deq_0_bits_fpu_isa_fdiv_d),
    .io_deq_0_bits_fpu_isa_fsqrt_d(rnRspFifo_io_deq_0_bits_fpu_isa_fsqrt_d),
    .io_deq_0_bits_fpu_isa_fsgnj_d(rnRspFifo_io_deq_0_bits_fpu_isa_fsgnj_d),
    .io_deq_0_bits_fpu_isa_fsgnjn_d(rnRspFifo_io_deq_0_bits_fpu_isa_fsgnjn_d),
    .io_deq_0_bits_fpu_isa_fsgnjx_d(rnRspFifo_io_deq_0_bits_fpu_isa_fsgnjx_d),
    .io_deq_0_bits_fpu_isa_fmin_d(rnRspFifo_io_deq_0_bits_fpu_isa_fmin_d),
    .io_deq_0_bits_fpu_isa_fmax_d(rnRspFifo_io_deq_0_bits_fpu_isa_fmax_d),
    .io_deq_0_bits_fpu_isa_fcvt_s_d(rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_s_d),
    .io_deq_0_bits_fpu_isa_fcvt_d_s(rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_d_s),
    .io_deq_0_bits_fpu_isa_feq_d(rnRspFifo_io_deq_0_bits_fpu_isa_feq_d),
    .io_deq_0_bits_fpu_isa_flt_d(rnRspFifo_io_deq_0_bits_fpu_isa_flt_d),
    .io_deq_0_bits_fpu_isa_fle_d(rnRspFifo_io_deq_0_bits_fpu_isa_fle_d),
    .io_deq_0_bits_fpu_isa_fclass_d(rnRspFifo_io_deq_0_bits_fpu_isa_fclass_d),
    .io_deq_0_bits_fpu_isa_fcvt_w_d(rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_w_d),
    .io_deq_0_bits_fpu_isa_fcvt_wu_d(rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_wu_d),
    .io_deq_0_bits_fpu_isa_fcvt_l_d(rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_l_d),
    .io_deq_0_bits_fpu_isa_fcvt_lu_d(rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_lu_d),
    .io_deq_0_bits_fpu_isa_fmv_x_d(rnRspFifo_io_deq_0_bits_fpu_isa_fmv_x_d),
    .io_deq_0_bits_param_is_rvc(rnRspFifo_io_deq_0_bits_param_is_rvc),
    .io_deq_0_bits_param_pc(rnRspFifo_io_deq_0_bits_param_pc),
    .io_deq_0_bits_param_imm(rnRspFifo_io_deq_0_bits_param_imm),
    .io_deq_0_bits_param_raw_rs1(rnRspFifo_io_deq_0_bits_param_raw_rs1),
    .io_deq_0_bits_phy_rs1(rnRspFifo_io_deq_0_bits_phy_rs1),
    .io_deq_0_bits_phy_rs2(rnRspFifo_io_deq_0_bits_phy_rs2),
    .io_deq_0_bits_phy_rs3(rnRspFifo_io_deq_0_bits_phy_rs3),
    .io_deq_0_bits_phy_rd0(rnRspFifo_io_deq_0_bits_phy_rd0)
  );
  MultiPortFifo_in1_out1_10 reOrder_fifo_i ( // @[Rename.scala 48:21]
    .clock(reOrder_fifo_i_clock),
    .reset(reOrder_fifo_i_reset),
    .io_enq_0_ready(reOrder_fifo_i_io_enq_0_ready),
    .io_enq_0_valid(reOrder_fifo_i_io_enq_0_valid),
    .io_enq_0_bits_pc(reOrder_fifo_i_io_enq_0_bits_pc),
    .io_enq_0_bits_rd0_raw(reOrder_fifo_i_io_enq_0_bits_rd0_raw),
    .io_enq_0_bits_rd0_phy(reOrder_fifo_i_io_enq_0_bits_rd0_phy),
    .io_enq_0_bits_is_branch(reOrder_fifo_i_io_enq_0_bits_is_branch),
    .io_enq_0_bits_is_jalr(reOrder_fifo_i_io_enq_0_bits_is_jalr),
    .io_enq_0_bits_is_lu(reOrder_fifo_i_io_enq_0_bits_is_lu),
    .io_enq_0_bits_is_su(reOrder_fifo_i_io_enq_0_bits_is_su),
    .io_enq_0_bits_is_amo(reOrder_fifo_i_io_enq_0_bits_is_amo),
    .io_enq_0_bits_is_fence_i(reOrder_fifo_i_io_enq_0_bits_is_fence_i),
    .io_enq_0_bits_is_sfence_vma(reOrder_fifo_i_io_enq_0_bits_is_sfence_vma),
    .io_enq_0_bits_is_wfi(reOrder_fifo_i_io_enq_0_bits_is_wfi),
    .io_enq_0_bits_is_csr(reOrder_fifo_i_io_enq_0_bits_is_csr),
    .io_enq_0_bits_is_fpu(reOrder_fifo_i_io_enq_0_bits_is_fpu),
    .io_enq_0_bits_is_fcsr(reOrder_fifo_i_io_enq_0_bits_is_fcsr),
    .io_enq_0_bits_is_xcmm(reOrder_fifo_i_io_enq_0_bits_is_xcmm),
    .io_enq_0_bits_privil_ecall(reOrder_fifo_i_io_enq_0_bits_privil_ecall),
    .io_enq_0_bits_privil_ebreak(reOrder_fifo_i_io_enq_0_bits_privil_ebreak),
    .io_enq_0_bits_privil_mret(reOrder_fifo_i_io_enq_0_bits_privil_mret),
    .io_enq_0_bits_privil_sret(reOrder_fifo_i_io_enq_0_bits_privil_sret),
    .io_enq_0_bits_privil_dret(reOrder_fifo_i_io_enq_0_bits_privil_dret),
    .io_enq_0_bits_privil_is_access_fault(reOrder_fifo_i_io_enq_0_bits_privil_is_access_fault),
    .io_enq_0_bits_privil_is_paging_fault(reOrder_fifo_i_io_enq_0_bits_privil_is_paging_fault),
    .io_enq_0_bits_is_illeage(reOrder_fifo_i_io_enq_0_bits_is_illeage),
    .io_deq_0_ready(reOrder_fifo_i_io_deq_0_ready),
    .io_deq_0_valid(reOrder_fifo_i_io_deq_0_valid),
    .io_deq_0_bits_pc(reOrder_fifo_i_io_deq_0_bits_pc),
    .io_deq_0_bits_rd0_raw(reOrder_fifo_i_io_deq_0_bits_rd0_raw),
    .io_deq_0_bits_rd0_phy(reOrder_fifo_i_io_deq_0_bits_rd0_phy),
    .io_deq_0_bits_is_branch(reOrder_fifo_i_io_deq_0_bits_is_branch),
    .io_deq_0_bits_is_jalr(reOrder_fifo_i_io_deq_0_bits_is_jalr),
    .io_deq_0_bits_is_lu(reOrder_fifo_i_io_deq_0_bits_is_lu),
    .io_deq_0_bits_is_su(reOrder_fifo_i_io_deq_0_bits_is_su),
    .io_deq_0_bits_is_amo(reOrder_fifo_i_io_deq_0_bits_is_amo),
    .io_deq_0_bits_is_fence_i(reOrder_fifo_i_io_deq_0_bits_is_fence_i),
    .io_deq_0_bits_is_sfence_vma(reOrder_fifo_i_io_deq_0_bits_is_sfence_vma),
    .io_deq_0_bits_is_wfi(reOrder_fifo_i_io_deq_0_bits_is_wfi),
    .io_deq_0_bits_is_csr(reOrder_fifo_i_io_deq_0_bits_is_csr),
    .io_deq_0_bits_is_fpu(reOrder_fifo_i_io_deq_0_bits_is_fpu),
    .io_deq_0_bits_is_fcsr(reOrder_fifo_i_io_deq_0_bits_is_fcsr),
    .io_deq_0_bits_is_xcmm(reOrder_fifo_i_io_deq_0_bits_is_xcmm),
    .io_deq_0_bits_privil_ecall(reOrder_fifo_i_io_deq_0_bits_privil_ecall),
    .io_deq_0_bits_privil_ebreak(reOrder_fifo_i_io_deq_0_bits_privil_ebreak),
    .io_deq_0_bits_privil_mret(reOrder_fifo_i_io_deq_0_bits_privil_mret),
    .io_deq_0_bits_privil_sret(reOrder_fifo_i_io_deq_0_bits_privil_sret),
    .io_deq_0_bits_privil_dret(reOrder_fifo_i_io_deq_0_bits_privil_dret),
    .io_deq_0_bits_privil_is_access_fault(reOrder_fifo_i_io_deq_0_bits_privil_is_access_fault),
    .io_deq_0_bits_privil_is_paging_fault(reOrder_fifo_i_io_deq_0_bits_privil_is_paging_fault),
    .io_deq_0_bits_is_illeage(reOrder_fifo_i_io_deq_0_bits_is_illeage)
  );
  assign io_rnReq_0_ready = io_xRename_0_req_ready & reOrder_fifo_i_io_enq_0_ready & rnRspFifo_io_enq_0_ready; // @[Rename.scala 91:92]
  assign io_rnRsp_0_valid = rnRspFifo_io_deq_0_valid; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_lui = rnRspFifo_io_deq_0_bits_alu_isa_lui; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_auipc = rnRspFifo_io_deq_0_bits_alu_isa_auipc; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_addi = rnRspFifo_io_deq_0_bits_alu_isa_addi; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_addiw = rnRspFifo_io_deq_0_bits_alu_isa_addiw; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_slti = rnRspFifo_io_deq_0_bits_alu_isa_slti; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_sltiu = rnRspFifo_io_deq_0_bits_alu_isa_sltiu; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_xori = rnRspFifo_io_deq_0_bits_alu_isa_xori; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_ori = rnRspFifo_io_deq_0_bits_alu_isa_ori; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_andi = rnRspFifo_io_deq_0_bits_alu_isa_andi; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_slli = rnRspFifo_io_deq_0_bits_alu_isa_slli; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_slliw = rnRspFifo_io_deq_0_bits_alu_isa_slliw; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_srli = rnRspFifo_io_deq_0_bits_alu_isa_srli; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_srliw = rnRspFifo_io_deq_0_bits_alu_isa_srliw; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_srai = rnRspFifo_io_deq_0_bits_alu_isa_srai; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_sraiw = rnRspFifo_io_deq_0_bits_alu_isa_sraiw; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_add = rnRspFifo_io_deq_0_bits_alu_isa_add; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_addw = rnRspFifo_io_deq_0_bits_alu_isa_addw; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_sub = rnRspFifo_io_deq_0_bits_alu_isa_sub; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_subw = rnRspFifo_io_deq_0_bits_alu_isa_subw; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_sll = rnRspFifo_io_deq_0_bits_alu_isa_sll; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_sllw = rnRspFifo_io_deq_0_bits_alu_isa_sllw; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_slt = rnRspFifo_io_deq_0_bits_alu_isa_slt; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_sltu = rnRspFifo_io_deq_0_bits_alu_isa_sltu; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_xor = rnRspFifo_io_deq_0_bits_alu_isa_xor; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_srl = rnRspFifo_io_deq_0_bits_alu_isa_srl; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_srlw = rnRspFifo_io_deq_0_bits_alu_isa_srlw; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_sra = rnRspFifo_io_deq_0_bits_alu_isa_sra; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_sraw = rnRspFifo_io_deq_0_bits_alu_isa_sraw; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_or = rnRspFifo_io_deq_0_bits_alu_isa_or; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_and = rnRspFifo_io_deq_0_bits_alu_isa_and; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_alu_isa_wfi = rnRspFifo_io_deq_0_bits_alu_isa_wfi; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_bru_isa_jal = rnRspFifo_io_deq_0_bits_bru_isa_jal; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_bru_isa_jalr = rnRspFifo_io_deq_0_bits_bru_isa_jalr; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_bru_isa_beq = rnRspFifo_io_deq_0_bits_bru_isa_beq; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_bru_isa_bne = rnRspFifo_io_deq_0_bits_bru_isa_bne; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_bru_isa_blt = rnRspFifo_io_deq_0_bits_bru_isa_blt; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_bru_isa_bge = rnRspFifo_io_deq_0_bits_bru_isa_bge; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_bru_isa_bltu = rnRspFifo_io_deq_0_bits_bru_isa_bltu; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_bru_isa_bgeu = rnRspFifo_io_deq_0_bits_bru_isa_bgeu; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_lb = rnRspFifo_io_deq_0_bits_lsu_isa_lb; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_lh = rnRspFifo_io_deq_0_bits_lsu_isa_lh; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_lw = rnRspFifo_io_deq_0_bits_lsu_isa_lw; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_ld = rnRspFifo_io_deq_0_bits_lsu_isa_ld; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_lbu = rnRspFifo_io_deq_0_bits_lsu_isa_lbu; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_lhu = rnRspFifo_io_deq_0_bits_lsu_isa_lhu; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_lwu = rnRspFifo_io_deq_0_bits_lsu_isa_lwu; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_sb = rnRspFifo_io_deq_0_bits_lsu_isa_sb; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_sh = rnRspFifo_io_deq_0_bits_lsu_isa_sh; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_sw = rnRspFifo_io_deq_0_bits_lsu_isa_sw; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_sd = rnRspFifo_io_deq_0_bits_lsu_isa_sd; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_fence = rnRspFifo_io_deq_0_bits_lsu_isa_fence; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_fence_i = rnRspFifo_io_deq_0_bits_lsu_isa_fence_i; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_sfence_vma = rnRspFifo_io_deq_0_bits_lsu_isa_sfence_vma; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_lr_w = rnRspFifo_io_deq_0_bits_lsu_isa_lr_w; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_sc_w = rnRspFifo_io_deq_0_bits_lsu_isa_sc_w; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_amoswap_w = rnRspFifo_io_deq_0_bits_lsu_isa_amoswap_w; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_amoadd_w = rnRspFifo_io_deq_0_bits_lsu_isa_amoadd_w; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_amoxor_w = rnRspFifo_io_deq_0_bits_lsu_isa_amoxor_w; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_amoand_w = rnRspFifo_io_deq_0_bits_lsu_isa_amoand_w; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_amoor_w = rnRspFifo_io_deq_0_bits_lsu_isa_amoor_w; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_amomin_w = rnRspFifo_io_deq_0_bits_lsu_isa_amomin_w; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_amomax_w = rnRspFifo_io_deq_0_bits_lsu_isa_amomax_w; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_amominu_w = rnRspFifo_io_deq_0_bits_lsu_isa_amominu_w; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_amomaxu_w = rnRspFifo_io_deq_0_bits_lsu_isa_amomaxu_w; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_lr_d = rnRspFifo_io_deq_0_bits_lsu_isa_lr_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_sc_d = rnRspFifo_io_deq_0_bits_lsu_isa_sc_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_amoswap_d = rnRspFifo_io_deq_0_bits_lsu_isa_amoswap_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_amoadd_d = rnRspFifo_io_deq_0_bits_lsu_isa_amoadd_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_amoxor_d = rnRspFifo_io_deq_0_bits_lsu_isa_amoxor_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_amoand_d = rnRspFifo_io_deq_0_bits_lsu_isa_amoand_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_amoor_d = rnRspFifo_io_deq_0_bits_lsu_isa_amoor_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_amomin_d = rnRspFifo_io_deq_0_bits_lsu_isa_amomin_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_amomax_d = rnRspFifo_io_deq_0_bits_lsu_isa_amomax_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_amominu_d = rnRspFifo_io_deq_0_bits_lsu_isa_amominu_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_amomaxu_d = rnRspFifo_io_deq_0_bits_lsu_isa_amomaxu_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_flw = rnRspFifo_io_deq_0_bits_lsu_isa_flw; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_fsw = rnRspFifo_io_deq_0_bits_lsu_isa_fsw; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_fld = rnRspFifo_io_deq_0_bits_lsu_isa_fld; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_lsu_isa_fsd = rnRspFifo_io_deq_0_bits_lsu_isa_fsd; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_csr_isa_rw = rnRspFifo_io_deq_0_bits_csr_isa_rw; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_csr_isa_rs = rnRspFifo_io_deq_0_bits_csr_isa_rs; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_csr_isa_rc = rnRspFifo_io_deq_0_bits_csr_isa_rc; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_csr_isa_rwi = rnRspFifo_io_deq_0_bits_csr_isa_rwi; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_csr_isa_rsi = rnRspFifo_io_deq_0_bits_csr_isa_rsi; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_csr_isa_rci = rnRspFifo_io_deq_0_bits_csr_isa_rci; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_mul_isa_mul = rnRspFifo_io_deq_0_bits_mul_isa_mul; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_mul_isa_mulh = rnRspFifo_io_deq_0_bits_mul_isa_mulh; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_mul_isa_mulhsu = rnRspFifo_io_deq_0_bits_mul_isa_mulhsu; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_mul_isa_mulhu = rnRspFifo_io_deq_0_bits_mul_isa_mulhu; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_mul_isa_div = rnRspFifo_io_deq_0_bits_mul_isa_div; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_mul_isa_divu = rnRspFifo_io_deq_0_bits_mul_isa_divu; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_mul_isa_rem = rnRspFifo_io_deq_0_bits_mul_isa_rem; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_mul_isa_remu = rnRspFifo_io_deq_0_bits_mul_isa_remu; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_mul_isa_mulw = rnRspFifo_io_deq_0_bits_mul_isa_mulw; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_mul_isa_divw = rnRspFifo_io_deq_0_bits_mul_isa_divw; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_mul_isa_divuw = rnRspFifo_io_deq_0_bits_mul_isa_divuw; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_mul_isa_remw = rnRspFifo_io_deq_0_bits_mul_isa_remw; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_mul_isa_remuw = rnRspFifo_io_deq_0_bits_mul_isa_remuw; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fmadd_s = rnRspFifo_io_deq_0_bits_fpu_isa_fmadd_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fmsub_s = rnRspFifo_io_deq_0_bits_fpu_isa_fmsub_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fnmsub_s = rnRspFifo_io_deq_0_bits_fpu_isa_fnmsub_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fnmadd_s = rnRspFifo_io_deq_0_bits_fpu_isa_fnmadd_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fadd_s = rnRspFifo_io_deq_0_bits_fpu_isa_fadd_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fsub_s = rnRspFifo_io_deq_0_bits_fpu_isa_fsub_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fmul_s = rnRspFifo_io_deq_0_bits_fpu_isa_fmul_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fdiv_s = rnRspFifo_io_deq_0_bits_fpu_isa_fdiv_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fsqrt_s = rnRspFifo_io_deq_0_bits_fpu_isa_fsqrt_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fsgnj_s = rnRspFifo_io_deq_0_bits_fpu_isa_fsgnj_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fsgnjn_s = rnRspFifo_io_deq_0_bits_fpu_isa_fsgnjn_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fsgnjx_s = rnRspFifo_io_deq_0_bits_fpu_isa_fsgnjx_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fmin_s = rnRspFifo_io_deq_0_bits_fpu_isa_fmin_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fmax_s = rnRspFifo_io_deq_0_bits_fpu_isa_fmax_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fcvt_w_s = rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_w_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fcvt_wu_s = rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_wu_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fmv_x_w = rnRspFifo_io_deq_0_bits_fpu_isa_fmv_x_w; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_feq_s = rnRspFifo_io_deq_0_bits_fpu_isa_feq_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_flt_s = rnRspFifo_io_deq_0_bits_fpu_isa_flt_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fle_s = rnRspFifo_io_deq_0_bits_fpu_isa_fle_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fclass_s = rnRspFifo_io_deq_0_bits_fpu_isa_fclass_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fcvt_l_s = rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_l_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fcvt_lu_s = rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_lu_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fmadd_d = rnRspFifo_io_deq_0_bits_fpu_isa_fmadd_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fmsub_d = rnRspFifo_io_deq_0_bits_fpu_isa_fmsub_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fnmsub_d = rnRspFifo_io_deq_0_bits_fpu_isa_fnmsub_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fnmadd_d = rnRspFifo_io_deq_0_bits_fpu_isa_fnmadd_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fadd_d = rnRspFifo_io_deq_0_bits_fpu_isa_fadd_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fsub_d = rnRspFifo_io_deq_0_bits_fpu_isa_fsub_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fmul_d = rnRspFifo_io_deq_0_bits_fpu_isa_fmul_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fdiv_d = rnRspFifo_io_deq_0_bits_fpu_isa_fdiv_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fsqrt_d = rnRspFifo_io_deq_0_bits_fpu_isa_fsqrt_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fsgnj_d = rnRspFifo_io_deq_0_bits_fpu_isa_fsgnj_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fsgnjn_d = rnRspFifo_io_deq_0_bits_fpu_isa_fsgnjn_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fsgnjx_d = rnRspFifo_io_deq_0_bits_fpu_isa_fsgnjx_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fmin_d = rnRspFifo_io_deq_0_bits_fpu_isa_fmin_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fmax_d = rnRspFifo_io_deq_0_bits_fpu_isa_fmax_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fcvt_s_d = rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_s_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fcvt_d_s = rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_d_s; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_feq_d = rnRspFifo_io_deq_0_bits_fpu_isa_feq_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_flt_d = rnRspFifo_io_deq_0_bits_fpu_isa_flt_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fle_d = rnRspFifo_io_deq_0_bits_fpu_isa_fle_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fclass_d = rnRspFifo_io_deq_0_bits_fpu_isa_fclass_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fcvt_w_d = rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_w_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fcvt_wu_d = rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_wu_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fcvt_l_d = rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_l_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fcvt_lu_d = rnRspFifo_io_deq_0_bits_fpu_isa_fcvt_lu_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_fpu_isa_fmv_x_d = rnRspFifo_io_deq_0_bits_fpu_isa_fmv_x_d; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_param_is_rvc = rnRspFifo_io_deq_0_bits_param_is_rvc; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_param_pc = rnRspFifo_io_deq_0_bits_param_pc; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_param_imm = rnRspFifo_io_deq_0_bits_param_imm; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_param_raw_rs1 = rnRspFifo_io_deq_0_bits_param_raw_rs1; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_phy_rs1 = rnRspFifo_io_deq_0_bits_phy_rs1; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_phy_rs2 = rnRspFifo_io_deq_0_bits_phy_rs2; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_phy_rs3 = rnRspFifo_io_deq_0_bits_phy_rs3; // @[Rename.scala 45:20]
  assign io_rnRsp_0_bits_phy_rd0 = rnRspFifo_io_deq_0_bits_phy_rd0; // @[Rename.scala 45:20]
  assign io_xLookup_0_req_rs1 = io_rnReq_0_bits_param_raw_rs1; // @[Rename.scala 63:27]
  assign io_xLookup_0_req_rs2 = io_rnReq_0_bits_param_raw_rs2; // @[Rename.scala 64:27]
  assign io_xRename_0_req_valid = _rnRspReport_io_enq_0_valid_T & _io_xRename_0_req_valid_T_42; // @[Rename.scala 60:52]
  assign io_xRename_0_req_bits_rd0 = io_rnReq_0_bits_param_raw_rd0; // @[Rename.scala 61:32]
  assign io_fRename_0_req_valid = _rnRspReport_io_enq_0_valid_T & _io_xRename_0_req_valid_T_41; // @[Rename.scala 67:52]
  assign io_rod_i_0_valid = reOrder_fifo_i_io_deq_0_valid; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_pc = reOrder_fifo_i_io_deq_0_bits_pc; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_rd0_raw = reOrder_fifo_i_io_deq_0_bits_rd0_raw; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_rd0_phy = reOrder_fifo_i_io_deq_0_bits_rd0_phy; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_is_branch = reOrder_fifo_i_io_deq_0_bits_is_branch; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_is_jalr = reOrder_fifo_i_io_deq_0_bits_is_jalr; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_is_lu = reOrder_fifo_i_io_deq_0_bits_is_lu; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_is_su = reOrder_fifo_i_io_deq_0_bits_is_su; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_is_amo = reOrder_fifo_i_io_deq_0_bits_is_amo; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_is_fence_i = reOrder_fifo_i_io_deq_0_bits_is_fence_i; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_is_sfence_vma = reOrder_fifo_i_io_deq_0_bits_is_sfence_vma; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_is_wfi = reOrder_fifo_i_io_deq_0_bits_is_wfi; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_is_csr = reOrder_fifo_i_io_deq_0_bits_is_csr; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_is_fpu = reOrder_fifo_i_io_deq_0_bits_is_fpu; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_is_fcsr = reOrder_fifo_i_io_deq_0_bits_is_fcsr; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_is_xcmm = reOrder_fifo_i_io_deq_0_bits_is_xcmm; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_privil_ecall = reOrder_fifo_i_io_deq_0_bits_privil_ecall; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_privil_ebreak = reOrder_fifo_i_io_deq_0_bits_privil_ebreak; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_privil_mret = reOrder_fifo_i_io_deq_0_bits_privil_mret; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_privil_sret = reOrder_fifo_i_io_deq_0_bits_privil_sret; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_privil_dret = reOrder_fifo_i_io_deq_0_bits_privil_dret; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_privil_is_access_fault = reOrder_fifo_i_io_deq_0_bits_privil_is_access_fault; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_privil_is_paging_fault = reOrder_fifo_i_io_deq_0_bits_privil_is_paging_fault; // @[Rename.scala 49:16]
  assign io_rod_i_0_bits_is_illeage = reOrder_fifo_i_io_deq_0_bits_is_illeage; // @[Rename.scala 49:16]
  assign rnRspReport_clock = clock;
  assign rnRspReport_reset = reset;
  assign rnRspReport_io_enq_0_valid = _rnRspReport_io_enq_0_valid_T & ~_rnRspReport_io_enq_0_valid_T_22; // @[Rename.scala 57:53]
  assign rnRspReport_io_enq_0_bits_alu_isa_lui = io_rnReq_0_bits_alu_isa_lui; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_auipc = io_rnReq_0_bits_alu_isa_auipc; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_addi = io_rnReq_0_bits_alu_isa_addi; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_addiw = io_rnReq_0_bits_alu_isa_addiw; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_slti = io_rnReq_0_bits_alu_isa_slti; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_sltiu = io_rnReq_0_bits_alu_isa_sltiu; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_xori = io_rnReq_0_bits_alu_isa_xori; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_ori = io_rnReq_0_bits_alu_isa_ori; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_andi = io_rnReq_0_bits_alu_isa_andi; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_slli = io_rnReq_0_bits_alu_isa_slli; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_slliw = io_rnReq_0_bits_alu_isa_slliw; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_srli = io_rnReq_0_bits_alu_isa_srli; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_srliw = io_rnReq_0_bits_alu_isa_srliw; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_srai = io_rnReq_0_bits_alu_isa_srai; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_sraiw = io_rnReq_0_bits_alu_isa_sraiw; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_add = io_rnReq_0_bits_alu_isa_add; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_addw = io_rnReq_0_bits_alu_isa_addw; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_sub = io_rnReq_0_bits_alu_isa_sub; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_subw = io_rnReq_0_bits_alu_isa_subw; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_sll = io_rnReq_0_bits_alu_isa_sll; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_sllw = io_rnReq_0_bits_alu_isa_sllw; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_slt = io_rnReq_0_bits_alu_isa_slt; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_sltu = io_rnReq_0_bits_alu_isa_sltu; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_xor = io_rnReq_0_bits_alu_isa_xor; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_srl = io_rnReq_0_bits_alu_isa_srl; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_srlw = io_rnReq_0_bits_alu_isa_srlw; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_sra = io_rnReq_0_bits_alu_isa_sra; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_sraw = io_rnReq_0_bits_alu_isa_sraw; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_or = io_rnReq_0_bits_alu_isa_or; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_and = io_rnReq_0_bits_alu_isa_and; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_alu_isa_wfi = io_rnReq_0_bits_alu_isa_wfi; // @[Rename.scala 102:19 104:20]
  assign rnRspReport_io_enq_0_bits_bru_isa_jal = io_rnReq_0_bits_bru_isa_jal; // @[Rename.scala 102:19 105:20]
  assign rnRspReport_io_enq_0_bits_bru_isa_jalr = io_rnReq_0_bits_bru_isa_jalr; // @[Rename.scala 102:19 105:20]
  assign rnRspReport_io_enq_0_bits_bru_isa_beq = io_rnReq_0_bits_bru_isa_beq; // @[Rename.scala 102:19 105:20]
  assign rnRspReport_io_enq_0_bits_bru_isa_bne = io_rnReq_0_bits_bru_isa_bne; // @[Rename.scala 102:19 105:20]
  assign rnRspReport_io_enq_0_bits_bru_isa_blt = io_rnReq_0_bits_bru_isa_blt; // @[Rename.scala 102:19 105:20]
  assign rnRspReport_io_enq_0_bits_bru_isa_bge = io_rnReq_0_bits_bru_isa_bge; // @[Rename.scala 102:19 105:20]
  assign rnRspReport_io_enq_0_bits_bru_isa_bltu = io_rnReq_0_bits_bru_isa_bltu; // @[Rename.scala 102:19 105:20]
  assign rnRspReport_io_enq_0_bits_bru_isa_bgeu = io_rnReq_0_bits_bru_isa_bgeu; // @[Rename.scala 102:19 105:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_lb = io_rnReq_0_bits_lsu_isa_lb; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_lh = io_rnReq_0_bits_lsu_isa_lh; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_lw = io_rnReq_0_bits_lsu_isa_lw; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_ld = io_rnReq_0_bits_lsu_isa_ld; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_lbu = io_rnReq_0_bits_lsu_isa_lbu; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_lhu = io_rnReq_0_bits_lsu_isa_lhu; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_lwu = io_rnReq_0_bits_lsu_isa_lwu; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_sb = io_rnReq_0_bits_lsu_isa_sb; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_sh = io_rnReq_0_bits_lsu_isa_sh; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_sw = io_rnReq_0_bits_lsu_isa_sw; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_sd = io_rnReq_0_bits_lsu_isa_sd; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_fence = io_rnReq_0_bits_lsu_isa_fence; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_fence_i = io_rnReq_0_bits_lsu_isa_fence_i; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_sfence_vma = io_rnReq_0_bits_lsu_isa_sfence_vma; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_lr_w = io_rnReq_0_bits_lsu_isa_lr_w; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_sc_w = io_rnReq_0_bits_lsu_isa_sc_w; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_amoswap_w = io_rnReq_0_bits_lsu_isa_amoswap_w; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_amoadd_w = io_rnReq_0_bits_lsu_isa_amoadd_w; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_amoxor_w = io_rnReq_0_bits_lsu_isa_amoxor_w; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_amoand_w = io_rnReq_0_bits_lsu_isa_amoand_w; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_amoor_w = io_rnReq_0_bits_lsu_isa_amoor_w; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_amomin_w = io_rnReq_0_bits_lsu_isa_amomin_w; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_amomax_w = io_rnReq_0_bits_lsu_isa_amomax_w; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_amominu_w = io_rnReq_0_bits_lsu_isa_amominu_w; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_amomaxu_w = io_rnReq_0_bits_lsu_isa_amomaxu_w; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_lr_d = io_rnReq_0_bits_lsu_isa_lr_d; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_sc_d = io_rnReq_0_bits_lsu_isa_sc_d; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_amoswap_d = io_rnReq_0_bits_lsu_isa_amoswap_d; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_amoadd_d = io_rnReq_0_bits_lsu_isa_amoadd_d; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_amoxor_d = io_rnReq_0_bits_lsu_isa_amoxor_d; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_amoand_d = io_rnReq_0_bits_lsu_isa_amoand_d; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_amoor_d = io_rnReq_0_bits_lsu_isa_amoor_d; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_amomin_d = io_rnReq_0_bits_lsu_isa_amomin_d; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_amomax_d = io_rnReq_0_bits_lsu_isa_amomax_d; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_amominu_d = io_rnReq_0_bits_lsu_isa_amominu_d; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_amomaxu_d = io_rnReq_0_bits_lsu_isa_amomaxu_d; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_flw = io_rnReq_0_bits_lsu_isa_flw; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_fsw = io_rnReq_0_bits_lsu_isa_fsw; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_fld = io_rnReq_0_bits_lsu_isa_fld; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_lsu_isa_fsd = io_rnReq_0_bits_lsu_isa_fsd; // @[Rename.scala 102:19 106:20]
  assign rnRspReport_io_enq_0_bits_csr_isa_rw = io_rnReq_0_bits_csr_isa_rw; // @[Rename.scala 102:19 107:20]
  assign rnRspReport_io_enq_0_bits_csr_isa_rs = io_rnReq_0_bits_csr_isa_rs; // @[Rename.scala 102:19 107:20]
  assign rnRspReport_io_enq_0_bits_csr_isa_rc = io_rnReq_0_bits_csr_isa_rc; // @[Rename.scala 102:19 107:20]
  assign rnRspReport_io_enq_0_bits_csr_isa_rwi = io_rnReq_0_bits_csr_isa_rwi; // @[Rename.scala 102:19 107:20]
  assign rnRspReport_io_enq_0_bits_csr_isa_rsi = io_rnReq_0_bits_csr_isa_rsi; // @[Rename.scala 102:19 107:20]
  assign rnRspReport_io_enq_0_bits_csr_isa_rci = io_rnReq_0_bits_csr_isa_rci; // @[Rename.scala 102:19 107:20]
  assign rnRspReport_io_enq_0_bits_mul_isa_mul = io_rnReq_0_bits_mul_isa_mul; // @[Rename.scala 102:19 108:20]
  assign rnRspReport_io_enq_0_bits_mul_isa_mulh = io_rnReq_0_bits_mul_isa_mulh; // @[Rename.scala 102:19 108:20]
  assign rnRspReport_io_enq_0_bits_mul_isa_mulhsu = io_rnReq_0_bits_mul_isa_mulhsu; // @[Rename.scala 102:19 108:20]
  assign rnRspReport_io_enq_0_bits_mul_isa_mulhu = io_rnReq_0_bits_mul_isa_mulhu; // @[Rename.scala 102:19 108:20]
  assign rnRspReport_io_enq_0_bits_mul_isa_div = io_rnReq_0_bits_mul_isa_div; // @[Rename.scala 102:19 108:20]
  assign rnRspReport_io_enq_0_bits_mul_isa_divu = io_rnReq_0_bits_mul_isa_divu; // @[Rename.scala 102:19 108:20]
  assign rnRspReport_io_enq_0_bits_mul_isa_rem = io_rnReq_0_bits_mul_isa_rem; // @[Rename.scala 102:19 108:20]
  assign rnRspReport_io_enq_0_bits_mul_isa_remu = io_rnReq_0_bits_mul_isa_remu; // @[Rename.scala 102:19 108:20]
  assign rnRspReport_io_enq_0_bits_mul_isa_mulw = io_rnReq_0_bits_mul_isa_mulw; // @[Rename.scala 102:19 108:20]
  assign rnRspReport_io_enq_0_bits_mul_isa_divw = io_rnReq_0_bits_mul_isa_divw; // @[Rename.scala 102:19 108:20]
  assign rnRspReport_io_enq_0_bits_mul_isa_divuw = io_rnReq_0_bits_mul_isa_divuw; // @[Rename.scala 102:19 108:20]
  assign rnRspReport_io_enq_0_bits_mul_isa_remw = io_rnReq_0_bits_mul_isa_remw; // @[Rename.scala 102:19 108:20]
  assign rnRspReport_io_enq_0_bits_mul_isa_remuw = io_rnReq_0_bits_mul_isa_remuw; // @[Rename.scala 102:19 108:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fmadd_s = io_rnReq_0_bits_fpu_isa_fmadd_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fmsub_s = io_rnReq_0_bits_fpu_isa_fmsub_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fnmsub_s = io_rnReq_0_bits_fpu_isa_fnmsub_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fnmadd_s = io_rnReq_0_bits_fpu_isa_fnmadd_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fadd_s = io_rnReq_0_bits_fpu_isa_fadd_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fsub_s = io_rnReq_0_bits_fpu_isa_fsub_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fmul_s = io_rnReq_0_bits_fpu_isa_fmul_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fdiv_s = io_rnReq_0_bits_fpu_isa_fdiv_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fsqrt_s = io_rnReq_0_bits_fpu_isa_fsqrt_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fsgnj_s = io_rnReq_0_bits_fpu_isa_fsgnj_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fsgnjn_s = io_rnReq_0_bits_fpu_isa_fsgnjn_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fsgnjx_s = io_rnReq_0_bits_fpu_isa_fsgnjx_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fmin_s = io_rnReq_0_bits_fpu_isa_fmin_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fmax_s = io_rnReq_0_bits_fpu_isa_fmax_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fcvt_w_s = io_rnReq_0_bits_fpu_isa_fcvt_w_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fcvt_wu_s = io_rnReq_0_bits_fpu_isa_fcvt_wu_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fmv_x_w = io_rnReq_0_bits_fpu_isa_fmv_x_w; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_feq_s = io_rnReq_0_bits_fpu_isa_feq_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_flt_s = io_rnReq_0_bits_fpu_isa_flt_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fle_s = io_rnReq_0_bits_fpu_isa_fle_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fclass_s = io_rnReq_0_bits_fpu_isa_fclass_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fcvt_l_s = io_rnReq_0_bits_fpu_isa_fcvt_l_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fcvt_lu_s = io_rnReq_0_bits_fpu_isa_fcvt_lu_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fmadd_d = io_rnReq_0_bits_fpu_isa_fmadd_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fmsub_d = io_rnReq_0_bits_fpu_isa_fmsub_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fnmsub_d = io_rnReq_0_bits_fpu_isa_fnmsub_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fnmadd_d = io_rnReq_0_bits_fpu_isa_fnmadd_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fadd_d = io_rnReq_0_bits_fpu_isa_fadd_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fsub_d = io_rnReq_0_bits_fpu_isa_fsub_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fmul_d = io_rnReq_0_bits_fpu_isa_fmul_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fdiv_d = io_rnReq_0_bits_fpu_isa_fdiv_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fsqrt_d = io_rnReq_0_bits_fpu_isa_fsqrt_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fsgnj_d = io_rnReq_0_bits_fpu_isa_fsgnj_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fsgnjn_d = io_rnReq_0_bits_fpu_isa_fsgnjn_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fsgnjx_d = io_rnReq_0_bits_fpu_isa_fsgnjx_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fmin_d = io_rnReq_0_bits_fpu_isa_fmin_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fmax_d = io_rnReq_0_bits_fpu_isa_fmax_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fcvt_s_d = io_rnReq_0_bits_fpu_isa_fcvt_s_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fcvt_d_s = io_rnReq_0_bits_fpu_isa_fcvt_d_s; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_feq_d = io_rnReq_0_bits_fpu_isa_feq_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_flt_d = io_rnReq_0_bits_fpu_isa_flt_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fle_d = io_rnReq_0_bits_fpu_isa_fle_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fclass_d = io_rnReq_0_bits_fpu_isa_fclass_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fcvt_w_d = io_rnReq_0_bits_fpu_isa_fcvt_w_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fcvt_wu_d = io_rnReq_0_bits_fpu_isa_fcvt_wu_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fcvt_l_d = io_rnReq_0_bits_fpu_isa_fcvt_l_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fcvt_lu_d = io_rnReq_0_bits_fpu_isa_fcvt_lu_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_fpu_isa_fmv_x_d = io_rnReq_0_bits_fpu_isa_fmv_x_d; // @[Rename.scala 102:19 110:20]
  assign rnRspReport_io_enq_0_bits_param_is_rvc = io_rnReq_0_bits_param_is_rvc; // @[Rename.scala 102:19 111:20]
  assign rnRspReport_io_enq_0_bits_param_pc = io_rnReq_0_bits_param_pc; // @[Rename.scala 102:19 111:20]
  assign rnRspReport_io_enq_0_bits_param_imm = io_rnReq_0_bits_param_imm; // @[Rename.scala 102:19 111:20]
  assign rnRspReport_io_enq_0_bits_param_raw_rs1 = io_rnReq_0_bits_param_raw_rs1; // @[Rename.scala 102:19 111:20]
  assign rnRspReport_io_enq_0_bits_phy_rs1 = _reg_phy_0_rs2_T_46 ? 6'h0 : io_xLookup_0_rsp_rs1; // @[Rename.scala 75:26]
  assign rnRspReport_io_enq_0_bits_phy_rs2 = _rnRspReport_io_enq_0_bits_T_62 ? _GEN_0 : reg_phy_0_rs2; // @[Rename.scala 112:20 114:34]
  assign rnRspReport_io_enq_0_bits_phy_rs3 = _rnRspReport_io_enq_0_bits_T_62 ? _GEN_1 : reg_phy_0_rs3; // @[Rename.scala 112:20 114:34]
  assign rnRspReport_io_enq_0_bits_phy_rd0 = _reg_phy_0_rd0_T_1 ? io_xRename_0_rsp_rd0 : 6'h0; // @[Mux.scala 27:73]
  assign rnRspReport_io_deq_0_ready = rnRspFifo_io_enq_0_ready; // @[Rename.scala 44:20]
  assign rnRspFifo_clock = clock;
  assign rnRspFifo_reset = reset;
  assign rnRspFifo_io_enq_0_valid = rnRspReport_io_deq_0_valid; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_lui = rnRspReport_io_deq_0_bits_alu_isa_lui; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_auipc = rnRspReport_io_deq_0_bits_alu_isa_auipc; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_addi = rnRspReport_io_deq_0_bits_alu_isa_addi; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_addiw = rnRspReport_io_deq_0_bits_alu_isa_addiw; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_slti = rnRspReport_io_deq_0_bits_alu_isa_slti; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_sltiu = rnRspReport_io_deq_0_bits_alu_isa_sltiu; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_xori = rnRspReport_io_deq_0_bits_alu_isa_xori; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_ori = rnRspReport_io_deq_0_bits_alu_isa_ori; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_andi = rnRspReport_io_deq_0_bits_alu_isa_andi; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_slli = rnRspReport_io_deq_0_bits_alu_isa_slli; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_slliw = rnRspReport_io_deq_0_bits_alu_isa_slliw; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_srli = rnRspReport_io_deq_0_bits_alu_isa_srli; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_srliw = rnRspReport_io_deq_0_bits_alu_isa_srliw; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_srai = rnRspReport_io_deq_0_bits_alu_isa_srai; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_sraiw = rnRspReport_io_deq_0_bits_alu_isa_sraiw; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_add = rnRspReport_io_deq_0_bits_alu_isa_add; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_addw = rnRspReport_io_deq_0_bits_alu_isa_addw; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_sub = rnRspReport_io_deq_0_bits_alu_isa_sub; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_subw = rnRspReport_io_deq_0_bits_alu_isa_subw; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_sll = rnRspReport_io_deq_0_bits_alu_isa_sll; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_sllw = rnRspReport_io_deq_0_bits_alu_isa_sllw; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_slt = rnRspReport_io_deq_0_bits_alu_isa_slt; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_sltu = rnRspReport_io_deq_0_bits_alu_isa_sltu; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_xor = rnRspReport_io_deq_0_bits_alu_isa_xor; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_srl = rnRspReport_io_deq_0_bits_alu_isa_srl; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_srlw = rnRspReport_io_deq_0_bits_alu_isa_srlw; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_sra = rnRspReport_io_deq_0_bits_alu_isa_sra; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_sraw = rnRspReport_io_deq_0_bits_alu_isa_sraw; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_or = rnRspReport_io_deq_0_bits_alu_isa_or; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_and = rnRspReport_io_deq_0_bits_alu_isa_and; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_alu_isa_wfi = rnRspReport_io_deq_0_bits_alu_isa_wfi; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_bru_isa_jal = rnRspReport_io_deq_0_bits_bru_isa_jal; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_bru_isa_jalr = rnRspReport_io_deq_0_bits_bru_isa_jalr; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_bru_isa_beq = rnRspReport_io_deq_0_bits_bru_isa_beq; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_bru_isa_bne = rnRspReport_io_deq_0_bits_bru_isa_bne; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_bru_isa_blt = rnRspReport_io_deq_0_bits_bru_isa_blt; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_bru_isa_bge = rnRspReport_io_deq_0_bits_bru_isa_bge; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_bru_isa_bltu = rnRspReport_io_deq_0_bits_bru_isa_bltu; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_bru_isa_bgeu = rnRspReport_io_deq_0_bits_bru_isa_bgeu; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_lb = rnRspReport_io_deq_0_bits_lsu_isa_lb; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_lh = rnRspReport_io_deq_0_bits_lsu_isa_lh; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_lw = rnRspReport_io_deq_0_bits_lsu_isa_lw; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_ld = rnRspReport_io_deq_0_bits_lsu_isa_ld; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_lbu = rnRspReport_io_deq_0_bits_lsu_isa_lbu; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_lhu = rnRspReport_io_deq_0_bits_lsu_isa_lhu; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_lwu = rnRspReport_io_deq_0_bits_lsu_isa_lwu; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_sb = rnRspReport_io_deq_0_bits_lsu_isa_sb; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_sh = rnRspReport_io_deq_0_bits_lsu_isa_sh; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_sw = rnRspReport_io_deq_0_bits_lsu_isa_sw; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_sd = rnRspReport_io_deq_0_bits_lsu_isa_sd; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_fence = rnRspReport_io_deq_0_bits_lsu_isa_fence; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_fence_i = rnRspReport_io_deq_0_bits_lsu_isa_fence_i; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_sfence_vma = rnRspReport_io_deq_0_bits_lsu_isa_sfence_vma; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_lr_w = rnRspReport_io_deq_0_bits_lsu_isa_lr_w; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_sc_w = rnRspReport_io_deq_0_bits_lsu_isa_sc_w; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_amoswap_w = rnRspReport_io_deq_0_bits_lsu_isa_amoswap_w; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_amoadd_w = rnRspReport_io_deq_0_bits_lsu_isa_amoadd_w; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_amoxor_w = rnRspReport_io_deq_0_bits_lsu_isa_amoxor_w; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_amoand_w = rnRspReport_io_deq_0_bits_lsu_isa_amoand_w; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_amoor_w = rnRspReport_io_deq_0_bits_lsu_isa_amoor_w; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_amomin_w = rnRspReport_io_deq_0_bits_lsu_isa_amomin_w; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_amomax_w = rnRspReport_io_deq_0_bits_lsu_isa_amomax_w; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_amominu_w = rnRspReport_io_deq_0_bits_lsu_isa_amominu_w; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_amomaxu_w = rnRspReport_io_deq_0_bits_lsu_isa_amomaxu_w; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_lr_d = rnRspReport_io_deq_0_bits_lsu_isa_lr_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_sc_d = rnRspReport_io_deq_0_bits_lsu_isa_sc_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_amoswap_d = rnRspReport_io_deq_0_bits_lsu_isa_amoswap_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_amoadd_d = rnRspReport_io_deq_0_bits_lsu_isa_amoadd_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_amoxor_d = rnRspReport_io_deq_0_bits_lsu_isa_amoxor_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_amoand_d = rnRspReport_io_deq_0_bits_lsu_isa_amoand_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_amoor_d = rnRspReport_io_deq_0_bits_lsu_isa_amoor_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_amomin_d = rnRspReport_io_deq_0_bits_lsu_isa_amomin_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_amomax_d = rnRspReport_io_deq_0_bits_lsu_isa_amomax_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_amominu_d = rnRspReport_io_deq_0_bits_lsu_isa_amominu_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_amomaxu_d = rnRspReport_io_deq_0_bits_lsu_isa_amomaxu_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_flw = rnRspReport_io_deq_0_bits_lsu_isa_flw; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_fsw = rnRspReport_io_deq_0_bits_lsu_isa_fsw; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_fld = rnRspReport_io_deq_0_bits_lsu_isa_fld; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_lsu_isa_fsd = rnRspReport_io_deq_0_bits_lsu_isa_fsd; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_csr_isa_rw = rnRspReport_io_deq_0_bits_csr_isa_rw; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_csr_isa_rs = rnRspReport_io_deq_0_bits_csr_isa_rs; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_csr_isa_rc = rnRspReport_io_deq_0_bits_csr_isa_rc; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_csr_isa_rwi = rnRspReport_io_deq_0_bits_csr_isa_rwi; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_csr_isa_rsi = rnRspReport_io_deq_0_bits_csr_isa_rsi; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_csr_isa_rci = rnRspReport_io_deq_0_bits_csr_isa_rci; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_mul_isa_mul = rnRspReport_io_deq_0_bits_mul_isa_mul; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_mul_isa_mulh = rnRspReport_io_deq_0_bits_mul_isa_mulh; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_mul_isa_mulhsu = rnRspReport_io_deq_0_bits_mul_isa_mulhsu; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_mul_isa_mulhu = rnRspReport_io_deq_0_bits_mul_isa_mulhu; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_mul_isa_div = rnRspReport_io_deq_0_bits_mul_isa_div; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_mul_isa_divu = rnRspReport_io_deq_0_bits_mul_isa_divu; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_mul_isa_rem = rnRspReport_io_deq_0_bits_mul_isa_rem; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_mul_isa_remu = rnRspReport_io_deq_0_bits_mul_isa_remu; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_mul_isa_mulw = rnRspReport_io_deq_0_bits_mul_isa_mulw; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_mul_isa_divw = rnRspReport_io_deq_0_bits_mul_isa_divw; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_mul_isa_divuw = rnRspReport_io_deq_0_bits_mul_isa_divuw; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_mul_isa_remw = rnRspReport_io_deq_0_bits_mul_isa_remw; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_mul_isa_remuw = rnRspReport_io_deq_0_bits_mul_isa_remuw; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fmadd_s = rnRspReport_io_deq_0_bits_fpu_isa_fmadd_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fmsub_s = rnRspReport_io_deq_0_bits_fpu_isa_fmsub_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fnmsub_s = rnRspReport_io_deq_0_bits_fpu_isa_fnmsub_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fnmadd_s = rnRspReport_io_deq_0_bits_fpu_isa_fnmadd_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fadd_s = rnRspReport_io_deq_0_bits_fpu_isa_fadd_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fsub_s = rnRspReport_io_deq_0_bits_fpu_isa_fsub_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fmul_s = rnRspReport_io_deq_0_bits_fpu_isa_fmul_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fdiv_s = rnRspReport_io_deq_0_bits_fpu_isa_fdiv_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fsqrt_s = rnRspReport_io_deq_0_bits_fpu_isa_fsqrt_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fsgnj_s = rnRspReport_io_deq_0_bits_fpu_isa_fsgnj_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fsgnjn_s = rnRspReport_io_deq_0_bits_fpu_isa_fsgnjn_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fsgnjx_s = rnRspReport_io_deq_0_bits_fpu_isa_fsgnjx_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fmin_s = rnRspReport_io_deq_0_bits_fpu_isa_fmin_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fmax_s = rnRspReport_io_deq_0_bits_fpu_isa_fmax_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_w_s = rnRspReport_io_deq_0_bits_fpu_isa_fcvt_w_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_wu_s = rnRspReport_io_deq_0_bits_fpu_isa_fcvt_wu_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fmv_x_w = rnRspReport_io_deq_0_bits_fpu_isa_fmv_x_w; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_feq_s = rnRspReport_io_deq_0_bits_fpu_isa_feq_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_flt_s = rnRspReport_io_deq_0_bits_fpu_isa_flt_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fle_s = rnRspReport_io_deq_0_bits_fpu_isa_fle_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fclass_s = rnRspReport_io_deq_0_bits_fpu_isa_fclass_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_l_s = rnRspReport_io_deq_0_bits_fpu_isa_fcvt_l_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_lu_s = rnRspReport_io_deq_0_bits_fpu_isa_fcvt_lu_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fmadd_d = rnRspReport_io_deq_0_bits_fpu_isa_fmadd_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fmsub_d = rnRspReport_io_deq_0_bits_fpu_isa_fmsub_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fnmsub_d = rnRspReport_io_deq_0_bits_fpu_isa_fnmsub_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fnmadd_d = rnRspReport_io_deq_0_bits_fpu_isa_fnmadd_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fadd_d = rnRspReport_io_deq_0_bits_fpu_isa_fadd_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fsub_d = rnRspReport_io_deq_0_bits_fpu_isa_fsub_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fmul_d = rnRspReport_io_deq_0_bits_fpu_isa_fmul_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fdiv_d = rnRspReport_io_deq_0_bits_fpu_isa_fdiv_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fsqrt_d = rnRspReport_io_deq_0_bits_fpu_isa_fsqrt_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fsgnj_d = rnRspReport_io_deq_0_bits_fpu_isa_fsgnj_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fsgnjn_d = rnRspReport_io_deq_0_bits_fpu_isa_fsgnjn_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fsgnjx_d = rnRspReport_io_deq_0_bits_fpu_isa_fsgnjx_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fmin_d = rnRspReport_io_deq_0_bits_fpu_isa_fmin_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fmax_d = rnRspReport_io_deq_0_bits_fpu_isa_fmax_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_s_d = rnRspReport_io_deq_0_bits_fpu_isa_fcvt_s_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_d_s = rnRspReport_io_deq_0_bits_fpu_isa_fcvt_d_s; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_feq_d = rnRspReport_io_deq_0_bits_fpu_isa_feq_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_flt_d = rnRspReport_io_deq_0_bits_fpu_isa_flt_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fle_d = rnRspReport_io_deq_0_bits_fpu_isa_fle_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fclass_d = rnRspReport_io_deq_0_bits_fpu_isa_fclass_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_w_d = rnRspReport_io_deq_0_bits_fpu_isa_fcvt_w_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_wu_d = rnRspReport_io_deq_0_bits_fpu_isa_fcvt_wu_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_l_d = rnRspReport_io_deq_0_bits_fpu_isa_fcvt_l_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fcvt_lu_d = rnRspReport_io_deq_0_bits_fpu_isa_fcvt_lu_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_fpu_isa_fmv_x_d = rnRspReport_io_deq_0_bits_fpu_isa_fmv_x_d; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_param_is_rvc = rnRspReport_io_deq_0_bits_param_is_rvc; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_param_pc = rnRspReport_io_deq_0_bits_param_pc; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_param_imm = rnRspReport_io_deq_0_bits_param_imm; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_param_raw_rs1 = rnRspReport_io_deq_0_bits_param_raw_rs1; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_phy_rs1 = rnRspReport_io_deq_0_bits_phy_rs1; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_phy_rs2 = rnRspReport_io_deq_0_bits_phy_rs2; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_phy_rs3 = rnRspReport_io_deq_0_bits_phy_rs3; // @[Rename.scala 44:20]
  assign rnRspFifo_io_enq_0_bits_phy_rd0 = rnRspReport_io_deq_0_bits_phy_rd0; // @[Rename.scala 44:20]
  assign reOrder_fifo_i_clock = clock;
  assign reOrder_fifo_i_reset = reset;
  assign reOrder_fifo_i_io_enq_0_valid = io_rnReq_0_ready & io_rnReq_0_valid; // @[Decoupled.scala 52:35]
  assign reOrder_fifo_i_io_enq_0_bits_pc = io_rnReq_0_bits_param_pc; // @[Rename.scala 123:19 125:26]
  assign reOrder_fifo_i_io_enq_0_bits_rd0_raw = io_rnReq_0_bits_param_raw_rd0; // @[Rename.scala 123:19 126:26]
  assign reOrder_fifo_i_io_enq_0_bits_rd0_phy = _reg_phy_0_rd0_T_1 ? io_xRename_0_rsp_rd0 : 6'h0; // @[Mux.scala 27:73]
  assign reOrder_fifo_i_io_enq_0_bits_is_branch = io_rnReq_0_bits_bru_isa_beq | io_rnReq_0_bits_bru_isa_bne |
    io_rnReq_0_bits_bru_isa_blt | io_rnReq_0_bits_bru_isa_bge | io_rnReq_0_bits_bru_isa_bltu |
    io_rnReq_0_bits_bru_isa_bgeu; // @[riscv_isa.scala 93:48]
  assign reOrder_fifo_i_io_enq_0_bits_is_jalr = io_rnReq_0_bits_bru_isa_jalr; // @[Rename.scala 123:19 129:26]
  assign reOrder_fifo_i_io_enq_0_bits_is_lu = io_rnReq_0_bits_lsu_isa_lb | io_rnReq_0_bits_lsu_isa_lh |
    io_rnReq_0_bits_lsu_isa_lw | io_rnReq_0_bits_lsu_isa_ld | io_rnReq_0_bits_lsu_isa_lbu | io_rnReq_0_bits_lsu_isa_lhu
     | io_rnReq_0_bits_lsu_isa_lwu | io_rnReq_0_bits_lsu_isa_flw | io_rnReq_0_bits_lsu_isa_fld |
    _reOrder_fifo_i_io_enq_0_bits_res_is_lu_T_8; // @[riscv_isa.scala 143:65]
  assign reOrder_fifo_i_io_enq_0_bits_is_su = io_rnReq_0_bits_lsu_isa_sb | io_rnReq_0_bits_lsu_isa_sh |
    io_rnReq_0_bits_lsu_isa_sw | io_rnReq_0_bits_lsu_isa_sd | io_rnReq_0_bits_lsu_isa_fsw | io_rnReq_0_bits_lsu_isa_fsd; // @[riscv_isa.scala 144:40]
  assign reOrder_fifo_i_io_enq_0_bits_is_amo = io_rnReq_0_bits_lsu_isa_amoswap_w | io_rnReq_0_bits_lsu_isa_amoadd_w |
    io_rnReq_0_bits_lsu_isa_amoxor_w | io_rnReq_0_bits_lsu_isa_amoand_w | io_rnReq_0_bits_lsu_isa_amoor_w |
    io_rnReq_0_bits_lsu_isa_amomin_w | io_rnReq_0_bits_lsu_isa_amomax_w | io_rnReq_0_bits_lsu_isa_amominu_w |
    io_rnReq_0_bits_lsu_isa_amomaxu_w | io_rnReq_0_bits_lsu_isa_amoswap_d | io_rnReq_0_bits_lsu_isa_amoadd_d |
    io_rnReq_0_bits_lsu_isa_amoxor_d | io_rnReq_0_bits_lsu_isa_amoand_d | io_rnReq_0_bits_lsu_isa_amoor_d |
    io_rnReq_0_bits_lsu_isa_amomin_d | io_rnReq_0_bits_lsu_isa_amomax_d | io_rnReq_0_bits_lsu_isa_amominu_d |
    io_rnReq_0_bits_lsu_isa_amomaxu_d | _reOrder_fifo_i_io_enq_0_bits_res_is_amo_T_17; // @[riscv_isa.scala 148:205]
  assign reOrder_fifo_i_io_enq_0_bits_is_fence_i = io_rnReq_0_bits_lsu_isa_fence_i; // @[Rename.scala 123:19 134:26]
  assign reOrder_fifo_i_io_enq_0_bits_is_sfence_vma = io_rnReq_0_bits_lsu_isa_sfence_vma; // @[Rename.scala 123:19 135:26]
  assign reOrder_fifo_i_io_enq_0_bits_is_wfi = io_rnReq_0_bits_alu_isa_wfi; // @[Rename.scala 123:19 136:26]
  assign reOrder_fifo_i_io_enq_0_bits_is_csr = io_rnReq_0_bits_csr_isa_rw | io_rnReq_0_bits_csr_isa_rs |
    io_rnReq_0_bits_csr_isa_rc | io_rnReq_0_bits_csr_isa_rwi | io_rnReq_0_bits_csr_isa_rsi | io_rnReq_0_bits_csr_isa_rci
    ; // @[riscv_isa.scala 179:41]
  assign reOrder_fifo_i_io_enq_0_bits_is_fpu = _rnRspReport_io_enq_0_bits_T_62 |
    _reOrder_fifo_i_io_enq_0_bits_res_is_fpu_T_65; // @[Rename.scala 139:50]
  assign reOrder_fifo_i_io_enq_0_bits_is_fcsr = _rnRspReport_io_enq_0_bits_T_57 | io_rnReq_0_bits_fpu_isa_fcsr_rs |
    io_rnReq_0_bits_fpu_isa_fcsr_rc | io_rnReq_0_bits_fpu_isa_fcsr_rwi | io_rnReq_0_bits_fpu_isa_fcsr_rsi |
    io_rnReq_0_bits_fpu_isa_fcsr_rci; // @[riscv_isa.scala 525:61]
  assign reOrder_fifo_i_io_enq_0_bits_is_xcmm = ~_io_xRename_0_req_valid_T_41; // @[riscv_isa.scala 800:16]
  assign reOrder_fifo_i_io_enq_0_bits_privil_ecall = io_rnReq_0_bits_privil_isa_ecall; // @[Rename.scala 123:19 140:26]
  assign reOrder_fifo_i_io_enq_0_bits_privil_ebreak = io_rnReq_0_bits_privil_isa_ebreak; // @[Rename.scala 123:19 140:26]
  assign reOrder_fifo_i_io_enq_0_bits_privil_mret = io_rnReq_0_bits_privil_isa_mret; // @[Rename.scala 123:19 140:26]
  assign reOrder_fifo_i_io_enq_0_bits_privil_sret = io_rnReq_0_bits_privil_isa_sret; // @[Rename.scala 123:19 140:26]
  assign reOrder_fifo_i_io_enq_0_bits_privil_dret = io_rnReq_0_bits_privil_isa_dret; // @[Rename.scala 123:19 140:26]
  assign reOrder_fifo_i_io_enq_0_bits_privil_is_access_fault = io_rnReq_0_bits_privil_isa_is_access_fault; // @[Rename.scala 123:19 140:26]
  assign reOrder_fifo_i_io_enq_0_bits_privil_is_paging_fault = io_rnReq_0_bits_privil_isa_is_paging_fault; // @[Rename.scala 123:19 140:26]
  assign reOrder_fifo_i_io_enq_0_bits_is_illeage = ~(_reOrder_fifo_i_io_enq_0_bits_res_is_illeage_T_29 |
    _reOrder_fifo_i_io_enq_0_bits_res_is_illeage_T_36 | _reOrder_fifo_i_io_enq_0_bits_res_is_illeage_T_78 |
    reOrder_fifo_i_io_enq_0_bits_res_is_csr | _reOrder_fifo_i_io_enq_0_bits_res_is_illeage_T_97 |
    _rnRspReport_io_enq_0_valid_T_22 | _rnRspReport_io_enq_0_bits_T_62); // @[riscv_isa.scala 801:20]
  assign reOrder_fifo_i_io_deq_0_ready = io_rod_i_0_ready; // @[Rename.scala 49:16]
  always @(posedge clock) begin
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(_T_2 <= 2'h1)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, rename should be one-hot\n    at Rename.scala:84 for ( j <- 0 until rnChn ) { assert( PopCount( Seq(io.fRename(j).req.fire, io.xRename(j).req.fire)) <= 1.U, \"Assert Failed, rename should be one-hot\" ) }\n"
            ); // @[Rename.scala 84:40]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_2 <= 2'h1) & ~reset) begin
          $fatal; // @[Rename.scala 84:40]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_rnRspReport_io_enq_0_valid_T & _T_6 & ~(~_rnRspReport_io_enq_0_bits_T_62)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Rename.scala:157 assert(io.rnReq(i).bits.fpu_isa.is_fpu === false.B)\n"); // @[Rename.scala 157:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~_rnRspReport_io_enq_0_bits_T_62) & (_rnRspReport_io_enq_0_valid_T & _T_6)) begin
          $fatal; // @[Rename.scala 157:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_5 & ~_io_xRename_0_req_valid_T_42) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Rename.scala:158 assert(io.rnReq(i).bits.is_fwb === false.B)\n"
            ); // @[Rename.scala 158:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_io_xRename_0_req_valid_T_42 & _GEN_5) begin
          $fatal; // @[Rename.scala 158:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
endmodule
module Queue_2(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input         io_enq_bits_fun_add,
  input         io_enq_bits_fun_slt,
  input         io_enq_bits_fun_xor,
  input         io_enq_bits_fun_or,
  input         io_enq_bits_fun_and,
  input         io_enq_bits_fun_sll,
  input         io_enq_bits_fun_srl,
  input         io_enq_bits_fun_sra,
  input  [5:0]  io_enq_bits_param_rd0,
  input         io_enq_bits_param_is_32w,
  input         io_enq_bits_param_is_usi,
  input  [63:0] io_enq_bits_param_dat_op1,
  input  [63:0] io_enq_bits_param_dat_op2,
  input         io_deq_ready,
  output        io_deq_valid,
  output        io_deq_bits_fun_add,
  output        io_deq_bits_fun_slt,
  output        io_deq_bits_fun_xor,
  output        io_deq_bits_fun_or,
  output        io_deq_bits_fun_and,
  output        io_deq_bits_fun_sll,
  output        io_deq_bits_fun_srl,
  output        io_deq_bits_fun_sra,
  output [5:0]  io_deq_bits_param_rd0,
  output        io_deq_bits_param_is_32w,
  output        io_deq_bits_param_is_usi,
  output [63:0] io_deq_bits_param_dat_op1,
  output [63:0] io_deq_bits_param_dat_op2
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [63:0] _RAND_11;
  reg [63:0] _RAND_12;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_13;
`endif // RANDOMIZE_REG_INIT
  reg  ram_fun_add [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_add_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_add_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_add_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_add_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_add_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_add_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_add_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_slt [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_slt_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_slt_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_slt_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_slt_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_slt_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_slt_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_slt_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_xor [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_xor_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_xor_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_xor_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_xor_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_xor_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_xor_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_xor_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_or [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_or_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_or_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_or_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_or_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_or_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_or_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_or_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_and [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_and_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_and_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_and_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_and_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_and_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_and_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_and_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_sll [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_sll_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_sll_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sll_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sll_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sll_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sll_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_sll_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_srl [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_srl_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_srl_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_srl_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_srl_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_srl_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_srl_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_srl_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_sra [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_sra_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_sra_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sra_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sra_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sra_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sra_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_sra_MPORT_en; // @[Decoupled.scala 275:95]
  reg [5:0] ram_param_rd0 [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [5:0] ram_param_rd0_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [5:0] ram_param_rd0_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_param_is_32w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_param_is_32w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_is_32w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_is_32w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_is_32w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_is_32w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_is_32w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_is_32w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_param_is_usi [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_param_is_usi_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_is_usi_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_is_usi_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_is_usi_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_is_usi_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_is_usi_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_is_usi_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_param_dat_op1 [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_dat_op1_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_dat_op1_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_param_dat_op2 [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_dat_op2_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_dat_op2_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  _do_enq_T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _do_deq_T = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_22 = io_deq_ready ? 1'h0 : _do_enq_T; // @[Decoupled.scala 320:{26,35}]
  wire  do_enq = empty ? _GEN_22 : _do_enq_T; // @[Decoupled.scala 317:17]
  wire  do_deq = empty ? 1'h0 : _do_deq_T; // @[Decoupled.scala 317:17 319:14]
  assign ram_fun_add_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_add_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_add_io_deq_bits_MPORT_data = ram_fun_add[ram_fun_add_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_add_MPORT_data = io_enq_bits_fun_add;
  assign ram_fun_add_MPORT_addr = 1'h0;
  assign ram_fun_add_MPORT_mask = 1'h1;
  assign ram_fun_add_MPORT_en = empty ? _GEN_22 : _do_enq_T;
  assign ram_fun_slt_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_slt_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_slt_io_deq_bits_MPORT_data = ram_fun_slt[ram_fun_slt_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_slt_MPORT_data = io_enq_bits_fun_slt;
  assign ram_fun_slt_MPORT_addr = 1'h0;
  assign ram_fun_slt_MPORT_mask = 1'h1;
  assign ram_fun_slt_MPORT_en = empty ? _GEN_22 : _do_enq_T;
  assign ram_fun_xor_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_xor_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_xor_io_deq_bits_MPORT_data = ram_fun_xor[ram_fun_xor_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_xor_MPORT_data = io_enq_bits_fun_xor;
  assign ram_fun_xor_MPORT_addr = 1'h0;
  assign ram_fun_xor_MPORT_mask = 1'h1;
  assign ram_fun_xor_MPORT_en = empty ? _GEN_22 : _do_enq_T;
  assign ram_fun_or_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_or_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_or_io_deq_bits_MPORT_data = ram_fun_or[ram_fun_or_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_or_MPORT_data = io_enq_bits_fun_or;
  assign ram_fun_or_MPORT_addr = 1'h0;
  assign ram_fun_or_MPORT_mask = 1'h1;
  assign ram_fun_or_MPORT_en = empty ? _GEN_22 : _do_enq_T;
  assign ram_fun_and_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_and_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_and_io_deq_bits_MPORT_data = ram_fun_and[ram_fun_and_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_and_MPORT_data = io_enq_bits_fun_and;
  assign ram_fun_and_MPORT_addr = 1'h0;
  assign ram_fun_and_MPORT_mask = 1'h1;
  assign ram_fun_and_MPORT_en = empty ? _GEN_22 : _do_enq_T;
  assign ram_fun_sll_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_sll_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_sll_io_deq_bits_MPORT_data = ram_fun_sll[ram_fun_sll_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_sll_MPORT_data = io_enq_bits_fun_sll;
  assign ram_fun_sll_MPORT_addr = 1'h0;
  assign ram_fun_sll_MPORT_mask = 1'h1;
  assign ram_fun_sll_MPORT_en = empty ? _GEN_22 : _do_enq_T;
  assign ram_fun_srl_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_srl_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_srl_io_deq_bits_MPORT_data = ram_fun_srl[ram_fun_srl_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_srl_MPORT_data = io_enq_bits_fun_srl;
  assign ram_fun_srl_MPORT_addr = 1'h0;
  assign ram_fun_srl_MPORT_mask = 1'h1;
  assign ram_fun_srl_MPORT_en = empty ? _GEN_22 : _do_enq_T;
  assign ram_fun_sra_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_sra_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_sra_io_deq_bits_MPORT_data = ram_fun_sra[ram_fun_sra_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_sra_MPORT_data = io_enq_bits_fun_sra;
  assign ram_fun_sra_MPORT_addr = 1'h0;
  assign ram_fun_sra_MPORT_mask = 1'h1;
  assign ram_fun_sra_MPORT_en = empty ? _GEN_22 : _do_enq_T;
  assign ram_param_rd0_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_rd0_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_param_rd0_io_deq_bits_MPORT_data = ram_param_rd0[ram_param_rd0_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_rd0_MPORT_data = io_enq_bits_param_rd0;
  assign ram_param_rd0_MPORT_addr = 1'h0;
  assign ram_param_rd0_MPORT_mask = 1'h1;
  assign ram_param_rd0_MPORT_en = empty ? _GEN_22 : _do_enq_T;
  assign ram_param_is_32w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_is_32w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_param_is_32w_io_deq_bits_MPORT_data = ram_param_is_32w[ram_param_is_32w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_is_32w_MPORT_data = io_enq_bits_param_is_32w;
  assign ram_param_is_32w_MPORT_addr = 1'h0;
  assign ram_param_is_32w_MPORT_mask = 1'h1;
  assign ram_param_is_32w_MPORT_en = empty ? _GEN_22 : _do_enq_T;
  assign ram_param_is_usi_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_is_usi_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_param_is_usi_io_deq_bits_MPORT_data = ram_param_is_usi[ram_param_is_usi_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_is_usi_MPORT_data = io_enq_bits_param_is_usi;
  assign ram_param_is_usi_MPORT_addr = 1'h0;
  assign ram_param_is_usi_MPORT_mask = 1'h1;
  assign ram_param_is_usi_MPORT_en = empty ? _GEN_22 : _do_enq_T;
  assign ram_param_dat_op1_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_dat_op1_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_param_dat_op1_io_deq_bits_MPORT_data = ram_param_dat_op1[ram_param_dat_op1_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_dat_op1_MPORT_data = io_enq_bits_param_dat_op1;
  assign ram_param_dat_op1_MPORT_addr = 1'h0;
  assign ram_param_dat_op1_MPORT_mask = 1'h1;
  assign ram_param_dat_op1_MPORT_en = empty ? _GEN_22 : _do_enq_T;
  assign ram_param_dat_op2_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_dat_op2_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_param_dat_op2_io_deq_bits_MPORT_data = ram_param_dat_op2[ram_param_dat_op2_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_dat_op2_MPORT_data = io_enq_bits_param_dat_op2;
  assign ram_param_dat_op2_MPORT_addr = 1'h0;
  assign ram_param_dat_op2_MPORT_mask = 1'h1;
  assign ram_param_dat_op2_MPORT_en = empty ? _GEN_22 : _do_enq_T;
  assign io_enq_ready = ~maybe_full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = io_enq_valid | ~empty; // @[Decoupled.scala 304:16 316:{24,39}]
  assign io_deq_bits_fun_add = empty ? io_enq_bits_fun_add : ram_fun_add_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_slt = empty ? io_enq_bits_fun_slt : ram_fun_slt_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_xor = empty ? io_enq_bits_fun_xor : ram_fun_xor_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_or = empty ? io_enq_bits_fun_or : ram_fun_or_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_and = empty ? io_enq_bits_fun_and : ram_fun_and_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_sll = empty ? io_enq_bits_fun_sll : ram_fun_sll_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_srl = empty ? io_enq_bits_fun_srl : ram_fun_srl_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_sra = empty ? io_enq_bits_fun_sra : ram_fun_sra_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_param_rd0 = empty ? io_enq_bits_param_rd0 : ram_param_rd0_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_param_is_32w = empty ? io_enq_bits_param_is_32w : ram_param_is_32w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_param_is_usi = empty ? io_enq_bits_param_is_usi : ram_param_is_usi_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_param_dat_op1 = empty ? io_enq_bits_param_dat_op1 : ram_param_dat_op1_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_param_dat_op2 = empty ? io_enq_bits_param_dat_op2 : ram_param_dat_op2_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  always @(posedge clock) begin
    if (ram_fun_add_MPORT_en & ram_fun_add_MPORT_mask) begin
      ram_fun_add[ram_fun_add_MPORT_addr] <= ram_fun_add_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_slt_MPORT_en & ram_fun_slt_MPORT_mask) begin
      ram_fun_slt[ram_fun_slt_MPORT_addr] <= ram_fun_slt_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_xor_MPORT_en & ram_fun_xor_MPORT_mask) begin
      ram_fun_xor[ram_fun_xor_MPORT_addr] <= ram_fun_xor_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_or_MPORT_en & ram_fun_or_MPORT_mask) begin
      ram_fun_or[ram_fun_or_MPORT_addr] <= ram_fun_or_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_and_MPORT_en & ram_fun_and_MPORT_mask) begin
      ram_fun_and[ram_fun_and_MPORT_addr] <= ram_fun_and_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_sll_MPORT_en & ram_fun_sll_MPORT_mask) begin
      ram_fun_sll[ram_fun_sll_MPORT_addr] <= ram_fun_sll_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_srl_MPORT_en & ram_fun_srl_MPORT_mask) begin
      ram_fun_srl[ram_fun_srl_MPORT_addr] <= ram_fun_srl_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_sra_MPORT_en & ram_fun_sra_MPORT_mask) begin
      ram_fun_sra[ram_fun_sra_MPORT_addr] <= ram_fun_sra_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_rd0_MPORT_en & ram_param_rd0_MPORT_mask) begin
      ram_param_rd0[ram_param_rd0_MPORT_addr] <= ram_param_rd0_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_is_32w_MPORT_en & ram_param_is_32w_MPORT_mask) begin
      ram_param_is_32w[ram_param_is_32w_MPORT_addr] <= ram_param_is_32w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_is_usi_MPORT_en & ram_param_is_usi_MPORT_mask) begin
      ram_param_is_usi[ram_param_is_usi_MPORT_addr] <= ram_param_is_usi_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_dat_op1_MPORT_en & ram_param_dat_op1_MPORT_mask) begin
      ram_param_dat_op1[ram_param_dat_op1_MPORT_addr] <= ram_param_dat_op1_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_dat_op2_MPORT_en & ram_param_dat_op2_MPORT_mask) begin
      ram_param_dat_op2[ram_param_dat_op2_MPORT_addr] <= ram_param_dat_op2_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      if (empty) begin // @[Decoupled.scala 317:17]
        if (io_deq_ready) begin // @[Decoupled.scala 320:26]
          maybe_full <= 1'h0; // @[Decoupled.scala 320:35]
        end else begin
          maybe_full <= _do_enq_T;
        end
      end else begin
        maybe_full <= _do_enq_T;
      end
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_add[initvar] = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_slt[initvar] = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_xor[initvar] = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_or[initvar] = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_and[initvar] = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_sll[initvar] = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_srl[initvar] = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_sra[initvar] = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_param_rd0[initvar] = _RAND_8[5:0];
  _RAND_9 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_param_is_32w[initvar] = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_param_is_usi[initvar] = _RAND_10[0:0];
  _RAND_11 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_param_dat_op1[initvar] = _RAND_11[63:0];
  _RAND_12 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_param_dat_op2[initvar] = _RAND_12[63:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_13 = {1{`RANDOM}};
  maybe_full = _RAND_13[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_3(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input         io_enq_bits_fun_mul,
  input         io_enq_bits_fun_mulh,
  input         io_enq_bits_fun_mulhsu,
  input         io_enq_bits_fun_mulhu,
  input         io_enq_bits_fun_div,
  input         io_enq_bits_fun_divu,
  input         io_enq_bits_fun_rem,
  input         io_enq_bits_fun_remu,
  input         io_enq_bits_fun_mulw,
  input         io_enq_bits_fun_divw,
  input         io_enq_bits_fun_divuw,
  input         io_enq_bits_fun_remw,
  input         io_enq_bits_fun_remuw,
  input  [5:0]  io_enq_bits_param_rd0,
  input  [63:0] io_enq_bits_param_dat_op1,
  input  [63:0] io_enq_bits_param_dat_op2,
  input         io_deq_ready,
  output        io_deq_valid,
  output        io_deq_bits_fun_mul,
  output        io_deq_bits_fun_mulh,
  output        io_deq_bits_fun_mulhsu,
  output        io_deq_bits_fun_mulhu,
  output        io_deq_bits_fun_div,
  output        io_deq_bits_fun_divu,
  output        io_deq_bits_fun_rem,
  output        io_deq_bits_fun_remu,
  output        io_deq_bits_fun_mulw,
  output        io_deq_bits_fun_divw,
  output        io_deq_bits_fun_divuw,
  output        io_deq_bits_fun_remw,
  output        io_deq_bits_fun_remuw,
  output [5:0]  io_deq_bits_param_rd0,
  output [63:0] io_deq_bits_param_dat_op1,
  output [63:0] io_deq_bits_param_dat_op2
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [63:0] _RAND_14;
  reg [63:0] _RAND_15;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_16;
`endif // RANDOMIZE_REG_INIT
  reg  ram_fun_mul [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_mul_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_mul_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_mul_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_mul_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_mul_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_mul_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_mul_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_mulh [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulh_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulh_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulh_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulh_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulh_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulh_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulh_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_mulhsu [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulhsu_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulhsu_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulhsu_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulhsu_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulhsu_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulhsu_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulhsu_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_mulhu [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulhu_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulhu_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulhu_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulhu_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulhu_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulhu_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulhu_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_div [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_div_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_div_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_div_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_div_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_div_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_div_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_div_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_divu [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_divu_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_divu_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_divu_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_divu_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_divu_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_divu_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_divu_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_rem [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_rem_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_rem_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_rem_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_rem_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_rem_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_rem_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_rem_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_remu [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_remu_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_remu_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_remu_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_remu_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_remu_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_remu_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_remu_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_mulw [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulw_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulw_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulw_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulw_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulw_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulw_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_mulw_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_divw [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_divw_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_divw_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_divw_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_divw_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_divw_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_divw_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_divw_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_divuw [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_divuw_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_divuw_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_divuw_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_divuw_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_divuw_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_divuw_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_divuw_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_remw [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_remw_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_remw_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_remw_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_remw_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_remw_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_remw_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_remw_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_remuw [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_remuw_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_remuw_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_remuw_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_remuw_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_remuw_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_remuw_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_remuw_MPORT_en; // @[Decoupled.scala 275:95]
  reg [5:0] ram_param_rd0 [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [5:0] ram_param_rd0_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [5:0] ram_param_rd0_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_param_dat_op1 [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_dat_op1_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_dat_op1_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_param_dat_op2 [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_dat_op2_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_dat_op2_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  _do_enq_T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _do_deq_T = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_25 = io_deq_ready ? 1'h0 : _do_enq_T; // @[Decoupled.scala 320:{26,35}]
  wire  do_enq = empty ? _GEN_25 : _do_enq_T; // @[Decoupled.scala 317:17]
  wire  do_deq = empty ? 1'h0 : _do_deq_T; // @[Decoupled.scala 317:17 319:14]
  assign ram_fun_mul_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_mul_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_mul_io_deq_bits_MPORT_data = ram_fun_mul[ram_fun_mul_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_mul_MPORT_data = io_enq_bits_fun_mul;
  assign ram_fun_mul_MPORT_addr = 1'h0;
  assign ram_fun_mul_MPORT_mask = 1'h1;
  assign ram_fun_mul_MPORT_en = empty ? _GEN_25 : _do_enq_T;
  assign ram_fun_mulh_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_mulh_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_mulh_io_deq_bits_MPORT_data = ram_fun_mulh[ram_fun_mulh_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_mulh_MPORT_data = io_enq_bits_fun_mulh;
  assign ram_fun_mulh_MPORT_addr = 1'h0;
  assign ram_fun_mulh_MPORT_mask = 1'h1;
  assign ram_fun_mulh_MPORT_en = empty ? _GEN_25 : _do_enq_T;
  assign ram_fun_mulhsu_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_mulhsu_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_mulhsu_io_deq_bits_MPORT_data = ram_fun_mulhsu[ram_fun_mulhsu_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_mulhsu_MPORT_data = io_enq_bits_fun_mulhsu;
  assign ram_fun_mulhsu_MPORT_addr = 1'h0;
  assign ram_fun_mulhsu_MPORT_mask = 1'h1;
  assign ram_fun_mulhsu_MPORT_en = empty ? _GEN_25 : _do_enq_T;
  assign ram_fun_mulhu_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_mulhu_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_mulhu_io_deq_bits_MPORT_data = ram_fun_mulhu[ram_fun_mulhu_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_mulhu_MPORT_data = io_enq_bits_fun_mulhu;
  assign ram_fun_mulhu_MPORT_addr = 1'h0;
  assign ram_fun_mulhu_MPORT_mask = 1'h1;
  assign ram_fun_mulhu_MPORT_en = empty ? _GEN_25 : _do_enq_T;
  assign ram_fun_div_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_div_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_div_io_deq_bits_MPORT_data = ram_fun_div[ram_fun_div_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_div_MPORT_data = io_enq_bits_fun_div;
  assign ram_fun_div_MPORT_addr = 1'h0;
  assign ram_fun_div_MPORT_mask = 1'h1;
  assign ram_fun_div_MPORT_en = empty ? _GEN_25 : _do_enq_T;
  assign ram_fun_divu_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_divu_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_divu_io_deq_bits_MPORT_data = ram_fun_divu[ram_fun_divu_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_divu_MPORT_data = io_enq_bits_fun_divu;
  assign ram_fun_divu_MPORT_addr = 1'h0;
  assign ram_fun_divu_MPORT_mask = 1'h1;
  assign ram_fun_divu_MPORT_en = empty ? _GEN_25 : _do_enq_T;
  assign ram_fun_rem_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_rem_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_rem_io_deq_bits_MPORT_data = ram_fun_rem[ram_fun_rem_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_rem_MPORT_data = io_enq_bits_fun_rem;
  assign ram_fun_rem_MPORT_addr = 1'h0;
  assign ram_fun_rem_MPORT_mask = 1'h1;
  assign ram_fun_rem_MPORT_en = empty ? _GEN_25 : _do_enq_T;
  assign ram_fun_remu_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_remu_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_remu_io_deq_bits_MPORT_data = ram_fun_remu[ram_fun_remu_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_remu_MPORT_data = io_enq_bits_fun_remu;
  assign ram_fun_remu_MPORT_addr = 1'h0;
  assign ram_fun_remu_MPORT_mask = 1'h1;
  assign ram_fun_remu_MPORT_en = empty ? _GEN_25 : _do_enq_T;
  assign ram_fun_mulw_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_mulw_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_mulw_io_deq_bits_MPORT_data = ram_fun_mulw[ram_fun_mulw_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_mulw_MPORT_data = io_enq_bits_fun_mulw;
  assign ram_fun_mulw_MPORT_addr = 1'h0;
  assign ram_fun_mulw_MPORT_mask = 1'h1;
  assign ram_fun_mulw_MPORT_en = empty ? _GEN_25 : _do_enq_T;
  assign ram_fun_divw_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_divw_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_divw_io_deq_bits_MPORT_data = ram_fun_divw[ram_fun_divw_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_divw_MPORT_data = io_enq_bits_fun_divw;
  assign ram_fun_divw_MPORT_addr = 1'h0;
  assign ram_fun_divw_MPORT_mask = 1'h1;
  assign ram_fun_divw_MPORT_en = empty ? _GEN_25 : _do_enq_T;
  assign ram_fun_divuw_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_divuw_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_divuw_io_deq_bits_MPORT_data = ram_fun_divuw[ram_fun_divuw_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_divuw_MPORT_data = io_enq_bits_fun_divuw;
  assign ram_fun_divuw_MPORT_addr = 1'h0;
  assign ram_fun_divuw_MPORT_mask = 1'h1;
  assign ram_fun_divuw_MPORT_en = empty ? _GEN_25 : _do_enq_T;
  assign ram_fun_remw_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_remw_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_remw_io_deq_bits_MPORT_data = ram_fun_remw[ram_fun_remw_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_remw_MPORT_data = io_enq_bits_fun_remw;
  assign ram_fun_remw_MPORT_addr = 1'h0;
  assign ram_fun_remw_MPORT_mask = 1'h1;
  assign ram_fun_remw_MPORT_en = empty ? _GEN_25 : _do_enq_T;
  assign ram_fun_remuw_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_remuw_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_remuw_io_deq_bits_MPORT_data = ram_fun_remuw[ram_fun_remuw_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_remuw_MPORT_data = io_enq_bits_fun_remuw;
  assign ram_fun_remuw_MPORT_addr = 1'h0;
  assign ram_fun_remuw_MPORT_mask = 1'h1;
  assign ram_fun_remuw_MPORT_en = empty ? _GEN_25 : _do_enq_T;
  assign ram_param_rd0_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_rd0_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_param_rd0_io_deq_bits_MPORT_data = ram_param_rd0[ram_param_rd0_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_rd0_MPORT_data = io_enq_bits_param_rd0;
  assign ram_param_rd0_MPORT_addr = 1'h0;
  assign ram_param_rd0_MPORT_mask = 1'h1;
  assign ram_param_rd0_MPORT_en = empty ? _GEN_25 : _do_enq_T;
  assign ram_param_dat_op1_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_dat_op1_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_param_dat_op1_io_deq_bits_MPORT_data = ram_param_dat_op1[ram_param_dat_op1_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_dat_op1_MPORT_data = io_enq_bits_param_dat_op1;
  assign ram_param_dat_op1_MPORT_addr = 1'h0;
  assign ram_param_dat_op1_MPORT_mask = 1'h1;
  assign ram_param_dat_op1_MPORT_en = empty ? _GEN_25 : _do_enq_T;
  assign ram_param_dat_op2_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_dat_op2_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_param_dat_op2_io_deq_bits_MPORT_data = ram_param_dat_op2[ram_param_dat_op2_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_dat_op2_MPORT_data = io_enq_bits_param_dat_op2;
  assign ram_param_dat_op2_MPORT_addr = 1'h0;
  assign ram_param_dat_op2_MPORT_mask = 1'h1;
  assign ram_param_dat_op2_MPORT_en = empty ? _GEN_25 : _do_enq_T;
  assign io_enq_ready = ~maybe_full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = io_enq_valid | ~empty; // @[Decoupled.scala 304:16 316:{24,39}]
  assign io_deq_bits_fun_mul = empty ? io_enq_bits_fun_mul : ram_fun_mul_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_mulh = empty ? io_enq_bits_fun_mulh : ram_fun_mulh_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_mulhsu = empty ? io_enq_bits_fun_mulhsu : ram_fun_mulhsu_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_mulhu = empty ? io_enq_bits_fun_mulhu : ram_fun_mulhu_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_div = empty ? io_enq_bits_fun_div : ram_fun_div_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_divu = empty ? io_enq_bits_fun_divu : ram_fun_divu_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_rem = empty ? io_enq_bits_fun_rem : ram_fun_rem_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_remu = empty ? io_enq_bits_fun_remu : ram_fun_remu_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_mulw = empty ? io_enq_bits_fun_mulw : ram_fun_mulw_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_divw = empty ? io_enq_bits_fun_divw : ram_fun_divw_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_divuw = empty ? io_enq_bits_fun_divuw : ram_fun_divuw_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_remw = empty ? io_enq_bits_fun_remw : ram_fun_remw_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_remuw = empty ? io_enq_bits_fun_remuw : ram_fun_remuw_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_param_rd0 = empty ? io_enq_bits_param_rd0 : ram_param_rd0_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_param_dat_op1 = empty ? io_enq_bits_param_dat_op1 : ram_param_dat_op1_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_param_dat_op2 = empty ? io_enq_bits_param_dat_op2 : ram_param_dat_op2_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  always @(posedge clock) begin
    if (ram_fun_mul_MPORT_en & ram_fun_mul_MPORT_mask) begin
      ram_fun_mul[ram_fun_mul_MPORT_addr] <= ram_fun_mul_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_mulh_MPORT_en & ram_fun_mulh_MPORT_mask) begin
      ram_fun_mulh[ram_fun_mulh_MPORT_addr] <= ram_fun_mulh_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_mulhsu_MPORT_en & ram_fun_mulhsu_MPORT_mask) begin
      ram_fun_mulhsu[ram_fun_mulhsu_MPORT_addr] <= ram_fun_mulhsu_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_mulhu_MPORT_en & ram_fun_mulhu_MPORT_mask) begin
      ram_fun_mulhu[ram_fun_mulhu_MPORT_addr] <= ram_fun_mulhu_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_div_MPORT_en & ram_fun_div_MPORT_mask) begin
      ram_fun_div[ram_fun_div_MPORT_addr] <= ram_fun_div_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_divu_MPORT_en & ram_fun_divu_MPORT_mask) begin
      ram_fun_divu[ram_fun_divu_MPORT_addr] <= ram_fun_divu_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_rem_MPORT_en & ram_fun_rem_MPORT_mask) begin
      ram_fun_rem[ram_fun_rem_MPORT_addr] <= ram_fun_rem_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_remu_MPORT_en & ram_fun_remu_MPORT_mask) begin
      ram_fun_remu[ram_fun_remu_MPORT_addr] <= ram_fun_remu_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_mulw_MPORT_en & ram_fun_mulw_MPORT_mask) begin
      ram_fun_mulw[ram_fun_mulw_MPORT_addr] <= ram_fun_mulw_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_divw_MPORT_en & ram_fun_divw_MPORT_mask) begin
      ram_fun_divw[ram_fun_divw_MPORT_addr] <= ram_fun_divw_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_divuw_MPORT_en & ram_fun_divuw_MPORT_mask) begin
      ram_fun_divuw[ram_fun_divuw_MPORT_addr] <= ram_fun_divuw_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_remw_MPORT_en & ram_fun_remw_MPORT_mask) begin
      ram_fun_remw[ram_fun_remw_MPORT_addr] <= ram_fun_remw_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_remuw_MPORT_en & ram_fun_remuw_MPORT_mask) begin
      ram_fun_remuw[ram_fun_remuw_MPORT_addr] <= ram_fun_remuw_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_rd0_MPORT_en & ram_param_rd0_MPORT_mask) begin
      ram_param_rd0[ram_param_rd0_MPORT_addr] <= ram_param_rd0_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_dat_op1_MPORT_en & ram_param_dat_op1_MPORT_mask) begin
      ram_param_dat_op1[ram_param_dat_op1_MPORT_addr] <= ram_param_dat_op1_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_dat_op2_MPORT_en & ram_param_dat_op2_MPORT_mask) begin
      ram_param_dat_op2[ram_param_dat_op2_MPORT_addr] <= ram_param_dat_op2_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      if (empty) begin // @[Decoupled.scala 317:17]
        if (io_deq_ready) begin // @[Decoupled.scala 320:26]
          maybe_full <= 1'h0; // @[Decoupled.scala 320:35]
        end else begin
          maybe_full <= _do_enq_T;
        end
      end else begin
        maybe_full <= _do_enq_T;
      end
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_mul[initvar] = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_mulh[initvar] = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_mulhsu[initvar] = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_mulhu[initvar] = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_div[initvar] = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_divu[initvar] = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_rem[initvar] = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_remu[initvar] = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_mulw[initvar] = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_divw[initvar] = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_divuw[initvar] = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_remw[initvar] = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_remuw[initvar] = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_param_rd0[initvar] = _RAND_13[5:0];
  _RAND_14 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_param_dat_op1[initvar] = _RAND_14[63:0];
  _RAND_15 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_param_dat_op2[initvar] = _RAND_15[63:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_16 = {1{`RANDOM}};
  maybe_full = _RAND_16[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_4(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input         io_enq_bits_fun_jalr,
  input         io_enq_bits_fun_beq,
  input         io_enq_bits_fun_bne,
  input         io_enq_bits_fun_blt,
  input         io_enq_bits_fun_bge,
  input         io_enq_bits_fun_bltu,
  input         io_enq_bits_fun_bgeu,
  input  [5:0]  io_enq_bits_param_rd0,
  input         io_enq_bits_param_is_rvc,
  input  [63:0] io_enq_bits_param_pc,
  input  [63:0] io_enq_bits_param_imm,
  input  [63:0] io_enq_bits_param_dat_op1,
  input  [63:0] io_enq_bits_param_dat_op2,
  input         io_deq_ready,
  output        io_deq_valid,
  output        io_deq_bits_fun_jalr,
  output        io_deq_bits_fun_beq,
  output        io_deq_bits_fun_bne,
  output        io_deq_bits_fun_blt,
  output        io_deq_bits_fun_bge,
  output        io_deq_bits_fun_bltu,
  output        io_deq_bits_fun_bgeu,
  output [5:0]  io_deq_bits_param_rd0,
  output        io_deq_bits_param_is_rvc,
  output [63:0] io_deq_bits_param_pc,
  output [63:0] io_deq_bits_param_imm,
  output [63:0] io_deq_bits_param_dat_op1,
  output [63:0] io_deq_bits_param_dat_op2
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [63:0] _RAND_9;
  reg [63:0] _RAND_10;
  reg [63:0] _RAND_11;
  reg [63:0] _RAND_12;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_13;
`endif // RANDOMIZE_REG_INIT
  reg  ram_fun_jalr [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_jalr_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_jalr_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_jalr_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_jalr_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_jalr_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_jalr_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_jalr_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_beq [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_beq_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_beq_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_beq_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_beq_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_beq_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_beq_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_beq_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_bne [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_bne_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_bne_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_bne_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_bne_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_bne_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_bne_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_bne_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_blt [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_blt_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_blt_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_blt_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_blt_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_blt_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_blt_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_blt_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_bge [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_bge_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_bge_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_bge_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_bge_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_bge_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_bge_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_bge_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_bltu [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_bltu_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_bltu_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_bltu_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_bltu_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_bltu_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_bltu_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_bltu_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_bgeu [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_bgeu_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_bgeu_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_bgeu_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_bgeu_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_bgeu_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_bgeu_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_bgeu_MPORT_en; // @[Decoupled.scala 275:95]
  reg [5:0] ram_param_rd0 [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [5:0] ram_param_rd0_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [5:0] ram_param_rd0_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_param_is_rvc [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_param_is_rvc_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_is_rvc_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_is_rvc_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_is_rvc_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_is_rvc_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_is_rvc_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_is_rvc_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_param_pc [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_param_pc_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_pc_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_pc_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_pc_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_pc_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_pc_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_pc_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_param_imm [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_param_imm_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_imm_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_imm_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_imm_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_imm_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_imm_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_imm_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_param_dat_op1 [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_dat_op1_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_dat_op1_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_param_dat_op2 [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_dat_op2_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_dat_op2_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  _do_enq_T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _do_deq_T = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_23 = io_deq_ready ? 1'h0 : _do_enq_T; // @[Decoupled.scala 320:{26,35}]
  wire  do_enq = empty ? _GEN_23 : _do_enq_T; // @[Decoupled.scala 317:17]
  wire  do_deq = empty ? 1'h0 : _do_deq_T; // @[Decoupled.scala 317:17 319:14]
  assign ram_fun_jalr_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_jalr_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_jalr_io_deq_bits_MPORT_data = ram_fun_jalr[ram_fun_jalr_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_jalr_MPORT_data = io_enq_bits_fun_jalr;
  assign ram_fun_jalr_MPORT_addr = 1'h0;
  assign ram_fun_jalr_MPORT_mask = 1'h1;
  assign ram_fun_jalr_MPORT_en = empty ? _GEN_23 : _do_enq_T;
  assign ram_fun_beq_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_beq_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_beq_io_deq_bits_MPORT_data = ram_fun_beq[ram_fun_beq_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_beq_MPORT_data = io_enq_bits_fun_beq;
  assign ram_fun_beq_MPORT_addr = 1'h0;
  assign ram_fun_beq_MPORT_mask = 1'h1;
  assign ram_fun_beq_MPORT_en = empty ? _GEN_23 : _do_enq_T;
  assign ram_fun_bne_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_bne_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_bne_io_deq_bits_MPORT_data = ram_fun_bne[ram_fun_bne_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_bne_MPORT_data = io_enq_bits_fun_bne;
  assign ram_fun_bne_MPORT_addr = 1'h0;
  assign ram_fun_bne_MPORT_mask = 1'h1;
  assign ram_fun_bne_MPORT_en = empty ? _GEN_23 : _do_enq_T;
  assign ram_fun_blt_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_blt_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_blt_io_deq_bits_MPORT_data = ram_fun_blt[ram_fun_blt_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_blt_MPORT_data = io_enq_bits_fun_blt;
  assign ram_fun_blt_MPORT_addr = 1'h0;
  assign ram_fun_blt_MPORT_mask = 1'h1;
  assign ram_fun_blt_MPORT_en = empty ? _GEN_23 : _do_enq_T;
  assign ram_fun_bge_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_bge_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_bge_io_deq_bits_MPORT_data = ram_fun_bge[ram_fun_bge_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_bge_MPORT_data = io_enq_bits_fun_bge;
  assign ram_fun_bge_MPORT_addr = 1'h0;
  assign ram_fun_bge_MPORT_mask = 1'h1;
  assign ram_fun_bge_MPORT_en = empty ? _GEN_23 : _do_enq_T;
  assign ram_fun_bltu_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_bltu_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_bltu_io_deq_bits_MPORT_data = ram_fun_bltu[ram_fun_bltu_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_bltu_MPORT_data = io_enq_bits_fun_bltu;
  assign ram_fun_bltu_MPORT_addr = 1'h0;
  assign ram_fun_bltu_MPORT_mask = 1'h1;
  assign ram_fun_bltu_MPORT_en = empty ? _GEN_23 : _do_enq_T;
  assign ram_fun_bgeu_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_bgeu_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_bgeu_io_deq_bits_MPORT_data = ram_fun_bgeu[ram_fun_bgeu_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_bgeu_MPORT_data = io_enq_bits_fun_bgeu;
  assign ram_fun_bgeu_MPORT_addr = 1'h0;
  assign ram_fun_bgeu_MPORT_mask = 1'h1;
  assign ram_fun_bgeu_MPORT_en = empty ? _GEN_23 : _do_enq_T;
  assign ram_param_rd0_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_rd0_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_param_rd0_io_deq_bits_MPORT_data = ram_param_rd0[ram_param_rd0_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_rd0_MPORT_data = io_enq_bits_param_rd0;
  assign ram_param_rd0_MPORT_addr = 1'h0;
  assign ram_param_rd0_MPORT_mask = 1'h1;
  assign ram_param_rd0_MPORT_en = empty ? _GEN_23 : _do_enq_T;
  assign ram_param_is_rvc_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_is_rvc_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_param_is_rvc_io_deq_bits_MPORT_data = ram_param_is_rvc[ram_param_is_rvc_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_is_rvc_MPORT_data = io_enq_bits_param_is_rvc;
  assign ram_param_is_rvc_MPORT_addr = 1'h0;
  assign ram_param_is_rvc_MPORT_mask = 1'h1;
  assign ram_param_is_rvc_MPORT_en = empty ? _GEN_23 : _do_enq_T;
  assign ram_param_pc_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_pc_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_param_pc_io_deq_bits_MPORT_data = ram_param_pc[ram_param_pc_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_pc_MPORT_data = io_enq_bits_param_pc;
  assign ram_param_pc_MPORT_addr = 1'h0;
  assign ram_param_pc_MPORT_mask = 1'h1;
  assign ram_param_pc_MPORT_en = empty ? _GEN_23 : _do_enq_T;
  assign ram_param_imm_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_imm_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_param_imm_io_deq_bits_MPORT_data = ram_param_imm[ram_param_imm_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_imm_MPORT_data = io_enq_bits_param_imm;
  assign ram_param_imm_MPORT_addr = 1'h0;
  assign ram_param_imm_MPORT_mask = 1'h1;
  assign ram_param_imm_MPORT_en = empty ? _GEN_23 : _do_enq_T;
  assign ram_param_dat_op1_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_dat_op1_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_param_dat_op1_io_deq_bits_MPORT_data = ram_param_dat_op1[ram_param_dat_op1_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_dat_op1_MPORT_data = io_enq_bits_param_dat_op1;
  assign ram_param_dat_op1_MPORT_addr = 1'h0;
  assign ram_param_dat_op1_MPORT_mask = 1'h1;
  assign ram_param_dat_op1_MPORT_en = empty ? _GEN_23 : _do_enq_T;
  assign ram_param_dat_op2_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_dat_op2_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_param_dat_op2_io_deq_bits_MPORT_data = ram_param_dat_op2[ram_param_dat_op2_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_dat_op2_MPORT_data = io_enq_bits_param_dat_op2;
  assign ram_param_dat_op2_MPORT_addr = 1'h0;
  assign ram_param_dat_op2_MPORT_mask = 1'h1;
  assign ram_param_dat_op2_MPORT_en = empty ? _GEN_23 : _do_enq_T;
  assign io_enq_ready = ~maybe_full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = io_enq_valid | ~empty; // @[Decoupled.scala 304:16 316:{24,39}]
  assign io_deq_bits_fun_jalr = empty ? io_enq_bits_fun_jalr : ram_fun_jalr_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_beq = empty ? io_enq_bits_fun_beq : ram_fun_beq_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_bne = empty ? io_enq_bits_fun_bne : ram_fun_bne_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_blt = empty ? io_enq_bits_fun_blt : ram_fun_blt_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_bge = empty ? io_enq_bits_fun_bge : ram_fun_bge_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_bltu = empty ? io_enq_bits_fun_bltu : ram_fun_bltu_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_bgeu = empty ? io_enq_bits_fun_bgeu : ram_fun_bgeu_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_param_rd0 = empty ? io_enq_bits_param_rd0 : ram_param_rd0_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_param_is_rvc = empty ? io_enq_bits_param_is_rvc : ram_param_is_rvc_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_param_pc = empty ? io_enq_bits_param_pc : ram_param_pc_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_param_imm = empty ? io_enq_bits_param_imm : ram_param_imm_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_param_dat_op1 = empty ? io_enq_bits_param_dat_op1 : ram_param_dat_op1_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_param_dat_op2 = empty ? io_enq_bits_param_dat_op2 : ram_param_dat_op2_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  always @(posedge clock) begin
    if (ram_fun_jalr_MPORT_en & ram_fun_jalr_MPORT_mask) begin
      ram_fun_jalr[ram_fun_jalr_MPORT_addr] <= ram_fun_jalr_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_beq_MPORT_en & ram_fun_beq_MPORT_mask) begin
      ram_fun_beq[ram_fun_beq_MPORT_addr] <= ram_fun_beq_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_bne_MPORT_en & ram_fun_bne_MPORT_mask) begin
      ram_fun_bne[ram_fun_bne_MPORT_addr] <= ram_fun_bne_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_blt_MPORT_en & ram_fun_blt_MPORT_mask) begin
      ram_fun_blt[ram_fun_blt_MPORT_addr] <= ram_fun_blt_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_bge_MPORT_en & ram_fun_bge_MPORT_mask) begin
      ram_fun_bge[ram_fun_bge_MPORT_addr] <= ram_fun_bge_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_bltu_MPORT_en & ram_fun_bltu_MPORT_mask) begin
      ram_fun_bltu[ram_fun_bltu_MPORT_addr] <= ram_fun_bltu_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_bgeu_MPORT_en & ram_fun_bgeu_MPORT_mask) begin
      ram_fun_bgeu[ram_fun_bgeu_MPORT_addr] <= ram_fun_bgeu_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_rd0_MPORT_en & ram_param_rd0_MPORT_mask) begin
      ram_param_rd0[ram_param_rd0_MPORT_addr] <= ram_param_rd0_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_is_rvc_MPORT_en & ram_param_is_rvc_MPORT_mask) begin
      ram_param_is_rvc[ram_param_is_rvc_MPORT_addr] <= ram_param_is_rvc_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_pc_MPORT_en & ram_param_pc_MPORT_mask) begin
      ram_param_pc[ram_param_pc_MPORT_addr] <= ram_param_pc_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_imm_MPORT_en & ram_param_imm_MPORT_mask) begin
      ram_param_imm[ram_param_imm_MPORT_addr] <= ram_param_imm_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_dat_op1_MPORT_en & ram_param_dat_op1_MPORT_mask) begin
      ram_param_dat_op1[ram_param_dat_op1_MPORT_addr] <= ram_param_dat_op1_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_dat_op2_MPORT_en & ram_param_dat_op2_MPORT_mask) begin
      ram_param_dat_op2[ram_param_dat_op2_MPORT_addr] <= ram_param_dat_op2_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      if (empty) begin // @[Decoupled.scala 317:17]
        if (io_deq_ready) begin // @[Decoupled.scala 320:26]
          maybe_full <= 1'h0; // @[Decoupled.scala 320:35]
        end else begin
          maybe_full <= _do_enq_T;
        end
      end else begin
        maybe_full <= _do_enq_T;
      end
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_jalr[initvar] = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_beq[initvar] = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_bne[initvar] = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_blt[initvar] = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_bge[initvar] = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_bltu[initvar] = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_bgeu[initvar] = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_param_rd0[initvar] = _RAND_7[5:0];
  _RAND_8 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_param_is_rvc[initvar] = _RAND_8[0:0];
  _RAND_9 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_param_pc[initvar] = _RAND_9[63:0];
  _RAND_10 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_param_imm[initvar] = _RAND_10[63:0];
  _RAND_11 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_param_dat_op1[initvar] = _RAND_11[63:0];
  _RAND_12 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_param_dat_op2[initvar] = _RAND_12[63:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_13 = {1{`RANDOM}};
  maybe_full = _RAND_13[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_5(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input         io_enq_bits_fun_rw,
  input         io_enq_bits_fun_rs,
  input         io_enq_bits_fun_rc,
  input  [5:0]  io_enq_bits_param_rd0,
  input  [63:0] io_enq_bits_param_dat_op1,
  input  [63:0] io_enq_bits_param_dat_op2,
  input         io_deq_ready,
  output        io_deq_valid,
  output        io_deq_bits_fun_rw,
  output        io_deq_bits_fun_rs,
  output        io_deq_bits_fun_rc,
  output [5:0]  io_deq_bits_param_rd0,
  output [63:0] io_deq_bits_param_dat_op1,
  output [63:0] io_deq_bits_param_dat_op2
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [63:0] _RAND_4;
  reg [63:0] _RAND_5;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_6;
`endif // RANDOMIZE_REG_INIT
  reg  ram_fun_rw [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_rw_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_rw_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_rw_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_rw_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_rw_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_rw_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_rw_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_rs [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_rs_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_rs_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_rs_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_rs_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_rs_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_rs_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_rs_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_rc [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_rc_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_rc_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_rc_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_rc_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_rc_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_rc_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_rc_MPORT_en; // @[Decoupled.scala 275:95]
  reg [5:0] ram_param_rd0 [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [5:0] ram_param_rd0_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [5:0] ram_param_rd0_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_param_dat_op1 [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_dat_op1_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_dat_op1_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_param_dat_op2 [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_dat_op2_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_dat_op2_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  _do_enq_T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _do_deq_T = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_15 = io_deq_ready ? 1'h0 : _do_enq_T; // @[Decoupled.scala 320:{26,35}]
  wire  do_enq = empty ? _GEN_15 : _do_enq_T; // @[Decoupled.scala 317:17]
  wire  do_deq = empty ? 1'h0 : _do_deq_T; // @[Decoupled.scala 317:17 319:14]
  assign ram_fun_rw_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_rw_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_rw_io_deq_bits_MPORT_data = ram_fun_rw[ram_fun_rw_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_rw_MPORT_data = io_enq_bits_fun_rw;
  assign ram_fun_rw_MPORT_addr = 1'h0;
  assign ram_fun_rw_MPORT_mask = 1'h1;
  assign ram_fun_rw_MPORT_en = empty ? _GEN_15 : _do_enq_T;
  assign ram_fun_rs_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_rs_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_rs_io_deq_bits_MPORT_data = ram_fun_rs[ram_fun_rs_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_rs_MPORT_data = io_enq_bits_fun_rs;
  assign ram_fun_rs_MPORT_addr = 1'h0;
  assign ram_fun_rs_MPORT_mask = 1'h1;
  assign ram_fun_rs_MPORT_en = empty ? _GEN_15 : _do_enq_T;
  assign ram_fun_rc_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_rc_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_rc_io_deq_bits_MPORT_data = ram_fun_rc[ram_fun_rc_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_rc_MPORT_data = io_enq_bits_fun_rc;
  assign ram_fun_rc_MPORT_addr = 1'h0;
  assign ram_fun_rc_MPORT_mask = 1'h1;
  assign ram_fun_rc_MPORT_en = empty ? _GEN_15 : _do_enq_T;
  assign ram_param_rd0_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_rd0_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_param_rd0_io_deq_bits_MPORT_data = ram_param_rd0[ram_param_rd0_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_rd0_MPORT_data = io_enq_bits_param_rd0;
  assign ram_param_rd0_MPORT_addr = 1'h0;
  assign ram_param_rd0_MPORT_mask = 1'h1;
  assign ram_param_rd0_MPORT_en = empty ? _GEN_15 : _do_enq_T;
  assign ram_param_dat_op1_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_dat_op1_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_param_dat_op1_io_deq_bits_MPORT_data = ram_param_dat_op1[ram_param_dat_op1_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_dat_op1_MPORT_data = io_enq_bits_param_dat_op1;
  assign ram_param_dat_op1_MPORT_addr = 1'h0;
  assign ram_param_dat_op1_MPORT_mask = 1'h1;
  assign ram_param_dat_op1_MPORT_en = empty ? _GEN_15 : _do_enq_T;
  assign ram_param_dat_op2_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_dat_op2_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_param_dat_op2_io_deq_bits_MPORT_data = ram_param_dat_op2[ram_param_dat_op2_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_dat_op2_MPORT_data = io_enq_bits_param_dat_op2;
  assign ram_param_dat_op2_MPORT_addr = 1'h0;
  assign ram_param_dat_op2_MPORT_mask = 1'h1;
  assign ram_param_dat_op2_MPORT_en = empty ? _GEN_15 : _do_enq_T;
  assign io_enq_ready = ~maybe_full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = io_enq_valid | ~empty; // @[Decoupled.scala 304:16 316:{24,39}]
  assign io_deq_bits_fun_rw = empty ? io_enq_bits_fun_rw : ram_fun_rw_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_rs = empty ? io_enq_bits_fun_rs : ram_fun_rs_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_rc = empty ? io_enq_bits_fun_rc : ram_fun_rc_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_param_rd0 = empty ? io_enq_bits_param_rd0 : ram_param_rd0_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_param_dat_op1 = empty ? io_enq_bits_param_dat_op1 : ram_param_dat_op1_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_param_dat_op2 = empty ? io_enq_bits_param_dat_op2 : ram_param_dat_op2_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  always @(posedge clock) begin
    if (ram_fun_rw_MPORT_en & ram_fun_rw_MPORT_mask) begin
      ram_fun_rw[ram_fun_rw_MPORT_addr] <= ram_fun_rw_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_rs_MPORT_en & ram_fun_rs_MPORT_mask) begin
      ram_fun_rs[ram_fun_rs_MPORT_addr] <= ram_fun_rs_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_rc_MPORT_en & ram_fun_rc_MPORT_mask) begin
      ram_fun_rc[ram_fun_rc_MPORT_addr] <= ram_fun_rc_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_rd0_MPORT_en & ram_param_rd0_MPORT_mask) begin
      ram_param_rd0[ram_param_rd0_MPORT_addr] <= ram_param_rd0_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_dat_op1_MPORT_en & ram_param_dat_op1_MPORT_mask) begin
      ram_param_dat_op1[ram_param_dat_op1_MPORT_addr] <= ram_param_dat_op1_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_dat_op2_MPORT_en & ram_param_dat_op2_MPORT_mask) begin
      ram_param_dat_op2[ram_param_dat_op2_MPORT_addr] <= ram_param_dat_op2_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      if (empty) begin // @[Decoupled.scala 317:17]
        if (io_deq_ready) begin // @[Decoupled.scala 320:26]
          maybe_full <= 1'h0; // @[Decoupled.scala 320:35]
        end else begin
          maybe_full <= _do_enq_T;
        end
      end else begin
        maybe_full <= _do_enq_T;
      end
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_rw[initvar] = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_rs[initvar] = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_rc[initvar] = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_param_rd0[initvar] = _RAND_3[5:0];
  _RAND_4 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_param_dat_op1[initvar] = _RAND_4[63:0];
  _RAND_5 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_param_dat_op2[initvar] = _RAND_5[63:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_6 = {1{`RANDOM}};
  maybe_full = _RAND_6[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_6(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input         io_enq_bits_fun_lb,
  input         io_enq_bits_fun_lh,
  input         io_enq_bits_fun_lw,
  input         io_enq_bits_fun_ld,
  input         io_enq_bits_fun_lbu,
  input         io_enq_bits_fun_lhu,
  input         io_enq_bits_fun_lwu,
  input         io_enq_bits_fun_sb,
  input         io_enq_bits_fun_sh,
  input         io_enq_bits_fun_sw,
  input         io_enq_bits_fun_sd,
  input         io_enq_bits_fun_fence,
  input         io_enq_bits_fun_fence_i,
  input         io_enq_bits_fun_sfence_vma,
  input         io_enq_bits_fun_lr_w,
  input         io_enq_bits_fun_sc_w,
  input         io_enq_bits_fun_amoswap_w,
  input         io_enq_bits_fun_amoadd_w,
  input         io_enq_bits_fun_amoxor_w,
  input         io_enq_bits_fun_amoand_w,
  input         io_enq_bits_fun_amoor_w,
  input         io_enq_bits_fun_amomin_w,
  input         io_enq_bits_fun_amomax_w,
  input         io_enq_bits_fun_amominu_w,
  input         io_enq_bits_fun_amomaxu_w,
  input         io_enq_bits_fun_lr_d,
  input         io_enq_bits_fun_sc_d,
  input         io_enq_bits_fun_amoswap_d,
  input         io_enq_bits_fun_amoadd_d,
  input         io_enq_bits_fun_amoxor_d,
  input         io_enq_bits_fun_amoand_d,
  input         io_enq_bits_fun_amoor_d,
  input         io_enq_bits_fun_amomin_d,
  input         io_enq_bits_fun_amomax_d,
  input         io_enq_bits_fun_amominu_d,
  input         io_enq_bits_fun_amomaxu_d,
  input         io_enq_bits_fun_flw,
  input         io_enq_bits_fun_fsw,
  input         io_enq_bits_fun_fld,
  input         io_enq_bits_fun_fsd,
  input  [5:0]  io_enq_bits_param_rd0,
  input  [63:0] io_enq_bits_param_dat_op1,
  input  [63:0] io_enq_bits_param_dat_op2,
  input         io_deq_ready,
  output        io_deq_valid,
  output        io_deq_bits_fun_lb,
  output        io_deq_bits_fun_lh,
  output        io_deq_bits_fun_lw,
  output        io_deq_bits_fun_ld,
  output        io_deq_bits_fun_lbu,
  output        io_deq_bits_fun_lhu,
  output        io_deq_bits_fun_lwu,
  output        io_deq_bits_fun_sb,
  output        io_deq_bits_fun_sh,
  output        io_deq_bits_fun_sw,
  output        io_deq_bits_fun_sd,
  output        io_deq_bits_fun_fence,
  output        io_deq_bits_fun_fence_i,
  output        io_deq_bits_fun_sfence_vma,
  output        io_deq_bits_fun_lr_w,
  output        io_deq_bits_fun_sc_w,
  output        io_deq_bits_fun_amoswap_w,
  output        io_deq_bits_fun_amoadd_w,
  output        io_deq_bits_fun_amoxor_w,
  output        io_deq_bits_fun_amoand_w,
  output        io_deq_bits_fun_amoor_w,
  output        io_deq_bits_fun_amomin_w,
  output        io_deq_bits_fun_amomax_w,
  output        io_deq_bits_fun_amominu_w,
  output        io_deq_bits_fun_amomaxu_w,
  output        io_deq_bits_fun_lr_d,
  output        io_deq_bits_fun_sc_d,
  output        io_deq_bits_fun_amoswap_d,
  output        io_deq_bits_fun_amoadd_d,
  output        io_deq_bits_fun_amoxor_d,
  output        io_deq_bits_fun_amoand_d,
  output        io_deq_bits_fun_amoor_d,
  output        io_deq_bits_fun_amomin_d,
  output        io_deq_bits_fun_amomax_d,
  output        io_deq_bits_fun_amominu_d,
  output        io_deq_bits_fun_amomaxu_d,
  output        io_deq_bits_fun_flw,
  output        io_deq_bits_fun_fsw,
  output        io_deq_bits_fun_fld,
  output        io_deq_bits_fun_fsd,
  output [5:0]  io_deq_bits_param_rd0,
  output [63:0] io_deq_bits_param_dat_op1,
  output [63:0] io_deq_bits_param_dat_op2
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
  reg [31:0] _RAND_33;
  reg [31:0] _RAND_34;
  reg [31:0] _RAND_35;
  reg [31:0] _RAND_36;
  reg [31:0] _RAND_37;
  reg [31:0] _RAND_38;
  reg [31:0] _RAND_39;
  reg [31:0] _RAND_40;
  reg [63:0] _RAND_41;
  reg [63:0] _RAND_42;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_43;
`endif // RANDOMIZE_REG_INIT
  reg  ram_fun_lb [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lb_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lb_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lb_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lb_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lb_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lb_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lb_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lh [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lh_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lh_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lh_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lh_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lh_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lh_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lh_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lw [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lw_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lw_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lw_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lw_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lw_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lw_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lw_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_ld [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_ld_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_ld_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_ld_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_ld_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_ld_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_ld_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_ld_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lbu [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lbu_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lbu_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lbu_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lbu_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lbu_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lbu_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lbu_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lhu [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lhu_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lhu_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lhu_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lhu_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lhu_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lhu_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lhu_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lwu [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lwu_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lwu_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lwu_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lwu_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lwu_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lwu_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lwu_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_sb [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_sb_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_sb_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sb_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sb_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sb_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sb_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_sb_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_sh [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_sh_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_sh_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sh_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sh_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sh_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sh_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_sh_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_sw [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_sw_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_sw_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sw_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sw_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sw_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sw_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_sw_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_sd [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_sd_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_sd_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sd_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sd_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sd_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sd_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_sd_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_fence [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_fence_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_fence_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_fence_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_fence_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_fence_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_fence_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_fence_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_fence_i [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_fence_i_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_fence_i_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_fence_i_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_fence_i_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_fence_i_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_fence_i_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_fence_i_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_sfence_vma [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_sfence_vma_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_sfence_vma_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sfence_vma_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sfence_vma_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sfence_vma_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sfence_vma_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_sfence_vma_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lr_w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_sc_w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoswap_w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoadd_w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoxor_w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoand_w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoor_w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amomin_w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amomax_w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amominu_w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amomaxu_w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lr_d [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_sc_d [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoswap_d [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoadd_d [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoxor_d [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoand_d [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoor_d [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amomin_d [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amomax_d [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amominu_d [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amomaxu_d [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_flw [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_flw_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_flw_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_flw_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_flw_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_flw_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_flw_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_flw_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_fsw [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsw_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsw_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsw_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsw_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsw_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsw_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsw_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_fld [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_fld_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_fld_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_fld_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_fld_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_fld_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_fld_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_fld_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_fsd [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsd_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsd_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsd_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsd_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsd_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsd_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsd_MPORT_en; // @[Decoupled.scala 275:95]
  reg [5:0] ram_param_rd0 [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [5:0] ram_param_rd0_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [5:0] ram_param_rd0_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_rd0_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_param_dat_op1 [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_dat_op1_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_dat_op1_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op1_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_param_dat_op2 [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_dat_op2_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_param_dat_op2_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_dat_op2_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  _do_enq_T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _do_deq_T = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_52 = io_deq_ready ? 1'h0 : _do_enq_T; // @[Decoupled.scala 320:{26,35}]
  wire  do_enq = empty ? _GEN_52 : _do_enq_T; // @[Decoupled.scala 317:17]
  wire  do_deq = empty ? 1'h0 : _do_deq_T; // @[Decoupled.scala 317:17 319:14]
  assign ram_fun_lb_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lb_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_lb_io_deq_bits_MPORT_data = ram_fun_lb[ram_fun_lb_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lb_MPORT_data = io_enq_bits_fun_lb;
  assign ram_fun_lb_MPORT_addr = 1'h0;
  assign ram_fun_lb_MPORT_mask = 1'h1;
  assign ram_fun_lb_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_lh_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lh_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_lh_io_deq_bits_MPORT_data = ram_fun_lh[ram_fun_lh_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lh_MPORT_data = io_enq_bits_fun_lh;
  assign ram_fun_lh_MPORT_addr = 1'h0;
  assign ram_fun_lh_MPORT_mask = 1'h1;
  assign ram_fun_lh_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_lw_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lw_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_lw_io_deq_bits_MPORT_data = ram_fun_lw[ram_fun_lw_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lw_MPORT_data = io_enq_bits_fun_lw;
  assign ram_fun_lw_MPORT_addr = 1'h0;
  assign ram_fun_lw_MPORT_mask = 1'h1;
  assign ram_fun_lw_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_ld_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_ld_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_ld_io_deq_bits_MPORT_data = ram_fun_ld[ram_fun_ld_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_ld_MPORT_data = io_enq_bits_fun_ld;
  assign ram_fun_ld_MPORT_addr = 1'h0;
  assign ram_fun_ld_MPORT_mask = 1'h1;
  assign ram_fun_ld_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_lbu_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lbu_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_lbu_io_deq_bits_MPORT_data = ram_fun_lbu[ram_fun_lbu_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lbu_MPORT_data = io_enq_bits_fun_lbu;
  assign ram_fun_lbu_MPORT_addr = 1'h0;
  assign ram_fun_lbu_MPORT_mask = 1'h1;
  assign ram_fun_lbu_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_lhu_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lhu_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_lhu_io_deq_bits_MPORT_data = ram_fun_lhu[ram_fun_lhu_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lhu_MPORT_data = io_enq_bits_fun_lhu;
  assign ram_fun_lhu_MPORT_addr = 1'h0;
  assign ram_fun_lhu_MPORT_mask = 1'h1;
  assign ram_fun_lhu_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_lwu_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lwu_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_lwu_io_deq_bits_MPORT_data = ram_fun_lwu[ram_fun_lwu_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lwu_MPORT_data = io_enq_bits_fun_lwu;
  assign ram_fun_lwu_MPORT_addr = 1'h0;
  assign ram_fun_lwu_MPORT_mask = 1'h1;
  assign ram_fun_lwu_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_sb_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_sb_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_sb_io_deq_bits_MPORT_data = ram_fun_sb[ram_fun_sb_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_sb_MPORT_data = io_enq_bits_fun_sb;
  assign ram_fun_sb_MPORT_addr = 1'h0;
  assign ram_fun_sb_MPORT_mask = 1'h1;
  assign ram_fun_sb_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_sh_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_sh_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_sh_io_deq_bits_MPORT_data = ram_fun_sh[ram_fun_sh_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_sh_MPORT_data = io_enq_bits_fun_sh;
  assign ram_fun_sh_MPORT_addr = 1'h0;
  assign ram_fun_sh_MPORT_mask = 1'h1;
  assign ram_fun_sh_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_sw_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_sw_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_sw_io_deq_bits_MPORT_data = ram_fun_sw[ram_fun_sw_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_sw_MPORT_data = io_enq_bits_fun_sw;
  assign ram_fun_sw_MPORT_addr = 1'h0;
  assign ram_fun_sw_MPORT_mask = 1'h1;
  assign ram_fun_sw_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_sd_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_sd_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_sd_io_deq_bits_MPORT_data = ram_fun_sd[ram_fun_sd_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_sd_MPORT_data = io_enq_bits_fun_sd;
  assign ram_fun_sd_MPORT_addr = 1'h0;
  assign ram_fun_sd_MPORT_mask = 1'h1;
  assign ram_fun_sd_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_fence_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_fence_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_fence_io_deq_bits_MPORT_data = ram_fun_fence[ram_fun_fence_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_fence_MPORT_data = io_enq_bits_fun_fence;
  assign ram_fun_fence_MPORT_addr = 1'h0;
  assign ram_fun_fence_MPORT_mask = 1'h1;
  assign ram_fun_fence_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_fence_i_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_fence_i_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_fence_i_io_deq_bits_MPORT_data = ram_fun_fence_i[ram_fun_fence_i_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_fence_i_MPORT_data = io_enq_bits_fun_fence_i;
  assign ram_fun_fence_i_MPORT_addr = 1'h0;
  assign ram_fun_fence_i_MPORT_mask = 1'h1;
  assign ram_fun_fence_i_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_sfence_vma_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_sfence_vma_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_sfence_vma_io_deq_bits_MPORT_data = ram_fun_sfence_vma[ram_fun_sfence_vma_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_sfence_vma_MPORT_data = io_enq_bits_fun_sfence_vma;
  assign ram_fun_sfence_vma_MPORT_addr = 1'h0;
  assign ram_fun_sfence_vma_MPORT_mask = 1'h1;
  assign ram_fun_sfence_vma_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_lr_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lr_w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_lr_w_io_deq_bits_MPORT_data = ram_fun_lr_w[ram_fun_lr_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lr_w_MPORT_data = io_enq_bits_fun_lr_w;
  assign ram_fun_lr_w_MPORT_addr = 1'h0;
  assign ram_fun_lr_w_MPORT_mask = 1'h1;
  assign ram_fun_lr_w_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_sc_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_sc_w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_sc_w_io_deq_bits_MPORT_data = ram_fun_sc_w[ram_fun_sc_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_sc_w_MPORT_data = io_enq_bits_fun_sc_w;
  assign ram_fun_sc_w_MPORT_addr = 1'h0;
  assign ram_fun_sc_w_MPORT_mask = 1'h1;
  assign ram_fun_sc_w_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_amoswap_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoswap_w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amoswap_w_io_deq_bits_MPORT_data = ram_fun_amoswap_w[ram_fun_amoswap_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoswap_w_MPORT_data = io_enq_bits_fun_amoswap_w;
  assign ram_fun_amoswap_w_MPORT_addr = 1'h0;
  assign ram_fun_amoswap_w_MPORT_mask = 1'h1;
  assign ram_fun_amoswap_w_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_amoadd_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoadd_w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amoadd_w_io_deq_bits_MPORT_data = ram_fun_amoadd_w[ram_fun_amoadd_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoadd_w_MPORT_data = io_enq_bits_fun_amoadd_w;
  assign ram_fun_amoadd_w_MPORT_addr = 1'h0;
  assign ram_fun_amoadd_w_MPORT_mask = 1'h1;
  assign ram_fun_amoadd_w_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_amoxor_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoxor_w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amoxor_w_io_deq_bits_MPORT_data = ram_fun_amoxor_w[ram_fun_amoxor_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoxor_w_MPORT_data = io_enq_bits_fun_amoxor_w;
  assign ram_fun_amoxor_w_MPORT_addr = 1'h0;
  assign ram_fun_amoxor_w_MPORT_mask = 1'h1;
  assign ram_fun_amoxor_w_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_amoand_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoand_w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amoand_w_io_deq_bits_MPORT_data = ram_fun_amoand_w[ram_fun_amoand_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoand_w_MPORT_data = io_enq_bits_fun_amoand_w;
  assign ram_fun_amoand_w_MPORT_addr = 1'h0;
  assign ram_fun_amoand_w_MPORT_mask = 1'h1;
  assign ram_fun_amoand_w_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_amoor_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoor_w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amoor_w_io_deq_bits_MPORT_data = ram_fun_amoor_w[ram_fun_amoor_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoor_w_MPORT_data = io_enq_bits_fun_amoor_w;
  assign ram_fun_amoor_w_MPORT_addr = 1'h0;
  assign ram_fun_amoor_w_MPORT_mask = 1'h1;
  assign ram_fun_amoor_w_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_amomin_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amomin_w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amomin_w_io_deq_bits_MPORT_data = ram_fun_amomin_w[ram_fun_amomin_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amomin_w_MPORT_data = io_enq_bits_fun_amomin_w;
  assign ram_fun_amomin_w_MPORT_addr = 1'h0;
  assign ram_fun_amomin_w_MPORT_mask = 1'h1;
  assign ram_fun_amomin_w_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_amomax_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amomax_w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amomax_w_io_deq_bits_MPORT_data = ram_fun_amomax_w[ram_fun_amomax_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amomax_w_MPORT_data = io_enq_bits_fun_amomax_w;
  assign ram_fun_amomax_w_MPORT_addr = 1'h0;
  assign ram_fun_amomax_w_MPORT_mask = 1'h1;
  assign ram_fun_amomax_w_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_amominu_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amominu_w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amominu_w_io_deq_bits_MPORT_data = ram_fun_amominu_w[ram_fun_amominu_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amominu_w_MPORT_data = io_enq_bits_fun_amominu_w;
  assign ram_fun_amominu_w_MPORT_addr = 1'h0;
  assign ram_fun_amominu_w_MPORT_mask = 1'h1;
  assign ram_fun_amominu_w_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_amomaxu_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amomaxu_w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amomaxu_w_io_deq_bits_MPORT_data = ram_fun_amomaxu_w[ram_fun_amomaxu_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amomaxu_w_MPORT_data = io_enq_bits_fun_amomaxu_w;
  assign ram_fun_amomaxu_w_MPORT_addr = 1'h0;
  assign ram_fun_amomaxu_w_MPORT_mask = 1'h1;
  assign ram_fun_amomaxu_w_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_lr_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lr_d_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_lr_d_io_deq_bits_MPORT_data = ram_fun_lr_d[ram_fun_lr_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lr_d_MPORT_data = io_enq_bits_fun_lr_d;
  assign ram_fun_lr_d_MPORT_addr = 1'h0;
  assign ram_fun_lr_d_MPORT_mask = 1'h1;
  assign ram_fun_lr_d_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_sc_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_sc_d_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_sc_d_io_deq_bits_MPORT_data = ram_fun_sc_d[ram_fun_sc_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_sc_d_MPORT_data = io_enq_bits_fun_sc_d;
  assign ram_fun_sc_d_MPORT_addr = 1'h0;
  assign ram_fun_sc_d_MPORT_mask = 1'h1;
  assign ram_fun_sc_d_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_amoswap_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoswap_d_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amoswap_d_io_deq_bits_MPORT_data = ram_fun_amoswap_d[ram_fun_amoswap_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoswap_d_MPORT_data = io_enq_bits_fun_amoswap_d;
  assign ram_fun_amoswap_d_MPORT_addr = 1'h0;
  assign ram_fun_amoswap_d_MPORT_mask = 1'h1;
  assign ram_fun_amoswap_d_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_amoadd_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoadd_d_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amoadd_d_io_deq_bits_MPORT_data = ram_fun_amoadd_d[ram_fun_amoadd_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoadd_d_MPORT_data = io_enq_bits_fun_amoadd_d;
  assign ram_fun_amoadd_d_MPORT_addr = 1'h0;
  assign ram_fun_amoadd_d_MPORT_mask = 1'h1;
  assign ram_fun_amoadd_d_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_amoxor_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoxor_d_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amoxor_d_io_deq_bits_MPORT_data = ram_fun_amoxor_d[ram_fun_amoxor_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoxor_d_MPORT_data = io_enq_bits_fun_amoxor_d;
  assign ram_fun_amoxor_d_MPORT_addr = 1'h0;
  assign ram_fun_amoxor_d_MPORT_mask = 1'h1;
  assign ram_fun_amoxor_d_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_amoand_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoand_d_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amoand_d_io_deq_bits_MPORT_data = ram_fun_amoand_d[ram_fun_amoand_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoand_d_MPORT_data = io_enq_bits_fun_amoand_d;
  assign ram_fun_amoand_d_MPORT_addr = 1'h0;
  assign ram_fun_amoand_d_MPORT_mask = 1'h1;
  assign ram_fun_amoand_d_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_amoor_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoor_d_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amoor_d_io_deq_bits_MPORT_data = ram_fun_amoor_d[ram_fun_amoor_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoor_d_MPORT_data = io_enq_bits_fun_amoor_d;
  assign ram_fun_amoor_d_MPORT_addr = 1'h0;
  assign ram_fun_amoor_d_MPORT_mask = 1'h1;
  assign ram_fun_amoor_d_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_amomin_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amomin_d_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amomin_d_io_deq_bits_MPORT_data = ram_fun_amomin_d[ram_fun_amomin_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amomin_d_MPORT_data = io_enq_bits_fun_amomin_d;
  assign ram_fun_amomin_d_MPORT_addr = 1'h0;
  assign ram_fun_amomin_d_MPORT_mask = 1'h1;
  assign ram_fun_amomin_d_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_amomax_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amomax_d_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amomax_d_io_deq_bits_MPORT_data = ram_fun_amomax_d[ram_fun_amomax_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amomax_d_MPORT_data = io_enq_bits_fun_amomax_d;
  assign ram_fun_amomax_d_MPORT_addr = 1'h0;
  assign ram_fun_amomax_d_MPORT_mask = 1'h1;
  assign ram_fun_amomax_d_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_amominu_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amominu_d_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amominu_d_io_deq_bits_MPORT_data = ram_fun_amominu_d[ram_fun_amominu_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amominu_d_MPORT_data = io_enq_bits_fun_amominu_d;
  assign ram_fun_amominu_d_MPORT_addr = 1'h0;
  assign ram_fun_amominu_d_MPORT_mask = 1'h1;
  assign ram_fun_amominu_d_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_amomaxu_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amomaxu_d_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amomaxu_d_io_deq_bits_MPORT_data = ram_fun_amomaxu_d[ram_fun_amomaxu_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amomaxu_d_MPORT_data = io_enq_bits_fun_amomaxu_d;
  assign ram_fun_amomaxu_d_MPORT_addr = 1'h0;
  assign ram_fun_amomaxu_d_MPORT_mask = 1'h1;
  assign ram_fun_amomaxu_d_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_flw_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_flw_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_flw_io_deq_bits_MPORT_data = ram_fun_flw[ram_fun_flw_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_flw_MPORT_data = io_enq_bits_fun_flw;
  assign ram_fun_flw_MPORT_addr = 1'h0;
  assign ram_fun_flw_MPORT_mask = 1'h1;
  assign ram_fun_flw_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_fsw_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_fsw_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_fsw_io_deq_bits_MPORT_data = ram_fun_fsw[ram_fun_fsw_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_fsw_MPORT_data = io_enq_bits_fun_fsw;
  assign ram_fun_fsw_MPORT_addr = 1'h0;
  assign ram_fun_fsw_MPORT_mask = 1'h1;
  assign ram_fun_fsw_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_fld_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_fld_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_fld_io_deq_bits_MPORT_data = ram_fun_fld[ram_fun_fld_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_fld_MPORT_data = io_enq_bits_fun_fld;
  assign ram_fun_fld_MPORT_addr = 1'h0;
  assign ram_fun_fld_MPORT_mask = 1'h1;
  assign ram_fun_fld_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_fun_fsd_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_fsd_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_fsd_io_deq_bits_MPORT_data = ram_fun_fsd[ram_fun_fsd_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_fsd_MPORT_data = io_enq_bits_fun_fsd;
  assign ram_fun_fsd_MPORT_addr = 1'h0;
  assign ram_fun_fsd_MPORT_mask = 1'h1;
  assign ram_fun_fsd_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_param_rd0_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_rd0_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_param_rd0_io_deq_bits_MPORT_data = ram_param_rd0[ram_param_rd0_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_rd0_MPORT_data = io_enq_bits_param_rd0;
  assign ram_param_rd0_MPORT_addr = 1'h0;
  assign ram_param_rd0_MPORT_mask = 1'h1;
  assign ram_param_rd0_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_param_dat_op1_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_dat_op1_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_param_dat_op1_io_deq_bits_MPORT_data = ram_param_dat_op1[ram_param_dat_op1_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_dat_op1_MPORT_data = io_enq_bits_param_dat_op1;
  assign ram_param_dat_op1_MPORT_addr = 1'h0;
  assign ram_param_dat_op1_MPORT_mask = 1'h1;
  assign ram_param_dat_op1_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign ram_param_dat_op2_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_dat_op2_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_param_dat_op2_io_deq_bits_MPORT_data = ram_param_dat_op2[ram_param_dat_op2_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_dat_op2_MPORT_data = io_enq_bits_param_dat_op2;
  assign ram_param_dat_op2_MPORT_addr = 1'h0;
  assign ram_param_dat_op2_MPORT_mask = 1'h1;
  assign ram_param_dat_op2_MPORT_en = empty ? _GEN_52 : _do_enq_T;
  assign io_enq_ready = ~maybe_full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = io_enq_valid | ~empty; // @[Decoupled.scala 304:16 316:{24,39}]
  assign io_deq_bits_fun_lb = empty ? io_enq_bits_fun_lb : ram_fun_lb_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_lh = empty ? io_enq_bits_fun_lh : ram_fun_lh_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_lw = empty ? io_enq_bits_fun_lw : ram_fun_lw_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_ld = empty ? io_enq_bits_fun_ld : ram_fun_ld_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_lbu = empty ? io_enq_bits_fun_lbu : ram_fun_lbu_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_lhu = empty ? io_enq_bits_fun_lhu : ram_fun_lhu_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_lwu = empty ? io_enq_bits_fun_lwu : ram_fun_lwu_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_sb = empty ? io_enq_bits_fun_sb : ram_fun_sb_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_sh = empty ? io_enq_bits_fun_sh : ram_fun_sh_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_sw = empty ? io_enq_bits_fun_sw : ram_fun_sw_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_sd = empty ? io_enq_bits_fun_sd : ram_fun_sd_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_fence = empty ? io_enq_bits_fun_fence : ram_fun_fence_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_fence_i = empty ? io_enq_bits_fun_fence_i : ram_fun_fence_i_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_sfence_vma = empty ? io_enq_bits_fun_sfence_vma : ram_fun_sfence_vma_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_lr_w = empty ? io_enq_bits_fun_lr_w : ram_fun_lr_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_sc_w = empty ? io_enq_bits_fun_sc_w : ram_fun_sc_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amoswap_w = empty ? io_enq_bits_fun_amoswap_w : ram_fun_amoswap_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amoadd_w = empty ? io_enq_bits_fun_amoadd_w : ram_fun_amoadd_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amoxor_w = empty ? io_enq_bits_fun_amoxor_w : ram_fun_amoxor_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amoand_w = empty ? io_enq_bits_fun_amoand_w : ram_fun_amoand_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amoor_w = empty ? io_enq_bits_fun_amoor_w : ram_fun_amoor_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amomin_w = empty ? io_enq_bits_fun_amomin_w : ram_fun_amomin_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amomax_w = empty ? io_enq_bits_fun_amomax_w : ram_fun_amomax_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amominu_w = empty ? io_enq_bits_fun_amominu_w : ram_fun_amominu_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amomaxu_w = empty ? io_enq_bits_fun_amomaxu_w : ram_fun_amomaxu_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_lr_d = empty ? io_enq_bits_fun_lr_d : ram_fun_lr_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_sc_d = empty ? io_enq_bits_fun_sc_d : ram_fun_sc_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amoswap_d = empty ? io_enq_bits_fun_amoswap_d : ram_fun_amoswap_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amoadd_d = empty ? io_enq_bits_fun_amoadd_d : ram_fun_amoadd_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amoxor_d = empty ? io_enq_bits_fun_amoxor_d : ram_fun_amoxor_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amoand_d = empty ? io_enq_bits_fun_amoand_d : ram_fun_amoand_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amoor_d = empty ? io_enq_bits_fun_amoor_d : ram_fun_amoor_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amomin_d = empty ? io_enq_bits_fun_amomin_d : ram_fun_amomin_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amomax_d = empty ? io_enq_bits_fun_amomax_d : ram_fun_amomax_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amominu_d = empty ? io_enq_bits_fun_amominu_d : ram_fun_amominu_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amomaxu_d = empty ? io_enq_bits_fun_amomaxu_d : ram_fun_amomaxu_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_flw = empty ? io_enq_bits_fun_flw : ram_fun_flw_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_fsw = empty ? io_enq_bits_fun_fsw : ram_fun_fsw_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_fld = empty ? io_enq_bits_fun_fld : ram_fun_fld_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_fsd = empty ? io_enq_bits_fun_fsd : ram_fun_fsd_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_param_rd0 = empty ? io_enq_bits_param_rd0 : ram_param_rd0_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_param_dat_op1 = empty ? io_enq_bits_param_dat_op1 : ram_param_dat_op1_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_param_dat_op2 = empty ? io_enq_bits_param_dat_op2 : ram_param_dat_op2_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  always @(posedge clock) begin
    if (ram_fun_lb_MPORT_en & ram_fun_lb_MPORT_mask) begin
      ram_fun_lb[ram_fun_lb_MPORT_addr] <= ram_fun_lb_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lh_MPORT_en & ram_fun_lh_MPORT_mask) begin
      ram_fun_lh[ram_fun_lh_MPORT_addr] <= ram_fun_lh_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lw_MPORT_en & ram_fun_lw_MPORT_mask) begin
      ram_fun_lw[ram_fun_lw_MPORT_addr] <= ram_fun_lw_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_ld_MPORT_en & ram_fun_ld_MPORT_mask) begin
      ram_fun_ld[ram_fun_ld_MPORT_addr] <= ram_fun_ld_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lbu_MPORT_en & ram_fun_lbu_MPORT_mask) begin
      ram_fun_lbu[ram_fun_lbu_MPORT_addr] <= ram_fun_lbu_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lhu_MPORT_en & ram_fun_lhu_MPORT_mask) begin
      ram_fun_lhu[ram_fun_lhu_MPORT_addr] <= ram_fun_lhu_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lwu_MPORT_en & ram_fun_lwu_MPORT_mask) begin
      ram_fun_lwu[ram_fun_lwu_MPORT_addr] <= ram_fun_lwu_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_sb_MPORT_en & ram_fun_sb_MPORT_mask) begin
      ram_fun_sb[ram_fun_sb_MPORT_addr] <= ram_fun_sb_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_sh_MPORT_en & ram_fun_sh_MPORT_mask) begin
      ram_fun_sh[ram_fun_sh_MPORT_addr] <= ram_fun_sh_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_sw_MPORT_en & ram_fun_sw_MPORT_mask) begin
      ram_fun_sw[ram_fun_sw_MPORT_addr] <= ram_fun_sw_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_sd_MPORT_en & ram_fun_sd_MPORT_mask) begin
      ram_fun_sd[ram_fun_sd_MPORT_addr] <= ram_fun_sd_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_fence_MPORT_en & ram_fun_fence_MPORT_mask) begin
      ram_fun_fence[ram_fun_fence_MPORT_addr] <= ram_fun_fence_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_fence_i_MPORT_en & ram_fun_fence_i_MPORT_mask) begin
      ram_fun_fence_i[ram_fun_fence_i_MPORT_addr] <= ram_fun_fence_i_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_sfence_vma_MPORT_en & ram_fun_sfence_vma_MPORT_mask) begin
      ram_fun_sfence_vma[ram_fun_sfence_vma_MPORT_addr] <= ram_fun_sfence_vma_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lr_w_MPORT_en & ram_fun_lr_w_MPORT_mask) begin
      ram_fun_lr_w[ram_fun_lr_w_MPORT_addr] <= ram_fun_lr_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_sc_w_MPORT_en & ram_fun_sc_w_MPORT_mask) begin
      ram_fun_sc_w[ram_fun_sc_w_MPORT_addr] <= ram_fun_sc_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoswap_w_MPORT_en & ram_fun_amoswap_w_MPORT_mask) begin
      ram_fun_amoswap_w[ram_fun_amoswap_w_MPORT_addr] <= ram_fun_amoswap_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoadd_w_MPORT_en & ram_fun_amoadd_w_MPORT_mask) begin
      ram_fun_amoadd_w[ram_fun_amoadd_w_MPORT_addr] <= ram_fun_amoadd_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoxor_w_MPORT_en & ram_fun_amoxor_w_MPORT_mask) begin
      ram_fun_amoxor_w[ram_fun_amoxor_w_MPORT_addr] <= ram_fun_amoxor_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoand_w_MPORT_en & ram_fun_amoand_w_MPORT_mask) begin
      ram_fun_amoand_w[ram_fun_amoand_w_MPORT_addr] <= ram_fun_amoand_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoor_w_MPORT_en & ram_fun_amoor_w_MPORT_mask) begin
      ram_fun_amoor_w[ram_fun_amoor_w_MPORT_addr] <= ram_fun_amoor_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amomin_w_MPORT_en & ram_fun_amomin_w_MPORT_mask) begin
      ram_fun_amomin_w[ram_fun_amomin_w_MPORT_addr] <= ram_fun_amomin_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amomax_w_MPORT_en & ram_fun_amomax_w_MPORT_mask) begin
      ram_fun_amomax_w[ram_fun_amomax_w_MPORT_addr] <= ram_fun_amomax_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amominu_w_MPORT_en & ram_fun_amominu_w_MPORT_mask) begin
      ram_fun_amominu_w[ram_fun_amominu_w_MPORT_addr] <= ram_fun_amominu_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amomaxu_w_MPORT_en & ram_fun_amomaxu_w_MPORT_mask) begin
      ram_fun_amomaxu_w[ram_fun_amomaxu_w_MPORT_addr] <= ram_fun_amomaxu_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lr_d_MPORT_en & ram_fun_lr_d_MPORT_mask) begin
      ram_fun_lr_d[ram_fun_lr_d_MPORT_addr] <= ram_fun_lr_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_sc_d_MPORT_en & ram_fun_sc_d_MPORT_mask) begin
      ram_fun_sc_d[ram_fun_sc_d_MPORT_addr] <= ram_fun_sc_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoswap_d_MPORT_en & ram_fun_amoswap_d_MPORT_mask) begin
      ram_fun_amoswap_d[ram_fun_amoswap_d_MPORT_addr] <= ram_fun_amoswap_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoadd_d_MPORT_en & ram_fun_amoadd_d_MPORT_mask) begin
      ram_fun_amoadd_d[ram_fun_amoadd_d_MPORT_addr] <= ram_fun_amoadd_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoxor_d_MPORT_en & ram_fun_amoxor_d_MPORT_mask) begin
      ram_fun_amoxor_d[ram_fun_amoxor_d_MPORT_addr] <= ram_fun_amoxor_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoand_d_MPORT_en & ram_fun_amoand_d_MPORT_mask) begin
      ram_fun_amoand_d[ram_fun_amoand_d_MPORT_addr] <= ram_fun_amoand_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoor_d_MPORT_en & ram_fun_amoor_d_MPORT_mask) begin
      ram_fun_amoor_d[ram_fun_amoor_d_MPORT_addr] <= ram_fun_amoor_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amomin_d_MPORT_en & ram_fun_amomin_d_MPORT_mask) begin
      ram_fun_amomin_d[ram_fun_amomin_d_MPORT_addr] <= ram_fun_amomin_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amomax_d_MPORT_en & ram_fun_amomax_d_MPORT_mask) begin
      ram_fun_amomax_d[ram_fun_amomax_d_MPORT_addr] <= ram_fun_amomax_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amominu_d_MPORT_en & ram_fun_amominu_d_MPORT_mask) begin
      ram_fun_amominu_d[ram_fun_amominu_d_MPORT_addr] <= ram_fun_amominu_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amomaxu_d_MPORT_en & ram_fun_amomaxu_d_MPORT_mask) begin
      ram_fun_amomaxu_d[ram_fun_amomaxu_d_MPORT_addr] <= ram_fun_amomaxu_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_flw_MPORT_en & ram_fun_flw_MPORT_mask) begin
      ram_fun_flw[ram_fun_flw_MPORT_addr] <= ram_fun_flw_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_fsw_MPORT_en & ram_fun_fsw_MPORT_mask) begin
      ram_fun_fsw[ram_fun_fsw_MPORT_addr] <= ram_fun_fsw_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_fld_MPORT_en & ram_fun_fld_MPORT_mask) begin
      ram_fun_fld[ram_fun_fld_MPORT_addr] <= ram_fun_fld_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_fsd_MPORT_en & ram_fun_fsd_MPORT_mask) begin
      ram_fun_fsd[ram_fun_fsd_MPORT_addr] <= ram_fun_fsd_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_rd0_MPORT_en & ram_param_rd0_MPORT_mask) begin
      ram_param_rd0[ram_param_rd0_MPORT_addr] <= ram_param_rd0_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_dat_op1_MPORT_en & ram_param_dat_op1_MPORT_mask) begin
      ram_param_dat_op1[ram_param_dat_op1_MPORT_addr] <= ram_param_dat_op1_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_dat_op2_MPORT_en & ram_param_dat_op2_MPORT_mask) begin
      ram_param_dat_op2[ram_param_dat_op2_MPORT_addr] <= ram_param_dat_op2_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      if (empty) begin // @[Decoupled.scala 317:17]
        if (io_deq_ready) begin // @[Decoupled.scala 320:26]
          maybe_full <= 1'h0; // @[Decoupled.scala 320:35]
        end else begin
          maybe_full <= _do_enq_T;
        end
      end else begin
        maybe_full <= _do_enq_T;
      end
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_lb[initvar] = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_lh[initvar] = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_lw[initvar] = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_ld[initvar] = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_lbu[initvar] = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_lhu[initvar] = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_lwu[initvar] = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_sb[initvar] = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_sh[initvar] = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_sw[initvar] = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_sd[initvar] = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_fence[initvar] = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_fence_i[initvar] = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_sfence_vma[initvar] = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_lr_w[initvar] = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_sc_w[initvar] = _RAND_15[0:0];
  _RAND_16 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amoswap_w[initvar] = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amoadd_w[initvar] = _RAND_17[0:0];
  _RAND_18 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amoxor_w[initvar] = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amoand_w[initvar] = _RAND_19[0:0];
  _RAND_20 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amoor_w[initvar] = _RAND_20[0:0];
  _RAND_21 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amomin_w[initvar] = _RAND_21[0:0];
  _RAND_22 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amomax_w[initvar] = _RAND_22[0:0];
  _RAND_23 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amominu_w[initvar] = _RAND_23[0:0];
  _RAND_24 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amomaxu_w[initvar] = _RAND_24[0:0];
  _RAND_25 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_lr_d[initvar] = _RAND_25[0:0];
  _RAND_26 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_sc_d[initvar] = _RAND_26[0:0];
  _RAND_27 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amoswap_d[initvar] = _RAND_27[0:0];
  _RAND_28 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amoadd_d[initvar] = _RAND_28[0:0];
  _RAND_29 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amoxor_d[initvar] = _RAND_29[0:0];
  _RAND_30 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amoand_d[initvar] = _RAND_30[0:0];
  _RAND_31 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amoor_d[initvar] = _RAND_31[0:0];
  _RAND_32 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amomin_d[initvar] = _RAND_32[0:0];
  _RAND_33 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amomax_d[initvar] = _RAND_33[0:0];
  _RAND_34 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amominu_d[initvar] = _RAND_34[0:0];
  _RAND_35 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amomaxu_d[initvar] = _RAND_35[0:0];
  _RAND_36 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_flw[initvar] = _RAND_36[0:0];
  _RAND_37 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_fsw[initvar] = _RAND_37[0:0];
  _RAND_38 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_fld[initvar] = _RAND_38[0:0];
  _RAND_39 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_fsd[initvar] = _RAND_39[0:0];
  _RAND_40 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_param_rd0[initvar] = _RAND_40[5:0];
  _RAND_41 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_param_dat_op1[initvar] = _RAND_41[63:0];
  _RAND_42 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_param_dat_op2[initvar] = _RAND_42[63:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_43 = {1{`RANDOM}};
  maybe_full = _RAND_43[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Issue(
  input         clock,
  input         reset,
  output        io_dptReq_0_ready,
  input         io_dptReq_0_valid,
  input         io_dptReq_0_bits_alu_isa_lui,
  input         io_dptReq_0_bits_alu_isa_auipc,
  input         io_dptReq_0_bits_alu_isa_addi,
  input         io_dptReq_0_bits_alu_isa_addiw,
  input         io_dptReq_0_bits_alu_isa_slti,
  input         io_dptReq_0_bits_alu_isa_sltiu,
  input         io_dptReq_0_bits_alu_isa_xori,
  input         io_dptReq_0_bits_alu_isa_ori,
  input         io_dptReq_0_bits_alu_isa_andi,
  input         io_dptReq_0_bits_alu_isa_slli,
  input         io_dptReq_0_bits_alu_isa_slliw,
  input         io_dptReq_0_bits_alu_isa_srli,
  input         io_dptReq_0_bits_alu_isa_srliw,
  input         io_dptReq_0_bits_alu_isa_srai,
  input         io_dptReq_0_bits_alu_isa_sraiw,
  input         io_dptReq_0_bits_alu_isa_add,
  input         io_dptReq_0_bits_alu_isa_addw,
  input         io_dptReq_0_bits_alu_isa_sub,
  input         io_dptReq_0_bits_alu_isa_subw,
  input         io_dptReq_0_bits_alu_isa_sll,
  input         io_dptReq_0_bits_alu_isa_sllw,
  input         io_dptReq_0_bits_alu_isa_slt,
  input         io_dptReq_0_bits_alu_isa_sltu,
  input         io_dptReq_0_bits_alu_isa_xor,
  input         io_dptReq_0_bits_alu_isa_srl,
  input         io_dptReq_0_bits_alu_isa_srlw,
  input         io_dptReq_0_bits_alu_isa_sra,
  input         io_dptReq_0_bits_alu_isa_sraw,
  input         io_dptReq_0_bits_alu_isa_or,
  input         io_dptReq_0_bits_alu_isa_and,
  input         io_dptReq_0_bits_alu_isa_wfi,
  input         io_dptReq_0_bits_bru_isa_jal,
  input         io_dptReq_0_bits_bru_isa_jalr,
  input         io_dptReq_0_bits_bru_isa_beq,
  input         io_dptReq_0_bits_bru_isa_bne,
  input         io_dptReq_0_bits_bru_isa_blt,
  input         io_dptReq_0_bits_bru_isa_bge,
  input         io_dptReq_0_bits_bru_isa_bltu,
  input         io_dptReq_0_bits_bru_isa_bgeu,
  input         io_dptReq_0_bits_lsu_isa_lb,
  input         io_dptReq_0_bits_lsu_isa_lh,
  input         io_dptReq_0_bits_lsu_isa_lw,
  input         io_dptReq_0_bits_lsu_isa_ld,
  input         io_dptReq_0_bits_lsu_isa_lbu,
  input         io_dptReq_0_bits_lsu_isa_lhu,
  input         io_dptReq_0_bits_lsu_isa_lwu,
  input         io_dptReq_0_bits_lsu_isa_sb,
  input         io_dptReq_0_bits_lsu_isa_sh,
  input         io_dptReq_0_bits_lsu_isa_sw,
  input         io_dptReq_0_bits_lsu_isa_sd,
  input         io_dptReq_0_bits_lsu_isa_fence,
  input         io_dptReq_0_bits_lsu_isa_fence_i,
  input         io_dptReq_0_bits_lsu_isa_sfence_vma,
  input         io_dptReq_0_bits_lsu_isa_lr_w,
  input         io_dptReq_0_bits_lsu_isa_sc_w,
  input         io_dptReq_0_bits_lsu_isa_amoswap_w,
  input         io_dptReq_0_bits_lsu_isa_amoadd_w,
  input         io_dptReq_0_bits_lsu_isa_amoxor_w,
  input         io_dptReq_0_bits_lsu_isa_amoand_w,
  input         io_dptReq_0_bits_lsu_isa_amoor_w,
  input         io_dptReq_0_bits_lsu_isa_amomin_w,
  input         io_dptReq_0_bits_lsu_isa_amomax_w,
  input         io_dptReq_0_bits_lsu_isa_amominu_w,
  input         io_dptReq_0_bits_lsu_isa_amomaxu_w,
  input         io_dptReq_0_bits_lsu_isa_lr_d,
  input         io_dptReq_0_bits_lsu_isa_sc_d,
  input         io_dptReq_0_bits_lsu_isa_amoswap_d,
  input         io_dptReq_0_bits_lsu_isa_amoadd_d,
  input         io_dptReq_0_bits_lsu_isa_amoxor_d,
  input         io_dptReq_0_bits_lsu_isa_amoand_d,
  input         io_dptReq_0_bits_lsu_isa_amoor_d,
  input         io_dptReq_0_bits_lsu_isa_amomin_d,
  input         io_dptReq_0_bits_lsu_isa_amomax_d,
  input         io_dptReq_0_bits_lsu_isa_amominu_d,
  input         io_dptReq_0_bits_lsu_isa_amomaxu_d,
  input         io_dptReq_0_bits_lsu_isa_flw,
  input         io_dptReq_0_bits_lsu_isa_fsw,
  input         io_dptReq_0_bits_lsu_isa_fld,
  input         io_dptReq_0_bits_lsu_isa_fsd,
  input         io_dptReq_0_bits_csr_isa_rw,
  input         io_dptReq_0_bits_csr_isa_rs,
  input         io_dptReq_0_bits_csr_isa_rc,
  input         io_dptReq_0_bits_csr_isa_rwi,
  input         io_dptReq_0_bits_csr_isa_rsi,
  input         io_dptReq_0_bits_csr_isa_rci,
  input         io_dptReq_0_bits_mul_isa_mul,
  input         io_dptReq_0_bits_mul_isa_mulh,
  input         io_dptReq_0_bits_mul_isa_mulhsu,
  input         io_dptReq_0_bits_mul_isa_mulhu,
  input         io_dptReq_0_bits_mul_isa_div,
  input         io_dptReq_0_bits_mul_isa_divu,
  input         io_dptReq_0_bits_mul_isa_rem,
  input         io_dptReq_0_bits_mul_isa_remu,
  input         io_dptReq_0_bits_mul_isa_mulw,
  input         io_dptReq_0_bits_mul_isa_divw,
  input         io_dptReq_0_bits_mul_isa_divuw,
  input         io_dptReq_0_bits_mul_isa_remw,
  input         io_dptReq_0_bits_mul_isa_remuw,
  input         io_dptReq_0_bits_fpu_isa_fmadd_s,
  input         io_dptReq_0_bits_fpu_isa_fmsub_s,
  input         io_dptReq_0_bits_fpu_isa_fnmsub_s,
  input         io_dptReq_0_bits_fpu_isa_fnmadd_s,
  input         io_dptReq_0_bits_fpu_isa_fadd_s,
  input         io_dptReq_0_bits_fpu_isa_fsub_s,
  input         io_dptReq_0_bits_fpu_isa_fmul_s,
  input         io_dptReq_0_bits_fpu_isa_fdiv_s,
  input         io_dptReq_0_bits_fpu_isa_fsqrt_s,
  input         io_dptReq_0_bits_fpu_isa_fsgnj_s,
  input         io_dptReq_0_bits_fpu_isa_fsgnjn_s,
  input         io_dptReq_0_bits_fpu_isa_fsgnjx_s,
  input         io_dptReq_0_bits_fpu_isa_fmin_s,
  input         io_dptReq_0_bits_fpu_isa_fmax_s,
  input         io_dptReq_0_bits_fpu_isa_fcvt_w_s,
  input         io_dptReq_0_bits_fpu_isa_fcvt_wu_s,
  input         io_dptReq_0_bits_fpu_isa_fmv_x_w,
  input         io_dptReq_0_bits_fpu_isa_feq_s,
  input         io_dptReq_0_bits_fpu_isa_flt_s,
  input         io_dptReq_0_bits_fpu_isa_fle_s,
  input         io_dptReq_0_bits_fpu_isa_fclass_s,
  input         io_dptReq_0_bits_fpu_isa_fcvt_l_s,
  input         io_dptReq_0_bits_fpu_isa_fcvt_lu_s,
  input         io_dptReq_0_bits_fpu_isa_fmadd_d,
  input         io_dptReq_0_bits_fpu_isa_fmsub_d,
  input         io_dptReq_0_bits_fpu_isa_fnmsub_d,
  input         io_dptReq_0_bits_fpu_isa_fnmadd_d,
  input         io_dptReq_0_bits_fpu_isa_fadd_d,
  input         io_dptReq_0_bits_fpu_isa_fsub_d,
  input         io_dptReq_0_bits_fpu_isa_fmul_d,
  input         io_dptReq_0_bits_fpu_isa_fdiv_d,
  input         io_dptReq_0_bits_fpu_isa_fsqrt_d,
  input         io_dptReq_0_bits_fpu_isa_fsgnj_d,
  input         io_dptReq_0_bits_fpu_isa_fsgnjn_d,
  input         io_dptReq_0_bits_fpu_isa_fsgnjx_d,
  input         io_dptReq_0_bits_fpu_isa_fmin_d,
  input         io_dptReq_0_bits_fpu_isa_fmax_d,
  input         io_dptReq_0_bits_fpu_isa_fcvt_s_d,
  input         io_dptReq_0_bits_fpu_isa_fcvt_d_s,
  input         io_dptReq_0_bits_fpu_isa_feq_d,
  input         io_dptReq_0_bits_fpu_isa_flt_d,
  input         io_dptReq_0_bits_fpu_isa_fle_d,
  input         io_dptReq_0_bits_fpu_isa_fclass_d,
  input         io_dptReq_0_bits_fpu_isa_fcvt_w_d,
  input         io_dptReq_0_bits_fpu_isa_fcvt_wu_d,
  input         io_dptReq_0_bits_fpu_isa_fcvt_l_d,
  input         io_dptReq_0_bits_fpu_isa_fcvt_lu_d,
  input         io_dptReq_0_bits_fpu_isa_fmv_x_d,
  input         io_dptReq_0_bits_param_is_rvc,
  input  [38:0] io_dptReq_0_bits_param_pc,
  input  [63:0] io_dptReq_0_bits_param_imm,
  input  [4:0]  io_dptReq_0_bits_param_raw_rs1,
  input  [5:0]  io_dptReq_0_bits_phy_rs1,
  input  [5:0]  io_dptReq_0_bits_phy_rs2,
  input  [5:0]  io_dptReq_0_bits_phy_rs3,
  input  [5:0]  io_dptReq_0_bits_phy_rd0,
  input         io_alu_iss_exe_0_ready,
  output        io_alu_iss_exe_0_valid,
  output        io_alu_iss_exe_0_bits_fun_add,
  output        io_alu_iss_exe_0_bits_fun_slt,
  output        io_alu_iss_exe_0_bits_fun_xor,
  output        io_alu_iss_exe_0_bits_fun_or,
  output        io_alu_iss_exe_0_bits_fun_and,
  output        io_alu_iss_exe_0_bits_fun_sll,
  output        io_alu_iss_exe_0_bits_fun_srl,
  output        io_alu_iss_exe_0_bits_fun_sra,
  output [5:0]  io_alu_iss_exe_0_bits_param_rd0,
  output        io_alu_iss_exe_0_bits_param_is_32w,
  output        io_alu_iss_exe_0_bits_param_is_usi,
  output [63:0] io_alu_iss_exe_0_bits_param_dat_op1,
  output [63:0] io_alu_iss_exe_0_bits_param_dat_op2,
  input         io_mul_iss_exe_0_ready,
  output        io_mul_iss_exe_0_valid,
  output        io_mul_iss_exe_0_bits_fun_mul,
  output        io_mul_iss_exe_0_bits_fun_mulh,
  output        io_mul_iss_exe_0_bits_fun_mulhsu,
  output        io_mul_iss_exe_0_bits_fun_mulhu,
  output        io_mul_iss_exe_0_bits_fun_div,
  output        io_mul_iss_exe_0_bits_fun_divu,
  output        io_mul_iss_exe_0_bits_fun_rem,
  output        io_mul_iss_exe_0_bits_fun_remu,
  output        io_mul_iss_exe_0_bits_fun_mulw,
  output        io_mul_iss_exe_0_bits_fun_divw,
  output        io_mul_iss_exe_0_bits_fun_divuw,
  output        io_mul_iss_exe_0_bits_fun_remw,
  output        io_mul_iss_exe_0_bits_fun_remuw,
  output [5:0]  io_mul_iss_exe_0_bits_param_rd0,
  output [63:0] io_mul_iss_exe_0_bits_param_dat_op1,
  output [63:0] io_mul_iss_exe_0_bits_param_dat_op2,
  input         io_bru_iss_exe_ready,
  output        io_bru_iss_exe_valid,
  output        io_bru_iss_exe_bits_fun_jalr,
  output        io_bru_iss_exe_bits_fun_beq,
  output        io_bru_iss_exe_bits_fun_bne,
  output        io_bru_iss_exe_bits_fun_blt,
  output        io_bru_iss_exe_bits_fun_bge,
  output        io_bru_iss_exe_bits_fun_bltu,
  output        io_bru_iss_exe_bits_fun_bgeu,
  output [5:0]  io_bru_iss_exe_bits_param_rd0,
  output        io_bru_iss_exe_bits_param_is_rvc,
  output [63:0] io_bru_iss_exe_bits_param_pc,
  output [63:0] io_bru_iss_exe_bits_param_imm,
  output [63:0] io_bru_iss_exe_bits_param_dat_op1,
  output [63:0] io_bru_iss_exe_bits_param_dat_op2,
  input         io_csr_iss_exe_ready,
  output        io_csr_iss_exe_valid,
  output        io_csr_iss_exe_bits_fun_rw,
  output        io_csr_iss_exe_bits_fun_rs,
  output        io_csr_iss_exe_bits_fun_rc,
  output [5:0]  io_csr_iss_exe_bits_param_rd0,
  output [63:0] io_csr_iss_exe_bits_param_dat_op1,
  output [63:0] io_csr_iss_exe_bits_param_dat_op2,
  input         io_lsu_iss_exe_ready,
  output        io_lsu_iss_exe_valid,
  output        io_lsu_iss_exe_bits_fun_lb,
  output        io_lsu_iss_exe_bits_fun_lh,
  output        io_lsu_iss_exe_bits_fun_lw,
  output        io_lsu_iss_exe_bits_fun_ld,
  output        io_lsu_iss_exe_bits_fun_lbu,
  output        io_lsu_iss_exe_bits_fun_lhu,
  output        io_lsu_iss_exe_bits_fun_lwu,
  output        io_lsu_iss_exe_bits_fun_sb,
  output        io_lsu_iss_exe_bits_fun_sh,
  output        io_lsu_iss_exe_bits_fun_sw,
  output        io_lsu_iss_exe_bits_fun_sd,
  output        io_lsu_iss_exe_bits_fun_fence,
  output        io_lsu_iss_exe_bits_fun_fence_i,
  output        io_lsu_iss_exe_bits_fun_sfence_vma,
  output        io_lsu_iss_exe_bits_fun_lr_w,
  output        io_lsu_iss_exe_bits_fun_sc_w,
  output        io_lsu_iss_exe_bits_fun_amoswap_w,
  output        io_lsu_iss_exe_bits_fun_amoadd_w,
  output        io_lsu_iss_exe_bits_fun_amoxor_w,
  output        io_lsu_iss_exe_bits_fun_amoand_w,
  output        io_lsu_iss_exe_bits_fun_amoor_w,
  output        io_lsu_iss_exe_bits_fun_amomin_w,
  output        io_lsu_iss_exe_bits_fun_amomax_w,
  output        io_lsu_iss_exe_bits_fun_amominu_w,
  output        io_lsu_iss_exe_bits_fun_amomaxu_w,
  output        io_lsu_iss_exe_bits_fun_lr_d,
  output        io_lsu_iss_exe_bits_fun_sc_d,
  output        io_lsu_iss_exe_bits_fun_amoswap_d,
  output        io_lsu_iss_exe_bits_fun_amoadd_d,
  output        io_lsu_iss_exe_bits_fun_amoxor_d,
  output        io_lsu_iss_exe_bits_fun_amoand_d,
  output        io_lsu_iss_exe_bits_fun_amoor_d,
  output        io_lsu_iss_exe_bits_fun_amomin_d,
  output        io_lsu_iss_exe_bits_fun_amomax_d,
  output        io_lsu_iss_exe_bits_fun_amominu_d,
  output        io_lsu_iss_exe_bits_fun_amomaxu_d,
  output        io_lsu_iss_exe_bits_fun_flw,
  output        io_lsu_iss_exe_bits_fun_fsw,
  output        io_lsu_iss_exe_bits_fun_fld,
  output        io_lsu_iss_exe_bits_fun_fsd,
  output [5:0]  io_lsu_iss_exe_bits_param_rd0,
  output [63:0] io_lsu_iss_exe_bits_param_dat_op1,
  output [63:0] io_lsu_iss_exe_bits_param_dat_op2,
  input  [1:0]  io_irgLog_0,
  input  [1:0]  io_irgLog_1,
  input  [1:0]  io_irgLog_2,
  input  [1:0]  io_irgLog_3,
  input  [1:0]  io_irgLog_4,
  input  [1:0]  io_irgLog_5,
  input  [1:0]  io_irgLog_6,
  input  [1:0]  io_irgLog_7,
  input  [1:0]  io_irgLog_8,
  input  [1:0]  io_irgLog_9,
  input  [1:0]  io_irgLog_10,
  input  [1:0]  io_irgLog_11,
  input  [1:0]  io_irgLog_12,
  input  [1:0]  io_irgLog_13,
  input  [1:0]  io_irgLog_14,
  input  [1:0]  io_irgLog_15,
  input  [1:0]  io_irgLog_16,
  input  [1:0]  io_irgLog_17,
  input  [1:0]  io_irgLog_18,
  input  [1:0]  io_irgLog_19,
  input  [1:0]  io_irgLog_20,
  input  [1:0]  io_irgLog_21,
  input  [1:0]  io_irgLog_22,
  input  [1:0]  io_irgLog_23,
  input  [1:0]  io_irgLog_24,
  input  [1:0]  io_irgLog_25,
  input  [1:0]  io_irgLog_26,
  input  [1:0]  io_irgLog_27,
  input  [1:0]  io_irgLog_28,
  input  [1:0]  io_irgLog_29,
  input  [1:0]  io_irgLog_30,
  input  [1:0]  io_irgLog_31,
  input  [1:0]  io_irgLog_32,
  output        io_irgReq_0_valid,
  output [5:0]  io_irgReq_0_bits,
  output        io_irgReq_1_valid,
  output [5:0]  io_irgReq_1_bits,
  input         io_irgRsp_0_valid,
  input  [5:0]  io_irgRsp_0_bits_phy,
  input  [63:0] io_irgRsp_0_bits_op,
  input         io_irgRsp_1_valid,
  input  [5:0]  io_irgRsp_1_bits_phy,
  input  [63:0] io_irgRsp_1_bits_op,
  input         io_flush
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
  reg [31:0] _RAND_33;
  reg [31:0] _RAND_34;
  reg [31:0] _RAND_35;
  reg [31:0] _RAND_36;
  reg [31:0] _RAND_37;
  reg [31:0] _RAND_38;
  reg [31:0] _RAND_39;
  reg [31:0] _RAND_40;
  reg [31:0] _RAND_41;
  reg [31:0] _RAND_42;
  reg [31:0] _RAND_43;
  reg [31:0] _RAND_44;
  reg [31:0] _RAND_45;
  reg [31:0] _RAND_46;
  reg [31:0] _RAND_47;
  reg [31:0] _RAND_48;
  reg [31:0] _RAND_49;
  reg [31:0] _RAND_50;
  reg [31:0] _RAND_51;
  reg [31:0] _RAND_52;
  reg [31:0] _RAND_53;
  reg [31:0] _RAND_54;
  reg [31:0] _RAND_55;
  reg [31:0] _RAND_56;
  reg [31:0] _RAND_57;
  reg [31:0] _RAND_58;
  reg [31:0] _RAND_59;
  reg [31:0] _RAND_60;
  reg [31:0] _RAND_61;
  reg [31:0] _RAND_62;
  reg [31:0] _RAND_63;
  reg [31:0] _RAND_64;
  reg [31:0] _RAND_65;
  reg [31:0] _RAND_66;
  reg [31:0] _RAND_67;
  reg [31:0] _RAND_68;
  reg [31:0] _RAND_69;
  reg [31:0] _RAND_70;
  reg [31:0] _RAND_71;
  reg [31:0] _RAND_72;
  reg [31:0] _RAND_73;
  reg [31:0] _RAND_74;
  reg [31:0] _RAND_75;
  reg [31:0] _RAND_76;
  reg [31:0] _RAND_77;
  reg [31:0] _RAND_78;
  reg [31:0] _RAND_79;
  reg [31:0] _RAND_80;
  reg [31:0] _RAND_81;
  reg [31:0] _RAND_82;
  reg [31:0] _RAND_83;
  reg [31:0] _RAND_84;
  reg [31:0] _RAND_85;
  reg [31:0] _RAND_86;
  reg [31:0] _RAND_87;
  reg [31:0] _RAND_88;
  reg [31:0] _RAND_89;
  reg [31:0] _RAND_90;
  reg [31:0] _RAND_91;
  reg [31:0] _RAND_92;
  reg [31:0] _RAND_93;
  reg [31:0] _RAND_94;
  reg [31:0] _RAND_95;
  reg [31:0] _RAND_96;
  reg [31:0] _RAND_97;
  reg [31:0] _RAND_98;
  reg [31:0] _RAND_99;
  reg [31:0] _RAND_100;
  reg [31:0] _RAND_101;
  reg [31:0] _RAND_102;
  reg [63:0] _RAND_103;
  reg [63:0] _RAND_104;
  reg [31:0] _RAND_105;
  reg [31:0] _RAND_106;
  reg [31:0] _RAND_107;
  reg [31:0] _RAND_108;
  reg [31:0] _RAND_109;
  reg [31:0] _RAND_110;
  reg [31:0] _RAND_111;
  reg [31:0] _RAND_112;
  reg [31:0] _RAND_113;
  reg [31:0] _RAND_114;
  reg [31:0] _RAND_115;
  reg [31:0] _RAND_116;
  reg [31:0] _RAND_117;
  reg [31:0] _RAND_118;
  reg [31:0] _RAND_119;
  reg [31:0] _RAND_120;
  reg [31:0] _RAND_121;
  reg [31:0] _RAND_122;
  reg [31:0] _RAND_123;
  reg [31:0] _RAND_124;
  reg [31:0] _RAND_125;
  reg [31:0] _RAND_126;
  reg [31:0] _RAND_127;
  reg [31:0] _RAND_128;
  reg [31:0] _RAND_129;
  reg [31:0] _RAND_130;
  reg [31:0] _RAND_131;
  reg [31:0] _RAND_132;
  reg [31:0] _RAND_133;
  reg [31:0] _RAND_134;
  reg [31:0] _RAND_135;
  reg [31:0] _RAND_136;
  reg [31:0] _RAND_137;
  reg [31:0] _RAND_138;
  reg [31:0] _RAND_139;
  reg [31:0] _RAND_140;
  reg [31:0] _RAND_141;
  reg [31:0] _RAND_142;
  reg [31:0] _RAND_143;
  reg [31:0] _RAND_144;
  reg [31:0] _RAND_145;
  reg [31:0] _RAND_146;
  reg [31:0] _RAND_147;
  reg [31:0] _RAND_148;
  reg [31:0] _RAND_149;
  reg [31:0] _RAND_150;
  reg [31:0] _RAND_151;
  reg [31:0] _RAND_152;
  reg [31:0] _RAND_153;
  reg [31:0] _RAND_154;
  reg [31:0] _RAND_155;
  reg [31:0] _RAND_156;
  reg [31:0] _RAND_157;
  reg [31:0] _RAND_158;
  reg [31:0] _RAND_159;
  reg [31:0] _RAND_160;
  reg [31:0] _RAND_161;
  reg [31:0] _RAND_162;
  reg [31:0] _RAND_163;
  reg [31:0] _RAND_164;
  reg [31:0] _RAND_165;
  reg [31:0] _RAND_166;
  reg [31:0] _RAND_167;
  reg [31:0] _RAND_168;
  reg [31:0] _RAND_169;
  reg [31:0] _RAND_170;
  reg [31:0] _RAND_171;
  reg [31:0] _RAND_172;
  reg [31:0] _RAND_173;
  reg [31:0] _RAND_174;
  reg [31:0] _RAND_175;
  reg [31:0] _RAND_176;
  reg [31:0] _RAND_177;
  reg [31:0] _RAND_178;
  reg [31:0] _RAND_179;
  reg [31:0] _RAND_180;
  reg [31:0] _RAND_181;
  reg [31:0] _RAND_182;
  reg [31:0] _RAND_183;
  reg [31:0] _RAND_184;
  reg [31:0] _RAND_185;
  reg [31:0] _RAND_186;
  reg [31:0] _RAND_187;
  reg [31:0] _RAND_188;
  reg [31:0] _RAND_189;
  reg [31:0] _RAND_190;
  reg [31:0] _RAND_191;
  reg [31:0] _RAND_192;
  reg [31:0] _RAND_193;
  reg [31:0] _RAND_194;
  reg [31:0] _RAND_195;
  reg [31:0] _RAND_196;
  reg [31:0] _RAND_197;
  reg [31:0] _RAND_198;
  reg [31:0] _RAND_199;
  reg [31:0] _RAND_200;
  reg [31:0] _RAND_201;
  reg [31:0] _RAND_202;
  reg [31:0] _RAND_203;
  reg [31:0] _RAND_204;
  reg [31:0] _RAND_205;
  reg [31:0] _RAND_206;
  reg [31:0] _RAND_207;
  reg [31:0] _RAND_208;
  reg [63:0] _RAND_209;
  reg [63:0] _RAND_210;
  reg [31:0] _RAND_211;
  reg [31:0] _RAND_212;
  reg [31:0] _RAND_213;
  reg [31:0] _RAND_214;
  reg [31:0] _RAND_215;
  reg [31:0] _RAND_216;
  reg [31:0] _RAND_217;
  reg [31:0] _RAND_218;
  reg [31:0] _RAND_219;
  reg [31:0] _RAND_220;
  reg [31:0] _RAND_221;
  reg [31:0] _RAND_222;
  reg [31:0] _RAND_223;
  reg [31:0] _RAND_224;
  reg [31:0] _RAND_225;
  reg [31:0] _RAND_226;
  reg [31:0] _RAND_227;
  reg [31:0] _RAND_228;
  reg [31:0] _RAND_229;
  reg [31:0] _RAND_230;
  reg [31:0] _RAND_231;
  reg [31:0] _RAND_232;
  reg [31:0] _RAND_233;
  reg [31:0] _RAND_234;
  reg [31:0] _RAND_235;
  reg [31:0] _RAND_236;
  reg [31:0] _RAND_237;
  reg [31:0] _RAND_238;
  reg [31:0] _RAND_239;
  reg [31:0] _RAND_240;
  reg [31:0] _RAND_241;
  reg [31:0] _RAND_242;
  reg [31:0] _RAND_243;
  reg [31:0] _RAND_244;
  reg [31:0] _RAND_245;
  reg [31:0] _RAND_246;
  reg [31:0] _RAND_247;
  reg [31:0] _RAND_248;
  reg [31:0] _RAND_249;
  reg [31:0] _RAND_250;
  reg [31:0] _RAND_251;
  reg [31:0] _RAND_252;
  reg [31:0] _RAND_253;
  reg [31:0] _RAND_254;
  reg [31:0] _RAND_255;
  reg [31:0] _RAND_256;
  reg [31:0] _RAND_257;
  reg [31:0] _RAND_258;
  reg [31:0] _RAND_259;
  reg [31:0] _RAND_260;
  reg [31:0] _RAND_261;
  reg [31:0] _RAND_262;
  reg [31:0] _RAND_263;
  reg [31:0] _RAND_264;
  reg [31:0] _RAND_265;
  reg [31:0] _RAND_266;
  reg [31:0] _RAND_267;
  reg [31:0] _RAND_268;
  reg [31:0] _RAND_269;
  reg [31:0] _RAND_270;
  reg [31:0] _RAND_271;
  reg [31:0] _RAND_272;
  reg [31:0] _RAND_273;
  reg [31:0] _RAND_274;
  reg [31:0] _RAND_275;
  reg [31:0] _RAND_276;
  reg [31:0] _RAND_277;
  reg [31:0] _RAND_278;
  reg [31:0] _RAND_279;
  reg [31:0] _RAND_280;
  reg [31:0] _RAND_281;
  reg [31:0] _RAND_282;
  reg [31:0] _RAND_283;
  reg [31:0] _RAND_284;
  reg [31:0] _RAND_285;
  reg [31:0] _RAND_286;
  reg [31:0] _RAND_287;
  reg [31:0] _RAND_288;
  reg [31:0] _RAND_289;
  reg [31:0] _RAND_290;
  reg [31:0] _RAND_291;
  reg [31:0] _RAND_292;
  reg [31:0] _RAND_293;
  reg [31:0] _RAND_294;
  reg [31:0] _RAND_295;
  reg [31:0] _RAND_296;
  reg [31:0] _RAND_297;
  reg [31:0] _RAND_298;
  reg [31:0] _RAND_299;
  reg [31:0] _RAND_300;
  reg [31:0] _RAND_301;
  reg [31:0] _RAND_302;
  reg [31:0] _RAND_303;
  reg [31:0] _RAND_304;
  reg [31:0] _RAND_305;
  reg [31:0] _RAND_306;
  reg [31:0] _RAND_307;
  reg [31:0] _RAND_308;
  reg [31:0] _RAND_309;
  reg [31:0] _RAND_310;
  reg [31:0] _RAND_311;
  reg [31:0] _RAND_312;
  reg [31:0] _RAND_313;
  reg [31:0] _RAND_314;
  reg [63:0] _RAND_315;
  reg [63:0] _RAND_316;
  reg [31:0] _RAND_317;
  reg [31:0] _RAND_318;
  reg [31:0] _RAND_319;
  reg [31:0] _RAND_320;
  reg [31:0] _RAND_321;
  reg [31:0] _RAND_322;
  reg [31:0] _RAND_323;
  reg [31:0] _RAND_324;
  reg [31:0] _RAND_325;
  reg [31:0] _RAND_326;
  reg [31:0] _RAND_327;
  reg [31:0] _RAND_328;
  reg [31:0] _RAND_329;
  reg [31:0] _RAND_330;
  reg [31:0] _RAND_331;
  reg [31:0] _RAND_332;
  reg [31:0] _RAND_333;
  reg [31:0] _RAND_334;
  reg [31:0] _RAND_335;
  reg [31:0] _RAND_336;
  reg [31:0] _RAND_337;
  reg [31:0] _RAND_338;
  reg [31:0] _RAND_339;
  reg [31:0] _RAND_340;
  reg [31:0] _RAND_341;
  reg [31:0] _RAND_342;
  reg [31:0] _RAND_343;
  reg [31:0] _RAND_344;
  reg [31:0] _RAND_345;
  reg [31:0] _RAND_346;
  reg [31:0] _RAND_347;
  reg [31:0] _RAND_348;
  reg [31:0] _RAND_349;
  reg [31:0] _RAND_350;
  reg [31:0] _RAND_351;
  reg [31:0] _RAND_352;
  reg [31:0] _RAND_353;
  reg [31:0] _RAND_354;
  reg [31:0] _RAND_355;
  reg [31:0] _RAND_356;
  reg [31:0] _RAND_357;
  reg [31:0] _RAND_358;
  reg [31:0] _RAND_359;
  reg [31:0] _RAND_360;
  reg [31:0] _RAND_361;
  reg [31:0] _RAND_362;
  reg [31:0] _RAND_363;
  reg [31:0] _RAND_364;
  reg [31:0] _RAND_365;
  reg [31:0] _RAND_366;
  reg [31:0] _RAND_367;
  reg [31:0] _RAND_368;
  reg [31:0] _RAND_369;
  reg [31:0] _RAND_370;
  reg [31:0] _RAND_371;
  reg [31:0] _RAND_372;
  reg [31:0] _RAND_373;
  reg [31:0] _RAND_374;
  reg [31:0] _RAND_375;
  reg [31:0] _RAND_376;
  reg [31:0] _RAND_377;
  reg [31:0] _RAND_378;
  reg [31:0] _RAND_379;
  reg [31:0] _RAND_380;
  reg [31:0] _RAND_381;
  reg [31:0] _RAND_382;
  reg [31:0] _RAND_383;
  reg [31:0] _RAND_384;
  reg [31:0] _RAND_385;
  reg [31:0] _RAND_386;
  reg [31:0] _RAND_387;
  reg [31:0] _RAND_388;
  reg [31:0] _RAND_389;
  reg [31:0] _RAND_390;
  reg [31:0] _RAND_391;
  reg [31:0] _RAND_392;
  reg [31:0] _RAND_393;
  reg [31:0] _RAND_394;
  reg [31:0] _RAND_395;
  reg [31:0] _RAND_396;
  reg [31:0] _RAND_397;
  reg [31:0] _RAND_398;
  reg [31:0] _RAND_399;
  reg [31:0] _RAND_400;
  reg [31:0] _RAND_401;
  reg [31:0] _RAND_402;
  reg [31:0] _RAND_403;
  reg [31:0] _RAND_404;
  reg [31:0] _RAND_405;
  reg [31:0] _RAND_406;
  reg [31:0] _RAND_407;
  reg [31:0] _RAND_408;
  reg [31:0] _RAND_409;
  reg [31:0] _RAND_410;
  reg [31:0] _RAND_411;
  reg [31:0] _RAND_412;
  reg [31:0] _RAND_413;
  reg [31:0] _RAND_414;
  reg [31:0] _RAND_415;
  reg [31:0] _RAND_416;
  reg [31:0] _RAND_417;
  reg [31:0] _RAND_418;
  reg [31:0] _RAND_419;
  reg [31:0] _RAND_420;
  reg [63:0] _RAND_421;
  reg [63:0] _RAND_422;
  reg [31:0] _RAND_423;
  reg [31:0] _RAND_424;
  reg [31:0] _RAND_425;
  reg [31:0] _RAND_426;
  reg [31:0] _RAND_427;
  reg [31:0] _RAND_428;
  reg [31:0] _RAND_429;
  reg [31:0] _RAND_430;
  reg [31:0] _RAND_431;
  reg [31:0] _RAND_432;
  reg [31:0] _RAND_433;
  reg [31:0] _RAND_434;
  reg [31:0] _RAND_435;
  reg [95:0] _RAND_436;
  reg [95:0] _RAND_437;
  reg [95:0] _RAND_438;
  reg [95:0] _RAND_439;
  reg [95:0] _RAND_440;
  reg [95:0] _RAND_441;
  reg [95:0] _RAND_442;
  reg [95:0] _RAND_443;
  reg [31:0] _RAND_444;
  reg [31:0] _RAND_445;
  reg [31:0] _RAND_446;
  reg [31:0] _RAND_447;
  reg [31:0] _RAND_448;
  reg [31:0] _RAND_449;
  reg [31:0] _RAND_450;
  reg [31:0] _RAND_451;
  reg [31:0] _RAND_452;
  reg [31:0] _RAND_453;
`endif // RANDOMIZE_REG_INIT
  wire  aluIssFifo_0_clock; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_reset; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_enq_ready; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_enq_valid; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_enq_bits_fun_add; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_enq_bits_fun_slt; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_enq_bits_fun_xor; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_enq_bits_fun_or; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_enq_bits_fun_and; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_enq_bits_fun_sll; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_enq_bits_fun_srl; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_enq_bits_fun_sra; // @[Issue.scala 605:11]
  wire [5:0] aluIssFifo_0_io_enq_bits_param_rd0; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_enq_bits_param_is_32w; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_enq_bits_param_is_usi; // @[Issue.scala 605:11]
  wire [63:0] aluIssFifo_0_io_enq_bits_param_dat_op1; // @[Issue.scala 605:11]
  wire [63:0] aluIssFifo_0_io_enq_bits_param_dat_op2; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_deq_ready; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_deq_valid; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_deq_bits_fun_add; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_deq_bits_fun_slt; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_deq_bits_fun_xor; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_deq_bits_fun_or; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_deq_bits_fun_and; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_deq_bits_fun_sll; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_deq_bits_fun_srl; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_deq_bits_fun_sra; // @[Issue.scala 605:11]
  wire [5:0] aluIssFifo_0_io_deq_bits_param_rd0; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_deq_bits_param_is_32w; // @[Issue.scala 605:11]
  wire  aluIssFifo_0_io_deq_bits_param_is_usi; // @[Issue.scala 605:11]
  wire [63:0] aluIssFifo_0_io_deq_bits_param_dat_op1; // @[Issue.scala 605:11]
  wire [63:0] aluIssFifo_0_io_deq_bits_param_dat_op2; // @[Issue.scala 605:11]
  wire  mulIssFifo_0_clock; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_reset; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_enq_ready; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_enq_valid; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_enq_bits_fun_mul; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_enq_bits_fun_mulh; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_enq_bits_fun_mulhsu; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_enq_bits_fun_mulhu; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_enq_bits_fun_div; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_enq_bits_fun_divu; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_enq_bits_fun_rem; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_enq_bits_fun_remu; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_enq_bits_fun_mulw; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_enq_bits_fun_divw; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_enq_bits_fun_divuw; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_enq_bits_fun_remw; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_enq_bits_fun_remuw; // @[Issue.scala 671:13]
  wire [5:0] mulIssFifo_0_io_enq_bits_param_rd0; // @[Issue.scala 671:13]
  wire [63:0] mulIssFifo_0_io_enq_bits_param_dat_op1; // @[Issue.scala 671:13]
  wire [63:0] mulIssFifo_0_io_enq_bits_param_dat_op2; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_deq_ready; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_deq_valid; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_deq_bits_fun_mul; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_deq_bits_fun_mulh; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_deq_bits_fun_mulhsu; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_deq_bits_fun_mulhu; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_deq_bits_fun_div; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_deq_bits_fun_divu; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_deq_bits_fun_rem; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_deq_bits_fun_remu; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_deq_bits_fun_mulw; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_deq_bits_fun_divw; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_deq_bits_fun_divuw; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_deq_bits_fun_remw; // @[Issue.scala 671:13]
  wire  mulIssFifo_0_io_deq_bits_fun_remuw; // @[Issue.scala 671:13]
  wire [5:0] mulIssFifo_0_io_deq_bits_param_rd0; // @[Issue.scala 671:13]
  wire [63:0] mulIssFifo_0_io_deq_bits_param_dat_op1; // @[Issue.scala 671:13]
  wire [63:0] mulIssFifo_0_io_deq_bits_param_dat_op2; // @[Issue.scala 671:13]
  wire  bruIssFifo_clock; // @[Issue.scala 743:26]
  wire  bruIssFifo_reset; // @[Issue.scala 743:26]
  wire  bruIssFifo_io_enq_ready; // @[Issue.scala 743:26]
  wire  bruIssFifo_io_enq_valid; // @[Issue.scala 743:26]
  wire  bruIssFifo_io_enq_bits_fun_jalr; // @[Issue.scala 743:26]
  wire  bruIssFifo_io_enq_bits_fun_beq; // @[Issue.scala 743:26]
  wire  bruIssFifo_io_enq_bits_fun_bne; // @[Issue.scala 743:26]
  wire  bruIssFifo_io_enq_bits_fun_blt; // @[Issue.scala 743:26]
  wire  bruIssFifo_io_enq_bits_fun_bge; // @[Issue.scala 743:26]
  wire  bruIssFifo_io_enq_bits_fun_bltu; // @[Issue.scala 743:26]
  wire  bruIssFifo_io_enq_bits_fun_bgeu; // @[Issue.scala 743:26]
  wire [5:0] bruIssFifo_io_enq_bits_param_rd0; // @[Issue.scala 743:26]
  wire  bruIssFifo_io_enq_bits_param_is_rvc; // @[Issue.scala 743:26]
  wire [63:0] bruIssFifo_io_enq_bits_param_pc; // @[Issue.scala 743:26]
  wire [63:0] bruIssFifo_io_enq_bits_param_imm; // @[Issue.scala 743:26]
  wire [63:0] bruIssFifo_io_enq_bits_param_dat_op1; // @[Issue.scala 743:26]
  wire [63:0] bruIssFifo_io_enq_bits_param_dat_op2; // @[Issue.scala 743:26]
  wire  bruIssFifo_io_deq_ready; // @[Issue.scala 743:26]
  wire  bruIssFifo_io_deq_valid; // @[Issue.scala 743:26]
  wire  bruIssFifo_io_deq_bits_fun_jalr; // @[Issue.scala 743:26]
  wire  bruIssFifo_io_deq_bits_fun_beq; // @[Issue.scala 743:26]
  wire  bruIssFifo_io_deq_bits_fun_bne; // @[Issue.scala 743:26]
  wire  bruIssFifo_io_deq_bits_fun_blt; // @[Issue.scala 743:26]
  wire  bruIssFifo_io_deq_bits_fun_bge; // @[Issue.scala 743:26]
  wire  bruIssFifo_io_deq_bits_fun_bltu; // @[Issue.scala 743:26]
  wire  bruIssFifo_io_deq_bits_fun_bgeu; // @[Issue.scala 743:26]
  wire [5:0] bruIssFifo_io_deq_bits_param_rd0; // @[Issue.scala 743:26]
  wire  bruIssFifo_io_deq_bits_param_is_rvc; // @[Issue.scala 743:26]
  wire [63:0] bruIssFifo_io_deq_bits_param_pc; // @[Issue.scala 743:26]
  wire [63:0] bruIssFifo_io_deq_bits_param_imm; // @[Issue.scala 743:26]
  wire [63:0] bruIssFifo_io_deq_bits_param_dat_op1; // @[Issue.scala 743:26]
  wire [63:0] bruIssFifo_io_deq_bits_param_dat_op2; // @[Issue.scala 743:26]
  wire  csrIssFifo_clock; // @[Issue.scala 809:26]
  wire  csrIssFifo_reset; // @[Issue.scala 809:26]
  wire  csrIssFifo_io_enq_ready; // @[Issue.scala 809:26]
  wire  csrIssFifo_io_enq_valid; // @[Issue.scala 809:26]
  wire  csrIssFifo_io_enq_bits_fun_rw; // @[Issue.scala 809:26]
  wire  csrIssFifo_io_enq_bits_fun_rs; // @[Issue.scala 809:26]
  wire  csrIssFifo_io_enq_bits_fun_rc; // @[Issue.scala 809:26]
  wire [5:0] csrIssFifo_io_enq_bits_param_rd0; // @[Issue.scala 809:26]
  wire [63:0] csrIssFifo_io_enq_bits_param_dat_op1; // @[Issue.scala 809:26]
  wire [63:0] csrIssFifo_io_enq_bits_param_dat_op2; // @[Issue.scala 809:26]
  wire  csrIssFifo_io_deq_ready; // @[Issue.scala 809:26]
  wire  csrIssFifo_io_deq_valid; // @[Issue.scala 809:26]
  wire  csrIssFifo_io_deq_bits_fun_rw; // @[Issue.scala 809:26]
  wire  csrIssFifo_io_deq_bits_fun_rs; // @[Issue.scala 809:26]
  wire  csrIssFifo_io_deq_bits_fun_rc; // @[Issue.scala 809:26]
  wire [5:0] csrIssFifo_io_deq_bits_param_rd0; // @[Issue.scala 809:26]
  wire [63:0] csrIssFifo_io_deq_bits_param_dat_op1; // @[Issue.scala 809:26]
  wire [63:0] csrIssFifo_io_deq_bits_param_dat_op2; // @[Issue.scala 809:26]
  wire  lsuIssFifo_clock; // @[Issue.scala 872:26]
  wire  lsuIssFifo_reset; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_ready; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_valid; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_lb; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_lh; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_lw; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_ld; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_lbu; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_lhu; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_lwu; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_sb; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_sh; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_sw; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_sd; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_fence; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_fence_i; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_sfence_vma; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_lr_w; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_sc_w; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_amoswap_w; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_amoadd_w; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_amoxor_w; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_amoand_w; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_amoor_w; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_amomin_w; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_amomax_w; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_amominu_w; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_amomaxu_w; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_lr_d; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_sc_d; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_amoswap_d; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_amoadd_d; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_amoxor_d; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_amoand_d; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_amoor_d; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_amomin_d; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_amomax_d; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_amominu_d; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_amomaxu_d; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_flw; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_fsw; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_fld; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_enq_bits_fun_fsd; // @[Issue.scala 872:26]
  wire [5:0] lsuIssFifo_io_enq_bits_param_rd0; // @[Issue.scala 872:26]
  wire [63:0] lsuIssFifo_io_enq_bits_param_dat_op1; // @[Issue.scala 872:26]
  wire [63:0] lsuIssFifo_io_enq_bits_param_dat_op2; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_ready; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_valid; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_lb; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_lh; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_lw; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_ld; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_lbu; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_lhu; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_lwu; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_sb; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_sh; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_sw; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_sd; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_fence; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_fence_i; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_sfence_vma; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_lr_w; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_sc_w; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_amoswap_w; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_amoadd_w; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_amoxor_w; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_amoand_w; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_amoor_w; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_amomin_w; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_amomax_w; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_amominu_w; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_amomaxu_w; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_lr_d; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_sc_d; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_amoswap_d; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_amoadd_d; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_amoxor_d; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_amoand_d; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_amoor_d; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_amomin_d; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_amomax_d; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_amominu_d; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_amomaxu_d; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_flw; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_fsw; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_fld; // @[Issue.scala 872:26]
  wire  lsuIssFifo_io_deq_bits_fun_fsd; // @[Issue.scala 872:26]
  wire [5:0] lsuIssFifo_io_deq_bits_param_rd0; // @[Issue.scala 872:26]
  wire [63:0] lsuIssFifo_io_deq_bits_param_dat_op1; // @[Issue.scala 872:26]
  wire [63:0] lsuIssFifo_io_deq_bits_param_dat_op2; // @[Issue.scala 872:26]
  reg  bufValid_0; // @[Issue.scala 61:29]
  reg  bufValid_1; // @[Issue.scala 61:29]
  reg  bufValid_2; // @[Issue.scala 61:29]
  reg  bufValid_3; // @[Issue.scala 61:29]
  reg  bufInfo_0_alu_isa_lui; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_auipc; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_addi; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_addiw; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_slti; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_sltiu; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_xori; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_ori; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_andi; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_slli; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_slliw; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_srli; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_srliw; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_srai; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_sraiw; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_add; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_addw; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_sub; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_subw; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_sll; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_sllw; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_slt; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_sltu; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_xor; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_srl; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_srlw; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_sra; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_sraw; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_or; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_and; // @[Issue.scala 62:25]
  reg  bufInfo_0_alu_isa_wfi; // @[Issue.scala 62:25]
  reg  bufInfo_0_bru_isa_jal; // @[Issue.scala 62:25]
  reg  bufInfo_0_bru_isa_jalr; // @[Issue.scala 62:25]
  reg  bufInfo_0_bru_isa_beq; // @[Issue.scala 62:25]
  reg  bufInfo_0_bru_isa_bne; // @[Issue.scala 62:25]
  reg  bufInfo_0_bru_isa_blt; // @[Issue.scala 62:25]
  reg  bufInfo_0_bru_isa_bge; // @[Issue.scala 62:25]
  reg  bufInfo_0_bru_isa_bltu; // @[Issue.scala 62:25]
  reg  bufInfo_0_bru_isa_bgeu; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_lb; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_lh; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_lw; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_ld; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_lbu; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_lhu; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_lwu; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_sb; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_sh; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_sw; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_sd; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_fence; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_fence_i; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_sfence_vma; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_lr_w; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_sc_w; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_amoswap_w; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_amoadd_w; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_amoxor_w; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_amoand_w; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_amoor_w; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_amomin_w; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_amomax_w; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_amominu_w; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_amomaxu_w; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_lr_d; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_sc_d; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_amoswap_d; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_amoadd_d; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_amoxor_d; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_amoand_d; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_amoor_d; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_amomin_d; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_amomax_d; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_amominu_d; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_amomaxu_d; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_flw; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_fsw; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_fld; // @[Issue.scala 62:25]
  reg  bufInfo_0_lsu_isa_fsd; // @[Issue.scala 62:25]
  reg  bufInfo_0_csr_isa_rw; // @[Issue.scala 62:25]
  reg  bufInfo_0_csr_isa_rs; // @[Issue.scala 62:25]
  reg  bufInfo_0_csr_isa_rc; // @[Issue.scala 62:25]
  reg  bufInfo_0_csr_isa_rwi; // @[Issue.scala 62:25]
  reg  bufInfo_0_csr_isa_rsi; // @[Issue.scala 62:25]
  reg  bufInfo_0_csr_isa_rci; // @[Issue.scala 62:25]
  reg  bufInfo_0_mul_isa_mul; // @[Issue.scala 62:25]
  reg  bufInfo_0_mul_isa_mulh; // @[Issue.scala 62:25]
  reg  bufInfo_0_mul_isa_mulhsu; // @[Issue.scala 62:25]
  reg  bufInfo_0_mul_isa_mulhu; // @[Issue.scala 62:25]
  reg  bufInfo_0_mul_isa_div; // @[Issue.scala 62:25]
  reg  bufInfo_0_mul_isa_divu; // @[Issue.scala 62:25]
  reg  bufInfo_0_mul_isa_rem; // @[Issue.scala 62:25]
  reg  bufInfo_0_mul_isa_remu; // @[Issue.scala 62:25]
  reg  bufInfo_0_mul_isa_mulw; // @[Issue.scala 62:25]
  reg  bufInfo_0_mul_isa_divw; // @[Issue.scala 62:25]
  reg  bufInfo_0_mul_isa_divuw; // @[Issue.scala 62:25]
  reg  bufInfo_0_mul_isa_remw; // @[Issue.scala 62:25]
  reg  bufInfo_0_mul_isa_remuw; // @[Issue.scala 62:25]
  reg  bufInfo_0_param_is_rvc; // @[Issue.scala 62:25]
  reg [38:0] bufInfo_0_param_pc; // @[Issue.scala 62:25]
  reg [63:0] bufInfo_0_param_imm; // @[Issue.scala 62:25]
  reg [4:0] bufInfo_0_param_raw_rs1; // @[Issue.scala 62:25]
  reg [5:0] bufInfo_0_phy_rs1; // @[Issue.scala 62:25]
  reg [5:0] bufInfo_0_phy_rs2; // @[Issue.scala 62:25]
  reg [5:0] bufInfo_0_phy_rs3; // @[Issue.scala 62:25]
  reg [5:0] bufInfo_0_phy_rd0; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_lui; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_auipc; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_addi; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_addiw; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_slti; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_sltiu; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_xori; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_ori; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_andi; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_slli; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_slliw; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_srli; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_srliw; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_srai; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_sraiw; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_add; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_addw; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_sub; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_subw; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_sll; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_sllw; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_slt; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_sltu; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_xor; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_srl; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_srlw; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_sra; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_sraw; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_or; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_and; // @[Issue.scala 62:25]
  reg  bufInfo_1_alu_isa_wfi; // @[Issue.scala 62:25]
  reg  bufInfo_1_bru_isa_jal; // @[Issue.scala 62:25]
  reg  bufInfo_1_bru_isa_jalr; // @[Issue.scala 62:25]
  reg  bufInfo_1_bru_isa_beq; // @[Issue.scala 62:25]
  reg  bufInfo_1_bru_isa_bne; // @[Issue.scala 62:25]
  reg  bufInfo_1_bru_isa_blt; // @[Issue.scala 62:25]
  reg  bufInfo_1_bru_isa_bge; // @[Issue.scala 62:25]
  reg  bufInfo_1_bru_isa_bltu; // @[Issue.scala 62:25]
  reg  bufInfo_1_bru_isa_bgeu; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_lb; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_lh; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_lw; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_ld; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_lbu; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_lhu; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_lwu; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_sb; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_sh; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_sw; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_sd; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_fence; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_fence_i; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_sfence_vma; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_lr_w; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_sc_w; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_amoswap_w; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_amoadd_w; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_amoxor_w; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_amoand_w; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_amoor_w; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_amomin_w; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_amomax_w; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_amominu_w; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_amomaxu_w; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_lr_d; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_sc_d; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_amoswap_d; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_amoadd_d; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_amoxor_d; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_amoand_d; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_amoor_d; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_amomin_d; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_amomax_d; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_amominu_d; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_amomaxu_d; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_flw; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_fsw; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_fld; // @[Issue.scala 62:25]
  reg  bufInfo_1_lsu_isa_fsd; // @[Issue.scala 62:25]
  reg  bufInfo_1_csr_isa_rw; // @[Issue.scala 62:25]
  reg  bufInfo_1_csr_isa_rs; // @[Issue.scala 62:25]
  reg  bufInfo_1_csr_isa_rc; // @[Issue.scala 62:25]
  reg  bufInfo_1_csr_isa_rwi; // @[Issue.scala 62:25]
  reg  bufInfo_1_csr_isa_rsi; // @[Issue.scala 62:25]
  reg  bufInfo_1_csr_isa_rci; // @[Issue.scala 62:25]
  reg  bufInfo_1_mul_isa_mul; // @[Issue.scala 62:25]
  reg  bufInfo_1_mul_isa_mulh; // @[Issue.scala 62:25]
  reg  bufInfo_1_mul_isa_mulhsu; // @[Issue.scala 62:25]
  reg  bufInfo_1_mul_isa_mulhu; // @[Issue.scala 62:25]
  reg  bufInfo_1_mul_isa_div; // @[Issue.scala 62:25]
  reg  bufInfo_1_mul_isa_divu; // @[Issue.scala 62:25]
  reg  bufInfo_1_mul_isa_rem; // @[Issue.scala 62:25]
  reg  bufInfo_1_mul_isa_remu; // @[Issue.scala 62:25]
  reg  bufInfo_1_mul_isa_mulw; // @[Issue.scala 62:25]
  reg  bufInfo_1_mul_isa_divw; // @[Issue.scala 62:25]
  reg  bufInfo_1_mul_isa_divuw; // @[Issue.scala 62:25]
  reg  bufInfo_1_mul_isa_remw; // @[Issue.scala 62:25]
  reg  bufInfo_1_mul_isa_remuw; // @[Issue.scala 62:25]
  reg  bufInfo_1_param_is_rvc; // @[Issue.scala 62:25]
  reg [38:0] bufInfo_1_param_pc; // @[Issue.scala 62:25]
  reg [63:0] bufInfo_1_param_imm; // @[Issue.scala 62:25]
  reg [4:0] bufInfo_1_param_raw_rs1; // @[Issue.scala 62:25]
  reg [5:0] bufInfo_1_phy_rs1; // @[Issue.scala 62:25]
  reg [5:0] bufInfo_1_phy_rs2; // @[Issue.scala 62:25]
  reg [5:0] bufInfo_1_phy_rs3; // @[Issue.scala 62:25]
  reg [5:0] bufInfo_1_phy_rd0; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_lui; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_auipc; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_addi; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_addiw; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_slti; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_sltiu; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_xori; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_ori; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_andi; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_slli; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_slliw; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_srli; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_srliw; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_srai; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_sraiw; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_add; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_addw; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_sub; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_subw; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_sll; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_sllw; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_slt; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_sltu; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_xor; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_srl; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_srlw; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_sra; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_sraw; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_or; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_and; // @[Issue.scala 62:25]
  reg  bufInfo_2_alu_isa_wfi; // @[Issue.scala 62:25]
  reg  bufInfo_2_bru_isa_jal; // @[Issue.scala 62:25]
  reg  bufInfo_2_bru_isa_jalr; // @[Issue.scala 62:25]
  reg  bufInfo_2_bru_isa_beq; // @[Issue.scala 62:25]
  reg  bufInfo_2_bru_isa_bne; // @[Issue.scala 62:25]
  reg  bufInfo_2_bru_isa_blt; // @[Issue.scala 62:25]
  reg  bufInfo_2_bru_isa_bge; // @[Issue.scala 62:25]
  reg  bufInfo_2_bru_isa_bltu; // @[Issue.scala 62:25]
  reg  bufInfo_2_bru_isa_bgeu; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_lb; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_lh; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_lw; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_ld; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_lbu; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_lhu; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_lwu; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_sb; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_sh; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_sw; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_sd; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_fence; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_fence_i; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_sfence_vma; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_lr_w; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_sc_w; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_amoswap_w; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_amoadd_w; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_amoxor_w; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_amoand_w; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_amoor_w; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_amomin_w; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_amomax_w; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_amominu_w; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_amomaxu_w; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_lr_d; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_sc_d; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_amoswap_d; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_amoadd_d; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_amoxor_d; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_amoand_d; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_amoor_d; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_amomin_d; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_amomax_d; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_amominu_d; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_amomaxu_d; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_flw; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_fsw; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_fld; // @[Issue.scala 62:25]
  reg  bufInfo_2_lsu_isa_fsd; // @[Issue.scala 62:25]
  reg  bufInfo_2_csr_isa_rw; // @[Issue.scala 62:25]
  reg  bufInfo_2_csr_isa_rs; // @[Issue.scala 62:25]
  reg  bufInfo_2_csr_isa_rc; // @[Issue.scala 62:25]
  reg  bufInfo_2_csr_isa_rwi; // @[Issue.scala 62:25]
  reg  bufInfo_2_csr_isa_rsi; // @[Issue.scala 62:25]
  reg  bufInfo_2_csr_isa_rci; // @[Issue.scala 62:25]
  reg  bufInfo_2_mul_isa_mul; // @[Issue.scala 62:25]
  reg  bufInfo_2_mul_isa_mulh; // @[Issue.scala 62:25]
  reg  bufInfo_2_mul_isa_mulhsu; // @[Issue.scala 62:25]
  reg  bufInfo_2_mul_isa_mulhu; // @[Issue.scala 62:25]
  reg  bufInfo_2_mul_isa_div; // @[Issue.scala 62:25]
  reg  bufInfo_2_mul_isa_divu; // @[Issue.scala 62:25]
  reg  bufInfo_2_mul_isa_rem; // @[Issue.scala 62:25]
  reg  bufInfo_2_mul_isa_remu; // @[Issue.scala 62:25]
  reg  bufInfo_2_mul_isa_mulw; // @[Issue.scala 62:25]
  reg  bufInfo_2_mul_isa_divw; // @[Issue.scala 62:25]
  reg  bufInfo_2_mul_isa_divuw; // @[Issue.scala 62:25]
  reg  bufInfo_2_mul_isa_remw; // @[Issue.scala 62:25]
  reg  bufInfo_2_mul_isa_remuw; // @[Issue.scala 62:25]
  reg  bufInfo_2_param_is_rvc; // @[Issue.scala 62:25]
  reg [38:0] bufInfo_2_param_pc; // @[Issue.scala 62:25]
  reg [63:0] bufInfo_2_param_imm; // @[Issue.scala 62:25]
  reg [4:0] bufInfo_2_param_raw_rs1; // @[Issue.scala 62:25]
  reg [5:0] bufInfo_2_phy_rs1; // @[Issue.scala 62:25]
  reg [5:0] bufInfo_2_phy_rs2; // @[Issue.scala 62:25]
  reg [5:0] bufInfo_2_phy_rs3; // @[Issue.scala 62:25]
  reg [5:0] bufInfo_2_phy_rd0; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_lui; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_auipc; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_addi; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_addiw; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_slti; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_sltiu; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_xori; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_ori; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_andi; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_slli; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_slliw; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_srli; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_srliw; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_srai; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_sraiw; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_add; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_addw; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_sub; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_subw; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_sll; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_sllw; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_slt; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_sltu; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_xor; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_srl; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_srlw; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_sra; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_sraw; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_or; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_and; // @[Issue.scala 62:25]
  reg  bufInfo_3_alu_isa_wfi; // @[Issue.scala 62:25]
  reg  bufInfo_3_bru_isa_jal; // @[Issue.scala 62:25]
  reg  bufInfo_3_bru_isa_jalr; // @[Issue.scala 62:25]
  reg  bufInfo_3_bru_isa_beq; // @[Issue.scala 62:25]
  reg  bufInfo_3_bru_isa_bne; // @[Issue.scala 62:25]
  reg  bufInfo_3_bru_isa_blt; // @[Issue.scala 62:25]
  reg  bufInfo_3_bru_isa_bge; // @[Issue.scala 62:25]
  reg  bufInfo_3_bru_isa_bltu; // @[Issue.scala 62:25]
  reg  bufInfo_3_bru_isa_bgeu; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_lb; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_lh; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_lw; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_ld; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_lbu; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_lhu; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_lwu; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_sb; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_sh; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_sw; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_sd; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_fence; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_fence_i; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_sfence_vma; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_lr_w; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_sc_w; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_amoswap_w; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_amoadd_w; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_amoxor_w; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_amoand_w; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_amoor_w; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_amomin_w; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_amomax_w; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_amominu_w; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_amomaxu_w; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_lr_d; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_sc_d; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_amoswap_d; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_amoadd_d; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_amoxor_d; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_amoand_d; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_amoor_d; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_amomin_d; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_amomax_d; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_amominu_d; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_amomaxu_d; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_flw; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_fsw; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_fld; // @[Issue.scala 62:25]
  reg  bufInfo_3_lsu_isa_fsd; // @[Issue.scala 62:25]
  reg  bufInfo_3_csr_isa_rw; // @[Issue.scala 62:25]
  reg  bufInfo_3_csr_isa_rs; // @[Issue.scala 62:25]
  reg  bufInfo_3_csr_isa_rc; // @[Issue.scala 62:25]
  reg  bufInfo_3_csr_isa_rwi; // @[Issue.scala 62:25]
  reg  bufInfo_3_csr_isa_rsi; // @[Issue.scala 62:25]
  reg  bufInfo_3_csr_isa_rci; // @[Issue.scala 62:25]
  reg  bufInfo_3_mul_isa_mul; // @[Issue.scala 62:25]
  reg  bufInfo_3_mul_isa_mulh; // @[Issue.scala 62:25]
  reg  bufInfo_3_mul_isa_mulhsu; // @[Issue.scala 62:25]
  reg  bufInfo_3_mul_isa_mulhu; // @[Issue.scala 62:25]
  reg  bufInfo_3_mul_isa_div; // @[Issue.scala 62:25]
  reg  bufInfo_3_mul_isa_divu; // @[Issue.scala 62:25]
  reg  bufInfo_3_mul_isa_rem; // @[Issue.scala 62:25]
  reg  bufInfo_3_mul_isa_remu; // @[Issue.scala 62:25]
  reg  bufInfo_3_mul_isa_mulw; // @[Issue.scala 62:25]
  reg  bufInfo_3_mul_isa_divw; // @[Issue.scala 62:25]
  reg  bufInfo_3_mul_isa_divuw; // @[Issue.scala 62:25]
  reg  bufInfo_3_mul_isa_remw; // @[Issue.scala 62:25]
  reg  bufInfo_3_mul_isa_remuw; // @[Issue.scala 62:25]
  reg  bufInfo_3_param_is_rvc; // @[Issue.scala 62:25]
  reg [38:0] bufInfo_3_param_pc; // @[Issue.scala 62:25]
  reg [63:0] bufInfo_3_param_imm; // @[Issue.scala 62:25]
  reg [4:0] bufInfo_3_param_raw_rs1; // @[Issue.scala 62:25]
  reg [5:0] bufInfo_3_phy_rs1; // @[Issue.scala 62:25]
  reg [5:0] bufInfo_3_phy_rs2; // @[Issue.scala 62:25]
  reg [5:0] bufInfo_3_phy_rs3; // @[Issue.scala 62:25]
  reg [5:0] bufInfo_3_phy_rd0; // @[Issue.scala 62:25]
  reg  isOpReady_0_0; // @[Issue.scala 65:25]
  reg  isOpReady_0_1; // @[Issue.scala 65:25]
  reg  isOpReady_1_0; // @[Issue.scala 65:25]
  reg  isOpReady_1_1; // @[Issue.scala 65:25]
  reg  isOpReady_2_0; // @[Issue.scala 65:25]
  reg  isOpReady_2_1; // @[Issue.scala 65:25]
  reg  isOpReady_3_0; // @[Issue.scala 65:25]
  reg  isOpReady_3_1; // @[Issue.scala 65:25]
  reg [64:0] bufOperator_0_0; // @[Issue.scala 66:25]
  reg [64:0] bufOperator_0_1; // @[Issue.scala 66:25]
  reg [64:0] bufOperator_1_0; // @[Issue.scala 66:25]
  reg [64:0] bufOperator_1_1; // @[Issue.scala 66:25]
  reg [64:0] bufOperator_2_0; // @[Issue.scala 66:25]
  reg [64:0] bufOperator_2_1; // @[Issue.scala 66:25]
  reg [64:0] bufOperator_3_0; // @[Issue.scala 66:25]
  reg [64:0] bufOperator_3_1; // @[Issue.scala 66:25]
  wire  _entrySel_T = ~bufValid_0; // @[Issue.scala 69:43]
  wire  _entrySel_T_1 = ~bufValid_1; // @[Issue.scala 69:43]
  wire  _entrySel_T_2 = ~bufValid_2; // @[Issue.scala 69:43]
  wire [1:0] _entrySel_T_4 = ~bufValid_2 ? 2'h2 : 2'h3; // @[Issue.scala 69:26]
  wire [1:0] _entrySel_T_5 = ~bufValid_1 ? 2'h1 : _entrySel_T_4; // @[Issue.scala 69:26]
  wire [1:0] entrySel_0 = ~bufValid_0 ? 2'h0 : _entrySel_T_5; // @[Issue.scala 69:26]
  wire  _io_dptReq_0_ready_T_3 = ~bufValid_3; // @[Issue.scala 78:59]
  wire  _T = io_dptReq_0_ready & io_dptReq_0_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_396 = 2'h0 == entrySel_0; // @[Issue.scala 82:23 89:{36,36}]
  wire  _GEN_0 = 2'h0 == entrySel_0 | bufValid_0; // @[Issue.scala 82:23 89:{36,36}]
  wire  _GEN_397 = 2'h1 == entrySel_0; // @[Issue.scala 82:23 89:{36,36}]
  wire  _GEN_1 = 2'h1 == entrySel_0 | bufValid_1; // @[Issue.scala 82:23 89:{36,36}]
  wire  _GEN_398 = 2'h2 == entrySel_0; // @[Issue.scala 82:23 89:{36,36}]
  wire  _GEN_2 = 2'h2 == entrySel_0 | bufValid_2; // @[Issue.scala 82:23 89:{36,36}]
  wire  _GEN_399 = 2'h3 == entrySel_0; // @[Issue.scala 82:23 89:{36,36}]
  wire  _GEN_3 = 2'h3 == entrySel_0 | bufValid_3; // @[Issue.scala 82:23 89:{36,36}]
  wire  _GEN_792 = _T ? _GEN_0 : bufValid_0; // @[Issue.scala 82:23 88:38]
  wire  _GEN_793 = _T ? _GEN_1 : bufValid_1; // @[Issue.scala 82:23 88:38]
  wire  _GEN_794 = _T ? _GEN_2 : bufValid_2; // @[Issue.scala 82:23 88:38]
  wire  _GEN_795 = _T ? _GEN_3 : bufValid_3; // @[Issue.scala 82:23 88:38]
  wire  bufValidDnxt_0_0 = io_flush ? 1'h0 : _GEN_792; // @[Issue.scala 86:22 87:23]
  wire  bufValidDnxt_0_1 = io_flush ? 1'h0 : _GEN_793; // @[Issue.scala 86:22 87:23]
  wire  bufValidDnxt_0_2 = io_flush ? 1'h0 : _GEN_794; // @[Issue.scala 86:22 87:23]
  wire  bufValidDnxt_0_3 = io_flush ? 1'h0 : _GEN_795; // @[Issue.scala 86:22 87:23]
  wire  _GEN_2400 = _GEN_396 | isOpReady_0_0; // @[Issue.scala 122:{36,36} 65:25]
  wire  _GEN_2401 = _GEN_397 | isOpReady_1_0; // @[Issue.scala 122:{36,36} 65:25]
  wire  _GEN_2402 = _GEN_398 | isOpReady_2_0; // @[Issue.scala 122:{36,36} 65:25]
  wire  _GEN_2403 = _GEN_399 | isOpReady_3_0; // @[Issue.scala 122:{36,36} 65:25]
  wire [64:0] _GEN_2404 = 2'h0 == entrySel_0 ? 65'h0 : bufOperator_0_0; // @[Issue.scala 123:{37,37} 66:25]
  wire [64:0] _GEN_2405 = 2'h1 == entrySel_0 ? 65'h0 : bufOperator_1_0; // @[Issue.scala 123:{37,37} 66:25]
  wire [64:0] _GEN_2406 = 2'h2 == entrySel_0 ? 65'h0 : bufOperator_2_0; // @[Issue.scala 123:{37,37} 66:25]
  wire [64:0] _GEN_2407 = 2'h3 == entrySel_0 ? 65'h0 : bufOperator_3_0; // @[Issue.scala 123:{37,37} 66:25]
  wire  _GEN_2408 = 2'h0 == entrySel_0 ? 1'h0 : isOpReady_0_0; // @[Issue.scala 125:{36,36} 65:25]
  wire  _GEN_2409 = 2'h1 == entrySel_0 ? 1'h0 : isOpReady_1_0; // @[Issue.scala 125:{36,36} 65:25]
  wire  _GEN_2410 = 2'h2 == entrySel_0 ? 1'h0 : isOpReady_2_0; // @[Issue.scala 125:{36,36} 65:25]
  wire  _GEN_2411 = 2'h3 == entrySel_0 ? 1'h0 : isOpReady_3_0; // @[Issue.scala 125:{36,36} 65:25]
  wire  _GEN_2412 = io_dptReq_0_bits_phy_rs1 == 6'h21 ? _GEN_2400 : _GEN_2408; // @[Issue.scala 121:58]
  wire  _GEN_2413 = io_dptReq_0_bits_phy_rs1 == 6'h21 ? _GEN_2401 : _GEN_2409; // @[Issue.scala 121:58]
  wire  _GEN_2414 = io_dptReq_0_bits_phy_rs1 == 6'h21 ? _GEN_2402 : _GEN_2410; // @[Issue.scala 121:58]
  wire  _GEN_2415 = io_dptReq_0_bits_phy_rs1 == 6'h21 ? _GEN_2403 : _GEN_2411; // @[Issue.scala 121:58]
  wire [64:0] _GEN_2416 = io_dptReq_0_bits_phy_rs1 == 6'h21 ? _GEN_2404 : bufOperator_0_0; // @[Issue.scala 121:58 66:25]
  wire [64:0] _GEN_2417 = io_dptReq_0_bits_phy_rs1 == 6'h21 ? _GEN_2405 : bufOperator_1_0; // @[Issue.scala 121:58 66:25]
  wire [64:0] _GEN_2418 = io_dptReq_0_bits_phy_rs1 == 6'h21 ? _GEN_2406 : bufOperator_2_0; // @[Issue.scala 121:58 66:25]
  wire [64:0] _GEN_2419 = io_dptReq_0_bits_phy_rs1 == 6'h21 ? _GEN_2407 : bufOperator_3_0; // @[Issue.scala 121:58 66:25]
  wire  _GEN_2420 = _GEN_396 | isOpReady_0_1; // @[Issue.scala 128:{36,36} 65:25]
  wire  _GEN_2421 = _GEN_397 | isOpReady_1_1; // @[Issue.scala 128:{36,36} 65:25]
  wire  _GEN_2422 = _GEN_398 | isOpReady_2_1; // @[Issue.scala 128:{36,36} 65:25]
  wire  _GEN_2423 = _GEN_399 | isOpReady_3_1; // @[Issue.scala 128:{36,36} 65:25]
  wire [64:0] _GEN_2424 = 2'h0 == entrySel_0 ? 65'h0 : bufOperator_0_1; // @[Issue.scala 129:{37,37} 66:25]
  wire [64:0] _GEN_2425 = 2'h1 == entrySel_0 ? 65'h0 : bufOperator_1_1; // @[Issue.scala 129:{37,37} 66:25]
  wire [64:0] _GEN_2426 = 2'h2 == entrySel_0 ? 65'h0 : bufOperator_2_1; // @[Issue.scala 129:{37,37} 66:25]
  wire [64:0] _GEN_2427 = 2'h3 == entrySel_0 ? 65'h0 : bufOperator_3_1; // @[Issue.scala 129:{37,37} 66:25]
  wire  _GEN_2428 = 2'h0 == entrySel_0 ? 1'h0 : isOpReady_0_1; // @[Issue.scala 131:{36,36} 65:25]
  wire  _GEN_2429 = 2'h1 == entrySel_0 ? 1'h0 : isOpReady_1_1; // @[Issue.scala 131:{36,36} 65:25]
  wire  _GEN_2430 = 2'h2 == entrySel_0 ? 1'h0 : isOpReady_2_1; // @[Issue.scala 131:{36,36} 65:25]
  wire  _GEN_2431 = 2'h3 == entrySel_0 ? 1'h0 : isOpReady_3_1; // @[Issue.scala 131:{36,36} 65:25]
  wire  _GEN_2432 = io_dptReq_0_bits_phy_rs2 == 6'h21 ? _GEN_2420 : _GEN_2428; // @[Issue.scala 127:58]
  wire  _GEN_2433 = io_dptReq_0_bits_phy_rs2 == 6'h21 ? _GEN_2421 : _GEN_2429; // @[Issue.scala 127:58]
  wire  _GEN_2434 = io_dptReq_0_bits_phy_rs2 == 6'h21 ? _GEN_2422 : _GEN_2430; // @[Issue.scala 127:58]
  wire  _GEN_2435 = io_dptReq_0_bits_phy_rs2 == 6'h21 ? _GEN_2423 : _GEN_2431; // @[Issue.scala 127:58]
  wire [64:0] _GEN_2436 = io_dptReq_0_bits_phy_rs2 == 6'h21 ? _GEN_2424 : bufOperator_0_1; // @[Issue.scala 127:58 66:25]
  wire [64:0] _GEN_2437 = io_dptReq_0_bits_phy_rs2 == 6'h21 ? _GEN_2425 : bufOperator_1_1; // @[Issue.scala 127:58 66:25]
  wire [64:0] _GEN_2438 = io_dptReq_0_bits_phy_rs2 == 6'h21 ? _GEN_2426 : bufOperator_2_1; // @[Issue.scala 127:58 66:25]
  wire [64:0] _GEN_2439 = io_dptReq_0_bits_phy_rs2 == 6'h21 ? _GEN_2427 : bufOperator_3_1; // @[Issue.scala 127:58 66:25]
  wire  _GEN_2460 = _T ? _GEN_2412 : isOpReady_0_0; // @[Issue.scala 120:31 65:25]
  wire  _GEN_2461 = _T ? _GEN_2413 : isOpReady_1_0; // @[Issue.scala 120:31 65:25]
  wire  _GEN_2462 = _T ? _GEN_2414 : isOpReady_2_0; // @[Issue.scala 120:31 65:25]
  wire  _GEN_2463 = _T ? _GEN_2415 : isOpReady_3_0; // @[Issue.scala 120:31 65:25]
  wire [64:0] _GEN_2464 = _T ? _GEN_2416 : bufOperator_0_0; // @[Issue.scala 120:31 66:25]
  wire [64:0] _GEN_2465 = _T ? _GEN_2417 : bufOperator_1_0; // @[Issue.scala 120:31 66:25]
  wire [64:0] _GEN_2466 = _T ? _GEN_2418 : bufOperator_2_0; // @[Issue.scala 120:31 66:25]
  wire [64:0] _GEN_2467 = _T ? _GEN_2419 : bufOperator_3_0; // @[Issue.scala 120:31 66:25]
  wire  _GEN_2468 = _T ? _GEN_2432 : isOpReady_0_1; // @[Issue.scala 120:31 65:25]
  wire  _GEN_2469 = _T ? _GEN_2433 : isOpReady_1_1; // @[Issue.scala 120:31 65:25]
  wire  _GEN_2470 = _T ? _GEN_2434 : isOpReady_2_1; // @[Issue.scala 120:31 65:25]
  wire  _GEN_2471 = _T ? _GEN_2435 : isOpReady_3_1; // @[Issue.scala 120:31 65:25]
  wire [64:0] _GEN_2472 = _T ? _GEN_2436 : bufOperator_0_1; // @[Issue.scala 120:31 66:25]
  wire [64:0] _GEN_2473 = _T ? _GEN_2437 : bufOperator_1_1; // @[Issue.scala 120:31 66:25]
  wire [64:0] _GEN_2474 = _T ? _GEN_2438 : bufOperator_2_1; // @[Issue.scala 120:31 66:25]
  wire [64:0] _GEN_2475 = _T ? _GEN_2439 : bufOperator_3_1; // @[Issue.scala 120:31 66:25]
  reg  ageMatrixW_0_0; // @[Issue.scala 156:23]
  reg  ageMatrixW_0_1; // @[Issue.scala 156:23]
  reg  ageMatrixW_0_2; // @[Issue.scala 156:23]
  reg  ageMatrixW_0_3; // @[Issue.scala 156:23]
  reg  ageMatrixW_1_1; // @[Issue.scala 156:23]
  reg  ageMatrixW_1_2; // @[Issue.scala 156:23]
  reg  ageMatrixW_1_3; // @[Issue.scala 156:23]
  reg  ageMatrixW_2_2; // @[Issue.scala 156:23]
  reg  ageMatrixW_2_3; // @[Issue.scala 156:23]
  reg  ageMatrixW_3_3; // @[Issue.scala 156:23]
  wire  ageMatrixR_1_0 = ~ageMatrixW_0_1; // @[Issue.scala 161:27]
  wire  ageMatrixR_2_0 = ~ageMatrixW_0_2; // @[Issue.scala 161:27]
  wire  ageMatrixR_2_1 = ~ageMatrixW_1_2; // @[Issue.scala 161:27]
  wire  ageMatrixR_3_0 = ~ageMatrixW_0_3; // @[Issue.scala 161:27]
  wire  ageMatrixR_3_1 = ~ageMatrixW_1_3; // @[Issue.scala 161:27]
  wire  ageMatrixR_3_2 = ~ageMatrixW_2_3; // @[Issue.scala 161:27]
  wire  _GEN_2484 = _GEN_396 | ageMatrixW_0_0; // @[Issue.scala 156:23 171:{44,44}]
  wire  _GEN_2488 = _GEN_396 | ageMatrixW_0_1; // @[Issue.scala 156:23 171:{44,44}]
  wire  _GEN_2489 = _GEN_397 | ageMatrixW_1_1; // @[Issue.scala 156:23 171:{44,44}]
  wire  _GEN_2492 = _GEN_396 | ageMatrixW_0_2; // @[Issue.scala 156:23 171:{44,44}]
  wire  _GEN_2493 = _GEN_397 | ageMatrixW_1_2; // @[Issue.scala 156:23 171:{44,44}]
  wire  _GEN_2494 = _GEN_398 | ageMatrixW_2_2; // @[Issue.scala 156:23 171:{44,44}]
  wire  _GEN_2496 = _GEN_396 | ageMatrixW_0_3; // @[Issue.scala 156:23 171:{44,44}]
  wire  _GEN_2497 = _GEN_397 | ageMatrixW_1_3; // @[Issue.scala 156:23 171:{44,44}]
  wire  _GEN_2498 = _GEN_398 | ageMatrixW_2_3; // @[Issue.scala 156:23 171:{44,44}]
  wire  _GEN_2499 = _GEN_399 | ageMatrixW_3_3; // @[Issue.scala 156:23 171:{44,44}]
  wire [1:0] _GEN_2533 = 6'h1 == bufInfo_0_phy_rs1 ? io_irgLog_1 : io_irgLog_0; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2534 = 6'h2 == bufInfo_0_phy_rs1 ? io_irgLog_2 : _GEN_2533; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2535 = 6'h3 == bufInfo_0_phy_rs1 ? io_irgLog_3 : _GEN_2534; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2536 = 6'h4 == bufInfo_0_phy_rs1 ? io_irgLog_4 : _GEN_2535; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2537 = 6'h5 == bufInfo_0_phy_rs1 ? io_irgLog_5 : _GEN_2536; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2538 = 6'h6 == bufInfo_0_phy_rs1 ? io_irgLog_6 : _GEN_2537; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2539 = 6'h7 == bufInfo_0_phy_rs1 ? io_irgLog_7 : _GEN_2538; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2540 = 6'h8 == bufInfo_0_phy_rs1 ? io_irgLog_8 : _GEN_2539; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2541 = 6'h9 == bufInfo_0_phy_rs1 ? io_irgLog_9 : _GEN_2540; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2542 = 6'ha == bufInfo_0_phy_rs1 ? io_irgLog_10 : _GEN_2541; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2543 = 6'hb == bufInfo_0_phy_rs1 ? io_irgLog_11 : _GEN_2542; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2544 = 6'hc == bufInfo_0_phy_rs1 ? io_irgLog_12 : _GEN_2543; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2545 = 6'hd == bufInfo_0_phy_rs1 ? io_irgLog_13 : _GEN_2544; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2546 = 6'he == bufInfo_0_phy_rs1 ? io_irgLog_14 : _GEN_2545; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2547 = 6'hf == bufInfo_0_phy_rs1 ? io_irgLog_15 : _GEN_2546; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2548 = 6'h10 == bufInfo_0_phy_rs1 ? io_irgLog_16 : _GEN_2547; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2549 = 6'h11 == bufInfo_0_phy_rs1 ? io_irgLog_17 : _GEN_2548; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2550 = 6'h12 == bufInfo_0_phy_rs1 ? io_irgLog_18 : _GEN_2549; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2551 = 6'h13 == bufInfo_0_phy_rs1 ? io_irgLog_19 : _GEN_2550; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2552 = 6'h14 == bufInfo_0_phy_rs1 ? io_irgLog_20 : _GEN_2551; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2553 = 6'h15 == bufInfo_0_phy_rs1 ? io_irgLog_21 : _GEN_2552; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2554 = 6'h16 == bufInfo_0_phy_rs1 ? io_irgLog_22 : _GEN_2553; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2555 = 6'h17 == bufInfo_0_phy_rs1 ? io_irgLog_23 : _GEN_2554; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2556 = 6'h18 == bufInfo_0_phy_rs1 ? io_irgLog_24 : _GEN_2555; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2557 = 6'h19 == bufInfo_0_phy_rs1 ? io_irgLog_25 : _GEN_2556; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2558 = 6'h1a == bufInfo_0_phy_rs1 ? io_irgLog_26 : _GEN_2557; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2559 = 6'h1b == bufInfo_0_phy_rs1 ? io_irgLog_27 : _GEN_2558; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2560 = 6'h1c == bufInfo_0_phy_rs1 ? io_irgLog_28 : _GEN_2559; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2561 = 6'h1d == bufInfo_0_phy_rs1 ? io_irgLog_29 : _GEN_2560; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2562 = 6'h1e == bufInfo_0_phy_rs1 ? io_irgLog_30 : _GEN_2561; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2563 = 6'h1f == bufInfo_0_phy_rs1 ? io_irgLog_31 : _GEN_2562; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2564 = 6'h20 == bufInfo_0_phy_rs1 ? io_irgLog_32 : _GEN_2563; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2565 = 6'h21 == bufInfo_0_phy_rs1 ? 2'h3 : _GEN_2564; // @[Issue.scala 217:{37,37}]
  wire  _canIOpReq_0_0_T = _GEN_2565 == 2'h3; // @[Issue.scala 217:37]
  wire  _canIOpReq_0_0_T_3 = ~isOpReady_0_0; // @[Issue.scala 219:7]
  wire  _canIOpReq_0_0_T_4 = _canIOpReq_0_0_T & _canIOpReq_0_0_T_3; // @[Issue.scala 218:23]
  wire [5:0] bufReqNum_0_0 = bufInfo_0_phy_rs1; // @[Issue.scala 144:21 63:26]
  wire  _canIOpReq_0_0_T_6 = io_irgRsp_0_valid & io_irgRsp_0_bits_phy == bufReqNum_0_0; // @[Issue.scala 219:55]
  wire  _canIOpReq_0_0_T_8 = io_irgRsp_1_valid & io_irgRsp_1_bits_phy == bufReqNum_0_0; // @[Issue.scala 219:55]
  wire  canIOpReq_0_0 = _canIOpReq_0_0_T_4 & ~(io_irgRsp_0_valid & io_irgRsp_0_bits_phy == bufReqNum_0_0 |
    io_irgRsp_1_valid & io_irgRsp_1_bits_phy == bufReqNum_0_0); // @[Issue.scala 219:24]
  wire [1:0] _GEN_2567 = 6'h1 == bufInfo_0_phy_rs2 ? io_irgLog_1 : io_irgLog_0; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2568 = 6'h2 == bufInfo_0_phy_rs2 ? io_irgLog_2 : _GEN_2567; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2569 = 6'h3 == bufInfo_0_phy_rs2 ? io_irgLog_3 : _GEN_2568; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2570 = 6'h4 == bufInfo_0_phy_rs2 ? io_irgLog_4 : _GEN_2569; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2571 = 6'h5 == bufInfo_0_phy_rs2 ? io_irgLog_5 : _GEN_2570; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2572 = 6'h6 == bufInfo_0_phy_rs2 ? io_irgLog_6 : _GEN_2571; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2573 = 6'h7 == bufInfo_0_phy_rs2 ? io_irgLog_7 : _GEN_2572; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2574 = 6'h8 == bufInfo_0_phy_rs2 ? io_irgLog_8 : _GEN_2573; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2575 = 6'h9 == bufInfo_0_phy_rs2 ? io_irgLog_9 : _GEN_2574; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2576 = 6'ha == bufInfo_0_phy_rs2 ? io_irgLog_10 : _GEN_2575; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2577 = 6'hb == bufInfo_0_phy_rs2 ? io_irgLog_11 : _GEN_2576; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2578 = 6'hc == bufInfo_0_phy_rs2 ? io_irgLog_12 : _GEN_2577; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2579 = 6'hd == bufInfo_0_phy_rs2 ? io_irgLog_13 : _GEN_2578; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2580 = 6'he == bufInfo_0_phy_rs2 ? io_irgLog_14 : _GEN_2579; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2581 = 6'hf == bufInfo_0_phy_rs2 ? io_irgLog_15 : _GEN_2580; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2582 = 6'h10 == bufInfo_0_phy_rs2 ? io_irgLog_16 : _GEN_2581; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2583 = 6'h11 == bufInfo_0_phy_rs2 ? io_irgLog_17 : _GEN_2582; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2584 = 6'h12 == bufInfo_0_phy_rs2 ? io_irgLog_18 : _GEN_2583; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2585 = 6'h13 == bufInfo_0_phy_rs2 ? io_irgLog_19 : _GEN_2584; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2586 = 6'h14 == bufInfo_0_phy_rs2 ? io_irgLog_20 : _GEN_2585; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2587 = 6'h15 == bufInfo_0_phy_rs2 ? io_irgLog_21 : _GEN_2586; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2588 = 6'h16 == bufInfo_0_phy_rs2 ? io_irgLog_22 : _GEN_2587; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2589 = 6'h17 == bufInfo_0_phy_rs2 ? io_irgLog_23 : _GEN_2588; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2590 = 6'h18 == bufInfo_0_phy_rs2 ? io_irgLog_24 : _GEN_2589; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2591 = 6'h19 == bufInfo_0_phy_rs2 ? io_irgLog_25 : _GEN_2590; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2592 = 6'h1a == bufInfo_0_phy_rs2 ? io_irgLog_26 : _GEN_2591; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2593 = 6'h1b == bufInfo_0_phy_rs2 ? io_irgLog_27 : _GEN_2592; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2594 = 6'h1c == bufInfo_0_phy_rs2 ? io_irgLog_28 : _GEN_2593; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2595 = 6'h1d == bufInfo_0_phy_rs2 ? io_irgLog_29 : _GEN_2594; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2596 = 6'h1e == bufInfo_0_phy_rs2 ? io_irgLog_30 : _GEN_2595; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2597 = 6'h1f == bufInfo_0_phy_rs2 ? io_irgLog_31 : _GEN_2596; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2598 = 6'h20 == bufInfo_0_phy_rs2 ? io_irgLog_32 : _GEN_2597; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2599 = 6'h21 == bufInfo_0_phy_rs2 ? 2'h3 : _GEN_2598; // @[Issue.scala 222:{37,37}]
  wire  _canIOpReq_0_1_T = _GEN_2599 == 2'h3; // @[Issue.scala 222:37]
  wire  _canIOpReq_0_1_T_3 = ~isOpReady_0_1; // @[Issue.scala 224:7]
  wire  _canIOpReq_0_1_T_4 = _canIOpReq_0_1_T & _canIOpReq_0_1_T_3; // @[Issue.scala 223:23]
  wire [5:0] bufReqNum_0_1 = bufInfo_0_phy_rs2; // @[Issue.scala 145:21 63:26]
  wire  _canIOpReq_0_1_T_6 = io_irgRsp_0_valid & io_irgRsp_0_bits_phy == bufReqNum_0_1; // @[Issue.scala 224:55]
  wire  _canIOpReq_0_1_T_8 = io_irgRsp_1_valid & io_irgRsp_1_bits_phy == bufReqNum_0_1; // @[Issue.scala 224:55]
  wire  canIOpReq_0_1 = _canIOpReq_0_1_T_4 & ~(io_irgRsp_0_valid & io_irgRsp_0_bits_phy == bufReqNum_0_1 |
    io_irgRsp_1_valid & io_irgRsp_1_bits_phy == bufReqNum_0_1); // @[Issue.scala 224:24]
  wire [1:0] _GEN_2601 = 6'h1 == bufInfo_1_phy_rs1 ? io_irgLog_1 : io_irgLog_0; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2602 = 6'h2 == bufInfo_1_phy_rs1 ? io_irgLog_2 : _GEN_2601; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2603 = 6'h3 == bufInfo_1_phy_rs1 ? io_irgLog_3 : _GEN_2602; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2604 = 6'h4 == bufInfo_1_phy_rs1 ? io_irgLog_4 : _GEN_2603; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2605 = 6'h5 == bufInfo_1_phy_rs1 ? io_irgLog_5 : _GEN_2604; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2606 = 6'h6 == bufInfo_1_phy_rs1 ? io_irgLog_6 : _GEN_2605; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2607 = 6'h7 == bufInfo_1_phy_rs1 ? io_irgLog_7 : _GEN_2606; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2608 = 6'h8 == bufInfo_1_phy_rs1 ? io_irgLog_8 : _GEN_2607; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2609 = 6'h9 == bufInfo_1_phy_rs1 ? io_irgLog_9 : _GEN_2608; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2610 = 6'ha == bufInfo_1_phy_rs1 ? io_irgLog_10 : _GEN_2609; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2611 = 6'hb == bufInfo_1_phy_rs1 ? io_irgLog_11 : _GEN_2610; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2612 = 6'hc == bufInfo_1_phy_rs1 ? io_irgLog_12 : _GEN_2611; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2613 = 6'hd == bufInfo_1_phy_rs1 ? io_irgLog_13 : _GEN_2612; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2614 = 6'he == bufInfo_1_phy_rs1 ? io_irgLog_14 : _GEN_2613; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2615 = 6'hf == bufInfo_1_phy_rs1 ? io_irgLog_15 : _GEN_2614; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2616 = 6'h10 == bufInfo_1_phy_rs1 ? io_irgLog_16 : _GEN_2615; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2617 = 6'h11 == bufInfo_1_phy_rs1 ? io_irgLog_17 : _GEN_2616; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2618 = 6'h12 == bufInfo_1_phy_rs1 ? io_irgLog_18 : _GEN_2617; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2619 = 6'h13 == bufInfo_1_phy_rs1 ? io_irgLog_19 : _GEN_2618; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2620 = 6'h14 == bufInfo_1_phy_rs1 ? io_irgLog_20 : _GEN_2619; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2621 = 6'h15 == bufInfo_1_phy_rs1 ? io_irgLog_21 : _GEN_2620; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2622 = 6'h16 == bufInfo_1_phy_rs1 ? io_irgLog_22 : _GEN_2621; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2623 = 6'h17 == bufInfo_1_phy_rs1 ? io_irgLog_23 : _GEN_2622; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2624 = 6'h18 == bufInfo_1_phy_rs1 ? io_irgLog_24 : _GEN_2623; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2625 = 6'h19 == bufInfo_1_phy_rs1 ? io_irgLog_25 : _GEN_2624; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2626 = 6'h1a == bufInfo_1_phy_rs1 ? io_irgLog_26 : _GEN_2625; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2627 = 6'h1b == bufInfo_1_phy_rs1 ? io_irgLog_27 : _GEN_2626; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2628 = 6'h1c == bufInfo_1_phy_rs1 ? io_irgLog_28 : _GEN_2627; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2629 = 6'h1d == bufInfo_1_phy_rs1 ? io_irgLog_29 : _GEN_2628; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2630 = 6'h1e == bufInfo_1_phy_rs1 ? io_irgLog_30 : _GEN_2629; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2631 = 6'h1f == bufInfo_1_phy_rs1 ? io_irgLog_31 : _GEN_2630; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2632 = 6'h20 == bufInfo_1_phy_rs1 ? io_irgLog_32 : _GEN_2631; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2633 = 6'h21 == bufInfo_1_phy_rs1 ? 2'h3 : _GEN_2632; // @[Issue.scala 217:{37,37}]
  wire  _canIOpReq_1_0_T = _GEN_2633 == 2'h3; // @[Issue.scala 217:37]
  wire  _canIOpReq_1_0_T_3 = ~isOpReady_1_0; // @[Issue.scala 219:7]
  wire  _canIOpReq_1_0_T_4 = _canIOpReq_1_0_T & _canIOpReq_1_0_T_3; // @[Issue.scala 218:23]
  wire [5:0] bufReqNum_1_0 = bufInfo_1_phy_rs1; // @[Issue.scala 144:21 63:26]
  wire  _canIOpReq_1_0_T_6 = io_irgRsp_0_valid & io_irgRsp_0_bits_phy == bufReqNum_1_0; // @[Issue.scala 219:55]
  wire  _canIOpReq_1_0_T_8 = io_irgRsp_1_valid & io_irgRsp_1_bits_phy == bufReqNum_1_0; // @[Issue.scala 219:55]
  wire  canIOpReq_1_0 = _canIOpReq_1_0_T_4 & ~(io_irgRsp_0_valid & io_irgRsp_0_bits_phy == bufReqNum_1_0 |
    io_irgRsp_1_valid & io_irgRsp_1_bits_phy == bufReqNum_1_0); // @[Issue.scala 219:24]
  wire [1:0] _GEN_2635 = 6'h1 == bufInfo_1_phy_rs2 ? io_irgLog_1 : io_irgLog_0; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2636 = 6'h2 == bufInfo_1_phy_rs2 ? io_irgLog_2 : _GEN_2635; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2637 = 6'h3 == bufInfo_1_phy_rs2 ? io_irgLog_3 : _GEN_2636; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2638 = 6'h4 == bufInfo_1_phy_rs2 ? io_irgLog_4 : _GEN_2637; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2639 = 6'h5 == bufInfo_1_phy_rs2 ? io_irgLog_5 : _GEN_2638; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2640 = 6'h6 == bufInfo_1_phy_rs2 ? io_irgLog_6 : _GEN_2639; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2641 = 6'h7 == bufInfo_1_phy_rs2 ? io_irgLog_7 : _GEN_2640; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2642 = 6'h8 == bufInfo_1_phy_rs2 ? io_irgLog_8 : _GEN_2641; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2643 = 6'h9 == bufInfo_1_phy_rs2 ? io_irgLog_9 : _GEN_2642; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2644 = 6'ha == bufInfo_1_phy_rs2 ? io_irgLog_10 : _GEN_2643; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2645 = 6'hb == bufInfo_1_phy_rs2 ? io_irgLog_11 : _GEN_2644; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2646 = 6'hc == bufInfo_1_phy_rs2 ? io_irgLog_12 : _GEN_2645; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2647 = 6'hd == bufInfo_1_phy_rs2 ? io_irgLog_13 : _GEN_2646; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2648 = 6'he == bufInfo_1_phy_rs2 ? io_irgLog_14 : _GEN_2647; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2649 = 6'hf == bufInfo_1_phy_rs2 ? io_irgLog_15 : _GEN_2648; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2650 = 6'h10 == bufInfo_1_phy_rs2 ? io_irgLog_16 : _GEN_2649; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2651 = 6'h11 == bufInfo_1_phy_rs2 ? io_irgLog_17 : _GEN_2650; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2652 = 6'h12 == bufInfo_1_phy_rs2 ? io_irgLog_18 : _GEN_2651; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2653 = 6'h13 == bufInfo_1_phy_rs2 ? io_irgLog_19 : _GEN_2652; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2654 = 6'h14 == bufInfo_1_phy_rs2 ? io_irgLog_20 : _GEN_2653; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2655 = 6'h15 == bufInfo_1_phy_rs2 ? io_irgLog_21 : _GEN_2654; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2656 = 6'h16 == bufInfo_1_phy_rs2 ? io_irgLog_22 : _GEN_2655; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2657 = 6'h17 == bufInfo_1_phy_rs2 ? io_irgLog_23 : _GEN_2656; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2658 = 6'h18 == bufInfo_1_phy_rs2 ? io_irgLog_24 : _GEN_2657; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2659 = 6'h19 == bufInfo_1_phy_rs2 ? io_irgLog_25 : _GEN_2658; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2660 = 6'h1a == bufInfo_1_phy_rs2 ? io_irgLog_26 : _GEN_2659; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2661 = 6'h1b == bufInfo_1_phy_rs2 ? io_irgLog_27 : _GEN_2660; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2662 = 6'h1c == bufInfo_1_phy_rs2 ? io_irgLog_28 : _GEN_2661; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2663 = 6'h1d == bufInfo_1_phy_rs2 ? io_irgLog_29 : _GEN_2662; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2664 = 6'h1e == bufInfo_1_phy_rs2 ? io_irgLog_30 : _GEN_2663; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2665 = 6'h1f == bufInfo_1_phy_rs2 ? io_irgLog_31 : _GEN_2664; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2666 = 6'h20 == bufInfo_1_phy_rs2 ? io_irgLog_32 : _GEN_2665; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2667 = 6'h21 == bufInfo_1_phy_rs2 ? 2'h3 : _GEN_2666; // @[Issue.scala 222:{37,37}]
  wire  _canIOpReq_1_1_T = _GEN_2667 == 2'h3; // @[Issue.scala 222:37]
  wire  _canIOpReq_1_1_T_3 = ~isOpReady_1_1; // @[Issue.scala 224:7]
  wire  _canIOpReq_1_1_T_4 = _canIOpReq_1_1_T & _canIOpReq_1_1_T_3; // @[Issue.scala 223:23]
  wire [5:0] bufReqNum_1_1 = bufInfo_1_phy_rs2; // @[Issue.scala 145:21 63:26]
  wire  _canIOpReq_1_1_T_6 = io_irgRsp_0_valid & io_irgRsp_0_bits_phy == bufReqNum_1_1; // @[Issue.scala 224:55]
  wire  _canIOpReq_1_1_T_8 = io_irgRsp_1_valid & io_irgRsp_1_bits_phy == bufReqNum_1_1; // @[Issue.scala 224:55]
  wire  canIOpReq_1_1 = _canIOpReq_1_1_T_4 & ~(io_irgRsp_0_valid & io_irgRsp_0_bits_phy == bufReqNum_1_1 |
    io_irgRsp_1_valid & io_irgRsp_1_bits_phy == bufReqNum_1_1); // @[Issue.scala 224:24]
  wire [1:0] _GEN_2669 = 6'h1 == bufInfo_2_phy_rs1 ? io_irgLog_1 : io_irgLog_0; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2670 = 6'h2 == bufInfo_2_phy_rs1 ? io_irgLog_2 : _GEN_2669; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2671 = 6'h3 == bufInfo_2_phy_rs1 ? io_irgLog_3 : _GEN_2670; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2672 = 6'h4 == bufInfo_2_phy_rs1 ? io_irgLog_4 : _GEN_2671; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2673 = 6'h5 == bufInfo_2_phy_rs1 ? io_irgLog_5 : _GEN_2672; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2674 = 6'h6 == bufInfo_2_phy_rs1 ? io_irgLog_6 : _GEN_2673; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2675 = 6'h7 == bufInfo_2_phy_rs1 ? io_irgLog_7 : _GEN_2674; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2676 = 6'h8 == bufInfo_2_phy_rs1 ? io_irgLog_8 : _GEN_2675; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2677 = 6'h9 == bufInfo_2_phy_rs1 ? io_irgLog_9 : _GEN_2676; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2678 = 6'ha == bufInfo_2_phy_rs1 ? io_irgLog_10 : _GEN_2677; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2679 = 6'hb == bufInfo_2_phy_rs1 ? io_irgLog_11 : _GEN_2678; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2680 = 6'hc == bufInfo_2_phy_rs1 ? io_irgLog_12 : _GEN_2679; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2681 = 6'hd == bufInfo_2_phy_rs1 ? io_irgLog_13 : _GEN_2680; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2682 = 6'he == bufInfo_2_phy_rs1 ? io_irgLog_14 : _GEN_2681; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2683 = 6'hf == bufInfo_2_phy_rs1 ? io_irgLog_15 : _GEN_2682; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2684 = 6'h10 == bufInfo_2_phy_rs1 ? io_irgLog_16 : _GEN_2683; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2685 = 6'h11 == bufInfo_2_phy_rs1 ? io_irgLog_17 : _GEN_2684; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2686 = 6'h12 == bufInfo_2_phy_rs1 ? io_irgLog_18 : _GEN_2685; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2687 = 6'h13 == bufInfo_2_phy_rs1 ? io_irgLog_19 : _GEN_2686; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2688 = 6'h14 == bufInfo_2_phy_rs1 ? io_irgLog_20 : _GEN_2687; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2689 = 6'h15 == bufInfo_2_phy_rs1 ? io_irgLog_21 : _GEN_2688; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2690 = 6'h16 == bufInfo_2_phy_rs1 ? io_irgLog_22 : _GEN_2689; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2691 = 6'h17 == bufInfo_2_phy_rs1 ? io_irgLog_23 : _GEN_2690; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2692 = 6'h18 == bufInfo_2_phy_rs1 ? io_irgLog_24 : _GEN_2691; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2693 = 6'h19 == bufInfo_2_phy_rs1 ? io_irgLog_25 : _GEN_2692; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2694 = 6'h1a == bufInfo_2_phy_rs1 ? io_irgLog_26 : _GEN_2693; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2695 = 6'h1b == bufInfo_2_phy_rs1 ? io_irgLog_27 : _GEN_2694; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2696 = 6'h1c == bufInfo_2_phy_rs1 ? io_irgLog_28 : _GEN_2695; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2697 = 6'h1d == bufInfo_2_phy_rs1 ? io_irgLog_29 : _GEN_2696; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2698 = 6'h1e == bufInfo_2_phy_rs1 ? io_irgLog_30 : _GEN_2697; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2699 = 6'h1f == bufInfo_2_phy_rs1 ? io_irgLog_31 : _GEN_2698; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2700 = 6'h20 == bufInfo_2_phy_rs1 ? io_irgLog_32 : _GEN_2699; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2701 = 6'h21 == bufInfo_2_phy_rs1 ? 2'h3 : _GEN_2700; // @[Issue.scala 217:{37,37}]
  wire  _canIOpReq_2_0_T = _GEN_2701 == 2'h3; // @[Issue.scala 217:37]
  wire  _canIOpReq_2_0_T_3 = ~isOpReady_2_0; // @[Issue.scala 219:7]
  wire  _canIOpReq_2_0_T_4 = _canIOpReq_2_0_T & _canIOpReq_2_0_T_3; // @[Issue.scala 218:23]
  wire [5:0] bufReqNum_2_0 = bufInfo_2_phy_rs1; // @[Issue.scala 144:21 63:26]
  wire  _canIOpReq_2_0_T_6 = io_irgRsp_0_valid & io_irgRsp_0_bits_phy == bufReqNum_2_0; // @[Issue.scala 219:55]
  wire  _canIOpReq_2_0_T_8 = io_irgRsp_1_valid & io_irgRsp_1_bits_phy == bufReqNum_2_0; // @[Issue.scala 219:55]
  wire  canIOpReq_2_0 = _canIOpReq_2_0_T_4 & ~(io_irgRsp_0_valid & io_irgRsp_0_bits_phy == bufReqNum_2_0 |
    io_irgRsp_1_valid & io_irgRsp_1_bits_phy == bufReqNum_2_0); // @[Issue.scala 219:24]
  wire [1:0] _GEN_2703 = 6'h1 == bufInfo_2_phy_rs2 ? io_irgLog_1 : io_irgLog_0; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2704 = 6'h2 == bufInfo_2_phy_rs2 ? io_irgLog_2 : _GEN_2703; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2705 = 6'h3 == bufInfo_2_phy_rs2 ? io_irgLog_3 : _GEN_2704; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2706 = 6'h4 == bufInfo_2_phy_rs2 ? io_irgLog_4 : _GEN_2705; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2707 = 6'h5 == bufInfo_2_phy_rs2 ? io_irgLog_5 : _GEN_2706; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2708 = 6'h6 == bufInfo_2_phy_rs2 ? io_irgLog_6 : _GEN_2707; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2709 = 6'h7 == bufInfo_2_phy_rs2 ? io_irgLog_7 : _GEN_2708; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2710 = 6'h8 == bufInfo_2_phy_rs2 ? io_irgLog_8 : _GEN_2709; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2711 = 6'h9 == bufInfo_2_phy_rs2 ? io_irgLog_9 : _GEN_2710; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2712 = 6'ha == bufInfo_2_phy_rs2 ? io_irgLog_10 : _GEN_2711; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2713 = 6'hb == bufInfo_2_phy_rs2 ? io_irgLog_11 : _GEN_2712; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2714 = 6'hc == bufInfo_2_phy_rs2 ? io_irgLog_12 : _GEN_2713; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2715 = 6'hd == bufInfo_2_phy_rs2 ? io_irgLog_13 : _GEN_2714; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2716 = 6'he == bufInfo_2_phy_rs2 ? io_irgLog_14 : _GEN_2715; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2717 = 6'hf == bufInfo_2_phy_rs2 ? io_irgLog_15 : _GEN_2716; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2718 = 6'h10 == bufInfo_2_phy_rs2 ? io_irgLog_16 : _GEN_2717; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2719 = 6'h11 == bufInfo_2_phy_rs2 ? io_irgLog_17 : _GEN_2718; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2720 = 6'h12 == bufInfo_2_phy_rs2 ? io_irgLog_18 : _GEN_2719; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2721 = 6'h13 == bufInfo_2_phy_rs2 ? io_irgLog_19 : _GEN_2720; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2722 = 6'h14 == bufInfo_2_phy_rs2 ? io_irgLog_20 : _GEN_2721; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2723 = 6'h15 == bufInfo_2_phy_rs2 ? io_irgLog_21 : _GEN_2722; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2724 = 6'h16 == bufInfo_2_phy_rs2 ? io_irgLog_22 : _GEN_2723; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2725 = 6'h17 == bufInfo_2_phy_rs2 ? io_irgLog_23 : _GEN_2724; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2726 = 6'h18 == bufInfo_2_phy_rs2 ? io_irgLog_24 : _GEN_2725; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2727 = 6'h19 == bufInfo_2_phy_rs2 ? io_irgLog_25 : _GEN_2726; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2728 = 6'h1a == bufInfo_2_phy_rs2 ? io_irgLog_26 : _GEN_2727; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2729 = 6'h1b == bufInfo_2_phy_rs2 ? io_irgLog_27 : _GEN_2728; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2730 = 6'h1c == bufInfo_2_phy_rs2 ? io_irgLog_28 : _GEN_2729; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2731 = 6'h1d == bufInfo_2_phy_rs2 ? io_irgLog_29 : _GEN_2730; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2732 = 6'h1e == bufInfo_2_phy_rs2 ? io_irgLog_30 : _GEN_2731; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2733 = 6'h1f == bufInfo_2_phy_rs2 ? io_irgLog_31 : _GEN_2732; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2734 = 6'h20 == bufInfo_2_phy_rs2 ? io_irgLog_32 : _GEN_2733; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2735 = 6'h21 == bufInfo_2_phy_rs2 ? 2'h3 : _GEN_2734; // @[Issue.scala 222:{37,37}]
  wire  _canIOpReq_2_1_T = _GEN_2735 == 2'h3; // @[Issue.scala 222:37]
  wire  _canIOpReq_2_1_T_3 = ~isOpReady_2_1; // @[Issue.scala 224:7]
  wire  _canIOpReq_2_1_T_4 = _canIOpReq_2_1_T & _canIOpReq_2_1_T_3; // @[Issue.scala 223:23]
  wire [5:0] bufReqNum_2_1 = bufInfo_2_phy_rs2; // @[Issue.scala 145:21 63:26]
  wire  _canIOpReq_2_1_T_6 = io_irgRsp_0_valid & io_irgRsp_0_bits_phy == bufReqNum_2_1; // @[Issue.scala 224:55]
  wire  _canIOpReq_2_1_T_8 = io_irgRsp_1_valid & io_irgRsp_1_bits_phy == bufReqNum_2_1; // @[Issue.scala 224:55]
  wire  canIOpReq_2_1 = _canIOpReq_2_1_T_4 & ~(io_irgRsp_0_valid & io_irgRsp_0_bits_phy == bufReqNum_2_1 |
    io_irgRsp_1_valid & io_irgRsp_1_bits_phy == bufReqNum_2_1); // @[Issue.scala 224:24]
  wire [1:0] _GEN_2737 = 6'h1 == bufInfo_3_phy_rs1 ? io_irgLog_1 : io_irgLog_0; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2738 = 6'h2 == bufInfo_3_phy_rs1 ? io_irgLog_2 : _GEN_2737; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2739 = 6'h3 == bufInfo_3_phy_rs1 ? io_irgLog_3 : _GEN_2738; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2740 = 6'h4 == bufInfo_3_phy_rs1 ? io_irgLog_4 : _GEN_2739; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2741 = 6'h5 == bufInfo_3_phy_rs1 ? io_irgLog_5 : _GEN_2740; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2742 = 6'h6 == bufInfo_3_phy_rs1 ? io_irgLog_6 : _GEN_2741; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2743 = 6'h7 == bufInfo_3_phy_rs1 ? io_irgLog_7 : _GEN_2742; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2744 = 6'h8 == bufInfo_3_phy_rs1 ? io_irgLog_8 : _GEN_2743; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2745 = 6'h9 == bufInfo_3_phy_rs1 ? io_irgLog_9 : _GEN_2744; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2746 = 6'ha == bufInfo_3_phy_rs1 ? io_irgLog_10 : _GEN_2745; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2747 = 6'hb == bufInfo_3_phy_rs1 ? io_irgLog_11 : _GEN_2746; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2748 = 6'hc == bufInfo_3_phy_rs1 ? io_irgLog_12 : _GEN_2747; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2749 = 6'hd == bufInfo_3_phy_rs1 ? io_irgLog_13 : _GEN_2748; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2750 = 6'he == bufInfo_3_phy_rs1 ? io_irgLog_14 : _GEN_2749; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2751 = 6'hf == bufInfo_3_phy_rs1 ? io_irgLog_15 : _GEN_2750; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2752 = 6'h10 == bufInfo_3_phy_rs1 ? io_irgLog_16 : _GEN_2751; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2753 = 6'h11 == bufInfo_3_phy_rs1 ? io_irgLog_17 : _GEN_2752; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2754 = 6'h12 == bufInfo_3_phy_rs1 ? io_irgLog_18 : _GEN_2753; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2755 = 6'h13 == bufInfo_3_phy_rs1 ? io_irgLog_19 : _GEN_2754; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2756 = 6'h14 == bufInfo_3_phy_rs1 ? io_irgLog_20 : _GEN_2755; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2757 = 6'h15 == bufInfo_3_phy_rs1 ? io_irgLog_21 : _GEN_2756; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2758 = 6'h16 == bufInfo_3_phy_rs1 ? io_irgLog_22 : _GEN_2757; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2759 = 6'h17 == bufInfo_3_phy_rs1 ? io_irgLog_23 : _GEN_2758; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2760 = 6'h18 == bufInfo_3_phy_rs1 ? io_irgLog_24 : _GEN_2759; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2761 = 6'h19 == bufInfo_3_phy_rs1 ? io_irgLog_25 : _GEN_2760; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2762 = 6'h1a == bufInfo_3_phy_rs1 ? io_irgLog_26 : _GEN_2761; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2763 = 6'h1b == bufInfo_3_phy_rs1 ? io_irgLog_27 : _GEN_2762; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2764 = 6'h1c == bufInfo_3_phy_rs1 ? io_irgLog_28 : _GEN_2763; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2765 = 6'h1d == bufInfo_3_phy_rs1 ? io_irgLog_29 : _GEN_2764; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2766 = 6'h1e == bufInfo_3_phy_rs1 ? io_irgLog_30 : _GEN_2765; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2767 = 6'h1f == bufInfo_3_phy_rs1 ? io_irgLog_31 : _GEN_2766; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2768 = 6'h20 == bufInfo_3_phy_rs1 ? io_irgLog_32 : _GEN_2767; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_2769 = 6'h21 == bufInfo_3_phy_rs1 ? 2'h3 : _GEN_2768; // @[Issue.scala 217:{37,37}]
  wire  _canIOpReq_3_0_T = _GEN_2769 == 2'h3; // @[Issue.scala 217:37]
  wire  _canIOpReq_3_0_T_3 = ~isOpReady_3_0; // @[Issue.scala 219:7]
  wire  _canIOpReq_3_0_T_4 = _canIOpReq_3_0_T & _canIOpReq_3_0_T_3; // @[Issue.scala 218:23]
  wire [5:0] bufReqNum_3_0 = bufInfo_3_phy_rs1; // @[Issue.scala 144:21 63:26]
  wire  _canIOpReq_3_0_T_6 = io_irgRsp_0_valid & io_irgRsp_0_bits_phy == bufReqNum_3_0; // @[Issue.scala 219:55]
  wire  _canIOpReq_3_0_T_8 = io_irgRsp_1_valid & io_irgRsp_1_bits_phy == bufReqNum_3_0; // @[Issue.scala 219:55]
  wire  canIOpReq_3_0 = _canIOpReq_3_0_T_4 & ~(io_irgRsp_0_valid & io_irgRsp_0_bits_phy == bufReqNum_3_0 |
    io_irgRsp_1_valid & io_irgRsp_1_bits_phy == bufReqNum_3_0); // @[Issue.scala 219:24]
  wire [1:0] _GEN_2771 = 6'h1 == bufInfo_3_phy_rs2 ? io_irgLog_1 : io_irgLog_0; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2772 = 6'h2 == bufInfo_3_phy_rs2 ? io_irgLog_2 : _GEN_2771; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2773 = 6'h3 == bufInfo_3_phy_rs2 ? io_irgLog_3 : _GEN_2772; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2774 = 6'h4 == bufInfo_3_phy_rs2 ? io_irgLog_4 : _GEN_2773; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2775 = 6'h5 == bufInfo_3_phy_rs2 ? io_irgLog_5 : _GEN_2774; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2776 = 6'h6 == bufInfo_3_phy_rs2 ? io_irgLog_6 : _GEN_2775; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2777 = 6'h7 == bufInfo_3_phy_rs2 ? io_irgLog_7 : _GEN_2776; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2778 = 6'h8 == bufInfo_3_phy_rs2 ? io_irgLog_8 : _GEN_2777; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2779 = 6'h9 == bufInfo_3_phy_rs2 ? io_irgLog_9 : _GEN_2778; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2780 = 6'ha == bufInfo_3_phy_rs2 ? io_irgLog_10 : _GEN_2779; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2781 = 6'hb == bufInfo_3_phy_rs2 ? io_irgLog_11 : _GEN_2780; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2782 = 6'hc == bufInfo_3_phy_rs2 ? io_irgLog_12 : _GEN_2781; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2783 = 6'hd == bufInfo_3_phy_rs2 ? io_irgLog_13 : _GEN_2782; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2784 = 6'he == bufInfo_3_phy_rs2 ? io_irgLog_14 : _GEN_2783; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2785 = 6'hf == bufInfo_3_phy_rs2 ? io_irgLog_15 : _GEN_2784; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2786 = 6'h10 == bufInfo_3_phy_rs2 ? io_irgLog_16 : _GEN_2785; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2787 = 6'h11 == bufInfo_3_phy_rs2 ? io_irgLog_17 : _GEN_2786; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2788 = 6'h12 == bufInfo_3_phy_rs2 ? io_irgLog_18 : _GEN_2787; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2789 = 6'h13 == bufInfo_3_phy_rs2 ? io_irgLog_19 : _GEN_2788; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2790 = 6'h14 == bufInfo_3_phy_rs2 ? io_irgLog_20 : _GEN_2789; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2791 = 6'h15 == bufInfo_3_phy_rs2 ? io_irgLog_21 : _GEN_2790; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2792 = 6'h16 == bufInfo_3_phy_rs2 ? io_irgLog_22 : _GEN_2791; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2793 = 6'h17 == bufInfo_3_phy_rs2 ? io_irgLog_23 : _GEN_2792; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2794 = 6'h18 == bufInfo_3_phy_rs2 ? io_irgLog_24 : _GEN_2793; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2795 = 6'h19 == bufInfo_3_phy_rs2 ? io_irgLog_25 : _GEN_2794; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2796 = 6'h1a == bufInfo_3_phy_rs2 ? io_irgLog_26 : _GEN_2795; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2797 = 6'h1b == bufInfo_3_phy_rs2 ? io_irgLog_27 : _GEN_2796; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2798 = 6'h1c == bufInfo_3_phy_rs2 ? io_irgLog_28 : _GEN_2797; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2799 = 6'h1d == bufInfo_3_phy_rs2 ? io_irgLog_29 : _GEN_2798; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2800 = 6'h1e == bufInfo_3_phy_rs2 ? io_irgLog_30 : _GEN_2799; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2801 = 6'h1f == bufInfo_3_phy_rs2 ? io_irgLog_31 : _GEN_2800; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2802 = 6'h20 == bufInfo_3_phy_rs2 ? io_irgLog_32 : _GEN_2801; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_2803 = 6'h21 == bufInfo_3_phy_rs2 ? 2'h3 : _GEN_2802; // @[Issue.scala 222:{37,37}]
  wire  _canIOpReq_3_1_T = _GEN_2803 == 2'h3; // @[Issue.scala 222:37]
  wire  _canIOpReq_3_1_T_3 = ~isOpReady_3_1; // @[Issue.scala 224:7]
  wire  _canIOpReq_3_1_T_4 = _canIOpReq_3_1_T & _canIOpReq_3_1_T_3; // @[Issue.scala 223:23]
  wire [5:0] bufReqNum_3_1 = bufInfo_3_phy_rs2; // @[Issue.scala 145:21 63:26]
  wire  _canIOpReq_3_1_T_6 = io_irgRsp_0_valid & io_irgRsp_0_bits_phy == bufReqNum_3_1; // @[Issue.scala 224:55]
  wire  _canIOpReq_3_1_T_8 = io_irgRsp_1_valid & io_irgRsp_1_bits_phy == bufReqNum_3_1; // @[Issue.scala 224:55]
  wire  canIOpReq_3_1 = _canIOpReq_3_1_T_4 & ~(io_irgRsp_0_valid & io_irgRsp_0_bits_phy == bufReqNum_3_1 |
    io_irgRsp_1_valid & io_irgRsp_1_bits_phy == bufReqNum_3_1); // @[Issue.scala 224:24]
  wire [1:0] _GEN_2805 = 6'h1 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_1 : io_irgLog_0; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2806 = 6'h2 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_2 : _GEN_2805; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2807 = 6'h3 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_3 : _GEN_2806; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2808 = 6'h4 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_4 : _GEN_2807; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2809 = 6'h5 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_5 : _GEN_2808; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2810 = 6'h6 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_6 : _GEN_2809; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2811 = 6'h7 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_7 : _GEN_2810; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2812 = 6'h8 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_8 : _GEN_2811; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2813 = 6'h9 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_9 : _GEN_2812; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2814 = 6'ha == io_dptReq_0_bits_phy_rs1 ? io_irgLog_10 : _GEN_2813; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2815 = 6'hb == io_dptReq_0_bits_phy_rs1 ? io_irgLog_11 : _GEN_2814; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2816 = 6'hc == io_dptReq_0_bits_phy_rs1 ? io_irgLog_12 : _GEN_2815; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2817 = 6'hd == io_dptReq_0_bits_phy_rs1 ? io_irgLog_13 : _GEN_2816; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2818 = 6'he == io_dptReq_0_bits_phy_rs1 ? io_irgLog_14 : _GEN_2817; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2819 = 6'hf == io_dptReq_0_bits_phy_rs1 ? io_irgLog_15 : _GEN_2818; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2820 = 6'h10 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_16 : _GEN_2819; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2821 = 6'h11 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_17 : _GEN_2820; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2822 = 6'h12 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_18 : _GEN_2821; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2823 = 6'h13 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_19 : _GEN_2822; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2824 = 6'h14 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_20 : _GEN_2823; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2825 = 6'h15 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_21 : _GEN_2824; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2826 = 6'h16 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_22 : _GEN_2825; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2827 = 6'h17 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_23 : _GEN_2826; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2828 = 6'h18 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_24 : _GEN_2827; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2829 = 6'h19 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_25 : _GEN_2828; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2830 = 6'h1a == io_dptReq_0_bits_phy_rs1 ? io_irgLog_26 : _GEN_2829; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2831 = 6'h1b == io_dptReq_0_bits_phy_rs1 ? io_irgLog_27 : _GEN_2830; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2832 = 6'h1c == io_dptReq_0_bits_phy_rs1 ? io_irgLog_28 : _GEN_2831; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2833 = 6'h1d == io_dptReq_0_bits_phy_rs1 ? io_irgLog_29 : _GEN_2832; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2834 = 6'h1e == io_dptReq_0_bits_phy_rs1 ? io_irgLog_30 : _GEN_2833; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2835 = 6'h1f == io_dptReq_0_bits_phy_rs1 ? io_irgLog_31 : _GEN_2834; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2836 = 6'h20 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_32 : _GEN_2835; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_2837 = 6'h21 == io_dptReq_0_bits_phy_rs1 ? 2'h3 : _GEN_2836; // @[Issue.scala 232:{44,44}]
  wire  _canIOpPostReq_0_0_T_1 = io_dptReq_0_bits_phy_rs1 != 6'h21; // @[Issue.scala 233:33]
  wire  _canIOpPostReq_0_0_T_2 = _GEN_2837 == 2'h3 & _canIOpPostReq_0_0_T_1; // @[Issue.scala 232:56]
  wire  _canIOpPostReq_0_0_T_6 = io_dptReq_0_bits_fpu_isa_fmadd_s | io_dptReq_0_bits_fpu_isa_fmsub_s |
    io_dptReq_0_bits_fpu_isa_fnmsub_s | io_dptReq_0_bits_fpu_isa_fnmadd_s | io_dptReq_0_bits_fpu_isa_fmadd_d; // @[riscv_isa.scala 391:51]
  wire  _canIOpPostReq_0_0_T_10 = _canIOpPostReq_0_0_T_6 | io_dptReq_0_bits_fpu_isa_fmsub_d |
    io_dptReq_0_bits_fpu_isa_fnmsub_d | io_dptReq_0_bits_fpu_isa_fnmadd_d | io_dptReq_0_bits_fpu_isa_fadd_s; // @[riscv_isa.scala 392:51]
  wire  _canIOpPostReq_0_0_T_15 = _canIOpPostReq_0_0_T_10 | io_dptReq_0_bits_fpu_isa_fsub_s |
    io_dptReq_0_bits_fpu_isa_fmul_s | io_dptReq_0_bits_fpu_isa_fdiv_s | io_dptReq_0_bits_fpu_isa_fsqrt_s |
    io_dptReq_0_bits_fpu_isa_fadd_d; // @[riscv_isa.scala 393:63]
  wire  _canIOpPostReq_0_0_T_20 = _canIOpPostReq_0_0_T_15 | io_dptReq_0_bits_fpu_isa_fsub_d |
    io_dptReq_0_bits_fpu_isa_fmul_d | io_dptReq_0_bits_fpu_isa_fdiv_d | io_dptReq_0_bits_fpu_isa_fsqrt_d |
    io_dptReq_0_bits_fpu_isa_fsgnj_s; // @[riscv_isa.scala 394:63]
  wire  _canIOpPostReq_0_0_T_23 = _canIOpPostReq_0_0_T_20 | io_dptReq_0_bits_fpu_isa_fsgnjn_s |
    io_dptReq_0_bits_fpu_isa_fsgnjx_s | io_dptReq_0_bits_fpu_isa_fsgnj_d; // @[riscv_isa.scala 395:39]
  wire  _canIOpPostReq_0_0_T_26 = _canIOpPostReq_0_0_T_23 | io_dptReq_0_bits_fpu_isa_fsgnjn_d |
    io_dptReq_0_bits_fpu_isa_fsgnjx_d | io_dptReq_0_bits_fpu_isa_fmin_s; // @[riscv_isa.scala 396:39]
  wire  _canIOpPostReq_0_0_T_30 = _canIOpPostReq_0_0_T_26 | io_dptReq_0_bits_fpu_isa_fmax_s |
    io_dptReq_0_bits_fpu_isa_fmin_d | io_dptReq_0_bits_fpu_isa_fmax_d | io_dptReq_0_bits_fpu_isa_fmv_x_w; // @[riscv_isa.scala 397:51]
  wire  _canIOpPostReq_0_0_T_32 = _canIOpPostReq_0_0_T_30 | io_dptReq_0_bits_fpu_isa_fmv_x_d |
    io_dptReq_0_bits_fpu_isa_feq_s; // @[riscv_isa.scala 398:27]
  wire  _canIOpPostReq_0_0_T_35 = _canIOpPostReq_0_0_T_32 | io_dptReq_0_bits_fpu_isa_flt_s |
    io_dptReq_0_bits_fpu_isa_fle_s | io_dptReq_0_bits_fpu_isa_feq_d; // @[riscv_isa.scala 399:39]
  wire  _canIOpPostReq_0_0_T_38 = _canIOpPostReq_0_0_T_35 | io_dptReq_0_bits_fpu_isa_flt_d |
    io_dptReq_0_bits_fpu_isa_fle_d | io_dptReq_0_bits_fpu_isa_fclass_s; // @[riscv_isa.scala 400:39]
  wire  _canIOpPostReq_0_0_T_40 = _canIOpPostReq_0_0_T_38 | io_dptReq_0_bits_fpu_isa_fclass_d |
    io_dptReq_0_bits_fpu_isa_fcvt_w_s; // @[riscv_isa.scala 401:27]
  wire  _canIOpPostReq_0_0_T_44 = _canIOpPostReq_0_0_T_40 | io_dptReq_0_bits_fpu_isa_fcvt_wu_s |
    io_dptReq_0_bits_fpu_isa_fcvt_l_s | io_dptReq_0_bits_fpu_isa_fcvt_lu_s | io_dptReq_0_bits_fpu_isa_fcvt_w_d; // @[riscv_isa.scala 402:51]
  wire  _canIOpPostReq_0_0_T_48 = _canIOpPostReq_0_0_T_44 | io_dptReq_0_bits_fpu_isa_fcvt_wu_d |
    io_dptReq_0_bits_fpu_isa_fcvt_l_d | io_dptReq_0_bits_fpu_isa_fcvt_lu_d | io_dptReq_0_bits_fpu_isa_fcvt_s_d; // @[riscv_isa.scala 403:51]
  wire  _canIOpPostReq_0_0_T_49 = _canIOpPostReq_0_0_T_48 | io_dptReq_0_bits_fpu_isa_fcvt_d_s; // @[riscv_isa.scala 404:15]
  wire  _canIOpPostReq_0_0_T_50 = ~_canIOpPostReq_0_0_T_49; // @[Issue.scala 234:7]
  wire  canIOpPostReq_0_0 = _canIOpPostReq_0_0_T_2 & _canIOpPostReq_0_0_T_50; // @[Issue.scala 233:50]
  wire [1:0] _GEN_2839 = 6'h1 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_1 : io_irgLog_0; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2840 = 6'h2 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_2 : _GEN_2839; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2841 = 6'h3 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_3 : _GEN_2840; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2842 = 6'h4 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_4 : _GEN_2841; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2843 = 6'h5 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_5 : _GEN_2842; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2844 = 6'h6 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_6 : _GEN_2843; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2845 = 6'h7 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_7 : _GEN_2844; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2846 = 6'h8 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_8 : _GEN_2845; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2847 = 6'h9 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_9 : _GEN_2846; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2848 = 6'ha == io_dptReq_0_bits_phy_rs2 ? io_irgLog_10 : _GEN_2847; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2849 = 6'hb == io_dptReq_0_bits_phy_rs2 ? io_irgLog_11 : _GEN_2848; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2850 = 6'hc == io_dptReq_0_bits_phy_rs2 ? io_irgLog_12 : _GEN_2849; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2851 = 6'hd == io_dptReq_0_bits_phy_rs2 ? io_irgLog_13 : _GEN_2850; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2852 = 6'he == io_dptReq_0_bits_phy_rs2 ? io_irgLog_14 : _GEN_2851; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2853 = 6'hf == io_dptReq_0_bits_phy_rs2 ? io_irgLog_15 : _GEN_2852; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2854 = 6'h10 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_16 : _GEN_2853; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2855 = 6'h11 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_17 : _GEN_2854; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2856 = 6'h12 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_18 : _GEN_2855; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2857 = 6'h13 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_19 : _GEN_2856; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2858 = 6'h14 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_20 : _GEN_2857; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2859 = 6'h15 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_21 : _GEN_2858; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2860 = 6'h16 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_22 : _GEN_2859; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2861 = 6'h17 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_23 : _GEN_2860; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2862 = 6'h18 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_24 : _GEN_2861; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2863 = 6'h19 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_25 : _GEN_2862; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2864 = 6'h1a == io_dptReq_0_bits_phy_rs2 ? io_irgLog_26 : _GEN_2863; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2865 = 6'h1b == io_dptReq_0_bits_phy_rs2 ? io_irgLog_27 : _GEN_2864; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2866 = 6'h1c == io_dptReq_0_bits_phy_rs2 ? io_irgLog_28 : _GEN_2865; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2867 = 6'h1d == io_dptReq_0_bits_phy_rs2 ? io_irgLog_29 : _GEN_2866; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2868 = 6'h1e == io_dptReq_0_bits_phy_rs2 ? io_irgLog_30 : _GEN_2867; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2869 = 6'h1f == io_dptReq_0_bits_phy_rs2 ? io_irgLog_31 : _GEN_2868; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2870 = 6'h20 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_32 : _GEN_2869; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_2871 = 6'h21 == io_dptReq_0_bits_phy_rs2 ? 2'h3 : _GEN_2870; // @[Issue.scala 238:{44,44}]
  wire  _canIOpPostReq_0_1_T_1 = io_dptReq_0_bits_phy_rs2 != 6'h21; // @[Issue.scala 239:33]
  wire  _canIOpPostReq_0_1_T_2 = _GEN_2871 == 2'h3 & _canIOpPostReq_0_1_T_1; // @[Issue.scala 238:56]
  wire  _canIOpPostReq_0_1_T_51 = _canIOpPostReq_0_1_T_2 & _canIOpPostReq_0_0_T_50; // @[Issue.scala 239:50]
  wire  _canIOpPostReq_0_1_T_52 = io_dptReq_0_bits_lsu_isa_fsw | io_dptReq_0_bits_lsu_isa_fsd; // @[riscv_isa.scala 164:20]
  wire  canIOpPostReq_0_1 = _canIOpPostReq_0_1_T_51 & ~_canIOpPostReq_0_1_T_52; // @[Issue.scala 240:42]
  wire  maskCondSelIRS1_0_0 = _entrySel_T | ~canIOpReq_0_0; // @[Issue.scala 256:49]
  wire  maskCondSelIRS2_0_0 = _entrySel_T | ~canIOpReq_0_1; // @[Issue.scala 257:49]
  wire  maskCondSelIRS1_0_1 = _entrySel_T_1 | ~canIOpReq_1_0; // @[Issue.scala 256:49]
  wire  maskCondSelIRS2_0_1 = _entrySel_T_1 | ~canIOpReq_1_1; // @[Issue.scala 257:49]
  wire  maskCondSelIRS1_0_2 = _entrySel_T_2 | ~canIOpReq_2_0; // @[Issue.scala 256:49]
  wire  maskCondSelIRS2_0_2 = _entrySel_T_2 | ~canIOpReq_2_1; // @[Issue.scala 257:49]
  wire  maskCondSelIRS1_0_3 = _io_dptReq_0_ready_T_3 | ~canIOpReq_3_0; // @[Issue.scala 256:49]
  wire  maskCondSelIRS2_0_3 = _io_dptReq_0_ready_T_3 | ~canIOpReq_3_1; // @[Issue.scala 257:49]
  wire  _maskCondSelIRS1_0_4_T_1 = ~_T; // @[Issue.scala 260:45]
  wire  maskCondSelIRS1_0_4 = ~_T | ~canIOpPostReq_0_0; // @[Issue.scala 260:64]
  wire  maskCondSelIRS2_0_4 = _maskCondSelIRS1_0_4_T_1 | ~canIOpPostReq_0_1; // @[Issue.scala 261:64]
  wire  _matrixOut_0_0_T = ~maskCondSelIRS1_0_0; // @[Issue.scala 200:46]
  wire  matrixOut__0_0 = ageMatrixW_0_0 & ~maskCondSelIRS1_0_0 | maskCondSelIRS1_0_0; // @[Issue.scala 200:60]
  wire  _matrixOut_0_1_T = ~maskCondSelIRS1_0_1; // @[Issue.scala 200:46]
  wire  matrixOut__0_1 = ageMatrixW_0_1 & ~maskCondSelIRS1_0_1 | maskCondSelIRS1_0_0; // @[Issue.scala 200:60]
  wire  _matrixOut_0_2_T = ~maskCondSelIRS1_0_2; // @[Issue.scala 200:46]
  wire  matrixOut__0_2 = ageMatrixW_0_2 & ~maskCondSelIRS1_0_2 | maskCondSelIRS1_0_0; // @[Issue.scala 200:60]
  wire  _matrixOut_0_3_T = ~maskCondSelIRS1_0_3; // @[Issue.scala 200:46]
  wire  matrixOut__0_3 = ageMatrixW_0_3 & ~maskCondSelIRS1_0_3 | maskCondSelIRS1_0_0; // @[Issue.scala 200:60]
  wire  _matrixOut_0_4_T = ~maskCondSelIRS1_0_4; // @[Issue.scala 200:46]
  wire  matrixOut__1_0 = ageMatrixR_1_0 & ~maskCondSelIRS1_0_0 | maskCondSelIRS1_0_1; // @[Issue.scala 200:60]
  wire  matrixOut__1_1 = ageMatrixW_1_1 & ~maskCondSelIRS1_0_1 | maskCondSelIRS1_0_1; // @[Issue.scala 200:60]
  wire  matrixOut__1_2 = ageMatrixW_1_2 & ~maskCondSelIRS1_0_2 | maskCondSelIRS1_0_1; // @[Issue.scala 200:60]
  wire  matrixOut__1_3 = ageMatrixW_1_3 & ~maskCondSelIRS1_0_3 | maskCondSelIRS1_0_1; // @[Issue.scala 200:60]
  wire  matrixOut__2_0 = ageMatrixR_2_0 & ~maskCondSelIRS1_0_0 | maskCondSelIRS1_0_2; // @[Issue.scala 200:60]
  wire  matrixOut__2_1 = ageMatrixR_2_1 & ~maskCondSelIRS1_0_1 | maskCondSelIRS1_0_2; // @[Issue.scala 200:60]
  wire  matrixOut__2_2 = ageMatrixW_2_2 & ~maskCondSelIRS1_0_2 | maskCondSelIRS1_0_2; // @[Issue.scala 200:60]
  wire  matrixOut__2_3 = ageMatrixW_2_3 & ~maskCondSelIRS1_0_3 | maskCondSelIRS1_0_2; // @[Issue.scala 200:60]
  wire  matrixOut__3_0 = ageMatrixR_3_0 & ~maskCondSelIRS1_0_0 | maskCondSelIRS1_0_3; // @[Issue.scala 200:60]
  wire  matrixOut__3_1 = ageMatrixR_3_1 & ~maskCondSelIRS1_0_1 | maskCondSelIRS1_0_3; // @[Issue.scala 200:60]
  wire  matrixOut__3_2 = ageMatrixR_3_2 & ~maskCondSelIRS1_0_2 | maskCondSelIRS1_0_3; // @[Issue.scala 200:60]
  wire  matrixOut__3_3 = ageMatrixW_3_3 & ~maskCondSelIRS1_0_3 | maskCondSelIRS1_0_3; // @[Issue.scala 200:60]
  wire  matrixOut__4_0 = ~maskCondSelIRS1_0_0 | maskCondSelIRS1_0_4; // @[Issue.scala 200:60]
  wire  matrixOut__4_1 = ~maskCondSelIRS1_0_1 | maskCondSelIRS1_0_4; // @[Issue.scala 200:60]
  wire  matrixOut__4_2 = ~maskCondSelIRS1_0_2 | maskCondSelIRS1_0_4; // @[Issue.scala 200:60]
  wire  matrixOut__4_3 = ~maskCondSelIRS1_0_3 | maskCondSelIRS1_0_4; // @[Issue.scala 200:60]
  wire  _matrixOut_0_0_T_3 = ~maskCondSelIRS2_0_0; // @[Issue.scala 200:46]
  wire  matrixOut_1_0_0 = ageMatrixW_0_0 & ~maskCondSelIRS2_0_0 | maskCondSelIRS2_0_0; // @[Issue.scala 200:60]
  wire  _matrixOut_0_1_T_3 = ~maskCondSelIRS2_0_1; // @[Issue.scala 200:46]
  wire  matrixOut_1_0_1 = ageMatrixW_0_1 & ~maskCondSelIRS2_0_1 | maskCondSelIRS2_0_0; // @[Issue.scala 200:60]
  wire  _matrixOut_0_2_T_3 = ~maskCondSelIRS2_0_2; // @[Issue.scala 200:46]
  wire  matrixOut_1_0_2 = ageMatrixW_0_2 & ~maskCondSelIRS2_0_2 | maskCondSelIRS2_0_0; // @[Issue.scala 200:60]
  wire  _matrixOut_0_3_T_3 = ~maskCondSelIRS2_0_3; // @[Issue.scala 200:46]
  wire  matrixOut_1_0_3 = ageMatrixW_0_3 & ~maskCondSelIRS2_0_3 | maskCondSelIRS2_0_0; // @[Issue.scala 200:60]
  wire  _matrixOut_0_4_T_3 = ~maskCondSelIRS2_0_4; // @[Issue.scala 200:46]
  wire  matrixOut_1_1_0 = ageMatrixR_1_0 & ~maskCondSelIRS2_0_0 | maskCondSelIRS2_0_1; // @[Issue.scala 200:60]
  wire  matrixOut_1_1_1 = ageMatrixW_1_1 & ~maskCondSelIRS2_0_1 | maskCondSelIRS2_0_1; // @[Issue.scala 200:60]
  wire  matrixOut_1_1_2 = ageMatrixW_1_2 & ~maskCondSelIRS2_0_2 | maskCondSelIRS2_0_1; // @[Issue.scala 200:60]
  wire  matrixOut_1_1_3 = ageMatrixW_1_3 & ~maskCondSelIRS2_0_3 | maskCondSelIRS2_0_1; // @[Issue.scala 200:60]
  wire  matrixOut_1_2_0 = ageMatrixR_2_0 & ~maskCondSelIRS2_0_0 | maskCondSelIRS2_0_2; // @[Issue.scala 200:60]
  wire  matrixOut_1_2_1 = ageMatrixR_2_1 & ~maskCondSelIRS2_0_1 | maskCondSelIRS2_0_2; // @[Issue.scala 200:60]
  wire  matrixOut_1_2_2 = ageMatrixW_2_2 & ~maskCondSelIRS2_0_2 | maskCondSelIRS2_0_2; // @[Issue.scala 200:60]
  wire  matrixOut_1_2_3 = ageMatrixW_2_3 & ~maskCondSelIRS2_0_3 | maskCondSelIRS2_0_2; // @[Issue.scala 200:60]
  wire  matrixOut_1_3_0 = ageMatrixR_3_0 & ~maskCondSelIRS2_0_0 | maskCondSelIRS2_0_3; // @[Issue.scala 200:60]
  wire  matrixOut_1_3_1 = ageMatrixR_3_1 & ~maskCondSelIRS2_0_1 | maskCondSelIRS2_0_3; // @[Issue.scala 200:60]
  wire  matrixOut_1_3_2 = ageMatrixR_3_2 & ~maskCondSelIRS2_0_2 | maskCondSelIRS2_0_3; // @[Issue.scala 200:60]
  wire  matrixOut_1_3_3 = ageMatrixW_3_3 & ~maskCondSelIRS2_0_3 | maskCondSelIRS2_0_3; // @[Issue.scala 200:60]
  wire  matrixOut_1_4_0 = ~maskCondSelIRS2_0_0 | maskCondSelIRS2_0_4; // @[Issue.scala 200:60]
  wire  matrixOut_1_4_1 = ~maskCondSelIRS2_0_1 | maskCondSelIRS2_0_4; // @[Issue.scala 200:60]
  wire  matrixOut_1_4_2 = ~maskCondSelIRS2_0_2 | maskCondSelIRS2_0_4; // @[Issue.scala 200:60]
  wire  matrixOut_1_4_3 = ~maskCondSelIRS2_0_3 | maskCondSelIRS2_0_4; // @[Issue.scala 200:60]
  wire  _T_61 = matrixOut__0_0 & matrixOut__0_1 & matrixOut__0_2 & matrixOut__0_3 & maskCondSelIRS1_0_0 & (
    matrixOut__1_0 & matrixOut__1_1 & matrixOut__1_2 & matrixOut__1_3 & maskCondSelIRS1_0_1) & (matrixOut__2_0 &
    matrixOut__2_1 & matrixOut__2_2 & matrixOut__2_3 & maskCondSelIRS1_0_2) & (matrixOut__3_0 & matrixOut__3_1 &
    matrixOut__3_2 & matrixOut__3_3 & maskCondSelIRS1_0_3) & (matrixOut__4_0 & matrixOut__4_1 & matrixOut__4_2 &
    matrixOut__4_3 & maskCondSelIRS1_0_4); // @[Issue.scala 277:32]
  wire  _T_71 = ~matrixOut__0_0 & ~matrixOut__0_1 & ~matrixOut__0_2 & ~matrixOut__0_3 & _matrixOut_0_0_T; // @[Issue.scala 278:66]
  wire  _T_81 = ~matrixOut__1_0 & ~matrixOut__1_1 & ~matrixOut__1_2 & ~matrixOut__1_3 & _matrixOut_0_1_T; // @[Issue.scala 278:66]
  wire  _T_91 = ~matrixOut__2_0 & ~matrixOut__2_1 & ~matrixOut__2_2 & ~matrixOut__2_3 & _matrixOut_0_2_T; // @[Issue.scala 278:66]
  wire  _T_101 = ~matrixOut__3_0 & ~matrixOut__3_1 & ~matrixOut__3_2 & ~matrixOut__3_3 & _matrixOut_0_3_T; // @[Issue.scala 278:66]
  wire  _T_111 = ~matrixOut__4_0 & ~matrixOut__4_1 & ~matrixOut__4_2 & ~matrixOut__4_3 & _matrixOut_0_4_T; // @[Issue.scala 278:66]
  wire [1:0] _T_112 = _T_71 + _T_81; // @[Bitwise.scala 51:90]
  wire [1:0] _T_114 = _T_101 + _T_111; // @[Bitwise.scala 51:90]
  wire [1:0] _GEN_422 = {{1'd0}, _T_91}; // @[Bitwise.scala 51:90]
  wire [2:0] _T_116 = _GEN_422 + _T_114; // @[Bitwise.scala 51:90]
  wire [2:0] _T_118 = _T_112 + _T_116[1:0]; // @[Bitwise.scala 51:90]
  wire  _T_120 = _T_118 == 3'h1; // @[Issue.scala 278:101]
  wire  _T_121 = matrixOut__0_0 & matrixOut__0_1 & matrixOut__0_2 & matrixOut__0_3 & maskCondSelIRS1_0_0 & (
    matrixOut__1_0 & matrixOut__1_1 & matrixOut__1_2 & matrixOut__1_3 & maskCondSelIRS1_0_1) & (matrixOut__2_0 &
    matrixOut__2_1 & matrixOut__2_2 & matrixOut__2_3 & maskCondSelIRS1_0_2) & (matrixOut__3_0 & matrixOut__3_1 &
    matrixOut__3_2 & matrixOut__3_3 & maskCondSelIRS1_0_3) & (matrixOut__4_0 & matrixOut__4_1 & matrixOut__4_2 &
    matrixOut__4_3 & maskCondSelIRS1_0_4) | _T_120; // @[Issue.scala 277:92]
  wire  _T_123 = ~reset; // @[Issue.scala 276:11]
  wire  _T_179 = matrixOut_1_0_0 & matrixOut_1_0_1 & matrixOut_1_0_2 & matrixOut_1_0_3 & maskCondSelIRS2_0_0 & (
    matrixOut_1_1_0 & matrixOut_1_1_1 & matrixOut_1_1_2 & matrixOut_1_1_3 & maskCondSelIRS2_0_1) & (matrixOut_1_2_0 &
    matrixOut_1_2_1 & matrixOut_1_2_2 & matrixOut_1_2_3 & maskCondSelIRS2_0_2) & (matrixOut_1_3_0 & matrixOut_1_3_1 &
    matrixOut_1_3_2 & matrixOut_1_3_3 & maskCondSelIRS2_0_3) & (matrixOut_1_4_0 & matrixOut_1_4_1 & matrixOut_1_4_2 &
    matrixOut_1_4_3 & maskCondSelIRS2_0_4); // @[Issue.scala 282:32]
  wire  _T_189 = ~matrixOut_1_0_0 & ~matrixOut_1_0_1 & ~matrixOut_1_0_2 & ~matrixOut_1_0_3 & _matrixOut_0_0_T_3; // @[Issue.scala 283:66]
  wire  _T_199 = ~matrixOut_1_1_0 & ~matrixOut_1_1_1 & ~matrixOut_1_1_2 & ~matrixOut_1_1_3 & _matrixOut_0_1_T_3; // @[Issue.scala 283:66]
  wire  _T_209 = ~matrixOut_1_2_0 & ~matrixOut_1_2_1 & ~matrixOut_1_2_2 & ~matrixOut_1_2_3 & _matrixOut_0_2_T_3; // @[Issue.scala 283:66]
  wire  _T_219 = ~matrixOut_1_3_0 & ~matrixOut_1_3_1 & ~matrixOut_1_3_2 & ~matrixOut_1_3_3 & _matrixOut_0_3_T_3; // @[Issue.scala 283:66]
  wire  _T_229 = ~matrixOut_1_4_0 & ~matrixOut_1_4_1 & ~matrixOut_1_4_2 & ~matrixOut_1_4_3 & _matrixOut_0_4_T_3; // @[Issue.scala 283:66]
  wire [1:0] _T_230 = _T_189 + _T_199; // @[Bitwise.scala 51:90]
  wire [1:0] _T_232 = _T_219 + _T_229; // @[Bitwise.scala 51:90]
  wire [1:0] _GEN_423 = {{1'd0}, _T_209}; // @[Bitwise.scala 51:90]
  wire [2:0] _T_234 = _GEN_423 + _T_232; // @[Bitwise.scala 51:90]
  wire [2:0] _T_236 = _T_230 + _T_234[1:0]; // @[Bitwise.scala 51:90]
  wire  _T_238 = _T_236 == 3'h1; // @[Issue.scala 283:101]
  wire  _T_239 = matrixOut_1_0_0 & matrixOut_1_0_1 & matrixOut_1_0_2 & matrixOut_1_0_3 & maskCondSelIRS2_0_0 & (
    matrixOut_1_1_0 & matrixOut_1_1_1 & matrixOut_1_1_2 & matrixOut_1_1_3 & maskCondSelIRS2_0_1) & (matrixOut_1_2_0 &
    matrixOut_1_2_1 & matrixOut_1_2_2 & matrixOut_1_2_3 & maskCondSelIRS2_0_2) & (matrixOut_1_3_0 & matrixOut_1_3_1 &
    matrixOut_1_3_2 & matrixOut_1_3_3 & maskCondSelIRS2_0_3) & (matrixOut_1_4_0 & matrixOut_1_4_1 & matrixOut_1_4_2 &
    matrixOut_1_4_3 & maskCondSelIRS2_0_4) | _T_238; // @[Issue.scala 282:93]
  wire  _rIOpNum_0_T = ~_T_61; // @[Issue.scala 313:28]
  wire [5:0] _selIRS1_0_T_50 = _T_71 ? bufReqNum_0_0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS1_0_T_51 = _T_81 ? bufReqNum_1_0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS1_0_T_55 = _selIRS1_0_T_50 | _selIRS1_0_T_51; // @[Mux.scala 27:73]
  wire [5:0] _selIRS1_0_T_52 = _T_91 ? bufReqNum_2_0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS1_0_T_56 = _selIRS1_0_T_55 | _selIRS1_0_T_52; // @[Mux.scala 27:73]
  wire [5:0] _selIRS1_0_T_53 = _T_101 ? bufReqNum_3_0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS1_0_T_57 = _selIRS1_0_T_56 | _selIRS1_0_T_53; // @[Mux.scala 27:73]
  wire [5:0] _selIRS1_0_T_54 = _T_111 ? io_dptReq_0_bits_phy_rs1 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] selIRS1_0 = _selIRS1_0_T_57 | _selIRS1_0_T_54; // @[Mux.scala 27:73]
  wire  _rIOpNum_0_T_1 = ~_T_179; // @[Issue.scala 313:68]
  wire [5:0] _selIRS2_0_T_50 = _T_189 ? bufReqNum_0_1 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS2_0_T_51 = _T_199 ? bufReqNum_1_1 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS2_0_T_55 = _selIRS2_0_T_50 | _selIRS2_0_T_51; // @[Mux.scala 27:73]
  wire [5:0] _selIRS2_0_T_52 = _T_209 ? bufReqNum_2_1 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS2_0_T_56 = _selIRS2_0_T_55 | _selIRS2_0_T_52; // @[Mux.scala 27:73]
  wire [5:0] _selIRS2_0_T_53 = _T_219 ? bufReqNum_3_1 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS2_0_T_57 = _selIRS2_0_T_56 | _selIRS2_0_T_53; // @[Mux.scala 27:73]
  wire [5:0] _selIRS2_0_T_54 = _T_229 ? io_dptReq_0_bits_phy_rs2 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] selIRS2_0 = _selIRS2_0_T_57 | _selIRS2_0_T_54; // @[Mux.scala 27:73]
  wire [5:0] _rIOpNum_0_T_2 = ~_T_179 ? selIRS2_0 : 6'h21; // @[Issue.scala 313:66]
  wire [5:0] rIOpNum_0 = ~_T_61 ? selIRS1_0 : _rIOpNum_0_T_2; // @[Issue.scala 313:26]
  wire  maskCondSelIRS1_1_0 = maskCondSelIRS1_0_0 | bufReqNum_0_0 == rIOpNum_0; // @[Issue.scala 265:62]
  wire  maskCondSelIRS2_1_0 = maskCondSelIRS2_0_0 | bufReqNum_0_1 == rIOpNum_0; // @[Issue.scala 266:62]
  wire  maskCondSelIRS1_1_1 = maskCondSelIRS1_0_1 | bufReqNum_1_0 == rIOpNum_0; // @[Issue.scala 265:62]
  wire  maskCondSelIRS2_1_1 = maskCondSelIRS2_0_1 | bufReqNum_1_1 == rIOpNum_0; // @[Issue.scala 266:62]
  wire  maskCondSelIRS1_1_2 = maskCondSelIRS1_0_2 | bufReqNum_2_0 == rIOpNum_0; // @[Issue.scala 265:62]
  wire  maskCondSelIRS2_1_2 = maskCondSelIRS2_0_2 | bufReqNum_2_1 == rIOpNum_0; // @[Issue.scala 266:62]
  wire  maskCondSelIRS1_1_3 = maskCondSelIRS1_0_3 | bufReqNum_3_0 == rIOpNum_0; // @[Issue.scala 265:62]
  wire  maskCondSelIRS2_1_3 = maskCondSelIRS2_0_3 | bufReqNum_3_1 == rIOpNum_0; // @[Issue.scala 266:62]
  wire  maskCondSelIRS1_1_4 = maskCondSelIRS1_0_4 | io_dptReq_0_bits_phy_rs1 == rIOpNum_0; // @[Issue.scala 269:80]
  wire  maskCondSelIRS2_1_4 = maskCondSelIRS2_0_4 | io_dptReq_0_bits_phy_rs2 == rIOpNum_0; // @[Issue.scala 270:80]
  wire  _matrixOut_0_0_T_6 = ~maskCondSelIRS1_1_0; // @[Issue.scala 200:46]
  wire  matrixOut_2_0_0 = ageMatrixW_0_0 & ~maskCondSelIRS1_1_0 | maskCondSelIRS1_1_0; // @[Issue.scala 200:60]
  wire  _matrixOut_0_1_T_6 = ~maskCondSelIRS1_1_1; // @[Issue.scala 200:46]
  wire  matrixOut_2_0_1 = ageMatrixW_0_1 & ~maskCondSelIRS1_1_1 | maskCondSelIRS1_1_0; // @[Issue.scala 200:60]
  wire  _matrixOut_0_2_T_6 = ~maskCondSelIRS1_1_2; // @[Issue.scala 200:46]
  wire  matrixOut_2_0_2 = ageMatrixW_0_2 & ~maskCondSelIRS1_1_2 | maskCondSelIRS1_1_0; // @[Issue.scala 200:60]
  wire  _matrixOut_0_3_T_6 = ~maskCondSelIRS1_1_3; // @[Issue.scala 200:46]
  wire  matrixOut_2_0_3 = ageMatrixW_0_3 & ~maskCondSelIRS1_1_3 | maskCondSelIRS1_1_0; // @[Issue.scala 200:60]
  wire  _matrixOut_0_4_T_6 = ~maskCondSelIRS1_1_4; // @[Issue.scala 200:46]
  wire  matrixOut_2_1_0 = ageMatrixR_1_0 & ~maskCondSelIRS1_1_0 | maskCondSelIRS1_1_1; // @[Issue.scala 200:60]
  wire  matrixOut_2_1_1 = ageMatrixW_1_1 & ~maskCondSelIRS1_1_1 | maskCondSelIRS1_1_1; // @[Issue.scala 200:60]
  wire  matrixOut_2_1_2 = ageMatrixW_1_2 & ~maskCondSelIRS1_1_2 | maskCondSelIRS1_1_1; // @[Issue.scala 200:60]
  wire  matrixOut_2_1_3 = ageMatrixW_1_3 & ~maskCondSelIRS1_1_3 | maskCondSelIRS1_1_1; // @[Issue.scala 200:60]
  wire  matrixOut_2_2_0 = ageMatrixR_2_0 & ~maskCondSelIRS1_1_0 | maskCondSelIRS1_1_2; // @[Issue.scala 200:60]
  wire  matrixOut_2_2_1 = ageMatrixR_2_1 & ~maskCondSelIRS1_1_1 | maskCondSelIRS1_1_2; // @[Issue.scala 200:60]
  wire  matrixOut_2_2_2 = ageMatrixW_2_2 & ~maskCondSelIRS1_1_2 | maskCondSelIRS1_1_2; // @[Issue.scala 200:60]
  wire  matrixOut_2_2_3 = ageMatrixW_2_3 & ~maskCondSelIRS1_1_3 | maskCondSelIRS1_1_2; // @[Issue.scala 200:60]
  wire  matrixOut_2_3_0 = ageMatrixR_3_0 & ~maskCondSelIRS1_1_0 | maskCondSelIRS1_1_3; // @[Issue.scala 200:60]
  wire  matrixOut_2_3_1 = ageMatrixR_3_1 & ~maskCondSelIRS1_1_1 | maskCondSelIRS1_1_3; // @[Issue.scala 200:60]
  wire  matrixOut_2_3_2 = ageMatrixR_3_2 & ~maskCondSelIRS1_1_2 | maskCondSelIRS1_1_3; // @[Issue.scala 200:60]
  wire  matrixOut_2_3_3 = ageMatrixW_3_3 & ~maskCondSelIRS1_1_3 | maskCondSelIRS1_1_3; // @[Issue.scala 200:60]
  wire  matrixOut_2_4_0 = ~maskCondSelIRS1_1_0 | maskCondSelIRS1_1_4; // @[Issue.scala 200:60]
  wire  matrixOut_2_4_1 = ~maskCondSelIRS1_1_1 | maskCondSelIRS1_1_4; // @[Issue.scala 200:60]
  wire  matrixOut_2_4_2 = ~maskCondSelIRS1_1_2 | maskCondSelIRS1_1_4; // @[Issue.scala 200:60]
  wire  matrixOut_2_4_3 = ~maskCondSelIRS1_1_3 | maskCondSelIRS1_1_4; // @[Issue.scala 200:60]
  wire  _matrixOut_0_0_T_9 = ~maskCondSelIRS2_1_0; // @[Issue.scala 200:46]
  wire  matrixOut_3_0_0 = ageMatrixW_0_0 & ~maskCondSelIRS2_1_0 | maskCondSelIRS2_1_0; // @[Issue.scala 200:60]
  wire  _matrixOut_0_1_T_9 = ~maskCondSelIRS2_1_1; // @[Issue.scala 200:46]
  wire  matrixOut_3_0_1 = ageMatrixW_0_1 & ~maskCondSelIRS2_1_1 | maskCondSelIRS2_1_0; // @[Issue.scala 200:60]
  wire  _matrixOut_0_2_T_9 = ~maskCondSelIRS2_1_2; // @[Issue.scala 200:46]
  wire  matrixOut_3_0_2 = ageMatrixW_0_2 & ~maskCondSelIRS2_1_2 | maskCondSelIRS2_1_0; // @[Issue.scala 200:60]
  wire  _matrixOut_0_3_T_9 = ~maskCondSelIRS2_1_3; // @[Issue.scala 200:46]
  wire  matrixOut_3_0_3 = ageMatrixW_0_3 & ~maskCondSelIRS2_1_3 | maskCondSelIRS2_1_0; // @[Issue.scala 200:60]
  wire  _matrixOut_0_4_T_9 = ~maskCondSelIRS2_1_4; // @[Issue.scala 200:46]
  wire  matrixOut_3_1_0 = ageMatrixR_1_0 & ~maskCondSelIRS2_1_0 | maskCondSelIRS2_1_1; // @[Issue.scala 200:60]
  wire  matrixOut_3_1_1 = ageMatrixW_1_1 & ~maskCondSelIRS2_1_1 | maskCondSelIRS2_1_1; // @[Issue.scala 200:60]
  wire  matrixOut_3_1_2 = ageMatrixW_1_2 & ~maskCondSelIRS2_1_2 | maskCondSelIRS2_1_1; // @[Issue.scala 200:60]
  wire  matrixOut_3_1_3 = ageMatrixW_1_3 & ~maskCondSelIRS2_1_3 | maskCondSelIRS2_1_1; // @[Issue.scala 200:60]
  wire  matrixOut_3_2_0 = ageMatrixR_2_0 & ~maskCondSelIRS2_1_0 | maskCondSelIRS2_1_2; // @[Issue.scala 200:60]
  wire  matrixOut_3_2_1 = ageMatrixR_2_1 & ~maskCondSelIRS2_1_1 | maskCondSelIRS2_1_2; // @[Issue.scala 200:60]
  wire  matrixOut_3_2_2 = ageMatrixW_2_2 & ~maskCondSelIRS2_1_2 | maskCondSelIRS2_1_2; // @[Issue.scala 200:60]
  wire  matrixOut_3_2_3 = ageMatrixW_2_3 & ~maskCondSelIRS2_1_3 | maskCondSelIRS2_1_2; // @[Issue.scala 200:60]
  wire  matrixOut_3_3_0 = ageMatrixR_3_0 & ~maskCondSelIRS2_1_0 | maskCondSelIRS2_1_3; // @[Issue.scala 200:60]
  wire  matrixOut_3_3_1 = ageMatrixR_3_1 & ~maskCondSelIRS2_1_1 | maskCondSelIRS2_1_3; // @[Issue.scala 200:60]
  wire  matrixOut_3_3_2 = ageMatrixR_3_2 & ~maskCondSelIRS2_1_2 | maskCondSelIRS2_1_3; // @[Issue.scala 200:60]
  wire  matrixOut_3_3_3 = ageMatrixW_3_3 & ~maskCondSelIRS2_1_3 | maskCondSelIRS2_1_3; // @[Issue.scala 200:60]
  wire  matrixOut_3_4_0 = ~maskCondSelIRS2_1_0 | maskCondSelIRS2_1_4; // @[Issue.scala 200:60]
  wire  matrixOut_3_4_1 = ~maskCondSelIRS2_1_1 | maskCondSelIRS2_1_4; // @[Issue.scala 200:60]
  wire  matrixOut_3_4_2 = ~maskCondSelIRS2_1_2 | maskCondSelIRS2_1_4; // @[Issue.scala 200:60]
  wire  matrixOut_3_4_3 = ~maskCondSelIRS2_1_3 | maskCondSelIRS2_1_4; // @[Issue.scala 200:60]
  wire  _T_297 = matrixOut_2_0_0 & matrixOut_2_0_1 & matrixOut_2_0_2 & matrixOut_2_0_3 & maskCondSelIRS1_1_0 & (
    matrixOut_2_1_0 & matrixOut_2_1_1 & matrixOut_2_1_2 & matrixOut_2_1_3 & maskCondSelIRS1_1_1) & (matrixOut_2_2_0 &
    matrixOut_2_2_1 & matrixOut_2_2_2 & matrixOut_2_2_3 & maskCondSelIRS1_1_2) & (matrixOut_2_3_0 & matrixOut_2_3_1 &
    matrixOut_2_3_2 & matrixOut_2_3_3 & maskCondSelIRS1_1_3) & (matrixOut_2_4_0 & matrixOut_2_4_1 & matrixOut_2_4_2 &
    matrixOut_2_4_3 & maskCondSelIRS1_1_4); // @[Issue.scala 277:32]
  wire  _T_307 = ~matrixOut_2_0_0 & ~matrixOut_2_0_1 & ~matrixOut_2_0_2 & ~matrixOut_2_0_3 & _matrixOut_0_0_T_6; // @[Issue.scala 278:66]
  wire  _T_317 = ~matrixOut_2_1_0 & ~matrixOut_2_1_1 & ~matrixOut_2_1_2 & ~matrixOut_2_1_3 & _matrixOut_0_1_T_6; // @[Issue.scala 278:66]
  wire  _T_327 = ~matrixOut_2_2_0 & ~matrixOut_2_2_1 & ~matrixOut_2_2_2 & ~matrixOut_2_2_3 & _matrixOut_0_2_T_6; // @[Issue.scala 278:66]
  wire  _T_337 = ~matrixOut_2_3_0 & ~matrixOut_2_3_1 & ~matrixOut_2_3_2 & ~matrixOut_2_3_3 & _matrixOut_0_3_T_6; // @[Issue.scala 278:66]
  wire  _T_347 = ~matrixOut_2_4_0 & ~matrixOut_2_4_1 & ~matrixOut_2_4_2 & ~matrixOut_2_4_3 & _matrixOut_0_4_T_6; // @[Issue.scala 278:66]
  wire [1:0] _T_348 = _T_307 + _T_317; // @[Bitwise.scala 51:90]
  wire [1:0] _T_350 = _T_337 + _T_347; // @[Bitwise.scala 51:90]
  wire [1:0] _GEN_424 = {{1'd0}, _T_327}; // @[Bitwise.scala 51:90]
  wire [2:0] _T_352 = _GEN_424 + _T_350; // @[Bitwise.scala 51:90]
  wire [2:0] _T_354 = _T_348 + _T_352[1:0]; // @[Bitwise.scala 51:90]
  wire  _T_356 = _T_354 == 3'h1; // @[Issue.scala 278:101]
  wire  _T_357 = matrixOut_2_0_0 & matrixOut_2_0_1 & matrixOut_2_0_2 & matrixOut_2_0_3 & maskCondSelIRS1_1_0 & (
    matrixOut_2_1_0 & matrixOut_2_1_1 & matrixOut_2_1_2 & matrixOut_2_1_3 & maskCondSelIRS1_1_1) & (matrixOut_2_2_0 &
    matrixOut_2_2_1 & matrixOut_2_2_2 & matrixOut_2_2_3 & maskCondSelIRS1_1_2) & (matrixOut_2_3_0 & matrixOut_2_3_1 &
    matrixOut_2_3_2 & matrixOut_2_3_3 & maskCondSelIRS1_1_3) & (matrixOut_2_4_0 & matrixOut_2_4_1 & matrixOut_2_4_2 &
    matrixOut_2_4_3 & maskCondSelIRS1_1_4) | _T_356; // @[Issue.scala 277:92]
  wire  _T_415 = matrixOut_3_0_0 & matrixOut_3_0_1 & matrixOut_3_0_2 & matrixOut_3_0_3 & maskCondSelIRS2_1_0 & (
    matrixOut_3_1_0 & matrixOut_3_1_1 & matrixOut_3_1_2 & matrixOut_3_1_3 & maskCondSelIRS2_1_1) & (matrixOut_3_2_0 &
    matrixOut_3_2_1 & matrixOut_3_2_2 & matrixOut_3_2_3 & maskCondSelIRS2_1_2) & (matrixOut_3_3_0 & matrixOut_3_3_1 &
    matrixOut_3_3_2 & matrixOut_3_3_3 & maskCondSelIRS2_1_3) & (matrixOut_3_4_0 & matrixOut_3_4_1 & matrixOut_3_4_2 &
    matrixOut_3_4_3 & maskCondSelIRS2_1_4); // @[Issue.scala 282:32]
  wire  _T_425 = ~matrixOut_3_0_0 & ~matrixOut_3_0_1 & ~matrixOut_3_0_2 & ~matrixOut_3_0_3 & _matrixOut_0_0_T_9; // @[Issue.scala 283:66]
  wire  _T_435 = ~matrixOut_3_1_0 & ~matrixOut_3_1_1 & ~matrixOut_3_1_2 & ~matrixOut_3_1_3 & _matrixOut_0_1_T_9; // @[Issue.scala 283:66]
  wire  _T_445 = ~matrixOut_3_2_0 & ~matrixOut_3_2_1 & ~matrixOut_3_2_2 & ~matrixOut_3_2_3 & _matrixOut_0_2_T_9; // @[Issue.scala 283:66]
  wire  _T_455 = ~matrixOut_3_3_0 & ~matrixOut_3_3_1 & ~matrixOut_3_3_2 & ~matrixOut_3_3_3 & _matrixOut_0_3_T_9; // @[Issue.scala 283:66]
  wire  _T_465 = ~matrixOut_3_4_0 & ~matrixOut_3_4_1 & ~matrixOut_3_4_2 & ~matrixOut_3_4_3 & _matrixOut_0_4_T_9; // @[Issue.scala 283:66]
  wire [1:0] _T_466 = _T_425 + _T_435; // @[Bitwise.scala 51:90]
  wire [1:0] _T_468 = _T_455 + _T_465; // @[Bitwise.scala 51:90]
  wire [1:0] _GEN_425 = {{1'd0}, _T_445}; // @[Bitwise.scala 51:90]
  wire [2:0] _T_470 = _GEN_425 + _T_468; // @[Bitwise.scala 51:90]
  wire [2:0] _T_472 = _T_466 + _T_470[1:0]; // @[Bitwise.scala 51:90]
  wire  _T_474 = _T_472 == 3'h1; // @[Issue.scala 283:101]
  wire  _T_475 = matrixOut_3_0_0 & matrixOut_3_0_1 & matrixOut_3_0_2 & matrixOut_3_0_3 & maskCondSelIRS2_1_0 & (
    matrixOut_3_1_0 & matrixOut_3_1_1 & matrixOut_3_1_2 & matrixOut_3_1_3 & maskCondSelIRS2_1_1) & (matrixOut_3_2_0 &
    matrixOut_3_2_1 & matrixOut_3_2_2 & matrixOut_3_2_3 & maskCondSelIRS2_1_2) & (matrixOut_3_3_0 & matrixOut_3_3_1 &
    matrixOut_3_3_2 & matrixOut_3_3_3 & maskCondSelIRS2_1_3) & (matrixOut_3_4_0 & matrixOut_3_4_1 & matrixOut_3_4_2 &
    matrixOut_3_4_3 & maskCondSelIRS2_1_4) | _T_474; // @[Issue.scala 282:93]
  wire [5:0] _selIRS1_1_T_50 = _T_307 ? bufReqNum_0_0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS1_1_T_51 = _T_317 ? bufReqNum_1_0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS1_1_T_52 = _T_327 ? bufReqNum_2_0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS1_1_T_53 = _T_337 ? bufReqNum_3_0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS1_1_T_54 = _T_347 ? io_dptReq_0_bits_phy_rs1 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS1_1_T_55 = _selIRS1_1_T_50 | _selIRS1_1_T_51; // @[Mux.scala 27:73]
  wire [5:0] _selIRS1_1_T_56 = _selIRS1_1_T_55 | _selIRS1_1_T_52; // @[Mux.scala 27:73]
  wire [5:0] _selIRS1_1_T_57 = _selIRS1_1_T_56 | _selIRS1_1_T_53; // @[Mux.scala 27:73]
  wire [5:0] selIRS1_1 = _selIRS1_1_T_57 | _selIRS1_1_T_54; // @[Mux.scala 27:73]
  wire [5:0] _selIRS2_1_T_50 = _T_425 ? bufReqNum_0_1 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS2_1_T_51 = _T_435 ? bufReqNum_1_1 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS2_1_T_52 = _T_445 ? bufReqNum_2_1 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS2_1_T_53 = _T_455 ? bufReqNum_3_1 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS2_1_T_54 = _T_465 ? io_dptReq_0_bits_phy_rs2 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS2_1_T_55 = _selIRS2_1_T_50 | _selIRS2_1_T_51; // @[Mux.scala 27:73]
  wire [5:0] _selIRS2_1_T_56 = _selIRS2_1_T_55 | _selIRS2_1_T_52; // @[Mux.scala 27:73]
  wire [5:0] _selIRS2_1_T_57 = _selIRS2_1_T_56 | _selIRS2_1_T_53; // @[Mux.scala 27:73]
  wire [5:0] selIRS2_1 = _selIRS2_1_T_57 | _selIRS2_1_T_54; // @[Mux.scala 27:73]
  wire  _rIOpNum_1_T = ~_T_415; // @[Issue.scala 315:28]
  wire  _rIOpNum_1_T_1 = ~_T_297; // @[Issue.scala 315:68]
  wire [5:0] _rIOpNum_1_T_2 = ~_T_297 ? selIRS1_1 : 6'h21; // @[Issue.scala 315:66]
  wire [5:0] bufReqNum_0_2 = bufInfo_0_phy_rs3; // @[Issue.scala 146:21 63:26]
  wire [5:0] bufReqNum_1_2 = bufInfo_1_phy_rs3; // @[Issue.scala 146:21 63:26]
  wire [5:0] bufReqNum_2_2 = bufInfo_2_phy_rs3; // @[Issue.scala 146:21 63:26]
  wire [5:0] bufReqNum_3_2 = bufInfo_3_phy_rs3; // @[Issue.scala 146:21 63:26]
  wire  canFOpPostReq_0_0 = _canIOpPostReq_0_0_T_1 & _canIOpPostReq_0_0_T_49; // @[Issue.scala 357:50]
  wire  _canFOpPostReq_0_1_T_51 = _canIOpPostReq_0_0_T_49 | _canIOpPostReq_0_1_T_52; // @[Issue.scala 364:41]
  wire  canFOpPostReq_0_1 = _canIOpPostReq_0_1_T_1 & _canFOpPostReq_0_1_T_51; // @[Issue.scala 363:50]
  wire  canFOpPostReq_0_2 = io_dptReq_0_bits_phy_rs3 != 6'h21 & _canIOpPostReq_0_0_T_49; // @[Issue.scala 369:50]
  wire  maskCondSelFRS1_0_4 = _maskCondSelIRS1_0_4_T_1 | ~canFOpPostReq_0_0; // @[Issue.scala 392:64]
  wire  maskCondSelFRS2_0_4 = _maskCondSelIRS1_0_4_T_1 | ~canFOpPostReq_0_1; // @[Issue.scala 393:64]
  wire  maskCondSelFRS3_0_4 = _maskCondSelIRS1_0_4_T_1 | ~canFOpPostReq_0_2; // @[Issue.scala 394:64]
  wire  _matrixOut_0_4_T_12 = ~maskCondSelFRS1_0_4; // @[Issue.scala 200:46]
  wire  _matrixOut_0_4_T_15 = ~maskCondSelFRS2_0_4; // @[Issue.scala 200:46]
  wire  _matrixOut_0_4_T_18 = ~maskCondSelFRS3_0_4; // @[Issue.scala 200:46]
  wire  _T_583 = _matrixOut_0_4_T_12 & _matrixOut_0_4_T_12 & _matrixOut_0_4_T_12 & _matrixOut_0_4_T_12 &
    _matrixOut_0_4_T_12; // @[Issue.scala 414:66]
  wire [1:0] _T_586 = {{1'd0}, _T_583}; // @[Bitwise.scala 51:90]
  wire [2:0] _T_588 = {{1'd0}, _T_586}; // @[Bitwise.scala 51:90]
  wire [2:0] _T_590 = {{1'd0}, _T_588[1:0]}; // @[Bitwise.scala 51:90]
  wire  _T_592 = _T_590 == 3'h1; // @[Issue.scala 414:101]
  wire  _T_593 = maskCondSelFRS1_0_4 | _T_592; // @[Issue.scala 413:92]
  wire  _T_701 = _matrixOut_0_4_T_15 & _matrixOut_0_4_T_15 & _matrixOut_0_4_T_15 & _matrixOut_0_4_T_15 &
    _matrixOut_0_4_T_15; // @[Issue.scala 419:66]
  wire [1:0] _T_704 = {{1'd0}, _T_701}; // @[Bitwise.scala 51:90]
  wire [2:0] _T_706 = {{1'd0}, _T_704}; // @[Bitwise.scala 51:90]
  wire [2:0] _T_708 = {{1'd0}, _T_706[1:0]}; // @[Bitwise.scala 51:90]
  wire  _T_710 = _T_708 == 3'h1; // @[Issue.scala 419:101]
  wire  _T_711 = maskCondSelFRS2_0_4 | _T_710; // @[Issue.scala 418:93]
  wire  _T_819 = _matrixOut_0_4_T_18 & _matrixOut_0_4_T_18 & _matrixOut_0_4_T_18 & _matrixOut_0_4_T_18 &
    _matrixOut_0_4_T_18; // @[Issue.scala 424:66]
  wire [1:0] _T_822 = {{1'd0}, _T_819}; // @[Bitwise.scala 51:90]
  wire [2:0] _T_824 = {{1'd0}, _T_822}; // @[Bitwise.scala 51:90]
  wire [2:0] _T_826 = {{1'd0}, _T_824[1:0]}; // @[Bitwise.scala 51:90]
  wire  _T_828 = _T_826 == 3'h1; // @[Issue.scala 424:101]
  wire  _T_829 = maskCondSelFRS3_0_4 | _T_828; // @[Issue.scala 423:93]
  wire [5:0] selFRS1_0 = _T_583 ? io_dptReq_0_bits_phy_rs1 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] selFRS2_0 = _T_701 ? io_dptReq_0_bits_phy_rs2 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] selFRS3_0 = _T_819 ? io_dptReq_0_bits_phy_rs3 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _rFOpNum_0_T_3 = _matrixOut_0_4_T_18 ? selFRS3_0 : 6'h21; // @[Issue.scala 462:106]
  wire [5:0] _rFOpNum_0_T_4 = _matrixOut_0_4_T_15 ? selFRS2_0 : _rFOpNum_0_T_3; // @[Issue.scala 462:66]
  wire [5:0] rFOpNum_0 = _matrixOut_0_4_T_12 ? selFRS1_0 : _rFOpNum_0_T_4; // @[Issue.scala 462:26]
  wire  maskCondSelFRS1_1_4 = maskCondSelFRS1_0_4 | io_dptReq_0_bits_phy_rs1 == rFOpNum_0; // @[Issue.scala 403:80]
  wire  maskCondSelFRS2_1_4 = maskCondSelFRS2_0_4 | io_dptReq_0_bits_phy_rs2 == rFOpNum_0; // @[Issue.scala 404:80]
  wire  maskCondSelFRS3_1_4 = maskCondSelFRS3_0_4 | io_dptReq_0_bits_phy_rs3 == rFOpNum_0; // @[Issue.scala 405:80]
  wire  _matrixOut_0_4_T_21 = ~maskCondSelFRS1_1_4; // @[Issue.scala 200:46]
  wire  _matrixOut_0_4_T_24 = ~maskCondSelFRS2_1_4; // @[Issue.scala 200:46]
  wire  _matrixOut_0_4_T_27 = ~maskCondSelFRS3_1_4; // @[Issue.scala 200:46]
  wire  _T_937 = _matrixOut_0_4_T_21 & _matrixOut_0_4_T_21 & _matrixOut_0_4_T_21 & _matrixOut_0_4_T_21 &
    _matrixOut_0_4_T_21; // @[Issue.scala 414:66]
  wire [1:0] _T_940 = {{1'd0}, _T_937}; // @[Bitwise.scala 51:90]
  wire [2:0] _T_942 = {{1'd0}, _T_940}; // @[Bitwise.scala 51:90]
  wire [2:0] _T_944 = {{1'd0}, _T_942[1:0]}; // @[Bitwise.scala 51:90]
  wire  _T_946 = _T_944 == 3'h1; // @[Issue.scala 414:101]
  wire  _T_947 = maskCondSelFRS1_1_4 | _T_946; // @[Issue.scala 413:92]
  wire  _T_1055 = _matrixOut_0_4_T_24 & _matrixOut_0_4_T_24 & _matrixOut_0_4_T_24 & _matrixOut_0_4_T_24 &
    _matrixOut_0_4_T_24; // @[Issue.scala 419:66]
  wire [1:0] _T_1058 = {{1'd0}, _T_1055}; // @[Bitwise.scala 51:90]
  wire [2:0] _T_1060 = {{1'd0}, _T_1058}; // @[Bitwise.scala 51:90]
  wire [2:0] _T_1062 = {{1'd0}, _T_1060[1:0]}; // @[Bitwise.scala 51:90]
  wire  _T_1064 = _T_1062 == 3'h1; // @[Issue.scala 419:101]
  wire  _T_1065 = maskCondSelFRS2_1_4 | _T_1064; // @[Issue.scala 418:93]
  wire  _T_1173 = _matrixOut_0_4_T_27 & _matrixOut_0_4_T_27 & _matrixOut_0_4_T_27 & _matrixOut_0_4_T_27 &
    _matrixOut_0_4_T_27; // @[Issue.scala 424:66]
  wire [1:0] _T_1176 = {{1'd0}, _T_1173}; // @[Bitwise.scala 51:90]
  wire [2:0] _T_1178 = {{1'd0}, _T_1176}; // @[Bitwise.scala 51:90]
  wire [2:0] _T_1180 = {{1'd0}, _T_1178[1:0]}; // @[Bitwise.scala 51:90]
  wire  _T_1182 = _T_1180 == 3'h1; // @[Issue.scala 424:101]
  wire  _T_1183 = maskCondSelFRS3_1_4 | _T_1182; // @[Issue.scala 423:93]
  wire  _GEN_3382 = bufValid_0 & bufReqNum_0_0 == io_irgRsp_0_bits_phy | _GEN_2460; // @[Issue.scala 489:98 491:32]
  wire [64:0] _GEN_3383 = bufValid_0 & bufReqNum_0_0 == io_irgRsp_0_bits_phy ? {{1'd0}, io_irgRsp_0_bits_op} : _GEN_2464
    ; // @[Issue.scala 489:98 492:32]
  wire  _GEN_3384 = bufValid_0 & bufReqNum_0_1 == io_irgRsp_0_bits_phy | _GEN_2468; // @[Issue.scala 489:98 491:32]
  wire [64:0] _GEN_3385 = bufValid_0 & bufReqNum_0_1 == io_irgRsp_0_bits_phy ? {{1'd0}, io_irgRsp_0_bits_op} : _GEN_2472
    ; // @[Issue.scala 489:98 492:32]
  wire  _GEN_3386 = bufValid_1 & bufReqNum_1_0 == io_irgRsp_0_bits_phy | _GEN_2461; // @[Issue.scala 489:98 491:32]
  wire [64:0] _GEN_3387 = bufValid_1 & bufReqNum_1_0 == io_irgRsp_0_bits_phy ? {{1'd0}, io_irgRsp_0_bits_op} : _GEN_2465
    ; // @[Issue.scala 489:98 492:32]
  wire  _GEN_3388 = bufValid_1 & bufReqNum_1_1 == io_irgRsp_0_bits_phy | _GEN_2469; // @[Issue.scala 489:98 491:32]
  wire [64:0] _GEN_3389 = bufValid_1 & bufReqNum_1_1 == io_irgRsp_0_bits_phy ? {{1'd0}, io_irgRsp_0_bits_op} : _GEN_2473
    ; // @[Issue.scala 489:98 492:32]
  wire  _GEN_3390 = bufValid_2 & bufReqNum_2_0 == io_irgRsp_0_bits_phy | _GEN_2462; // @[Issue.scala 489:98 491:32]
  wire [64:0] _GEN_3391 = bufValid_2 & bufReqNum_2_0 == io_irgRsp_0_bits_phy ? {{1'd0}, io_irgRsp_0_bits_op} : _GEN_2466
    ; // @[Issue.scala 489:98 492:32]
  wire  _GEN_3392 = bufValid_2 & bufReqNum_2_1 == io_irgRsp_0_bits_phy | _GEN_2470; // @[Issue.scala 489:98 491:32]
  wire [64:0] _GEN_3393 = bufValid_2 & bufReqNum_2_1 == io_irgRsp_0_bits_phy ? {{1'd0}, io_irgRsp_0_bits_op} : _GEN_2474
    ; // @[Issue.scala 489:98 492:32]
  wire  _GEN_3394 = bufValid_3 & bufReqNum_3_0 == io_irgRsp_0_bits_phy | _GEN_2463; // @[Issue.scala 489:98 491:32]
  wire [64:0] _GEN_3395 = bufValid_3 & bufReqNum_3_0 == io_irgRsp_0_bits_phy ? {{1'd0}, io_irgRsp_0_bits_op} : _GEN_2467
    ; // @[Issue.scala 489:98 492:32]
  wire  _GEN_3396 = bufValid_3 & bufReqNum_3_1 == io_irgRsp_0_bits_phy | _GEN_2471; // @[Issue.scala 489:98 491:32]
  wire [64:0] _GEN_3397 = bufValid_3 & bufReqNum_3_1 == io_irgRsp_0_bits_phy ? {{1'd0}, io_irgRsp_0_bits_op} : _GEN_2475
    ; // @[Issue.scala 489:98 492:32]
  wire  _GEN_3398 = io_irgRsp_0_valid ? _GEN_3382 : _GEN_2460; // @[Issue.scala 486:33]
  wire [64:0] _GEN_3399 = io_irgRsp_0_valid ? _GEN_3383 : _GEN_2464; // @[Issue.scala 486:33]
  wire  _GEN_3400 = io_irgRsp_0_valid ? _GEN_3384 : _GEN_2468; // @[Issue.scala 486:33]
  wire [64:0] _GEN_3401 = io_irgRsp_0_valid ? _GEN_3385 : _GEN_2472; // @[Issue.scala 486:33]
  wire  _GEN_3402 = io_irgRsp_0_valid ? _GEN_3386 : _GEN_2461; // @[Issue.scala 486:33]
  wire [64:0] _GEN_3403 = io_irgRsp_0_valid ? _GEN_3387 : _GEN_2465; // @[Issue.scala 486:33]
  wire  _GEN_3404 = io_irgRsp_0_valid ? _GEN_3388 : _GEN_2469; // @[Issue.scala 486:33]
  wire [64:0] _GEN_3405 = io_irgRsp_0_valid ? _GEN_3389 : _GEN_2473; // @[Issue.scala 486:33]
  wire  _GEN_3406 = io_irgRsp_0_valid ? _GEN_3390 : _GEN_2462; // @[Issue.scala 486:33]
  wire [64:0] _GEN_3407 = io_irgRsp_0_valid ? _GEN_3391 : _GEN_2466; // @[Issue.scala 486:33]
  wire  _GEN_3408 = io_irgRsp_0_valid ? _GEN_3392 : _GEN_2470; // @[Issue.scala 486:33]
  wire [64:0] _GEN_3409 = io_irgRsp_0_valid ? _GEN_3393 : _GEN_2474; // @[Issue.scala 486:33]
  wire  _GEN_3410 = io_irgRsp_0_valid ? _GEN_3394 : _GEN_2463; // @[Issue.scala 486:33]
  wire [64:0] _GEN_3411 = io_irgRsp_0_valid ? _GEN_3395 : _GEN_2467; // @[Issue.scala 486:33]
  wire  _GEN_3412 = io_irgRsp_0_valid ? _GEN_3396 : _GEN_2471; // @[Issue.scala 486:33]
  wire [64:0] _GEN_3413 = io_irgRsp_0_valid ? _GEN_3397 : _GEN_2475; // @[Issue.scala 486:33]
  wire  _GEN_3414 = bufValid_0 & bufReqNum_0_0 == io_irgRsp_1_bits_phy | _GEN_3398; // @[Issue.scala 489:98 491:32]
  wire  _GEN_3416 = bufValid_0 & bufReqNum_0_1 == io_irgRsp_1_bits_phy | _GEN_3400; // @[Issue.scala 489:98 491:32]
  wire  _GEN_3418 = bufValid_1 & bufReqNum_1_0 == io_irgRsp_1_bits_phy | _GEN_3402; // @[Issue.scala 489:98 491:32]
  wire  _GEN_3420 = bufValid_1 & bufReqNum_1_1 == io_irgRsp_1_bits_phy | _GEN_3404; // @[Issue.scala 489:98 491:32]
  wire  _GEN_3422 = bufValid_2 & bufReqNum_2_0 == io_irgRsp_1_bits_phy | _GEN_3406; // @[Issue.scala 489:98 491:32]
  wire  _GEN_3424 = bufValid_2 & bufReqNum_2_1 == io_irgRsp_1_bits_phy | _GEN_3408; // @[Issue.scala 489:98 491:32]
  wire  _GEN_3426 = bufValid_3 & bufReqNum_3_0 == io_irgRsp_1_bits_phy | _GEN_3410; // @[Issue.scala 489:98 491:32]
  wire  _GEN_3428 = bufValid_3 & bufReqNum_3_1 == io_irgRsp_1_bits_phy | _GEN_3412; // @[Issue.scala 489:98 491:32]
  wire  postIsOpReady_0_0 = _canIOpReq_0_0_T_6 | (_canIOpReq_0_0_T_8 | isOpReady_0_0); // @[Mux.scala 101:16]
  wire  postIsOpReady_0_1 = _canIOpReq_0_1_T_6 | (_canIOpReq_0_1_T_8 | isOpReady_0_1); // @[Mux.scala 101:16]
  wire [64:0] _postBufOperator_0_0_T_16 = _canIOpReq_0_0_T_8 ? {{1'd0}, io_irgRsp_1_bits_op} : bufOperator_0_0; // @[Mux.scala 101:16]
  wire [64:0] postBufOperator_0_0 = _canIOpReq_0_0_T_6 ? {{1'd0}, io_irgRsp_0_bits_op} : _postBufOperator_0_0_T_16; // @[Mux.scala 101:16]
  wire [64:0] _postBufOperator_0_1_T_16 = _canIOpReq_0_1_T_8 ? {{1'd0}, io_irgRsp_1_bits_op} : bufOperator_0_1; // @[Mux.scala 101:16]
  wire [64:0] postBufOperator_0_1 = _canIOpReq_0_1_T_6 ? {{1'd0}, io_irgRsp_0_bits_op} : _postBufOperator_0_1_T_16; // @[Mux.scala 101:16]
  wire  postIsOpReady_1_0 = _canIOpReq_1_0_T_6 | (_canIOpReq_1_0_T_8 | isOpReady_1_0); // @[Mux.scala 101:16]
  wire  postIsOpReady_1_1 = _canIOpReq_1_1_T_6 | (_canIOpReq_1_1_T_8 | isOpReady_1_1); // @[Mux.scala 101:16]
  wire [64:0] _postBufOperator_1_0_T_16 = _canIOpReq_1_0_T_8 ? {{1'd0}, io_irgRsp_1_bits_op} : bufOperator_1_0; // @[Mux.scala 101:16]
  wire [64:0] postBufOperator_1_0 = _canIOpReq_1_0_T_6 ? {{1'd0}, io_irgRsp_0_bits_op} : _postBufOperator_1_0_T_16; // @[Mux.scala 101:16]
  wire [64:0] _postBufOperator_1_1_T_16 = _canIOpReq_1_1_T_8 ? {{1'd0}, io_irgRsp_1_bits_op} : bufOperator_1_1; // @[Mux.scala 101:16]
  wire [64:0] postBufOperator_1_1 = _canIOpReq_1_1_T_6 ? {{1'd0}, io_irgRsp_0_bits_op} : _postBufOperator_1_1_T_16; // @[Mux.scala 101:16]
  wire  postIsOpReady_2_0 = _canIOpReq_2_0_T_6 | (_canIOpReq_2_0_T_8 | isOpReady_2_0); // @[Mux.scala 101:16]
  wire  postIsOpReady_2_1 = _canIOpReq_2_1_T_6 | (_canIOpReq_2_1_T_8 | isOpReady_2_1); // @[Mux.scala 101:16]
  wire [64:0] _postBufOperator_2_0_T_16 = _canIOpReq_2_0_T_8 ? {{1'd0}, io_irgRsp_1_bits_op} : bufOperator_2_0; // @[Mux.scala 101:16]
  wire [64:0] postBufOperator_2_0 = _canIOpReq_2_0_T_6 ? {{1'd0}, io_irgRsp_0_bits_op} : _postBufOperator_2_0_T_16; // @[Mux.scala 101:16]
  wire [64:0] _postBufOperator_2_1_T_16 = _canIOpReq_2_1_T_8 ? {{1'd0}, io_irgRsp_1_bits_op} : bufOperator_2_1; // @[Mux.scala 101:16]
  wire [64:0] postBufOperator_2_1 = _canIOpReq_2_1_T_6 ? {{1'd0}, io_irgRsp_0_bits_op} : _postBufOperator_2_1_T_16; // @[Mux.scala 101:16]
  wire  postIsOpReady_3_0 = _canIOpReq_3_0_T_6 | (_canIOpReq_3_0_T_8 | isOpReady_3_0); // @[Mux.scala 101:16]
  wire  postIsOpReady_3_1 = _canIOpReq_3_1_T_6 | (_canIOpReq_3_1_T_8 | isOpReady_3_1); // @[Mux.scala 101:16]
  wire [64:0] _postBufOperator_3_0_T_16 = _canIOpReq_3_0_T_8 ? {{1'd0}, io_irgRsp_1_bits_op} : bufOperator_3_0; // @[Mux.scala 101:16]
  wire [64:0] postBufOperator_3_0 = _canIOpReq_3_0_T_6 ? {{1'd0}, io_irgRsp_0_bits_op} : _postBufOperator_3_0_T_16; // @[Mux.scala 101:16]
  wire [64:0] _postBufOperator_3_1_T_16 = _canIOpReq_3_1_T_8 ? {{1'd0}, io_irgRsp_1_bits_op} : bufOperator_3_1; // @[Mux.scala 101:16]
  wire [64:0] postBufOperator_3_1 = _canIOpReq_3_1_T_6 ? {{1'd0}, io_irgRsp_0_bits_op} : _postBufOperator_3_1_T_16; // @[Mux.scala 101:16]
  wire  aluIssInfo_0_fun_add = bufInfo_0_alu_isa_addi | bufInfo_0_alu_isa_addiw | bufInfo_0_alu_isa_add |
    bufInfo_0_alu_isa_addw | bufInfo_0_alu_isa_lui | bufInfo_0_alu_isa_auipc | bufInfo_0_alu_isa_sub |
    bufInfo_0_alu_isa_subw | bufInfo_0_alu_isa_wfi; // @[riscv_isa.scala 69:73]
  wire  aluIssInfo_0_fun_slt = bufInfo_0_alu_isa_slti | bufInfo_0_alu_isa_sltiu | bufInfo_0_alu_isa_slt |
    bufInfo_0_alu_isa_sltu; // @[riscv_isa.scala 70:39]
  wire  aluIssInfo_0_fun_xor = bufInfo_0_alu_isa_xori | bufInfo_0_alu_isa_xor; // @[riscv_isa.scala 71:25]
  wire  aluIssInfo_0_fun_or = bufInfo_0_alu_isa_ori | bufInfo_0_alu_isa_or; // @[riscv_isa.scala 72:24]
  wire  aluIssInfo_0_fun_and = bufInfo_0_alu_isa_andi | bufInfo_0_alu_isa_and; // @[riscv_isa.scala 73:25]
  wire  aluIssInfo_0_fun_sll = bufInfo_0_alu_isa_slli | bufInfo_0_alu_isa_slliw | bufInfo_0_alu_isa_sll |
    bufInfo_0_alu_isa_sllw; // @[riscv_isa.scala 74:39]
  wire  aluIssInfo_0_fun_srl = bufInfo_0_alu_isa_srli | bufInfo_0_alu_isa_srliw | bufInfo_0_alu_isa_srl |
    bufInfo_0_alu_isa_srlw; // @[riscv_isa.scala 75:39]
  wire  aluIssInfo_0_fun_sra = bufInfo_0_alu_isa_srai | bufInfo_0_alu_isa_sraiw | bufInfo_0_alu_isa_sra |
    bufInfo_0_alu_isa_sraw; // @[riscv_isa.scala 76:39]
  wire  aluIssInfo_0_param_is_32w = bufInfo_0_alu_isa_addiw | bufInfo_0_alu_isa_addw | bufInfo_0_alu_isa_subw |
    bufInfo_0_alu_isa_slliw | bufInfo_0_alu_isa_sllw | bufInfo_0_alu_isa_srliw | bufInfo_0_alu_isa_srlw |
    bufInfo_0_alu_isa_sraiw | bufInfo_0_alu_isa_sraw; // @[riscv_isa.scala 65:74]
  wire  aluIssInfo_0_param_is_usi = bufInfo_0_alu_isa_sltiu | bufInfo_0_alu_isa_sltu; // @[riscv_isa.scala 66:22]
  wire [24:0] _aluIssInfo_res_param_dat_op1_v64_T_2 = bufInfo_0_param_pc[38] ? 25'h1ffffff : 25'h0; // @[Bitwise.scala 77:12]
  wire [63:0] aluIssInfo_res_param_dat_op1_v64 = {_aluIssInfo_res_param_dat_op1_v64_T_2,bufInfo_0_param_pc}; // @[Cat.scala 33:92]
  wire [63:0] _aluIssInfo_res_param_dat_op1_T_1 = bufInfo_0_alu_isa_auipc ? aluIssInfo_res_param_dat_op1_v64 : 64'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_2 = bufInfo_0_alu_isa_addi ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_3 = bufInfo_0_alu_isa_addiw ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_4 = bufInfo_0_alu_isa_slti ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_5 = bufInfo_0_alu_isa_sltiu ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_6 = bufInfo_0_alu_isa_xori ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_7 = bufInfo_0_alu_isa_ori ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_8 = bufInfo_0_alu_isa_andi ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_9 = bufInfo_0_alu_isa_slli ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_10 = bufInfo_0_alu_isa_slliw ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_11 = bufInfo_0_alu_isa_srli ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_12 = bufInfo_0_alu_isa_srliw ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_13 = bufInfo_0_alu_isa_srai ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_14 = bufInfo_0_alu_isa_sraiw ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_15 = bufInfo_0_alu_isa_add ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_16 = bufInfo_0_alu_isa_addw ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_17 = bufInfo_0_alu_isa_sub ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_18 = bufInfo_0_alu_isa_subw ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_19 = bufInfo_0_alu_isa_sll ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_20 = bufInfo_0_alu_isa_sllw ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_21 = bufInfo_0_alu_isa_slt ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_22 = bufInfo_0_alu_isa_sltu ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_23 = bufInfo_0_alu_isa_xor ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_24 = bufInfo_0_alu_isa_srl ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_25 = bufInfo_0_alu_isa_srlw ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_26 = bufInfo_0_alu_isa_sra ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_27 = bufInfo_0_alu_isa_sraw ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_28 = bufInfo_0_alu_isa_or ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_29 = bufInfo_0_alu_isa_and ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _GEN_426 = {{1'd0}, _aluIssInfo_res_param_dat_op1_T_1}; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_32 = _GEN_426 | _aluIssInfo_res_param_dat_op1_T_2; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_33 = _aluIssInfo_res_param_dat_op1_T_32 |
    _aluIssInfo_res_param_dat_op1_T_3; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_34 = _aluIssInfo_res_param_dat_op1_T_33 |
    _aluIssInfo_res_param_dat_op1_T_4; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_35 = _aluIssInfo_res_param_dat_op1_T_34 |
    _aluIssInfo_res_param_dat_op1_T_5; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_36 = _aluIssInfo_res_param_dat_op1_T_35 |
    _aluIssInfo_res_param_dat_op1_T_6; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_37 = _aluIssInfo_res_param_dat_op1_T_36 |
    _aluIssInfo_res_param_dat_op1_T_7; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_38 = _aluIssInfo_res_param_dat_op1_T_37 |
    _aluIssInfo_res_param_dat_op1_T_8; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_39 = _aluIssInfo_res_param_dat_op1_T_38 |
    _aluIssInfo_res_param_dat_op1_T_9; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_40 = _aluIssInfo_res_param_dat_op1_T_39 |
    _aluIssInfo_res_param_dat_op1_T_10; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_41 = _aluIssInfo_res_param_dat_op1_T_40 |
    _aluIssInfo_res_param_dat_op1_T_11; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_42 = _aluIssInfo_res_param_dat_op1_T_41 |
    _aluIssInfo_res_param_dat_op1_T_12; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_43 = _aluIssInfo_res_param_dat_op1_T_42 |
    _aluIssInfo_res_param_dat_op1_T_13; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_44 = _aluIssInfo_res_param_dat_op1_T_43 |
    _aluIssInfo_res_param_dat_op1_T_14; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_45 = _aluIssInfo_res_param_dat_op1_T_44 |
    _aluIssInfo_res_param_dat_op1_T_15; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_46 = _aluIssInfo_res_param_dat_op1_T_45 |
    _aluIssInfo_res_param_dat_op1_T_16; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_47 = _aluIssInfo_res_param_dat_op1_T_46 |
    _aluIssInfo_res_param_dat_op1_T_17; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_48 = _aluIssInfo_res_param_dat_op1_T_47 |
    _aluIssInfo_res_param_dat_op1_T_18; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_49 = _aluIssInfo_res_param_dat_op1_T_48 |
    _aluIssInfo_res_param_dat_op1_T_19; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_50 = _aluIssInfo_res_param_dat_op1_T_49 |
    _aluIssInfo_res_param_dat_op1_T_20; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_51 = _aluIssInfo_res_param_dat_op1_T_50 |
    _aluIssInfo_res_param_dat_op1_T_21; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_52 = _aluIssInfo_res_param_dat_op1_T_51 |
    _aluIssInfo_res_param_dat_op1_T_22; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_53 = _aluIssInfo_res_param_dat_op1_T_52 |
    _aluIssInfo_res_param_dat_op1_T_23; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_54 = _aluIssInfo_res_param_dat_op1_T_53 |
    _aluIssInfo_res_param_dat_op1_T_24; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_55 = _aluIssInfo_res_param_dat_op1_T_54 |
    _aluIssInfo_res_param_dat_op1_T_25; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_56 = _aluIssInfo_res_param_dat_op1_T_55 |
    _aluIssInfo_res_param_dat_op1_T_26; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_57 = _aluIssInfo_res_param_dat_op1_T_56 |
    _aluIssInfo_res_param_dat_op1_T_27; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_58 = _aluIssInfo_res_param_dat_op1_T_57 |
    _aluIssInfo_res_param_dat_op1_T_28; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_59 = _aluIssInfo_res_param_dat_op1_T_58 |
    _aluIssInfo_res_param_dat_op1_T_29; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_6 = ~postBufOperator_0_1; // @[Issue.scala 586:101]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_8 = _aluIssInfo_res_param_dat_op2_T_6 + 65'h1; // @[Issue.scala 586:107]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_12 = bufInfo_0_alu_isa_lui ? bufInfo_0_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_13 = bufInfo_0_alu_isa_auipc ? bufInfo_0_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_14 = bufInfo_0_alu_isa_addi ? bufInfo_0_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_15 = bufInfo_0_alu_isa_addiw ? bufInfo_0_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_16 = bufInfo_0_alu_isa_slti ? bufInfo_0_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_17 = bufInfo_0_alu_isa_sltiu ? bufInfo_0_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_18 = bufInfo_0_alu_isa_xori ? bufInfo_0_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_19 = bufInfo_0_alu_isa_ori ? bufInfo_0_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_20 = bufInfo_0_alu_isa_andi ? bufInfo_0_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_21 = bufInfo_0_alu_isa_slli ? bufInfo_0_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_22 = bufInfo_0_alu_isa_slliw ? bufInfo_0_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_23 = bufInfo_0_alu_isa_srli ? bufInfo_0_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_24 = bufInfo_0_alu_isa_srliw ? bufInfo_0_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_25 = bufInfo_0_alu_isa_srai ? bufInfo_0_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_26 = bufInfo_0_alu_isa_sraiw ? bufInfo_0_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_27 = bufInfo_0_alu_isa_add ? postBufOperator_0_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_28 = bufInfo_0_alu_isa_addw ? postBufOperator_0_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_29 = bufInfo_0_alu_isa_sub ? _aluIssInfo_res_param_dat_op2_T_8 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_30 = bufInfo_0_alu_isa_subw ? _aluIssInfo_res_param_dat_op2_T_8 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_31 = bufInfo_0_alu_isa_sll ? postBufOperator_0_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_32 = bufInfo_0_alu_isa_sllw ? postBufOperator_0_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_33 = bufInfo_0_alu_isa_slt ? postBufOperator_0_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_34 = bufInfo_0_alu_isa_sltu ? postBufOperator_0_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_35 = bufInfo_0_alu_isa_xor ? postBufOperator_0_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_36 = bufInfo_0_alu_isa_srl ? postBufOperator_0_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_37 = bufInfo_0_alu_isa_srlw ? postBufOperator_0_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_38 = bufInfo_0_alu_isa_sra ? postBufOperator_0_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_39 = bufInfo_0_alu_isa_sraw ? postBufOperator_0_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_40 = bufInfo_0_alu_isa_or ? postBufOperator_0_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_41 = bufInfo_0_alu_isa_and ? postBufOperator_0_1 : 65'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_43 = _aluIssInfo_res_param_dat_op2_T_12 |
    _aluIssInfo_res_param_dat_op2_T_13; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_44 = _aluIssInfo_res_param_dat_op2_T_43 |
    _aluIssInfo_res_param_dat_op2_T_14; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_45 = _aluIssInfo_res_param_dat_op2_T_44 |
    _aluIssInfo_res_param_dat_op2_T_15; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_46 = _aluIssInfo_res_param_dat_op2_T_45 |
    _aluIssInfo_res_param_dat_op2_T_16; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_47 = _aluIssInfo_res_param_dat_op2_T_46 |
    _aluIssInfo_res_param_dat_op2_T_17; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_48 = _aluIssInfo_res_param_dat_op2_T_47 |
    _aluIssInfo_res_param_dat_op2_T_18; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_49 = _aluIssInfo_res_param_dat_op2_T_48 |
    _aluIssInfo_res_param_dat_op2_T_19; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_50 = _aluIssInfo_res_param_dat_op2_T_49 |
    _aluIssInfo_res_param_dat_op2_T_20; // @[Mux.scala 27:73]
  wire [63:0] _GEN_427 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_21}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_51 = _aluIssInfo_res_param_dat_op2_T_50 | _GEN_427; // @[Mux.scala 27:73]
  wire [63:0] _GEN_428 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_22}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_52 = _aluIssInfo_res_param_dat_op2_T_51 | _GEN_428; // @[Mux.scala 27:73]
  wire [63:0] _GEN_429 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_23}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_53 = _aluIssInfo_res_param_dat_op2_T_52 | _GEN_429; // @[Mux.scala 27:73]
  wire [63:0] _GEN_430 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_24}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_54 = _aluIssInfo_res_param_dat_op2_T_53 | _GEN_430; // @[Mux.scala 27:73]
  wire [63:0] _GEN_431 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_25}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_55 = _aluIssInfo_res_param_dat_op2_T_54 | _GEN_431; // @[Mux.scala 27:73]
  wire [63:0] _GEN_432 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_26}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_56 = _aluIssInfo_res_param_dat_op2_T_55 | _GEN_432; // @[Mux.scala 27:73]
  wire [64:0] _GEN_433 = {{1'd0}, _aluIssInfo_res_param_dat_op2_T_56}; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_57 = _GEN_433 | _aluIssInfo_res_param_dat_op2_T_27; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_58 = _aluIssInfo_res_param_dat_op2_T_57 |
    _aluIssInfo_res_param_dat_op2_T_28; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_59 = _aluIssInfo_res_param_dat_op2_T_58 |
    _aluIssInfo_res_param_dat_op2_T_29; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_60 = _aluIssInfo_res_param_dat_op2_T_59 |
    _aluIssInfo_res_param_dat_op2_T_30; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_61 = _aluIssInfo_res_param_dat_op2_T_60 |
    _aluIssInfo_res_param_dat_op2_T_31; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_62 = _aluIssInfo_res_param_dat_op2_T_61 |
    _aluIssInfo_res_param_dat_op2_T_32; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_63 = _aluIssInfo_res_param_dat_op2_T_62 |
    _aluIssInfo_res_param_dat_op2_T_33; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_64 = _aluIssInfo_res_param_dat_op2_T_63 |
    _aluIssInfo_res_param_dat_op2_T_34; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_65 = _aluIssInfo_res_param_dat_op2_T_64 |
    _aluIssInfo_res_param_dat_op2_T_35; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_66 = _aluIssInfo_res_param_dat_op2_T_65 |
    _aluIssInfo_res_param_dat_op2_T_36; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_67 = _aluIssInfo_res_param_dat_op2_T_66 |
    _aluIssInfo_res_param_dat_op2_T_37; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_68 = _aluIssInfo_res_param_dat_op2_T_67 |
    _aluIssInfo_res_param_dat_op2_T_38; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_69 = _aluIssInfo_res_param_dat_op2_T_68 |
    _aluIssInfo_res_param_dat_op2_T_39; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_70 = _aluIssInfo_res_param_dat_op2_T_69 |
    _aluIssInfo_res_param_dat_op2_T_40; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_71 = _aluIssInfo_res_param_dat_op2_T_70 |
    _aluIssInfo_res_param_dat_op2_T_41; // @[Mux.scala 27:73]
  wire  aluIssInfo_1_fun_add = bufInfo_1_alu_isa_addi | bufInfo_1_alu_isa_addiw | bufInfo_1_alu_isa_add |
    bufInfo_1_alu_isa_addw | bufInfo_1_alu_isa_lui | bufInfo_1_alu_isa_auipc | bufInfo_1_alu_isa_sub |
    bufInfo_1_alu_isa_subw | bufInfo_1_alu_isa_wfi; // @[riscv_isa.scala 69:73]
  wire  aluIssInfo_1_fun_slt = bufInfo_1_alu_isa_slti | bufInfo_1_alu_isa_sltiu | bufInfo_1_alu_isa_slt |
    bufInfo_1_alu_isa_sltu; // @[riscv_isa.scala 70:39]
  wire  aluIssInfo_1_fun_xor = bufInfo_1_alu_isa_xori | bufInfo_1_alu_isa_xor; // @[riscv_isa.scala 71:25]
  wire  aluIssInfo_1_fun_or = bufInfo_1_alu_isa_ori | bufInfo_1_alu_isa_or; // @[riscv_isa.scala 72:24]
  wire  aluIssInfo_1_fun_and = bufInfo_1_alu_isa_andi | bufInfo_1_alu_isa_and; // @[riscv_isa.scala 73:25]
  wire  aluIssInfo_1_fun_sll = bufInfo_1_alu_isa_slli | bufInfo_1_alu_isa_slliw | bufInfo_1_alu_isa_sll |
    bufInfo_1_alu_isa_sllw; // @[riscv_isa.scala 74:39]
  wire  aluIssInfo_1_fun_srl = bufInfo_1_alu_isa_srli | bufInfo_1_alu_isa_srliw | bufInfo_1_alu_isa_srl |
    bufInfo_1_alu_isa_srlw; // @[riscv_isa.scala 75:39]
  wire  aluIssInfo_1_fun_sra = bufInfo_1_alu_isa_srai | bufInfo_1_alu_isa_sraiw | bufInfo_1_alu_isa_sra |
    bufInfo_1_alu_isa_sraw; // @[riscv_isa.scala 76:39]
  wire  aluIssInfo_1_param_is_32w = bufInfo_1_alu_isa_addiw | bufInfo_1_alu_isa_addw | bufInfo_1_alu_isa_subw |
    bufInfo_1_alu_isa_slliw | bufInfo_1_alu_isa_sllw | bufInfo_1_alu_isa_srliw | bufInfo_1_alu_isa_srlw |
    bufInfo_1_alu_isa_sraiw | bufInfo_1_alu_isa_sraw; // @[riscv_isa.scala 65:74]
  wire  aluIssInfo_1_param_is_usi = bufInfo_1_alu_isa_sltiu | bufInfo_1_alu_isa_sltu; // @[riscv_isa.scala 66:22]
  wire [24:0] _aluIssInfo_res_param_dat_op1_v64_T_7 = bufInfo_1_param_pc[38] ? 25'h1ffffff : 25'h0; // @[Bitwise.scala 77:12]
  wire [63:0] aluIssInfo_res_param_dat_op1_v64_1 = {_aluIssInfo_res_param_dat_op1_v64_T_7,bufInfo_1_param_pc}; // @[Cat.scala 33:92]
  wire [63:0] _aluIssInfo_res_param_dat_op1_T_62 = bufInfo_1_alu_isa_auipc ? aluIssInfo_res_param_dat_op1_v64_1 : 64'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_63 = bufInfo_1_alu_isa_addi ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_64 = bufInfo_1_alu_isa_addiw ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_65 = bufInfo_1_alu_isa_slti ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_66 = bufInfo_1_alu_isa_sltiu ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_67 = bufInfo_1_alu_isa_xori ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_68 = bufInfo_1_alu_isa_ori ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_69 = bufInfo_1_alu_isa_andi ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_70 = bufInfo_1_alu_isa_slli ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_71 = bufInfo_1_alu_isa_slliw ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_72 = bufInfo_1_alu_isa_srli ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_73 = bufInfo_1_alu_isa_srliw ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_74 = bufInfo_1_alu_isa_srai ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_75 = bufInfo_1_alu_isa_sraiw ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_76 = bufInfo_1_alu_isa_add ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_77 = bufInfo_1_alu_isa_addw ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_78 = bufInfo_1_alu_isa_sub ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_79 = bufInfo_1_alu_isa_subw ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_80 = bufInfo_1_alu_isa_sll ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_81 = bufInfo_1_alu_isa_sllw ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_82 = bufInfo_1_alu_isa_slt ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_83 = bufInfo_1_alu_isa_sltu ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_84 = bufInfo_1_alu_isa_xor ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_85 = bufInfo_1_alu_isa_srl ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_86 = bufInfo_1_alu_isa_srlw ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_87 = bufInfo_1_alu_isa_sra ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_88 = bufInfo_1_alu_isa_sraw ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_89 = bufInfo_1_alu_isa_or ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_90 = bufInfo_1_alu_isa_and ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _GEN_434 = {{1'd0}, _aluIssInfo_res_param_dat_op1_T_62}; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_93 = _GEN_434 | _aluIssInfo_res_param_dat_op1_T_63; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_94 = _aluIssInfo_res_param_dat_op1_T_93 |
    _aluIssInfo_res_param_dat_op1_T_64; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_95 = _aluIssInfo_res_param_dat_op1_T_94 |
    _aluIssInfo_res_param_dat_op1_T_65; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_96 = _aluIssInfo_res_param_dat_op1_T_95 |
    _aluIssInfo_res_param_dat_op1_T_66; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_97 = _aluIssInfo_res_param_dat_op1_T_96 |
    _aluIssInfo_res_param_dat_op1_T_67; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_98 = _aluIssInfo_res_param_dat_op1_T_97 |
    _aluIssInfo_res_param_dat_op1_T_68; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_99 = _aluIssInfo_res_param_dat_op1_T_98 |
    _aluIssInfo_res_param_dat_op1_T_69; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_100 = _aluIssInfo_res_param_dat_op1_T_99 |
    _aluIssInfo_res_param_dat_op1_T_70; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_101 = _aluIssInfo_res_param_dat_op1_T_100 |
    _aluIssInfo_res_param_dat_op1_T_71; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_102 = _aluIssInfo_res_param_dat_op1_T_101 |
    _aluIssInfo_res_param_dat_op1_T_72; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_103 = _aluIssInfo_res_param_dat_op1_T_102 |
    _aluIssInfo_res_param_dat_op1_T_73; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_104 = _aluIssInfo_res_param_dat_op1_T_103 |
    _aluIssInfo_res_param_dat_op1_T_74; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_105 = _aluIssInfo_res_param_dat_op1_T_104 |
    _aluIssInfo_res_param_dat_op1_T_75; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_106 = _aluIssInfo_res_param_dat_op1_T_105 |
    _aluIssInfo_res_param_dat_op1_T_76; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_107 = _aluIssInfo_res_param_dat_op1_T_106 |
    _aluIssInfo_res_param_dat_op1_T_77; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_108 = _aluIssInfo_res_param_dat_op1_T_107 |
    _aluIssInfo_res_param_dat_op1_T_78; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_109 = _aluIssInfo_res_param_dat_op1_T_108 |
    _aluIssInfo_res_param_dat_op1_T_79; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_110 = _aluIssInfo_res_param_dat_op1_T_109 |
    _aluIssInfo_res_param_dat_op1_T_80; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_111 = _aluIssInfo_res_param_dat_op1_T_110 |
    _aluIssInfo_res_param_dat_op1_T_81; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_112 = _aluIssInfo_res_param_dat_op1_T_111 |
    _aluIssInfo_res_param_dat_op1_T_82; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_113 = _aluIssInfo_res_param_dat_op1_T_112 |
    _aluIssInfo_res_param_dat_op1_T_83; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_114 = _aluIssInfo_res_param_dat_op1_T_113 |
    _aluIssInfo_res_param_dat_op1_T_84; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_115 = _aluIssInfo_res_param_dat_op1_T_114 |
    _aluIssInfo_res_param_dat_op1_T_85; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_116 = _aluIssInfo_res_param_dat_op1_T_115 |
    _aluIssInfo_res_param_dat_op1_T_86; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_117 = _aluIssInfo_res_param_dat_op1_T_116 |
    _aluIssInfo_res_param_dat_op1_T_87; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_118 = _aluIssInfo_res_param_dat_op1_T_117 |
    _aluIssInfo_res_param_dat_op1_T_88; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_119 = _aluIssInfo_res_param_dat_op1_T_118 |
    _aluIssInfo_res_param_dat_op1_T_89; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_120 = _aluIssInfo_res_param_dat_op1_T_119 |
    _aluIssInfo_res_param_dat_op1_T_90; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_79 = ~postBufOperator_1_1; // @[Issue.scala 586:101]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_81 = _aluIssInfo_res_param_dat_op2_T_79 + 65'h1; // @[Issue.scala 586:107]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_85 = bufInfo_1_alu_isa_lui ? bufInfo_1_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_86 = bufInfo_1_alu_isa_auipc ? bufInfo_1_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_87 = bufInfo_1_alu_isa_addi ? bufInfo_1_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_88 = bufInfo_1_alu_isa_addiw ? bufInfo_1_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_89 = bufInfo_1_alu_isa_slti ? bufInfo_1_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_90 = bufInfo_1_alu_isa_sltiu ? bufInfo_1_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_91 = bufInfo_1_alu_isa_xori ? bufInfo_1_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_92 = bufInfo_1_alu_isa_ori ? bufInfo_1_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_93 = bufInfo_1_alu_isa_andi ? bufInfo_1_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_94 = bufInfo_1_alu_isa_slli ? bufInfo_1_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_95 = bufInfo_1_alu_isa_slliw ? bufInfo_1_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_96 = bufInfo_1_alu_isa_srli ? bufInfo_1_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_97 = bufInfo_1_alu_isa_srliw ? bufInfo_1_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_98 = bufInfo_1_alu_isa_srai ? bufInfo_1_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_99 = bufInfo_1_alu_isa_sraiw ? bufInfo_1_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_100 = bufInfo_1_alu_isa_add ? postBufOperator_1_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_101 = bufInfo_1_alu_isa_addw ? postBufOperator_1_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_102 = bufInfo_1_alu_isa_sub ? _aluIssInfo_res_param_dat_op2_T_81 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_103 = bufInfo_1_alu_isa_subw ? _aluIssInfo_res_param_dat_op2_T_81 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_104 = bufInfo_1_alu_isa_sll ? postBufOperator_1_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_105 = bufInfo_1_alu_isa_sllw ? postBufOperator_1_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_106 = bufInfo_1_alu_isa_slt ? postBufOperator_1_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_107 = bufInfo_1_alu_isa_sltu ? postBufOperator_1_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_108 = bufInfo_1_alu_isa_xor ? postBufOperator_1_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_109 = bufInfo_1_alu_isa_srl ? postBufOperator_1_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_110 = bufInfo_1_alu_isa_srlw ? postBufOperator_1_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_111 = bufInfo_1_alu_isa_sra ? postBufOperator_1_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_112 = bufInfo_1_alu_isa_sraw ? postBufOperator_1_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_113 = bufInfo_1_alu_isa_or ? postBufOperator_1_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_114 = bufInfo_1_alu_isa_and ? postBufOperator_1_1 : 65'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_116 = _aluIssInfo_res_param_dat_op2_T_85 |
    _aluIssInfo_res_param_dat_op2_T_86; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_117 = _aluIssInfo_res_param_dat_op2_T_116 |
    _aluIssInfo_res_param_dat_op2_T_87; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_118 = _aluIssInfo_res_param_dat_op2_T_117 |
    _aluIssInfo_res_param_dat_op2_T_88; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_119 = _aluIssInfo_res_param_dat_op2_T_118 |
    _aluIssInfo_res_param_dat_op2_T_89; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_120 = _aluIssInfo_res_param_dat_op2_T_119 |
    _aluIssInfo_res_param_dat_op2_T_90; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_121 = _aluIssInfo_res_param_dat_op2_T_120 |
    _aluIssInfo_res_param_dat_op2_T_91; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_122 = _aluIssInfo_res_param_dat_op2_T_121 |
    _aluIssInfo_res_param_dat_op2_T_92; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_123 = _aluIssInfo_res_param_dat_op2_T_122 |
    _aluIssInfo_res_param_dat_op2_T_93; // @[Mux.scala 27:73]
  wire [63:0] _GEN_435 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_94}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_124 = _aluIssInfo_res_param_dat_op2_T_123 | _GEN_435; // @[Mux.scala 27:73]
  wire [63:0] _GEN_436 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_95}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_125 = _aluIssInfo_res_param_dat_op2_T_124 | _GEN_436; // @[Mux.scala 27:73]
  wire [63:0] _GEN_437 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_96}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_126 = _aluIssInfo_res_param_dat_op2_T_125 | _GEN_437; // @[Mux.scala 27:73]
  wire [63:0] _GEN_438 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_97}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_127 = _aluIssInfo_res_param_dat_op2_T_126 | _GEN_438; // @[Mux.scala 27:73]
  wire [63:0] _GEN_439 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_98}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_128 = _aluIssInfo_res_param_dat_op2_T_127 | _GEN_439; // @[Mux.scala 27:73]
  wire [63:0] _GEN_440 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_99}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_129 = _aluIssInfo_res_param_dat_op2_T_128 | _GEN_440; // @[Mux.scala 27:73]
  wire [64:0] _GEN_441 = {{1'd0}, _aluIssInfo_res_param_dat_op2_T_129}; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_130 = _GEN_441 | _aluIssInfo_res_param_dat_op2_T_100; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_131 = _aluIssInfo_res_param_dat_op2_T_130 |
    _aluIssInfo_res_param_dat_op2_T_101; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_132 = _aluIssInfo_res_param_dat_op2_T_131 |
    _aluIssInfo_res_param_dat_op2_T_102; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_133 = _aluIssInfo_res_param_dat_op2_T_132 |
    _aluIssInfo_res_param_dat_op2_T_103; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_134 = _aluIssInfo_res_param_dat_op2_T_133 |
    _aluIssInfo_res_param_dat_op2_T_104; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_135 = _aluIssInfo_res_param_dat_op2_T_134 |
    _aluIssInfo_res_param_dat_op2_T_105; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_136 = _aluIssInfo_res_param_dat_op2_T_135 |
    _aluIssInfo_res_param_dat_op2_T_106; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_137 = _aluIssInfo_res_param_dat_op2_T_136 |
    _aluIssInfo_res_param_dat_op2_T_107; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_138 = _aluIssInfo_res_param_dat_op2_T_137 |
    _aluIssInfo_res_param_dat_op2_T_108; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_139 = _aluIssInfo_res_param_dat_op2_T_138 |
    _aluIssInfo_res_param_dat_op2_T_109; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_140 = _aluIssInfo_res_param_dat_op2_T_139 |
    _aluIssInfo_res_param_dat_op2_T_110; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_141 = _aluIssInfo_res_param_dat_op2_T_140 |
    _aluIssInfo_res_param_dat_op2_T_111; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_142 = _aluIssInfo_res_param_dat_op2_T_141 |
    _aluIssInfo_res_param_dat_op2_T_112; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_143 = _aluIssInfo_res_param_dat_op2_T_142 |
    _aluIssInfo_res_param_dat_op2_T_113; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_144 = _aluIssInfo_res_param_dat_op2_T_143 |
    _aluIssInfo_res_param_dat_op2_T_114; // @[Mux.scala 27:73]
  wire  aluIssInfo_2_fun_add = bufInfo_2_alu_isa_addi | bufInfo_2_alu_isa_addiw | bufInfo_2_alu_isa_add |
    bufInfo_2_alu_isa_addw | bufInfo_2_alu_isa_lui | bufInfo_2_alu_isa_auipc | bufInfo_2_alu_isa_sub |
    bufInfo_2_alu_isa_subw | bufInfo_2_alu_isa_wfi; // @[riscv_isa.scala 69:73]
  wire  aluIssInfo_2_fun_slt = bufInfo_2_alu_isa_slti | bufInfo_2_alu_isa_sltiu | bufInfo_2_alu_isa_slt |
    bufInfo_2_alu_isa_sltu; // @[riscv_isa.scala 70:39]
  wire  aluIssInfo_2_fun_xor = bufInfo_2_alu_isa_xori | bufInfo_2_alu_isa_xor; // @[riscv_isa.scala 71:25]
  wire  aluIssInfo_2_fun_or = bufInfo_2_alu_isa_ori | bufInfo_2_alu_isa_or; // @[riscv_isa.scala 72:24]
  wire  aluIssInfo_2_fun_and = bufInfo_2_alu_isa_andi | bufInfo_2_alu_isa_and; // @[riscv_isa.scala 73:25]
  wire  aluIssInfo_2_fun_sll = bufInfo_2_alu_isa_slli | bufInfo_2_alu_isa_slliw | bufInfo_2_alu_isa_sll |
    bufInfo_2_alu_isa_sllw; // @[riscv_isa.scala 74:39]
  wire  aluIssInfo_2_fun_srl = bufInfo_2_alu_isa_srli | bufInfo_2_alu_isa_srliw | bufInfo_2_alu_isa_srl |
    bufInfo_2_alu_isa_srlw; // @[riscv_isa.scala 75:39]
  wire  aluIssInfo_2_fun_sra = bufInfo_2_alu_isa_srai | bufInfo_2_alu_isa_sraiw | bufInfo_2_alu_isa_sra |
    bufInfo_2_alu_isa_sraw; // @[riscv_isa.scala 76:39]
  wire  aluIssInfo_2_param_is_32w = bufInfo_2_alu_isa_addiw | bufInfo_2_alu_isa_addw | bufInfo_2_alu_isa_subw |
    bufInfo_2_alu_isa_slliw | bufInfo_2_alu_isa_sllw | bufInfo_2_alu_isa_srliw | bufInfo_2_alu_isa_srlw |
    bufInfo_2_alu_isa_sraiw | bufInfo_2_alu_isa_sraw; // @[riscv_isa.scala 65:74]
  wire  aluIssInfo_2_param_is_usi = bufInfo_2_alu_isa_sltiu | bufInfo_2_alu_isa_sltu; // @[riscv_isa.scala 66:22]
  wire [24:0] _aluIssInfo_res_param_dat_op1_v64_T_12 = bufInfo_2_param_pc[38] ? 25'h1ffffff : 25'h0; // @[Bitwise.scala 77:12]
  wire [63:0] aluIssInfo_res_param_dat_op1_v64_2 = {_aluIssInfo_res_param_dat_op1_v64_T_12,bufInfo_2_param_pc}; // @[Cat.scala 33:92]
  wire [63:0] _aluIssInfo_res_param_dat_op1_T_123 = bufInfo_2_alu_isa_auipc ? aluIssInfo_res_param_dat_op1_v64_2 : 64'h0
    ; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_124 = bufInfo_2_alu_isa_addi ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_125 = bufInfo_2_alu_isa_addiw ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_126 = bufInfo_2_alu_isa_slti ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_127 = bufInfo_2_alu_isa_sltiu ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_128 = bufInfo_2_alu_isa_xori ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_129 = bufInfo_2_alu_isa_ori ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_130 = bufInfo_2_alu_isa_andi ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_131 = bufInfo_2_alu_isa_slli ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_132 = bufInfo_2_alu_isa_slliw ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_133 = bufInfo_2_alu_isa_srli ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_134 = bufInfo_2_alu_isa_srliw ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_135 = bufInfo_2_alu_isa_srai ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_136 = bufInfo_2_alu_isa_sraiw ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_137 = bufInfo_2_alu_isa_add ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_138 = bufInfo_2_alu_isa_addw ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_139 = bufInfo_2_alu_isa_sub ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_140 = bufInfo_2_alu_isa_subw ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_141 = bufInfo_2_alu_isa_sll ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_142 = bufInfo_2_alu_isa_sllw ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_143 = bufInfo_2_alu_isa_slt ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_144 = bufInfo_2_alu_isa_sltu ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_145 = bufInfo_2_alu_isa_xor ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_146 = bufInfo_2_alu_isa_srl ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_147 = bufInfo_2_alu_isa_srlw ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_148 = bufInfo_2_alu_isa_sra ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_149 = bufInfo_2_alu_isa_sraw ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_150 = bufInfo_2_alu_isa_or ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_151 = bufInfo_2_alu_isa_and ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _GEN_442 = {{1'd0}, _aluIssInfo_res_param_dat_op1_T_123}; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_154 = _GEN_442 | _aluIssInfo_res_param_dat_op1_T_124; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_155 = _aluIssInfo_res_param_dat_op1_T_154 |
    _aluIssInfo_res_param_dat_op1_T_125; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_156 = _aluIssInfo_res_param_dat_op1_T_155 |
    _aluIssInfo_res_param_dat_op1_T_126; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_157 = _aluIssInfo_res_param_dat_op1_T_156 |
    _aluIssInfo_res_param_dat_op1_T_127; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_158 = _aluIssInfo_res_param_dat_op1_T_157 |
    _aluIssInfo_res_param_dat_op1_T_128; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_159 = _aluIssInfo_res_param_dat_op1_T_158 |
    _aluIssInfo_res_param_dat_op1_T_129; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_160 = _aluIssInfo_res_param_dat_op1_T_159 |
    _aluIssInfo_res_param_dat_op1_T_130; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_161 = _aluIssInfo_res_param_dat_op1_T_160 |
    _aluIssInfo_res_param_dat_op1_T_131; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_162 = _aluIssInfo_res_param_dat_op1_T_161 |
    _aluIssInfo_res_param_dat_op1_T_132; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_163 = _aluIssInfo_res_param_dat_op1_T_162 |
    _aluIssInfo_res_param_dat_op1_T_133; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_164 = _aluIssInfo_res_param_dat_op1_T_163 |
    _aluIssInfo_res_param_dat_op1_T_134; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_165 = _aluIssInfo_res_param_dat_op1_T_164 |
    _aluIssInfo_res_param_dat_op1_T_135; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_166 = _aluIssInfo_res_param_dat_op1_T_165 |
    _aluIssInfo_res_param_dat_op1_T_136; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_167 = _aluIssInfo_res_param_dat_op1_T_166 |
    _aluIssInfo_res_param_dat_op1_T_137; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_168 = _aluIssInfo_res_param_dat_op1_T_167 |
    _aluIssInfo_res_param_dat_op1_T_138; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_169 = _aluIssInfo_res_param_dat_op1_T_168 |
    _aluIssInfo_res_param_dat_op1_T_139; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_170 = _aluIssInfo_res_param_dat_op1_T_169 |
    _aluIssInfo_res_param_dat_op1_T_140; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_171 = _aluIssInfo_res_param_dat_op1_T_170 |
    _aluIssInfo_res_param_dat_op1_T_141; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_172 = _aluIssInfo_res_param_dat_op1_T_171 |
    _aluIssInfo_res_param_dat_op1_T_142; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_173 = _aluIssInfo_res_param_dat_op1_T_172 |
    _aluIssInfo_res_param_dat_op1_T_143; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_174 = _aluIssInfo_res_param_dat_op1_T_173 |
    _aluIssInfo_res_param_dat_op1_T_144; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_175 = _aluIssInfo_res_param_dat_op1_T_174 |
    _aluIssInfo_res_param_dat_op1_T_145; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_176 = _aluIssInfo_res_param_dat_op1_T_175 |
    _aluIssInfo_res_param_dat_op1_T_146; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_177 = _aluIssInfo_res_param_dat_op1_T_176 |
    _aluIssInfo_res_param_dat_op1_T_147; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_178 = _aluIssInfo_res_param_dat_op1_T_177 |
    _aluIssInfo_res_param_dat_op1_T_148; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_179 = _aluIssInfo_res_param_dat_op1_T_178 |
    _aluIssInfo_res_param_dat_op1_T_149; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_180 = _aluIssInfo_res_param_dat_op1_T_179 |
    _aluIssInfo_res_param_dat_op1_T_150; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_181 = _aluIssInfo_res_param_dat_op1_T_180 |
    _aluIssInfo_res_param_dat_op1_T_151; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_152 = ~postBufOperator_2_1; // @[Issue.scala 586:101]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_154 = _aluIssInfo_res_param_dat_op2_T_152 + 65'h1; // @[Issue.scala 586:107]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_158 = bufInfo_2_alu_isa_lui ? bufInfo_2_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_159 = bufInfo_2_alu_isa_auipc ? bufInfo_2_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_160 = bufInfo_2_alu_isa_addi ? bufInfo_2_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_161 = bufInfo_2_alu_isa_addiw ? bufInfo_2_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_162 = bufInfo_2_alu_isa_slti ? bufInfo_2_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_163 = bufInfo_2_alu_isa_sltiu ? bufInfo_2_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_164 = bufInfo_2_alu_isa_xori ? bufInfo_2_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_165 = bufInfo_2_alu_isa_ori ? bufInfo_2_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_166 = bufInfo_2_alu_isa_andi ? bufInfo_2_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_167 = bufInfo_2_alu_isa_slli ? bufInfo_2_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_168 = bufInfo_2_alu_isa_slliw ? bufInfo_2_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_169 = bufInfo_2_alu_isa_srli ? bufInfo_2_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_170 = bufInfo_2_alu_isa_srliw ? bufInfo_2_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_171 = bufInfo_2_alu_isa_srai ? bufInfo_2_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_172 = bufInfo_2_alu_isa_sraiw ? bufInfo_2_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_173 = bufInfo_2_alu_isa_add ? postBufOperator_2_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_174 = bufInfo_2_alu_isa_addw ? postBufOperator_2_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_175 = bufInfo_2_alu_isa_sub ? _aluIssInfo_res_param_dat_op2_T_154 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_176 = bufInfo_2_alu_isa_subw ? _aluIssInfo_res_param_dat_op2_T_154 : 65'h0
    ; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_177 = bufInfo_2_alu_isa_sll ? postBufOperator_2_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_178 = bufInfo_2_alu_isa_sllw ? postBufOperator_2_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_179 = bufInfo_2_alu_isa_slt ? postBufOperator_2_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_180 = bufInfo_2_alu_isa_sltu ? postBufOperator_2_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_181 = bufInfo_2_alu_isa_xor ? postBufOperator_2_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_182 = bufInfo_2_alu_isa_srl ? postBufOperator_2_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_183 = bufInfo_2_alu_isa_srlw ? postBufOperator_2_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_184 = bufInfo_2_alu_isa_sra ? postBufOperator_2_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_185 = bufInfo_2_alu_isa_sraw ? postBufOperator_2_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_186 = bufInfo_2_alu_isa_or ? postBufOperator_2_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_187 = bufInfo_2_alu_isa_and ? postBufOperator_2_1 : 65'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_189 = _aluIssInfo_res_param_dat_op2_T_158 |
    _aluIssInfo_res_param_dat_op2_T_159; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_190 = _aluIssInfo_res_param_dat_op2_T_189 |
    _aluIssInfo_res_param_dat_op2_T_160; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_191 = _aluIssInfo_res_param_dat_op2_T_190 |
    _aluIssInfo_res_param_dat_op2_T_161; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_192 = _aluIssInfo_res_param_dat_op2_T_191 |
    _aluIssInfo_res_param_dat_op2_T_162; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_193 = _aluIssInfo_res_param_dat_op2_T_192 |
    _aluIssInfo_res_param_dat_op2_T_163; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_194 = _aluIssInfo_res_param_dat_op2_T_193 |
    _aluIssInfo_res_param_dat_op2_T_164; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_195 = _aluIssInfo_res_param_dat_op2_T_194 |
    _aluIssInfo_res_param_dat_op2_T_165; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_196 = _aluIssInfo_res_param_dat_op2_T_195 |
    _aluIssInfo_res_param_dat_op2_T_166; // @[Mux.scala 27:73]
  wire [63:0] _GEN_443 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_167}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_197 = _aluIssInfo_res_param_dat_op2_T_196 | _GEN_443; // @[Mux.scala 27:73]
  wire [63:0] _GEN_444 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_168}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_198 = _aluIssInfo_res_param_dat_op2_T_197 | _GEN_444; // @[Mux.scala 27:73]
  wire [63:0] _GEN_445 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_169}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_199 = _aluIssInfo_res_param_dat_op2_T_198 | _GEN_445; // @[Mux.scala 27:73]
  wire [63:0] _GEN_446 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_170}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_200 = _aluIssInfo_res_param_dat_op2_T_199 | _GEN_446; // @[Mux.scala 27:73]
  wire [63:0] _GEN_447 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_171}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_201 = _aluIssInfo_res_param_dat_op2_T_200 | _GEN_447; // @[Mux.scala 27:73]
  wire [63:0] _GEN_448 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_172}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_202 = _aluIssInfo_res_param_dat_op2_T_201 | _GEN_448; // @[Mux.scala 27:73]
  wire [64:0] _GEN_449 = {{1'd0}, _aluIssInfo_res_param_dat_op2_T_202}; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_203 = _GEN_449 | _aluIssInfo_res_param_dat_op2_T_173; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_204 = _aluIssInfo_res_param_dat_op2_T_203 |
    _aluIssInfo_res_param_dat_op2_T_174; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_205 = _aluIssInfo_res_param_dat_op2_T_204 |
    _aluIssInfo_res_param_dat_op2_T_175; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_206 = _aluIssInfo_res_param_dat_op2_T_205 |
    _aluIssInfo_res_param_dat_op2_T_176; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_207 = _aluIssInfo_res_param_dat_op2_T_206 |
    _aluIssInfo_res_param_dat_op2_T_177; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_208 = _aluIssInfo_res_param_dat_op2_T_207 |
    _aluIssInfo_res_param_dat_op2_T_178; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_209 = _aluIssInfo_res_param_dat_op2_T_208 |
    _aluIssInfo_res_param_dat_op2_T_179; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_210 = _aluIssInfo_res_param_dat_op2_T_209 |
    _aluIssInfo_res_param_dat_op2_T_180; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_211 = _aluIssInfo_res_param_dat_op2_T_210 |
    _aluIssInfo_res_param_dat_op2_T_181; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_212 = _aluIssInfo_res_param_dat_op2_T_211 |
    _aluIssInfo_res_param_dat_op2_T_182; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_213 = _aluIssInfo_res_param_dat_op2_T_212 |
    _aluIssInfo_res_param_dat_op2_T_183; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_214 = _aluIssInfo_res_param_dat_op2_T_213 |
    _aluIssInfo_res_param_dat_op2_T_184; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_215 = _aluIssInfo_res_param_dat_op2_T_214 |
    _aluIssInfo_res_param_dat_op2_T_185; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_216 = _aluIssInfo_res_param_dat_op2_T_215 |
    _aluIssInfo_res_param_dat_op2_T_186; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_217 = _aluIssInfo_res_param_dat_op2_T_216 |
    _aluIssInfo_res_param_dat_op2_T_187; // @[Mux.scala 27:73]
  wire  aluIssInfo_3_fun_add = bufInfo_3_alu_isa_addi | bufInfo_3_alu_isa_addiw | bufInfo_3_alu_isa_add |
    bufInfo_3_alu_isa_addw | bufInfo_3_alu_isa_lui | bufInfo_3_alu_isa_auipc | bufInfo_3_alu_isa_sub |
    bufInfo_3_alu_isa_subw | bufInfo_3_alu_isa_wfi; // @[riscv_isa.scala 69:73]
  wire  aluIssInfo_3_fun_slt = bufInfo_3_alu_isa_slti | bufInfo_3_alu_isa_sltiu | bufInfo_3_alu_isa_slt |
    bufInfo_3_alu_isa_sltu; // @[riscv_isa.scala 70:39]
  wire  aluIssInfo_3_fun_xor = bufInfo_3_alu_isa_xori | bufInfo_3_alu_isa_xor; // @[riscv_isa.scala 71:25]
  wire  aluIssInfo_3_fun_or = bufInfo_3_alu_isa_ori | bufInfo_3_alu_isa_or; // @[riscv_isa.scala 72:24]
  wire  aluIssInfo_3_fun_and = bufInfo_3_alu_isa_andi | bufInfo_3_alu_isa_and; // @[riscv_isa.scala 73:25]
  wire  aluIssInfo_3_fun_sll = bufInfo_3_alu_isa_slli | bufInfo_3_alu_isa_slliw | bufInfo_3_alu_isa_sll |
    bufInfo_3_alu_isa_sllw; // @[riscv_isa.scala 74:39]
  wire  aluIssInfo_3_fun_srl = bufInfo_3_alu_isa_srli | bufInfo_3_alu_isa_srliw | bufInfo_3_alu_isa_srl |
    bufInfo_3_alu_isa_srlw; // @[riscv_isa.scala 75:39]
  wire  aluIssInfo_3_fun_sra = bufInfo_3_alu_isa_srai | bufInfo_3_alu_isa_sraiw | bufInfo_3_alu_isa_sra |
    bufInfo_3_alu_isa_sraw; // @[riscv_isa.scala 76:39]
  wire  aluIssInfo_3_param_is_32w = bufInfo_3_alu_isa_addiw | bufInfo_3_alu_isa_addw | bufInfo_3_alu_isa_subw |
    bufInfo_3_alu_isa_slliw | bufInfo_3_alu_isa_sllw | bufInfo_3_alu_isa_srliw | bufInfo_3_alu_isa_srlw |
    bufInfo_3_alu_isa_sraiw | bufInfo_3_alu_isa_sraw; // @[riscv_isa.scala 65:74]
  wire  aluIssInfo_3_param_is_usi = bufInfo_3_alu_isa_sltiu | bufInfo_3_alu_isa_sltu; // @[riscv_isa.scala 66:22]
  wire [24:0] _aluIssInfo_res_param_dat_op1_v64_T_17 = bufInfo_3_param_pc[38] ? 25'h1ffffff : 25'h0; // @[Bitwise.scala 77:12]
  wire [63:0] aluIssInfo_res_param_dat_op1_v64_3 = {_aluIssInfo_res_param_dat_op1_v64_T_17,bufInfo_3_param_pc}; // @[Cat.scala 33:92]
  wire [63:0] _aluIssInfo_res_param_dat_op1_T_184 = bufInfo_3_alu_isa_auipc ? aluIssInfo_res_param_dat_op1_v64_3 : 64'h0
    ; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_185 = bufInfo_3_alu_isa_addi ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_186 = bufInfo_3_alu_isa_addiw ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_187 = bufInfo_3_alu_isa_slti ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_188 = bufInfo_3_alu_isa_sltiu ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_189 = bufInfo_3_alu_isa_xori ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_190 = bufInfo_3_alu_isa_ori ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_191 = bufInfo_3_alu_isa_andi ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_192 = bufInfo_3_alu_isa_slli ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_193 = bufInfo_3_alu_isa_slliw ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_194 = bufInfo_3_alu_isa_srli ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_195 = bufInfo_3_alu_isa_srliw ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_196 = bufInfo_3_alu_isa_srai ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_197 = bufInfo_3_alu_isa_sraiw ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_198 = bufInfo_3_alu_isa_add ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_199 = bufInfo_3_alu_isa_addw ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_200 = bufInfo_3_alu_isa_sub ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_201 = bufInfo_3_alu_isa_subw ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_202 = bufInfo_3_alu_isa_sll ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_203 = bufInfo_3_alu_isa_sllw ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_204 = bufInfo_3_alu_isa_slt ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_205 = bufInfo_3_alu_isa_sltu ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_206 = bufInfo_3_alu_isa_xor ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_207 = bufInfo_3_alu_isa_srl ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_208 = bufInfo_3_alu_isa_srlw ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_209 = bufInfo_3_alu_isa_sra ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_210 = bufInfo_3_alu_isa_sraw ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_211 = bufInfo_3_alu_isa_or ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_212 = bufInfo_3_alu_isa_and ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _GEN_450 = {{1'd0}, _aluIssInfo_res_param_dat_op1_T_184}; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_215 = _GEN_450 | _aluIssInfo_res_param_dat_op1_T_185; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_216 = _aluIssInfo_res_param_dat_op1_T_215 |
    _aluIssInfo_res_param_dat_op1_T_186; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_217 = _aluIssInfo_res_param_dat_op1_T_216 |
    _aluIssInfo_res_param_dat_op1_T_187; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_218 = _aluIssInfo_res_param_dat_op1_T_217 |
    _aluIssInfo_res_param_dat_op1_T_188; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_219 = _aluIssInfo_res_param_dat_op1_T_218 |
    _aluIssInfo_res_param_dat_op1_T_189; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_220 = _aluIssInfo_res_param_dat_op1_T_219 |
    _aluIssInfo_res_param_dat_op1_T_190; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_221 = _aluIssInfo_res_param_dat_op1_T_220 |
    _aluIssInfo_res_param_dat_op1_T_191; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_222 = _aluIssInfo_res_param_dat_op1_T_221 |
    _aluIssInfo_res_param_dat_op1_T_192; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_223 = _aluIssInfo_res_param_dat_op1_T_222 |
    _aluIssInfo_res_param_dat_op1_T_193; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_224 = _aluIssInfo_res_param_dat_op1_T_223 |
    _aluIssInfo_res_param_dat_op1_T_194; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_225 = _aluIssInfo_res_param_dat_op1_T_224 |
    _aluIssInfo_res_param_dat_op1_T_195; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_226 = _aluIssInfo_res_param_dat_op1_T_225 |
    _aluIssInfo_res_param_dat_op1_T_196; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_227 = _aluIssInfo_res_param_dat_op1_T_226 |
    _aluIssInfo_res_param_dat_op1_T_197; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_228 = _aluIssInfo_res_param_dat_op1_T_227 |
    _aluIssInfo_res_param_dat_op1_T_198; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_229 = _aluIssInfo_res_param_dat_op1_T_228 |
    _aluIssInfo_res_param_dat_op1_T_199; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_230 = _aluIssInfo_res_param_dat_op1_T_229 |
    _aluIssInfo_res_param_dat_op1_T_200; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_231 = _aluIssInfo_res_param_dat_op1_T_230 |
    _aluIssInfo_res_param_dat_op1_T_201; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_232 = _aluIssInfo_res_param_dat_op1_T_231 |
    _aluIssInfo_res_param_dat_op1_T_202; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_233 = _aluIssInfo_res_param_dat_op1_T_232 |
    _aluIssInfo_res_param_dat_op1_T_203; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_234 = _aluIssInfo_res_param_dat_op1_T_233 |
    _aluIssInfo_res_param_dat_op1_T_204; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_235 = _aluIssInfo_res_param_dat_op1_T_234 |
    _aluIssInfo_res_param_dat_op1_T_205; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_236 = _aluIssInfo_res_param_dat_op1_T_235 |
    _aluIssInfo_res_param_dat_op1_T_206; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_237 = _aluIssInfo_res_param_dat_op1_T_236 |
    _aluIssInfo_res_param_dat_op1_T_207; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_238 = _aluIssInfo_res_param_dat_op1_T_237 |
    _aluIssInfo_res_param_dat_op1_T_208; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_239 = _aluIssInfo_res_param_dat_op1_T_238 |
    _aluIssInfo_res_param_dat_op1_T_209; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_240 = _aluIssInfo_res_param_dat_op1_T_239 |
    _aluIssInfo_res_param_dat_op1_T_210; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_241 = _aluIssInfo_res_param_dat_op1_T_240 |
    _aluIssInfo_res_param_dat_op1_T_211; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_242 = _aluIssInfo_res_param_dat_op1_T_241 |
    _aluIssInfo_res_param_dat_op1_T_212; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_225 = ~postBufOperator_3_1; // @[Issue.scala 586:101]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_227 = _aluIssInfo_res_param_dat_op2_T_225 + 65'h1; // @[Issue.scala 586:107]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_231 = bufInfo_3_alu_isa_lui ? bufInfo_3_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_232 = bufInfo_3_alu_isa_auipc ? bufInfo_3_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_233 = bufInfo_3_alu_isa_addi ? bufInfo_3_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_234 = bufInfo_3_alu_isa_addiw ? bufInfo_3_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_235 = bufInfo_3_alu_isa_slti ? bufInfo_3_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_236 = bufInfo_3_alu_isa_sltiu ? bufInfo_3_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_237 = bufInfo_3_alu_isa_xori ? bufInfo_3_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_238 = bufInfo_3_alu_isa_ori ? bufInfo_3_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_239 = bufInfo_3_alu_isa_andi ? bufInfo_3_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_240 = bufInfo_3_alu_isa_slli ? bufInfo_3_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_241 = bufInfo_3_alu_isa_slliw ? bufInfo_3_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_242 = bufInfo_3_alu_isa_srli ? bufInfo_3_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_243 = bufInfo_3_alu_isa_srliw ? bufInfo_3_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_244 = bufInfo_3_alu_isa_srai ? bufInfo_3_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssInfo_res_param_dat_op2_T_245 = bufInfo_3_alu_isa_sraiw ? bufInfo_3_param_imm[5:0] : 6'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_246 = bufInfo_3_alu_isa_add ? postBufOperator_3_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_247 = bufInfo_3_alu_isa_addw ? postBufOperator_3_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_248 = bufInfo_3_alu_isa_sub ? _aluIssInfo_res_param_dat_op2_T_227 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_249 = bufInfo_3_alu_isa_subw ? _aluIssInfo_res_param_dat_op2_T_227 : 65'h0
    ; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_250 = bufInfo_3_alu_isa_sll ? postBufOperator_3_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_251 = bufInfo_3_alu_isa_sllw ? postBufOperator_3_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_252 = bufInfo_3_alu_isa_slt ? postBufOperator_3_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_253 = bufInfo_3_alu_isa_sltu ? postBufOperator_3_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_254 = bufInfo_3_alu_isa_xor ? postBufOperator_3_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_255 = bufInfo_3_alu_isa_srl ? postBufOperator_3_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_256 = bufInfo_3_alu_isa_srlw ? postBufOperator_3_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_257 = bufInfo_3_alu_isa_sra ? postBufOperator_3_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_258 = bufInfo_3_alu_isa_sraw ? postBufOperator_3_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_259 = bufInfo_3_alu_isa_or ? postBufOperator_3_1 : 65'h0; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_260 = bufInfo_3_alu_isa_and ? postBufOperator_3_1 : 65'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_262 = _aluIssInfo_res_param_dat_op2_T_231 |
    _aluIssInfo_res_param_dat_op2_T_232; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_263 = _aluIssInfo_res_param_dat_op2_T_262 |
    _aluIssInfo_res_param_dat_op2_T_233; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_264 = _aluIssInfo_res_param_dat_op2_T_263 |
    _aluIssInfo_res_param_dat_op2_T_234; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_265 = _aluIssInfo_res_param_dat_op2_T_264 |
    _aluIssInfo_res_param_dat_op2_T_235; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_266 = _aluIssInfo_res_param_dat_op2_T_265 |
    _aluIssInfo_res_param_dat_op2_T_236; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_267 = _aluIssInfo_res_param_dat_op2_T_266 |
    _aluIssInfo_res_param_dat_op2_T_237; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_268 = _aluIssInfo_res_param_dat_op2_T_267 |
    _aluIssInfo_res_param_dat_op2_T_238; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_269 = _aluIssInfo_res_param_dat_op2_T_268 |
    _aluIssInfo_res_param_dat_op2_T_239; // @[Mux.scala 27:73]
  wire [63:0] _GEN_451 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_240}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_270 = _aluIssInfo_res_param_dat_op2_T_269 | _GEN_451; // @[Mux.scala 27:73]
  wire [63:0] _GEN_452 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_241}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_271 = _aluIssInfo_res_param_dat_op2_T_270 | _GEN_452; // @[Mux.scala 27:73]
  wire [63:0] _GEN_453 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_242}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_272 = _aluIssInfo_res_param_dat_op2_T_271 | _GEN_453; // @[Mux.scala 27:73]
  wire [63:0] _GEN_454 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_243}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_273 = _aluIssInfo_res_param_dat_op2_T_272 | _GEN_454; // @[Mux.scala 27:73]
  wire [63:0] _GEN_455 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_244}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_274 = _aluIssInfo_res_param_dat_op2_T_273 | _GEN_455; // @[Mux.scala 27:73]
  wire [63:0] _GEN_456 = {{58'd0}, _aluIssInfo_res_param_dat_op2_T_245}; // @[Mux.scala 27:73]
  wire [63:0] _aluIssInfo_res_param_dat_op2_T_275 = _aluIssInfo_res_param_dat_op2_T_274 | _GEN_456; // @[Mux.scala 27:73]
  wire [64:0] _GEN_457 = {{1'd0}, _aluIssInfo_res_param_dat_op2_T_275}; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_276 = _GEN_457 | _aluIssInfo_res_param_dat_op2_T_246; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_277 = _aluIssInfo_res_param_dat_op2_T_276 |
    _aluIssInfo_res_param_dat_op2_T_247; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_278 = _aluIssInfo_res_param_dat_op2_T_277 |
    _aluIssInfo_res_param_dat_op2_T_248; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_279 = _aluIssInfo_res_param_dat_op2_T_278 |
    _aluIssInfo_res_param_dat_op2_T_249; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_280 = _aluIssInfo_res_param_dat_op2_T_279 |
    _aluIssInfo_res_param_dat_op2_T_250; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_281 = _aluIssInfo_res_param_dat_op2_T_280 |
    _aluIssInfo_res_param_dat_op2_T_251; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_282 = _aluIssInfo_res_param_dat_op2_T_281 |
    _aluIssInfo_res_param_dat_op2_T_252; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_283 = _aluIssInfo_res_param_dat_op2_T_282 |
    _aluIssInfo_res_param_dat_op2_T_253; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_284 = _aluIssInfo_res_param_dat_op2_T_283 |
    _aluIssInfo_res_param_dat_op2_T_254; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_285 = _aluIssInfo_res_param_dat_op2_T_284 |
    _aluIssInfo_res_param_dat_op2_T_255; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_286 = _aluIssInfo_res_param_dat_op2_T_285 |
    _aluIssInfo_res_param_dat_op2_T_256; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_287 = _aluIssInfo_res_param_dat_op2_T_286 |
    _aluIssInfo_res_param_dat_op2_T_257; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_288 = _aluIssInfo_res_param_dat_op2_T_287 |
    _aluIssInfo_res_param_dat_op2_T_258; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_289 = _aluIssInfo_res_param_dat_op2_T_288 |
    _aluIssInfo_res_param_dat_op2_T_259; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_290 = _aluIssInfo_res_param_dat_op2_T_289 |
    _aluIssInfo_res_param_dat_op2_T_260; // @[Mux.scala 27:73]
  wire  _maskCondAluIss_0_0_T_30 = bufInfo_0_alu_isa_lui | bufInfo_0_alu_isa_auipc | bufInfo_0_alu_isa_addi |
    bufInfo_0_alu_isa_addiw | bufInfo_0_alu_isa_slti | bufInfo_0_alu_isa_sltiu | bufInfo_0_alu_isa_xori |
    bufInfo_0_alu_isa_ori | bufInfo_0_alu_isa_andi | bufInfo_0_alu_isa_slli | bufInfo_0_alu_isa_slliw |
    bufInfo_0_alu_isa_srli | bufInfo_0_alu_isa_srliw | bufInfo_0_alu_isa_srai | bufInfo_0_alu_isa_sraiw |
    bufInfo_0_alu_isa_add | bufInfo_0_alu_isa_addw | bufInfo_0_alu_isa_sub | bufInfo_0_alu_isa_subw |
    bufInfo_0_alu_isa_sll | bufInfo_0_alu_isa_sllw | bufInfo_0_alu_isa_slt | bufInfo_0_alu_isa_sltu |
    bufInfo_0_alu_isa_xor | bufInfo_0_alu_isa_srl | bufInfo_0_alu_isa_srlw | bufInfo_0_alu_isa_sra |
    bufInfo_0_alu_isa_sraw | bufInfo_0_alu_isa_or | bufInfo_0_alu_isa_and | bufInfo_0_alu_isa_wfi; // @[riscv_isa.scala 78:217]
  wire  _maskCondAluIss_0_0_T_31 = ~_maskCondAluIss_0_0_T_30; // @[Issue.scala 617:11]
  wire  _maskCondAluIss_0_0_T_32 = _entrySel_T | _maskCondAluIss_0_0_T_31; // @[Issue.scala 616:24]
  wire  _maskCondAluIss_0_0_T_34 = ~(postIsOpReady_0_0 & postIsOpReady_0_1); // @[Issue.scala 618:11]
  wire  maskCondAluIss_0_0 = _maskCondAluIss_0_0_T_32 | _maskCondAluIss_0_0_T_34; // @[Issue.scala 617:38]
  wire  _maskCondAluIss_0_1_T_30 = bufInfo_1_alu_isa_lui | bufInfo_1_alu_isa_auipc | bufInfo_1_alu_isa_addi |
    bufInfo_1_alu_isa_addiw | bufInfo_1_alu_isa_slti | bufInfo_1_alu_isa_sltiu | bufInfo_1_alu_isa_xori |
    bufInfo_1_alu_isa_ori | bufInfo_1_alu_isa_andi | bufInfo_1_alu_isa_slli | bufInfo_1_alu_isa_slliw |
    bufInfo_1_alu_isa_srli | bufInfo_1_alu_isa_srliw | bufInfo_1_alu_isa_srai | bufInfo_1_alu_isa_sraiw |
    bufInfo_1_alu_isa_add | bufInfo_1_alu_isa_addw | bufInfo_1_alu_isa_sub | bufInfo_1_alu_isa_subw |
    bufInfo_1_alu_isa_sll | bufInfo_1_alu_isa_sllw | bufInfo_1_alu_isa_slt | bufInfo_1_alu_isa_sltu |
    bufInfo_1_alu_isa_xor | bufInfo_1_alu_isa_srl | bufInfo_1_alu_isa_srlw | bufInfo_1_alu_isa_sra |
    bufInfo_1_alu_isa_sraw | bufInfo_1_alu_isa_or | bufInfo_1_alu_isa_and | bufInfo_1_alu_isa_wfi; // @[riscv_isa.scala 78:217]
  wire  _maskCondAluIss_0_1_T_31 = ~_maskCondAluIss_0_1_T_30; // @[Issue.scala 617:11]
  wire  _maskCondAluIss_0_1_T_32 = _entrySel_T_1 | _maskCondAluIss_0_1_T_31; // @[Issue.scala 616:24]
  wire  _maskCondAluIss_0_1_T_34 = ~(postIsOpReady_1_0 & postIsOpReady_1_1); // @[Issue.scala 618:11]
  wire  maskCondAluIss_0_1 = _maskCondAluIss_0_1_T_32 | _maskCondAluIss_0_1_T_34; // @[Issue.scala 617:38]
  wire  _maskCondAluIss_0_2_T_30 = bufInfo_2_alu_isa_lui | bufInfo_2_alu_isa_auipc | bufInfo_2_alu_isa_addi |
    bufInfo_2_alu_isa_addiw | bufInfo_2_alu_isa_slti | bufInfo_2_alu_isa_sltiu | bufInfo_2_alu_isa_xori |
    bufInfo_2_alu_isa_ori | bufInfo_2_alu_isa_andi | bufInfo_2_alu_isa_slli | bufInfo_2_alu_isa_slliw |
    bufInfo_2_alu_isa_srli | bufInfo_2_alu_isa_srliw | bufInfo_2_alu_isa_srai | bufInfo_2_alu_isa_sraiw |
    bufInfo_2_alu_isa_add | bufInfo_2_alu_isa_addw | bufInfo_2_alu_isa_sub | bufInfo_2_alu_isa_subw |
    bufInfo_2_alu_isa_sll | bufInfo_2_alu_isa_sllw | bufInfo_2_alu_isa_slt | bufInfo_2_alu_isa_sltu |
    bufInfo_2_alu_isa_xor | bufInfo_2_alu_isa_srl | bufInfo_2_alu_isa_srlw | bufInfo_2_alu_isa_sra |
    bufInfo_2_alu_isa_sraw | bufInfo_2_alu_isa_or | bufInfo_2_alu_isa_and | bufInfo_2_alu_isa_wfi; // @[riscv_isa.scala 78:217]
  wire  _maskCondAluIss_0_2_T_31 = ~_maskCondAluIss_0_2_T_30; // @[Issue.scala 617:11]
  wire  _maskCondAluIss_0_2_T_32 = _entrySel_T_2 | _maskCondAluIss_0_2_T_31; // @[Issue.scala 616:24]
  wire  _maskCondAluIss_0_2_T_34 = ~(postIsOpReady_2_0 & postIsOpReady_2_1); // @[Issue.scala 618:11]
  wire  maskCondAluIss_0_2 = _maskCondAluIss_0_2_T_32 | _maskCondAluIss_0_2_T_34; // @[Issue.scala 617:38]
  wire  _maskCondAluIss_0_3_T_30 = bufInfo_3_alu_isa_lui | bufInfo_3_alu_isa_auipc | bufInfo_3_alu_isa_addi |
    bufInfo_3_alu_isa_addiw | bufInfo_3_alu_isa_slti | bufInfo_3_alu_isa_sltiu | bufInfo_3_alu_isa_xori |
    bufInfo_3_alu_isa_ori | bufInfo_3_alu_isa_andi | bufInfo_3_alu_isa_slli | bufInfo_3_alu_isa_slliw |
    bufInfo_3_alu_isa_srli | bufInfo_3_alu_isa_srliw | bufInfo_3_alu_isa_srai | bufInfo_3_alu_isa_sraiw |
    bufInfo_3_alu_isa_add | bufInfo_3_alu_isa_addw | bufInfo_3_alu_isa_sub | bufInfo_3_alu_isa_subw |
    bufInfo_3_alu_isa_sll | bufInfo_3_alu_isa_sllw | bufInfo_3_alu_isa_slt | bufInfo_3_alu_isa_sltu |
    bufInfo_3_alu_isa_xor | bufInfo_3_alu_isa_srl | bufInfo_3_alu_isa_srlw | bufInfo_3_alu_isa_sra |
    bufInfo_3_alu_isa_sraw | bufInfo_3_alu_isa_or | bufInfo_3_alu_isa_and | bufInfo_3_alu_isa_wfi; // @[riscv_isa.scala 78:217]
  wire  _maskCondAluIss_0_3_T_31 = ~_maskCondAluIss_0_3_T_30; // @[Issue.scala 617:11]
  wire  _maskCondAluIss_0_3_T_32 = _io_dptReq_0_ready_T_3 | _maskCondAluIss_0_3_T_31; // @[Issue.scala 616:24]
  wire  _maskCondAluIss_0_3_T_34 = ~(postIsOpReady_3_0 & postIsOpReady_3_1); // @[Issue.scala 618:11]
  wire  maskCondAluIss_0_3 = _maskCondAluIss_0_3_T_32 | _maskCondAluIss_0_3_T_34; // @[Issue.scala 617:38]
  wire  matrixOut_10_0_0 = ageMatrixW_0_0 & ~maskCondAluIss_0_0 | maskCondAluIss_0_0; // @[Issue.scala 200:60]
  wire  matrixOut_10_0_1 = ageMatrixW_0_1 & ~maskCondAluIss_0_1 | maskCondAluIss_0_0; // @[Issue.scala 200:60]
  wire  matrixOut_10_0_2 = ageMatrixW_0_2 & ~maskCondAluIss_0_2 | maskCondAluIss_0_0; // @[Issue.scala 200:60]
  wire  matrixOut_10_0_3 = ageMatrixW_0_3 & ~maskCondAluIss_0_3 | maskCondAluIss_0_0; // @[Issue.scala 200:60]
  wire  matrixOut_10_1_0 = ageMatrixR_1_0 & ~maskCondAluIss_0_0 | maskCondAluIss_0_1; // @[Issue.scala 200:60]
  wire  matrixOut_10_1_1 = ageMatrixW_1_1 & ~maskCondAluIss_0_1 | maskCondAluIss_0_1; // @[Issue.scala 200:60]
  wire  matrixOut_10_1_2 = ageMatrixW_1_2 & ~maskCondAluIss_0_2 | maskCondAluIss_0_1; // @[Issue.scala 200:60]
  wire  matrixOut_10_1_3 = ageMatrixW_1_3 & ~maskCondAluIss_0_3 | maskCondAluIss_0_1; // @[Issue.scala 200:60]
  wire  matrixOut_10_2_0 = ageMatrixR_2_0 & ~maskCondAluIss_0_0 | maskCondAluIss_0_2; // @[Issue.scala 200:60]
  wire  matrixOut_10_2_1 = ageMatrixR_2_1 & ~maskCondAluIss_0_1 | maskCondAluIss_0_2; // @[Issue.scala 200:60]
  wire  matrixOut_10_2_2 = ageMatrixW_2_2 & ~maskCondAluIss_0_2 | maskCondAluIss_0_2; // @[Issue.scala 200:60]
  wire  matrixOut_10_2_3 = ageMatrixW_2_3 & ~maskCondAluIss_0_3 | maskCondAluIss_0_2; // @[Issue.scala 200:60]
  wire  matrixOut_10_3_0 = ageMatrixR_3_0 & ~maskCondAluIss_0_0 | maskCondAluIss_0_3; // @[Issue.scala 200:60]
  wire  matrixOut_10_3_1 = ageMatrixR_3_1 & ~maskCondAluIss_0_1 | maskCondAluIss_0_3; // @[Issue.scala 200:60]
  wire  matrixOut_10_3_2 = ageMatrixR_3_2 & ~maskCondAluIss_0_2 | maskCondAluIss_0_3; // @[Issue.scala 200:60]
  wire  matrixOut_10_3_3 = ageMatrixW_3_3 & ~maskCondAluIss_0_3 | maskCondAluIss_0_3; // @[Issue.scala 200:60]
  wire  _T_1398 = matrixOut_10_0_0 & matrixOut_10_0_1 & matrixOut_10_0_2 & matrixOut_10_0_3 & (matrixOut_10_1_0 &
    matrixOut_10_1_1 & matrixOut_10_1_2 & matrixOut_10_1_3) & (matrixOut_10_2_0 & matrixOut_10_2_1 & matrixOut_10_2_2 &
    matrixOut_10_2_3) & (matrixOut_10_3_0 & matrixOut_10_3_1 & matrixOut_10_3_2 & matrixOut_10_3_3); // @[Issue.scala 628:31]
  wire  _T_1406 = ~matrixOut_10_0_0 & ~matrixOut_10_0_1 & ~matrixOut_10_0_2 & ~matrixOut_10_0_3; // @[Issue.scala 629:65]
  wire  _T_1414 = ~matrixOut_10_1_0 & ~matrixOut_10_1_1 & ~matrixOut_10_1_2 & ~matrixOut_10_1_3; // @[Issue.scala 629:65]
  wire  _T_1422 = ~matrixOut_10_2_0 & ~matrixOut_10_2_1 & ~matrixOut_10_2_2 & ~matrixOut_10_2_3; // @[Issue.scala 629:65]
  wire  _T_1430 = ~matrixOut_10_3_0 & ~matrixOut_10_3_1 & ~matrixOut_10_3_2 & ~matrixOut_10_3_3; // @[Issue.scala 629:65]
  wire [1:0] _T_1431 = _T_1406 + _T_1414; // @[Bitwise.scala 51:90]
  wire [1:0] _T_1433 = _T_1422 + _T_1430; // @[Bitwise.scala 51:90]
  wire [2:0] _T_1435 = _T_1431 + _T_1433; // @[Bitwise.scala 51:90]
  wire  _T_1437 = _T_1435 == 3'h1; // @[Issue.scala 629:100]
  wire  _T_1438 = matrixOut_10_0_0 & matrixOut_10_0_1 & matrixOut_10_0_2 & matrixOut_10_0_3 & (matrixOut_10_1_0 &
    matrixOut_10_1_1 & matrixOut_10_1_2 & matrixOut_10_1_3) & (matrixOut_10_2_0 & matrixOut_10_2_1 & matrixOut_10_2_2 &
    matrixOut_10_2_3) & (matrixOut_10_3_0 & matrixOut_10_3_1 & matrixOut_10_3_2 & matrixOut_10_3_3) | _T_1437; // @[Issue.scala 628:92]
  wire [1:0] _aluIssIdx_0_T_32 = _T_1422 ? 2'h2 : 2'h3; // @[Issue.scala 635:51]
  wire [1:0] _aluIssIdx_0_T_33 = _T_1414 ? 2'h1 : _aluIssIdx_0_T_32; // @[Issue.scala 635:51]
  wire [1:0] aluIssIdx_0 = _T_1406 ? 2'h0 : _aluIssIdx_0_T_33; // @[Issue.scala 635:51]
  wire [63:0] aluIssInfo_0_param_dat_op2 = _aluIssInfo_res_param_dat_op2_T_71[63:0]; // @[Issue.scala 538:19 576:23]
  wire [63:0] _aluIssFifo_0_io_enq_bits_T_39 = _T_1406 ? aluIssInfo_0_param_dat_op2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] aluIssInfo_1_param_dat_op2 = _aluIssInfo_res_param_dat_op2_T_144[63:0]; // @[Issue.scala 538:19 576:23]
  wire [63:0] _aluIssFifo_0_io_enq_bits_T_40 = _T_1414 ? aluIssInfo_1_param_dat_op2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] aluIssInfo_2_param_dat_op2 = _aluIssInfo_res_param_dat_op2_T_217[63:0]; // @[Issue.scala 538:19 576:23]
  wire [63:0] _aluIssFifo_0_io_enq_bits_T_41 = _T_1422 ? aluIssInfo_2_param_dat_op2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] aluIssInfo_3_param_dat_op2 = _aluIssInfo_res_param_dat_op2_T_290[63:0]; // @[Issue.scala 538:19 576:23]
  wire [63:0] _aluIssFifo_0_io_enq_bits_T_42 = _T_1430 ? aluIssInfo_3_param_dat_op2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssFifo_0_io_enq_bits_T_43 = _aluIssFifo_0_io_enq_bits_T_39 | _aluIssFifo_0_io_enq_bits_T_40; // @[Mux.scala 27:73]
  wire [63:0] _aluIssFifo_0_io_enq_bits_T_44 = _aluIssFifo_0_io_enq_bits_T_43 | _aluIssFifo_0_io_enq_bits_T_41; // @[Mux.scala 27:73]
  wire [63:0] aluIssInfo_0_param_dat_op1 = _aluIssInfo_res_param_dat_op1_T_59[63:0]; // @[Issue.scala 538:19 554:23]
  wire [63:0] _aluIssFifo_0_io_enq_bits_T_46 = _T_1406 ? aluIssInfo_0_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] aluIssInfo_1_param_dat_op1 = _aluIssInfo_res_param_dat_op1_T_120[63:0]; // @[Issue.scala 538:19 554:23]
  wire [63:0] _aluIssFifo_0_io_enq_bits_T_47 = _T_1414 ? aluIssInfo_1_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] aluIssInfo_2_param_dat_op1 = _aluIssInfo_res_param_dat_op1_T_181[63:0]; // @[Issue.scala 538:19 554:23]
  wire [63:0] _aluIssFifo_0_io_enq_bits_T_48 = _T_1422 ? aluIssInfo_2_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] aluIssInfo_3_param_dat_op1 = _aluIssInfo_res_param_dat_op1_T_242[63:0]; // @[Issue.scala 538:19 554:23]
  wire [63:0] _aluIssFifo_0_io_enq_bits_T_49 = _T_1430 ? aluIssInfo_3_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _aluIssFifo_0_io_enq_bits_T_50 = _aluIssFifo_0_io_enq_bits_T_46 | _aluIssFifo_0_io_enq_bits_T_47; // @[Mux.scala 27:73]
  wire [63:0] _aluIssFifo_0_io_enq_bits_T_51 = _aluIssFifo_0_io_enq_bits_T_50 | _aluIssFifo_0_io_enq_bits_T_48; // @[Mux.scala 27:73]
  wire [5:0] _aluIssFifo_0_io_enq_bits_T_67 = _T_1406 ? bufInfo_0_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssFifo_0_io_enq_bits_T_68 = _T_1414 ? bufInfo_1_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssFifo_0_io_enq_bits_T_69 = _T_1422 ? bufInfo_2_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssFifo_0_io_enq_bits_T_70 = _T_1430 ? bufInfo_3_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssFifo_0_io_enq_bits_T_71 = _aluIssFifo_0_io_enq_bits_T_67 | _aluIssFifo_0_io_enq_bits_T_68; // @[Mux.scala 27:73]
  wire [5:0] _aluIssFifo_0_io_enq_bits_T_72 = _aluIssFifo_0_io_enq_bits_T_71 | _aluIssFifo_0_io_enq_bits_T_69; // @[Mux.scala 27:73]
  wire  _T_1442 = aluIssFifo_0_io_enq_ready & aluIssFifo_0_io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _T_1444 = _T_1442 & aluIssIdx_0 == 2'h0; // @[Issue.scala 640:41]
  wire  _GEN_3542 = _T_1442 & aluIssIdx_0 == 2'h0 ? 1'h0 : bufValidDnxt_0_0; // @[Issue.scala 640:68 641:21 75:12]
  wire  _T_1487 = _T_1442 & aluIssIdx_0 == 2'h1; // @[Issue.scala 640:41]
  wire  _GEN_3543 = _T_1442 & aluIssIdx_0 == 2'h1 ? 1'h0 : bufValidDnxt_0_1; // @[Issue.scala 640:68 641:21 75:12]
  wire  _T_1530 = _T_1442 & aluIssIdx_0 == 2'h2; // @[Issue.scala 640:41]
  wire  _GEN_3544 = _T_1442 & aluIssIdx_0 == 2'h2 ? 1'h0 : bufValidDnxt_0_2; // @[Issue.scala 640:68 641:21 75:12]
  wire  _T_1573 = _T_1442 & aluIssIdx_0 == 2'h3; // @[Issue.scala 640:41]
  wire  _GEN_3545 = _T_1442 & aluIssIdx_0 == 2'h3 ? 1'h0 : bufValidDnxt_0_3; // @[Issue.scala 640:68 641:21 75:12]
  wire  _maskCondMulIss_0_0_T_4 = bufInfo_0_mul_isa_mul | bufInfo_0_mul_isa_mulh | bufInfo_0_mul_isa_mulhsu |
    bufInfo_0_mul_isa_mulhu | bufInfo_0_mul_isa_mulw; // @[riscv_isa.scala 203:43]
  wire  _maskCondMulIss_0_0_T_11 = bufInfo_0_mul_isa_div | bufInfo_0_mul_isa_divu | bufInfo_0_mul_isa_divw |
    bufInfo_0_mul_isa_divuw | bufInfo_0_mul_isa_rem | bufInfo_0_mul_isa_remu | bufInfo_0_mul_isa_remw |
    bufInfo_0_mul_isa_remuw; // @[riscv_isa.scala 204:61]
  wire  _maskCondMulIss_0_0_T_12 = _maskCondMulIss_0_0_T_4 | _maskCondMulIss_0_0_T_11; // @[riscv_isa.scala 206:25]
  wire  _maskCondMulIss_0_0_T_13 = ~_maskCondMulIss_0_0_T_12; // @[Issue.scala 682:13]
  wire  _maskCondMulIss_0_0_T_14 = _entrySel_T | _maskCondMulIss_0_0_T_13; // @[Issue.scala 681:26]
  wire  maskCondMulIss_0_0 = _maskCondMulIss_0_0_T_14 | _maskCondAluIss_0_0_T_34; // @[Issue.scala 682:43]
  wire  _maskCondMulIss_0_1_T_4 = bufInfo_1_mul_isa_mul | bufInfo_1_mul_isa_mulh | bufInfo_1_mul_isa_mulhsu |
    bufInfo_1_mul_isa_mulhu | bufInfo_1_mul_isa_mulw; // @[riscv_isa.scala 203:43]
  wire  _maskCondMulIss_0_1_T_11 = bufInfo_1_mul_isa_div | bufInfo_1_mul_isa_divu | bufInfo_1_mul_isa_divw |
    bufInfo_1_mul_isa_divuw | bufInfo_1_mul_isa_rem | bufInfo_1_mul_isa_remu | bufInfo_1_mul_isa_remw |
    bufInfo_1_mul_isa_remuw; // @[riscv_isa.scala 204:61]
  wire  _maskCondMulIss_0_1_T_12 = _maskCondMulIss_0_1_T_4 | _maskCondMulIss_0_1_T_11; // @[riscv_isa.scala 206:25]
  wire  _maskCondMulIss_0_1_T_13 = ~_maskCondMulIss_0_1_T_12; // @[Issue.scala 682:13]
  wire  _maskCondMulIss_0_1_T_14 = _entrySel_T_1 | _maskCondMulIss_0_1_T_13; // @[Issue.scala 681:26]
  wire  maskCondMulIss_0_1 = _maskCondMulIss_0_1_T_14 | _maskCondAluIss_0_1_T_34; // @[Issue.scala 682:43]
  wire  _maskCondMulIss_0_2_T_4 = bufInfo_2_mul_isa_mul | bufInfo_2_mul_isa_mulh | bufInfo_2_mul_isa_mulhsu |
    bufInfo_2_mul_isa_mulhu | bufInfo_2_mul_isa_mulw; // @[riscv_isa.scala 203:43]
  wire  _maskCondMulIss_0_2_T_11 = bufInfo_2_mul_isa_div | bufInfo_2_mul_isa_divu | bufInfo_2_mul_isa_divw |
    bufInfo_2_mul_isa_divuw | bufInfo_2_mul_isa_rem | bufInfo_2_mul_isa_remu | bufInfo_2_mul_isa_remw |
    bufInfo_2_mul_isa_remuw; // @[riscv_isa.scala 204:61]
  wire  _maskCondMulIss_0_2_T_12 = _maskCondMulIss_0_2_T_4 | _maskCondMulIss_0_2_T_11; // @[riscv_isa.scala 206:25]
  wire  _maskCondMulIss_0_2_T_13 = ~_maskCondMulIss_0_2_T_12; // @[Issue.scala 682:13]
  wire  _maskCondMulIss_0_2_T_14 = _entrySel_T_2 | _maskCondMulIss_0_2_T_13; // @[Issue.scala 681:26]
  wire  maskCondMulIss_0_2 = _maskCondMulIss_0_2_T_14 | _maskCondAluIss_0_2_T_34; // @[Issue.scala 682:43]
  wire  _maskCondMulIss_0_3_T_4 = bufInfo_3_mul_isa_mul | bufInfo_3_mul_isa_mulh | bufInfo_3_mul_isa_mulhsu |
    bufInfo_3_mul_isa_mulhu | bufInfo_3_mul_isa_mulw; // @[riscv_isa.scala 203:43]
  wire  _maskCondMulIss_0_3_T_11 = bufInfo_3_mul_isa_div | bufInfo_3_mul_isa_divu | bufInfo_3_mul_isa_divw |
    bufInfo_3_mul_isa_divuw | bufInfo_3_mul_isa_rem | bufInfo_3_mul_isa_remu | bufInfo_3_mul_isa_remw |
    bufInfo_3_mul_isa_remuw; // @[riscv_isa.scala 204:61]
  wire  _maskCondMulIss_0_3_T_12 = _maskCondMulIss_0_3_T_4 | _maskCondMulIss_0_3_T_11; // @[riscv_isa.scala 206:25]
  wire  _maskCondMulIss_0_3_T_13 = ~_maskCondMulIss_0_3_T_12; // @[Issue.scala 682:13]
  wire  _maskCondMulIss_0_3_T_14 = _io_dptReq_0_ready_T_3 | _maskCondMulIss_0_3_T_13; // @[Issue.scala 681:26]
  wire  maskCondMulIss_0_3 = _maskCondMulIss_0_3_T_14 | _maskCondAluIss_0_3_T_34; // @[Issue.scala 682:43]
  wire  matrixOut_11_0_0 = ageMatrixW_0_0 & ~maskCondMulIss_0_0 | maskCondMulIss_0_0; // @[Issue.scala 200:60]
  wire  matrixOut_11_0_1 = ageMatrixW_0_1 & ~maskCondMulIss_0_1 | maskCondMulIss_0_0; // @[Issue.scala 200:60]
  wire  matrixOut_11_0_2 = ageMatrixW_0_2 & ~maskCondMulIss_0_2 | maskCondMulIss_0_0; // @[Issue.scala 200:60]
  wire  matrixOut_11_0_3 = ageMatrixW_0_3 & ~maskCondMulIss_0_3 | maskCondMulIss_0_0; // @[Issue.scala 200:60]
  wire  matrixOut_11_1_0 = ageMatrixR_1_0 & ~maskCondMulIss_0_0 | maskCondMulIss_0_1; // @[Issue.scala 200:60]
  wire  matrixOut_11_1_1 = ageMatrixW_1_1 & ~maskCondMulIss_0_1 | maskCondMulIss_0_1; // @[Issue.scala 200:60]
  wire  matrixOut_11_1_2 = ageMatrixW_1_2 & ~maskCondMulIss_0_2 | maskCondMulIss_0_1; // @[Issue.scala 200:60]
  wire  matrixOut_11_1_3 = ageMatrixW_1_3 & ~maskCondMulIss_0_3 | maskCondMulIss_0_1; // @[Issue.scala 200:60]
  wire  matrixOut_11_2_0 = ageMatrixR_2_0 & ~maskCondMulIss_0_0 | maskCondMulIss_0_2; // @[Issue.scala 200:60]
  wire  matrixOut_11_2_1 = ageMatrixR_2_1 & ~maskCondMulIss_0_1 | maskCondMulIss_0_2; // @[Issue.scala 200:60]
  wire  matrixOut_11_2_2 = ageMatrixW_2_2 & ~maskCondMulIss_0_2 | maskCondMulIss_0_2; // @[Issue.scala 200:60]
  wire  matrixOut_11_2_3 = ageMatrixW_2_3 & ~maskCondMulIss_0_3 | maskCondMulIss_0_2; // @[Issue.scala 200:60]
  wire  matrixOut_11_3_0 = ageMatrixR_3_0 & ~maskCondMulIss_0_0 | maskCondMulIss_0_3; // @[Issue.scala 200:60]
  wire  matrixOut_11_3_1 = ageMatrixR_3_1 & ~maskCondMulIss_0_1 | maskCondMulIss_0_3; // @[Issue.scala 200:60]
  wire  matrixOut_11_3_2 = ageMatrixR_3_2 & ~maskCondMulIss_0_2 | maskCondMulIss_0_3; // @[Issue.scala 200:60]
  wire  matrixOut_11_3_3 = ageMatrixW_3_3 & ~maskCondMulIss_0_3 | maskCondMulIss_0_3; // @[Issue.scala 200:60]
  wire  _T_1649 = matrixOut_11_0_0 & matrixOut_11_0_1 & matrixOut_11_0_2 & matrixOut_11_0_3 & (matrixOut_11_1_0 &
    matrixOut_11_1_1 & matrixOut_11_1_2 & matrixOut_11_1_3) & (matrixOut_11_2_0 & matrixOut_11_2_1 & matrixOut_11_2_2 &
    matrixOut_11_2_3) & (matrixOut_11_3_0 & matrixOut_11_3_1 & matrixOut_11_3_2 & matrixOut_11_3_3); // @[Issue.scala 693:33]
  wire  _T_1657 = ~matrixOut_11_0_0 & ~matrixOut_11_0_1 & ~matrixOut_11_0_2 & ~matrixOut_11_0_3; // @[Issue.scala 694:67]
  wire  _T_1665 = ~matrixOut_11_1_0 & ~matrixOut_11_1_1 & ~matrixOut_11_1_2 & ~matrixOut_11_1_3; // @[Issue.scala 694:67]
  wire  _T_1673 = ~matrixOut_11_2_0 & ~matrixOut_11_2_1 & ~matrixOut_11_2_2 & ~matrixOut_11_2_3; // @[Issue.scala 694:67]
  wire  _T_1681 = ~matrixOut_11_3_0 & ~matrixOut_11_3_1 & ~matrixOut_11_3_2 & ~matrixOut_11_3_3; // @[Issue.scala 694:67]
  wire [1:0] _T_1682 = _T_1657 + _T_1665; // @[Bitwise.scala 51:90]
  wire [1:0] _T_1684 = _T_1673 + _T_1681; // @[Bitwise.scala 51:90]
  wire [2:0] _T_1686 = _T_1682 + _T_1684; // @[Bitwise.scala 51:90]
  wire  _T_1688 = _T_1686 == 3'h1; // @[Issue.scala 694:102]
  wire  _T_1689 = matrixOut_11_0_0 & matrixOut_11_0_1 & matrixOut_11_0_2 & matrixOut_11_0_3 & (matrixOut_11_1_0 &
    matrixOut_11_1_1 & matrixOut_11_1_2 & matrixOut_11_1_3) & (matrixOut_11_2_0 & matrixOut_11_2_1 & matrixOut_11_2_2 &
    matrixOut_11_2_3) & (matrixOut_11_3_0 & matrixOut_11_3_1 & matrixOut_11_3_2 & matrixOut_11_3_3) | _T_1688; // @[Issue.scala 693:95]
  wire [1:0] _mulIssIdx_0_T_32 = _T_1673 ? 2'h2 : 2'h3; // @[Issue.scala 700:53]
  wire [1:0] _mulIssIdx_0_T_33 = _T_1665 ? 2'h1 : _mulIssIdx_0_T_32; // @[Issue.scala 700:53]
  wire [1:0] mulIssIdx_0 = _T_1657 ? 2'h0 : _mulIssIdx_0_T_33; // @[Issue.scala 700:53]
  wire [63:0] mulIssInfo_0_param_dat_op2 = postBufOperator_0_1[63:0]; // @[Issue.scala 657:19 661:23]
  wire [63:0] _mulIssFifo_0_io_enq_bits_T_39 = _T_1657 ? mulIssInfo_0_param_dat_op2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] mulIssInfo_1_param_dat_op2 = postBufOperator_1_1[63:0]; // @[Issue.scala 657:19 661:23]
  wire [63:0] _mulIssFifo_0_io_enq_bits_T_40 = _T_1665 ? mulIssInfo_1_param_dat_op2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] mulIssInfo_2_param_dat_op2 = postBufOperator_2_1[63:0]; // @[Issue.scala 657:19 661:23]
  wire [63:0] _mulIssFifo_0_io_enq_bits_T_41 = _T_1673 ? mulIssInfo_2_param_dat_op2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] mulIssInfo_3_param_dat_op2 = postBufOperator_3_1[63:0]; // @[Issue.scala 657:19 661:23]
  wire [63:0] _mulIssFifo_0_io_enq_bits_T_42 = _T_1681 ? mulIssInfo_3_param_dat_op2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _mulIssFifo_0_io_enq_bits_T_43 = _mulIssFifo_0_io_enq_bits_T_39 | _mulIssFifo_0_io_enq_bits_T_40; // @[Mux.scala 27:73]
  wire [63:0] _mulIssFifo_0_io_enq_bits_T_44 = _mulIssFifo_0_io_enq_bits_T_43 | _mulIssFifo_0_io_enq_bits_T_41; // @[Mux.scala 27:73]
  wire [63:0] mulIssInfo_0_param_dat_op1 = postBufOperator_0_0[63:0]; // @[Issue.scala 657:19 660:23]
  wire [63:0] _mulIssFifo_0_io_enq_bits_T_46 = _T_1657 ? mulIssInfo_0_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] mulIssInfo_1_param_dat_op1 = postBufOperator_1_0[63:0]; // @[Issue.scala 657:19 660:23]
  wire [63:0] _mulIssFifo_0_io_enq_bits_T_47 = _T_1665 ? mulIssInfo_1_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] mulIssInfo_2_param_dat_op1 = postBufOperator_2_0[63:0]; // @[Issue.scala 657:19 660:23]
  wire [63:0] _mulIssFifo_0_io_enq_bits_T_48 = _T_1673 ? mulIssInfo_2_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] mulIssInfo_3_param_dat_op1 = postBufOperator_3_0[63:0]; // @[Issue.scala 657:19 660:23]
  wire [63:0] _mulIssFifo_0_io_enq_bits_T_49 = _T_1681 ? mulIssInfo_3_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _mulIssFifo_0_io_enq_bits_T_50 = _mulIssFifo_0_io_enq_bits_T_46 | _mulIssFifo_0_io_enq_bits_T_47; // @[Mux.scala 27:73]
  wire [63:0] _mulIssFifo_0_io_enq_bits_T_51 = _mulIssFifo_0_io_enq_bits_T_50 | _mulIssFifo_0_io_enq_bits_T_48; // @[Mux.scala 27:73]
  wire [5:0] _mulIssFifo_0_io_enq_bits_T_53 = _T_1657 ? bufInfo_0_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _mulIssFifo_0_io_enq_bits_T_54 = _T_1665 ? bufInfo_1_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _mulIssFifo_0_io_enq_bits_T_55 = _T_1673 ? bufInfo_2_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _mulIssFifo_0_io_enq_bits_T_56 = _T_1681 ? bufInfo_3_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _mulIssFifo_0_io_enq_bits_T_57 = _mulIssFifo_0_io_enq_bits_T_53 | _mulIssFifo_0_io_enq_bits_T_54; // @[Mux.scala 27:73]
  wire [5:0] _mulIssFifo_0_io_enq_bits_T_58 = _mulIssFifo_0_io_enq_bits_T_57 | _mulIssFifo_0_io_enq_bits_T_55; // @[Mux.scala 27:73]
  wire  _T_1693 = mulIssFifo_0_io_enq_ready & mulIssFifo_0_io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _T_1695 = _T_1693 & mulIssIdx_0 == 2'h0; // @[Issue.scala 705:43]
  wire  _GEN_3546 = _T_1693 & mulIssIdx_0 == 2'h0 ? 1'h0 : _GEN_3542; // @[Issue.scala 705:70 706:23]
  wire  _T_1720 = _T_1693 & mulIssIdx_0 == 2'h1; // @[Issue.scala 705:43]
  wire  _GEN_3547 = _T_1693 & mulIssIdx_0 == 2'h1 ? 1'h0 : _GEN_3543; // @[Issue.scala 705:70 706:23]
  wire  _T_1745 = _T_1693 & mulIssIdx_0 == 2'h2; // @[Issue.scala 705:43]
  wire  _GEN_3548 = _T_1693 & mulIssIdx_0 == 2'h2 ? 1'h0 : _GEN_3544; // @[Issue.scala 705:70 706:23]
  wire  _T_1770 = _T_1693 & mulIssIdx_0 == 2'h3; // @[Issue.scala 705:43]
  wire  _GEN_3549 = _T_1693 & mulIssIdx_0 == 2'h3 ? 1'h0 : _GEN_3545; // @[Issue.scala 705:70 706:23]
  wire  _maskCondBruIss_0_T_7 = bufInfo_0_bru_isa_jal | bufInfo_0_bru_isa_jalr | bufInfo_0_bru_isa_beq |
    bufInfo_0_bru_isa_bne | bufInfo_0_bru_isa_blt | bufInfo_0_bru_isa_bge | bufInfo_0_bru_isa_bltu |
    bufInfo_0_bru_isa_bgeu; // @[riscv_isa.scala 92:58]
  wire  _maskCondBruIss_0_T_8 = ~_maskCondBruIss_0_T_7; // @[Issue.scala 752:7]
  wire  maskCondBruIss_0 = _entrySel_T | _maskCondBruIss_0_T_8; // @[Issue.scala 751:20]
  wire  _maskCondBruIss_1_T_7 = bufInfo_1_bru_isa_jal | bufInfo_1_bru_isa_jalr | bufInfo_1_bru_isa_beq |
    bufInfo_1_bru_isa_bne | bufInfo_1_bru_isa_blt | bufInfo_1_bru_isa_bge | bufInfo_1_bru_isa_bltu |
    bufInfo_1_bru_isa_bgeu; // @[riscv_isa.scala 92:58]
  wire  _maskCondBruIss_1_T_8 = ~_maskCondBruIss_1_T_7; // @[Issue.scala 752:7]
  wire  maskCondBruIss_1 = _entrySel_T_1 | _maskCondBruIss_1_T_8; // @[Issue.scala 751:20]
  wire  _maskCondBruIss_2_T_7 = bufInfo_2_bru_isa_jal | bufInfo_2_bru_isa_jalr | bufInfo_2_bru_isa_beq |
    bufInfo_2_bru_isa_bne | bufInfo_2_bru_isa_blt | bufInfo_2_bru_isa_bge | bufInfo_2_bru_isa_bltu |
    bufInfo_2_bru_isa_bgeu; // @[riscv_isa.scala 92:58]
  wire  _maskCondBruIss_2_T_8 = ~_maskCondBruIss_2_T_7; // @[Issue.scala 752:7]
  wire  maskCondBruIss_2 = _entrySel_T_2 | _maskCondBruIss_2_T_8; // @[Issue.scala 751:20]
  wire  _maskCondBruIss_3_T_7 = bufInfo_3_bru_isa_jal | bufInfo_3_bru_isa_jalr | bufInfo_3_bru_isa_beq |
    bufInfo_3_bru_isa_bne | bufInfo_3_bru_isa_blt | bufInfo_3_bru_isa_bge | bufInfo_3_bru_isa_bltu |
    bufInfo_3_bru_isa_bgeu; // @[riscv_isa.scala 92:58]
  wire  _maskCondBruIss_3_T_8 = ~_maskCondBruIss_3_T_7; // @[Issue.scala 752:7]
  wire  maskCondBruIss_3 = _io_dptReq_0_ready_T_3 | _maskCondBruIss_3_T_8; // @[Issue.scala 751:20]
  wire  matrixOut_12_0_0 = ageMatrixW_0_0 & ~maskCondBruIss_0 | maskCondBruIss_0; // @[Issue.scala 200:60]
  wire  matrixOut_12_0_1 = ageMatrixW_0_1 & ~maskCondBruIss_1 | maskCondBruIss_0; // @[Issue.scala 200:60]
  wire  matrixOut_12_0_2 = ageMatrixW_0_2 & ~maskCondBruIss_2 | maskCondBruIss_0; // @[Issue.scala 200:60]
  wire  matrixOut_12_0_3 = ageMatrixW_0_3 & ~maskCondBruIss_3 | maskCondBruIss_0; // @[Issue.scala 200:60]
  wire  matrixOut_12_1_0 = ageMatrixR_1_0 & ~maskCondBruIss_0 | maskCondBruIss_1; // @[Issue.scala 200:60]
  wire  matrixOut_12_1_1 = ageMatrixW_1_1 & ~maskCondBruIss_1 | maskCondBruIss_1; // @[Issue.scala 200:60]
  wire  matrixOut_12_1_2 = ageMatrixW_1_2 & ~maskCondBruIss_2 | maskCondBruIss_1; // @[Issue.scala 200:60]
  wire  matrixOut_12_1_3 = ageMatrixW_1_3 & ~maskCondBruIss_3 | maskCondBruIss_1; // @[Issue.scala 200:60]
  wire  matrixOut_12_2_0 = ageMatrixR_2_0 & ~maskCondBruIss_0 | maskCondBruIss_2; // @[Issue.scala 200:60]
  wire  matrixOut_12_2_1 = ageMatrixR_2_1 & ~maskCondBruIss_1 | maskCondBruIss_2; // @[Issue.scala 200:60]
  wire  matrixOut_12_2_2 = ageMatrixW_2_2 & ~maskCondBruIss_2 | maskCondBruIss_2; // @[Issue.scala 200:60]
  wire  matrixOut_12_2_3 = ageMatrixW_2_3 & ~maskCondBruIss_3 | maskCondBruIss_2; // @[Issue.scala 200:60]
  wire  matrixOut_12_3_0 = ageMatrixR_3_0 & ~maskCondBruIss_0 | maskCondBruIss_3; // @[Issue.scala 200:60]
  wire  matrixOut_12_3_1 = ageMatrixR_3_1 & ~maskCondBruIss_1 | maskCondBruIss_3; // @[Issue.scala 200:60]
  wire  matrixOut_12_3_2 = ageMatrixR_3_2 & ~maskCondBruIss_2 | maskCondBruIss_3; // @[Issue.scala 200:60]
  wire  matrixOut_12_3_3 = ageMatrixW_3_3 & ~maskCondBruIss_3 | maskCondBruIss_3; // @[Issue.scala 200:60]
  wire  _T_1836 = ~matrixOut_12_0_0 & ~matrixOut_12_0_1 & ~matrixOut_12_0_2 & ~matrixOut_12_0_3; // @[Issue.scala 759:58]
  wire  _T_1844 = ~matrixOut_12_1_0 & ~matrixOut_12_1_1 & ~matrixOut_12_1_2 & ~matrixOut_12_1_3; // @[Issue.scala 759:58]
  wire  _T_1852 = ~matrixOut_12_2_0 & ~matrixOut_12_2_1 & ~matrixOut_12_2_2 & ~matrixOut_12_2_3; // @[Issue.scala 759:58]
  wire  _T_1860 = ~matrixOut_12_3_0 & ~matrixOut_12_3_1 & ~matrixOut_12_3_2 & ~matrixOut_12_3_3; // @[Issue.scala 759:58]
  wire [1:0] _T_1861 = _T_1836 + _T_1844; // @[Bitwise.scala 51:90]
  wire [1:0] _T_1863 = _T_1852 + _T_1860; // @[Bitwise.scala 51:90]
  wire [2:0] _T_1865 = _T_1861 + _T_1863; // @[Bitwise.scala 51:90]
  wire  _T_1867 = _T_1865 == 3'h1; // @[Issue.scala 759:92]
  wire  _T_1868 = matrixOut_12_0_0 & matrixOut_12_0_1 & matrixOut_12_0_2 & matrixOut_12_0_3 & (matrixOut_12_1_0 &
    matrixOut_12_1_1 & matrixOut_12_1_2 & matrixOut_12_1_3) & (matrixOut_12_2_0 & matrixOut_12_2_1 & matrixOut_12_2_2 &
    matrixOut_12_2_3) & (matrixOut_12_3_0 & matrixOut_12_3_1 & matrixOut_12_3_2 & matrixOut_12_3_3) | _T_1867; // @[Issue.scala 758:86]
  wire [1:0] _bruIssIdx_T_32 = _T_1852 ? 2'h2 : 2'h3; // @[Issue.scala 762:39]
  wire [1:0] _bruIssIdx_T_33 = _T_1844 ? 2'h1 : _bruIssIdx_T_32; // @[Issue.scala 762:39]
  wire [1:0] bruIssIdx = _T_1836 ? 2'h0 : _bruIssIdx_T_33; // @[Issue.scala 762:39]
  wire  _bruIssFifo_io_enq_valid_T_9 = _T_1836 & postIsOpReady_0_0 & postIsOpReady_0_1; // @[Issue.scala 765:115]
  wire  _bruIssFifo_io_enq_valid_T_19 = _T_1844 & postIsOpReady_1_0 & postIsOpReady_1_1; // @[Issue.scala 765:115]
  wire  _bruIssFifo_io_enq_valid_T_29 = _T_1852 & postIsOpReady_2_0 & postIsOpReady_2_1; // @[Issue.scala 765:115]
  wire  _bruIssFifo_io_enq_valid_T_39 = _T_1860 & postIsOpReady_3_0 & postIsOpReady_3_1; // @[Issue.scala 765:115]
  wire [63:0] _bruIssFifo_io_enq_bits_T_47 = _bruIssFifo_io_enq_valid_T_9 ? mulIssInfo_0_param_dat_op2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_48 = _bruIssFifo_io_enq_valid_T_19 ? mulIssInfo_1_param_dat_op2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_49 = _bruIssFifo_io_enq_valid_T_29 ? mulIssInfo_2_param_dat_op2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_50 = _bruIssFifo_io_enq_valid_T_39 ? mulIssInfo_3_param_dat_op2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_51 = _bruIssFifo_io_enq_bits_T_47 | _bruIssFifo_io_enq_bits_T_48; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_52 = _bruIssFifo_io_enq_bits_T_51 | _bruIssFifo_io_enq_bits_T_49; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_54 = _bruIssFifo_io_enq_valid_T_9 ? mulIssInfo_0_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_55 = _bruIssFifo_io_enq_valid_T_19 ? mulIssInfo_1_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_56 = _bruIssFifo_io_enq_valid_T_29 ? mulIssInfo_2_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_57 = _bruIssFifo_io_enq_valid_T_39 ? mulIssInfo_3_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_58 = _bruIssFifo_io_enq_bits_T_54 | _bruIssFifo_io_enq_bits_T_55; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_59 = _bruIssFifo_io_enq_bits_T_58 | _bruIssFifo_io_enq_bits_T_56; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_61 = _bruIssFifo_io_enq_valid_T_9 ? bufInfo_0_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_62 = _bruIssFifo_io_enq_valid_T_19 ? bufInfo_1_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_63 = _bruIssFifo_io_enq_valid_T_29 ? bufInfo_2_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_64 = _bruIssFifo_io_enq_valid_T_39 ? bufInfo_3_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_65 = _bruIssFifo_io_enq_bits_T_61 | _bruIssFifo_io_enq_bits_T_62; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_66 = _bruIssFifo_io_enq_bits_T_65 | _bruIssFifo_io_enq_bits_T_63; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_68 = _bruIssFifo_io_enq_valid_T_9 ? aluIssInfo_res_param_dat_op1_v64 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_69 = _bruIssFifo_io_enq_valid_T_19 ? aluIssInfo_res_param_dat_op1_v64_1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_70 = _bruIssFifo_io_enq_valid_T_29 ? aluIssInfo_res_param_dat_op1_v64_2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_71 = _bruIssFifo_io_enq_valid_T_39 ? aluIssInfo_res_param_dat_op1_v64_3 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_72 = _bruIssFifo_io_enq_bits_T_68 | _bruIssFifo_io_enq_bits_T_69; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_73 = _bruIssFifo_io_enq_bits_T_72 | _bruIssFifo_io_enq_bits_T_70; // @[Mux.scala 27:73]
  wire [5:0] _bruIssFifo_io_enq_bits_T_82 = _bruIssFifo_io_enq_valid_T_9 ? bufInfo_0_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _bruIssFifo_io_enq_bits_T_83 = _bruIssFifo_io_enq_valid_T_19 ? bufInfo_1_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _bruIssFifo_io_enq_bits_T_84 = _bruIssFifo_io_enq_valid_T_29 ? bufInfo_2_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _bruIssFifo_io_enq_bits_T_85 = _bruIssFifo_io_enq_valid_T_39 ? bufInfo_3_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _bruIssFifo_io_enq_bits_T_86 = _bruIssFifo_io_enq_bits_T_82 | _bruIssFifo_io_enq_bits_T_83; // @[Mux.scala 27:73]
  wire [5:0] _bruIssFifo_io_enq_bits_T_87 = _bruIssFifo_io_enq_bits_T_86 | _bruIssFifo_io_enq_bits_T_84; // @[Mux.scala 27:73]
  wire  _T_1872 = bruIssFifo_io_enq_ready & bruIssFifo_io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _T_1874 = _T_1872 & bruIssIdx == 2'h0; // @[Issue.scala 771:34]
  wire  _T_1894 = _T_1872 & bruIssIdx == 2'h1; // @[Issue.scala 771:34]
  wire  _T_1914 = _T_1872 & bruIssIdx == 2'h2; // @[Issue.scala 771:34]
  wire  _T_1934 = _T_1872 & bruIssIdx == 2'h3; // @[Issue.scala 771:34]
  wire  csrIssInfo_0_fun_rc = bufInfo_0_csr_isa_rc | bufInfo_0_csr_isa_rci; // @[Issue.scala 789:44]
  wire  csrIssInfo_0_fun_rs = bufInfo_0_csr_isa_rs | bufInfo_0_csr_isa_rsi; // @[Issue.scala 790:44]
  wire  csrIssInfo_0_fun_rw = bufInfo_0_csr_isa_rw | bufInfo_0_csr_isa_rwi; // @[Issue.scala 791:44]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T = bufInfo_0_csr_isa_rw ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [4:0] _csrIssInfo_res_param_dat_op1_T_1 = bufInfo_0_csr_isa_rwi ? bufInfo_0_param_raw_rs1 : 5'h0; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_2 = bufInfo_0_csr_isa_rs ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [4:0] _csrIssInfo_res_param_dat_op1_T_3 = bufInfo_0_csr_isa_rsi ? bufInfo_0_param_raw_rs1 : 5'h0; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_4 = bufInfo_0_csr_isa_rc ? postBufOperator_0_0 : 65'h0; // @[Mux.scala 27:73]
  wire [4:0] _csrIssInfo_res_param_dat_op1_T_5 = bufInfo_0_csr_isa_rci ? bufInfo_0_param_raw_rs1 : 5'h0; // @[Mux.scala 27:73]
  wire [64:0] _GEN_458 = {{60'd0}, _csrIssInfo_res_param_dat_op1_T_1}; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_6 = _csrIssInfo_res_param_dat_op1_T | _GEN_458; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_7 = _csrIssInfo_res_param_dat_op1_T_6 | _csrIssInfo_res_param_dat_op1_T_2; // @[Mux.scala 27:73]
  wire [64:0] _GEN_459 = {{60'd0}, _csrIssInfo_res_param_dat_op1_T_3}; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_8 = _csrIssInfo_res_param_dat_op1_T_7 | _GEN_459; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_9 = _csrIssInfo_res_param_dat_op1_T_8 | _csrIssInfo_res_param_dat_op1_T_4; // @[Mux.scala 27:73]
  wire [64:0] _GEN_460 = {{60'd0}, _csrIssInfo_res_param_dat_op1_T_5}; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_10 = _csrIssInfo_res_param_dat_op1_T_9 | _GEN_460; // @[Mux.scala 27:73]
  wire  csrIssInfo_1_fun_rc = bufInfo_1_csr_isa_rc | bufInfo_1_csr_isa_rci; // @[Issue.scala 789:44]
  wire  csrIssInfo_1_fun_rs = bufInfo_1_csr_isa_rs | bufInfo_1_csr_isa_rsi; // @[Issue.scala 790:44]
  wire  csrIssInfo_1_fun_rw = bufInfo_1_csr_isa_rw | bufInfo_1_csr_isa_rwi; // @[Issue.scala 791:44]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_11 = bufInfo_1_csr_isa_rw ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [4:0] _csrIssInfo_res_param_dat_op1_T_12 = bufInfo_1_csr_isa_rwi ? bufInfo_1_param_raw_rs1 : 5'h0; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_13 = bufInfo_1_csr_isa_rs ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [4:0] _csrIssInfo_res_param_dat_op1_T_14 = bufInfo_1_csr_isa_rsi ? bufInfo_1_param_raw_rs1 : 5'h0; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_15 = bufInfo_1_csr_isa_rc ? postBufOperator_1_0 : 65'h0; // @[Mux.scala 27:73]
  wire [4:0] _csrIssInfo_res_param_dat_op1_T_16 = bufInfo_1_csr_isa_rci ? bufInfo_1_param_raw_rs1 : 5'h0; // @[Mux.scala 27:73]
  wire [64:0] _GEN_461 = {{60'd0}, _csrIssInfo_res_param_dat_op1_T_12}; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_17 = _csrIssInfo_res_param_dat_op1_T_11 | _GEN_461; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_18 = _csrIssInfo_res_param_dat_op1_T_17 |
    _csrIssInfo_res_param_dat_op1_T_13; // @[Mux.scala 27:73]
  wire [64:0] _GEN_462 = {{60'd0}, _csrIssInfo_res_param_dat_op1_T_14}; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_19 = _csrIssInfo_res_param_dat_op1_T_18 | _GEN_462; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_20 = _csrIssInfo_res_param_dat_op1_T_19 |
    _csrIssInfo_res_param_dat_op1_T_15; // @[Mux.scala 27:73]
  wire [64:0] _GEN_463 = {{60'd0}, _csrIssInfo_res_param_dat_op1_T_16}; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_21 = _csrIssInfo_res_param_dat_op1_T_20 | _GEN_463; // @[Mux.scala 27:73]
  wire  csrIssInfo_2_fun_rc = bufInfo_2_csr_isa_rc | bufInfo_2_csr_isa_rci; // @[Issue.scala 789:44]
  wire  csrIssInfo_2_fun_rs = bufInfo_2_csr_isa_rs | bufInfo_2_csr_isa_rsi; // @[Issue.scala 790:44]
  wire  csrIssInfo_2_fun_rw = bufInfo_2_csr_isa_rw | bufInfo_2_csr_isa_rwi; // @[Issue.scala 791:44]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_22 = bufInfo_2_csr_isa_rw ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [4:0] _csrIssInfo_res_param_dat_op1_T_23 = bufInfo_2_csr_isa_rwi ? bufInfo_2_param_raw_rs1 : 5'h0; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_24 = bufInfo_2_csr_isa_rs ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [4:0] _csrIssInfo_res_param_dat_op1_T_25 = bufInfo_2_csr_isa_rsi ? bufInfo_2_param_raw_rs1 : 5'h0; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_26 = bufInfo_2_csr_isa_rc ? postBufOperator_2_0 : 65'h0; // @[Mux.scala 27:73]
  wire [4:0] _csrIssInfo_res_param_dat_op1_T_27 = bufInfo_2_csr_isa_rci ? bufInfo_2_param_raw_rs1 : 5'h0; // @[Mux.scala 27:73]
  wire [64:0] _GEN_464 = {{60'd0}, _csrIssInfo_res_param_dat_op1_T_23}; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_28 = _csrIssInfo_res_param_dat_op1_T_22 | _GEN_464; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_29 = _csrIssInfo_res_param_dat_op1_T_28 |
    _csrIssInfo_res_param_dat_op1_T_24; // @[Mux.scala 27:73]
  wire [64:0] _GEN_465 = {{60'd0}, _csrIssInfo_res_param_dat_op1_T_25}; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_30 = _csrIssInfo_res_param_dat_op1_T_29 | _GEN_465; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_31 = _csrIssInfo_res_param_dat_op1_T_30 |
    _csrIssInfo_res_param_dat_op1_T_26; // @[Mux.scala 27:73]
  wire [64:0] _GEN_466 = {{60'd0}, _csrIssInfo_res_param_dat_op1_T_27}; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_32 = _csrIssInfo_res_param_dat_op1_T_31 | _GEN_466; // @[Mux.scala 27:73]
  wire  csrIssInfo_3_fun_rc = bufInfo_3_csr_isa_rc | bufInfo_3_csr_isa_rci; // @[Issue.scala 789:44]
  wire  csrIssInfo_3_fun_rs = bufInfo_3_csr_isa_rs | bufInfo_3_csr_isa_rsi; // @[Issue.scala 790:44]
  wire  csrIssInfo_3_fun_rw = bufInfo_3_csr_isa_rw | bufInfo_3_csr_isa_rwi; // @[Issue.scala 791:44]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_33 = bufInfo_3_csr_isa_rw ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [4:0] _csrIssInfo_res_param_dat_op1_T_34 = bufInfo_3_csr_isa_rwi ? bufInfo_3_param_raw_rs1 : 5'h0; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_35 = bufInfo_3_csr_isa_rs ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [4:0] _csrIssInfo_res_param_dat_op1_T_36 = bufInfo_3_csr_isa_rsi ? bufInfo_3_param_raw_rs1 : 5'h0; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_37 = bufInfo_3_csr_isa_rc ? postBufOperator_3_0 : 65'h0; // @[Mux.scala 27:73]
  wire [4:0] _csrIssInfo_res_param_dat_op1_T_38 = bufInfo_3_csr_isa_rci ? bufInfo_3_param_raw_rs1 : 5'h0; // @[Mux.scala 27:73]
  wire [64:0] _GEN_467 = {{60'd0}, _csrIssInfo_res_param_dat_op1_T_34}; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_39 = _csrIssInfo_res_param_dat_op1_T_33 | _GEN_467; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_40 = _csrIssInfo_res_param_dat_op1_T_39 |
    _csrIssInfo_res_param_dat_op1_T_35; // @[Mux.scala 27:73]
  wire [64:0] _GEN_468 = {{60'd0}, _csrIssInfo_res_param_dat_op1_T_36}; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_41 = _csrIssInfo_res_param_dat_op1_T_40 | _GEN_468; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_42 = _csrIssInfo_res_param_dat_op1_T_41 |
    _csrIssInfo_res_param_dat_op1_T_37; // @[Mux.scala 27:73]
  wire [64:0] _GEN_469 = {{60'd0}, _csrIssInfo_res_param_dat_op1_T_38}; // @[Mux.scala 27:73]
  wire [64:0] _csrIssInfo_res_param_dat_op1_T_43 = _csrIssInfo_res_param_dat_op1_T_42 | _GEN_469; // @[Mux.scala 27:73]
  wire  _maskCondCsrIss_0_T_5 = bufInfo_0_csr_isa_rw | bufInfo_0_csr_isa_rs | bufInfo_0_csr_isa_rc |
    bufInfo_0_csr_isa_rwi | bufInfo_0_csr_isa_rsi | bufInfo_0_csr_isa_rci; // @[riscv_isa.scala 179:41]
  wire  _maskCondCsrIss_0_T_6 = ~_maskCondCsrIss_0_T_5; // @[Issue.scala 818:7]
  wire  maskCondCsrIss_0 = _entrySel_T | _maskCondCsrIss_0_T_6; // @[Issue.scala 817:20]
  wire  _maskCondCsrIss_1_T_5 = bufInfo_1_csr_isa_rw | bufInfo_1_csr_isa_rs | bufInfo_1_csr_isa_rc |
    bufInfo_1_csr_isa_rwi | bufInfo_1_csr_isa_rsi | bufInfo_1_csr_isa_rci; // @[riscv_isa.scala 179:41]
  wire  _maskCondCsrIss_1_T_6 = ~_maskCondCsrIss_1_T_5; // @[Issue.scala 818:7]
  wire  maskCondCsrIss_1 = _entrySel_T_1 | _maskCondCsrIss_1_T_6; // @[Issue.scala 817:20]
  wire  _maskCondCsrIss_2_T_5 = bufInfo_2_csr_isa_rw | bufInfo_2_csr_isa_rs | bufInfo_2_csr_isa_rc |
    bufInfo_2_csr_isa_rwi | bufInfo_2_csr_isa_rsi | bufInfo_2_csr_isa_rci; // @[riscv_isa.scala 179:41]
  wire  _maskCondCsrIss_2_T_6 = ~_maskCondCsrIss_2_T_5; // @[Issue.scala 818:7]
  wire  maskCondCsrIss_2 = _entrySel_T_2 | _maskCondCsrIss_2_T_6; // @[Issue.scala 817:20]
  wire  _maskCondCsrIss_3_T_5 = bufInfo_3_csr_isa_rw | bufInfo_3_csr_isa_rs | bufInfo_3_csr_isa_rc |
    bufInfo_3_csr_isa_rwi | bufInfo_3_csr_isa_rsi | bufInfo_3_csr_isa_rci; // @[riscv_isa.scala 179:41]
  wire  _maskCondCsrIss_3_T_6 = ~_maskCondCsrIss_3_T_5; // @[Issue.scala 818:7]
  wire  maskCondCsrIss_3 = _io_dptReq_0_ready_T_3 | _maskCondCsrIss_3_T_6; // @[Issue.scala 817:20]
  wire  matrixOut_13_0_0 = ageMatrixW_0_0 & ~maskCondCsrIss_0 | maskCondCsrIss_0; // @[Issue.scala 200:60]
  wire  matrixOut_13_0_1 = ageMatrixW_0_1 & ~maskCondCsrIss_1 | maskCondCsrIss_0; // @[Issue.scala 200:60]
  wire  matrixOut_13_0_2 = ageMatrixW_0_2 & ~maskCondCsrIss_2 | maskCondCsrIss_0; // @[Issue.scala 200:60]
  wire  matrixOut_13_0_3 = ageMatrixW_0_3 & ~maskCondCsrIss_3 | maskCondCsrIss_0; // @[Issue.scala 200:60]
  wire  matrixOut_13_1_0 = ageMatrixR_1_0 & ~maskCondCsrIss_0 | maskCondCsrIss_1; // @[Issue.scala 200:60]
  wire  matrixOut_13_1_1 = ageMatrixW_1_1 & ~maskCondCsrIss_1 | maskCondCsrIss_1; // @[Issue.scala 200:60]
  wire  matrixOut_13_1_2 = ageMatrixW_1_2 & ~maskCondCsrIss_2 | maskCondCsrIss_1; // @[Issue.scala 200:60]
  wire  matrixOut_13_1_3 = ageMatrixW_1_3 & ~maskCondCsrIss_3 | maskCondCsrIss_1; // @[Issue.scala 200:60]
  wire  matrixOut_13_2_0 = ageMatrixR_2_0 & ~maskCondCsrIss_0 | maskCondCsrIss_2; // @[Issue.scala 200:60]
  wire  matrixOut_13_2_1 = ageMatrixR_2_1 & ~maskCondCsrIss_1 | maskCondCsrIss_2; // @[Issue.scala 200:60]
  wire  matrixOut_13_2_2 = ageMatrixW_2_2 & ~maskCondCsrIss_2 | maskCondCsrIss_2; // @[Issue.scala 200:60]
  wire  matrixOut_13_2_3 = ageMatrixW_2_3 & ~maskCondCsrIss_3 | maskCondCsrIss_2; // @[Issue.scala 200:60]
  wire  matrixOut_13_3_0 = ageMatrixR_3_0 & ~maskCondCsrIss_0 | maskCondCsrIss_3; // @[Issue.scala 200:60]
  wire  matrixOut_13_3_1 = ageMatrixR_3_1 & ~maskCondCsrIss_1 | maskCondCsrIss_3; // @[Issue.scala 200:60]
  wire  matrixOut_13_3_2 = ageMatrixR_3_2 & ~maskCondCsrIss_2 | maskCondCsrIss_3; // @[Issue.scala 200:60]
  wire  matrixOut_13_3_3 = ageMatrixW_3_3 & ~maskCondCsrIss_3 | maskCondCsrIss_3; // @[Issue.scala 200:60]
  wire  _T_1995 = ~matrixOut_13_0_0 & ~matrixOut_13_0_1 & ~matrixOut_13_0_2 & ~matrixOut_13_0_3; // @[Issue.scala 825:58]
  wire  _T_2003 = ~matrixOut_13_1_0 & ~matrixOut_13_1_1 & ~matrixOut_13_1_2 & ~matrixOut_13_1_3; // @[Issue.scala 825:58]
  wire  _T_2011 = ~matrixOut_13_2_0 & ~matrixOut_13_2_1 & ~matrixOut_13_2_2 & ~matrixOut_13_2_3; // @[Issue.scala 825:58]
  wire  _T_2019 = ~matrixOut_13_3_0 & ~matrixOut_13_3_1 & ~matrixOut_13_3_2 & ~matrixOut_13_3_3; // @[Issue.scala 825:58]
  wire [1:0] _T_2020 = _T_1995 + _T_2003; // @[Bitwise.scala 51:90]
  wire [1:0] _T_2022 = _T_2011 + _T_2019; // @[Bitwise.scala 51:90]
  wire [2:0] _T_2024 = _T_2020 + _T_2022; // @[Bitwise.scala 51:90]
  wire  _T_2026 = _T_2024 == 3'h1; // @[Issue.scala 825:92]
  wire  _T_2027 = matrixOut_13_0_0 & matrixOut_13_0_1 & matrixOut_13_0_2 & matrixOut_13_0_3 & (matrixOut_13_1_0 &
    matrixOut_13_1_1 & matrixOut_13_1_2 & matrixOut_13_1_3) & (matrixOut_13_2_0 & matrixOut_13_2_1 & matrixOut_13_2_2 &
    matrixOut_13_2_3) & (matrixOut_13_3_0 & matrixOut_13_3_1 & matrixOut_13_3_2 & matrixOut_13_3_3) | _T_2026; // @[Issue.scala 824:86]
  wire [1:0] _csrIssIdx_T_32 = _T_2011 ? 2'h2 : 2'h3; // @[Issue.scala 828:39]
  wire [1:0] _csrIssIdx_T_33 = _T_2003 ? 2'h1 : _csrIssIdx_T_32; // @[Issue.scala 828:39]
  wire [1:0] csrIssIdx = _T_1995 ? 2'h0 : _csrIssIdx_T_33; // @[Issue.scala 828:39]
  wire  _csrIssFifo_io_enq_valid_T_9 = _T_1995 & postIsOpReady_0_0 & postIsOpReady_0_1; // @[Issue.scala 831:115]
  wire  _csrIssFifo_io_enq_valid_T_19 = _T_2003 & postIsOpReady_1_0 & postIsOpReady_1_1; // @[Issue.scala 831:115]
  wire  _csrIssFifo_io_enq_valid_T_29 = _T_2011 & postIsOpReady_2_0 & postIsOpReady_2_1; // @[Issue.scala 831:115]
  wire  _csrIssFifo_io_enq_valid_T_39 = _T_2019 & postIsOpReady_3_0 & postIsOpReady_3_1; // @[Issue.scala 831:115]
  wire [63:0] _csrIssFifo_io_enq_bits_T_47 = _csrIssFifo_io_enq_valid_T_9 ? bufInfo_0_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csrIssFifo_io_enq_bits_T_48 = _csrIssFifo_io_enq_valid_T_19 ? bufInfo_1_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csrIssFifo_io_enq_bits_T_49 = _csrIssFifo_io_enq_valid_T_29 ? bufInfo_2_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csrIssFifo_io_enq_bits_T_50 = _csrIssFifo_io_enq_valid_T_39 ? bufInfo_3_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csrIssFifo_io_enq_bits_T_51 = _csrIssFifo_io_enq_bits_T_47 | _csrIssFifo_io_enq_bits_T_48; // @[Mux.scala 27:73]
  wire [63:0] _csrIssFifo_io_enq_bits_T_52 = _csrIssFifo_io_enq_bits_T_51 | _csrIssFifo_io_enq_bits_T_49; // @[Mux.scala 27:73]
  wire [63:0] csrIssInfo_0_param_dat_op1 = _csrIssInfo_res_param_dat_op1_T_10[63:0]; // @[Issue.scala 787:19 793:23]
  wire [63:0] _csrIssFifo_io_enq_bits_T_54 = _csrIssFifo_io_enq_valid_T_9 ? csrIssInfo_0_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csrIssInfo_1_param_dat_op1 = _csrIssInfo_res_param_dat_op1_T_21[63:0]; // @[Issue.scala 787:19 793:23]
  wire [63:0] _csrIssFifo_io_enq_bits_T_55 = _csrIssFifo_io_enq_valid_T_19 ? csrIssInfo_1_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csrIssInfo_2_param_dat_op1 = _csrIssInfo_res_param_dat_op1_T_32[63:0]; // @[Issue.scala 787:19 793:23]
  wire [63:0] _csrIssFifo_io_enq_bits_T_56 = _csrIssFifo_io_enq_valid_T_29 ? csrIssInfo_2_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csrIssInfo_3_param_dat_op1 = _csrIssInfo_res_param_dat_op1_T_43[63:0]; // @[Issue.scala 787:19 793:23]
  wire [63:0] _csrIssFifo_io_enq_bits_T_57 = _csrIssFifo_io_enq_valid_T_39 ? csrIssInfo_3_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csrIssFifo_io_enq_bits_T_58 = _csrIssFifo_io_enq_bits_T_54 | _csrIssFifo_io_enq_bits_T_55; // @[Mux.scala 27:73]
  wire [63:0] _csrIssFifo_io_enq_bits_T_59 = _csrIssFifo_io_enq_bits_T_58 | _csrIssFifo_io_enq_bits_T_56; // @[Mux.scala 27:73]
  wire [5:0] _csrIssFifo_io_enq_bits_T_61 = _csrIssFifo_io_enq_valid_T_9 ? bufInfo_0_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _csrIssFifo_io_enq_bits_T_62 = _csrIssFifo_io_enq_valid_T_19 ? bufInfo_1_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _csrIssFifo_io_enq_bits_T_63 = _csrIssFifo_io_enq_valid_T_29 ? bufInfo_2_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _csrIssFifo_io_enq_bits_T_64 = _csrIssFifo_io_enq_valid_T_39 ? bufInfo_3_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _csrIssFifo_io_enq_bits_T_65 = _csrIssFifo_io_enq_bits_T_61 | _csrIssFifo_io_enq_bits_T_62; // @[Mux.scala 27:73]
  wire [5:0] _csrIssFifo_io_enq_bits_T_66 = _csrIssFifo_io_enq_bits_T_65 | _csrIssFifo_io_enq_bits_T_63; // @[Mux.scala 27:73]
  wire  _T_2031 = csrIssFifo_io_enq_ready & csrIssFifo_io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _T_2033 = _T_2031 & csrIssIdx == 2'h0; // @[Issue.scala 837:34]
  wire  _T_2051 = _T_2031 & csrIssIdx == 2'h1; // @[Issue.scala 837:34]
  wire  _T_2069 = _T_2031 & csrIssIdx == 2'h2; // @[Issue.scala 837:34]
  wire  _T_2087 = _T_2031 & csrIssIdx == 2'h3; // @[Issue.scala 837:34]
  wire  _lsuIssInfo_res_param_dat_op1_T = bufInfo_0_lsu_isa_sc_d | bufInfo_0_lsu_isa_sc_w; // @[riscv_isa.scala 140:20]
  wire  _lsuIssInfo_res_param_dat_op1_T_1 = bufInfo_0_lsu_isa_lr_d | bufInfo_0_lsu_isa_lr_w; // @[riscv_isa.scala 141:20]
  wire  _lsuIssInfo_res_param_dat_op1_T_2 = _lsuIssInfo_res_param_dat_op1_T | _lsuIssInfo_res_param_dat_op1_T_1; // @[riscv_isa.scala 146:23]
  wire  _lsuIssInfo_res_param_dat_op1_T_21 = bufInfo_0_lsu_isa_amoswap_w | bufInfo_0_lsu_isa_amoadd_w |
    bufInfo_0_lsu_isa_amoxor_w | bufInfo_0_lsu_isa_amoand_w | bufInfo_0_lsu_isa_amoor_w | bufInfo_0_lsu_isa_amomin_w |
    bufInfo_0_lsu_isa_amomax_w | bufInfo_0_lsu_isa_amominu_w | bufInfo_0_lsu_isa_amomaxu_w | bufInfo_0_lsu_isa_amoswap_d
     | bufInfo_0_lsu_isa_amoadd_d | bufInfo_0_lsu_isa_amoxor_d | bufInfo_0_lsu_isa_amoand_d | bufInfo_0_lsu_isa_amoor_d
     | bufInfo_0_lsu_isa_amomin_d | bufInfo_0_lsu_isa_amomax_d | bufInfo_0_lsu_isa_amominu_d |
    bufInfo_0_lsu_isa_amomaxu_d | _lsuIssInfo_res_param_dat_op1_T; // @[riscv_isa.scala 148:205]
  wire [64:0] _lsuIssInfo_res_param_dat_op1_T_23 = _canIOpReq_0_0_T_6 ? {{1'd0}, io_irgRsp_0_bits_op} :
    _postBufOperator_0_0_T_16; // @[Issue.scala 857:125]
  wire [63:0] _lsuIssInfo_res_param_dat_op1_T_24 = bufInfo_0_param_imm; // @[Issue.scala 857:163]
  wire [64:0] _GEN_470 = {{1{_lsuIssInfo_res_param_dat_op1_T_24[63]}},_lsuIssInfo_res_param_dat_op1_T_24}; // @[Issue.scala 857:132]
  wire [64:0] _lsuIssInfo_res_param_dat_op1_T_28 = $signed(_lsuIssInfo_res_param_dat_op1_T_23) + $signed(_GEN_470); // @[Issue.scala 857:173]
  wire [64:0] _lsuIssInfo_res_param_dat_op1_T_29 = _lsuIssInfo_res_param_dat_op1_T_2 |
    _lsuIssInfo_res_param_dat_op1_T_21 ? postBufOperator_0_0 : _lsuIssInfo_res_param_dat_op1_T_28; // @[Issue.scala 857:10]
  wire  _lsuIssInfo_res_param_dat_op2_T = bufInfo_0_lsu_isa_fsw | bufInfo_0_lsu_isa_fsd; // @[riscv_isa.scala 164:20]
  wire [32:0] lsuIssInfo_res_param_dat_op2_unswizzled = {postBufOperator_0_1[31],postBufOperator_0_1[52],
    postBufOperator_0_1[30:0]}; // @[Cat.scala 33:92]
  wire  lsuIssInfo_res_param_dat_op2_sign = lsuIssInfo_res_param_dat_op2_unswizzled[32]; // @[Fpu.scala 59:17]
  wire [22:0] lsuIssInfo_res_param_dat_op2_fractIn = lsuIssInfo_res_param_dat_op2_unswizzled[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] lsuIssInfo_res_param_dat_op2_expIn = lsuIssInfo_res_param_dat_op2_unswizzled[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] lsuIssInfo_res_param_dat_op2_expOut_expCode = lsuIssInfo_res_param_dat_op2_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _lsuIssInfo_res_param_dat_op2_expOut_T = lsuIssInfo_res_param_dat_op2_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp = postBufOperator_0_1[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_isZero = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp[11:9] == 3'h0
    ; // @[rawFloatFromRecFN.scala 51:54]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_isSpecial = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp[11:10]
     == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_rawIn__isNaN = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_isSpecial &
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_rawIn__isInf = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_isSpecial & ~
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_rawIn__sign = postBufOperator_0_1[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] lsuIssInfo_res_param_dat_op2_unrecoded_rawIn__sExp = {1'b0,$signed(
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_out_sig_T = ~lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] lsuIssInfo_res_param_dat_op2_unrecoded_rawIn__sig = {1'h0,
    _lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_out_sig_T,postBufOperator_0_1[51:0]}; // @[Cat.scala 33:92]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_isSubnormal = $signed(lsuIssInfo_res_param_dat_op2_unrecoded_rawIn__sExp)
     < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] lsuIssInfo_res_param_dat_op2_unrecoded_denormShiftDist = 6'h1 -
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _lsuIssInfo_res_param_dat_op2_unrecoded_denormFract_T_1 =
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn__sig[53:1] >> lsuIssInfo_res_param_dat_op2_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] lsuIssInfo_res_param_dat_op2_unrecoded_denormFract =
    _lsuIssInfo_res_param_dat_op2_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_2 = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn__sExp[10
    :0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_3 = lsuIssInfo_res_param_dat_op2_unrecoded_isSubnormal ? 11'h0
     : _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_4 = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn__isNaN |
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_6 = _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_4 ? 11'h7ff
     : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] lsuIssInfo_res_param_dat_op2_unrecoded_expOut = _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_3 |
    _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _lsuIssInfo_res_param_dat_op2_unrecoded_fractOut_T_1 = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn__isInf
     ? 52'h0 : lsuIssInfo_res_param_dat_op2_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] lsuIssInfo_res_param_dat_op2_unrecoded_fractOut = lsuIssInfo_res_param_dat_op2_unrecoded_isSubnormal ?
    lsuIssInfo_res_param_dat_op2_unrecoded_denormFract : _lsuIssInfo_res_param_dat_op2_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] lsuIssInfo_res_param_dat_op2_unrecoded = {lsuIssInfo_res_param_dat_op2_unrecoded_rawIn__sign,
    lsuIssInfo_res_param_dat_op2_unrecoded_expOut,lsuIssInfo_res_param_dat_op2_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_isSpecial = lsuIssInfo_res_param_dat_op2_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn__isNaN =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_isSpecial & lsuIssInfo_res_param_dat_op2_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn__isInf =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_isSpecial & ~lsuIssInfo_res_param_dat_op2_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn__sExp = {1'b0,$signed(lsuIssInfo_res_param_dat_op2_expIn)}
    ; // @[rawFloatFromRecFN.scala 59:27]
  wire  _lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_out_sig_T = ~_lsuIssInfo_res_param_dat_op2_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn__sig = {1'h0,
    _lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_out_sig_T,lsuIssInfo_res_param_dat_op2_fractIn}; // @[Cat.scala 33:92]
  wire  lsuIssInfo_res_param_dat_op2_prevUnrecoded_isSubnormal = $signed(
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormShiftDist = 5'h1 -
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormFract_T_1 =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn__sig[24:1] >>
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormFract =
    _lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_2 =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_3 =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_isSubnormal ? 8'h0 :
    _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_4 = lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn__isNaN
     | lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_6 =
    _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut = _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_3
     | _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _lsuIssInfo_res_param_dat_op2_prevUnrecoded_fractOut_T_1 =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn__isInf ? 23'h0 :
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_fractOut =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_isSubnormal ? lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormFract :
    _lsuIssInfo_res_param_dat_op2_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded = {lsuIssInfo_res_param_dat_op2_sign,
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut,lsuIssInfo_res_param_dat_op2_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _lsuIssInfo_res_param_dat_op2_T_10 = &postBufOperator_0_1[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _lsuIssInfo_res_param_dat_op2_T_12 = _lsuIssInfo_res_param_dat_op2_T_10 ?
    lsuIssInfo_res_param_dat_op2_prevUnrecoded : lsuIssInfo_res_param_dat_op2_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire [63:0] _lsuIssInfo_res_param_dat_op2_T_13 = {lsuIssInfo_res_param_dat_op2_unrecoded[63:32],
    _lsuIssInfo_res_param_dat_op2_T_12}; // @[Cat.scala 33:92]
  wire [64:0] _lsuIssInfo_res_param_dat_op2_T_14 = _lsuIssInfo_res_param_dat_op2_T ? {{1'd0},
    _lsuIssInfo_res_param_dat_op2_T_13} : postBufOperator_0_1; // @[Issue.scala 859:10]
  wire  _lsuIssInfo_res_param_dat_op1_T_30 = bufInfo_1_lsu_isa_sc_d | bufInfo_1_lsu_isa_sc_w; // @[riscv_isa.scala 140:20]
  wire  _lsuIssInfo_res_param_dat_op1_T_31 = bufInfo_1_lsu_isa_lr_d | bufInfo_1_lsu_isa_lr_w; // @[riscv_isa.scala 141:20]
  wire  _lsuIssInfo_res_param_dat_op1_T_32 = _lsuIssInfo_res_param_dat_op1_T_30 | _lsuIssInfo_res_param_dat_op1_T_31; // @[riscv_isa.scala 146:23]
  wire  _lsuIssInfo_res_param_dat_op1_T_51 = bufInfo_1_lsu_isa_amoswap_w | bufInfo_1_lsu_isa_amoadd_w |
    bufInfo_1_lsu_isa_amoxor_w | bufInfo_1_lsu_isa_amoand_w | bufInfo_1_lsu_isa_amoor_w | bufInfo_1_lsu_isa_amomin_w |
    bufInfo_1_lsu_isa_amomax_w | bufInfo_1_lsu_isa_amominu_w | bufInfo_1_lsu_isa_amomaxu_w | bufInfo_1_lsu_isa_amoswap_d
     | bufInfo_1_lsu_isa_amoadd_d | bufInfo_1_lsu_isa_amoxor_d | bufInfo_1_lsu_isa_amoand_d | bufInfo_1_lsu_isa_amoor_d
     | bufInfo_1_lsu_isa_amomin_d | bufInfo_1_lsu_isa_amomax_d | bufInfo_1_lsu_isa_amominu_d |
    bufInfo_1_lsu_isa_amomaxu_d | _lsuIssInfo_res_param_dat_op1_T_30; // @[riscv_isa.scala 148:205]
  wire [64:0] _lsuIssInfo_res_param_dat_op1_T_53 = _canIOpReq_1_0_T_6 ? {{1'd0}, io_irgRsp_0_bits_op} :
    _postBufOperator_1_0_T_16; // @[Issue.scala 857:125]
  wire [63:0] _lsuIssInfo_res_param_dat_op1_T_54 = bufInfo_1_param_imm; // @[Issue.scala 857:163]
  wire [64:0] _GEN_472 = {{1{_lsuIssInfo_res_param_dat_op1_T_54[63]}},_lsuIssInfo_res_param_dat_op1_T_54}; // @[Issue.scala 857:132]
  wire [64:0] _lsuIssInfo_res_param_dat_op1_T_58 = $signed(_lsuIssInfo_res_param_dat_op1_T_53) + $signed(_GEN_472); // @[Issue.scala 857:173]
  wire [64:0] _lsuIssInfo_res_param_dat_op1_T_59 = _lsuIssInfo_res_param_dat_op1_T_32 |
    _lsuIssInfo_res_param_dat_op1_T_51 ? postBufOperator_1_0 : _lsuIssInfo_res_param_dat_op1_T_58; // @[Issue.scala 857:10]
  wire  _lsuIssInfo_res_param_dat_op2_T_15 = bufInfo_1_lsu_isa_fsw | bufInfo_1_lsu_isa_fsd; // @[riscv_isa.scala 164:20]
  wire [32:0] lsuIssInfo_res_param_dat_op2_unswizzled_1 = {postBufOperator_1_1[31],postBufOperator_1_1[52],
    postBufOperator_1_1[30:0]}; // @[Cat.scala 33:92]
  wire  lsuIssInfo_res_param_dat_op2_sign_1 = lsuIssInfo_res_param_dat_op2_unswizzled_1[32]; // @[Fpu.scala 59:17]
  wire [22:0] lsuIssInfo_res_param_dat_op2_fractIn_1 = lsuIssInfo_res_param_dat_op2_unswizzled_1[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] lsuIssInfo_res_param_dat_op2_expIn_1 = lsuIssInfo_res_param_dat_op2_unswizzled_1[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] lsuIssInfo_res_param_dat_op2_expOut_expCode_1 = lsuIssInfo_res_param_dat_op2_expIn_1[8:6]; // @[Fpu.scala 64:26]
  wire  _lsuIssInfo_res_param_dat_op2_expOut_T_6 = lsuIssInfo_res_param_dat_op2_expOut_expCode_1 == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp_1 = postBufOperator_1_1[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_isZero_1 = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp_1[11:9]
     == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_isSpecial_1 = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp_1[11
    :10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_1_isNaN = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_isSpecial_1
     & lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp_1[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_1_isInf = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_isSpecial_1
     & ~lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp_1[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_1_sign = postBufOperator_1_1[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_1_sExp = {1'b0,$signed(
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp_1)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_out_sig_T_3 = ~
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_isZero_1; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_1_sig = {1'h0,
    _lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_out_sig_T_3,postBufOperator_1_1[51:0]}; // @[Cat.scala 33:92]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_isSubnormal_1 = $signed(
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_1_sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] lsuIssInfo_res_param_dat_op2_unrecoded_denormShiftDist_1 = 6'h1 -
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_1_sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _lsuIssInfo_res_param_dat_op2_unrecoded_denormFract_T_3 =
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_1_sig[53:1] >> lsuIssInfo_res_param_dat_op2_unrecoded_denormShiftDist_1
    ; // @[fNFromRecFN.scala 52:42]
  wire [51:0] lsuIssInfo_res_param_dat_op2_unrecoded_denormFract_1 =
    _lsuIssInfo_res_param_dat_op2_unrecoded_denormFract_T_3[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_9 = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_1_sExp[
    10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_10 = lsuIssInfo_res_param_dat_op2_unrecoded_isSubnormal_1
     ? 11'h0 : _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_9; // @[fNFromRecFN.scala 55:16]
  wire  _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_11 = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_1_isNaN |
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_1_isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_13 = _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_11
     ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] lsuIssInfo_res_param_dat_op2_unrecoded_expOut_1 = _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_10 |
    _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_13; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _lsuIssInfo_res_param_dat_op2_unrecoded_fractOut_T_3 =
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_1_isInf ? 52'h0 : lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_1_sig[51
    :0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] lsuIssInfo_res_param_dat_op2_unrecoded_fractOut_1 = lsuIssInfo_res_param_dat_op2_unrecoded_isSubnormal_1
     ? lsuIssInfo_res_param_dat_op2_unrecoded_denormFract_1 : _lsuIssInfo_res_param_dat_op2_unrecoded_fractOut_T_3; // @[fNFromRecFN.scala 61:16]
  wire [63:0] lsuIssInfo_res_param_dat_op2_unrecoded_1 = {lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_1_sign,
    lsuIssInfo_res_param_dat_op2_unrecoded_expOut_1,lsuIssInfo_res_param_dat_op2_unrecoded_fractOut_1}; // @[Cat.scala 33:92]
  wire  lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_isSpecial_1 = lsuIssInfo_res_param_dat_op2_expIn_1[8:7] == 2'h3
    ; // @[rawFloatFromRecFN.scala 52:54]
  wire  lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_1_isNaN =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_isSpecial_1 & lsuIssInfo_res_param_dat_op2_expIn_1[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_1_isInf =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_isSpecial_1 & ~lsuIssInfo_res_param_dat_op2_expIn_1[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_1_sExp = {1'b0,$signed(
    lsuIssInfo_res_param_dat_op2_expIn_1)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_out_sig_T_3 = ~_lsuIssInfo_res_param_dat_op2_expOut_T_6; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_1_sig = {1'h0,
    _lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_out_sig_T_3,lsuIssInfo_res_param_dat_op2_fractIn_1}; // @[Cat.scala 33:92]
  wire  lsuIssInfo_res_param_dat_op2_prevUnrecoded_isSubnormal_1 = $signed(
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_1_sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormShiftDist_1 = 5'h1 -
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_1_sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormFract_T_3 =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_1_sig[24:1] >>
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormShiftDist_1; // @[fNFromRecFN.scala 52:42]
  wire [22:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormFract_1 =
    _lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormFract_T_3[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_9 =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_1_sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_10 =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_isSubnormal_1 ? 8'h0 :
    _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_9; // @[fNFromRecFN.scala 55:16]
  wire  _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_11 =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_1_isNaN | lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_1_isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_13 =
    _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_11 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_1 =
    _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_10 | _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_13; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _lsuIssInfo_res_param_dat_op2_prevUnrecoded_fractOut_T_3 =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_1_isInf ? 23'h0 :
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_1_sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_fractOut_1 =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_isSubnormal_1 ? lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormFract_1
     : _lsuIssInfo_res_param_dat_op2_prevUnrecoded_fractOut_T_3; // @[fNFromRecFN.scala 61:16]
  wire [31:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_1 = {lsuIssInfo_res_param_dat_op2_sign_1,
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_1,lsuIssInfo_res_param_dat_op2_prevUnrecoded_fractOut_1}; // @[Cat.scala 33:92]
  wire  _lsuIssInfo_res_param_dat_op2_T_25 = &postBufOperator_1_1[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _lsuIssInfo_res_param_dat_op2_T_27 = _lsuIssInfo_res_param_dat_op2_T_25 ?
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_1 : lsuIssInfo_res_param_dat_op2_unrecoded_1[31:0]; // @[Fpu.scala 243:44]
  wire [63:0] _lsuIssInfo_res_param_dat_op2_T_28 = {lsuIssInfo_res_param_dat_op2_unrecoded_1[63:32],
    _lsuIssInfo_res_param_dat_op2_T_27}; // @[Cat.scala 33:92]
  wire [64:0] _lsuIssInfo_res_param_dat_op2_T_29 = _lsuIssInfo_res_param_dat_op2_T_15 ? {{1'd0},
    _lsuIssInfo_res_param_dat_op2_T_28} : postBufOperator_1_1; // @[Issue.scala 859:10]
  wire  _lsuIssInfo_res_param_dat_op1_T_60 = bufInfo_2_lsu_isa_sc_d | bufInfo_2_lsu_isa_sc_w; // @[riscv_isa.scala 140:20]
  wire  _lsuIssInfo_res_param_dat_op1_T_61 = bufInfo_2_lsu_isa_lr_d | bufInfo_2_lsu_isa_lr_w; // @[riscv_isa.scala 141:20]
  wire  _lsuIssInfo_res_param_dat_op1_T_62 = _lsuIssInfo_res_param_dat_op1_T_60 | _lsuIssInfo_res_param_dat_op1_T_61; // @[riscv_isa.scala 146:23]
  wire  _lsuIssInfo_res_param_dat_op1_T_81 = bufInfo_2_lsu_isa_amoswap_w | bufInfo_2_lsu_isa_amoadd_w |
    bufInfo_2_lsu_isa_amoxor_w | bufInfo_2_lsu_isa_amoand_w | bufInfo_2_lsu_isa_amoor_w | bufInfo_2_lsu_isa_amomin_w |
    bufInfo_2_lsu_isa_amomax_w | bufInfo_2_lsu_isa_amominu_w | bufInfo_2_lsu_isa_amomaxu_w | bufInfo_2_lsu_isa_amoswap_d
     | bufInfo_2_lsu_isa_amoadd_d | bufInfo_2_lsu_isa_amoxor_d | bufInfo_2_lsu_isa_amoand_d | bufInfo_2_lsu_isa_amoor_d
     | bufInfo_2_lsu_isa_amomin_d | bufInfo_2_lsu_isa_amomax_d | bufInfo_2_lsu_isa_amominu_d |
    bufInfo_2_lsu_isa_amomaxu_d | _lsuIssInfo_res_param_dat_op1_T_60; // @[riscv_isa.scala 148:205]
  wire [64:0] _lsuIssInfo_res_param_dat_op1_T_83 = _canIOpReq_2_0_T_6 ? {{1'd0}, io_irgRsp_0_bits_op} :
    _postBufOperator_2_0_T_16; // @[Issue.scala 857:125]
  wire [63:0] _lsuIssInfo_res_param_dat_op1_T_84 = bufInfo_2_param_imm; // @[Issue.scala 857:163]
  wire [64:0] _GEN_474 = {{1{_lsuIssInfo_res_param_dat_op1_T_84[63]}},_lsuIssInfo_res_param_dat_op1_T_84}; // @[Issue.scala 857:132]
  wire [64:0] _lsuIssInfo_res_param_dat_op1_T_88 = $signed(_lsuIssInfo_res_param_dat_op1_T_83) + $signed(_GEN_474); // @[Issue.scala 857:173]
  wire [64:0] _lsuIssInfo_res_param_dat_op1_T_89 = _lsuIssInfo_res_param_dat_op1_T_62 |
    _lsuIssInfo_res_param_dat_op1_T_81 ? postBufOperator_2_0 : _lsuIssInfo_res_param_dat_op1_T_88; // @[Issue.scala 857:10]
  wire  _lsuIssInfo_res_param_dat_op2_T_30 = bufInfo_2_lsu_isa_fsw | bufInfo_2_lsu_isa_fsd; // @[riscv_isa.scala 164:20]
  wire [32:0] lsuIssInfo_res_param_dat_op2_unswizzled_2 = {postBufOperator_2_1[31],postBufOperator_2_1[52],
    postBufOperator_2_1[30:0]}; // @[Cat.scala 33:92]
  wire  lsuIssInfo_res_param_dat_op2_sign_2 = lsuIssInfo_res_param_dat_op2_unswizzled_2[32]; // @[Fpu.scala 59:17]
  wire [22:0] lsuIssInfo_res_param_dat_op2_fractIn_2 = lsuIssInfo_res_param_dat_op2_unswizzled_2[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] lsuIssInfo_res_param_dat_op2_expIn_2 = lsuIssInfo_res_param_dat_op2_unswizzled_2[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] lsuIssInfo_res_param_dat_op2_expOut_expCode_2 = lsuIssInfo_res_param_dat_op2_expIn_2[8:6]; // @[Fpu.scala 64:26]
  wire  _lsuIssInfo_res_param_dat_op2_expOut_T_12 = lsuIssInfo_res_param_dat_op2_expOut_expCode_2 == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp_2 = postBufOperator_2_1[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_isZero_2 = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp_2[11:9]
     == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_isSpecial_2 = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp_2[11
    :10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_2_isNaN = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_isSpecial_2
     & lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp_2[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_2_isInf = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_isSpecial_2
     & ~lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp_2[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_2_sign = postBufOperator_2_1[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_2_sExp = {1'b0,$signed(
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp_2)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_out_sig_T_6 = ~
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_isZero_2; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_2_sig = {1'h0,
    _lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_out_sig_T_6,postBufOperator_2_1[51:0]}; // @[Cat.scala 33:92]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_isSubnormal_2 = $signed(
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_2_sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] lsuIssInfo_res_param_dat_op2_unrecoded_denormShiftDist_2 = 6'h1 -
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_2_sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _lsuIssInfo_res_param_dat_op2_unrecoded_denormFract_T_5 =
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_2_sig[53:1] >> lsuIssInfo_res_param_dat_op2_unrecoded_denormShiftDist_2
    ; // @[fNFromRecFN.scala 52:42]
  wire [51:0] lsuIssInfo_res_param_dat_op2_unrecoded_denormFract_2 =
    _lsuIssInfo_res_param_dat_op2_unrecoded_denormFract_T_5[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_16 = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_2_sExp[
    10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_17 = lsuIssInfo_res_param_dat_op2_unrecoded_isSubnormal_2
     ? 11'h0 : _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_16; // @[fNFromRecFN.scala 55:16]
  wire  _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_18 = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_2_isNaN |
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_2_isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_20 = _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_18
     ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] lsuIssInfo_res_param_dat_op2_unrecoded_expOut_2 = _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_17 |
    _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_20; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _lsuIssInfo_res_param_dat_op2_unrecoded_fractOut_T_5 =
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_2_isInf ? 52'h0 : lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_2_sig[51
    :0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] lsuIssInfo_res_param_dat_op2_unrecoded_fractOut_2 = lsuIssInfo_res_param_dat_op2_unrecoded_isSubnormal_2
     ? lsuIssInfo_res_param_dat_op2_unrecoded_denormFract_2 : _lsuIssInfo_res_param_dat_op2_unrecoded_fractOut_T_5; // @[fNFromRecFN.scala 61:16]
  wire [63:0] lsuIssInfo_res_param_dat_op2_unrecoded_2 = {lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_2_sign,
    lsuIssInfo_res_param_dat_op2_unrecoded_expOut_2,lsuIssInfo_res_param_dat_op2_unrecoded_fractOut_2}; // @[Cat.scala 33:92]
  wire  lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_isSpecial_2 = lsuIssInfo_res_param_dat_op2_expIn_2[8:7] == 2'h3
    ; // @[rawFloatFromRecFN.scala 52:54]
  wire  lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_2_isNaN =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_isSpecial_2 & lsuIssInfo_res_param_dat_op2_expIn_2[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_2_isInf =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_isSpecial_2 & ~lsuIssInfo_res_param_dat_op2_expIn_2[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_2_sExp = {1'b0,$signed(
    lsuIssInfo_res_param_dat_op2_expIn_2)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_out_sig_T_6 = ~_lsuIssInfo_res_param_dat_op2_expOut_T_12; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_2_sig = {1'h0,
    _lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_out_sig_T_6,lsuIssInfo_res_param_dat_op2_fractIn_2}; // @[Cat.scala 33:92]
  wire  lsuIssInfo_res_param_dat_op2_prevUnrecoded_isSubnormal_2 = $signed(
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_2_sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormShiftDist_2 = 5'h1 -
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_2_sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormFract_T_5 =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_2_sig[24:1] >>
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormShiftDist_2; // @[fNFromRecFN.scala 52:42]
  wire [22:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormFract_2 =
    _lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormFract_T_5[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_16 =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_2_sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_17 =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_isSubnormal_2 ? 8'h0 :
    _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_16; // @[fNFromRecFN.scala 55:16]
  wire  _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_18 =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_2_isNaN | lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_2_isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_20 =
    _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_18 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_2 =
    _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_17 | _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_20; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _lsuIssInfo_res_param_dat_op2_prevUnrecoded_fractOut_T_5 =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_2_isInf ? 23'h0 :
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_2_sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_fractOut_2 =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_isSubnormal_2 ? lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormFract_2
     : _lsuIssInfo_res_param_dat_op2_prevUnrecoded_fractOut_T_5; // @[fNFromRecFN.scala 61:16]
  wire [31:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_2 = {lsuIssInfo_res_param_dat_op2_sign_2,
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_2,lsuIssInfo_res_param_dat_op2_prevUnrecoded_fractOut_2}; // @[Cat.scala 33:92]
  wire  _lsuIssInfo_res_param_dat_op2_T_40 = &postBufOperator_2_1[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _lsuIssInfo_res_param_dat_op2_T_42 = _lsuIssInfo_res_param_dat_op2_T_40 ?
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_2 : lsuIssInfo_res_param_dat_op2_unrecoded_2[31:0]; // @[Fpu.scala 243:44]
  wire [63:0] _lsuIssInfo_res_param_dat_op2_T_43 = {lsuIssInfo_res_param_dat_op2_unrecoded_2[63:32],
    _lsuIssInfo_res_param_dat_op2_T_42}; // @[Cat.scala 33:92]
  wire [64:0] _lsuIssInfo_res_param_dat_op2_T_44 = _lsuIssInfo_res_param_dat_op2_T_30 ? {{1'd0},
    _lsuIssInfo_res_param_dat_op2_T_43} : postBufOperator_2_1; // @[Issue.scala 859:10]
  wire  _lsuIssInfo_res_param_dat_op1_T_90 = bufInfo_3_lsu_isa_sc_d | bufInfo_3_lsu_isa_sc_w; // @[riscv_isa.scala 140:20]
  wire  _lsuIssInfo_res_param_dat_op1_T_91 = bufInfo_3_lsu_isa_lr_d | bufInfo_3_lsu_isa_lr_w; // @[riscv_isa.scala 141:20]
  wire  _lsuIssInfo_res_param_dat_op1_T_92 = _lsuIssInfo_res_param_dat_op1_T_90 | _lsuIssInfo_res_param_dat_op1_T_91; // @[riscv_isa.scala 146:23]
  wire  _lsuIssInfo_res_param_dat_op1_T_111 = bufInfo_3_lsu_isa_amoswap_w | bufInfo_3_lsu_isa_amoadd_w |
    bufInfo_3_lsu_isa_amoxor_w | bufInfo_3_lsu_isa_amoand_w | bufInfo_3_lsu_isa_amoor_w | bufInfo_3_lsu_isa_amomin_w |
    bufInfo_3_lsu_isa_amomax_w | bufInfo_3_lsu_isa_amominu_w | bufInfo_3_lsu_isa_amomaxu_w | bufInfo_3_lsu_isa_amoswap_d
     | bufInfo_3_lsu_isa_amoadd_d | bufInfo_3_lsu_isa_amoxor_d | bufInfo_3_lsu_isa_amoand_d | bufInfo_3_lsu_isa_amoor_d
     | bufInfo_3_lsu_isa_amomin_d | bufInfo_3_lsu_isa_amomax_d | bufInfo_3_lsu_isa_amominu_d |
    bufInfo_3_lsu_isa_amomaxu_d | _lsuIssInfo_res_param_dat_op1_T_90; // @[riscv_isa.scala 148:205]
  wire [64:0] _lsuIssInfo_res_param_dat_op1_T_113 = _canIOpReq_3_0_T_6 ? {{1'd0}, io_irgRsp_0_bits_op} :
    _postBufOperator_3_0_T_16; // @[Issue.scala 857:125]
  wire [63:0] _lsuIssInfo_res_param_dat_op1_T_114 = bufInfo_3_param_imm; // @[Issue.scala 857:163]
  wire [64:0] _GEN_476 = {{1{_lsuIssInfo_res_param_dat_op1_T_114[63]}},_lsuIssInfo_res_param_dat_op1_T_114}; // @[Issue.scala 857:132]
  wire [64:0] _lsuIssInfo_res_param_dat_op1_T_118 = $signed(_lsuIssInfo_res_param_dat_op1_T_113) + $signed(_GEN_476); // @[Issue.scala 857:173]
  wire [64:0] _lsuIssInfo_res_param_dat_op1_T_119 = _lsuIssInfo_res_param_dat_op1_T_92 |
    _lsuIssInfo_res_param_dat_op1_T_111 ? postBufOperator_3_0 : _lsuIssInfo_res_param_dat_op1_T_118; // @[Issue.scala 857:10]
  wire  _lsuIssInfo_res_param_dat_op2_T_45 = bufInfo_3_lsu_isa_fsw | bufInfo_3_lsu_isa_fsd; // @[riscv_isa.scala 164:20]
  wire [32:0] lsuIssInfo_res_param_dat_op2_unswizzled_3 = {postBufOperator_3_1[31],postBufOperator_3_1[52],
    postBufOperator_3_1[30:0]}; // @[Cat.scala 33:92]
  wire  lsuIssInfo_res_param_dat_op2_sign_3 = lsuIssInfo_res_param_dat_op2_unswizzled_3[32]; // @[Fpu.scala 59:17]
  wire [22:0] lsuIssInfo_res_param_dat_op2_fractIn_3 = lsuIssInfo_res_param_dat_op2_unswizzled_3[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] lsuIssInfo_res_param_dat_op2_expIn_3 = lsuIssInfo_res_param_dat_op2_unswizzled_3[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] lsuIssInfo_res_param_dat_op2_expOut_expCode_3 = lsuIssInfo_res_param_dat_op2_expIn_3[8:6]; // @[Fpu.scala 64:26]
  wire  _lsuIssInfo_res_param_dat_op2_expOut_T_18 = lsuIssInfo_res_param_dat_op2_expOut_expCode_3 == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp_3 = postBufOperator_3_1[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_isZero_3 = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp_3[11:9]
     == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_isSpecial_3 = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp_3[11
    :10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_3_isNaN = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_isSpecial_3
     & lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp_3[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_3_isInf = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_isSpecial_3
     & ~lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp_3[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_3_sign = postBufOperator_3_1[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_3_sExp = {1'b0,$signed(
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_exp_3)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_out_sig_T_9 = ~
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_isZero_3; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_3_sig = {1'h0,
    _lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_out_sig_T_9,postBufOperator_3_1[51:0]}; // @[Cat.scala 33:92]
  wire  lsuIssInfo_res_param_dat_op2_unrecoded_isSubnormal_3 = $signed(
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_3_sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] lsuIssInfo_res_param_dat_op2_unrecoded_denormShiftDist_3 = 6'h1 -
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_3_sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _lsuIssInfo_res_param_dat_op2_unrecoded_denormFract_T_7 =
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_3_sig[53:1] >> lsuIssInfo_res_param_dat_op2_unrecoded_denormShiftDist_3
    ; // @[fNFromRecFN.scala 52:42]
  wire [51:0] lsuIssInfo_res_param_dat_op2_unrecoded_denormFract_3 =
    _lsuIssInfo_res_param_dat_op2_unrecoded_denormFract_T_7[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_23 = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_3_sExp[
    10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_24 = lsuIssInfo_res_param_dat_op2_unrecoded_isSubnormal_3
     ? 11'h0 : _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_23; // @[fNFromRecFN.scala 55:16]
  wire  _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_25 = lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_3_isNaN |
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_3_isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_27 = _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_25
     ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] lsuIssInfo_res_param_dat_op2_unrecoded_expOut_3 = _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_24 |
    _lsuIssInfo_res_param_dat_op2_unrecoded_expOut_T_27; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _lsuIssInfo_res_param_dat_op2_unrecoded_fractOut_T_7 =
    lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_3_isInf ? 52'h0 : lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_3_sig[51
    :0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] lsuIssInfo_res_param_dat_op2_unrecoded_fractOut_3 = lsuIssInfo_res_param_dat_op2_unrecoded_isSubnormal_3
     ? lsuIssInfo_res_param_dat_op2_unrecoded_denormFract_3 : _lsuIssInfo_res_param_dat_op2_unrecoded_fractOut_T_7; // @[fNFromRecFN.scala 61:16]
  wire [63:0] lsuIssInfo_res_param_dat_op2_unrecoded_3 = {lsuIssInfo_res_param_dat_op2_unrecoded_rawIn_3_sign,
    lsuIssInfo_res_param_dat_op2_unrecoded_expOut_3,lsuIssInfo_res_param_dat_op2_unrecoded_fractOut_3}; // @[Cat.scala 33:92]
  wire  lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_isSpecial_3 = lsuIssInfo_res_param_dat_op2_expIn_3[8:7] == 2'h3
    ; // @[rawFloatFromRecFN.scala 52:54]
  wire  lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_3_isNaN =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_isSpecial_3 & lsuIssInfo_res_param_dat_op2_expIn_3[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_3_isInf =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_isSpecial_3 & ~lsuIssInfo_res_param_dat_op2_expIn_3[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_3_sExp = {1'b0,$signed(
    lsuIssInfo_res_param_dat_op2_expIn_3)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_out_sig_T_9 = ~_lsuIssInfo_res_param_dat_op2_expOut_T_18; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_3_sig = {1'h0,
    _lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_out_sig_T_9,lsuIssInfo_res_param_dat_op2_fractIn_3}; // @[Cat.scala 33:92]
  wire  lsuIssInfo_res_param_dat_op2_prevUnrecoded_isSubnormal_3 = $signed(
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_3_sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormShiftDist_3 = 5'h1 -
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_3_sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormFract_T_7 =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_3_sig[24:1] >>
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormShiftDist_3; // @[fNFromRecFN.scala 52:42]
  wire [22:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormFract_3 =
    _lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormFract_T_7[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_23 =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_3_sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_24 =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_isSubnormal_3 ? 8'h0 :
    _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_23; // @[fNFromRecFN.scala 55:16]
  wire  _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_25 =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_3_isNaN | lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_3_isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_27 =
    _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_25 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_3 =
    _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_24 | _lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_T_27; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _lsuIssInfo_res_param_dat_op2_prevUnrecoded_fractOut_T_7 =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_3_isInf ? 23'h0 :
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_rawIn_3_sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_fractOut_3 =
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_isSubnormal_3 ? lsuIssInfo_res_param_dat_op2_prevUnrecoded_denormFract_3
     : _lsuIssInfo_res_param_dat_op2_prevUnrecoded_fractOut_T_7; // @[fNFromRecFN.scala 61:16]
  wire [31:0] lsuIssInfo_res_param_dat_op2_prevUnrecoded_3 = {lsuIssInfo_res_param_dat_op2_sign_3,
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_expOut_3,lsuIssInfo_res_param_dat_op2_prevUnrecoded_fractOut_3}; // @[Cat.scala 33:92]
  wire  _lsuIssInfo_res_param_dat_op2_T_55 = &postBufOperator_3_1[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _lsuIssInfo_res_param_dat_op2_T_57 = _lsuIssInfo_res_param_dat_op2_T_55 ?
    lsuIssInfo_res_param_dat_op2_prevUnrecoded_3 : lsuIssInfo_res_param_dat_op2_unrecoded_3[31:0]; // @[Fpu.scala 243:44]
  wire [63:0] _lsuIssInfo_res_param_dat_op2_T_58 = {lsuIssInfo_res_param_dat_op2_unrecoded_3[63:32],
    _lsuIssInfo_res_param_dat_op2_T_57}; // @[Cat.scala 33:92]
  wire [64:0] _lsuIssInfo_res_param_dat_op2_T_59 = _lsuIssInfo_res_param_dat_op2_T_45 ? {{1'd0},
    _lsuIssInfo_res_param_dat_op2_T_58} : postBufOperator_3_1; // @[Issue.scala 859:10]
  wire  _maskCondLsuIss_0_T_10 = bufInfo_0_lsu_isa_lb | bufInfo_0_lsu_isa_lh | bufInfo_0_lsu_isa_lw |
    bufInfo_0_lsu_isa_ld | bufInfo_0_lsu_isa_lbu | bufInfo_0_lsu_isa_lhu | bufInfo_0_lsu_isa_lwu | bufInfo_0_lsu_isa_sb
     | bufInfo_0_lsu_isa_sh | bufInfo_0_lsu_isa_sw | bufInfo_0_lsu_isa_sd; // @[riscv_isa.scala 145:67]
  wire  _maskCondLsuIss_0_T_37 = bufInfo_0_lsu_isa_flw | bufInfo_0_lsu_isa_fsw | bufInfo_0_lsu_isa_fld |
    bufInfo_0_lsu_isa_fsd; // @[riscv_isa.scala 149:32]
  wire  _maskCondLsuIss_0_T_40 = bufInfo_0_lsu_isa_fence | bufInfo_0_lsu_isa_fence_i | bufInfo_0_lsu_isa_sfence_vma; // @[riscv_isa.scala 150:34]
  wire  _maskCondLsuIss_0_T_41 = _maskCondLsuIss_0_T_10 | _lsuIssInfo_res_param_dat_op1_T_2 |
    _lsuIssInfo_res_param_dat_op1_T_21 | _maskCondLsuIss_0_T_37 | _maskCondLsuIss_0_T_40; // @[riscv_isa.scala 151:51]
  wire  _maskCondLsuIss_0_T_42 = ~_maskCondLsuIss_0_T_41; // @[Issue.scala 881:7]
  wire  maskCondLsuIss_0 = _entrySel_T | _maskCondLsuIss_0_T_42; // @[Issue.scala 880:20]
  wire  _maskCondLsuIss_1_T_10 = bufInfo_1_lsu_isa_lb | bufInfo_1_lsu_isa_lh | bufInfo_1_lsu_isa_lw |
    bufInfo_1_lsu_isa_ld | bufInfo_1_lsu_isa_lbu | bufInfo_1_lsu_isa_lhu | bufInfo_1_lsu_isa_lwu | bufInfo_1_lsu_isa_sb
     | bufInfo_1_lsu_isa_sh | bufInfo_1_lsu_isa_sw | bufInfo_1_lsu_isa_sd; // @[riscv_isa.scala 145:67]
  wire  _maskCondLsuIss_1_T_37 = bufInfo_1_lsu_isa_flw | bufInfo_1_lsu_isa_fsw | bufInfo_1_lsu_isa_fld |
    bufInfo_1_lsu_isa_fsd; // @[riscv_isa.scala 149:32]
  wire  _maskCondLsuIss_1_T_40 = bufInfo_1_lsu_isa_fence | bufInfo_1_lsu_isa_fence_i | bufInfo_1_lsu_isa_sfence_vma; // @[riscv_isa.scala 150:34]
  wire  _maskCondLsuIss_1_T_41 = _maskCondLsuIss_1_T_10 | _lsuIssInfo_res_param_dat_op1_T_32 |
    _lsuIssInfo_res_param_dat_op1_T_51 | _maskCondLsuIss_1_T_37 | _maskCondLsuIss_1_T_40; // @[riscv_isa.scala 151:51]
  wire  _maskCondLsuIss_1_T_42 = ~_maskCondLsuIss_1_T_41; // @[Issue.scala 881:7]
  wire  maskCondLsuIss_1 = _entrySel_T_1 | _maskCondLsuIss_1_T_42; // @[Issue.scala 880:20]
  wire  _maskCondLsuIss_2_T_10 = bufInfo_2_lsu_isa_lb | bufInfo_2_lsu_isa_lh | bufInfo_2_lsu_isa_lw |
    bufInfo_2_lsu_isa_ld | bufInfo_2_lsu_isa_lbu | bufInfo_2_lsu_isa_lhu | bufInfo_2_lsu_isa_lwu | bufInfo_2_lsu_isa_sb
     | bufInfo_2_lsu_isa_sh | bufInfo_2_lsu_isa_sw | bufInfo_2_lsu_isa_sd; // @[riscv_isa.scala 145:67]
  wire  _maskCondLsuIss_2_T_37 = bufInfo_2_lsu_isa_flw | bufInfo_2_lsu_isa_fsw | bufInfo_2_lsu_isa_fld |
    bufInfo_2_lsu_isa_fsd; // @[riscv_isa.scala 149:32]
  wire  _maskCondLsuIss_2_T_40 = bufInfo_2_lsu_isa_fence | bufInfo_2_lsu_isa_fence_i | bufInfo_2_lsu_isa_sfence_vma; // @[riscv_isa.scala 150:34]
  wire  _maskCondLsuIss_2_T_41 = _maskCondLsuIss_2_T_10 | _lsuIssInfo_res_param_dat_op1_T_62 |
    _lsuIssInfo_res_param_dat_op1_T_81 | _maskCondLsuIss_2_T_37 | _maskCondLsuIss_2_T_40; // @[riscv_isa.scala 151:51]
  wire  _maskCondLsuIss_2_T_42 = ~_maskCondLsuIss_2_T_41; // @[Issue.scala 881:7]
  wire  maskCondLsuIss_2 = _entrySel_T_2 | _maskCondLsuIss_2_T_42; // @[Issue.scala 880:20]
  wire  _maskCondLsuIss_3_T_10 = bufInfo_3_lsu_isa_lb | bufInfo_3_lsu_isa_lh | bufInfo_3_lsu_isa_lw |
    bufInfo_3_lsu_isa_ld | bufInfo_3_lsu_isa_lbu | bufInfo_3_lsu_isa_lhu | bufInfo_3_lsu_isa_lwu | bufInfo_3_lsu_isa_sb
     | bufInfo_3_lsu_isa_sh | bufInfo_3_lsu_isa_sw | bufInfo_3_lsu_isa_sd; // @[riscv_isa.scala 145:67]
  wire  _maskCondLsuIss_3_T_37 = bufInfo_3_lsu_isa_flw | bufInfo_3_lsu_isa_fsw | bufInfo_3_lsu_isa_fld |
    bufInfo_3_lsu_isa_fsd; // @[riscv_isa.scala 149:32]
  wire  _maskCondLsuIss_3_T_40 = bufInfo_3_lsu_isa_fence | bufInfo_3_lsu_isa_fence_i | bufInfo_3_lsu_isa_sfence_vma; // @[riscv_isa.scala 150:34]
  wire  _maskCondLsuIss_3_T_41 = _maskCondLsuIss_3_T_10 | _lsuIssInfo_res_param_dat_op1_T_92 |
    _lsuIssInfo_res_param_dat_op1_T_111 | _maskCondLsuIss_3_T_37 | _maskCondLsuIss_3_T_40; // @[riscv_isa.scala 151:51]
  wire  _maskCondLsuIss_3_T_42 = ~_maskCondLsuIss_3_T_41; // @[Issue.scala 881:7]
  wire  maskCondLsuIss_3 = _io_dptReq_0_ready_T_3 | _maskCondLsuIss_3_T_42; // @[Issue.scala 880:20]
  wire  matrixOut_14_0_0 = ageMatrixW_0_0 & ~maskCondLsuIss_0 | maskCondLsuIss_0; // @[Issue.scala 200:60]
  wire  matrixOut_14_0_1 = ageMatrixW_0_1 & ~maskCondLsuIss_1 | maskCondLsuIss_0; // @[Issue.scala 200:60]
  wire  matrixOut_14_0_2 = ageMatrixW_0_2 & ~maskCondLsuIss_2 | maskCondLsuIss_0; // @[Issue.scala 200:60]
  wire  matrixOut_14_0_3 = ageMatrixW_0_3 & ~maskCondLsuIss_3 | maskCondLsuIss_0; // @[Issue.scala 200:60]
  wire  matrixOut_14_1_0 = ageMatrixR_1_0 & ~maskCondLsuIss_0 | maskCondLsuIss_1; // @[Issue.scala 200:60]
  wire  matrixOut_14_1_1 = ageMatrixW_1_1 & ~maskCondLsuIss_1 | maskCondLsuIss_1; // @[Issue.scala 200:60]
  wire  matrixOut_14_1_2 = ageMatrixW_1_2 & ~maskCondLsuIss_2 | maskCondLsuIss_1; // @[Issue.scala 200:60]
  wire  matrixOut_14_1_3 = ageMatrixW_1_3 & ~maskCondLsuIss_3 | maskCondLsuIss_1; // @[Issue.scala 200:60]
  wire  matrixOut_14_2_0 = ageMatrixR_2_0 & ~maskCondLsuIss_0 | maskCondLsuIss_2; // @[Issue.scala 200:60]
  wire  matrixOut_14_2_1 = ageMatrixR_2_1 & ~maskCondLsuIss_1 | maskCondLsuIss_2; // @[Issue.scala 200:60]
  wire  matrixOut_14_2_2 = ageMatrixW_2_2 & ~maskCondLsuIss_2 | maskCondLsuIss_2; // @[Issue.scala 200:60]
  wire  matrixOut_14_2_3 = ageMatrixW_2_3 & ~maskCondLsuIss_3 | maskCondLsuIss_2; // @[Issue.scala 200:60]
  wire  matrixOut_14_3_0 = ageMatrixR_3_0 & ~maskCondLsuIss_0 | maskCondLsuIss_3; // @[Issue.scala 200:60]
  wire  matrixOut_14_3_1 = ageMatrixR_3_1 & ~maskCondLsuIss_1 | maskCondLsuIss_3; // @[Issue.scala 200:60]
  wire  matrixOut_14_3_2 = ageMatrixR_3_2 & ~maskCondLsuIss_2 | maskCondLsuIss_3; // @[Issue.scala 200:60]
  wire  matrixOut_14_3_3 = ageMatrixW_3_3 & ~maskCondLsuIss_3 | maskCondLsuIss_3; // @[Issue.scala 200:60]
  wire  _T_2146 = ~matrixOut_14_0_0 & ~matrixOut_14_0_1 & ~matrixOut_14_0_2 & ~matrixOut_14_0_3; // @[Issue.scala 888:58]
  wire  _T_2154 = ~matrixOut_14_1_0 & ~matrixOut_14_1_1 & ~matrixOut_14_1_2 & ~matrixOut_14_1_3; // @[Issue.scala 888:58]
  wire  _T_2162 = ~matrixOut_14_2_0 & ~matrixOut_14_2_1 & ~matrixOut_14_2_2 & ~matrixOut_14_2_3; // @[Issue.scala 888:58]
  wire  _T_2170 = ~matrixOut_14_3_0 & ~matrixOut_14_3_1 & ~matrixOut_14_3_2 & ~matrixOut_14_3_3; // @[Issue.scala 888:58]
  wire [1:0] _T_2171 = _T_2146 + _T_2154; // @[Bitwise.scala 51:90]
  wire [1:0] _T_2173 = _T_2162 + _T_2170; // @[Bitwise.scala 51:90]
  wire [2:0] _T_2175 = _T_2171 + _T_2173; // @[Bitwise.scala 51:90]
  wire  _T_2177 = _T_2175 == 3'h1; // @[Issue.scala 888:92]
  wire  _T_2178 = matrixOut_14_0_0 & matrixOut_14_0_1 & matrixOut_14_0_2 & matrixOut_14_0_3 & (matrixOut_14_1_0 &
    matrixOut_14_1_1 & matrixOut_14_1_2 & matrixOut_14_1_3) & (matrixOut_14_2_0 & matrixOut_14_2_1 & matrixOut_14_2_2 &
    matrixOut_14_2_3) & (matrixOut_14_3_0 & matrixOut_14_3_1 & matrixOut_14_3_2 & matrixOut_14_3_3) | _T_2177; // @[Issue.scala 887:86]
  wire [1:0] _lsuIssIdx_T_32 = _T_2162 ? 2'h2 : 2'h3; // @[Issue.scala 891:39]
  wire [1:0] _lsuIssIdx_T_33 = _T_2154 ? 2'h1 : _lsuIssIdx_T_32; // @[Issue.scala 891:39]
  wire [1:0] lsuIssIdx = _T_2146 ? 2'h0 : _lsuIssIdx_T_33; // @[Issue.scala 891:39]
  wire  _lsuIssFifo_io_enq_valid_T_9 = _T_2146 & postIsOpReady_0_0 & postIsOpReady_0_1; // @[Issue.scala 894:115]
  wire  _lsuIssFifo_io_enq_valid_T_19 = _T_2154 & postIsOpReady_1_0 & postIsOpReady_1_1; // @[Issue.scala 894:115]
  wire  _lsuIssFifo_io_enq_valid_T_29 = _T_2162 & postIsOpReady_2_0 & postIsOpReady_2_1; // @[Issue.scala 894:115]
  wire  _lsuIssFifo_io_enq_valid_T_39 = _T_2170 & postIsOpReady_3_0 & postIsOpReady_3_1; // @[Issue.scala 894:115]
  wire [63:0] lsuIssInfo_0_param_dat_op2 = _lsuIssInfo_res_param_dat_op2_T_14[63:0]; // @[Issue.scala 852:19 858:23]
  wire [63:0] _lsuIssFifo_io_enq_bits_T_47 = _lsuIssFifo_io_enq_valid_T_9 ? lsuIssInfo_0_param_dat_op2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] lsuIssInfo_1_param_dat_op2 = _lsuIssInfo_res_param_dat_op2_T_29[63:0]; // @[Issue.scala 852:19 858:23]
  wire [63:0] _lsuIssFifo_io_enq_bits_T_48 = _lsuIssFifo_io_enq_valid_T_19 ? lsuIssInfo_1_param_dat_op2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] lsuIssInfo_2_param_dat_op2 = _lsuIssInfo_res_param_dat_op2_T_44[63:0]; // @[Issue.scala 852:19 858:23]
  wire [63:0] _lsuIssFifo_io_enq_bits_T_49 = _lsuIssFifo_io_enq_valid_T_29 ? lsuIssInfo_2_param_dat_op2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] lsuIssInfo_3_param_dat_op2 = _lsuIssInfo_res_param_dat_op2_T_59[63:0]; // @[Issue.scala 852:19 858:23]
  wire [63:0] _lsuIssFifo_io_enq_bits_T_50 = _lsuIssFifo_io_enq_valid_T_39 ? lsuIssInfo_3_param_dat_op2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _lsuIssFifo_io_enq_bits_T_51 = _lsuIssFifo_io_enq_bits_T_47 | _lsuIssFifo_io_enq_bits_T_48; // @[Mux.scala 27:73]
  wire [63:0] _lsuIssFifo_io_enq_bits_T_52 = _lsuIssFifo_io_enq_bits_T_51 | _lsuIssFifo_io_enq_bits_T_49; // @[Mux.scala 27:73]
  wire [63:0] lsuIssInfo_0_param_dat_op1 = _lsuIssInfo_res_param_dat_op1_T_29[63:0]; // @[Issue.scala 852:19 856:23]
  wire [63:0] _lsuIssFifo_io_enq_bits_T_54 = _lsuIssFifo_io_enq_valid_T_9 ? lsuIssInfo_0_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] lsuIssInfo_1_param_dat_op1 = _lsuIssInfo_res_param_dat_op1_T_59[63:0]; // @[Issue.scala 852:19 856:23]
  wire [63:0] _lsuIssFifo_io_enq_bits_T_55 = _lsuIssFifo_io_enq_valid_T_19 ? lsuIssInfo_1_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] lsuIssInfo_2_param_dat_op1 = _lsuIssInfo_res_param_dat_op1_T_89[63:0]; // @[Issue.scala 852:19 856:23]
  wire [63:0] _lsuIssFifo_io_enq_bits_T_56 = _lsuIssFifo_io_enq_valid_T_29 ? lsuIssInfo_2_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] lsuIssInfo_3_param_dat_op1 = _lsuIssInfo_res_param_dat_op1_T_119[63:0]; // @[Issue.scala 852:19 856:23]
  wire [63:0] _lsuIssFifo_io_enq_bits_T_57 = _lsuIssFifo_io_enq_valid_T_39 ? lsuIssInfo_3_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _lsuIssFifo_io_enq_bits_T_58 = _lsuIssFifo_io_enq_bits_T_54 | _lsuIssFifo_io_enq_bits_T_55; // @[Mux.scala 27:73]
  wire [63:0] _lsuIssFifo_io_enq_bits_T_59 = _lsuIssFifo_io_enq_bits_T_58 | _lsuIssFifo_io_enq_bits_T_56; // @[Mux.scala 27:73]
  wire [5:0] _lsuIssFifo_io_enq_bits_T_61 = _lsuIssFifo_io_enq_valid_T_9 ? bufInfo_0_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _lsuIssFifo_io_enq_bits_T_62 = _lsuIssFifo_io_enq_valid_T_19 ? bufInfo_1_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _lsuIssFifo_io_enq_bits_T_63 = _lsuIssFifo_io_enq_valid_T_29 ? bufInfo_2_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _lsuIssFifo_io_enq_bits_T_64 = _lsuIssFifo_io_enq_valid_T_39 ? bufInfo_3_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _lsuIssFifo_io_enq_bits_T_65 = _lsuIssFifo_io_enq_bits_T_61 | _lsuIssFifo_io_enq_bits_T_62; // @[Mux.scala 27:73]
  wire [5:0] _lsuIssFifo_io_enq_bits_T_66 = _lsuIssFifo_io_enq_bits_T_65 | _lsuIssFifo_io_enq_bits_T_63; // @[Mux.scala 27:73]
  wire  _T_2182 = lsuIssFifo_io_enq_ready & lsuIssFifo_io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _T_2184 = _T_2182 & lsuIssIdx == 2'h0; // @[Issue.scala 900:34]
  wire  _T_2238 = _T_2182 & lsuIssIdx == 2'h1; // @[Issue.scala 900:34]
  wire  _T_2292 = _T_2182 & lsuIssIdx == 2'h2; // @[Issue.scala 900:34]
  wire  _T_2346 = _T_2182 & lsuIssIdx == 2'h3; // @[Issue.scala 900:34]
  wire  _GEN_489 = _T_1444 & _T_123; // @[Issue.scala 642:15]
  wire  _GEN_498 = _T_1487 & _T_123; // @[Issue.scala 642:15]
  wire  _GEN_507 = _T_1530 & _T_123; // @[Issue.scala 642:15]
  wire  _GEN_516 = _T_1573 & _T_123; // @[Issue.scala 642:15]
  wire  _GEN_526 = _T_1695 & _T_123; // @[Issue.scala 707:17]
  wire  _GEN_535 = _T_1720 & _T_123; // @[Issue.scala 707:17]
  wire  _GEN_544 = _T_1745 & _T_123; // @[Issue.scala 707:17]
  wire  _GEN_553 = _T_1770 & _T_123; // @[Issue.scala 707:17]
  wire  _GEN_563 = _T_1874 & _T_123; // @[Issue.scala 773:13]
  wire  _GEN_572 = _T_1894 & _T_123; // @[Issue.scala 773:13]
  wire  _GEN_581 = _T_1914 & _T_123; // @[Issue.scala 773:13]
  wire  _GEN_590 = _T_1934 & _T_123; // @[Issue.scala 773:13]
  wire  _GEN_600 = _T_2033 & _T_123; // @[Issue.scala 839:13]
  wire  _GEN_609 = _T_2051 & _T_123; // @[Issue.scala 839:13]
  wire  _GEN_618 = _T_2069 & _T_123; // @[Issue.scala 839:13]
  wire  _GEN_627 = _T_2087 & _T_123; // @[Issue.scala 839:13]
  wire  _GEN_637 = _T_2184 & _T_123; // @[Issue.scala 902:13]
  wire  _GEN_646 = _T_2238 & _T_123; // @[Issue.scala 902:13]
  wire  _GEN_655 = _T_2292 & _T_123; // @[Issue.scala 902:13]
  wire  _GEN_664 = _T_2346 & _T_123; // @[Issue.scala 902:13]
  Queue_2 aluIssFifo_0 ( // @[Issue.scala 605:11]
    .clock(aluIssFifo_0_clock),
    .reset(aluIssFifo_0_reset),
    .io_enq_ready(aluIssFifo_0_io_enq_ready),
    .io_enq_valid(aluIssFifo_0_io_enq_valid),
    .io_enq_bits_fun_add(aluIssFifo_0_io_enq_bits_fun_add),
    .io_enq_bits_fun_slt(aluIssFifo_0_io_enq_bits_fun_slt),
    .io_enq_bits_fun_xor(aluIssFifo_0_io_enq_bits_fun_xor),
    .io_enq_bits_fun_or(aluIssFifo_0_io_enq_bits_fun_or),
    .io_enq_bits_fun_and(aluIssFifo_0_io_enq_bits_fun_and),
    .io_enq_bits_fun_sll(aluIssFifo_0_io_enq_bits_fun_sll),
    .io_enq_bits_fun_srl(aluIssFifo_0_io_enq_bits_fun_srl),
    .io_enq_bits_fun_sra(aluIssFifo_0_io_enq_bits_fun_sra),
    .io_enq_bits_param_rd0(aluIssFifo_0_io_enq_bits_param_rd0),
    .io_enq_bits_param_is_32w(aluIssFifo_0_io_enq_bits_param_is_32w),
    .io_enq_bits_param_is_usi(aluIssFifo_0_io_enq_bits_param_is_usi),
    .io_enq_bits_param_dat_op1(aluIssFifo_0_io_enq_bits_param_dat_op1),
    .io_enq_bits_param_dat_op2(aluIssFifo_0_io_enq_bits_param_dat_op2),
    .io_deq_ready(aluIssFifo_0_io_deq_ready),
    .io_deq_valid(aluIssFifo_0_io_deq_valid),
    .io_deq_bits_fun_add(aluIssFifo_0_io_deq_bits_fun_add),
    .io_deq_bits_fun_slt(aluIssFifo_0_io_deq_bits_fun_slt),
    .io_deq_bits_fun_xor(aluIssFifo_0_io_deq_bits_fun_xor),
    .io_deq_bits_fun_or(aluIssFifo_0_io_deq_bits_fun_or),
    .io_deq_bits_fun_and(aluIssFifo_0_io_deq_bits_fun_and),
    .io_deq_bits_fun_sll(aluIssFifo_0_io_deq_bits_fun_sll),
    .io_deq_bits_fun_srl(aluIssFifo_0_io_deq_bits_fun_srl),
    .io_deq_bits_fun_sra(aluIssFifo_0_io_deq_bits_fun_sra),
    .io_deq_bits_param_rd0(aluIssFifo_0_io_deq_bits_param_rd0),
    .io_deq_bits_param_is_32w(aluIssFifo_0_io_deq_bits_param_is_32w),
    .io_deq_bits_param_is_usi(aluIssFifo_0_io_deq_bits_param_is_usi),
    .io_deq_bits_param_dat_op1(aluIssFifo_0_io_deq_bits_param_dat_op1),
    .io_deq_bits_param_dat_op2(aluIssFifo_0_io_deq_bits_param_dat_op2)
  );
  Queue_3 mulIssFifo_0 ( // @[Issue.scala 671:13]
    .clock(mulIssFifo_0_clock),
    .reset(mulIssFifo_0_reset),
    .io_enq_ready(mulIssFifo_0_io_enq_ready),
    .io_enq_valid(mulIssFifo_0_io_enq_valid),
    .io_enq_bits_fun_mul(mulIssFifo_0_io_enq_bits_fun_mul),
    .io_enq_bits_fun_mulh(mulIssFifo_0_io_enq_bits_fun_mulh),
    .io_enq_bits_fun_mulhsu(mulIssFifo_0_io_enq_bits_fun_mulhsu),
    .io_enq_bits_fun_mulhu(mulIssFifo_0_io_enq_bits_fun_mulhu),
    .io_enq_bits_fun_div(mulIssFifo_0_io_enq_bits_fun_div),
    .io_enq_bits_fun_divu(mulIssFifo_0_io_enq_bits_fun_divu),
    .io_enq_bits_fun_rem(mulIssFifo_0_io_enq_bits_fun_rem),
    .io_enq_bits_fun_remu(mulIssFifo_0_io_enq_bits_fun_remu),
    .io_enq_bits_fun_mulw(mulIssFifo_0_io_enq_bits_fun_mulw),
    .io_enq_bits_fun_divw(mulIssFifo_0_io_enq_bits_fun_divw),
    .io_enq_bits_fun_divuw(mulIssFifo_0_io_enq_bits_fun_divuw),
    .io_enq_bits_fun_remw(mulIssFifo_0_io_enq_bits_fun_remw),
    .io_enq_bits_fun_remuw(mulIssFifo_0_io_enq_bits_fun_remuw),
    .io_enq_bits_param_rd0(mulIssFifo_0_io_enq_bits_param_rd0),
    .io_enq_bits_param_dat_op1(mulIssFifo_0_io_enq_bits_param_dat_op1),
    .io_enq_bits_param_dat_op2(mulIssFifo_0_io_enq_bits_param_dat_op2),
    .io_deq_ready(mulIssFifo_0_io_deq_ready),
    .io_deq_valid(mulIssFifo_0_io_deq_valid),
    .io_deq_bits_fun_mul(mulIssFifo_0_io_deq_bits_fun_mul),
    .io_deq_bits_fun_mulh(mulIssFifo_0_io_deq_bits_fun_mulh),
    .io_deq_bits_fun_mulhsu(mulIssFifo_0_io_deq_bits_fun_mulhsu),
    .io_deq_bits_fun_mulhu(mulIssFifo_0_io_deq_bits_fun_mulhu),
    .io_deq_bits_fun_div(mulIssFifo_0_io_deq_bits_fun_div),
    .io_deq_bits_fun_divu(mulIssFifo_0_io_deq_bits_fun_divu),
    .io_deq_bits_fun_rem(mulIssFifo_0_io_deq_bits_fun_rem),
    .io_deq_bits_fun_remu(mulIssFifo_0_io_deq_bits_fun_remu),
    .io_deq_bits_fun_mulw(mulIssFifo_0_io_deq_bits_fun_mulw),
    .io_deq_bits_fun_divw(mulIssFifo_0_io_deq_bits_fun_divw),
    .io_deq_bits_fun_divuw(mulIssFifo_0_io_deq_bits_fun_divuw),
    .io_deq_bits_fun_remw(mulIssFifo_0_io_deq_bits_fun_remw),
    .io_deq_bits_fun_remuw(mulIssFifo_0_io_deq_bits_fun_remuw),
    .io_deq_bits_param_rd0(mulIssFifo_0_io_deq_bits_param_rd0),
    .io_deq_bits_param_dat_op1(mulIssFifo_0_io_deq_bits_param_dat_op1),
    .io_deq_bits_param_dat_op2(mulIssFifo_0_io_deq_bits_param_dat_op2)
  );
  Queue_4 bruIssFifo ( // @[Issue.scala 743:26]
    .clock(bruIssFifo_clock),
    .reset(bruIssFifo_reset),
    .io_enq_ready(bruIssFifo_io_enq_ready),
    .io_enq_valid(bruIssFifo_io_enq_valid),
    .io_enq_bits_fun_jalr(bruIssFifo_io_enq_bits_fun_jalr),
    .io_enq_bits_fun_beq(bruIssFifo_io_enq_bits_fun_beq),
    .io_enq_bits_fun_bne(bruIssFifo_io_enq_bits_fun_bne),
    .io_enq_bits_fun_blt(bruIssFifo_io_enq_bits_fun_blt),
    .io_enq_bits_fun_bge(bruIssFifo_io_enq_bits_fun_bge),
    .io_enq_bits_fun_bltu(bruIssFifo_io_enq_bits_fun_bltu),
    .io_enq_bits_fun_bgeu(bruIssFifo_io_enq_bits_fun_bgeu),
    .io_enq_bits_param_rd0(bruIssFifo_io_enq_bits_param_rd0),
    .io_enq_bits_param_is_rvc(bruIssFifo_io_enq_bits_param_is_rvc),
    .io_enq_bits_param_pc(bruIssFifo_io_enq_bits_param_pc),
    .io_enq_bits_param_imm(bruIssFifo_io_enq_bits_param_imm),
    .io_enq_bits_param_dat_op1(bruIssFifo_io_enq_bits_param_dat_op1),
    .io_enq_bits_param_dat_op2(bruIssFifo_io_enq_bits_param_dat_op2),
    .io_deq_ready(bruIssFifo_io_deq_ready),
    .io_deq_valid(bruIssFifo_io_deq_valid),
    .io_deq_bits_fun_jalr(bruIssFifo_io_deq_bits_fun_jalr),
    .io_deq_bits_fun_beq(bruIssFifo_io_deq_bits_fun_beq),
    .io_deq_bits_fun_bne(bruIssFifo_io_deq_bits_fun_bne),
    .io_deq_bits_fun_blt(bruIssFifo_io_deq_bits_fun_blt),
    .io_deq_bits_fun_bge(bruIssFifo_io_deq_bits_fun_bge),
    .io_deq_bits_fun_bltu(bruIssFifo_io_deq_bits_fun_bltu),
    .io_deq_bits_fun_bgeu(bruIssFifo_io_deq_bits_fun_bgeu),
    .io_deq_bits_param_rd0(bruIssFifo_io_deq_bits_param_rd0),
    .io_deq_bits_param_is_rvc(bruIssFifo_io_deq_bits_param_is_rvc),
    .io_deq_bits_param_pc(bruIssFifo_io_deq_bits_param_pc),
    .io_deq_bits_param_imm(bruIssFifo_io_deq_bits_param_imm),
    .io_deq_bits_param_dat_op1(bruIssFifo_io_deq_bits_param_dat_op1),
    .io_deq_bits_param_dat_op2(bruIssFifo_io_deq_bits_param_dat_op2)
  );
  Queue_5 csrIssFifo ( // @[Issue.scala 809:26]
    .clock(csrIssFifo_clock),
    .reset(csrIssFifo_reset),
    .io_enq_ready(csrIssFifo_io_enq_ready),
    .io_enq_valid(csrIssFifo_io_enq_valid),
    .io_enq_bits_fun_rw(csrIssFifo_io_enq_bits_fun_rw),
    .io_enq_bits_fun_rs(csrIssFifo_io_enq_bits_fun_rs),
    .io_enq_bits_fun_rc(csrIssFifo_io_enq_bits_fun_rc),
    .io_enq_bits_param_rd0(csrIssFifo_io_enq_bits_param_rd0),
    .io_enq_bits_param_dat_op1(csrIssFifo_io_enq_bits_param_dat_op1),
    .io_enq_bits_param_dat_op2(csrIssFifo_io_enq_bits_param_dat_op2),
    .io_deq_ready(csrIssFifo_io_deq_ready),
    .io_deq_valid(csrIssFifo_io_deq_valid),
    .io_deq_bits_fun_rw(csrIssFifo_io_deq_bits_fun_rw),
    .io_deq_bits_fun_rs(csrIssFifo_io_deq_bits_fun_rs),
    .io_deq_bits_fun_rc(csrIssFifo_io_deq_bits_fun_rc),
    .io_deq_bits_param_rd0(csrIssFifo_io_deq_bits_param_rd0),
    .io_deq_bits_param_dat_op1(csrIssFifo_io_deq_bits_param_dat_op1),
    .io_deq_bits_param_dat_op2(csrIssFifo_io_deq_bits_param_dat_op2)
  );
  Queue_6 lsuIssFifo ( // @[Issue.scala 872:26]
    .clock(lsuIssFifo_clock),
    .reset(lsuIssFifo_reset),
    .io_enq_ready(lsuIssFifo_io_enq_ready),
    .io_enq_valid(lsuIssFifo_io_enq_valid),
    .io_enq_bits_fun_lb(lsuIssFifo_io_enq_bits_fun_lb),
    .io_enq_bits_fun_lh(lsuIssFifo_io_enq_bits_fun_lh),
    .io_enq_bits_fun_lw(lsuIssFifo_io_enq_bits_fun_lw),
    .io_enq_bits_fun_ld(lsuIssFifo_io_enq_bits_fun_ld),
    .io_enq_bits_fun_lbu(lsuIssFifo_io_enq_bits_fun_lbu),
    .io_enq_bits_fun_lhu(lsuIssFifo_io_enq_bits_fun_lhu),
    .io_enq_bits_fun_lwu(lsuIssFifo_io_enq_bits_fun_lwu),
    .io_enq_bits_fun_sb(lsuIssFifo_io_enq_bits_fun_sb),
    .io_enq_bits_fun_sh(lsuIssFifo_io_enq_bits_fun_sh),
    .io_enq_bits_fun_sw(lsuIssFifo_io_enq_bits_fun_sw),
    .io_enq_bits_fun_sd(lsuIssFifo_io_enq_bits_fun_sd),
    .io_enq_bits_fun_fence(lsuIssFifo_io_enq_bits_fun_fence),
    .io_enq_bits_fun_fence_i(lsuIssFifo_io_enq_bits_fun_fence_i),
    .io_enq_bits_fun_sfence_vma(lsuIssFifo_io_enq_bits_fun_sfence_vma),
    .io_enq_bits_fun_lr_w(lsuIssFifo_io_enq_bits_fun_lr_w),
    .io_enq_bits_fun_sc_w(lsuIssFifo_io_enq_bits_fun_sc_w),
    .io_enq_bits_fun_amoswap_w(lsuIssFifo_io_enq_bits_fun_amoswap_w),
    .io_enq_bits_fun_amoadd_w(lsuIssFifo_io_enq_bits_fun_amoadd_w),
    .io_enq_bits_fun_amoxor_w(lsuIssFifo_io_enq_bits_fun_amoxor_w),
    .io_enq_bits_fun_amoand_w(lsuIssFifo_io_enq_bits_fun_amoand_w),
    .io_enq_bits_fun_amoor_w(lsuIssFifo_io_enq_bits_fun_amoor_w),
    .io_enq_bits_fun_amomin_w(lsuIssFifo_io_enq_bits_fun_amomin_w),
    .io_enq_bits_fun_amomax_w(lsuIssFifo_io_enq_bits_fun_amomax_w),
    .io_enq_bits_fun_amominu_w(lsuIssFifo_io_enq_bits_fun_amominu_w),
    .io_enq_bits_fun_amomaxu_w(lsuIssFifo_io_enq_bits_fun_amomaxu_w),
    .io_enq_bits_fun_lr_d(lsuIssFifo_io_enq_bits_fun_lr_d),
    .io_enq_bits_fun_sc_d(lsuIssFifo_io_enq_bits_fun_sc_d),
    .io_enq_bits_fun_amoswap_d(lsuIssFifo_io_enq_bits_fun_amoswap_d),
    .io_enq_bits_fun_amoadd_d(lsuIssFifo_io_enq_bits_fun_amoadd_d),
    .io_enq_bits_fun_amoxor_d(lsuIssFifo_io_enq_bits_fun_amoxor_d),
    .io_enq_bits_fun_amoand_d(lsuIssFifo_io_enq_bits_fun_amoand_d),
    .io_enq_bits_fun_amoor_d(lsuIssFifo_io_enq_bits_fun_amoor_d),
    .io_enq_bits_fun_amomin_d(lsuIssFifo_io_enq_bits_fun_amomin_d),
    .io_enq_bits_fun_amomax_d(lsuIssFifo_io_enq_bits_fun_amomax_d),
    .io_enq_bits_fun_amominu_d(lsuIssFifo_io_enq_bits_fun_amominu_d),
    .io_enq_bits_fun_amomaxu_d(lsuIssFifo_io_enq_bits_fun_amomaxu_d),
    .io_enq_bits_fun_flw(lsuIssFifo_io_enq_bits_fun_flw),
    .io_enq_bits_fun_fsw(lsuIssFifo_io_enq_bits_fun_fsw),
    .io_enq_bits_fun_fld(lsuIssFifo_io_enq_bits_fun_fld),
    .io_enq_bits_fun_fsd(lsuIssFifo_io_enq_bits_fun_fsd),
    .io_enq_bits_param_rd0(lsuIssFifo_io_enq_bits_param_rd0),
    .io_enq_bits_param_dat_op1(lsuIssFifo_io_enq_bits_param_dat_op1),
    .io_enq_bits_param_dat_op2(lsuIssFifo_io_enq_bits_param_dat_op2),
    .io_deq_ready(lsuIssFifo_io_deq_ready),
    .io_deq_valid(lsuIssFifo_io_deq_valid),
    .io_deq_bits_fun_lb(lsuIssFifo_io_deq_bits_fun_lb),
    .io_deq_bits_fun_lh(lsuIssFifo_io_deq_bits_fun_lh),
    .io_deq_bits_fun_lw(lsuIssFifo_io_deq_bits_fun_lw),
    .io_deq_bits_fun_ld(lsuIssFifo_io_deq_bits_fun_ld),
    .io_deq_bits_fun_lbu(lsuIssFifo_io_deq_bits_fun_lbu),
    .io_deq_bits_fun_lhu(lsuIssFifo_io_deq_bits_fun_lhu),
    .io_deq_bits_fun_lwu(lsuIssFifo_io_deq_bits_fun_lwu),
    .io_deq_bits_fun_sb(lsuIssFifo_io_deq_bits_fun_sb),
    .io_deq_bits_fun_sh(lsuIssFifo_io_deq_bits_fun_sh),
    .io_deq_bits_fun_sw(lsuIssFifo_io_deq_bits_fun_sw),
    .io_deq_bits_fun_sd(lsuIssFifo_io_deq_bits_fun_sd),
    .io_deq_bits_fun_fence(lsuIssFifo_io_deq_bits_fun_fence),
    .io_deq_bits_fun_fence_i(lsuIssFifo_io_deq_bits_fun_fence_i),
    .io_deq_bits_fun_sfence_vma(lsuIssFifo_io_deq_bits_fun_sfence_vma),
    .io_deq_bits_fun_lr_w(lsuIssFifo_io_deq_bits_fun_lr_w),
    .io_deq_bits_fun_sc_w(lsuIssFifo_io_deq_bits_fun_sc_w),
    .io_deq_bits_fun_amoswap_w(lsuIssFifo_io_deq_bits_fun_amoswap_w),
    .io_deq_bits_fun_amoadd_w(lsuIssFifo_io_deq_bits_fun_amoadd_w),
    .io_deq_bits_fun_amoxor_w(lsuIssFifo_io_deq_bits_fun_amoxor_w),
    .io_deq_bits_fun_amoand_w(lsuIssFifo_io_deq_bits_fun_amoand_w),
    .io_deq_bits_fun_amoor_w(lsuIssFifo_io_deq_bits_fun_amoor_w),
    .io_deq_bits_fun_amomin_w(lsuIssFifo_io_deq_bits_fun_amomin_w),
    .io_deq_bits_fun_amomax_w(lsuIssFifo_io_deq_bits_fun_amomax_w),
    .io_deq_bits_fun_amominu_w(lsuIssFifo_io_deq_bits_fun_amominu_w),
    .io_deq_bits_fun_amomaxu_w(lsuIssFifo_io_deq_bits_fun_amomaxu_w),
    .io_deq_bits_fun_lr_d(lsuIssFifo_io_deq_bits_fun_lr_d),
    .io_deq_bits_fun_sc_d(lsuIssFifo_io_deq_bits_fun_sc_d),
    .io_deq_bits_fun_amoswap_d(lsuIssFifo_io_deq_bits_fun_amoswap_d),
    .io_deq_bits_fun_amoadd_d(lsuIssFifo_io_deq_bits_fun_amoadd_d),
    .io_deq_bits_fun_amoxor_d(lsuIssFifo_io_deq_bits_fun_amoxor_d),
    .io_deq_bits_fun_amoand_d(lsuIssFifo_io_deq_bits_fun_amoand_d),
    .io_deq_bits_fun_amoor_d(lsuIssFifo_io_deq_bits_fun_amoor_d),
    .io_deq_bits_fun_amomin_d(lsuIssFifo_io_deq_bits_fun_amomin_d),
    .io_deq_bits_fun_amomax_d(lsuIssFifo_io_deq_bits_fun_amomax_d),
    .io_deq_bits_fun_amominu_d(lsuIssFifo_io_deq_bits_fun_amominu_d),
    .io_deq_bits_fun_amomaxu_d(lsuIssFifo_io_deq_bits_fun_amomaxu_d),
    .io_deq_bits_fun_flw(lsuIssFifo_io_deq_bits_fun_flw),
    .io_deq_bits_fun_fsw(lsuIssFifo_io_deq_bits_fun_fsw),
    .io_deq_bits_fun_fld(lsuIssFifo_io_deq_bits_fun_fld),
    .io_deq_bits_fun_fsd(lsuIssFifo_io_deq_bits_fun_fsd),
    .io_deq_bits_param_rd0(lsuIssFifo_io_deq_bits_param_rd0),
    .io_deq_bits_param_dat_op1(lsuIssFifo_io_deq_bits_param_dat_op1),
    .io_deq_bits_param_dat_op2(lsuIssFifo_io_deq_bits_param_dat_op2)
  );
  assign io_dptReq_0_ready = 1'h1; // @[Issue.scala 78:76]
  assign io_alu_iss_exe_0_valid = aluIssFifo_0_io_deq_valid; // @[Issue.scala 647:28]
  assign io_alu_iss_exe_0_bits_fun_add = aluIssFifo_0_io_deq_bits_fun_add; // @[Issue.scala 647:28]
  assign io_alu_iss_exe_0_bits_fun_slt = aluIssFifo_0_io_deq_bits_fun_slt; // @[Issue.scala 647:28]
  assign io_alu_iss_exe_0_bits_fun_xor = aluIssFifo_0_io_deq_bits_fun_xor; // @[Issue.scala 647:28]
  assign io_alu_iss_exe_0_bits_fun_or = aluIssFifo_0_io_deq_bits_fun_or; // @[Issue.scala 647:28]
  assign io_alu_iss_exe_0_bits_fun_and = aluIssFifo_0_io_deq_bits_fun_and; // @[Issue.scala 647:28]
  assign io_alu_iss_exe_0_bits_fun_sll = aluIssFifo_0_io_deq_bits_fun_sll; // @[Issue.scala 647:28]
  assign io_alu_iss_exe_0_bits_fun_srl = aluIssFifo_0_io_deq_bits_fun_srl; // @[Issue.scala 647:28]
  assign io_alu_iss_exe_0_bits_fun_sra = aluIssFifo_0_io_deq_bits_fun_sra; // @[Issue.scala 647:28]
  assign io_alu_iss_exe_0_bits_param_rd0 = aluIssFifo_0_io_deq_bits_param_rd0; // @[Issue.scala 647:28]
  assign io_alu_iss_exe_0_bits_param_is_32w = aluIssFifo_0_io_deq_bits_param_is_32w; // @[Issue.scala 647:28]
  assign io_alu_iss_exe_0_bits_param_is_usi = aluIssFifo_0_io_deq_bits_param_is_usi; // @[Issue.scala 647:28]
  assign io_alu_iss_exe_0_bits_param_dat_op1 = aluIssFifo_0_io_deq_bits_param_dat_op1; // @[Issue.scala 647:28]
  assign io_alu_iss_exe_0_bits_param_dat_op2 = aluIssFifo_0_io_deq_bits_param_dat_op2; // @[Issue.scala 647:28]
  assign io_mul_iss_exe_0_valid = mulIssFifo_0_io_deq_valid; // @[Issue.scala 712:30]
  assign io_mul_iss_exe_0_bits_fun_mul = mulIssFifo_0_io_deq_bits_fun_mul; // @[Issue.scala 712:30]
  assign io_mul_iss_exe_0_bits_fun_mulh = mulIssFifo_0_io_deq_bits_fun_mulh; // @[Issue.scala 712:30]
  assign io_mul_iss_exe_0_bits_fun_mulhsu = mulIssFifo_0_io_deq_bits_fun_mulhsu; // @[Issue.scala 712:30]
  assign io_mul_iss_exe_0_bits_fun_mulhu = mulIssFifo_0_io_deq_bits_fun_mulhu; // @[Issue.scala 712:30]
  assign io_mul_iss_exe_0_bits_fun_div = mulIssFifo_0_io_deq_bits_fun_div; // @[Issue.scala 712:30]
  assign io_mul_iss_exe_0_bits_fun_divu = mulIssFifo_0_io_deq_bits_fun_divu; // @[Issue.scala 712:30]
  assign io_mul_iss_exe_0_bits_fun_rem = mulIssFifo_0_io_deq_bits_fun_rem; // @[Issue.scala 712:30]
  assign io_mul_iss_exe_0_bits_fun_remu = mulIssFifo_0_io_deq_bits_fun_remu; // @[Issue.scala 712:30]
  assign io_mul_iss_exe_0_bits_fun_mulw = mulIssFifo_0_io_deq_bits_fun_mulw; // @[Issue.scala 712:30]
  assign io_mul_iss_exe_0_bits_fun_divw = mulIssFifo_0_io_deq_bits_fun_divw; // @[Issue.scala 712:30]
  assign io_mul_iss_exe_0_bits_fun_divuw = mulIssFifo_0_io_deq_bits_fun_divuw; // @[Issue.scala 712:30]
  assign io_mul_iss_exe_0_bits_fun_remw = mulIssFifo_0_io_deq_bits_fun_remw; // @[Issue.scala 712:30]
  assign io_mul_iss_exe_0_bits_fun_remuw = mulIssFifo_0_io_deq_bits_fun_remuw; // @[Issue.scala 712:30]
  assign io_mul_iss_exe_0_bits_param_rd0 = mulIssFifo_0_io_deq_bits_param_rd0; // @[Issue.scala 712:30]
  assign io_mul_iss_exe_0_bits_param_dat_op1 = mulIssFifo_0_io_deq_bits_param_dat_op1; // @[Issue.scala 712:30]
  assign io_mul_iss_exe_0_bits_param_dat_op2 = mulIssFifo_0_io_deq_bits_param_dat_op2; // @[Issue.scala 712:30]
  assign io_bru_iss_exe_valid = bruIssFifo_io_deq_valid; // @[Issue.scala 779:21]
  assign io_bru_iss_exe_bits_fun_jalr = bruIssFifo_io_deq_bits_fun_jalr; // @[Issue.scala 779:21]
  assign io_bru_iss_exe_bits_fun_beq = bruIssFifo_io_deq_bits_fun_beq; // @[Issue.scala 779:21]
  assign io_bru_iss_exe_bits_fun_bne = bruIssFifo_io_deq_bits_fun_bne; // @[Issue.scala 779:21]
  assign io_bru_iss_exe_bits_fun_blt = bruIssFifo_io_deq_bits_fun_blt; // @[Issue.scala 779:21]
  assign io_bru_iss_exe_bits_fun_bge = bruIssFifo_io_deq_bits_fun_bge; // @[Issue.scala 779:21]
  assign io_bru_iss_exe_bits_fun_bltu = bruIssFifo_io_deq_bits_fun_bltu; // @[Issue.scala 779:21]
  assign io_bru_iss_exe_bits_fun_bgeu = bruIssFifo_io_deq_bits_fun_bgeu; // @[Issue.scala 779:21]
  assign io_bru_iss_exe_bits_param_rd0 = bruIssFifo_io_deq_bits_param_rd0; // @[Issue.scala 779:21]
  assign io_bru_iss_exe_bits_param_is_rvc = bruIssFifo_io_deq_bits_param_is_rvc; // @[Issue.scala 779:21]
  assign io_bru_iss_exe_bits_param_pc = bruIssFifo_io_deq_bits_param_pc; // @[Issue.scala 779:21]
  assign io_bru_iss_exe_bits_param_imm = bruIssFifo_io_deq_bits_param_imm; // @[Issue.scala 779:21]
  assign io_bru_iss_exe_bits_param_dat_op1 = bruIssFifo_io_deq_bits_param_dat_op1; // @[Issue.scala 779:21]
  assign io_bru_iss_exe_bits_param_dat_op2 = bruIssFifo_io_deq_bits_param_dat_op2; // @[Issue.scala 779:21]
  assign io_csr_iss_exe_valid = csrIssFifo_io_deq_valid; // @[Issue.scala 845:21]
  assign io_csr_iss_exe_bits_fun_rw = csrIssFifo_io_deq_bits_fun_rw; // @[Issue.scala 845:21]
  assign io_csr_iss_exe_bits_fun_rs = csrIssFifo_io_deq_bits_fun_rs; // @[Issue.scala 845:21]
  assign io_csr_iss_exe_bits_fun_rc = csrIssFifo_io_deq_bits_fun_rc; // @[Issue.scala 845:21]
  assign io_csr_iss_exe_bits_param_rd0 = csrIssFifo_io_deq_bits_param_rd0; // @[Issue.scala 845:21]
  assign io_csr_iss_exe_bits_param_dat_op1 = csrIssFifo_io_deq_bits_param_dat_op1; // @[Issue.scala 845:21]
  assign io_csr_iss_exe_bits_param_dat_op2 = csrIssFifo_io_deq_bits_param_dat_op2; // @[Issue.scala 845:21]
  assign io_lsu_iss_exe_valid = lsuIssFifo_io_deq_valid; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_lb = lsuIssFifo_io_deq_bits_fun_lb; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_lh = lsuIssFifo_io_deq_bits_fun_lh; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_lw = lsuIssFifo_io_deq_bits_fun_lw; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_ld = lsuIssFifo_io_deq_bits_fun_ld; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_lbu = lsuIssFifo_io_deq_bits_fun_lbu; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_lhu = lsuIssFifo_io_deq_bits_fun_lhu; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_lwu = lsuIssFifo_io_deq_bits_fun_lwu; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_sb = lsuIssFifo_io_deq_bits_fun_sb; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_sh = lsuIssFifo_io_deq_bits_fun_sh; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_sw = lsuIssFifo_io_deq_bits_fun_sw; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_sd = lsuIssFifo_io_deq_bits_fun_sd; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_fence = lsuIssFifo_io_deq_bits_fun_fence; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_fence_i = lsuIssFifo_io_deq_bits_fun_fence_i; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_sfence_vma = lsuIssFifo_io_deq_bits_fun_sfence_vma; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_lr_w = lsuIssFifo_io_deq_bits_fun_lr_w; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_sc_w = lsuIssFifo_io_deq_bits_fun_sc_w; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_amoswap_w = lsuIssFifo_io_deq_bits_fun_amoswap_w; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_amoadd_w = lsuIssFifo_io_deq_bits_fun_amoadd_w; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_amoxor_w = lsuIssFifo_io_deq_bits_fun_amoxor_w; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_amoand_w = lsuIssFifo_io_deq_bits_fun_amoand_w; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_amoor_w = lsuIssFifo_io_deq_bits_fun_amoor_w; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_amomin_w = lsuIssFifo_io_deq_bits_fun_amomin_w; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_amomax_w = lsuIssFifo_io_deq_bits_fun_amomax_w; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_amominu_w = lsuIssFifo_io_deq_bits_fun_amominu_w; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_amomaxu_w = lsuIssFifo_io_deq_bits_fun_amomaxu_w; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_lr_d = lsuIssFifo_io_deq_bits_fun_lr_d; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_sc_d = lsuIssFifo_io_deq_bits_fun_sc_d; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_amoswap_d = lsuIssFifo_io_deq_bits_fun_amoswap_d; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_amoadd_d = lsuIssFifo_io_deq_bits_fun_amoadd_d; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_amoxor_d = lsuIssFifo_io_deq_bits_fun_amoxor_d; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_amoand_d = lsuIssFifo_io_deq_bits_fun_amoand_d; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_amoor_d = lsuIssFifo_io_deq_bits_fun_amoor_d; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_amomin_d = lsuIssFifo_io_deq_bits_fun_amomin_d; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_amomax_d = lsuIssFifo_io_deq_bits_fun_amomax_d; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_amominu_d = lsuIssFifo_io_deq_bits_fun_amominu_d; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_amomaxu_d = lsuIssFifo_io_deq_bits_fun_amomaxu_d; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_flw = lsuIssFifo_io_deq_bits_fun_flw; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_fsw = lsuIssFifo_io_deq_bits_fun_fsw; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_fld = lsuIssFifo_io_deq_bits_fun_fld; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_fun_fsd = lsuIssFifo_io_deq_bits_fun_fsd; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_param_rd0 = lsuIssFifo_io_deq_bits_param_rd0; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_param_dat_op1 = lsuIssFifo_io_deq_bits_param_dat_op1; // @[Issue.scala 908:21]
  assign io_lsu_iss_exe_bits_param_dat_op2 = lsuIssFifo_io_deq_bits_param_dat_op2; // @[Issue.scala 908:21]
  assign io_irgReq_0_valid = _rIOpNum_0_T | _rIOpNum_0_T_1; // @[Issue.scala 318:49]
  assign io_irgReq_0_bits = ~_T_61 ? selIRS1_0 : _rIOpNum_0_T_2; // @[Issue.scala 313:26]
  assign io_irgReq_1_valid = _rIOpNum_1_T_1 | _rIOpNum_1_T; // @[Issue.scala 318:49]
  assign io_irgReq_1_bits = ~_T_415 ? selIRS2_1 : _rIOpNum_1_T_2; // @[Issue.scala 315:26]
  assign aluIssFifo_0_clock = clock;
  assign aluIssFifo_0_reset = io_flush | reset; // @[Issue.scala 648:39]
  assign aluIssFifo_0_io_enq_valid = ~_T_1398; // @[Issue.scala 634:37]
  assign aluIssFifo_0_io_enq_bits_fun_add = _T_1406 & aluIssInfo_0_fun_add | _T_1414 & aluIssInfo_1_fun_add | _T_1422 &
    aluIssInfo_2_fun_add | _T_1430 & aluIssInfo_3_fun_add; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_fun_slt = _T_1406 & aluIssInfo_0_fun_slt | _T_1414 & aluIssInfo_1_fun_slt | _T_1422 &
    aluIssInfo_2_fun_slt | _T_1430 & aluIssInfo_3_fun_slt; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_fun_xor = _T_1406 & aluIssInfo_0_fun_xor | _T_1414 & aluIssInfo_1_fun_xor | _T_1422 &
    aluIssInfo_2_fun_xor | _T_1430 & aluIssInfo_3_fun_xor; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_fun_or = _T_1406 & aluIssInfo_0_fun_or | _T_1414 & aluIssInfo_1_fun_or | _T_1422 &
    aluIssInfo_2_fun_or | _T_1430 & aluIssInfo_3_fun_or; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_fun_and = _T_1406 & aluIssInfo_0_fun_and | _T_1414 & aluIssInfo_1_fun_and | _T_1422 &
    aluIssInfo_2_fun_and | _T_1430 & aluIssInfo_3_fun_and; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_fun_sll = _T_1406 & aluIssInfo_0_fun_sll | _T_1414 & aluIssInfo_1_fun_sll | _T_1422 &
    aluIssInfo_2_fun_sll | _T_1430 & aluIssInfo_3_fun_sll; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_fun_srl = _T_1406 & aluIssInfo_0_fun_srl | _T_1414 & aluIssInfo_1_fun_srl | _T_1422 &
    aluIssInfo_2_fun_srl | _T_1430 & aluIssInfo_3_fun_srl; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_fun_sra = _T_1406 & aluIssInfo_0_fun_sra | _T_1414 & aluIssInfo_1_fun_sra | _T_1422 &
    aluIssInfo_2_fun_sra | _T_1430 & aluIssInfo_3_fun_sra; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_param_rd0 = _aluIssFifo_0_io_enq_bits_T_72 | _aluIssFifo_0_io_enq_bits_T_70; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_param_is_32w = _T_1406 & aluIssInfo_0_param_is_32w | _T_1414 &
    aluIssInfo_1_param_is_32w | _T_1422 & aluIssInfo_2_param_is_32w | _T_1430 & aluIssInfo_3_param_is_32w; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_param_is_usi = _T_1406 & aluIssInfo_0_param_is_usi | _T_1414 &
    aluIssInfo_1_param_is_usi | _T_1422 & aluIssInfo_2_param_is_usi | _T_1430 & aluIssInfo_3_param_is_usi; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_param_dat_op1 = _aluIssFifo_0_io_enq_bits_T_51 | _aluIssFifo_0_io_enq_bits_T_49; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_param_dat_op2 = _aluIssFifo_0_io_enq_bits_T_44 | _aluIssFifo_0_io_enq_bits_T_42; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_deq_ready = io_alu_iss_exe_0_ready; // @[Issue.scala 647:28]
  assign mulIssFifo_0_clock = clock;
  assign mulIssFifo_0_reset = io_flush | reset; // @[Issue.scala 713:41]
  assign mulIssFifo_0_io_enq_valid = ~_T_1649; // @[Issue.scala 699:39]
  assign mulIssFifo_0_io_enq_bits_fun_mul = _T_1657 & bufInfo_0_mul_isa_mul | _T_1665 & bufInfo_1_mul_isa_mul | _T_1673
     & bufInfo_2_mul_isa_mul | _T_1681 & bufInfo_3_mul_isa_mul; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_mulh = _T_1657 & bufInfo_0_mul_isa_mulh | _T_1665 & bufInfo_1_mul_isa_mulh |
    _T_1673 & bufInfo_2_mul_isa_mulh | _T_1681 & bufInfo_3_mul_isa_mulh; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_mulhsu = _T_1657 & bufInfo_0_mul_isa_mulhsu | _T_1665 & bufInfo_1_mul_isa_mulhsu
     | _T_1673 & bufInfo_2_mul_isa_mulhsu | _T_1681 & bufInfo_3_mul_isa_mulhsu; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_mulhu = _T_1657 & bufInfo_0_mul_isa_mulhu | _T_1665 & bufInfo_1_mul_isa_mulhu |
    _T_1673 & bufInfo_2_mul_isa_mulhu | _T_1681 & bufInfo_3_mul_isa_mulhu; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_div = _T_1657 & bufInfo_0_mul_isa_div | _T_1665 & bufInfo_1_mul_isa_div | _T_1673
     & bufInfo_2_mul_isa_div | _T_1681 & bufInfo_3_mul_isa_div; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_divu = _T_1657 & bufInfo_0_mul_isa_divu | _T_1665 & bufInfo_1_mul_isa_divu |
    _T_1673 & bufInfo_2_mul_isa_divu | _T_1681 & bufInfo_3_mul_isa_divu; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_rem = _T_1657 & bufInfo_0_mul_isa_rem | _T_1665 & bufInfo_1_mul_isa_rem | _T_1673
     & bufInfo_2_mul_isa_rem | _T_1681 & bufInfo_3_mul_isa_rem; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_remu = _T_1657 & bufInfo_0_mul_isa_remu | _T_1665 & bufInfo_1_mul_isa_remu |
    _T_1673 & bufInfo_2_mul_isa_remu | _T_1681 & bufInfo_3_mul_isa_remu; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_mulw = _T_1657 & bufInfo_0_mul_isa_mulw | _T_1665 & bufInfo_1_mul_isa_mulw |
    _T_1673 & bufInfo_2_mul_isa_mulw | _T_1681 & bufInfo_3_mul_isa_mulw; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_divw = _T_1657 & bufInfo_0_mul_isa_divw | _T_1665 & bufInfo_1_mul_isa_divw |
    _T_1673 & bufInfo_2_mul_isa_divw | _T_1681 & bufInfo_3_mul_isa_divw; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_divuw = _T_1657 & bufInfo_0_mul_isa_divuw | _T_1665 & bufInfo_1_mul_isa_divuw |
    _T_1673 & bufInfo_2_mul_isa_divuw | _T_1681 & bufInfo_3_mul_isa_divuw; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_remw = _T_1657 & bufInfo_0_mul_isa_remw | _T_1665 & bufInfo_1_mul_isa_remw |
    _T_1673 & bufInfo_2_mul_isa_remw | _T_1681 & bufInfo_3_mul_isa_remw; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_remuw = _T_1657 & bufInfo_0_mul_isa_remuw | _T_1665 & bufInfo_1_mul_isa_remuw |
    _T_1673 & bufInfo_2_mul_isa_remuw | _T_1681 & bufInfo_3_mul_isa_remuw; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_param_rd0 = _mulIssFifo_0_io_enq_bits_T_58 | _mulIssFifo_0_io_enq_bits_T_56; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_param_dat_op1 = _mulIssFifo_0_io_enq_bits_T_51 | _mulIssFifo_0_io_enq_bits_T_49; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_param_dat_op2 = _mulIssFifo_0_io_enq_bits_T_44 | _mulIssFifo_0_io_enq_bits_T_42; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_deq_ready = io_mul_iss_exe_0_ready; // @[Issue.scala 712:30]
  assign bruIssFifo_clock = clock;
  assign bruIssFifo_reset = io_flush | reset; // @[Issue.scala 780:32]
  assign bruIssFifo_io_enq_valid = _T_1836 & postIsOpReady_0_0 & postIsOpReady_0_1 | _T_1844 & postIsOpReady_1_0 &
    postIsOpReady_1_1 | _T_1852 & postIsOpReady_2_0 & postIsOpReady_2_1 | _T_1860 & postIsOpReady_3_0 &
    postIsOpReady_3_1; // @[Issue.scala 765:149]
  assign bruIssFifo_io_enq_bits_fun_jalr = _bruIssFifo_io_enq_valid_T_9 & bufInfo_0_bru_isa_jalr |
    _bruIssFifo_io_enq_valid_T_19 & bufInfo_1_bru_isa_jalr | _bruIssFifo_io_enq_valid_T_29 & bufInfo_2_bru_isa_jalr |
    _bruIssFifo_io_enq_valid_T_39 & bufInfo_3_bru_isa_jalr; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_fun_beq = _bruIssFifo_io_enq_valid_T_9 & bufInfo_0_bru_isa_beq |
    _bruIssFifo_io_enq_valid_T_19 & bufInfo_1_bru_isa_beq | _bruIssFifo_io_enq_valid_T_29 & bufInfo_2_bru_isa_beq |
    _bruIssFifo_io_enq_valid_T_39 & bufInfo_3_bru_isa_beq; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_fun_bne = _bruIssFifo_io_enq_valid_T_9 & bufInfo_0_bru_isa_bne |
    _bruIssFifo_io_enq_valid_T_19 & bufInfo_1_bru_isa_bne | _bruIssFifo_io_enq_valid_T_29 & bufInfo_2_bru_isa_bne |
    _bruIssFifo_io_enq_valid_T_39 & bufInfo_3_bru_isa_bne; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_fun_blt = _bruIssFifo_io_enq_valid_T_9 & bufInfo_0_bru_isa_blt |
    _bruIssFifo_io_enq_valid_T_19 & bufInfo_1_bru_isa_blt | _bruIssFifo_io_enq_valid_T_29 & bufInfo_2_bru_isa_blt |
    _bruIssFifo_io_enq_valid_T_39 & bufInfo_3_bru_isa_blt; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_fun_bge = _bruIssFifo_io_enq_valid_T_9 & bufInfo_0_bru_isa_bge |
    _bruIssFifo_io_enq_valid_T_19 & bufInfo_1_bru_isa_bge | _bruIssFifo_io_enq_valid_T_29 & bufInfo_2_bru_isa_bge |
    _bruIssFifo_io_enq_valid_T_39 & bufInfo_3_bru_isa_bge; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_fun_bltu = _bruIssFifo_io_enq_valid_T_9 & bufInfo_0_bru_isa_bltu |
    _bruIssFifo_io_enq_valid_T_19 & bufInfo_1_bru_isa_bltu | _bruIssFifo_io_enq_valid_T_29 & bufInfo_2_bru_isa_bltu |
    _bruIssFifo_io_enq_valid_T_39 & bufInfo_3_bru_isa_bltu; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_fun_bgeu = _bruIssFifo_io_enq_valid_T_9 & bufInfo_0_bru_isa_bgeu |
    _bruIssFifo_io_enq_valid_T_19 & bufInfo_1_bru_isa_bgeu | _bruIssFifo_io_enq_valid_T_29 & bufInfo_2_bru_isa_bgeu |
    _bruIssFifo_io_enq_valid_T_39 & bufInfo_3_bru_isa_bgeu; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_param_rd0 = _bruIssFifo_io_enq_bits_T_87 | _bruIssFifo_io_enq_bits_T_85; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_param_is_rvc = _bruIssFifo_io_enq_valid_T_9 & bufInfo_0_param_is_rvc |
    _bruIssFifo_io_enq_valid_T_19 & bufInfo_1_param_is_rvc | _bruIssFifo_io_enq_valid_T_29 & bufInfo_2_param_is_rvc |
    _bruIssFifo_io_enq_valid_T_39 & bufInfo_3_param_is_rvc; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_param_pc = _bruIssFifo_io_enq_bits_T_73 | _bruIssFifo_io_enq_bits_T_71; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_param_imm = _bruIssFifo_io_enq_bits_T_66 | _bruIssFifo_io_enq_bits_T_64; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_param_dat_op1 = _bruIssFifo_io_enq_bits_T_59 | _bruIssFifo_io_enq_bits_T_57; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_param_dat_op2 = _bruIssFifo_io_enq_bits_T_52 | _bruIssFifo_io_enq_bits_T_50; // @[Mux.scala 27:73]
  assign bruIssFifo_io_deq_ready = io_bru_iss_exe_ready; // @[Issue.scala 779:21]
  assign csrIssFifo_clock = clock;
  assign csrIssFifo_reset = io_flush | reset; // @[Issue.scala 846:32]
  assign csrIssFifo_io_enq_valid = _T_1995 & postIsOpReady_0_0 & postIsOpReady_0_1 | _T_2003 & postIsOpReady_1_0 &
    postIsOpReady_1_1 | _T_2011 & postIsOpReady_2_0 & postIsOpReady_2_1 | _T_2019 & postIsOpReady_3_0 &
    postIsOpReady_3_1; // @[Issue.scala 831:149]
  assign csrIssFifo_io_enq_bits_fun_rw = _csrIssFifo_io_enq_valid_T_9 & csrIssInfo_0_fun_rw |
    _csrIssFifo_io_enq_valid_T_19 & csrIssInfo_1_fun_rw | _csrIssFifo_io_enq_valid_T_29 & csrIssInfo_2_fun_rw |
    _csrIssFifo_io_enq_valid_T_39 & csrIssInfo_3_fun_rw; // @[Mux.scala 27:73]
  assign csrIssFifo_io_enq_bits_fun_rs = _csrIssFifo_io_enq_valid_T_9 & csrIssInfo_0_fun_rs |
    _csrIssFifo_io_enq_valid_T_19 & csrIssInfo_1_fun_rs | _csrIssFifo_io_enq_valid_T_29 & csrIssInfo_2_fun_rs |
    _csrIssFifo_io_enq_valid_T_39 & csrIssInfo_3_fun_rs; // @[Mux.scala 27:73]
  assign csrIssFifo_io_enq_bits_fun_rc = _csrIssFifo_io_enq_valid_T_9 & csrIssInfo_0_fun_rc |
    _csrIssFifo_io_enq_valid_T_19 & csrIssInfo_1_fun_rc | _csrIssFifo_io_enq_valid_T_29 & csrIssInfo_2_fun_rc |
    _csrIssFifo_io_enq_valid_T_39 & csrIssInfo_3_fun_rc; // @[Mux.scala 27:73]
  assign csrIssFifo_io_enq_bits_param_rd0 = _csrIssFifo_io_enq_bits_T_66 | _csrIssFifo_io_enq_bits_T_64; // @[Mux.scala 27:73]
  assign csrIssFifo_io_enq_bits_param_dat_op1 = _csrIssFifo_io_enq_bits_T_59 | _csrIssFifo_io_enq_bits_T_57; // @[Mux.scala 27:73]
  assign csrIssFifo_io_enq_bits_param_dat_op2 = _csrIssFifo_io_enq_bits_T_52 | _csrIssFifo_io_enq_bits_T_50; // @[Mux.scala 27:73]
  assign csrIssFifo_io_deq_ready = io_csr_iss_exe_ready; // @[Issue.scala 845:21]
  assign lsuIssFifo_clock = clock;
  assign lsuIssFifo_reset = io_flush | reset; // @[Issue.scala 909:32]
  assign lsuIssFifo_io_enq_valid = _T_2146 & postIsOpReady_0_0 & postIsOpReady_0_1 | _T_2154 & postIsOpReady_1_0 &
    postIsOpReady_1_1 | _T_2162 & postIsOpReady_2_0 & postIsOpReady_2_1 | _T_2170 & postIsOpReady_3_0 &
    postIsOpReady_3_1; // @[Issue.scala 894:149]
  assign lsuIssFifo_io_enq_bits_fun_lb = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_lb |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_lb | _lsuIssFifo_io_enq_valid_T_29 & bufInfo_2_lsu_isa_lb |
    _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_lb; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_lh = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_lh |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_lh | _lsuIssFifo_io_enq_valid_T_29 & bufInfo_2_lsu_isa_lh |
    _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_lh; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_lw = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_lw |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_lw | _lsuIssFifo_io_enq_valid_T_29 & bufInfo_2_lsu_isa_lw |
    _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_lw; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_ld = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_ld |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_ld | _lsuIssFifo_io_enq_valid_T_29 & bufInfo_2_lsu_isa_ld |
    _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_ld; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_lbu = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_lbu |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_lbu | _lsuIssFifo_io_enq_valid_T_29 & bufInfo_2_lsu_isa_lbu |
    _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_lbu; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_lhu = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_lhu |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_lhu | _lsuIssFifo_io_enq_valid_T_29 & bufInfo_2_lsu_isa_lhu |
    _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_lhu; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_lwu = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_lwu |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_lwu | _lsuIssFifo_io_enq_valid_T_29 & bufInfo_2_lsu_isa_lwu |
    _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_lwu; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_sb = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_sb |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_sb | _lsuIssFifo_io_enq_valid_T_29 & bufInfo_2_lsu_isa_sb |
    _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_sb; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_sh = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_sh |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_sh | _lsuIssFifo_io_enq_valid_T_29 & bufInfo_2_lsu_isa_sh |
    _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_sh; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_sw = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_sw |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_sw | _lsuIssFifo_io_enq_valid_T_29 & bufInfo_2_lsu_isa_sw |
    _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_sw; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_sd = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_sd |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_sd | _lsuIssFifo_io_enq_valid_T_29 & bufInfo_2_lsu_isa_sd |
    _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_sd; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_fence = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_fence |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_fence | _lsuIssFifo_io_enq_valid_T_29 & bufInfo_2_lsu_isa_fence |
    _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_fence; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_fence_i = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_fence_i |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_fence_i | _lsuIssFifo_io_enq_valid_T_29 &
    bufInfo_2_lsu_isa_fence_i | _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_fence_i; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_sfence_vma = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_sfence_vma |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_sfence_vma | _lsuIssFifo_io_enq_valid_T_29 &
    bufInfo_2_lsu_isa_sfence_vma | _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_sfence_vma; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_lr_w = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_lr_w |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_lr_w | _lsuIssFifo_io_enq_valid_T_29 & bufInfo_2_lsu_isa_lr_w |
    _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_lr_w; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_sc_w = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_sc_w |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_sc_w | _lsuIssFifo_io_enq_valid_T_29 & bufInfo_2_lsu_isa_sc_w |
    _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_sc_w; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amoswap_w = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_amoswap_w |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_amoswap_w | _lsuIssFifo_io_enq_valid_T_29 &
    bufInfo_2_lsu_isa_amoswap_w | _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_amoswap_w; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amoadd_w = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_amoadd_w |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_amoadd_w | _lsuIssFifo_io_enq_valid_T_29 &
    bufInfo_2_lsu_isa_amoadd_w | _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_amoadd_w; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amoxor_w = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_amoxor_w |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_amoxor_w | _lsuIssFifo_io_enq_valid_T_29 &
    bufInfo_2_lsu_isa_amoxor_w | _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_amoxor_w; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amoand_w = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_amoand_w |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_amoand_w | _lsuIssFifo_io_enq_valid_T_29 &
    bufInfo_2_lsu_isa_amoand_w | _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_amoand_w; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amoor_w = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_amoor_w |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_amoor_w | _lsuIssFifo_io_enq_valid_T_29 &
    bufInfo_2_lsu_isa_amoor_w | _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_amoor_w; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amomin_w = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_amomin_w |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_amomin_w | _lsuIssFifo_io_enq_valid_T_29 &
    bufInfo_2_lsu_isa_amomin_w | _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_amomin_w; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amomax_w = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_amomax_w |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_amomax_w | _lsuIssFifo_io_enq_valid_T_29 &
    bufInfo_2_lsu_isa_amomax_w | _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_amomax_w; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amominu_w = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_amominu_w |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_amominu_w | _lsuIssFifo_io_enq_valid_T_29 &
    bufInfo_2_lsu_isa_amominu_w | _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_amominu_w; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amomaxu_w = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_amomaxu_w |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_amomaxu_w | _lsuIssFifo_io_enq_valid_T_29 &
    bufInfo_2_lsu_isa_amomaxu_w | _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_amomaxu_w; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_lr_d = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_lr_d |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_lr_d | _lsuIssFifo_io_enq_valid_T_29 & bufInfo_2_lsu_isa_lr_d |
    _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_lr_d; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_sc_d = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_sc_d |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_sc_d | _lsuIssFifo_io_enq_valid_T_29 & bufInfo_2_lsu_isa_sc_d |
    _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_sc_d; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amoswap_d = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_amoswap_d |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_amoswap_d | _lsuIssFifo_io_enq_valid_T_29 &
    bufInfo_2_lsu_isa_amoswap_d | _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_amoswap_d; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amoadd_d = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_amoadd_d |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_amoadd_d | _lsuIssFifo_io_enq_valid_T_29 &
    bufInfo_2_lsu_isa_amoadd_d | _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_amoadd_d; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amoxor_d = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_amoxor_d |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_amoxor_d | _lsuIssFifo_io_enq_valid_T_29 &
    bufInfo_2_lsu_isa_amoxor_d | _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_amoxor_d; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amoand_d = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_amoand_d |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_amoand_d | _lsuIssFifo_io_enq_valid_T_29 &
    bufInfo_2_lsu_isa_amoand_d | _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_amoand_d; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amoor_d = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_amoor_d |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_amoor_d | _lsuIssFifo_io_enq_valid_T_29 &
    bufInfo_2_lsu_isa_amoor_d | _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_amoor_d; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amomin_d = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_amomin_d |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_amomin_d | _lsuIssFifo_io_enq_valid_T_29 &
    bufInfo_2_lsu_isa_amomin_d | _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_amomin_d; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amomax_d = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_amomax_d |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_amomax_d | _lsuIssFifo_io_enq_valid_T_29 &
    bufInfo_2_lsu_isa_amomax_d | _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_amomax_d; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amominu_d = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_amominu_d |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_amominu_d | _lsuIssFifo_io_enq_valid_T_29 &
    bufInfo_2_lsu_isa_amominu_d | _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_amominu_d; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amomaxu_d = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_amomaxu_d |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_amomaxu_d | _lsuIssFifo_io_enq_valid_T_29 &
    bufInfo_2_lsu_isa_amomaxu_d | _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_amomaxu_d; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_flw = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_flw |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_flw | _lsuIssFifo_io_enq_valid_T_29 & bufInfo_2_lsu_isa_flw |
    _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_flw; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_fsw = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_fsw |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_fsw | _lsuIssFifo_io_enq_valid_T_29 & bufInfo_2_lsu_isa_fsw |
    _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_fsw; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_fld = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_fld |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_fld | _lsuIssFifo_io_enq_valid_T_29 & bufInfo_2_lsu_isa_fld |
    _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_fld; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_fsd = _lsuIssFifo_io_enq_valid_T_9 & bufInfo_0_lsu_isa_fsd |
    _lsuIssFifo_io_enq_valid_T_19 & bufInfo_1_lsu_isa_fsd | _lsuIssFifo_io_enq_valid_T_29 & bufInfo_2_lsu_isa_fsd |
    _lsuIssFifo_io_enq_valid_T_39 & bufInfo_3_lsu_isa_fsd; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_param_rd0 = _lsuIssFifo_io_enq_bits_T_66 | _lsuIssFifo_io_enq_bits_T_64; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_param_dat_op1 = _lsuIssFifo_io_enq_bits_T_59 | _lsuIssFifo_io_enq_bits_T_57; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_param_dat_op2 = _lsuIssFifo_io_enq_bits_T_52 | _lsuIssFifo_io_enq_bits_T_50; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_deq_ready = io_lsu_iss_exe_ready; // @[Issue.scala 908:21]
  always @(posedge clock) begin
    if (reset) begin // @[Issue.scala 61:29]
      bufValid_0 <= 1'h0; // @[Issue.scala 61:29]
    end else if (_T_2182 & lsuIssIdx == 2'h0) begin // @[Issue.scala 900:56]
      bufValid_0 <= 1'h0; // @[Issue.scala 901:19]
    end else if (_T_2031 & csrIssIdx == 2'h0) begin // @[Issue.scala 837:56]
      bufValid_0 <= 1'h0; // @[Issue.scala 838:19]
    end else if (_T_1872 & bruIssIdx == 2'h0) begin // @[Issue.scala 771:56]
      bufValid_0 <= 1'h0; // @[Issue.scala 772:19]
    end else begin
      bufValid_0 <= _GEN_3546;
    end
    if (reset) begin // @[Issue.scala 61:29]
      bufValid_1 <= 1'h0; // @[Issue.scala 61:29]
    end else if (_T_2182 & lsuIssIdx == 2'h1) begin // @[Issue.scala 900:56]
      bufValid_1 <= 1'h0; // @[Issue.scala 901:19]
    end else if (_T_2031 & csrIssIdx == 2'h1) begin // @[Issue.scala 837:56]
      bufValid_1 <= 1'h0; // @[Issue.scala 838:19]
    end else if (_T_1872 & bruIssIdx == 2'h1) begin // @[Issue.scala 771:56]
      bufValid_1 <= 1'h0; // @[Issue.scala 772:19]
    end else begin
      bufValid_1 <= _GEN_3547;
    end
    if (reset) begin // @[Issue.scala 61:29]
      bufValid_2 <= 1'h0; // @[Issue.scala 61:29]
    end else if (_T_2182 & lsuIssIdx == 2'h2) begin // @[Issue.scala 900:56]
      bufValid_2 <= 1'h0; // @[Issue.scala 901:19]
    end else if (_T_2031 & csrIssIdx == 2'h2) begin // @[Issue.scala 837:56]
      bufValid_2 <= 1'h0; // @[Issue.scala 838:19]
    end else if (_T_1872 & bruIssIdx == 2'h2) begin // @[Issue.scala 771:56]
      bufValid_2 <= 1'h0; // @[Issue.scala 772:19]
    end else begin
      bufValid_2 <= _GEN_3548;
    end
    if (reset) begin // @[Issue.scala 61:29]
      bufValid_3 <= 1'h0; // @[Issue.scala 61:29]
    end else if (_T_2182 & lsuIssIdx == 2'h3) begin // @[Issue.scala 900:56]
      bufValid_3 <= 1'h0; // @[Issue.scala 901:19]
    end else if (_T_2031 & csrIssIdx == 2'h3) begin // @[Issue.scala 837:56]
      bufValid_3 <= 1'h0; // @[Issue.scala 838:19]
    end else if (_T_1872 & bruIssIdx == 2'h3) begin // @[Issue.scala 771:56]
      bufValid_3 <= 1'h0; // @[Issue.scala 772:19]
    end else begin
      bufValid_3 <= _GEN_3549;
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_lui <= io_dptReq_0_bits_alu_isa_lui; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_auipc <= io_dptReq_0_bits_alu_isa_auipc; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_addi <= io_dptReq_0_bits_alu_isa_addi; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_addiw <= io_dptReq_0_bits_alu_isa_addiw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_slti <= io_dptReq_0_bits_alu_isa_slti; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_sltiu <= io_dptReq_0_bits_alu_isa_sltiu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_xori <= io_dptReq_0_bits_alu_isa_xori; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_ori <= io_dptReq_0_bits_alu_isa_ori; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_andi <= io_dptReq_0_bits_alu_isa_andi; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_slli <= io_dptReq_0_bits_alu_isa_slli; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_slliw <= io_dptReq_0_bits_alu_isa_slliw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_srli <= io_dptReq_0_bits_alu_isa_srli; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_srliw <= io_dptReq_0_bits_alu_isa_srliw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_srai <= io_dptReq_0_bits_alu_isa_srai; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_sraiw <= io_dptReq_0_bits_alu_isa_sraiw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_add <= io_dptReq_0_bits_alu_isa_add; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_addw <= io_dptReq_0_bits_alu_isa_addw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_sub <= io_dptReq_0_bits_alu_isa_sub; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_subw <= io_dptReq_0_bits_alu_isa_subw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_sll <= io_dptReq_0_bits_alu_isa_sll; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_sllw <= io_dptReq_0_bits_alu_isa_sllw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_slt <= io_dptReq_0_bits_alu_isa_slt; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_sltu <= io_dptReq_0_bits_alu_isa_sltu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_xor <= io_dptReq_0_bits_alu_isa_xor; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_srl <= io_dptReq_0_bits_alu_isa_srl; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_srlw <= io_dptReq_0_bits_alu_isa_srlw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_sra <= io_dptReq_0_bits_alu_isa_sra; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_sraw <= io_dptReq_0_bits_alu_isa_sraw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_or <= io_dptReq_0_bits_alu_isa_or; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_and <= io_dptReq_0_bits_alu_isa_and; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_alu_isa_wfi <= io_dptReq_0_bits_alu_isa_wfi; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_bru_isa_jal <= io_dptReq_0_bits_bru_isa_jal; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_bru_isa_jalr <= io_dptReq_0_bits_bru_isa_jalr; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_bru_isa_beq <= io_dptReq_0_bits_bru_isa_beq; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_bru_isa_bne <= io_dptReq_0_bits_bru_isa_bne; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_bru_isa_blt <= io_dptReq_0_bits_bru_isa_blt; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_bru_isa_bge <= io_dptReq_0_bits_bru_isa_bge; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_bru_isa_bltu <= io_dptReq_0_bits_bru_isa_bltu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_bru_isa_bgeu <= io_dptReq_0_bits_bru_isa_bgeu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_lb <= io_dptReq_0_bits_lsu_isa_lb; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_lh <= io_dptReq_0_bits_lsu_isa_lh; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_lw <= io_dptReq_0_bits_lsu_isa_lw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_ld <= io_dptReq_0_bits_lsu_isa_ld; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_lbu <= io_dptReq_0_bits_lsu_isa_lbu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_lhu <= io_dptReq_0_bits_lsu_isa_lhu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_lwu <= io_dptReq_0_bits_lsu_isa_lwu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_sb <= io_dptReq_0_bits_lsu_isa_sb; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_sh <= io_dptReq_0_bits_lsu_isa_sh; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_sw <= io_dptReq_0_bits_lsu_isa_sw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_sd <= io_dptReq_0_bits_lsu_isa_sd; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_fence <= io_dptReq_0_bits_lsu_isa_fence; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_fence_i <= io_dptReq_0_bits_lsu_isa_fence_i; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_sfence_vma <= io_dptReq_0_bits_lsu_isa_sfence_vma; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_lr_w <= io_dptReq_0_bits_lsu_isa_lr_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_sc_w <= io_dptReq_0_bits_lsu_isa_sc_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_amoswap_w <= io_dptReq_0_bits_lsu_isa_amoswap_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_amoadd_w <= io_dptReq_0_bits_lsu_isa_amoadd_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_amoxor_w <= io_dptReq_0_bits_lsu_isa_amoxor_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_amoand_w <= io_dptReq_0_bits_lsu_isa_amoand_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_amoor_w <= io_dptReq_0_bits_lsu_isa_amoor_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_amomin_w <= io_dptReq_0_bits_lsu_isa_amomin_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_amomax_w <= io_dptReq_0_bits_lsu_isa_amomax_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_amominu_w <= io_dptReq_0_bits_lsu_isa_amominu_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_amomaxu_w <= io_dptReq_0_bits_lsu_isa_amomaxu_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_lr_d <= io_dptReq_0_bits_lsu_isa_lr_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_sc_d <= io_dptReq_0_bits_lsu_isa_sc_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_amoswap_d <= io_dptReq_0_bits_lsu_isa_amoswap_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_amoadd_d <= io_dptReq_0_bits_lsu_isa_amoadd_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_amoxor_d <= io_dptReq_0_bits_lsu_isa_amoxor_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_amoand_d <= io_dptReq_0_bits_lsu_isa_amoand_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_amoor_d <= io_dptReq_0_bits_lsu_isa_amoor_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_amomin_d <= io_dptReq_0_bits_lsu_isa_amomin_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_amomax_d <= io_dptReq_0_bits_lsu_isa_amomax_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_amominu_d <= io_dptReq_0_bits_lsu_isa_amominu_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_amomaxu_d <= io_dptReq_0_bits_lsu_isa_amomaxu_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_flw <= io_dptReq_0_bits_lsu_isa_flw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_fsw <= io_dptReq_0_bits_lsu_isa_fsw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_fld <= io_dptReq_0_bits_lsu_isa_fld; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_lsu_isa_fsd <= io_dptReq_0_bits_lsu_isa_fsd; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_csr_isa_rw <= io_dptReq_0_bits_csr_isa_rw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_csr_isa_rs <= io_dptReq_0_bits_csr_isa_rs; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_csr_isa_rc <= io_dptReq_0_bits_csr_isa_rc; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_csr_isa_rwi <= io_dptReq_0_bits_csr_isa_rwi; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_csr_isa_rsi <= io_dptReq_0_bits_csr_isa_rsi; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_csr_isa_rci <= io_dptReq_0_bits_csr_isa_rci; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_mul_isa_mul <= io_dptReq_0_bits_mul_isa_mul; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_mul_isa_mulh <= io_dptReq_0_bits_mul_isa_mulh; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_mul_isa_mulhsu <= io_dptReq_0_bits_mul_isa_mulhsu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_mul_isa_mulhu <= io_dptReq_0_bits_mul_isa_mulhu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_mul_isa_div <= io_dptReq_0_bits_mul_isa_div; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_mul_isa_divu <= io_dptReq_0_bits_mul_isa_divu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_mul_isa_rem <= io_dptReq_0_bits_mul_isa_rem; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_mul_isa_remu <= io_dptReq_0_bits_mul_isa_remu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_mul_isa_mulw <= io_dptReq_0_bits_mul_isa_mulw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_mul_isa_divw <= io_dptReq_0_bits_mul_isa_divw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_mul_isa_divuw <= io_dptReq_0_bits_mul_isa_divuw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_mul_isa_remw <= io_dptReq_0_bits_mul_isa_remw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_mul_isa_remuw <= io_dptReq_0_bits_mul_isa_remuw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_param_is_rvc <= io_dptReq_0_bits_param_is_rvc; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_param_pc <= io_dptReq_0_bits_param_pc; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_param_imm <= io_dptReq_0_bits_param_imm; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_param_raw_rs1 <= io_dptReq_0_bits_param_raw_rs1; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_phy_rs1 <= io_dptReq_0_bits_phy_rs1; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_phy_rs2 <= io_dptReq_0_bits_phy_rs2; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_phy_rs3 <= io_dptReq_0_bits_phy_rs3; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h0 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_0_phy_rd0 <= io_dptReq_0_bits_phy_rd0; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_lui <= io_dptReq_0_bits_alu_isa_lui; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_auipc <= io_dptReq_0_bits_alu_isa_auipc; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_addi <= io_dptReq_0_bits_alu_isa_addi; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_addiw <= io_dptReq_0_bits_alu_isa_addiw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_slti <= io_dptReq_0_bits_alu_isa_slti; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_sltiu <= io_dptReq_0_bits_alu_isa_sltiu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_xori <= io_dptReq_0_bits_alu_isa_xori; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_ori <= io_dptReq_0_bits_alu_isa_ori; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_andi <= io_dptReq_0_bits_alu_isa_andi; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_slli <= io_dptReq_0_bits_alu_isa_slli; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_slliw <= io_dptReq_0_bits_alu_isa_slliw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_srli <= io_dptReq_0_bits_alu_isa_srli; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_srliw <= io_dptReq_0_bits_alu_isa_srliw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_srai <= io_dptReq_0_bits_alu_isa_srai; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_sraiw <= io_dptReq_0_bits_alu_isa_sraiw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_add <= io_dptReq_0_bits_alu_isa_add; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_addw <= io_dptReq_0_bits_alu_isa_addw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_sub <= io_dptReq_0_bits_alu_isa_sub; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_subw <= io_dptReq_0_bits_alu_isa_subw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_sll <= io_dptReq_0_bits_alu_isa_sll; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_sllw <= io_dptReq_0_bits_alu_isa_sllw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_slt <= io_dptReq_0_bits_alu_isa_slt; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_sltu <= io_dptReq_0_bits_alu_isa_sltu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_xor <= io_dptReq_0_bits_alu_isa_xor; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_srl <= io_dptReq_0_bits_alu_isa_srl; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_srlw <= io_dptReq_0_bits_alu_isa_srlw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_sra <= io_dptReq_0_bits_alu_isa_sra; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_sraw <= io_dptReq_0_bits_alu_isa_sraw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_or <= io_dptReq_0_bits_alu_isa_or; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_and <= io_dptReq_0_bits_alu_isa_and; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_alu_isa_wfi <= io_dptReq_0_bits_alu_isa_wfi; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_bru_isa_jal <= io_dptReq_0_bits_bru_isa_jal; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_bru_isa_jalr <= io_dptReq_0_bits_bru_isa_jalr; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_bru_isa_beq <= io_dptReq_0_bits_bru_isa_beq; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_bru_isa_bne <= io_dptReq_0_bits_bru_isa_bne; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_bru_isa_blt <= io_dptReq_0_bits_bru_isa_blt; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_bru_isa_bge <= io_dptReq_0_bits_bru_isa_bge; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_bru_isa_bltu <= io_dptReq_0_bits_bru_isa_bltu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_bru_isa_bgeu <= io_dptReq_0_bits_bru_isa_bgeu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_lb <= io_dptReq_0_bits_lsu_isa_lb; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_lh <= io_dptReq_0_bits_lsu_isa_lh; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_lw <= io_dptReq_0_bits_lsu_isa_lw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_ld <= io_dptReq_0_bits_lsu_isa_ld; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_lbu <= io_dptReq_0_bits_lsu_isa_lbu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_lhu <= io_dptReq_0_bits_lsu_isa_lhu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_lwu <= io_dptReq_0_bits_lsu_isa_lwu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_sb <= io_dptReq_0_bits_lsu_isa_sb; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_sh <= io_dptReq_0_bits_lsu_isa_sh; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_sw <= io_dptReq_0_bits_lsu_isa_sw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_sd <= io_dptReq_0_bits_lsu_isa_sd; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_fence <= io_dptReq_0_bits_lsu_isa_fence; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_fence_i <= io_dptReq_0_bits_lsu_isa_fence_i; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_sfence_vma <= io_dptReq_0_bits_lsu_isa_sfence_vma; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_lr_w <= io_dptReq_0_bits_lsu_isa_lr_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_sc_w <= io_dptReq_0_bits_lsu_isa_sc_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_amoswap_w <= io_dptReq_0_bits_lsu_isa_amoswap_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_amoadd_w <= io_dptReq_0_bits_lsu_isa_amoadd_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_amoxor_w <= io_dptReq_0_bits_lsu_isa_amoxor_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_amoand_w <= io_dptReq_0_bits_lsu_isa_amoand_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_amoor_w <= io_dptReq_0_bits_lsu_isa_amoor_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_amomin_w <= io_dptReq_0_bits_lsu_isa_amomin_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_amomax_w <= io_dptReq_0_bits_lsu_isa_amomax_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_amominu_w <= io_dptReq_0_bits_lsu_isa_amominu_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_amomaxu_w <= io_dptReq_0_bits_lsu_isa_amomaxu_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_lr_d <= io_dptReq_0_bits_lsu_isa_lr_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_sc_d <= io_dptReq_0_bits_lsu_isa_sc_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_amoswap_d <= io_dptReq_0_bits_lsu_isa_amoswap_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_amoadd_d <= io_dptReq_0_bits_lsu_isa_amoadd_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_amoxor_d <= io_dptReq_0_bits_lsu_isa_amoxor_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_amoand_d <= io_dptReq_0_bits_lsu_isa_amoand_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_amoor_d <= io_dptReq_0_bits_lsu_isa_amoor_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_amomin_d <= io_dptReq_0_bits_lsu_isa_amomin_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_amomax_d <= io_dptReq_0_bits_lsu_isa_amomax_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_amominu_d <= io_dptReq_0_bits_lsu_isa_amominu_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_amomaxu_d <= io_dptReq_0_bits_lsu_isa_amomaxu_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_flw <= io_dptReq_0_bits_lsu_isa_flw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_fsw <= io_dptReq_0_bits_lsu_isa_fsw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_fld <= io_dptReq_0_bits_lsu_isa_fld; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_lsu_isa_fsd <= io_dptReq_0_bits_lsu_isa_fsd; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_csr_isa_rw <= io_dptReq_0_bits_csr_isa_rw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_csr_isa_rs <= io_dptReq_0_bits_csr_isa_rs; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_csr_isa_rc <= io_dptReq_0_bits_csr_isa_rc; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_csr_isa_rwi <= io_dptReq_0_bits_csr_isa_rwi; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_csr_isa_rsi <= io_dptReq_0_bits_csr_isa_rsi; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_csr_isa_rci <= io_dptReq_0_bits_csr_isa_rci; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_mul_isa_mul <= io_dptReq_0_bits_mul_isa_mul; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_mul_isa_mulh <= io_dptReq_0_bits_mul_isa_mulh; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_mul_isa_mulhsu <= io_dptReq_0_bits_mul_isa_mulhsu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_mul_isa_mulhu <= io_dptReq_0_bits_mul_isa_mulhu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_mul_isa_div <= io_dptReq_0_bits_mul_isa_div; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_mul_isa_divu <= io_dptReq_0_bits_mul_isa_divu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_mul_isa_rem <= io_dptReq_0_bits_mul_isa_rem; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_mul_isa_remu <= io_dptReq_0_bits_mul_isa_remu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_mul_isa_mulw <= io_dptReq_0_bits_mul_isa_mulw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_mul_isa_divw <= io_dptReq_0_bits_mul_isa_divw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_mul_isa_divuw <= io_dptReq_0_bits_mul_isa_divuw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_mul_isa_remw <= io_dptReq_0_bits_mul_isa_remw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_mul_isa_remuw <= io_dptReq_0_bits_mul_isa_remuw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_param_is_rvc <= io_dptReq_0_bits_param_is_rvc; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_param_pc <= io_dptReq_0_bits_param_pc; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_param_imm <= io_dptReq_0_bits_param_imm; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_param_raw_rs1 <= io_dptReq_0_bits_param_raw_rs1; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_phy_rs1 <= io_dptReq_0_bits_phy_rs1; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_phy_rs2 <= io_dptReq_0_bits_phy_rs2; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_phy_rs3 <= io_dptReq_0_bits_phy_rs3; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h1 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_1_phy_rd0 <= io_dptReq_0_bits_phy_rd0; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_lui <= io_dptReq_0_bits_alu_isa_lui; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_auipc <= io_dptReq_0_bits_alu_isa_auipc; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_addi <= io_dptReq_0_bits_alu_isa_addi; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_addiw <= io_dptReq_0_bits_alu_isa_addiw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_slti <= io_dptReq_0_bits_alu_isa_slti; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_sltiu <= io_dptReq_0_bits_alu_isa_sltiu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_xori <= io_dptReq_0_bits_alu_isa_xori; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_ori <= io_dptReq_0_bits_alu_isa_ori; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_andi <= io_dptReq_0_bits_alu_isa_andi; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_slli <= io_dptReq_0_bits_alu_isa_slli; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_slliw <= io_dptReq_0_bits_alu_isa_slliw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_srli <= io_dptReq_0_bits_alu_isa_srli; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_srliw <= io_dptReq_0_bits_alu_isa_srliw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_srai <= io_dptReq_0_bits_alu_isa_srai; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_sraiw <= io_dptReq_0_bits_alu_isa_sraiw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_add <= io_dptReq_0_bits_alu_isa_add; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_addw <= io_dptReq_0_bits_alu_isa_addw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_sub <= io_dptReq_0_bits_alu_isa_sub; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_subw <= io_dptReq_0_bits_alu_isa_subw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_sll <= io_dptReq_0_bits_alu_isa_sll; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_sllw <= io_dptReq_0_bits_alu_isa_sllw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_slt <= io_dptReq_0_bits_alu_isa_slt; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_sltu <= io_dptReq_0_bits_alu_isa_sltu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_xor <= io_dptReq_0_bits_alu_isa_xor; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_srl <= io_dptReq_0_bits_alu_isa_srl; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_srlw <= io_dptReq_0_bits_alu_isa_srlw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_sra <= io_dptReq_0_bits_alu_isa_sra; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_sraw <= io_dptReq_0_bits_alu_isa_sraw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_or <= io_dptReq_0_bits_alu_isa_or; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_and <= io_dptReq_0_bits_alu_isa_and; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_alu_isa_wfi <= io_dptReq_0_bits_alu_isa_wfi; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_bru_isa_jal <= io_dptReq_0_bits_bru_isa_jal; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_bru_isa_jalr <= io_dptReq_0_bits_bru_isa_jalr; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_bru_isa_beq <= io_dptReq_0_bits_bru_isa_beq; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_bru_isa_bne <= io_dptReq_0_bits_bru_isa_bne; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_bru_isa_blt <= io_dptReq_0_bits_bru_isa_blt; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_bru_isa_bge <= io_dptReq_0_bits_bru_isa_bge; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_bru_isa_bltu <= io_dptReq_0_bits_bru_isa_bltu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_bru_isa_bgeu <= io_dptReq_0_bits_bru_isa_bgeu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_lb <= io_dptReq_0_bits_lsu_isa_lb; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_lh <= io_dptReq_0_bits_lsu_isa_lh; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_lw <= io_dptReq_0_bits_lsu_isa_lw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_ld <= io_dptReq_0_bits_lsu_isa_ld; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_lbu <= io_dptReq_0_bits_lsu_isa_lbu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_lhu <= io_dptReq_0_bits_lsu_isa_lhu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_lwu <= io_dptReq_0_bits_lsu_isa_lwu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_sb <= io_dptReq_0_bits_lsu_isa_sb; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_sh <= io_dptReq_0_bits_lsu_isa_sh; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_sw <= io_dptReq_0_bits_lsu_isa_sw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_sd <= io_dptReq_0_bits_lsu_isa_sd; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_fence <= io_dptReq_0_bits_lsu_isa_fence; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_fence_i <= io_dptReq_0_bits_lsu_isa_fence_i; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_sfence_vma <= io_dptReq_0_bits_lsu_isa_sfence_vma; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_lr_w <= io_dptReq_0_bits_lsu_isa_lr_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_sc_w <= io_dptReq_0_bits_lsu_isa_sc_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_amoswap_w <= io_dptReq_0_bits_lsu_isa_amoswap_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_amoadd_w <= io_dptReq_0_bits_lsu_isa_amoadd_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_amoxor_w <= io_dptReq_0_bits_lsu_isa_amoxor_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_amoand_w <= io_dptReq_0_bits_lsu_isa_amoand_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_amoor_w <= io_dptReq_0_bits_lsu_isa_amoor_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_amomin_w <= io_dptReq_0_bits_lsu_isa_amomin_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_amomax_w <= io_dptReq_0_bits_lsu_isa_amomax_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_amominu_w <= io_dptReq_0_bits_lsu_isa_amominu_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_amomaxu_w <= io_dptReq_0_bits_lsu_isa_amomaxu_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_lr_d <= io_dptReq_0_bits_lsu_isa_lr_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_sc_d <= io_dptReq_0_bits_lsu_isa_sc_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_amoswap_d <= io_dptReq_0_bits_lsu_isa_amoswap_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_amoadd_d <= io_dptReq_0_bits_lsu_isa_amoadd_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_amoxor_d <= io_dptReq_0_bits_lsu_isa_amoxor_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_amoand_d <= io_dptReq_0_bits_lsu_isa_amoand_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_amoor_d <= io_dptReq_0_bits_lsu_isa_amoor_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_amomin_d <= io_dptReq_0_bits_lsu_isa_amomin_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_amomax_d <= io_dptReq_0_bits_lsu_isa_amomax_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_amominu_d <= io_dptReq_0_bits_lsu_isa_amominu_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_amomaxu_d <= io_dptReq_0_bits_lsu_isa_amomaxu_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_flw <= io_dptReq_0_bits_lsu_isa_flw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_fsw <= io_dptReq_0_bits_lsu_isa_fsw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_fld <= io_dptReq_0_bits_lsu_isa_fld; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_lsu_isa_fsd <= io_dptReq_0_bits_lsu_isa_fsd; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_csr_isa_rw <= io_dptReq_0_bits_csr_isa_rw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_csr_isa_rs <= io_dptReq_0_bits_csr_isa_rs; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_csr_isa_rc <= io_dptReq_0_bits_csr_isa_rc; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_csr_isa_rwi <= io_dptReq_0_bits_csr_isa_rwi; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_csr_isa_rsi <= io_dptReq_0_bits_csr_isa_rsi; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_csr_isa_rci <= io_dptReq_0_bits_csr_isa_rci; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_mul_isa_mul <= io_dptReq_0_bits_mul_isa_mul; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_mul_isa_mulh <= io_dptReq_0_bits_mul_isa_mulh; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_mul_isa_mulhsu <= io_dptReq_0_bits_mul_isa_mulhsu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_mul_isa_mulhu <= io_dptReq_0_bits_mul_isa_mulhu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_mul_isa_div <= io_dptReq_0_bits_mul_isa_div; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_mul_isa_divu <= io_dptReq_0_bits_mul_isa_divu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_mul_isa_rem <= io_dptReq_0_bits_mul_isa_rem; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_mul_isa_remu <= io_dptReq_0_bits_mul_isa_remu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_mul_isa_mulw <= io_dptReq_0_bits_mul_isa_mulw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_mul_isa_divw <= io_dptReq_0_bits_mul_isa_divw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_mul_isa_divuw <= io_dptReq_0_bits_mul_isa_divuw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_mul_isa_remw <= io_dptReq_0_bits_mul_isa_remw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_mul_isa_remuw <= io_dptReq_0_bits_mul_isa_remuw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_param_is_rvc <= io_dptReq_0_bits_param_is_rvc; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_param_pc <= io_dptReq_0_bits_param_pc; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_param_imm <= io_dptReq_0_bits_param_imm; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_param_raw_rs1 <= io_dptReq_0_bits_param_raw_rs1; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_phy_rs1 <= io_dptReq_0_bits_phy_rs1; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_phy_rs2 <= io_dptReq_0_bits_phy_rs2; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_phy_rs3 <= io_dptReq_0_bits_phy_rs3; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h2 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_2_phy_rd0 <= io_dptReq_0_bits_phy_rd0; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_lui <= io_dptReq_0_bits_alu_isa_lui; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_auipc <= io_dptReq_0_bits_alu_isa_auipc; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_addi <= io_dptReq_0_bits_alu_isa_addi; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_addiw <= io_dptReq_0_bits_alu_isa_addiw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_slti <= io_dptReq_0_bits_alu_isa_slti; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_sltiu <= io_dptReq_0_bits_alu_isa_sltiu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_xori <= io_dptReq_0_bits_alu_isa_xori; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_ori <= io_dptReq_0_bits_alu_isa_ori; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_andi <= io_dptReq_0_bits_alu_isa_andi; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_slli <= io_dptReq_0_bits_alu_isa_slli; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_slliw <= io_dptReq_0_bits_alu_isa_slliw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_srli <= io_dptReq_0_bits_alu_isa_srli; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_srliw <= io_dptReq_0_bits_alu_isa_srliw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_srai <= io_dptReq_0_bits_alu_isa_srai; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_sraiw <= io_dptReq_0_bits_alu_isa_sraiw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_add <= io_dptReq_0_bits_alu_isa_add; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_addw <= io_dptReq_0_bits_alu_isa_addw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_sub <= io_dptReq_0_bits_alu_isa_sub; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_subw <= io_dptReq_0_bits_alu_isa_subw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_sll <= io_dptReq_0_bits_alu_isa_sll; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_sllw <= io_dptReq_0_bits_alu_isa_sllw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_slt <= io_dptReq_0_bits_alu_isa_slt; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_sltu <= io_dptReq_0_bits_alu_isa_sltu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_xor <= io_dptReq_0_bits_alu_isa_xor; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_srl <= io_dptReq_0_bits_alu_isa_srl; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_srlw <= io_dptReq_0_bits_alu_isa_srlw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_sra <= io_dptReq_0_bits_alu_isa_sra; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_sraw <= io_dptReq_0_bits_alu_isa_sraw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_or <= io_dptReq_0_bits_alu_isa_or; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_and <= io_dptReq_0_bits_alu_isa_and; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_alu_isa_wfi <= io_dptReq_0_bits_alu_isa_wfi; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_bru_isa_jal <= io_dptReq_0_bits_bru_isa_jal; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_bru_isa_jalr <= io_dptReq_0_bits_bru_isa_jalr; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_bru_isa_beq <= io_dptReq_0_bits_bru_isa_beq; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_bru_isa_bne <= io_dptReq_0_bits_bru_isa_bne; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_bru_isa_blt <= io_dptReq_0_bits_bru_isa_blt; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_bru_isa_bge <= io_dptReq_0_bits_bru_isa_bge; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_bru_isa_bltu <= io_dptReq_0_bits_bru_isa_bltu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_bru_isa_bgeu <= io_dptReq_0_bits_bru_isa_bgeu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_lb <= io_dptReq_0_bits_lsu_isa_lb; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_lh <= io_dptReq_0_bits_lsu_isa_lh; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_lw <= io_dptReq_0_bits_lsu_isa_lw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_ld <= io_dptReq_0_bits_lsu_isa_ld; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_lbu <= io_dptReq_0_bits_lsu_isa_lbu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_lhu <= io_dptReq_0_bits_lsu_isa_lhu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_lwu <= io_dptReq_0_bits_lsu_isa_lwu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_sb <= io_dptReq_0_bits_lsu_isa_sb; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_sh <= io_dptReq_0_bits_lsu_isa_sh; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_sw <= io_dptReq_0_bits_lsu_isa_sw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_sd <= io_dptReq_0_bits_lsu_isa_sd; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_fence <= io_dptReq_0_bits_lsu_isa_fence; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_fence_i <= io_dptReq_0_bits_lsu_isa_fence_i; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_sfence_vma <= io_dptReq_0_bits_lsu_isa_sfence_vma; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_lr_w <= io_dptReq_0_bits_lsu_isa_lr_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_sc_w <= io_dptReq_0_bits_lsu_isa_sc_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_amoswap_w <= io_dptReq_0_bits_lsu_isa_amoswap_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_amoadd_w <= io_dptReq_0_bits_lsu_isa_amoadd_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_amoxor_w <= io_dptReq_0_bits_lsu_isa_amoxor_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_amoand_w <= io_dptReq_0_bits_lsu_isa_amoand_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_amoor_w <= io_dptReq_0_bits_lsu_isa_amoor_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_amomin_w <= io_dptReq_0_bits_lsu_isa_amomin_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_amomax_w <= io_dptReq_0_bits_lsu_isa_amomax_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_amominu_w <= io_dptReq_0_bits_lsu_isa_amominu_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_amomaxu_w <= io_dptReq_0_bits_lsu_isa_amomaxu_w; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_lr_d <= io_dptReq_0_bits_lsu_isa_lr_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_sc_d <= io_dptReq_0_bits_lsu_isa_sc_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_amoswap_d <= io_dptReq_0_bits_lsu_isa_amoswap_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_amoadd_d <= io_dptReq_0_bits_lsu_isa_amoadd_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_amoxor_d <= io_dptReq_0_bits_lsu_isa_amoxor_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_amoand_d <= io_dptReq_0_bits_lsu_isa_amoand_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_amoor_d <= io_dptReq_0_bits_lsu_isa_amoor_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_amomin_d <= io_dptReq_0_bits_lsu_isa_amomin_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_amomax_d <= io_dptReq_0_bits_lsu_isa_amomax_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_amominu_d <= io_dptReq_0_bits_lsu_isa_amominu_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_amomaxu_d <= io_dptReq_0_bits_lsu_isa_amomaxu_d; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_flw <= io_dptReq_0_bits_lsu_isa_flw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_fsw <= io_dptReq_0_bits_lsu_isa_fsw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_fld <= io_dptReq_0_bits_lsu_isa_fld; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_lsu_isa_fsd <= io_dptReq_0_bits_lsu_isa_fsd; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_csr_isa_rw <= io_dptReq_0_bits_csr_isa_rw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_csr_isa_rs <= io_dptReq_0_bits_csr_isa_rs; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_csr_isa_rc <= io_dptReq_0_bits_csr_isa_rc; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_csr_isa_rwi <= io_dptReq_0_bits_csr_isa_rwi; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_csr_isa_rsi <= io_dptReq_0_bits_csr_isa_rsi; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_csr_isa_rci <= io_dptReq_0_bits_csr_isa_rci; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_mul_isa_mul <= io_dptReq_0_bits_mul_isa_mul; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_mul_isa_mulh <= io_dptReq_0_bits_mul_isa_mulh; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_mul_isa_mulhsu <= io_dptReq_0_bits_mul_isa_mulhsu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_mul_isa_mulhu <= io_dptReq_0_bits_mul_isa_mulhu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_mul_isa_div <= io_dptReq_0_bits_mul_isa_div; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_mul_isa_divu <= io_dptReq_0_bits_mul_isa_divu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_mul_isa_rem <= io_dptReq_0_bits_mul_isa_rem; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_mul_isa_remu <= io_dptReq_0_bits_mul_isa_remu; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_mul_isa_mulw <= io_dptReq_0_bits_mul_isa_mulw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_mul_isa_divw <= io_dptReq_0_bits_mul_isa_divw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_mul_isa_divuw <= io_dptReq_0_bits_mul_isa_divuw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_mul_isa_remw <= io_dptReq_0_bits_mul_isa_remw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_mul_isa_remuw <= io_dptReq_0_bits_mul_isa_remuw; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_param_is_rvc <= io_dptReq_0_bits_param_is_rvc; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_param_pc <= io_dptReq_0_bits_param_pc; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_param_imm <= io_dptReq_0_bits_param_imm; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_param_raw_rs1 <= io_dptReq_0_bits_param_raw_rs1; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_phy_rs1 <= io_dptReq_0_bits_phy_rs1; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_phy_rs2 <= io_dptReq_0_bits_phy_rs2; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_phy_rs3 <= io_dptReq_0_bits_phy_rs3; // @[Issue.scala 90:28]
        end
      end
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (2'h3 == entrySel_0) begin // @[Issue.scala 90:28]
          bufInfo_3_phy_rd0 <= io_dptReq_0_bits_phy_rd0; // @[Issue.scala 90:28]
        end
      end
    end
    if (io_irgRsp_1_valid) begin // @[Issue.scala 486:33]
      isOpReady_0_0 <= _GEN_3414;
    end else if (io_irgRsp_0_valid) begin // @[Issue.scala 486:33]
      isOpReady_0_0 <= _GEN_3382;
    end else if (_T) begin // @[Issue.scala 120:31]
      if (io_dptReq_0_bits_phy_rs1 == 6'h21) begin // @[Issue.scala 121:58]
        isOpReady_0_0 <= _GEN_2400;
      end else begin
        isOpReady_0_0 <= _GEN_2408;
      end
    end
    if (io_irgRsp_1_valid) begin // @[Issue.scala 486:33]
      isOpReady_0_1 <= _GEN_3416;
    end else if (io_irgRsp_0_valid) begin // @[Issue.scala 486:33]
      isOpReady_0_1 <= _GEN_3384;
    end else if (_T) begin // @[Issue.scala 120:31]
      if (io_dptReq_0_bits_phy_rs2 == 6'h21) begin // @[Issue.scala 127:58]
        isOpReady_0_1 <= _GEN_2420;
      end else begin
        isOpReady_0_1 <= _GEN_2428;
      end
    end
    if (io_irgRsp_1_valid) begin // @[Issue.scala 486:33]
      isOpReady_1_0 <= _GEN_3418;
    end else if (io_irgRsp_0_valid) begin // @[Issue.scala 486:33]
      isOpReady_1_0 <= _GEN_3386;
    end else if (_T) begin // @[Issue.scala 120:31]
      if (io_dptReq_0_bits_phy_rs1 == 6'h21) begin // @[Issue.scala 121:58]
        isOpReady_1_0 <= _GEN_2401;
      end else begin
        isOpReady_1_0 <= _GEN_2409;
      end
    end
    if (io_irgRsp_1_valid) begin // @[Issue.scala 486:33]
      isOpReady_1_1 <= _GEN_3420;
    end else if (io_irgRsp_0_valid) begin // @[Issue.scala 486:33]
      isOpReady_1_1 <= _GEN_3388;
    end else if (_T) begin // @[Issue.scala 120:31]
      if (io_dptReq_0_bits_phy_rs2 == 6'h21) begin // @[Issue.scala 127:58]
        isOpReady_1_1 <= _GEN_2421;
      end else begin
        isOpReady_1_1 <= _GEN_2429;
      end
    end
    if (io_irgRsp_1_valid) begin // @[Issue.scala 486:33]
      isOpReady_2_0 <= _GEN_3422;
    end else if (io_irgRsp_0_valid) begin // @[Issue.scala 486:33]
      isOpReady_2_0 <= _GEN_3390;
    end else if (_T) begin // @[Issue.scala 120:31]
      if (io_dptReq_0_bits_phy_rs1 == 6'h21) begin // @[Issue.scala 121:58]
        isOpReady_2_0 <= _GEN_2402;
      end else begin
        isOpReady_2_0 <= _GEN_2410;
      end
    end
    if (io_irgRsp_1_valid) begin // @[Issue.scala 486:33]
      isOpReady_2_1 <= _GEN_3424;
    end else if (io_irgRsp_0_valid) begin // @[Issue.scala 486:33]
      isOpReady_2_1 <= _GEN_3392;
    end else if (_T) begin // @[Issue.scala 120:31]
      if (io_dptReq_0_bits_phy_rs2 == 6'h21) begin // @[Issue.scala 127:58]
        isOpReady_2_1 <= _GEN_2422;
      end else begin
        isOpReady_2_1 <= _GEN_2430;
      end
    end
    if (io_irgRsp_1_valid) begin // @[Issue.scala 486:33]
      isOpReady_3_0 <= _GEN_3426;
    end else if (io_irgRsp_0_valid) begin // @[Issue.scala 486:33]
      isOpReady_3_0 <= _GEN_3394;
    end else if (_T) begin // @[Issue.scala 120:31]
      if (io_dptReq_0_bits_phy_rs1 == 6'h21) begin // @[Issue.scala 121:58]
        isOpReady_3_0 <= _GEN_2403;
      end else begin
        isOpReady_3_0 <= _GEN_2411;
      end
    end
    if (io_irgRsp_1_valid) begin // @[Issue.scala 486:33]
      isOpReady_3_1 <= _GEN_3428;
    end else if (io_irgRsp_0_valid) begin // @[Issue.scala 486:33]
      isOpReady_3_1 <= _GEN_3396;
    end else if (_T) begin // @[Issue.scala 120:31]
      if (io_dptReq_0_bits_phy_rs2 == 6'h21) begin // @[Issue.scala 127:58]
        isOpReady_3_1 <= _GEN_2423;
      end else begin
        isOpReady_3_1 <= _GEN_2431;
      end
    end
    if (io_irgRsp_1_valid) begin // @[Issue.scala 486:33]
      if (bufValid_0 & bufReqNum_0_0 == io_irgRsp_1_bits_phy) begin // @[Issue.scala 489:98]
        bufOperator_0_0 <= {{1'd0}, io_irgRsp_1_bits_op}; // @[Issue.scala 492:32]
      end else begin
        bufOperator_0_0 <= _GEN_3399;
      end
    end else begin
      bufOperator_0_0 <= _GEN_3399;
    end
    if (io_irgRsp_1_valid) begin // @[Issue.scala 486:33]
      if (bufValid_0 & bufReqNum_0_1 == io_irgRsp_1_bits_phy) begin // @[Issue.scala 489:98]
        bufOperator_0_1 <= {{1'd0}, io_irgRsp_1_bits_op}; // @[Issue.scala 492:32]
      end else begin
        bufOperator_0_1 <= _GEN_3401;
      end
    end else begin
      bufOperator_0_1 <= _GEN_3401;
    end
    if (io_irgRsp_1_valid) begin // @[Issue.scala 486:33]
      if (bufValid_1 & bufReqNum_1_0 == io_irgRsp_1_bits_phy) begin // @[Issue.scala 489:98]
        bufOperator_1_0 <= {{1'd0}, io_irgRsp_1_bits_op}; // @[Issue.scala 492:32]
      end else begin
        bufOperator_1_0 <= _GEN_3403;
      end
    end else begin
      bufOperator_1_0 <= _GEN_3403;
    end
    if (io_irgRsp_1_valid) begin // @[Issue.scala 486:33]
      if (bufValid_1 & bufReqNum_1_1 == io_irgRsp_1_bits_phy) begin // @[Issue.scala 489:98]
        bufOperator_1_1 <= {{1'd0}, io_irgRsp_1_bits_op}; // @[Issue.scala 492:32]
      end else begin
        bufOperator_1_1 <= _GEN_3405;
      end
    end else begin
      bufOperator_1_1 <= _GEN_3405;
    end
    if (io_irgRsp_1_valid) begin // @[Issue.scala 486:33]
      if (bufValid_2 & bufReqNum_2_0 == io_irgRsp_1_bits_phy) begin // @[Issue.scala 489:98]
        bufOperator_2_0 <= {{1'd0}, io_irgRsp_1_bits_op}; // @[Issue.scala 492:32]
      end else begin
        bufOperator_2_0 <= _GEN_3407;
      end
    end else begin
      bufOperator_2_0 <= _GEN_3407;
    end
    if (io_irgRsp_1_valid) begin // @[Issue.scala 486:33]
      if (bufValid_2 & bufReqNum_2_1 == io_irgRsp_1_bits_phy) begin // @[Issue.scala 489:98]
        bufOperator_2_1 <= {{1'd0}, io_irgRsp_1_bits_op}; // @[Issue.scala 492:32]
      end else begin
        bufOperator_2_1 <= _GEN_3409;
      end
    end else begin
      bufOperator_2_1 <= _GEN_3409;
    end
    if (io_irgRsp_1_valid) begin // @[Issue.scala 486:33]
      if (bufValid_3 & bufReqNum_3_0 == io_irgRsp_1_bits_phy) begin // @[Issue.scala 489:98]
        bufOperator_3_0 <= {{1'd0}, io_irgRsp_1_bits_op}; // @[Issue.scala 492:32]
      end else begin
        bufOperator_3_0 <= _GEN_3411;
      end
    end else begin
      bufOperator_3_0 <= _GEN_3411;
    end
    if (io_irgRsp_1_valid) begin // @[Issue.scala 486:33]
      if (bufValid_3 & bufReqNum_3_1 == io_irgRsp_1_bits_phy) begin // @[Issue.scala 489:98]
        bufOperator_3_1 <= {{1'd0}, io_irgRsp_1_bits_op}; // @[Issue.scala 492:32]
      end else begin
        bufOperator_3_1 <= _GEN_3413;
      end
    end else begin
      bufOperator_3_1 <= _GEN_3413;
    end
    if (_T) begin // @[Issue.scala 170:31]
      if (2'h0 == entrySel_0) begin // @[Issue.scala 172:44]
        ageMatrixW_0_0 <= 1'h0; // @[Issue.scala 172:44]
      end else begin
        ageMatrixW_0_0 <= _GEN_2484;
      end
    end
    if (_T) begin // @[Issue.scala 170:31]
      if (2'h1 == entrySel_0) begin // @[Issue.scala 172:44]
        ageMatrixW_0_1 <= 1'h0; // @[Issue.scala 172:44]
      end else begin
        ageMatrixW_0_1 <= _GEN_2488;
      end
    end
    if (_T) begin // @[Issue.scala 170:31]
      if (2'h2 == entrySel_0) begin // @[Issue.scala 172:44]
        ageMatrixW_0_2 <= 1'h0; // @[Issue.scala 172:44]
      end else begin
        ageMatrixW_0_2 <= _GEN_2492;
      end
    end
    if (_T) begin // @[Issue.scala 170:31]
      if (2'h3 == entrySel_0) begin // @[Issue.scala 172:44]
        ageMatrixW_0_3 <= 1'h0; // @[Issue.scala 172:44]
      end else begin
        ageMatrixW_0_3 <= _GEN_2496;
      end
    end
    if (_T) begin // @[Issue.scala 170:31]
      if (2'h1 == entrySel_0) begin // @[Issue.scala 172:44]
        ageMatrixW_1_1 <= 1'h0; // @[Issue.scala 172:44]
      end else begin
        ageMatrixW_1_1 <= _GEN_2489;
      end
    end
    if (_T) begin // @[Issue.scala 170:31]
      if (2'h2 == entrySel_0) begin // @[Issue.scala 172:44]
        ageMatrixW_1_2 <= 1'h0; // @[Issue.scala 172:44]
      end else begin
        ageMatrixW_1_2 <= _GEN_2493;
      end
    end
    if (_T) begin // @[Issue.scala 170:31]
      if (2'h3 == entrySel_0) begin // @[Issue.scala 172:44]
        ageMatrixW_1_3 <= 1'h0; // @[Issue.scala 172:44]
      end else begin
        ageMatrixW_1_3 <= _GEN_2497;
      end
    end
    if (_T) begin // @[Issue.scala 170:31]
      if (2'h2 == entrySel_0) begin // @[Issue.scala 172:44]
        ageMatrixW_2_2 <= 1'h0; // @[Issue.scala 172:44]
      end else begin
        ageMatrixW_2_2 <= _GEN_2494;
      end
    end
    if (_T) begin // @[Issue.scala 170:31]
      if (2'h3 == entrySel_0) begin // @[Issue.scala 172:44]
        ageMatrixW_2_3 <= 1'h0; // @[Issue.scala 172:44]
      end else begin
        ageMatrixW_2_3 <= _GEN_2498;
      end
    end
    if (_T) begin // @[Issue.scala 170:31]
      if (2'h3 == entrySel_0) begin // @[Issue.scala 172:44]
        ageMatrixW_3_3 <= 1'h0; // @[Issue.scala 172:44]
      end else begin
        ageMatrixW_3_3 <= _GEN_2499;
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_121) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:276 assert(\n"); // @[Issue.scala 276:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_121 & ~reset) begin
          $fatal; // @[Issue.scala 276:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_123 & ~_T_239) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:281 assert(\n"); // @[Issue.scala 281:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_239 & _T_123) begin
          $fatal; // @[Issue.scala 281:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_357) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:276 assert(\n"); // @[Issue.scala 276:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_357 & ~reset) begin
          $fatal; // @[Issue.scala 276:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_123 & ~_T_475) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:281 assert(\n"); // @[Issue.scala 281:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_475 & _T_123) begin
          $fatal; // @[Issue.scala 281:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_123 & ~_T_593) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:412 assert(\n"); // @[Issue.scala 412:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_593 & _T_123) begin
          $fatal; // @[Issue.scala 412:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_123 & ~_T_711) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:417 assert(\n"); // @[Issue.scala 417:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_711 & _T_123) begin
          $fatal; // @[Issue.scala 417:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_123 & ~_T_829) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:422 assert(\n"); // @[Issue.scala 422:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_829 & _T_123) begin
          $fatal; // @[Issue.scala 422:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_123 & ~_T_947) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:412 assert(\n"); // @[Issue.scala 412:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_947 & _T_123) begin
          $fatal; // @[Issue.scala 412:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_123 & ~_T_1065) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:417 assert(\n"); // @[Issue.scala 417:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1065 & _T_123) begin
          $fatal; // @[Issue.scala 417:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_123 & ~_T_1183) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:422 assert(\n"); // @[Issue.scala 422:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1183 & _T_123) begin
          $fatal; // @[Issue.scala 422:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_123 & ~_T_1438) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:627 assert(\n"); // @[Issue.scala 627:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1438 & _T_123) begin
          $fatal; // @[Issue.scala 627:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1444 & _T_123 & _maskCondAluIss_0_0_T_34) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Issue.scala:642 assert( postIsOpReady(i)(0) & postIsOpReady(i)(1) )\n"); // @[Issue.scala 642:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_0_T_34 & (_T_1444 & _T_123)) begin
          $fatal; // @[Issue.scala 642:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_489 & _entrySel_T) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:643 assert( bufValid(i) )\n"); // @[Issue.scala 643:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_entrySel_T & _GEN_489) begin
          $fatal; // @[Issue.scala 643:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_489 & _maskCondAluIss_0_0_T_31) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:644 assert( bufInfo(i).alu_isa.is_alu )\n"); // @[Issue.scala 644:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_0_T_31 & _GEN_489) begin
          $fatal; // @[Issue.scala 644:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1487 & _T_123 & _maskCondAluIss_0_1_T_34) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Issue.scala:642 assert( postIsOpReady(i)(0) & postIsOpReady(i)(1) )\n"); // @[Issue.scala 642:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_1_T_34 & (_T_1487 & _T_123)) begin
          $fatal; // @[Issue.scala 642:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_498 & _entrySel_T_1) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:643 assert( bufValid(i) )\n"); // @[Issue.scala 643:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_entrySel_T_1 & _GEN_498) begin
          $fatal; // @[Issue.scala 643:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_498 & _maskCondAluIss_0_1_T_31) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:644 assert( bufInfo(i).alu_isa.is_alu )\n"); // @[Issue.scala 644:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_1_T_31 & _GEN_498) begin
          $fatal; // @[Issue.scala 644:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1530 & _T_123 & _maskCondAluIss_0_2_T_34) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Issue.scala:642 assert( postIsOpReady(i)(0) & postIsOpReady(i)(1) )\n"); // @[Issue.scala 642:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_2_T_34 & (_T_1530 & _T_123)) begin
          $fatal; // @[Issue.scala 642:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_507 & _entrySel_T_2) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:643 assert( bufValid(i) )\n"); // @[Issue.scala 643:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_entrySel_T_2 & _GEN_507) begin
          $fatal; // @[Issue.scala 643:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_507 & _maskCondAluIss_0_2_T_31) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:644 assert( bufInfo(i).alu_isa.is_alu )\n"); // @[Issue.scala 644:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_2_T_31 & _GEN_507) begin
          $fatal; // @[Issue.scala 644:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1573 & _T_123 & _maskCondAluIss_0_3_T_34) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Issue.scala:642 assert( postIsOpReady(i)(0) & postIsOpReady(i)(1) )\n"); // @[Issue.scala 642:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_3_T_34 & (_T_1573 & _T_123)) begin
          $fatal; // @[Issue.scala 642:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_516 & _io_dptReq_0_ready_T_3) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:643 assert( bufValid(i) )\n"); // @[Issue.scala 643:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_io_dptReq_0_ready_T_3 & _GEN_516) begin
          $fatal; // @[Issue.scala 643:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_516 & _maskCondAluIss_0_3_T_31) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:644 assert( bufInfo(i).alu_isa.is_alu )\n"); // @[Issue.scala 644:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_3_T_31 & _GEN_516) begin
          $fatal; // @[Issue.scala 644:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_123 & ~_T_1689) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:692 assert(\n"); // @[Issue.scala 692:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1689 & _T_123) begin
          $fatal; // @[Issue.scala 692:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1695 & _T_123 & _maskCondAluIss_0_0_T_34) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Issue.scala:707 assert( postIsOpReady(i)(0) & postIsOpReady(i)(1) )\n"); // @[Issue.scala 707:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_0_T_34 & (_T_1695 & _T_123)) begin
          $fatal; // @[Issue.scala 707:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_526 & _entrySel_T) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:708 assert( bufValid(i) )\n"); // @[Issue.scala 708:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_entrySel_T & _GEN_526) begin
          $fatal; // @[Issue.scala 708:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_526 & _maskCondMulIss_0_0_T_13) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:709 assert( bufInfo(i).mul_isa.is_mulDiv )\n"); // @[Issue.scala 709:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondMulIss_0_0_T_13 & _GEN_526) begin
          $fatal; // @[Issue.scala 709:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1720 & _T_123 & _maskCondAluIss_0_1_T_34) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Issue.scala:707 assert( postIsOpReady(i)(0) & postIsOpReady(i)(1) )\n"); // @[Issue.scala 707:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_1_T_34 & (_T_1720 & _T_123)) begin
          $fatal; // @[Issue.scala 707:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_535 & _entrySel_T_1) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:708 assert( bufValid(i) )\n"); // @[Issue.scala 708:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_entrySel_T_1 & _GEN_535) begin
          $fatal; // @[Issue.scala 708:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_535 & _maskCondMulIss_0_1_T_13) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:709 assert( bufInfo(i).mul_isa.is_mulDiv )\n"); // @[Issue.scala 709:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondMulIss_0_1_T_13 & _GEN_535) begin
          $fatal; // @[Issue.scala 709:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1745 & _T_123 & _maskCondAluIss_0_2_T_34) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Issue.scala:707 assert( postIsOpReady(i)(0) & postIsOpReady(i)(1) )\n"); // @[Issue.scala 707:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_2_T_34 & (_T_1745 & _T_123)) begin
          $fatal; // @[Issue.scala 707:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_544 & _entrySel_T_2) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:708 assert( bufValid(i) )\n"); // @[Issue.scala 708:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_entrySel_T_2 & _GEN_544) begin
          $fatal; // @[Issue.scala 708:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_544 & _maskCondMulIss_0_2_T_13) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:709 assert( bufInfo(i).mul_isa.is_mulDiv )\n"); // @[Issue.scala 709:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondMulIss_0_2_T_13 & _GEN_544) begin
          $fatal; // @[Issue.scala 709:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1770 & _T_123 & _maskCondAluIss_0_3_T_34) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Issue.scala:707 assert( postIsOpReady(i)(0) & postIsOpReady(i)(1) )\n"); // @[Issue.scala 707:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_3_T_34 & (_T_1770 & _T_123)) begin
          $fatal; // @[Issue.scala 707:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_553 & _io_dptReq_0_ready_T_3) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:708 assert( bufValid(i) )\n"); // @[Issue.scala 708:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_io_dptReq_0_ready_T_3 & _GEN_553) begin
          $fatal; // @[Issue.scala 708:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_553 & _maskCondMulIss_0_3_T_13) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:709 assert( bufInfo(i).mul_isa.is_mulDiv )\n"); // @[Issue.scala 709:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondMulIss_0_3_T_13 & _GEN_553) begin
          $fatal; // @[Issue.scala 709:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_123 & ~_T_1868) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:757 assert(\n"); // @[Issue.scala 757:9]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1868 & _T_123) begin
          $fatal; // @[Issue.scala 757:9]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1874 & _T_123 & _maskCondAluIss_0_0_T_34) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Issue.scala:773 assert( postIsOpReady(i)(0) & postIsOpReady(i)(1) )\n"); // @[Issue.scala 773:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_0_T_34 & (_T_1874 & _T_123)) begin
          $fatal; // @[Issue.scala 773:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_563 & _entrySel_T) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:774 assert( bufValid(i) )\n"); // @[Issue.scala 774:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_entrySel_T & _GEN_563) begin
          $fatal; // @[Issue.scala 774:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_563 & _maskCondBruIss_0_T_8) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:775 assert( bufInfo(i).bru_isa.is_bru )\n"); // @[Issue.scala 775:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondBruIss_0_T_8 & _GEN_563) begin
          $fatal; // @[Issue.scala 775:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1894 & _T_123 & _maskCondAluIss_0_1_T_34) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Issue.scala:773 assert( postIsOpReady(i)(0) & postIsOpReady(i)(1) )\n"); // @[Issue.scala 773:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_1_T_34 & (_T_1894 & _T_123)) begin
          $fatal; // @[Issue.scala 773:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_572 & _entrySel_T_1) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:774 assert( bufValid(i) )\n"); // @[Issue.scala 774:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_entrySel_T_1 & _GEN_572) begin
          $fatal; // @[Issue.scala 774:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_572 & _maskCondBruIss_1_T_8) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:775 assert( bufInfo(i).bru_isa.is_bru )\n"); // @[Issue.scala 775:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondBruIss_1_T_8 & _GEN_572) begin
          $fatal; // @[Issue.scala 775:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1914 & _T_123 & _maskCondAluIss_0_2_T_34) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Issue.scala:773 assert( postIsOpReady(i)(0) & postIsOpReady(i)(1) )\n"); // @[Issue.scala 773:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_2_T_34 & (_T_1914 & _T_123)) begin
          $fatal; // @[Issue.scala 773:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_581 & _entrySel_T_2) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:774 assert( bufValid(i) )\n"); // @[Issue.scala 774:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_entrySel_T_2 & _GEN_581) begin
          $fatal; // @[Issue.scala 774:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_581 & _maskCondBruIss_2_T_8) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:775 assert( bufInfo(i).bru_isa.is_bru )\n"); // @[Issue.scala 775:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondBruIss_2_T_8 & _GEN_581) begin
          $fatal; // @[Issue.scala 775:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1934 & _T_123 & _maskCondAluIss_0_3_T_34) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Issue.scala:773 assert( postIsOpReady(i)(0) & postIsOpReady(i)(1) )\n"); // @[Issue.scala 773:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_3_T_34 & (_T_1934 & _T_123)) begin
          $fatal; // @[Issue.scala 773:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_590 & _io_dptReq_0_ready_T_3) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:774 assert( bufValid(i) )\n"); // @[Issue.scala 774:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_io_dptReq_0_ready_T_3 & _GEN_590) begin
          $fatal; // @[Issue.scala 774:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_590 & _maskCondBruIss_3_T_8) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:775 assert( bufInfo(i).bru_isa.is_bru )\n"); // @[Issue.scala 775:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondBruIss_3_T_8 & _GEN_590) begin
          $fatal; // @[Issue.scala 775:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_123 & ~_T_2027) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:823 assert(\n"); // @[Issue.scala 823:9]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_2027 & _T_123) begin
          $fatal; // @[Issue.scala 823:9]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_2033 & _T_123 & _maskCondAluIss_0_0_T_34) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Issue.scala:839 assert( postIsOpReady(i)(0) & postIsOpReady(i)(1) )\n"); // @[Issue.scala 839:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_0_T_34 & (_T_2033 & _T_123)) begin
          $fatal; // @[Issue.scala 839:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_600 & _entrySel_T) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:840 assert( bufValid(i) )\n"); // @[Issue.scala 840:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_entrySel_T & _GEN_600) begin
          $fatal; // @[Issue.scala 840:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_600 & _maskCondCsrIss_0_T_6) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:841 assert( bufInfo(i).csr_isa.is_csr )\n"); // @[Issue.scala 841:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondCsrIss_0_T_6 & _GEN_600) begin
          $fatal; // @[Issue.scala 841:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_2051 & _T_123 & _maskCondAluIss_0_1_T_34) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Issue.scala:839 assert( postIsOpReady(i)(0) & postIsOpReady(i)(1) )\n"); // @[Issue.scala 839:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_1_T_34 & (_T_2051 & _T_123)) begin
          $fatal; // @[Issue.scala 839:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_609 & _entrySel_T_1) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:840 assert( bufValid(i) )\n"); // @[Issue.scala 840:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_entrySel_T_1 & _GEN_609) begin
          $fatal; // @[Issue.scala 840:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_609 & _maskCondCsrIss_1_T_6) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:841 assert( bufInfo(i).csr_isa.is_csr )\n"); // @[Issue.scala 841:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondCsrIss_1_T_6 & _GEN_609) begin
          $fatal; // @[Issue.scala 841:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_2069 & _T_123 & _maskCondAluIss_0_2_T_34) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Issue.scala:839 assert( postIsOpReady(i)(0) & postIsOpReady(i)(1) )\n"); // @[Issue.scala 839:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_2_T_34 & (_T_2069 & _T_123)) begin
          $fatal; // @[Issue.scala 839:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_618 & _entrySel_T_2) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:840 assert( bufValid(i) )\n"); // @[Issue.scala 840:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_entrySel_T_2 & _GEN_618) begin
          $fatal; // @[Issue.scala 840:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_618 & _maskCondCsrIss_2_T_6) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:841 assert( bufInfo(i).csr_isa.is_csr )\n"); // @[Issue.scala 841:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondCsrIss_2_T_6 & _GEN_618) begin
          $fatal; // @[Issue.scala 841:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_2087 & _T_123 & _maskCondAluIss_0_3_T_34) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Issue.scala:839 assert( postIsOpReady(i)(0) & postIsOpReady(i)(1) )\n"); // @[Issue.scala 839:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_3_T_34 & (_T_2087 & _T_123)) begin
          $fatal; // @[Issue.scala 839:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_627 & _io_dptReq_0_ready_T_3) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:840 assert( bufValid(i) )\n"); // @[Issue.scala 840:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_io_dptReq_0_ready_T_3 & _GEN_627) begin
          $fatal; // @[Issue.scala 840:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_627 & _maskCondCsrIss_3_T_6) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:841 assert( bufInfo(i).csr_isa.is_csr )\n"); // @[Issue.scala 841:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondCsrIss_3_T_6 & _GEN_627) begin
          $fatal; // @[Issue.scala 841:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_123 & ~_T_2178) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:886 assert(\n"); // @[Issue.scala 886:9]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_2178 & _T_123) begin
          $fatal; // @[Issue.scala 886:9]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_2184 & _T_123 & _maskCondAluIss_0_0_T_34) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Issue.scala:902 assert( postIsOpReady(i)(0) & postIsOpReady(i)(1) )\n"); // @[Issue.scala 902:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_0_T_34 & (_T_2184 & _T_123)) begin
          $fatal; // @[Issue.scala 902:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_637 & _entrySel_T) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:903 assert( bufValid(i) )\n"); // @[Issue.scala 903:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_entrySel_T & _GEN_637) begin
          $fatal; // @[Issue.scala 903:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_637 & _maskCondLsuIss_0_T_42) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:904 assert( bufInfo(i).lsu_isa.is_lsu )\n"); // @[Issue.scala 904:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondLsuIss_0_T_42 & _GEN_637) begin
          $fatal; // @[Issue.scala 904:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_2238 & _T_123 & _maskCondAluIss_0_1_T_34) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Issue.scala:902 assert( postIsOpReady(i)(0) & postIsOpReady(i)(1) )\n"); // @[Issue.scala 902:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_1_T_34 & (_T_2238 & _T_123)) begin
          $fatal; // @[Issue.scala 902:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_646 & _entrySel_T_1) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:903 assert( bufValid(i) )\n"); // @[Issue.scala 903:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_entrySel_T_1 & _GEN_646) begin
          $fatal; // @[Issue.scala 903:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_646 & _maskCondLsuIss_1_T_42) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:904 assert( bufInfo(i).lsu_isa.is_lsu )\n"); // @[Issue.scala 904:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondLsuIss_1_T_42 & _GEN_646) begin
          $fatal; // @[Issue.scala 904:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_2292 & _T_123 & _maskCondAluIss_0_2_T_34) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Issue.scala:902 assert( postIsOpReady(i)(0) & postIsOpReady(i)(1) )\n"); // @[Issue.scala 902:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_2_T_34 & (_T_2292 & _T_123)) begin
          $fatal; // @[Issue.scala 902:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_655 & _entrySel_T_2) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:903 assert( bufValid(i) )\n"); // @[Issue.scala 903:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_entrySel_T_2 & _GEN_655) begin
          $fatal; // @[Issue.scala 903:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_655 & _maskCondLsuIss_2_T_42) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:904 assert( bufInfo(i).lsu_isa.is_lsu )\n"); // @[Issue.scala 904:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondLsuIss_2_T_42 & _GEN_655) begin
          $fatal; // @[Issue.scala 904:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_2346 & _T_123 & _maskCondAluIss_0_3_T_34) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Issue.scala:902 assert( postIsOpReady(i)(0) & postIsOpReady(i)(1) )\n"); // @[Issue.scala 902:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondAluIss_0_3_T_34 & (_T_2346 & _T_123)) begin
          $fatal; // @[Issue.scala 902:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_664 & _io_dptReq_0_ready_T_3) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:903 assert( bufValid(i) )\n"); // @[Issue.scala 903:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_io_dptReq_0_ready_T_3 & _GEN_664) begin
          $fatal; // @[Issue.scala 903:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_664 & _maskCondLsuIss_3_T_42) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Issue.scala:904 assert( bufInfo(i).lsu_isa.is_lsu )\n"); // @[Issue.scala 904:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_maskCondLsuIss_3_T_42 & _GEN_664) begin
          $fatal; // @[Issue.scala 904:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  bufValid_0 = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  bufValid_1 = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  bufValid_2 = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  bufValid_3 = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  bufInfo_0_alu_isa_lui = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  bufInfo_0_alu_isa_auipc = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  bufInfo_0_alu_isa_addi = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  bufInfo_0_alu_isa_addiw = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  bufInfo_0_alu_isa_slti = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  bufInfo_0_alu_isa_sltiu = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  bufInfo_0_alu_isa_xori = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  bufInfo_0_alu_isa_ori = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  bufInfo_0_alu_isa_andi = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  bufInfo_0_alu_isa_slli = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  bufInfo_0_alu_isa_slliw = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  bufInfo_0_alu_isa_srli = _RAND_15[0:0];
  _RAND_16 = {1{`RANDOM}};
  bufInfo_0_alu_isa_srliw = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  bufInfo_0_alu_isa_srai = _RAND_17[0:0];
  _RAND_18 = {1{`RANDOM}};
  bufInfo_0_alu_isa_sraiw = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  bufInfo_0_alu_isa_add = _RAND_19[0:0];
  _RAND_20 = {1{`RANDOM}};
  bufInfo_0_alu_isa_addw = _RAND_20[0:0];
  _RAND_21 = {1{`RANDOM}};
  bufInfo_0_alu_isa_sub = _RAND_21[0:0];
  _RAND_22 = {1{`RANDOM}};
  bufInfo_0_alu_isa_subw = _RAND_22[0:0];
  _RAND_23 = {1{`RANDOM}};
  bufInfo_0_alu_isa_sll = _RAND_23[0:0];
  _RAND_24 = {1{`RANDOM}};
  bufInfo_0_alu_isa_sllw = _RAND_24[0:0];
  _RAND_25 = {1{`RANDOM}};
  bufInfo_0_alu_isa_slt = _RAND_25[0:0];
  _RAND_26 = {1{`RANDOM}};
  bufInfo_0_alu_isa_sltu = _RAND_26[0:0];
  _RAND_27 = {1{`RANDOM}};
  bufInfo_0_alu_isa_xor = _RAND_27[0:0];
  _RAND_28 = {1{`RANDOM}};
  bufInfo_0_alu_isa_srl = _RAND_28[0:0];
  _RAND_29 = {1{`RANDOM}};
  bufInfo_0_alu_isa_srlw = _RAND_29[0:0];
  _RAND_30 = {1{`RANDOM}};
  bufInfo_0_alu_isa_sra = _RAND_30[0:0];
  _RAND_31 = {1{`RANDOM}};
  bufInfo_0_alu_isa_sraw = _RAND_31[0:0];
  _RAND_32 = {1{`RANDOM}};
  bufInfo_0_alu_isa_or = _RAND_32[0:0];
  _RAND_33 = {1{`RANDOM}};
  bufInfo_0_alu_isa_and = _RAND_33[0:0];
  _RAND_34 = {1{`RANDOM}};
  bufInfo_0_alu_isa_wfi = _RAND_34[0:0];
  _RAND_35 = {1{`RANDOM}};
  bufInfo_0_bru_isa_jal = _RAND_35[0:0];
  _RAND_36 = {1{`RANDOM}};
  bufInfo_0_bru_isa_jalr = _RAND_36[0:0];
  _RAND_37 = {1{`RANDOM}};
  bufInfo_0_bru_isa_beq = _RAND_37[0:0];
  _RAND_38 = {1{`RANDOM}};
  bufInfo_0_bru_isa_bne = _RAND_38[0:0];
  _RAND_39 = {1{`RANDOM}};
  bufInfo_0_bru_isa_blt = _RAND_39[0:0];
  _RAND_40 = {1{`RANDOM}};
  bufInfo_0_bru_isa_bge = _RAND_40[0:0];
  _RAND_41 = {1{`RANDOM}};
  bufInfo_0_bru_isa_bltu = _RAND_41[0:0];
  _RAND_42 = {1{`RANDOM}};
  bufInfo_0_bru_isa_bgeu = _RAND_42[0:0];
  _RAND_43 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_lb = _RAND_43[0:0];
  _RAND_44 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_lh = _RAND_44[0:0];
  _RAND_45 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_lw = _RAND_45[0:0];
  _RAND_46 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_ld = _RAND_46[0:0];
  _RAND_47 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_lbu = _RAND_47[0:0];
  _RAND_48 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_lhu = _RAND_48[0:0];
  _RAND_49 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_lwu = _RAND_49[0:0];
  _RAND_50 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_sb = _RAND_50[0:0];
  _RAND_51 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_sh = _RAND_51[0:0];
  _RAND_52 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_sw = _RAND_52[0:0];
  _RAND_53 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_sd = _RAND_53[0:0];
  _RAND_54 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_fence = _RAND_54[0:0];
  _RAND_55 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_fence_i = _RAND_55[0:0];
  _RAND_56 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_sfence_vma = _RAND_56[0:0];
  _RAND_57 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_lr_w = _RAND_57[0:0];
  _RAND_58 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_sc_w = _RAND_58[0:0];
  _RAND_59 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amoswap_w = _RAND_59[0:0];
  _RAND_60 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amoadd_w = _RAND_60[0:0];
  _RAND_61 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amoxor_w = _RAND_61[0:0];
  _RAND_62 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amoand_w = _RAND_62[0:0];
  _RAND_63 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amoor_w = _RAND_63[0:0];
  _RAND_64 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amomin_w = _RAND_64[0:0];
  _RAND_65 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amomax_w = _RAND_65[0:0];
  _RAND_66 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amominu_w = _RAND_66[0:0];
  _RAND_67 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amomaxu_w = _RAND_67[0:0];
  _RAND_68 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_lr_d = _RAND_68[0:0];
  _RAND_69 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_sc_d = _RAND_69[0:0];
  _RAND_70 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amoswap_d = _RAND_70[0:0];
  _RAND_71 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amoadd_d = _RAND_71[0:0];
  _RAND_72 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amoxor_d = _RAND_72[0:0];
  _RAND_73 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amoand_d = _RAND_73[0:0];
  _RAND_74 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amoor_d = _RAND_74[0:0];
  _RAND_75 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amomin_d = _RAND_75[0:0];
  _RAND_76 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amomax_d = _RAND_76[0:0];
  _RAND_77 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amominu_d = _RAND_77[0:0];
  _RAND_78 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amomaxu_d = _RAND_78[0:0];
  _RAND_79 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_flw = _RAND_79[0:0];
  _RAND_80 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_fsw = _RAND_80[0:0];
  _RAND_81 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_fld = _RAND_81[0:0];
  _RAND_82 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_fsd = _RAND_82[0:0];
  _RAND_83 = {1{`RANDOM}};
  bufInfo_0_csr_isa_rw = _RAND_83[0:0];
  _RAND_84 = {1{`RANDOM}};
  bufInfo_0_csr_isa_rs = _RAND_84[0:0];
  _RAND_85 = {1{`RANDOM}};
  bufInfo_0_csr_isa_rc = _RAND_85[0:0];
  _RAND_86 = {1{`RANDOM}};
  bufInfo_0_csr_isa_rwi = _RAND_86[0:0];
  _RAND_87 = {1{`RANDOM}};
  bufInfo_0_csr_isa_rsi = _RAND_87[0:0];
  _RAND_88 = {1{`RANDOM}};
  bufInfo_0_csr_isa_rci = _RAND_88[0:0];
  _RAND_89 = {1{`RANDOM}};
  bufInfo_0_mul_isa_mul = _RAND_89[0:0];
  _RAND_90 = {1{`RANDOM}};
  bufInfo_0_mul_isa_mulh = _RAND_90[0:0];
  _RAND_91 = {1{`RANDOM}};
  bufInfo_0_mul_isa_mulhsu = _RAND_91[0:0];
  _RAND_92 = {1{`RANDOM}};
  bufInfo_0_mul_isa_mulhu = _RAND_92[0:0];
  _RAND_93 = {1{`RANDOM}};
  bufInfo_0_mul_isa_div = _RAND_93[0:0];
  _RAND_94 = {1{`RANDOM}};
  bufInfo_0_mul_isa_divu = _RAND_94[0:0];
  _RAND_95 = {1{`RANDOM}};
  bufInfo_0_mul_isa_rem = _RAND_95[0:0];
  _RAND_96 = {1{`RANDOM}};
  bufInfo_0_mul_isa_remu = _RAND_96[0:0];
  _RAND_97 = {1{`RANDOM}};
  bufInfo_0_mul_isa_mulw = _RAND_97[0:0];
  _RAND_98 = {1{`RANDOM}};
  bufInfo_0_mul_isa_divw = _RAND_98[0:0];
  _RAND_99 = {1{`RANDOM}};
  bufInfo_0_mul_isa_divuw = _RAND_99[0:0];
  _RAND_100 = {1{`RANDOM}};
  bufInfo_0_mul_isa_remw = _RAND_100[0:0];
  _RAND_101 = {1{`RANDOM}};
  bufInfo_0_mul_isa_remuw = _RAND_101[0:0];
  _RAND_102 = {1{`RANDOM}};
  bufInfo_0_param_is_rvc = _RAND_102[0:0];
  _RAND_103 = {2{`RANDOM}};
  bufInfo_0_param_pc = _RAND_103[38:0];
  _RAND_104 = {2{`RANDOM}};
  bufInfo_0_param_imm = _RAND_104[63:0];
  _RAND_105 = {1{`RANDOM}};
  bufInfo_0_param_raw_rs1 = _RAND_105[4:0];
  _RAND_106 = {1{`RANDOM}};
  bufInfo_0_phy_rs1 = _RAND_106[5:0];
  _RAND_107 = {1{`RANDOM}};
  bufInfo_0_phy_rs2 = _RAND_107[5:0];
  _RAND_108 = {1{`RANDOM}};
  bufInfo_0_phy_rs3 = _RAND_108[5:0];
  _RAND_109 = {1{`RANDOM}};
  bufInfo_0_phy_rd0 = _RAND_109[5:0];
  _RAND_110 = {1{`RANDOM}};
  bufInfo_1_alu_isa_lui = _RAND_110[0:0];
  _RAND_111 = {1{`RANDOM}};
  bufInfo_1_alu_isa_auipc = _RAND_111[0:0];
  _RAND_112 = {1{`RANDOM}};
  bufInfo_1_alu_isa_addi = _RAND_112[0:0];
  _RAND_113 = {1{`RANDOM}};
  bufInfo_1_alu_isa_addiw = _RAND_113[0:0];
  _RAND_114 = {1{`RANDOM}};
  bufInfo_1_alu_isa_slti = _RAND_114[0:0];
  _RAND_115 = {1{`RANDOM}};
  bufInfo_1_alu_isa_sltiu = _RAND_115[0:0];
  _RAND_116 = {1{`RANDOM}};
  bufInfo_1_alu_isa_xori = _RAND_116[0:0];
  _RAND_117 = {1{`RANDOM}};
  bufInfo_1_alu_isa_ori = _RAND_117[0:0];
  _RAND_118 = {1{`RANDOM}};
  bufInfo_1_alu_isa_andi = _RAND_118[0:0];
  _RAND_119 = {1{`RANDOM}};
  bufInfo_1_alu_isa_slli = _RAND_119[0:0];
  _RAND_120 = {1{`RANDOM}};
  bufInfo_1_alu_isa_slliw = _RAND_120[0:0];
  _RAND_121 = {1{`RANDOM}};
  bufInfo_1_alu_isa_srli = _RAND_121[0:0];
  _RAND_122 = {1{`RANDOM}};
  bufInfo_1_alu_isa_srliw = _RAND_122[0:0];
  _RAND_123 = {1{`RANDOM}};
  bufInfo_1_alu_isa_srai = _RAND_123[0:0];
  _RAND_124 = {1{`RANDOM}};
  bufInfo_1_alu_isa_sraiw = _RAND_124[0:0];
  _RAND_125 = {1{`RANDOM}};
  bufInfo_1_alu_isa_add = _RAND_125[0:0];
  _RAND_126 = {1{`RANDOM}};
  bufInfo_1_alu_isa_addw = _RAND_126[0:0];
  _RAND_127 = {1{`RANDOM}};
  bufInfo_1_alu_isa_sub = _RAND_127[0:0];
  _RAND_128 = {1{`RANDOM}};
  bufInfo_1_alu_isa_subw = _RAND_128[0:0];
  _RAND_129 = {1{`RANDOM}};
  bufInfo_1_alu_isa_sll = _RAND_129[0:0];
  _RAND_130 = {1{`RANDOM}};
  bufInfo_1_alu_isa_sllw = _RAND_130[0:0];
  _RAND_131 = {1{`RANDOM}};
  bufInfo_1_alu_isa_slt = _RAND_131[0:0];
  _RAND_132 = {1{`RANDOM}};
  bufInfo_1_alu_isa_sltu = _RAND_132[0:0];
  _RAND_133 = {1{`RANDOM}};
  bufInfo_1_alu_isa_xor = _RAND_133[0:0];
  _RAND_134 = {1{`RANDOM}};
  bufInfo_1_alu_isa_srl = _RAND_134[0:0];
  _RAND_135 = {1{`RANDOM}};
  bufInfo_1_alu_isa_srlw = _RAND_135[0:0];
  _RAND_136 = {1{`RANDOM}};
  bufInfo_1_alu_isa_sra = _RAND_136[0:0];
  _RAND_137 = {1{`RANDOM}};
  bufInfo_1_alu_isa_sraw = _RAND_137[0:0];
  _RAND_138 = {1{`RANDOM}};
  bufInfo_1_alu_isa_or = _RAND_138[0:0];
  _RAND_139 = {1{`RANDOM}};
  bufInfo_1_alu_isa_and = _RAND_139[0:0];
  _RAND_140 = {1{`RANDOM}};
  bufInfo_1_alu_isa_wfi = _RAND_140[0:0];
  _RAND_141 = {1{`RANDOM}};
  bufInfo_1_bru_isa_jal = _RAND_141[0:0];
  _RAND_142 = {1{`RANDOM}};
  bufInfo_1_bru_isa_jalr = _RAND_142[0:0];
  _RAND_143 = {1{`RANDOM}};
  bufInfo_1_bru_isa_beq = _RAND_143[0:0];
  _RAND_144 = {1{`RANDOM}};
  bufInfo_1_bru_isa_bne = _RAND_144[0:0];
  _RAND_145 = {1{`RANDOM}};
  bufInfo_1_bru_isa_blt = _RAND_145[0:0];
  _RAND_146 = {1{`RANDOM}};
  bufInfo_1_bru_isa_bge = _RAND_146[0:0];
  _RAND_147 = {1{`RANDOM}};
  bufInfo_1_bru_isa_bltu = _RAND_147[0:0];
  _RAND_148 = {1{`RANDOM}};
  bufInfo_1_bru_isa_bgeu = _RAND_148[0:0];
  _RAND_149 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_lb = _RAND_149[0:0];
  _RAND_150 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_lh = _RAND_150[0:0];
  _RAND_151 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_lw = _RAND_151[0:0];
  _RAND_152 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_ld = _RAND_152[0:0];
  _RAND_153 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_lbu = _RAND_153[0:0];
  _RAND_154 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_lhu = _RAND_154[0:0];
  _RAND_155 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_lwu = _RAND_155[0:0];
  _RAND_156 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_sb = _RAND_156[0:0];
  _RAND_157 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_sh = _RAND_157[0:0];
  _RAND_158 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_sw = _RAND_158[0:0];
  _RAND_159 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_sd = _RAND_159[0:0];
  _RAND_160 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_fence = _RAND_160[0:0];
  _RAND_161 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_fence_i = _RAND_161[0:0];
  _RAND_162 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_sfence_vma = _RAND_162[0:0];
  _RAND_163 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_lr_w = _RAND_163[0:0];
  _RAND_164 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_sc_w = _RAND_164[0:0];
  _RAND_165 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amoswap_w = _RAND_165[0:0];
  _RAND_166 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amoadd_w = _RAND_166[0:0];
  _RAND_167 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amoxor_w = _RAND_167[0:0];
  _RAND_168 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amoand_w = _RAND_168[0:0];
  _RAND_169 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amoor_w = _RAND_169[0:0];
  _RAND_170 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amomin_w = _RAND_170[0:0];
  _RAND_171 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amomax_w = _RAND_171[0:0];
  _RAND_172 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amominu_w = _RAND_172[0:0];
  _RAND_173 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amomaxu_w = _RAND_173[0:0];
  _RAND_174 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_lr_d = _RAND_174[0:0];
  _RAND_175 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_sc_d = _RAND_175[0:0];
  _RAND_176 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amoswap_d = _RAND_176[0:0];
  _RAND_177 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amoadd_d = _RAND_177[0:0];
  _RAND_178 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amoxor_d = _RAND_178[0:0];
  _RAND_179 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amoand_d = _RAND_179[0:0];
  _RAND_180 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amoor_d = _RAND_180[0:0];
  _RAND_181 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amomin_d = _RAND_181[0:0];
  _RAND_182 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amomax_d = _RAND_182[0:0];
  _RAND_183 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amominu_d = _RAND_183[0:0];
  _RAND_184 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amomaxu_d = _RAND_184[0:0];
  _RAND_185 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_flw = _RAND_185[0:0];
  _RAND_186 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_fsw = _RAND_186[0:0];
  _RAND_187 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_fld = _RAND_187[0:0];
  _RAND_188 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_fsd = _RAND_188[0:0];
  _RAND_189 = {1{`RANDOM}};
  bufInfo_1_csr_isa_rw = _RAND_189[0:0];
  _RAND_190 = {1{`RANDOM}};
  bufInfo_1_csr_isa_rs = _RAND_190[0:0];
  _RAND_191 = {1{`RANDOM}};
  bufInfo_1_csr_isa_rc = _RAND_191[0:0];
  _RAND_192 = {1{`RANDOM}};
  bufInfo_1_csr_isa_rwi = _RAND_192[0:0];
  _RAND_193 = {1{`RANDOM}};
  bufInfo_1_csr_isa_rsi = _RAND_193[0:0];
  _RAND_194 = {1{`RANDOM}};
  bufInfo_1_csr_isa_rci = _RAND_194[0:0];
  _RAND_195 = {1{`RANDOM}};
  bufInfo_1_mul_isa_mul = _RAND_195[0:0];
  _RAND_196 = {1{`RANDOM}};
  bufInfo_1_mul_isa_mulh = _RAND_196[0:0];
  _RAND_197 = {1{`RANDOM}};
  bufInfo_1_mul_isa_mulhsu = _RAND_197[0:0];
  _RAND_198 = {1{`RANDOM}};
  bufInfo_1_mul_isa_mulhu = _RAND_198[0:0];
  _RAND_199 = {1{`RANDOM}};
  bufInfo_1_mul_isa_div = _RAND_199[0:0];
  _RAND_200 = {1{`RANDOM}};
  bufInfo_1_mul_isa_divu = _RAND_200[0:0];
  _RAND_201 = {1{`RANDOM}};
  bufInfo_1_mul_isa_rem = _RAND_201[0:0];
  _RAND_202 = {1{`RANDOM}};
  bufInfo_1_mul_isa_remu = _RAND_202[0:0];
  _RAND_203 = {1{`RANDOM}};
  bufInfo_1_mul_isa_mulw = _RAND_203[0:0];
  _RAND_204 = {1{`RANDOM}};
  bufInfo_1_mul_isa_divw = _RAND_204[0:0];
  _RAND_205 = {1{`RANDOM}};
  bufInfo_1_mul_isa_divuw = _RAND_205[0:0];
  _RAND_206 = {1{`RANDOM}};
  bufInfo_1_mul_isa_remw = _RAND_206[0:0];
  _RAND_207 = {1{`RANDOM}};
  bufInfo_1_mul_isa_remuw = _RAND_207[0:0];
  _RAND_208 = {1{`RANDOM}};
  bufInfo_1_param_is_rvc = _RAND_208[0:0];
  _RAND_209 = {2{`RANDOM}};
  bufInfo_1_param_pc = _RAND_209[38:0];
  _RAND_210 = {2{`RANDOM}};
  bufInfo_1_param_imm = _RAND_210[63:0];
  _RAND_211 = {1{`RANDOM}};
  bufInfo_1_param_raw_rs1 = _RAND_211[4:0];
  _RAND_212 = {1{`RANDOM}};
  bufInfo_1_phy_rs1 = _RAND_212[5:0];
  _RAND_213 = {1{`RANDOM}};
  bufInfo_1_phy_rs2 = _RAND_213[5:0];
  _RAND_214 = {1{`RANDOM}};
  bufInfo_1_phy_rs3 = _RAND_214[5:0];
  _RAND_215 = {1{`RANDOM}};
  bufInfo_1_phy_rd0 = _RAND_215[5:0];
  _RAND_216 = {1{`RANDOM}};
  bufInfo_2_alu_isa_lui = _RAND_216[0:0];
  _RAND_217 = {1{`RANDOM}};
  bufInfo_2_alu_isa_auipc = _RAND_217[0:0];
  _RAND_218 = {1{`RANDOM}};
  bufInfo_2_alu_isa_addi = _RAND_218[0:0];
  _RAND_219 = {1{`RANDOM}};
  bufInfo_2_alu_isa_addiw = _RAND_219[0:0];
  _RAND_220 = {1{`RANDOM}};
  bufInfo_2_alu_isa_slti = _RAND_220[0:0];
  _RAND_221 = {1{`RANDOM}};
  bufInfo_2_alu_isa_sltiu = _RAND_221[0:0];
  _RAND_222 = {1{`RANDOM}};
  bufInfo_2_alu_isa_xori = _RAND_222[0:0];
  _RAND_223 = {1{`RANDOM}};
  bufInfo_2_alu_isa_ori = _RAND_223[0:0];
  _RAND_224 = {1{`RANDOM}};
  bufInfo_2_alu_isa_andi = _RAND_224[0:0];
  _RAND_225 = {1{`RANDOM}};
  bufInfo_2_alu_isa_slli = _RAND_225[0:0];
  _RAND_226 = {1{`RANDOM}};
  bufInfo_2_alu_isa_slliw = _RAND_226[0:0];
  _RAND_227 = {1{`RANDOM}};
  bufInfo_2_alu_isa_srli = _RAND_227[0:0];
  _RAND_228 = {1{`RANDOM}};
  bufInfo_2_alu_isa_srliw = _RAND_228[0:0];
  _RAND_229 = {1{`RANDOM}};
  bufInfo_2_alu_isa_srai = _RAND_229[0:0];
  _RAND_230 = {1{`RANDOM}};
  bufInfo_2_alu_isa_sraiw = _RAND_230[0:0];
  _RAND_231 = {1{`RANDOM}};
  bufInfo_2_alu_isa_add = _RAND_231[0:0];
  _RAND_232 = {1{`RANDOM}};
  bufInfo_2_alu_isa_addw = _RAND_232[0:0];
  _RAND_233 = {1{`RANDOM}};
  bufInfo_2_alu_isa_sub = _RAND_233[0:0];
  _RAND_234 = {1{`RANDOM}};
  bufInfo_2_alu_isa_subw = _RAND_234[0:0];
  _RAND_235 = {1{`RANDOM}};
  bufInfo_2_alu_isa_sll = _RAND_235[0:0];
  _RAND_236 = {1{`RANDOM}};
  bufInfo_2_alu_isa_sllw = _RAND_236[0:0];
  _RAND_237 = {1{`RANDOM}};
  bufInfo_2_alu_isa_slt = _RAND_237[0:0];
  _RAND_238 = {1{`RANDOM}};
  bufInfo_2_alu_isa_sltu = _RAND_238[0:0];
  _RAND_239 = {1{`RANDOM}};
  bufInfo_2_alu_isa_xor = _RAND_239[0:0];
  _RAND_240 = {1{`RANDOM}};
  bufInfo_2_alu_isa_srl = _RAND_240[0:0];
  _RAND_241 = {1{`RANDOM}};
  bufInfo_2_alu_isa_srlw = _RAND_241[0:0];
  _RAND_242 = {1{`RANDOM}};
  bufInfo_2_alu_isa_sra = _RAND_242[0:0];
  _RAND_243 = {1{`RANDOM}};
  bufInfo_2_alu_isa_sraw = _RAND_243[0:0];
  _RAND_244 = {1{`RANDOM}};
  bufInfo_2_alu_isa_or = _RAND_244[0:0];
  _RAND_245 = {1{`RANDOM}};
  bufInfo_2_alu_isa_and = _RAND_245[0:0];
  _RAND_246 = {1{`RANDOM}};
  bufInfo_2_alu_isa_wfi = _RAND_246[0:0];
  _RAND_247 = {1{`RANDOM}};
  bufInfo_2_bru_isa_jal = _RAND_247[0:0];
  _RAND_248 = {1{`RANDOM}};
  bufInfo_2_bru_isa_jalr = _RAND_248[0:0];
  _RAND_249 = {1{`RANDOM}};
  bufInfo_2_bru_isa_beq = _RAND_249[0:0];
  _RAND_250 = {1{`RANDOM}};
  bufInfo_2_bru_isa_bne = _RAND_250[0:0];
  _RAND_251 = {1{`RANDOM}};
  bufInfo_2_bru_isa_blt = _RAND_251[0:0];
  _RAND_252 = {1{`RANDOM}};
  bufInfo_2_bru_isa_bge = _RAND_252[0:0];
  _RAND_253 = {1{`RANDOM}};
  bufInfo_2_bru_isa_bltu = _RAND_253[0:0];
  _RAND_254 = {1{`RANDOM}};
  bufInfo_2_bru_isa_bgeu = _RAND_254[0:0];
  _RAND_255 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_lb = _RAND_255[0:0];
  _RAND_256 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_lh = _RAND_256[0:0];
  _RAND_257 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_lw = _RAND_257[0:0];
  _RAND_258 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_ld = _RAND_258[0:0];
  _RAND_259 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_lbu = _RAND_259[0:0];
  _RAND_260 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_lhu = _RAND_260[0:0];
  _RAND_261 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_lwu = _RAND_261[0:0];
  _RAND_262 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_sb = _RAND_262[0:0];
  _RAND_263 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_sh = _RAND_263[0:0];
  _RAND_264 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_sw = _RAND_264[0:0];
  _RAND_265 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_sd = _RAND_265[0:0];
  _RAND_266 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_fence = _RAND_266[0:0];
  _RAND_267 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_fence_i = _RAND_267[0:0];
  _RAND_268 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_sfence_vma = _RAND_268[0:0];
  _RAND_269 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_lr_w = _RAND_269[0:0];
  _RAND_270 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_sc_w = _RAND_270[0:0];
  _RAND_271 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_amoswap_w = _RAND_271[0:0];
  _RAND_272 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_amoadd_w = _RAND_272[0:0];
  _RAND_273 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_amoxor_w = _RAND_273[0:0];
  _RAND_274 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_amoand_w = _RAND_274[0:0];
  _RAND_275 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_amoor_w = _RAND_275[0:0];
  _RAND_276 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_amomin_w = _RAND_276[0:0];
  _RAND_277 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_amomax_w = _RAND_277[0:0];
  _RAND_278 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_amominu_w = _RAND_278[0:0];
  _RAND_279 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_amomaxu_w = _RAND_279[0:0];
  _RAND_280 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_lr_d = _RAND_280[0:0];
  _RAND_281 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_sc_d = _RAND_281[0:0];
  _RAND_282 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_amoswap_d = _RAND_282[0:0];
  _RAND_283 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_amoadd_d = _RAND_283[0:0];
  _RAND_284 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_amoxor_d = _RAND_284[0:0];
  _RAND_285 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_amoand_d = _RAND_285[0:0];
  _RAND_286 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_amoor_d = _RAND_286[0:0];
  _RAND_287 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_amomin_d = _RAND_287[0:0];
  _RAND_288 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_amomax_d = _RAND_288[0:0];
  _RAND_289 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_amominu_d = _RAND_289[0:0];
  _RAND_290 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_amomaxu_d = _RAND_290[0:0];
  _RAND_291 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_flw = _RAND_291[0:0];
  _RAND_292 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_fsw = _RAND_292[0:0];
  _RAND_293 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_fld = _RAND_293[0:0];
  _RAND_294 = {1{`RANDOM}};
  bufInfo_2_lsu_isa_fsd = _RAND_294[0:0];
  _RAND_295 = {1{`RANDOM}};
  bufInfo_2_csr_isa_rw = _RAND_295[0:0];
  _RAND_296 = {1{`RANDOM}};
  bufInfo_2_csr_isa_rs = _RAND_296[0:0];
  _RAND_297 = {1{`RANDOM}};
  bufInfo_2_csr_isa_rc = _RAND_297[0:0];
  _RAND_298 = {1{`RANDOM}};
  bufInfo_2_csr_isa_rwi = _RAND_298[0:0];
  _RAND_299 = {1{`RANDOM}};
  bufInfo_2_csr_isa_rsi = _RAND_299[0:0];
  _RAND_300 = {1{`RANDOM}};
  bufInfo_2_csr_isa_rci = _RAND_300[0:0];
  _RAND_301 = {1{`RANDOM}};
  bufInfo_2_mul_isa_mul = _RAND_301[0:0];
  _RAND_302 = {1{`RANDOM}};
  bufInfo_2_mul_isa_mulh = _RAND_302[0:0];
  _RAND_303 = {1{`RANDOM}};
  bufInfo_2_mul_isa_mulhsu = _RAND_303[0:0];
  _RAND_304 = {1{`RANDOM}};
  bufInfo_2_mul_isa_mulhu = _RAND_304[0:0];
  _RAND_305 = {1{`RANDOM}};
  bufInfo_2_mul_isa_div = _RAND_305[0:0];
  _RAND_306 = {1{`RANDOM}};
  bufInfo_2_mul_isa_divu = _RAND_306[0:0];
  _RAND_307 = {1{`RANDOM}};
  bufInfo_2_mul_isa_rem = _RAND_307[0:0];
  _RAND_308 = {1{`RANDOM}};
  bufInfo_2_mul_isa_remu = _RAND_308[0:0];
  _RAND_309 = {1{`RANDOM}};
  bufInfo_2_mul_isa_mulw = _RAND_309[0:0];
  _RAND_310 = {1{`RANDOM}};
  bufInfo_2_mul_isa_divw = _RAND_310[0:0];
  _RAND_311 = {1{`RANDOM}};
  bufInfo_2_mul_isa_divuw = _RAND_311[0:0];
  _RAND_312 = {1{`RANDOM}};
  bufInfo_2_mul_isa_remw = _RAND_312[0:0];
  _RAND_313 = {1{`RANDOM}};
  bufInfo_2_mul_isa_remuw = _RAND_313[0:0];
  _RAND_314 = {1{`RANDOM}};
  bufInfo_2_param_is_rvc = _RAND_314[0:0];
  _RAND_315 = {2{`RANDOM}};
  bufInfo_2_param_pc = _RAND_315[38:0];
  _RAND_316 = {2{`RANDOM}};
  bufInfo_2_param_imm = _RAND_316[63:0];
  _RAND_317 = {1{`RANDOM}};
  bufInfo_2_param_raw_rs1 = _RAND_317[4:0];
  _RAND_318 = {1{`RANDOM}};
  bufInfo_2_phy_rs1 = _RAND_318[5:0];
  _RAND_319 = {1{`RANDOM}};
  bufInfo_2_phy_rs2 = _RAND_319[5:0];
  _RAND_320 = {1{`RANDOM}};
  bufInfo_2_phy_rs3 = _RAND_320[5:0];
  _RAND_321 = {1{`RANDOM}};
  bufInfo_2_phy_rd0 = _RAND_321[5:0];
  _RAND_322 = {1{`RANDOM}};
  bufInfo_3_alu_isa_lui = _RAND_322[0:0];
  _RAND_323 = {1{`RANDOM}};
  bufInfo_3_alu_isa_auipc = _RAND_323[0:0];
  _RAND_324 = {1{`RANDOM}};
  bufInfo_3_alu_isa_addi = _RAND_324[0:0];
  _RAND_325 = {1{`RANDOM}};
  bufInfo_3_alu_isa_addiw = _RAND_325[0:0];
  _RAND_326 = {1{`RANDOM}};
  bufInfo_3_alu_isa_slti = _RAND_326[0:0];
  _RAND_327 = {1{`RANDOM}};
  bufInfo_3_alu_isa_sltiu = _RAND_327[0:0];
  _RAND_328 = {1{`RANDOM}};
  bufInfo_3_alu_isa_xori = _RAND_328[0:0];
  _RAND_329 = {1{`RANDOM}};
  bufInfo_3_alu_isa_ori = _RAND_329[0:0];
  _RAND_330 = {1{`RANDOM}};
  bufInfo_3_alu_isa_andi = _RAND_330[0:0];
  _RAND_331 = {1{`RANDOM}};
  bufInfo_3_alu_isa_slli = _RAND_331[0:0];
  _RAND_332 = {1{`RANDOM}};
  bufInfo_3_alu_isa_slliw = _RAND_332[0:0];
  _RAND_333 = {1{`RANDOM}};
  bufInfo_3_alu_isa_srli = _RAND_333[0:0];
  _RAND_334 = {1{`RANDOM}};
  bufInfo_3_alu_isa_srliw = _RAND_334[0:0];
  _RAND_335 = {1{`RANDOM}};
  bufInfo_3_alu_isa_srai = _RAND_335[0:0];
  _RAND_336 = {1{`RANDOM}};
  bufInfo_3_alu_isa_sraiw = _RAND_336[0:0];
  _RAND_337 = {1{`RANDOM}};
  bufInfo_3_alu_isa_add = _RAND_337[0:0];
  _RAND_338 = {1{`RANDOM}};
  bufInfo_3_alu_isa_addw = _RAND_338[0:0];
  _RAND_339 = {1{`RANDOM}};
  bufInfo_3_alu_isa_sub = _RAND_339[0:0];
  _RAND_340 = {1{`RANDOM}};
  bufInfo_3_alu_isa_subw = _RAND_340[0:0];
  _RAND_341 = {1{`RANDOM}};
  bufInfo_3_alu_isa_sll = _RAND_341[0:0];
  _RAND_342 = {1{`RANDOM}};
  bufInfo_3_alu_isa_sllw = _RAND_342[0:0];
  _RAND_343 = {1{`RANDOM}};
  bufInfo_3_alu_isa_slt = _RAND_343[0:0];
  _RAND_344 = {1{`RANDOM}};
  bufInfo_3_alu_isa_sltu = _RAND_344[0:0];
  _RAND_345 = {1{`RANDOM}};
  bufInfo_3_alu_isa_xor = _RAND_345[0:0];
  _RAND_346 = {1{`RANDOM}};
  bufInfo_3_alu_isa_srl = _RAND_346[0:0];
  _RAND_347 = {1{`RANDOM}};
  bufInfo_3_alu_isa_srlw = _RAND_347[0:0];
  _RAND_348 = {1{`RANDOM}};
  bufInfo_3_alu_isa_sra = _RAND_348[0:0];
  _RAND_349 = {1{`RANDOM}};
  bufInfo_3_alu_isa_sraw = _RAND_349[0:0];
  _RAND_350 = {1{`RANDOM}};
  bufInfo_3_alu_isa_or = _RAND_350[0:0];
  _RAND_351 = {1{`RANDOM}};
  bufInfo_3_alu_isa_and = _RAND_351[0:0];
  _RAND_352 = {1{`RANDOM}};
  bufInfo_3_alu_isa_wfi = _RAND_352[0:0];
  _RAND_353 = {1{`RANDOM}};
  bufInfo_3_bru_isa_jal = _RAND_353[0:0];
  _RAND_354 = {1{`RANDOM}};
  bufInfo_3_bru_isa_jalr = _RAND_354[0:0];
  _RAND_355 = {1{`RANDOM}};
  bufInfo_3_bru_isa_beq = _RAND_355[0:0];
  _RAND_356 = {1{`RANDOM}};
  bufInfo_3_bru_isa_bne = _RAND_356[0:0];
  _RAND_357 = {1{`RANDOM}};
  bufInfo_3_bru_isa_blt = _RAND_357[0:0];
  _RAND_358 = {1{`RANDOM}};
  bufInfo_3_bru_isa_bge = _RAND_358[0:0];
  _RAND_359 = {1{`RANDOM}};
  bufInfo_3_bru_isa_bltu = _RAND_359[0:0];
  _RAND_360 = {1{`RANDOM}};
  bufInfo_3_bru_isa_bgeu = _RAND_360[0:0];
  _RAND_361 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_lb = _RAND_361[0:0];
  _RAND_362 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_lh = _RAND_362[0:0];
  _RAND_363 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_lw = _RAND_363[0:0];
  _RAND_364 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_ld = _RAND_364[0:0];
  _RAND_365 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_lbu = _RAND_365[0:0];
  _RAND_366 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_lhu = _RAND_366[0:0];
  _RAND_367 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_lwu = _RAND_367[0:0];
  _RAND_368 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_sb = _RAND_368[0:0];
  _RAND_369 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_sh = _RAND_369[0:0];
  _RAND_370 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_sw = _RAND_370[0:0];
  _RAND_371 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_sd = _RAND_371[0:0];
  _RAND_372 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_fence = _RAND_372[0:0];
  _RAND_373 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_fence_i = _RAND_373[0:0];
  _RAND_374 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_sfence_vma = _RAND_374[0:0];
  _RAND_375 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_lr_w = _RAND_375[0:0];
  _RAND_376 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_sc_w = _RAND_376[0:0];
  _RAND_377 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_amoswap_w = _RAND_377[0:0];
  _RAND_378 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_amoadd_w = _RAND_378[0:0];
  _RAND_379 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_amoxor_w = _RAND_379[0:0];
  _RAND_380 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_amoand_w = _RAND_380[0:0];
  _RAND_381 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_amoor_w = _RAND_381[0:0];
  _RAND_382 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_amomin_w = _RAND_382[0:0];
  _RAND_383 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_amomax_w = _RAND_383[0:0];
  _RAND_384 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_amominu_w = _RAND_384[0:0];
  _RAND_385 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_amomaxu_w = _RAND_385[0:0];
  _RAND_386 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_lr_d = _RAND_386[0:0];
  _RAND_387 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_sc_d = _RAND_387[0:0];
  _RAND_388 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_amoswap_d = _RAND_388[0:0];
  _RAND_389 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_amoadd_d = _RAND_389[0:0];
  _RAND_390 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_amoxor_d = _RAND_390[0:0];
  _RAND_391 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_amoand_d = _RAND_391[0:0];
  _RAND_392 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_amoor_d = _RAND_392[0:0];
  _RAND_393 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_amomin_d = _RAND_393[0:0];
  _RAND_394 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_amomax_d = _RAND_394[0:0];
  _RAND_395 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_amominu_d = _RAND_395[0:0];
  _RAND_396 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_amomaxu_d = _RAND_396[0:0];
  _RAND_397 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_flw = _RAND_397[0:0];
  _RAND_398 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_fsw = _RAND_398[0:0];
  _RAND_399 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_fld = _RAND_399[0:0];
  _RAND_400 = {1{`RANDOM}};
  bufInfo_3_lsu_isa_fsd = _RAND_400[0:0];
  _RAND_401 = {1{`RANDOM}};
  bufInfo_3_csr_isa_rw = _RAND_401[0:0];
  _RAND_402 = {1{`RANDOM}};
  bufInfo_3_csr_isa_rs = _RAND_402[0:0];
  _RAND_403 = {1{`RANDOM}};
  bufInfo_3_csr_isa_rc = _RAND_403[0:0];
  _RAND_404 = {1{`RANDOM}};
  bufInfo_3_csr_isa_rwi = _RAND_404[0:0];
  _RAND_405 = {1{`RANDOM}};
  bufInfo_3_csr_isa_rsi = _RAND_405[0:0];
  _RAND_406 = {1{`RANDOM}};
  bufInfo_3_csr_isa_rci = _RAND_406[0:0];
  _RAND_407 = {1{`RANDOM}};
  bufInfo_3_mul_isa_mul = _RAND_407[0:0];
  _RAND_408 = {1{`RANDOM}};
  bufInfo_3_mul_isa_mulh = _RAND_408[0:0];
  _RAND_409 = {1{`RANDOM}};
  bufInfo_3_mul_isa_mulhsu = _RAND_409[0:0];
  _RAND_410 = {1{`RANDOM}};
  bufInfo_3_mul_isa_mulhu = _RAND_410[0:0];
  _RAND_411 = {1{`RANDOM}};
  bufInfo_3_mul_isa_div = _RAND_411[0:0];
  _RAND_412 = {1{`RANDOM}};
  bufInfo_3_mul_isa_divu = _RAND_412[0:0];
  _RAND_413 = {1{`RANDOM}};
  bufInfo_3_mul_isa_rem = _RAND_413[0:0];
  _RAND_414 = {1{`RANDOM}};
  bufInfo_3_mul_isa_remu = _RAND_414[0:0];
  _RAND_415 = {1{`RANDOM}};
  bufInfo_3_mul_isa_mulw = _RAND_415[0:0];
  _RAND_416 = {1{`RANDOM}};
  bufInfo_3_mul_isa_divw = _RAND_416[0:0];
  _RAND_417 = {1{`RANDOM}};
  bufInfo_3_mul_isa_divuw = _RAND_417[0:0];
  _RAND_418 = {1{`RANDOM}};
  bufInfo_3_mul_isa_remw = _RAND_418[0:0];
  _RAND_419 = {1{`RANDOM}};
  bufInfo_3_mul_isa_remuw = _RAND_419[0:0];
  _RAND_420 = {1{`RANDOM}};
  bufInfo_3_param_is_rvc = _RAND_420[0:0];
  _RAND_421 = {2{`RANDOM}};
  bufInfo_3_param_pc = _RAND_421[38:0];
  _RAND_422 = {2{`RANDOM}};
  bufInfo_3_param_imm = _RAND_422[63:0];
  _RAND_423 = {1{`RANDOM}};
  bufInfo_3_param_raw_rs1 = _RAND_423[4:0];
  _RAND_424 = {1{`RANDOM}};
  bufInfo_3_phy_rs1 = _RAND_424[5:0];
  _RAND_425 = {1{`RANDOM}};
  bufInfo_3_phy_rs2 = _RAND_425[5:0];
  _RAND_426 = {1{`RANDOM}};
  bufInfo_3_phy_rs3 = _RAND_426[5:0];
  _RAND_427 = {1{`RANDOM}};
  bufInfo_3_phy_rd0 = _RAND_427[5:0];
  _RAND_428 = {1{`RANDOM}};
  isOpReady_0_0 = _RAND_428[0:0];
  _RAND_429 = {1{`RANDOM}};
  isOpReady_0_1 = _RAND_429[0:0];
  _RAND_430 = {1{`RANDOM}};
  isOpReady_1_0 = _RAND_430[0:0];
  _RAND_431 = {1{`RANDOM}};
  isOpReady_1_1 = _RAND_431[0:0];
  _RAND_432 = {1{`RANDOM}};
  isOpReady_2_0 = _RAND_432[0:0];
  _RAND_433 = {1{`RANDOM}};
  isOpReady_2_1 = _RAND_433[0:0];
  _RAND_434 = {1{`RANDOM}};
  isOpReady_3_0 = _RAND_434[0:0];
  _RAND_435 = {1{`RANDOM}};
  isOpReady_3_1 = _RAND_435[0:0];
  _RAND_436 = {3{`RANDOM}};
  bufOperator_0_0 = _RAND_436[64:0];
  _RAND_437 = {3{`RANDOM}};
  bufOperator_0_1 = _RAND_437[64:0];
  _RAND_438 = {3{`RANDOM}};
  bufOperator_1_0 = _RAND_438[64:0];
  _RAND_439 = {3{`RANDOM}};
  bufOperator_1_1 = _RAND_439[64:0];
  _RAND_440 = {3{`RANDOM}};
  bufOperator_2_0 = _RAND_440[64:0];
  _RAND_441 = {3{`RANDOM}};
  bufOperator_2_1 = _RAND_441[64:0];
  _RAND_442 = {3{`RANDOM}};
  bufOperator_3_0 = _RAND_442[64:0];
  _RAND_443 = {3{`RANDOM}};
  bufOperator_3_1 = _RAND_443[64:0];
  _RAND_444 = {1{`RANDOM}};
  ageMatrixW_0_0 = _RAND_444[0:0];
  _RAND_445 = {1{`RANDOM}};
  ageMatrixW_0_1 = _RAND_445[0:0];
  _RAND_446 = {1{`RANDOM}};
  ageMatrixW_0_2 = _RAND_446[0:0];
  _RAND_447 = {1{`RANDOM}};
  ageMatrixW_0_3 = _RAND_447[0:0];
  _RAND_448 = {1{`RANDOM}};
  ageMatrixW_1_1 = _RAND_448[0:0];
  _RAND_449 = {1{`RANDOM}};
  ageMatrixW_1_2 = _RAND_449[0:0];
  _RAND_450 = {1{`RANDOM}};
  ageMatrixW_1_3 = _RAND_450[0:0];
  _RAND_451 = {1{`RANDOM}};
  ageMatrixW_2_2 = _RAND_451[0:0];
  _RAND_452 = {1{`RANDOM}};
  ageMatrixW_2_3 = _RAND_452[0:0];
  _RAND_453 = {1{`RANDOM}};
  ageMatrixW_3_3 = _RAND_453[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_7(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [5:0]  io_enq_bits_rd0,
  input  [63:0] io_enq_bits_res,
  input         io_deq_ready,
  output        io_deq_valid,
  output [5:0]  io_deq_bits_rd0,
  output [63:0] io_deq_bits_res
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [63:0] _RAND_1;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_2;
`endif // RANDOMIZE_REG_INIT
  reg [5:0] ram_rd0 [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_rd0_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_rd0_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [5:0] ram_rd0_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [5:0] ram_rd0_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_rd0_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_rd0_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_rd0_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_res [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_res_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_res_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_res_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_res_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_res_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_res_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_res_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_deq = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign ram_rd0_io_deq_bits_MPORT_en = 1'h1;
  assign ram_rd0_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_rd0_io_deq_bits_MPORT_data = ram_rd0[ram_rd0_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_rd0_MPORT_data = io_enq_bits_rd0;
  assign ram_rd0_MPORT_addr = 1'h0;
  assign ram_rd0_MPORT_mask = 1'h1;
  assign ram_rd0_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_res_io_deq_bits_MPORT_en = 1'h1;
  assign ram_res_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_res_io_deq_bits_MPORT_data = ram_res[ram_res_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_res_MPORT_data = io_enq_bits_res;
  assign ram_res_MPORT_addr = 1'h0;
  assign ram_res_MPORT_mask = 1'h1;
  assign ram_res_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = io_deq_ready | empty; // @[Decoupled.scala 305:16 325:{24,39}]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_rd0 = ram_rd0_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_res = ram_res_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_rd0_MPORT_en & ram_rd0_MPORT_mask) begin
      ram_rd0[ram_rd0_MPORT_addr] <= ram_rd0_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_res_MPORT_en & ram_res_MPORT_mask) begin
      ram_res[ram_res_MPORT_addr] <= ram_res_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_rd0[initvar] = _RAND_0[5:0];
  _RAND_1 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_res[initvar] = _RAND_1[63:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_2 = {1{`RANDOM}};
  maybe_full = _RAND_2[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Alu(
  input         clock,
  input         reset,
  output        io_alu_iss_exe_ready,
  input         io_alu_iss_exe_valid,
  input         io_alu_iss_exe_bits_fun_add,
  input         io_alu_iss_exe_bits_fun_slt,
  input         io_alu_iss_exe_bits_fun_xor,
  input         io_alu_iss_exe_bits_fun_or,
  input         io_alu_iss_exe_bits_fun_and,
  input         io_alu_iss_exe_bits_fun_sll,
  input         io_alu_iss_exe_bits_fun_srl,
  input         io_alu_iss_exe_bits_fun_sra,
  input  [5:0]  io_alu_iss_exe_bits_param_rd0,
  input         io_alu_iss_exe_bits_param_is_32w,
  input         io_alu_iss_exe_bits_param_is_usi,
  input  [63:0] io_alu_iss_exe_bits_param_dat_op1,
  input  [63:0] io_alu_iss_exe_bits_param_dat_op2,
  input         io_alu_exe_iwb_ready,
  output        io_alu_exe_iwb_valid,
  output [5:0]  io_alu_exe_iwb_bits_rd0,
  output [63:0] io_alu_exe_iwb_bits_res,
  input         io_flush
);
  wire  alu_exe_iwb_fifo_clock; // @[Alu.scala 38:32]
  wire  alu_exe_iwb_fifo_reset; // @[Alu.scala 38:32]
  wire  alu_exe_iwb_fifo_io_enq_ready; // @[Alu.scala 38:32]
  wire  alu_exe_iwb_fifo_io_enq_valid; // @[Alu.scala 38:32]
  wire [5:0] alu_exe_iwb_fifo_io_enq_bits_rd0; // @[Alu.scala 38:32]
  wire [63:0] alu_exe_iwb_fifo_io_enq_bits_res; // @[Alu.scala 38:32]
  wire  alu_exe_iwb_fifo_io_deq_ready; // @[Alu.scala 38:32]
  wire  alu_exe_iwb_fifo_io_deq_valid; // @[Alu.scala 38:32]
  wire [5:0] alu_exe_iwb_fifo_io_deq_bits_rd0; // @[Alu.scala 38:32]
  wire [63:0] alu_exe_iwb_fifo_io_deq_bits_res; // @[Alu.scala 38:32]
  wire [63:0] adder_res = io_alu_iss_exe_bits_param_dat_op1 + io_alu_iss_exe_bits_param_dat_op2; // @[Alu.scala 52:23]
  wire [31:0] _adder_res_32w_T_2 = adder_res[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [63:0] adder_res_32w = {_adder_res_32w_T_2,adder_res[31:0]}; // @[Cat.scala 33:92]
  wire [63:0] alu_add_res = io_alu_iss_exe_bits_param_is_32w ? adder_res_32w : adder_res; // @[Alu.scala 54:24]
  wire  slt_sign_res = $signed(io_alu_iss_exe_bits_param_dat_op1) < $signed(io_alu_iss_exe_bits_param_dat_op2); // @[Alu.scala 56:38]
  wire  slt_unsi_res = io_alu_iss_exe_bits_param_dat_op1 < io_alu_iss_exe_bits_param_dat_op2; // @[Alu.scala 57:31]
  wire  alu_slt_res = io_alu_iss_exe_bits_param_is_usi ? slt_unsi_res : slt_sign_res; // @[Alu.scala 59:24]
  wire [63:0] alu_xor_res = io_alu_iss_exe_bits_param_dat_op1 ^ io_alu_iss_exe_bits_param_dat_op2; // @[Alu.scala 61:25]
  wire [63:0] alu_or_res = io_alu_iss_exe_bits_param_dat_op1 | io_alu_iss_exe_bits_param_dat_op2; // @[Alu.scala 62:25]
  wire [63:0] alu_and_res = io_alu_iss_exe_bits_param_dat_op1 & io_alu_iss_exe_bits_param_dat_op2; // @[Alu.scala 63:25]
  wire [5:0] shift_op2 = io_alu_iss_exe_bits_param_is_32w ? {{1'd0}, io_alu_iss_exe_bits_param_dat_op2[4:0]} :
    io_alu_iss_exe_bits_param_dat_op2[5:0]; // @[Alu.scala 67:22]
  wire [126:0] _GEN_0 = {{63'd0}, io_alu_iss_exe_bits_param_dat_op1}; // @[Alu.scala 69:48]
  wire [126:0] _alu_sll_res_T = _GEN_0 << shift_op2; // @[Alu.scala 69:48]
  wire [31:0] _alu_sll_res_T_3 = _alu_sll_res_T[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _alu_sll_res_T_5 = {_alu_sll_res_T_3,_alu_sll_res_T[31:0]}; // @[Cat.scala 33:92]
  wire [126:0] alu_sll_res = io_alu_iss_exe_bits_param_is_32w ? {{63'd0}, _alu_sll_res_T_5} : _alu_sll_res_T; // @[Alu.scala 69:25]
  wire [31:0] _alu_srl_res_T_1 = io_alu_iss_exe_bits_param_dat_op1[31:0] >> shift_op2; // @[Alu.scala 71:53]
  wire [31:0] _alu_srl_res_T_4 = _alu_srl_res_T_1[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _alu_srl_res_T_6 = {_alu_srl_res_T_4,_alu_srl_res_T_1}; // @[Cat.scala 33:92]
  wire [63:0] _alu_srl_res_T_7 = io_alu_iss_exe_bits_param_dat_op1 >> shift_op2; // @[Alu.scala 71:72]
  wire [63:0] alu_srl_res = io_alu_iss_exe_bits_param_is_32w ? _alu_srl_res_T_6 : _alu_srl_res_T_7; // @[Alu.scala 71:25]
  wire [95:0] _sra_op1_128w_T_2 = io_alu_iss_exe_bits_param_dat_op1[31] ? 96'hffffffffffffffffffffffff : 96'h0; // @[Bitwise.scala 77:12]
  wire [127:0] _sra_op1_128w_T_4 = {_sra_op1_128w_T_2,io_alu_iss_exe_bits_param_dat_op1[31:0]}; // @[Cat.scala 33:92]
  wire [63:0] _sra_op1_128w_T_7 = io_alu_iss_exe_bits_param_dat_op1[63] ? 64'hffffffffffffffff : 64'h0; // @[Bitwise.scala 77:12]
  wire [127:0] _sra_op1_128w_T_9 = {_sra_op1_128w_T_7,io_alu_iss_exe_bits_param_dat_op1}; // @[Cat.scala 33:92]
  wire [127:0] sra_op1_128w = io_alu_iss_exe_bits_param_is_32w ? _sra_op1_128w_T_4 : _sra_op1_128w_T_9; // @[Alu.scala 73:25]
  wire [127:0] _alu_sra_res_T = sra_op1_128w >> shift_op2; // @[Alu.scala 74:56]
  wire [31:0] _alu_sra_res_T_3 = _alu_sra_res_T[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _alu_sra_res_T_5 = {_alu_sra_res_T_3,_alu_sra_res_T[31:0]}; // @[Cat.scala 33:92]
  wire [127:0] alu_sra_res = io_alu_iss_exe_bits_param_is_32w ? {{64'd0}, _alu_sra_res_T_5} : _alu_sra_res_T; // @[Alu.scala 74:25]
  wire [127:0] _res_T = io_alu_iss_exe_bits_fun_sra ? alu_sra_res : 128'h0; // @[Mux.scala 101:16]
  wire [127:0] _res_T_1 = io_alu_iss_exe_bits_fun_srl ? {{64'd0}, alu_srl_res} : _res_T; // @[Mux.scala 101:16]
  wire [127:0] _res_T_2 = io_alu_iss_exe_bits_fun_sll ? {{1'd0}, alu_sll_res} : _res_T_1; // @[Mux.scala 101:16]
  wire [127:0] _res_T_3 = io_alu_iss_exe_bits_fun_and ? {{64'd0}, alu_and_res} : _res_T_2; // @[Mux.scala 101:16]
  wire [127:0] _res_T_4 = io_alu_iss_exe_bits_fun_or ? {{64'd0}, alu_or_res} : _res_T_3; // @[Mux.scala 101:16]
  wire [127:0] _res_T_5 = io_alu_iss_exe_bits_fun_xor ? {{64'd0}, alu_xor_res} : _res_T_4; // @[Mux.scala 101:16]
  wire [127:0] _res_T_6 = io_alu_iss_exe_bits_fun_slt ? {{127'd0}, alu_slt_res} : _res_T_5; // @[Mux.scala 101:16]
  wire [127:0] res = io_alu_iss_exe_bits_fun_add ? {{64'd0}, alu_add_res} : _res_T_6; // @[Mux.scala 101:16]
  Queue_7 alu_exe_iwb_fifo ( // @[Alu.scala 38:32]
    .clock(alu_exe_iwb_fifo_clock),
    .reset(alu_exe_iwb_fifo_reset),
    .io_enq_ready(alu_exe_iwb_fifo_io_enq_ready),
    .io_enq_valid(alu_exe_iwb_fifo_io_enq_valid),
    .io_enq_bits_rd0(alu_exe_iwb_fifo_io_enq_bits_rd0),
    .io_enq_bits_res(alu_exe_iwb_fifo_io_enq_bits_res),
    .io_deq_ready(alu_exe_iwb_fifo_io_deq_ready),
    .io_deq_valid(alu_exe_iwb_fifo_io_deq_valid),
    .io_deq_bits_rd0(alu_exe_iwb_fifo_io_deq_bits_rd0),
    .io_deq_bits_res(alu_exe_iwb_fifo_io_deq_bits_res)
  );
  assign io_alu_iss_exe_ready = alu_exe_iwb_fifo_io_enq_ready & alu_exe_iwb_fifo_io_enq_valid; // @[Decoupled.scala 52:35]
  assign io_alu_exe_iwb_valid = alu_exe_iwb_fifo_io_deq_valid; // @[Alu.scala 39:18]
  assign io_alu_exe_iwb_bits_rd0 = alu_exe_iwb_fifo_io_deq_bits_rd0; // @[Alu.scala 39:18]
  assign io_alu_exe_iwb_bits_res = alu_exe_iwb_fifo_io_deq_bits_res; // @[Alu.scala 39:18]
  assign alu_exe_iwb_fifo_clock = clock;
  assign alu_exe_iwb_fifo_reset = reset | io_flush; // @[Alu.scala 40:42]
  assign alu_exe_iwb_fifo_io_enq_valid = io_alu_iss_exe_valid; // @[Alu.scala 90:33]
  assign alu_exe_iwb_fifo_io_enq_bits_rd0 = io_alu_iss_exe_bits_param_rd0; // @[Alu.scala 92:36]
  assign alu_exe_iwb_fifo_io_enq_bits_res = res[63:0]; // @[Alu.scala 91:36]
  assign alu_exe_iwb_fifo_io_deq_ready = io_alu_exe_iwb_ready; // @[Alu.scala 39:18]
endmodule
module Queue_9(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [38:0] io_enq_bits_pc,
  input         io_enq_bits_bimResp_bim_p,
  input         io_enq_bits_bimResp_bim_h,
  input         io_enq_bits_isPredictTaken,
  input         io_enq_bits_isFinalTaken,
  input  [63:0] io_enq_bits_finalTarget,
  input         io_deq_ready,
  output        io_deq_valid,
  output [38:0] io_deq_bits_pc,
  output        io_deq_bits_bimResp_bim_p,
  output        io_deq_bits_bimResp_bim_h,
  output        io_deq_bits_isPredictTaken,
  output        io_deq_bits_isFinalTaken,
  output [63:0] io_deq_bits_finalTarget
);
`ifdef RANDOMIZE_MEM_INIT
  reg [63:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [63:0] _RAND_5;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_6;
`endif // RANDOMIZE_REG_INIT
  reg [38:0] ram_pc [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_pc_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_pc_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [38:0] ram_pc_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [38:0] ram_pc_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_pc_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_pc_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_pc_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_bimResp_bim_p [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_bimResp_bim_p_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_bimResp_bim_p_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_bimResp_bim_p_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_bimResp_bim_p_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_bimResp_bim_p_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_bimResp_bim_p_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_bimResp_bim_p_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_bimResp_bim_h [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_bimResp_bim_h_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_bimResp_bim_h_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_bimResp_bim_h_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_bimResp_bim_h_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_bimResp_bim_h_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_bimResp_bim_h_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_bimResp_bim_h_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_isPredictTaken [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_isPredictTaken_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_isPredictTaken_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_isPredictTaken_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_isPredictTaken_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_isPredictTaken_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_isPredictTaken_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_isPredictTaken_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_isFinalTaken [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_isFinalTaken_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_isFinalTaken_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_isFinalTaken_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_isFinalTaken_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_isFinalTaken_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_isFinalTaken_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_isFinalTaken_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_finalTarget [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_finalTarget_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_finalTarget_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_finalTarget_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_finalTarget_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_finalTarget_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_finalTarget_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_finalTarget_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_deq = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign ram_pc_io_deq_bits_MPORT_en = 1'h1;
  assign ram_pc_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_pc_io_deq_bits_MPORT_data = ram_pc[ram_pc_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_pc_MPORT_data = io_enq_bits_pc;
  assign ram_pc_MPORT_addr = 1'h0;
  assign ram_pc_MPORT_mask = 1'h1;
  assign ram_pc_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_bimResp_bim_p_io_deq_bits_MPORT_en = 1'h1;
  assign ram_bimResp_bim_p_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_bimResp_bim_p_io_deq_bits_MPORT_data = ram_bimResp_bim_p[ram_bimResp_bim_p_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_bimResp_bim_p_MPORT_data = io_enq_bits_bimResp_bim_p;
  assign ram_bimResp_bim_p_MPORT_addr = 1'h0;
  assign ram_bimResp_bim_p_MPORT_mask = 1'h1;
  assign ram_bimResp_bim_p_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_bimResp_bim_h_io_deq_bits_MPORT_en = 1'h1;
  assign ram_bimResp_bim_h_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_bimResp_bim_h_io_deq_bits_MPORT_data = ram_bimResp_bim_h[ram_bimResp_bim_h_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_bimResp_bim_h_MPORT_data = io_enq_bits_bimResp_bim_h;
  assign ram_bimResp_bim_h_MPORT_addr = 1'h0;
  assign ram_bimResp_bim_h_MPORT_mask = 1'h1;
  assign ram_bimResp_bim_h_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_isPredictTaken_io_deq_bits_MPORT_en = 1'h1;
  assign ram_isPredictTaken_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_isPredictTaken_io_deq_bits_MPORT_data = ram_isPredictTaken[ram_isPredictTaken_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_isPredictTaken_MPORT_data = io_enq_bits_isPredictTaken;
  assign ram_isPredictTaken_MPORT_addr = 1'h0;
  assign ram_isPredictTaken_MPORT_mask = 1'h1;
  assign ram_isPredictTaken_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_isFinalTaken_io_deq_bits_MPORT_en = 1'h1;
  assign ram_isFinalTaken_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_isFinalTaken_io_deq_bits_MPORT_data = ram_isFinalTaken[ram_isFinalTaken_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_isFinalTaken_MPORT_data = io_enq_bits_isFinalTaken;
  assign ram_isFinalTaken_MPORT_addr = 1'h0;
  assign ram_isFinalTaken_MPORT_mask = 1'h1;
  assign ram_isFinalTaken_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_finalTarget_io_deq_bits_MPORT_en = 1'h1;
  assign ram_finalTarget_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_finalTarget_io_deq_bits_MPORT_data = ram_finalTarget[ram_finalTarget_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_finalTarget_MPORT_data = io_enq_bits_finalTarget;
  assign ram_finalTarget_MPORT_addr = 1'h0;
  assign ram_finalTarget_MPORT_mask = 1'h1;
  assign ram_finalTarget_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = ~maybe_full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_pc = ram_pc_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_bimResp_bim_p = ram_bimResp_bim_p_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_bimResp_bim_h = ram_bimResp_bim_h_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_isPredictTaken = ram_isPredictTaken_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_isFinalTaken = ram_isFinalTaken_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_finalTarget = ram_finalTarget_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_pc_MPORT_en & ram_pc_MPORT_mask) begin
      ram_pc[ram_pc_MPORT_addr] <= ram_pc_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_bimResp_bim_p_MPORT_en & ram_bimResp_bim_p_MPORT_mask) begin
      ram_bimResp_bim_p[ram_bimResp_bim_p_MPORT_addr] <= ram_bimResp_bim_p_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_bimResp_bim_h_MPORT_en & ram_bimResp_bim_h_MPORT_mask) begin
      ram_bimResp_bim_h[ram_bimResp_bim_h_MPORT_addr] <= ram_bimResp_bim_h_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_isPredictTaken_MPORT_en & ram_isPredictTaken_MPORT_mask) begin
      ram_isPredictTaken[ram_isPredictTaken_MPORT_addr] <= ram_isPredictTaken_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_isFinalTaken_MPORT_en & ram_isFinalTaken_MPORT_mask) begin
      ram_isFinalTaken[ram_isFinalTaken_MPORT_addr] <= ram_isFinalTaken_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_finalTarget_MPORT_en & ram_finalTarget_MPORT_mask) begin
      ram_finalTarget[ram_finalTarget_MPORT_addr] <= ram_finalTarget_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_pc[initvar] = _RAND_0[38:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_bimResp_bim_p[initvar] = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_bimResp_bim_h[initvar] = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_isPredictTaken[initvar] = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_isFinalTaken[initvar] = _RAND_4[0:0];
  _RAND_5 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_finalTarget[initvar] = _RAND_5[63:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_6 = {1{`RANDOM}};
  maybe_full = _RAND_6[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_10(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [38:0] io_enq_bits_pc,
  input  [38:0] io_enq_bits_btbResp_target,
  input  [38:0] io_enq_bits_rasResp_target,
  input         io_enq_bits_isRas,
  input  [63:0] io_enq_bits_finalTarget,
  input         io_deq_ready,
  output        io_deq_valid,
  output [38:0] io_deq_bits_pc,
  output [38:0] io_deq_bits_btbResp_target,
  output [38:0] io_deq_bits_rasResp_target,
  output        io_deq_bits_isRas,
  output [63:0] io_deq_bits_finalTarget
);
`ifdef RANDOMIZE_MEM_INIT
  reg [63:0] _RAND_0;
  reg [63:0] _RAND_1;
  reg [63:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [63:0] _RAND_4;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_5;
`endif // RANDOMIZE_REG_INIT
  reg [38:0] ram_pc [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_pc_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_pc_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [38:0] ram_pc_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [38:0] ram_pc_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_pc_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_pc_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_pc_MPORT_en; // @[Decoupled.scala 275:95]
  reg [38:0] ram_btbResp_target [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_btbResp_target_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_btbResp_target_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [38:0] ram_btbResp_target_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [38:0] ram_btbResp_target_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_btbResp_target_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_btbResp_target_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_btbResp_target_MPORT_en; // @[Decoupled.scala 275:95]
  reg [38:0] ram_rasResp_target [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_rasResp_target_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_rasResp_target_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [38:0] ram_rasResp_target_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [38:0] ram_rasResp_target_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_rasResp_target_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_rasResp_target_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_rasResp_target_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_isRas [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_isRas_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_isRas_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_isRas_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_isRas_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_isRas_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_isRas_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_isRas_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_finalTarget [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_finalTarget_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_finalTarget_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_finalTarget_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_finalTarget_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_finalTarget_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_finalTarget_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_finalTarget_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_deq = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign ram_pc_io_deq_bits_MPORT_en = 1'h1;
  assign ram_pc_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_pc_io_deq_bits_MPORT_data = ram_pc[ram_pc_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_pc_MPORT_data = io_enq_bits_pc;
  assign ram_pc_MPORT_addr = 1'h0;
  assign ram_pc_MPORT_mask = 1'h1;
  assign ram_pc_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_btbResp_target_io_deq_bits_MPORT_en = 1'h1;
  assign ram_btbResp_target_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_btbResp_target_io_deq_bits_MPORT_data = ram_btbResp_target[ram_btbResp_target_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_btbResp_target_MPORT_data = io_enq_bits_btbResp_target;
  assign ram_btbResp_target_MPORT_addr = 1'h0;
  assign ram_btbResp_target_MPORT_mask = 1'h1;
  assign ram_btbResp_target_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_rasResp_target_io_deq_bits_MPORT_en = 1'h1;
  assign ram_rasResp_target_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_rasResp_target_io_deq_bits_MPORT_data = ram_rasResp_target[ram_rasResp_target_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_rasResp_target_MPORT_data = io_enq_bits_rasResp_target;
  assign ram_rasResp_target_MPORT_addr = 1'h0;
  assign ram_rasResp_target_MPORT_mask = 1'h1;
  assign ram_rasResp_target_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_isRas_io_deq_bits_MPORT_en = 1'h1;
  assign ram_isRas_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_isRas_io_deq_bits_MPORT_data = ram_isRas[ram_isRas_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_isRas_MPORT_data = io_enq_bits_isRas;
  assign ram_isRas_MPORT_addr = 1'h0;
  assign ram_isRas_MPORT_mask = 1'h1;
  assign ram_isRas_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_finalTarget_io_deq_bits_MPORT_en = 1'h1;
  assign ram_finalTarget_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_finalTarget_io_deq_bits_MPORT_data = ram_finalTarget[ram_finalTarget_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_finalTarget_MPORT_data = io_enq_bits_finalTarget;
  assign ram_finalTarget_MPORT_addr = 1'h0;
  assign ram_finalTarget_MPORT_mask = 1'h1;
  assign ram_finalTarget_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = ~maybe_full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_pc = ram_pc_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_btbResp_target = ram_btbResp_target_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_rasResp_target = ram_rasResp_target_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_isRas = ram_isRas_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_finalTarget = ram_finalTarget_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_pc_MPORT_en & ram_pc_MPORT_mask) begin
      ram_pc[ram_pc_MPORT_addr] <= ram_pc_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_btbResp_target_MPORT_en & ram_btbResp_target_MPORT_mask) begin
      ram_btbResp_target[ram_btbResp_target_MPORT_addr] <= ram_btbResp_target_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_rasResp_target_MPORT_en & ram_rasResp_target_MPORT_mask) begin
      ram_rasResp_target[ram_rasResp_target_MPORT_addr] <= ram_rasResp_target_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_isRas_MPORT_en & ram_isRas_MPORT_mask) begin
      ram_isRas[ram_isRas_MPORT_addr] <= ram_isRas_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_finalTarget_MPORT_en & ram_finalTarget_MPORT_mask) begin
      ram_finalTarget[ram_finalTarget_MPORT_addr] <= ram_finalTarget_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_pc[initvar] = _RAND_0[38:0];
  _RAND_1 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_btbResp_target[initvar] = _RAND_1[38:0];
  _RAND_2 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_rasResp_target[initvar] = _RAND_2[38:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_isRas[initvar] = _RAND_3[0:0];
  _RAND_4 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_finalTarget[initvar] = _RAND_4[63:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_5 = {1{`RANDOM}};
  maybe_full = _RAND_5[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Bru(
  input         clock,
  input         reset,
  output        io_bru_iss_exe_ready,
  input         io_bru_iss_exe_valid,
  input         io_bru_iss_exe_bits_fun_jalr,
  input         io_bru_iss_exe_bits_fun_beq,
  input         io_bru_iss_exe_bits_fun_bne,
  input         io_bru_iss_exe_bits_fun_blt,
  input         io_bru_iss_exe_bits_fun_bge,
  input         io_bru_iss_exe_bits_fun_bltu,
  input         io_bru_iss_exe_bits_fun_bgeu,
  input  [5:0]  io_bru_iss_exe_bits_param_rd0,
  input         io_bru_iss_exe_bits_param_is_rvc,
  input  [63:0] io_bru_iss_exe_bits_param_pc,
  input  [63:0] io_bru_iss_exe_bits_param_imm,
  input  [63:0] io_bru_iss_exe_bits_param_dat_op1,
  input  [63:0] io_bru_iss_exe_bits_param_dat_op2,
  input         io_bru_exe_iwb_ready,
  output        io_bru_exe_iwb_valid,
  output [5:0]  io_bru_exe_iwb_bits_rd0,
  output [63:0] io_bru_exe_iwb_bits_res,
  output        io_bftq_ready,
  input         io_bftq_valid,
  input  [38:0] io_bftq_bits_pc,
  input         io_bftq_bits_bimResp_bim_p,
  input         io_bftq_bits_bimResp_bim_h,
  input         io_bftq_bits_isPredictTaken,
  output        io_jftq_ready,
  input         io_jftq_valid,
  input  [38:0] io_jftq_bits_pc,
  input  [38:0] io_jftq_bits_btbResp_target,
  input  [38:0] io_jftq_bits_rasResp_target,
  input         io_jftq_bits_isRas,
  input         io_bctq_ready,
  output        io_bctq_valid,
  output [38:0] io_bctq_bits_pc,
  output        io_bctq_bits_bimResp_bim_p,
  output        io_bctq_bits_bimResp_bim_h,
  output        io_bctq_bits_isPredictTaken,
  output        io_bctq_bits_isFinalTaken,
  output [63:0] io_bctq_bits_finalTarget,
  input         io_jctq_ready,
  output        io_jctq_valid,
  output [38:0] io_jctq_bits_pc,
  output [38:0] io_jctq_bits_btbResp_target,
  output [38:0] io_jctq_bits_rasResp_target,
  output        io_jctq_bits_isRas,
  output [63:0] io_jctq_bits_finalTarget,
  output        io_bcmm_update_valid,
  output [38:0] io_bcmm_update_bits_pc,
  output        io_bcmm_update_bits_bimResp_bim_p,
  output        io_bcmm_update_bits_bimResp_bim_h,
  output        io_bcmm_update_bits_isFinalTaken,
  output        io_jcmm_update_valid,
  output [38:0] io_jcmm_update_bits_pc,
  output [63:0] io_jcmm_update_bits_finalTarget,
  input         io_flush
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
`endif // RANDOMIZE_REG_INIT
  wire  bru_exe_iwb_fifo_clock; // @[Bru.scala 46:32]
  wire  bru_exe_iwb_fifo_reset; // @[Bru.scala 46:32]
  wire  bru_exe_iwb_fifo_io_enq_ready; // @[Bru.scala 46:32]
  wire  bru_exe_iwb_fifo_io_enq_valid; // @[Bru.scala 46:32]
  wire [5:0] bru_exe_iwb_fifo_io_enq_bits_rd0; // @[Bru.scala 46:32]
  wire [63:0] bru_exe_iwb_fifo_io_enq_bits_res; // @[Bru.scala 46:32]
  wire  bru_exe_iwb_fifo_io_deq_ready; // @[Bru.scala 46:32]
  wire  bru_exe_iwb_fifo_io_deq_valid; // @[Bru.scala 46:32]
  wire [5:0] bru_exe_iwb_fifo_io_deq_bits_rd0; // @[Bru.scala 46:32]
  wire [63:0] bru_exe_iwb_fifo_io_deq_bits_res; // @[Bru.scala 46:32]
  wire  bctq_clock; // @[Bru.scala 47:20]
  wire  bctq_reset; // @[Bru.scala 47:20]
  wire  bctq_io_enq_ready; // @[Bru.scala 47:20]
  wire  bctq_io_enq_valid; // @[Bru.scala 47:20]
  wire [38:0] bctq_io_enq_bits_pc; // @[Bru.scala 47:20]
  wire  bctq_io_enq_bits_bimResp_bim_p; // @[Bru.scala 47:20]
  wire  bctq_io_enq_bits_bimResp_bim_h; // @[Bru.scala 47:20]
  wire  bctq_io_enq_bits_isPredictTaken; // @[Bru.scala 47:20]
  wire  bctq_io_enq_bits_isFinalTaken; // @[Bru.scala 47:20]
  wire [63:0] bctq_io_enq_bits_finalTarget; // @[Bru.scala 47:20]
  wire  bctq_io_deq_ready; // @[Bru.scala 47:20]
  wire  bctq_io_deq_valid; // @[Bru.scala 47:20]
  wire [38:0] bctq_io_deq_bits_pc; // @[Bru.scala 47:20]
  wire  bctq_io_deq_bits_bimResp_bim_p; // @[Bru.scala 47:20]
  wire  bctq_io_deq_bits_bimResp_bim_h; // @[Bru.scala 47:20]
  wire  bctq_io_deq_bits_isPredictTaken; // @[Bru.scala 47:20]
  wire  bctq_io_deq_bits_isFinalTaken; // @[Bru.scala 47:20]
  wire [63:0] bctq_io_deq_bits_finalTarget; // @[Bru.scala 47:20]
  wire  jctq_clock; // @[Bru.scala 48:20]
  wire  jctq_reset; // @[Bru.scala 48:20]
  wire  jctq_io_enq_ready; // @[Bru.scala 48:20]
  wire  jctq_io_enq_valid; // @[Bru.scala 48:20]
  wire [38:0] jctq_io_enq_bits_pc; // @[Bru.scala 48:20]
  wire [38:0] jctq_io_enq_bits_btbResp_target; // @[Bru.scala 48:20]
  wire [38:0] jctq_io_enq_bits_rasResp_target; // @[Bru.scala 48:20]
  wire  jctq_io_enq_bits_isRas; // @[Bru.scala 48:20]
  wire [63:0] jctq_io_enq_bits_finalTarget; // @[Bru.scala 48:20]
  wire  jctq_io_deq_ready; // @[Bru.scala 48:20]
  wire  jctq_io_deq_valid; // @[Bru.scala 48:20]
  wire [38:0] jctq_io_deq_bits_pc; // @[Bru.scala 48:20]
  wire [38:0] jctq_io_deq_bits_btbResp_target; // @[Bru.scala 48:20]
  wire [38:0] jctq_io_deq_bits_rasResp_target; // @[Bru.scala 48:20]
  wire  jctq_io_deq_bits_isRas; // @[Bru.scala 48:20]
  wire [63:0] jctq_io_deq_bits_finalTarget; // @[Bru.scala 48:20]
  reg  misPredict_locker; // @[Bru.scala 50:34]
  wire  _is_branchTaken_T = io_bru_iss_exe_bits_param_dat_op1 == io_bru_iss_exe_bits_param_dat_op2; // @[Bru.scala 62:42]
  wire  _is_branchTaken_T_1 = io_bru_iss_exe_bits_param_dat_op1 != io_bru_iss_exe_bits_param_dat_op2; // @[Bru.scala 63:42]
  wire  _is_branchTaken_T_4 = $signed(io_bru_iss_exe_bits_param_dat_op1) < $signed(io_bru_iss_exe_bits_param_dat_op2); // @[Bru.scala 64:49]
  wire  _is_branchTaken_T_7 = $signed(io_bru_iss_exe_bits_param_dat_op1) >= $signed(io_bru_iss_exe_bits_param_dat_op2); // @[Bru.scala 65:49]
  wire  _is_branchTaken_T_8 = io_bru_iss_exe_bits_param_dat_op1 < io_bru_iss_exe_bits_param_dat_op2; // @[Bru.scala 66:42]
  wire  _is_branchTaken_T_9 = io_bru_iss_exe_bits_param_dat_op1 >= io_bru_iss_exe_bits_param_dat_op2; // @[Bru.scala 67:42]
  wire  is_branchTaken = io_bru_iss_exe_bits_fun_beq & _is_branchTaken_T | io_bru_iss_exe_bits_fun_bne &
    _is_branchTaken_T_1 | io_bru_iss_exe_bits_fun_blt & _is_branchTaken_T_4 | io_bru_iss_exe_bits_fun_bge &
    _is_branchTaken_T_7 | io_bru_iss_exe_bits_fun_bltu & _is_branchTaken_T_8 | io_bru_iss_exe_bits_fun_bgeu &
    _is_branchTaken_T_9; // @[Mux.scala 27:73]
  wire [63:0] _bctq_io_enq_bits_finalTarget_T_1 = io_bru_iss_exe_bits_param_pc + io_bru_iss_exe_bits_param_imm; // @[Bru.scala 72:61]
  wire [2:0] _bctq_io_enq_bits_finalTarget_T_2 = io_bru_iss_exe_bits_param_is_rvc ? 3'h2 : 3'h4; // @[Bru.scala 72:78]
  wire [63:0] _GEN_2 = {{61'd0}, _bctq_io_enq_bits_finalTarget_T_2}; // @[Bru.scala 72:73]
  wire [63:0] _bctq_io_enq_bits_finalTarget_T_4 = io_bru_iss_exe_bits_param_pc + _GEN_2; // @[Bru.scala 72:73]
  wire [63:0] _jctq_io_enq_bits_finalTarget_T_1 = io_bru_iss_exe_bits_param_dat_op1 + io_bru_iss_exe_bits_param_imm; // @[Bru.scala 79:40]
  wire  _io_bcmm_update_bits_T = io_bctq_ready & io_bctq_valid; // @[Decoupled.scala 52:35]
  wire  _io_jcmm_update_bits_T = io_jctq_ready & io_jctq_valid; // @[Decoupled.scala 52:35]
  wire  _T = bctq_io_enq_ready & bctq_io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _T_1 = bctq_io_enq_bits_isPredictTaken != bctq_io_enq_bits_isFinalTaken; // @[frontend.scala 245:37]
  wire  _T_3 = jctq_io_enq_ready & jctq_io_enq_valid; // @[Decoupled.scala 52:35]
  wire [63:0] _GEN_3 = {{25'd0}, jctq_io_enq_bits_rasResp_target}; // @[frontend.scala 250:48]
  wire [63:0] _GEN_4 = {{25'd0}, jctq_io_enq_bits_btbResp_target}; // @[frontend.scala 250:80]
  wire  _T_6 = jctq_io_enq_bits_isRas ? _GEN_3 != jctq_io_enq_bits_finalTarget : _GEN_4 != jctq_io_enq_bits_finalTarget; // @[frontend.scala 250:25]
  wire  _GEN_0 = _T & _T_1 | _T_3 & _T_6 | misPredict_locker; // @[Bru.scala 97:122 98:23 50:34]
  wire  _io_bftq_ready_T = io_bru_iss_exe_ready & io_bru_iss_exe_valid; // @[Decoupled.scala 52:35]
  wire  _io_bftq_ready_T_5 = io_bru_iss_exe_bits_fun_beq | io_bru_iss_exe_bits_fun_bne | io_bru_iss_exe_bits_fun_blt |
    io_bru_iss_exe_bits_fun_bge | io_bru_iss_exe_bits_fun_bltu | io_bru_iss_exe_bits_fun_bgeu; // @[riscv_isa.scala 93:48]
  wire  _io_bftq_ready_T_6 = _io_bftq_ready_T & _io_bftq_ready_T_5; // @[Bru.scala 112:40]
  wire  _io_jftq_ready_T_1 = _io_bftq_ready_T & io_bru_iss_exe_bits_fun_jalr; // @[Bru.scala 113:40]
  wire  _T_14 = ~reset; // @[Bru.scala 124:9]
  wire  _T_16 = io_jftq_ready & io_jftq_valid; // @[Decoupled.scala 52:35]
  wire  _T_34 = io_bftq_ready & io_bftq_valid; // @[Decoupled.scala 52:35]
  wire  _T_41 = bru_exe_iwb_fifo_io_enq_ready & bru_exe_iwb_fifo_io_enq_valid; // @[Decoupled.scala 52:35]
  Queue_7 bru_exe_iwb_fifo ( // @[Bru.scala 46:32]
    .clock(bru_exe_iwb_fifo_clock),
    .reset(bru_exe_iwb_fifo_reset),
    .io_enq_ready(bru_exe_iwb_fifo_io_enq_ready),
    .io_enq_valid(bru_exe_iwb_fifo_io_enq_valid),
    .io_enq_bits_rd0(bru_exe_iwb_fifo_io_enq_bits_rd0),
    .io_enq_bits_res(bru_exe_iwb_fifo_io_enq_bits_res),
    .io_deq_ready(bru_exe_iwb_fifo_io_deq_ready),
    .io_deq_valid(bru_exe_iwb_fifo_io_deq_valid),
    .io_deq_bits_rd0(bru_exe_iwb_fifo_io_deq_bits_rd0),
    .io_deq_bits_res(bru_exe_iwb_fifo_io_deq_bits_res)
  );
  Queue_9 bctq ( // @[Bru.scala 47:20]
    .clock(bctq_clock),
    .reset(bctq_reset),
    .io_enq_ready(bctq_io_enq_ready),
    .io_enq_valid(bctq_io_enq_valid),
    .io_enq_bits_pc(bctq_io_enq_bits_pc),
    .io_enq_bits_bimResp_bim_p(bctq_io_enq_bits_bimResp_bim_p),
    .io_enq_bits_bimResp_bim_h(bctq_io_enq_bits_bimResp_bim_h),
    .io_enq_bits_isPredictTaken(bctq_io_enq_bits_isPredictTaken),
    .io_enq_bits_isFinalTaken(bctq_io_enq_bits_isFinalTaken),
    .io_enq_bits_finalTarget(bctq_io_enq_bits_finalTarget),
    .io_deq_ready(bctq_io_deq_ready),
    .io_deq_valid(bctq_io_deq_valid),
    .io_deq_bits_pc(bctq_io_deq_bits_pc),
    .io_deq_bits_bimResp_bim_p(bctq_io_deq_bits_bimResp_bim_p),
    .io_deq_bits_bimResp_bim_h(bctq_io_deq_bits_bimResp_bim_h),
    .io_deq_bits_isPredictTaken(bctq_io_deq_bits_isPredictTaken),
    .io_deq_bits_isFinalTaken(bctq_io_deq_bits_isFinalTaken),
    .io_deq_bits_finalTarget(bctq_io_deq_bits_finalTarget)
  );
  Queue_10 jctq ( // @[Bru.scala 48:20]
    .clock(jctq_clock),
    .reset(jctq_reset),
    .io_enq_ready(jctq_io_enq_ready),
    .io_enq_valid(jctq_io_enq_valid),
    .io_enq_bits_pc(jctq_io_enq_bits_pc),
    .io_enq_bits_btbResp_target(jctq_io_enq_bits_btbResp_target),
    .io_enq_bits_rasResp_target(jctq_io_enq_bits_rasResp_target),
    .io_enq_bits_isRas(jctq_io_enq_bits_isRas),
    .io_enq_bits_finalTarget(jctq_io_enq_bits_finalTarget),
    .io_deq_ready(jctq_io_deq_ready),
    .io_deq_valid(jctq_io_deq_valid),
    .io_deq_bits_pc(jctq_io_deq_bits_pc),
    .io_deq_bits_btbResp_target(jctq_io_deq_bits_btbResp_target),
    .io_deq_bits_rasResp_target(jctq_io_deq_bits_rasResp_target),
    .io_deq_bits_isRas(jctq_io_deq_bits_isRas),
    .io_deq_bits_finalTarget(jctq_io_deq_bits_finalTarget)
  );
  assign io_bru_iss_exe_ready = bru_exe_iwb_fifo_io_enq_ready & bctq_io_enq_ready & jctq_io_enq_ready & ~
    misPredict_locker; // @[Bru.scala 110:97]
  assign io_bru_exe_iwb_valid = bru_exe_iwb_fifo_io_deq_valid; // @[Bru.scala 101:18]
  assign io_bru_exe_iwb_bits_rd0 = bru_exe_iwb_fifo_io_deq_bits_rd0; // @[Bru.scala 101:18]
  assign io_bru_exe_iwb_bits_res = bru_exe_iwb_fifo_io_deq_bits_res; // @[Bru.scala 101:18]
  assign io_bftq_ready = _io_bftq_ready_T & _io_bftq_ready_T_5; // @[Bru.scala 112:40]
  assign io_jftq_ready = _io_bftq_ready_T & io_bru_iss_exe_bits_fun_jalr; // @[Bru.scala 113:40]
  assign io_bctq_valid = bctq_io_deq_valid; // @[Bru.scala 102:11]
  assign io_bctq_bits_pc = bctq_io_deq_bits_pc; // @[Bru.scala 102:11]
  assign io_bctq_bits_bimResp_bim_p = bctq_io_deq_bits_bimResp_bim_p; // @[Bru.scala 102:11]
  assign io_bctq_bits_bimResp_bim_h = bctq_io_deq_bits_bimResp_bim_h; // @[Bru.scala 102:11]
  assign io_bctq_bits_isPredictTaken = bctq_io_deq_bits_isPredictTaken; // @[Bru.scala 102:11]
  assign io_bctq_bits_isFinalTaken = bctq_io_deq_bits_isFinalTaken; // @[Bru.scala 102:11]
  assign io_bctq_bits_finalTarget = bctq_io_deq_bits_finalTarget; // @[Bru.scala 102:11]
  assign io_jctq_valid = jctq_io_deq_valid; // @[Bru.scala 103:11]
  assign io_jctq_bits_pc = jctq_io_deq_bits_pc; // @[Bru.scala 103:11]
  assign io_jctq_bits_btbResp_target = jctq_io_deq_bits_btbResp_target; // @[Bru.scala 103:11]
  assign io_jctq_bits_rasResp_target = jctq_io_deq_bits_rasResp_target; // @[Bru.scala 103:11]
  assign io_jctq_bits_isRas = jctq_io_deq_bits_isRas; // @[Bru.scala 103:11]
  assign io_jctq_bits_finalTarget = jctq_io_deq_bits_finalTarget; // @[Bru.scala 103:11]
  assign io_bcmm_update_valid = io_bctq_ready & io_bctq_valid; // @[Decoupled.scala 52:35]
  assign io_bcmm_update_bits_pc = _io_bcmm_update_bits_T ? io_bctq_bits_pc : 39'h0; // @[Bru.scala 85:30]
  assign io_bcmm_update_bits_bimResp_bim_p = _io_bcmm_update_bits_T & io_bctq_bits_bimResp_bim_p; // @[Bru.scala 85:30]
  assign io_bcmm_update_bits_bimResp_bim_h = _io_bcmm_update_bits_T & io_bctq_bits_bimResp_bim_h; // @[Bru.scala 85:30]
  assign io_bcmm_update_bits_isFinalTaken = _io_bcmm_update_bits_T & io_bctq_bits_isFinalTaken; // @[Bru.scala 85:30]
  assign io_jcmm_update_valid = io_jctq_ready & io_jctq_valid; // @[Decoupled.scala 52:35]
  assign io_jcmm_update_bits_pc = _io_jcmm_update_bits_T ? io_jctq_bits_pc : 39'h0; // @[Bru.scala 87:30]
  assign io_jcmm_update_bits_finalTarget = _io_jcmm_update_bits_T ? io_jctq_bits_finalTarget : 64'h0; // @[Bru.scala 87:30]
  assign bru_exe_iwb_fifo_clock = clock;
  assign bru_exe_iwb_fifo_reset = reset | io_flush; // @[Bru.scala 105:42]
  assign bru_exe_iwb_fifo_io_enq_valid = io_bru_iss_exe_ready & io_bru_iss_exe_valid; // @[Decoupled.scala 52:35]
  assign bru_exe_iwb_fifo_io_enq_bits_rd0 = io_bru_iss_exe_bits_param_rd0; // @[Bru.scala 120:36]
  assign bru_exe_iwb_fifo_io_enq_bits_res = io_bru_iss_exe_bits_param_pc + _GEN_2; // @[Bru.scala 119:42]
  assign bru_exe_iwb_fifo_io_deq_ready = io_bru_exe_iwb_ready; // @[Bru.scala 101:18]
  assign bctq_clock = clock;
  assign bctq_reset = reset | io_flush; // @[Bru.scala 106:30]
  assign bctq_io_enq_valid = _io_bftq_ready_T & _io_bftq_ready_T_5; // @[Bru.scala 116:44]
  assign bctq_io_enq_bits_pc = io_bftq_bits_pc; // @[Bru.scala 70:63]
  assign bctq_io_enq_bits_bimResp_bim_p = io_bftq_bits_bimResp_bim_p; // @[Bru.scala 70:63]
  assign bctq_io_enq_bits_bimResp_bim_h = io_bftq_bits_bimResp_bim_h; // @[Bru.scala 70:63]
  assign bctq_io_enq_bits_isPredictTaken = io_bftq_bits_isPredictTaken; // @[Bru.scala 70:63]
  assign bctq_io_enq_bits_isFinalTaken = io_bru_iss_exe_bits_fun_beq & _is_branchTaken_T | io_bru_iss_exe_bits_fun_bne
     & _is_branchTaken_T_1 | io_bru_iss_exe_bits_fun_blt & _is_branchTaken_T_4 | io_bru_iss_exe_bits_fun_bge &
    _is_branchTaken_T_7 | io_bru_iss_exe_bits_fun_bltu & _is_branchTaken_T_8 | io_bru_iss_exe_bits_fun_bgeu &
    _is_branchTaken_T_9; // @[Mux.scala 27:73]
  assign bctq_io_enq_bits_finalTarget = is_branchTaken ? _bctq_io_enq_bits_finalTarget_T_1 :
    _bctq_io_enq_bits_finalTarget_T_4; // @[Bru.scala 72:39]
  assign bctq_io_deq_ready = io_bctq_ready; // @[Bru.scala 102:11]
  assign jctq_clock = clock;
  assign jctq_reset = reset | io_flush; // @[Bru.scala 107:30]
  assign jctq_io_enq_valid = _io_bftq_ready_T & io_bru_iss_exe_bits_fun_jalr; // @[Bru.scala 117:44]
  assign jctq_io_enq_bits_pc = io_jftq_bits_pc; // @[Bru.scala 78:61]
  assign jctq_io_enq_bits_btbResp_target = io_jftq_bits_btbResp_target; // @[Bru.scala 78:61]
  assign jctq_io_enq_bits_rasResp_target = io_jftq_bits_rasResp_target; // @[Bru.scala 78:61]
  assign jctq_io_enq_bits_isRas = io_jftq_bits_isRas; // @[Bru.scala 78:61]
  assign jctq_io_enq_bits_finalTarget = {_jctq_io_enq_bits_finalTarget_T_1[63:1], 1'h0}; // @[Bru.scala 79:52]
  assign jctq_io_deq_ready = io_jctq_ready; // @[Bru.scala 103:11]
  always @(posedge clock) begin
    if (reset) begin // @[Bru.scala 50:34]
      misPredict_locker <= 1'h0; // @[Bru.scala 50:34]
    end else if (io_flush) begin // @[Bru.scala 95:20]
      misPredict_locker <= 1'h0; // @[Bru.scala 96:23]
    end else begin
      misPredict_locker <= _GEN_0;
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(_T_3 == _io_jftq_ready_T_1)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Bru.scala:124 assert( jctq.io.enq.fire === (io.bru_iss_exe.fire & io.bru_iss_exe.bits.fun.jalr) )\n"
            ); // @[Bru.scala 124:9]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_3 == _io_jftq_ready_T_1) & ~reset) begin
          $fatal; // @[Bru.scala 124:9]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_14 & ~(_T_16 == _T_3)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Bru.scala:125 assert( io.jftq.fire === jctq.io.enq.fire )\n"); // @[Bru.scala 125:9]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_16 == _T_3) & _T_14) begin
          $fatal; // @[Bru.scala 125:9]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_14 & ~(_T == _io_bftq_ready_T_6)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Bru.scala:126 assert( bctq.io.enq.fire === (io.bru_iss_exe.fire & io.bru_iss_exe.bits.fun.is_branch)  )\n"
            ); // @[Bru.scala 126:9]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T == _io_bftq_ready_T_6) & _T_14) begin
          $fatal; // @[Bru.scala 126:9]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_14 & ~(_T_34 == _T)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Bru.scala:127 assert( io.bftq.fire === bctq.io.enq.fire )\n"); // @[Bru.scala 127:9]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_34 == _T) & _T_14) begin
          $fatal; // @[Bru.scala 127:9]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_14 & ~(_io_bftq_ready_T == _T_41)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Bru.scala:128 assert( io.bru_iss_exe.fire === bru_exe_iwb_fifo.io.enq.fire )\n"); // @[Bru.scala 128:9]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_io_bftq_ready_T == _T_41) & _T_14) begin
          $fatal; // @[Bru.scala 128:9]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  misPredict_locker = _RAND_0[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Store_queue(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input         io_enq_bits_fun_lb,
  input         io_enq_bits_fun_lh,
  input         io_enq_bits_fun_lw,
  input         io_enq_bits_fun_ld,
  input         io_enq_bits_fun_lbu,
  input         io_enq_bits_fun_lhu,
  input         io_enq_bits_fun_lwu,
  input         io_enq_bits_fun_sb,
  input         io_enq_bits_fun_sh,
  input         io_enq_bits_fun_sw,
  input         io_enq_bits_fun_sd,
  input         io_enq_bits_fun_lr_w,
  input         io_enq_bits_fun_sc_w,
  input         io_enq_bits_fun_amoswap_w,
  input         io_enq_bits_fun_amoadd_w,
  input         io_enq_bits_fun_amoxor_w,
  input         io_enq_bits_fun_amoand_w,
  input         io_enq_bits_fun_amoor_w,
  input         io_enq_bits_fun_amomin_w,
  input         io_enq_bits_fun_amomax_w,
  input         io_enq_bits_fun_amominu_w,
  input         io_enq_bits_fun_amomaxu_w,
  input         io_enq_bits_fun_lr_d,
  input         io_enq_bits_fun_sc_d,
  input         io_enq_bits_fun_amoswap_d,
  input         io_enq_bits_fun_amoadd_d,
  input         io_enq_bits_fun_amoxor_d,
  input         io_enq_bits_fun_amoand_d,
  input         io_enq_bits_fun_amoor_d,
  input         io_enq_bits_fun_amomin_d,
  input         io_enq_bits_fun_amomax_d,
  input         io_enq_bits_fun_amominu_d,
  input         io_enq_bits_fun_amomaxu_d,
  input         io_enq_bits_fun_flw,
  input         io_enq_bits_fun_fsw,
  input         io_enq_bits_fun_fld,
  input         io_enq_bits_fun_fsd,
  input  [5:0]  io_enq_bits_param_rd0,
  input  [63:0] io_enq_bits_param_dat_op1,
  input  [63:0] io_enq_bits_param_dat_op2,
  input         io_deq_ready,
  output        io_deq_valid,
  output        io_deq_bits_fun_lb,
  output        io_deq_bits_fun_lh,
  output        io_deq_bits_fun_lw,
  output        io_deq_bits_fun_ld,
  output        io_deq_bits_fun_lbu,
  output        io_deq_bits_fun_lhu,
  output        io_deq_bits_fun_lwu,
  output        io_deq_bits_fun_sb,
  output        io_deq_bits_fun_sh,
  output        io_deq_bits_fun_sw,
  output        io_deq_bits_fun_sd,
  output        io_deq_bits_fun_lr_w,
  output        io_deq_bits_fun_sc_w,
  output        io_deq_bits_fun_amoswap_w,
  output        io_deq_bits_fun_amoadd_w,
  output        io_deq_bits_fun_amoxor_w,
  output        io_deq_bits_fun_amoand_w,
  output        io_deq_bits_fun_amoor_w,
  output        io_deq_bits_fun_amomin_w,
  output        io_deq_bits_fun_amomax_w,
  output        io_deq_bits_fun_amominu_w,
  output        io_deq_bits_fun_amomaxu_w,
  output        io_deq_bits_fun_lr_d,
  output        io_deq_bits_fun_sc_d,
  output        io_deq_bits_fun_amoswap_d,
  output        io_deq_bits_fun_amoadd_d,
  output        io_deq_bits_fun_amoxor_d,
  output        io_deq_bits_fun_amoand_d,
  output        io_deq_bits_fun_amoor_d,
  output        io_deq_bits_fun_amomin_d,
  output        io_deq_bits_fun_amomax_d,
  output        io_deq_bits_fun_amominu_d,
  output        io_deq_bits_fun_amomaxu_d,
  output        io_deq_bits_fun_flw,
  output        io_deq_bits_fun_fsw,
  output        io_deq_bits_fun_fld,
  output        io_deq_bits_fun_fsd,
  output [5:0]  io_deq_bits_param_rd0,
  output [63:0] io_deq_bits_param_dat_op1,
  output [63:0] io_deq_bits_param_dat_op2,
  input         io_cmm_lsu_is_amo_pending,
  input         io_cmm_lsu_is_store_commit_0,
  output        io_is_empty,
  input         io_overlapReq_valid,
  input  [31:0] io_overlapReq_bits_paddr,
  output        io_overlapResp_valid,
  output [63:0] io_overlapResp_bits_wdata,
  output [7:0]  io_overlapResp_bits_wstrb,
  input         io_flush
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
  reg [31:0] _RAND_33;
  reg [31:0] _RAND_34;
  reg [31:0] _RAND_35;
  reg [31:0] _RAND_36;
  reg [31:0] _RAND_37;
  reg [63:0] _RAND_38;
  reg [63:0] _RAND_39;
  reg [31:0] _RAND_40;
  reg [31:0] _RAND_41;
  reg [31:0] _RAND_42;
  reg [31:0] _RAND_43;
  reg [31:0] _RAND_44;
  reg [31:0] _RAND_45;
  reg [31:0] _RAND_46;
  reg [31:0] _RAND_47;
  reg [31:0] _RAND_48;
  reg [31:0] _RAND_49;
  reg [31:0] _RAND_50;
  reg [31:0] _RAND_51;
  reg [31:0] _RAND_52;
  reg [31:0] _RAND_53;
  reg [31:0] _RAND_54;
  reg [31:0] _RAND_55;
  reg [31:0] _RAND_56;
  reg [31:0] _RAND_57;
  reg [31:0] _RAND_58;
  reg [31:0] _RAND_59;
  reg [31:0] _RAND_60;
  reg [31:0] _RAND_61;
  reg [31:0] _RAND_62;
  reg [31:0] _RAND_63;
  reg [31:0] _RAND_64;
  reg [31:0] _RAND_65;
  reg [31:0] _RAND_66;
  reg [31:0] _RAND_67;
  reg [31:0] _RAND_68;
  reg [31:0] _RAND_69;
  reg [31:0] _RAND_70;
  reg [31:0] _RAND_71;
  reg [31:0] _RAND_72;
  reg [31:0] _RAND_73;
  reg [31:0] _RAND_74;
  reg [31:0] _RAND_75;
  reg [31:0] _RAND_76;
  reg [31:0] _RAND_77;
  reg [63:0] _RAND_78;
  reg [63:0] _RAND_79;
  reg [31:0] _RAND_80;
  reg [31:0] _RAND_81;
  reg [31:0] _RAND_82;
  reg [31:0] _RAND_83;
  reg [31:0] _RAND_84;
`endif // RANDOMIZE_REG_INIT
  reg  buff_0_fun_lb; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_lh; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_lw; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_ld; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_lbu; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_lhu; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_lwu; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_sb; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_sh; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_sw; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_sd; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_lr_w; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_sc_w; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_amoswap_w; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_amoadd_w; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_amoxor_w; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_amoand_w; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_amoor_w; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_amomin_w; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_amomax_w; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_amominu_w; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_amomaxu_w; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_lr_d; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_sc_d; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_amoswap_d; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_amoadd_d; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_amoxor_d; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_amoand_d; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_amoor_d; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_amomin_d; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_amomax_d; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_amominu_d; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_amomaxu_d; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_flw; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_fsw; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_fld; // @[Store_queue.scala 54:21]
  reg  buff_0_fun_fsd; // @[Store_queue.scala 54:21]
  reg [5:0] buff_0_param_rd0; // @[Store_queue.scala 54:21]
  reg [63:0] buff_0_param_dat_op1; // @[Store_queue.scala 54:21]
  reg [63:0] buff_0_param_dat_op2; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_lb; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_lh; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_lw; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_ld; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_lbu; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_lhu; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_lwu; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_sb; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_sh; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_sw; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_sd; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_lr_w; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_sc_w; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_amoswap_w; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_amoadd_w; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_amoxor_w; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_amoand_w; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_amoor_w; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_amomin_w; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_amomax_w; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_amominu_w; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_amomaxu_w; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_lr_d; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_sc_d; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_amoswap_d; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_amoadd_d; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_amoxor_d; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_amoand_d; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_amoor_d; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_amomin_d; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_amomax_d; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_amominu_d; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_amomaxu_d; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_flw; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_fsw; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_fld; // @[Store_queue.scala 54:21]
  reg  buff_1_fun_fsd; // @[Store_queue.scala 54:21]
  reg [5:0] buff_1_param_rd0; // @[Store_queue.scala 54:21]
  reg [63:0] buff_1_param_dat_op1; // @[Store_queue.scala 54:21]
  reg [63:0] buff_1_param_dat_op2; // @[Store_queue.scala 54:21]
  reg [1:0] cm_ptr_reg; // @[Store_queue.scala 56:27]
  reg [1:0] wr_ptr_reg; // @[Store_queue.scala 57:27]
  reg [1:0] rd_ptr_reg; // @[Store_queue.scala 58:27]
  wire  wr_ptr = wr_ptr_reg[0]; // @[Store_queue.scala 61:26]
  wire  rd_ptr = rd_ptr_reg[0]; // @[Store_queue.scala 62:26]
  wire  full = wr_ptr_reg[1] != rd_ptr_reg[1] & wr_ptr == rd_ptr; // @[Store_queue.scala 64:54]
  wire  emty = cm_ptr_reg == rd_ptr_reg; // @[Store_queue.scala 65:25]
  reg  is_amo; // @[Store_queue.scala 69:23]
  reg  is_amo_pre; // @[Store_queue.scala 76:29]
  wire  is_amo_pos = io_cmm_lsu_is_amo_pending & ~is_amo_pre; // @[Store_queue.scala 77:48]
  wire  _T_1 = is_amo & ~io_is_empty; // @[Store_queue.scala 82:24]
  wire  _GEN_0 = is_amo & ~io_is_empty ? 1'h0 : is_amo; // @[Store_queue.scala 82:40 83:14 69:23]
  wire  _GEN_1 = is_amo_pos | _GEN_0; // @[Store_queue.scala 80:31 81:14]
  wire  _GEN_47 = rd_ptr ? buff_1_fun_lb : buff_0_fun_lb; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_48 = rd_ptr ? buff_1_fun_lh : buff_0_fun_lh; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_49 = rd_ptr ? buff_1_fun_lw : buff_0_fun_lw; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_50 = rd_ptr ? buff_1_fun_ld : buff_0_fun_ld; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_51 = rd_ptr ? buff_1_fun_lbu : buff_0_fun_lbu; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_52 = rd_ptr ? buff_1_fun_lhu : buff_0_fun_lhu; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_53 = rd_ptr ? buff_1_fun_lwu : buff_0_fun_lwu; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_54 = rd_ptr ? buff_1_fun_sb : buff_0_fun_sb; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_55 = rd_ptr ? buff_1_fun_sh : buff_0_fun_sh; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_56 = rd_ptr ? buff_1_fun_sw : buff_0_fun_sw; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_57 = rd_ptr ? buff_1_fun_sd : buff_0_fun_sd; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_61 = rd_ptr ? buff_1_fun_lr_w : buff_0_fun_lr_w; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_62 = rd_ptr ? buff_1_fun_sc_w : buff_0_fun_sc_w; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_63 = rd_ptr ? buff_1_fun_amoswap_w : buff_0_fun_amoswap_w; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_64 = rd_ptr ? buff_1_fun_amoadd_w : buff_0_fun_amoadd_w; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_65 = rd_ptr ? buff_1_fun_amoxor_w : buff_0_fun_amoxor_w; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_66 = rd_ptr ? buff_1_fun_amoand_w : buff_0_fun_amoand_w; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_67 = rd_ptr ? buff_1_fun_amoor_w : buff_0_fun_amoor_w; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_68 = rd_ptr ? buff_1_fun_amomin_w : buff_0_fun_amomin_w; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_69 = rd_ptr ? buff_1_fun_amomax_w : buff_0_fun_amomax_w; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_70 = rd_ptr ? buff_1_fun_amominu_w : buff_0_fun_amominu_w; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_71 = rd_ptr ? buff_1_fun_amomaxu_w : buff_0_fun_amomaxu_w; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_72 = rd_ptr ? buff_1_fun_lr_d : buff_0_fun_lr_d; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_73 = rd_ptr ? buff_1_fun_sc_d : buff_0_fun_sc_d; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_74 = rd_ptr ? buff_1_fun_amoswap_d : buff_0_fun_amoswap_d; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_75 = rd_ptr ? buff_1_fun_amoadd_d : buff_0_fun_amoadd_d; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_76 = rd_ptr ? buff_1_fun_amoxor_d : buff_0_fun_amoxor_d; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_77 = rd_ptr ? buff_1_fun_amoand_d : buff_0_fun_amoand_d; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_78 = rd_ptr ? buff_1_fun_amoor_d : buff_0_fun_amoor_d; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_79 = rd_ptr ? buff_1_fun_amomin_d : buff_0_fun_amomin_d; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_80 = rd_ptr ? buff_1_fun_amomax_d : buff_0_fun_amomax_d; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_81 = rd_ptr ? buff_1_fun_amominu_d : buff_0_fun_amominu_d; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_82 = rd_ptr ? buff_1_fun_amomaxu_d : buff_0_fun_amomaxu_d; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_83 = rd_ptr ? buff_1_fun_flw : buff_0_fun_flw; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_84 = rd_ptr ? buff_1_fun_fsw : buff_0_fun_fsw; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_85 = rd_ptr ? buff_1_fun_fld : buff_0_fun_fld; // @[Store_queue.scala 92:{21,21}]
  wire  _GEN_86 = rd_ptr ? buff_1_fun_fsd : buff_0_fun_fsd; // @[Store_queue.scala 92:{21,21}]
  wire [5:0] _GEN_87 = rd_ptr ? buff_1_param_rd0 : buff_0_param_rd0; // @[Store_queue.scala 92:{21,21}]
  wire [63:0] _GEN_88 = rd_ptr ? buff_1_param_dat_op1 : buff_0_param_dat_op1; // @[Store_queue.scala 92:{21,21}]
  wire [63:0] _GEN_89 = rd_ptr ? buff_1_param_dat_op2 : buff_0_param_dat_op2; // @[Store_queue.scala 92:{21,21}]
  wire [1:0] _wr_ptr_reg_T_1 = cm_ptr_reg + 2'h1; // @[Store_queue.scala 100:86]
  wire  _T_5 = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_92 = ~wr_ptr ? io_enq_bits_fun_lb : buff_0_fun_lb; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_93 = wr_ptr ? io_enq_bits_fun_lb : buff_1_fun_lb; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_94 = ~wr_ptr ? io_enq_bits_fun_lh : buff_0_fun_lh; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_95 = wr_ptr ? io_enq_bits_fun_lh : buff_1_fun_lh; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_96 = ~wr_ptr ? io_enq_bits_fun_lw : buff_0_fun_lw; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_97 = wr_ptr ? io_enq_bits_fun_lw : buff_1_fun_lw; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_98 = ~wr_ptr ? io_enq_bits_fun_ld : buff_0_fun_ld; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_99 = wr_ptr ? io_enq_bits_fun_ld : buff_1_fun_ld; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_100 = ~wr_ptr ? io_enq_bits_fun_lbu : buff_0_fun_lbu; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_101 = wr_ptr ? io_enq_bits_fun_lbu : buff_1_fun_lbu; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_102 = ~wr_ptr ? io_enq_bits_fun_lhu : buff_0_fun_lhu; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_103 = wr_ptr ? io_enq_bits_fun_lhu : buff_1_fun_lhu; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_104 = ~wr_ptr ? io_enq_bits_fun_lwu : buff_0_fun_lwu; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_105 = wr_ptr ? io_enq_bits_fun_lwu : buff_1_fun_lwu; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_106 = ~wr_ptr ? io_enq_bits_fun_sb : buff_0_fun_sb; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_107 = wr_ptr ? io_enq_bits_fun_sb : buff_1_fun_sb; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_108 = ~wr_ptr ? io_enq_bits_fun_sh : buff_0_fun_sh; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_109 = wr_ptr ? io_enq_bits_fun_sh : buff_1_fun_sh; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_110 = ~wr_ptr ? io_enq_bits_fun_sw : buff_0_fun_sw; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_111 = wr_ptr ? io_enq_bits_fun_sw : buff_1_fun_sw; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_112 = ~wr_ptr ? io_enq_bits_fun_sd : buff_0_fun_sd; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_113 = wr_ptr ? io_enq_bits_fun_sd : buff_1_fun_sd; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_120 = ~wr_ptr ? io_enq_bits_fun_lr_w : buff_0_fun_lr_w; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_121 = wr_ptr ? io_enq_bits_fun_lr_w : buff_1_fun_lr_w; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_122 = ~wr_ptr ? io_enq_bits_fun_sc_w : buff_0_fun_sc_w; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_123 = wr_ptr ? io_enq_bits_fun_sc_w : buff_1_fun_sc_w; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_124 = ~wr_ptr ? io_enq_bits_fun_amoswap_w : buff_0_fun_amoswap_w; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_125 = wr_ptr ? io_enq_bits_fun_amoswap_w : buff_1_fun_amoswap_w; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_126 = ~wr_ptr ? io_enq_bits_fun_amoadd_w : buff_0_fun_amoadd_w; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_127 = wr_ptr ? io_enq_bits_fun_amoadd_w : buff_1_fun_amoadd_w; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_128 = ~wr_ptr ? io_enq_bits_fun_amoxor_w : buff_0_fun_amoxor_w; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_129 = wr_ptr ? io_enq_bits_fun_amoxor_w : buff_1_fun_amoxor_w; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_130 = ~wr_ptr ? io_enq_bits_fun_amoand_w : buff_0_fun_amoand_w; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_131 = wr_ptr ? io_enq_bits_fun_amoand_w : buff_1_fun_amoand_w; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_132 = ~wr_ptr ? io_enq_bits_fun_amoor_w : buff_0_fun_amoor_w; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_133 = wr_ptr ? io_enq_bits_fun_amoor_w : buff_1_fun_amoor_w; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_134 = ~wr_ptr ? io_enq_bits_fun_amomin_w : buff_0_fun_amomin_w; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_135 = wr_ptr ? io_enq_bits_fun_amomin_w : buff_1_fun_amomin_w; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_136 = ~wr_ptr ? io_enq_bits_fun_amomax_w : buff_0_fun_amomax_w; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_137 = wr_ptr ? io_enq_bits_fun_amomax_w : buff_1_fun_amomax_w; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_138 = ~wr_ptr ? io_enq_bits_fun_amominu_w : buff_0_fun_amominu_w; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_139 = wr_ptr ? io_enq_bits_fun_amominu_w : buff_1_fun_amominu_w; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_140 = ~wr_ptr ? io_enq_bits_fun_amomaxu_w : buff_0_fun_amomaxu_w; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_141 = wr_ptr ? io_enq_bits_fun_amomaxu_w : buff_1_fun_amomaxu_w; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_142 = ~wr_ptr ? io_enq_bits_fun_lr_d : buff_0_fun_lr_d; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_143 = wr_ptr ? io_enq_bits_fun_lr_d : buff_1_fun_lr_d; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_144 = ~wr_ptr ? io_enq_bits_fun_sc_d : buff_0_fun_sc_d; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_145 = wr_ptr ? io_enq_bits_fun_sc_d : buff_1_fun_sc_d; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_146 = ~wr_ptr ? io_enq_bits_fun_amoswap_d : buff_0_fun_amoswap_d; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_147 = wr_ptr ? io_enq_bits_fun_amoswap_d : buff_1_fun_amoswap_d; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_148 = ~wr_ptr ? io_enq_bits_fun_amoadd_d : buff_0_fun_amoadd_d; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_149 = wr_ptr ? io_enq_bits_fun_amoadd_d : buff_1_fun_amoadd_d; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_150 = ~wr_ptr ? io_enq_bits_fun_amoxor_d : buff_0_fun_amoxor_d; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_151 = wr_ptr ? io_enq_bits_fun_amoxor_d : buff_1_fun_amoxor_d; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_152 = ~wr_ptr ? io_enq_bits_fun_amoand_d : buff_0_fun_amoand_d; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_153 = wr_ptr ? io_enq_bits_fun_amoand_d : buff_1_fun_amoand_d; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_154 = ~wr_ptr ? io_enq_bits_fun_amoor_d : buff_0_fun_amoor_d; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_155 = wr_ptr ? io_enq_bits_fun_amoor_d : buff_1_fun_amoor_d; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_156 = ~wr_ptr ? io_enq_bits_fun_amomin_d : buff_0_fun_amomin_d; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_157 = wr_ptr ? io_enq_bits_fun_amomin_d : buff_1_fun_amomin_d; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_158 = ~wr_ptr ? io_enq_bits_fun_amomax_d : buff_0_fun_amomax_d; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_159 = wr_ptr ? io_enq_bits_fun_amomax_d : buff_1_fun_amomax_d; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_160 = ~wr_ptr ? io_enq_bits_fun_amominu_d : buff_0_fun_amominu_d; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_161 = wr_ptr ? io_enq_bits_fun_amominu_d : buff_1_fun_amominu_d; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_162 = ~wr_ptr ? io_enq_bits_fun_amomaxu_d : buff_0_fun_amomaxu_d; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_163 = wr_ptr ? io_enq_bits_fun_amomaxu_d : buff_1_fun_amomaxu_d; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_164 = ~wr_ptr ? io_enq_bits_fun_flw : buff_0_fun_flw; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_165 = wr_ptr ? io_enq_bits_fun_flw : buff_1_fun_flw; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_166 = ~wr_ptr ? io_enq_bits_fun_fsw : buff_0_fun_fsw; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_167 = wr_ptr ? io_enq_bits_fun_fsw : buff_1_fun_fsw; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_168 = ~wr_ptr ? io_enq_bits_fun_fld : buff_0_fun_fld; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_169 = wr_ptr ? io_enq_bits_fun_fld : buff_1_fun_fld; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_170 = ~wr_ptr ? io_enq_bits_fun_fsd : buff_0_fun_fsd; // @[Store_queue.scala 107:{18,18} 54:21]
  wire  _GEN_171 = wr_ptr ? io_enq_bits_fun_fsd : buff_1_fun_fsd; // @[Store_queue.scala 107:{18,18} 54:21]
  wire [5:0] _GEN_172 = ~wr_ptr ? io_enq_bits_param_rd0 : buff_0_param_rd0; // @[Store_queue.scala 107:{18,18} 54:21]
  wire [5:0] _GEN_173 = wr_ptr ? io_enq_bits_param_rd0 : buff_1_param_rd0; // @[Store_queue.scala 107:{18,18} 54:21]
  wire [63:0] _GEN_174 = ~wr_ptr ? io_enq_bits_param_dat_op1 : buff_0_param_dat_op1; // @[Store_queue.scala 107:{18,18} 54:21]
  wire [63:0] _GEN_175 = wr_ptr ? io_enq_bits_param_dat_op1 : buff_1_param_dat_op1; // @[Store_queue.scala 107:{18,18} 54:21]
  wire [63:0] _GEN_176 = ~wr_ptr ? io_enq_bits_param_dat_op2 : buff_0_param_dat_op2; // @[Store_queue.scala 107:{18,18} 54:21]
  wire [63:0] _GEN_177 = wr_ptr ? io_enq_bits_param_dat_op2 : buff_1_param_dat_op2; // @[Store_queue.scala 107:{18,18} 54:21]
  wire [1:0] _wr_ptr_reg_T_3 = wr_ptr_reg + 2'h1; // @[Store_queue.scala 108:30]
  wire  _GEN_180 = _T_5 ? _GEN_92 : buff_0_fun_lb; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_181 = _T_5 ? _GEN_93 : buff_1_fun_lb; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_182 = _T_5 ? _GEN_94 : buff_0_fun_lh; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_183 = _T_5 ? _GEN_95 : buff_1_fun_lh; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_184 = _T_5 ? _GEN_96 : buff_0_fun_lw; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_185 = _T_5 ? _GEN_97 : buff_1_fun_lw; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_186 = _T_5 ? _GEN_98 : buff_0_fun_ld; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_187 = _T_5 ? _GEN_99 : buff_1_fun_ld; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_188 = _T_5 ? _GEN_100 : buff_0_fun_lbu; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_189 = _T_5 ? _GEN_101 : buff_1_fun_lbu; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_190 = _T_5 ? _GEN_102 : buff_0_fun_lhu; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_191 = _T_5 ? _GEN_103 : buff_1_fun_lhu; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_192 = _T_5 ? _GEN_104 : buff_0_fun_lwu; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_193 = _T_5 ? _GEN_105 : buff_1_fun_lwu; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_194 = _T_5 ? _GEN_106 : buff_0_fun_sb; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_195 = _T_5 ? _GEN_107 : buff_1_fun_sb; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_196 = _T_5 ? _GEN_108 : buff_0_fun_sh; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_197 = _T_5 ? _GEN_109 : buff_1_fun_sh; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_198 = _T_5 ? _GEN_110 : buff_0_fun_sw; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_199 = _T_5 ? _GEN_111 : buff_1_fun_sw; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_200 = _T_5 ? _GEN_112 : buff_0_fun_sd; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_201 = _T_5 ? _GEN_113 : buff_1_fun_sd; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_208 = _T_5 ? _GEN_120 : buff_0_fun_lr_w; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_209 = _T_5 ? _GEN_121 : buff_1_fun_lr_w; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_210 = _T_5 ? _GEN_122 : buff_0_fun_sc_w; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_211 = _T_5 ? _GEN_123 : buff_1_fun_sc_w; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_212 = _T_5 ? _GEN_124 : buff_0_fun_amoswap_w; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_213 = _T_5 ? _GEN_125 : buff_1_fun_amoswap_w; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_214 = _T_5 ? _GEN_126 : buff_0_fun_amoadd_w; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_215 = _T_5 ? _GEN_127 : buff_1_fun_amoadd_w; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_216 = _T_5 ? _GEN_128 : buff_0_fun_amoxor_w; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_217 = _T_5 ? _GEN_129 : buff_1_fun_amoxor_w; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_218 = _T_5 ? _GEN_130 : buff_0_fun_amoand_w; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_219 = _T_5 ? _GEN_131 : buff_1_fun_amoand_w; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_220 = _T_5 ? _GEN_132 : buff_0_fun_amoor_w; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_221 = _T_5 ? _GEN_133 : buff_1_fun_amoor_w; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_222 = _T_5 ? _GEN_134 : buff_0_fun_amomin_w; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_223 = _T_5 ? _GEN_135 : buff_1_fun_amomin_w; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_224 = _T_5 ? _GEN_136 : buff_0_fun_amomax_w; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_225 = _T_5 ? _GEN_137 : buff_1_fun_amomax_w; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_226 = _T_5 ? _GEN_138 : buff_0_fun_amominu_w; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_227 = _T_5 ? _GEN_139 : buff_1_fun_amominu_w; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_228 = _T_5 ? _GEN_140 : buff_0_fun_amomaxu_w; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_229 = _T_5 ? _GEN_141 : buff_1_fun_amomaxu_w; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_230 = _T_5 ? _GEN_142 : buff_0_fun_lr_d; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_231 = _T_5 ? _GEN_143 : buff_1_fun_lr_d; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_232 = _T_5 ? _GEN_144 : buff_0_fun_sc_d; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_233 = _T_5 ? _GEN_145 : buff_1_fun_sc_d; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_234 = _T_5 ? _GEN_146 : buff_0_fun_amoswap_d; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_235 = _T_5 ? _GEN_147 : buff_1_fun_amoswap_d; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_236 = _T_5 ? _GEN_148 : buff_0_fun_amoadd_d; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_237 = _T_5 ? _GEN_149 : buff_1_fun_amoadd_d; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_238 = _T_5 ? _GEN_150 : buff_0_fun_amoxor_d; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_239 = _T_5 ? _GEN_151 : buff_1_fun_amoxor_d; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_240 = _T_5 ? _GEN_152 : buff_0_fun_amoand_d; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_241 = _T_5 ? _GEN_153 : buff_1_fun_amoand_d; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_242 = _T_5 ? _GEN_154 : buff_0_fun_amoor_d; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_243 = _T_5 ? _GEN_155 : buff_1_fun_amoor_d; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_244 = _T_5 ? _GEN_156 : buff_0_fun_amomin_d; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_245 = _T_5 ? _GEN_157 : buff_1_fun_amomin_d; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_246 = _T_5 ? _GEN_158 : buff_0_fun_amomax_d; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_247 = _T_5 ? _GEN_159 : buff_1_fun_amomax_d; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_248 = _T_5 ? _GEN_160 : buff_0_fun_amominu_d; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_249 = _T_5 ? _GEN_161 : buff_1_fun_amominu_d; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_250 = _T_5 ? _GEN_162 : buff_0_fun_amomaxu_d; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_251 = _T_5 ? _GEN_163 : buff_1_fun_amomaxu_d; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_252 = _T_5 ? _GEN_164 : buff_0_fun_flw; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_253 = _T_5 ? _GEN_165 : buff_1_fun_flw; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_254 = _T_5 ? _GEN_166 : buff_0_fun_fsw; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_255 = _T_5 ? _GEN_167 : buff_1_fun_fsw; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_256 = _T_5 ? _GEN_168 : buff_0_fun_fld; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_257 = _T_5 ? _GEN_169 : buff_1_fun_fld; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_258 = _T_5 ? _GEN_170 : buff_0_fun_fsd; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_259 = _T_5 ? _GEN_171 : buff_1_fun_fsd; // @[Store_queue.scala 106:30 54:21]
  wire [5:0] _GEN_260 = _T_5 ? _GEN_172 : buff_0_param_rd0; // @[Store_queue.scala 106:30 54:21]
  wire [5:0] _GEN_261 = _T_5 ? _GEN_173 : buff_1_param_rd0; // @[Store_queue.scala 106:30 54:21]
  wire [63:0] _GEN_262 = _T_5 ? _GEN_174 : buff_0_param_dat_op1; // @[Store_queue.scala 106:30 54:21]
  wire [63:0] _GEN_263 = _T_5 ? _GEN_175 : buff_1_param_dat_op1; // @[Store_queue.scala 106:30 54:21]
  wire [63:0] _GEN_264 = _T_5 ? _GEN_176 : buff_0_param_dat_op2; // @[Store_queue.scala 106:30 54:21]
  wire [63:0] _GEN_265 = _T_5 ? _GEN_177 : buff_1_param_dat_op2; // @[Store_queue.scala 106:30 54:21]
  wire  _GEN_270 = io_flush ? buff_0_fun_lb : _GEN_180; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_271 = io_flush ? buff_1_fun_lb : _GEN_181; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_272 = io_flush ? buff_0_fun_lh : _GEN_182; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_273 = io_flush ? buff_1_fun_lh : _GEN_183; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_274 = io_flush ? buff_0_fun_lw : _GEN_184; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_275 = io_flush ? buff_1_fun_lw : _GEN_185; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_276 = io_flush ? buff_0_fun_ld : _GEN_186; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_277 = io_flush ? buff_1_fun_ld : _GEN_187; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_278 = io_flush ? buff_0_fun_lbu : _GEN_188; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_279 = io_flush ? buff_1_fun_lbu : _GEN_189; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_280 = io_flush ? buff_0_fun_lhu : _GEN_190; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_281 = io_flush ? buff_1_fun_lhu : _GEN_191; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_282 = io_flush ? buff_0_fun_lwu : _GEN_192; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_283 = io_flush ? buff_1_fun_lwu : _GEN_193; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_284 = io_flush ? buff_0_fun_sb : _GEN_194; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_285 = io_flush ? buff_1_fun_sb : _GEN_195; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_286 = io_flush ? buff_0_fun_sh : _GEN_196; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_287 = io_flush ? buff_1_fun_sh : _GEN_197; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_288 = io_flush ? buff_0_fun_sw : _GEN_198; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_289 = io_flush ? buff_1_fun_sw : _GEN_199; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_290 = io_flush ? buff_0_fun_sd : _GEN_200; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_291 = io_flush ? buff_1_fun_sd : _GEN_201; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_298 = io_flush ? buff_0_fun_lr_w : _GEN_208; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_299 = io_flush ? buff_1_fun_lr_w : _GEN_209; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_300 = io_flush ? buff_0_fun_sc_w : _GEN_210; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_301 = io_flush ? buff_1_fun_sc_w : _GEN_211; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_302 = io_flush ? buff_0_fun_amoswap_w : _GEN_212; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_303 = io_flush ? buff_1_fun_amoswap_w : _GEN_213; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_304 = io_flush ? buff_0_fun_amoadd_w : _GEN_214; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_305 = io_flush ? buff_1_fun_amoadd_w : _GEN_215; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_306 = io_flush ? buff_0_fun_amoxor_w : _GEN_216; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_307 = io_flush ? buff_1_fun_amoxor_w : _GEN_217; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_308 = io_flush ? buff_0_fun_amoand_w : _GEN_218; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_309 = io_flush ? buff_1_fun_amoand_w : _GEN_219; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_310 = io_flush ? buff_0_fun_amoor_w : _GEN_220; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_311 = io_flush ? buff_1_fun_amoor_w : _GEN_221; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_312 = io_flush ? buff_0_fun_amomin_w : _GEN_222; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_313 = io_flush ? buff_1_fun_amomin_w : _GEN_223; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_314 = io_flush ? buff_0_fun_amomax_w : _GEN_224; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_315 = io_flush ? buff_1_fun_amomax_w : _GEN_225; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_316 = io_flush ? buff_0_fun_amominu_w : _GEN_226; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_317 = io_flush ? buff_1_fun_amominu_w : _GEN_227; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_318 = io_flush ? buff_0_fun_amomaxu_w : _GEN_228; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_319 = io_flush ? buff_1_fun_amomaxu_w : _GEN_229; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_320 = io_flush ? buff_0_fun_lr_d : _GEN_230; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_321 = io_flush ? buff_1_fun_lr_d : _GEN_231; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_322 = io_flush ? buff_0_fun_sc_d : _GEN_232; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_323 = io_flush ? buff_1_fun_sc_d : _GEN_233; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_324 = io_flush ? buff_0_fun_amoswap_d : _GEN_234; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_325 = io_flush ? buff_1_fun_amoswap_d : _GEN_235; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_326 = io_flush ? buff_0_fun_amoadd_d : _GEN_236; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_327 = io_flush ? buff_1_fun_amoadd_d : _GEN_237; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_328 = io_flush ? buff_0_fun_amoxor_d : _GEN_238; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_329 = io_flush ? buff_1_fun_amoxor_d : _GEN_239; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_330 = io_flush ? buff_0_fun_amoand_d : _GEN_240; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_331 = io_flush ? buff_1_fun_amoand_d : _GEN_241; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_332 = io_flush ? buff_0_fun_amoor_d : _GEN_242; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_333 = io_flush ? buff_1_fun_amoor_d : _GEN_243; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_334 = io_flush ? buff_0_fun_amomin_d : _GEN_244; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_335 = io_flush ? buff_1_fun_amomin_d : _GEN_245; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_336 = io_flush ? buff_0_fun_amomax_d : _GEN_246; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_337 = io_flush ? buff_1_fun_amomax_d : _GEN_247; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_338 = io_flush ? buff_0_fun_amominu_d : _GEN_248; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_339 = io_flush ? buff_1_fun_amominu_d : _GEN_249; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_340 = io_flush ? buff_0_fun_amomaxu_d : _GEN_250; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_341 = io_flush ? buff_1_fun_amomaxu_d : _GEN_251; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_342 = io_flush ? buff_0_fun_flw : _GEN_252; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_343 = io_flush ? buff_1_fun_flw : _GEN_253; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_344 = io_flush ? buff_0_fun_fsw : _GEN_254; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_345 = io_flush ? buff_1_fun_fsw : _GEN_255; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_346 = io_flush ? buff_0_fun_fld : _GEN_256; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_347 = io_flush ? buff_1_fun_fld : _GEN_257; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_348 = io_flush ? buff_0_fun_fsd : _GEN_258; // @[Store_queue.scala 94:20 54:21]
  wire  _GEN_349 = io_flush ? buff_1_fun_fsd : _GEN_259; // @[Store_queue.scala 94:20 54:21]
  wire [5:0] _GEN_350 = io_flush ? buff_0_param_rd0 : _GEN_260; // @[Store_queue.scala 94:20 54:21]
  wire [5:0] _GEN_351 = io_flush ? buff_1_param_rd0 : _GEN_261; // @[Store_queue.scala 94:20 54:21]
  wire [63:0] _GEN_352 = io_flush ? buff_0_param_dat_op1 : _GEN_262; // @[Store_queue.scala 94:20 54:21]
  wire [63:0] _GEN_353 = io_flush ? buff_1_param_dat_op1 : _GEN_263; // @[Store_queue.scala 94:20 54:21]
  wire [63:0] _GEN_354 = io_flush ? buff_0_param_dat_op2 : _GEN_264; // @[Store_queue.scala 94:20 54:21]
  wire [63:0] _GEN_355 = io_flush ? buff_1_param_dat_op2 : _GEN_265; // @[Store_queue.scala 94:20 54:21]
  wire  _T_6 = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire [1:0] _rd_ptr_reg_T_1 = rd_ptr_reg + 2'h1; // @[Store_queue.scala 112:30]
  wire  _T_9 = ~reset; // @[Store_queue.scala 129:13]
  wire  _T_14 = ~(cm_ptr_reg != wr_ptr_reg); // @[Store_queue.scala 130:13]
  wire  _T_30 = rd_ptr_reg[1] != wr_ptr_reg[1]; // @[Store_queue.scala 148:28]
  wire [2:0] _ro_ptr_T = {{1'd0}, rd_ptr_reg}; // @[Store_queue.scala 151:34]
  wire  ro_ptr = _ro_ptr_T[0]; // @[Store_queue.scala 151:40]
  wire  _T_35 = ro_ptr >= rd_ptr; // @[Store_queue.scala 152:23]
  wire  _T_36 = ro_ptr < wr_ptr; // @[Store_queue.scala 152:43]
  wire [63:0] _GEN_538 = ro_ptr ? buff_1_param_dat_op1 : buff_0_param_dat_op1; // @[Store_queue.scala 152:{83,83}]
  wire  _T_40 = _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3]; // @[Store_queue.scala 152:94]
  wire  _GEN_540 = ro_ptr ? buff_1_fun_lb : buff_0_fun_lb; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_542 = ro_ptr ? buff_1_fun_lh : buff_0_fun_lh; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_544 = ro_ptr ? buff_1_fun_lw : buff_0_fun_lw; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_546 = ro_ptr ? buff_1_fun_ld : buff_0_fun_ld; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_548 = ro_ptr ? buff_1_fun_lbu : buff_0_fun_lbu; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_550 = ro_ptr ? buff_1_fun_lhu : buff_0_fun_lhu; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_552 = ro_ptr ? buff_1_fun_lwu : buff_0_fun_lwu; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_554 = ro_ptr ? buff_1_fun_sb : buff_0_fun_sb; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_556 = ro_ptr ? buff_1_fun_sh : buff_0_fun_sh; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_558 = ro_ptr ? buff_1_fun_sw : buff_0_fun_sw; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_560 = ro_ptr ? buff_1_fun_sd : buff_0_fun_sd; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_568 = ro_ptr ? buff_1_fun_lr_w : buff_0_fun_lr_w; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_570 = ro_ptr ? buff_1_fun_sc_w : buff_0_fun_sc_w; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_572 = ro_ptr ? buff_1_fun_amoswap_w : buff_0_fun_amoswap_w; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_574 = ro_ptr ? buff_1_fun_amoadd_w : buff_0_fun_amoadd_w; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_576 = ro_ptr ? buff_1_fun_amoxor_w : buff_0_fun_amoxor_w; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_578 = ro_ptr ? buff_1_fun_amoand_w : buff_0_fun_amoand_w; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_580 = ro_ptr ? buff_1_fun_amoor_w : buff_0_fun_amoor_w; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_582 = ro_ptr ? buff_1_fun_amomin_w : buff_0_fun_amomin_w; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_584 = ro_ptr ? buff_1_fun_amomax_w : buff_0_fun_amomax_w; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_586 = ro_ptr ? buff_1_fun_amominu_w : buff_0_fun_amominu_w; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_588 = ro_ptr ? buff_1_fun_amomaxu_w : buff_0_fun_amomaxu_w; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_590 = ro_ptr ? buff_1_fun_lr_d : buff_0_fun_lr_d; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_592 = ro_ptr ? buff_1_fun_sc_d : buff_0_fun_sc_d; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_594 = ro_ptr ? buff_1_fun_amoswap_d : buff_0_fun_amoswap_d; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_596 = ro_ptr ? buff_1_fun_amoadd_d : buff_0_fun_amoadd_d; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_598 = ro_ptr ? buff_1_fun_amoxor_d : buff_0_fun_amoxor_d; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_600 = ro_ptr ? buff_1_fun_amoand_d : buff_0_fun_amoand_d; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_602 = ro_ptr ? buff_1_fun_amoor_d : buff_0_fun_amoor_d; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_604 = ro_ptr ? buff_1_fun_amomin_d : buff_0_fun_amomin_d; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_606 = ro_ptr ? buff_1_fun_amomax_d : buff_0_fun_amomax_d; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_608 = ro_ptr ? buff_1_fun_amominu_d : buff_0_fun_amominu_d; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_610 = ro_ptr ? buff_1_fun_amomaxu_d : buff_0_fun_amomaxu_d; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_612 = ro_ptr ? buff_1_fun_flw : buff_0_fun_flw; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_614 = ro_ptr ? buff_1_fun_fsw : buff_0_fun_fsw; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_616 = ro_ptr ? buff_1_fun_fld : buff_0_fun_fld; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_618 = ro_ptr ? buff_1_fun_fsd : buff_0_fun_fsd; // @[Store_queue.scala 153:{27,27}]
  wire [63:0] _GEN_622 = ro_ptr ? buff_1_param_dat_op2 : buff_0_param_dat_op2; // @[Store_queue.scala 153:{27,27}]
  wire  _T_59 = _GEN_592 | _GEN_570; // @[riscv_isa.scala 140:20]
  wire  _T_60 = _GEN_572 | _GEN_574 | _GEN_576 | _GEN_578 | _GEN_580 | _GEN_582 | _GEN_584 | _GEN_586 | _GEN_588 |
    _GEN_594 | _GEN_596 | _GEN_598 | _GEN_600 | _GEN_602 | _GEN_604 | _GEN_606 | _GEN_608 | _GEN_610 | _T_59; // @[riscv_isa.scala 148:205]
  wire  _GEN_625 = _T_60 ? 1'h0 : io_overlapReq_valid; // @[Store_queue.scala 146:26 155:{43,66}]
  wire  _GEN_626 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_540; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_627 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_542; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_628 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_544; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_629 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_546; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_630 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_548; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_631 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_550; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_632 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_552; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_633 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_554; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_634 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_556; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_635 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_558; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_636 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_560; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_640 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_568; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_641 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_570; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_642 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_572; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_643 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_574; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_644 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_576; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_645 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_578; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_646 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_580; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_647 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_582; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_648 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_584; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_649 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_586; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_650 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_588; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_651 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_590; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_652 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_592; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_653 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_594; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_654 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_596; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_655 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_598; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_656 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_600; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_657 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_602; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_658 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_604; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_659 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_606; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_660 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_608; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_661 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_610; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_662 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_612; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_663 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_614; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_664 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_616; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_665 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] & _GEN_618; // @[Store_queue.scala 152:136 153:27 158:27]
  wire [63:0] _GEN_667 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] ?
    _GEN_538 : 64'h0; // @[Store_queue.scala 152:136 153:27 158:27]
  wire [63:0] _GEN_668 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] ?
    _GEN_622 : 64'h0; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_670 = (ro_ptr >= rd_ptr | ro_ptr < wr_ptr) & _GEN_538[31:3] == io_overlapReq_bits_paddr[31:3] ? _GEN_625 :
    io_overlapReq_valid; // @[Store_queue.scala 152:136 146:26]
  wire  ro_ptr_1 = _rd_ptr_reg_T_1[0]; // @[Store_queue.scala 151:40]
  wire  _T_61 = ro_ptr_1 >= rd_ptr; // @[Store_queue.scala 152:23]
  wire  _T_62 = ro_ptr_1 < wr_ptr; // @[Store_queue.scala 152:43]
  wire [63:0] _GEN_672 = ro_ptr_1 ? buff_1_param_dat_op1 : buff_0_param_dat_op1; // @[Store_queue.scala 152:{83,83}]
  wire  _T_66 = _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3]; // @[Store_queue.scala 152:94]
  wire  _GEN_674 = ro_ptr_1 ? buff_1_fun_lb : buff_0_fun_lb; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_676 = ro_ptr_1 ? buff_1_fun_lh : buff_0_fun_lh; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_678 = ro_ptr_1 ? buff_1_fun_lw : buff_0_fun_lw; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_680 = ro_ptr_1 ? buff_1_fun_ld : buff_0_fun_ld; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_682 = ro_ptr_1 ? buff_1_fun_lbu : buff_0_fun_lbu; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_684 = ro_ptr_1 ? buff_1_fun_lhu : buff_0_fun_lhu; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_686 = ro_ptr_1 ? buff_1_fun_lwu : buff_0_fun_lwu; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_688 = ro_ptr_1 ? buff_1_fun_sb : buff_0_fun_sb; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_690 = ro_ptr_1 ? buff_1_fun_sh : buff_0_fun_sh; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_692 = ro_ptr_1 ? buff_1_fun_sw : buff_0_fun_sw; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_694 = ro_ptr_1 ? buff_1_fun_sd : buff_0_fun_sd; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_702 = ro_ptr_1 ? buff_1_fun_lr_w : buff_0_fun_lr_w; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_704 = ro_ptr_1 ? buff_1_fun_sc_w : buff_0_fun_sc_w; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_706 = ro_ptr_1 ? buff_1_fun_amoswap_w : buff_0_fun_amoswap_w; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_708 = ro_ptr_1 ? buff_1_fun_amoadd_w : buff_0_fun_amoadd_w; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_710 = ro_ptr_1 ? buff_1_fun_amoxor_w : buff_0_fun_amoxor_w; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_712 = ro_ptr_1 ? buff_1_fun_amoand_w : buff_0_fun_amoand_w; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_714 = ro_ptr_1 ? buff_1_fun_amoor_w : buff_0_fun_amoor_w; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_716 = ro_ptr_1 ? buff_1_fun_amomin_w : buff_0_fun_amomin_w; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_718 = ro_ptr_1 ? buff_1_fun_amomax_w : buff_0_fun_amomax_w; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_720 = ro_ptr_1 ? buff_1_fun_amominu_w : buff_0_fun_amominu_w; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_722 = ro_ptr_1 ? buff_1_fun_amomaxu_w : buff_0_fun_amomaxu_w; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_724 = ro_ptr_1 ? buff_1_fun_lr_d : buff_0_fun_lr_d; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_726 = ro_ptr_1 ? buff_1_fun_sc_d : buff_0_fun_sc_d; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_728 = ro_ptr_1 ? buff_1_fun_amoswap_d : buff_0_fun_amoswap_d; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_730 = ro_ptr_1 ? buff_1_fun_amoadd_d : buff_0_fun_amoadd_d; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_732 = ro_ptr_1 ? buff_1_fun_amoxor_d : buff_0_fun_amoxor_d; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_734 = ro_ptr_1 ? buff_1_fun_amoand_d : buff_0_fun_amoand_d; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_736 = ro_ptr_1 ? buff_1_fun_amoor_d : buff_0_fun_amoor_d; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_738 = ro_ptr_1 ? buff_1_fun_amomin_d : buff_0_fun_amomin_d; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_740 = ro_ptr_1 ? buff_1_fun_amomax_d : buff_0_fun_amomax_d; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_742 = ro_ptr_1 ? buff_1_fun_amominu_d : buff_0_fun_amominu_d; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_744 = ro_ptr_1 ? buff_1_fun_amomaxu_d : buff_0_fun_amomaxu_d; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_746 = ro_ptr_1 ? buff_1_fun_flw : buff_0_fun_flw; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_748 = ro_ptr_1 ? buff_1_fun_fsw : buff_0_fun_fsw; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_750 = ro_ptr_1 ? buff_1_fun_fld : buff_0_fun_fld; // @[Store_queue.scala 153:{27,27}]
  wire  _GEN_752 = ro_ptr_1 ? buff_1_fun_fsd : buff_0_fun_fsd; // @[Store_queue.scala 153:{27,27}]
  wire [63:0] _GEN_756 = ro_ptr_1 ? buff_1_param_dat_op2 : buff_0_param_dat_op2; // @[Store_queue.scala 153:{27,27}]
  wire  _T_85 = _GEN_726 | _GEN_704; // @[riscv_isa.scala 140:20]
  wire  _T_86 = _GEN_706 | _GEN_708 | _GEN_710 | _GEN_712 | _GEN_714 | _GEN_716 | _GEN_718 | _GEN_720 | _GEN_722 |
    _GEN_728 | _GEN_730 | _GEN_732 | _GEN_734 | _GEN_736 | _GEN_738 | _GEN_740 | _GEN_742 | _GEN_744 | _T_85; // @[riscv_isa.scala 148:205]
  wire  _GEN_759 = _T_86 ? 1'h0 : _GEN_670; // @[Store_queue.scala 155:{43,66}]
  wire  _GEN_760 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_674; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_761 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_676; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_762 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_678; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_763 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_680; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_764 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_682; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_765 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_684; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_766 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_686; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_767 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_688; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_768 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_690; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_769 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_692; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_770 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_694; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_774 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_702; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_775 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_704; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_776 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_706; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_777 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_708; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_778 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_710; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_779 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_712; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_780 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_714; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_781 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_716; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_782 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_718; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_783 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_720; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_784 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_722; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_785 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_724; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_786 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_726; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_787 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_728; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_788 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_730; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_789 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_732; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_790 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_734; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_791 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_736; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_792 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_738; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_793 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_740; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_794 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_742; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_795 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_744; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_796 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_746; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_797 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_748; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_798 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_750; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_799 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] &
    _GEN_752; // @[Store_queue.scala 152:136 153:27 158:27]
  wire [63:0] _GEN_801 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] ?
    _GEN_672 : 64'h0; // @[Store_queue.scala 152:136 153:27 158:27]
  wire [63:0] _GEN_802 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] ?
    _GEN_756 : 64'h0; // @[Store_queue.scala 152:136 153:27 158:27]
  wire  _GEN_804 = (ro_ptr_1 >= rd_ptr | ro_ptr_1 < wr_ptr) & _GEN_672[31:3] == io_overlapReq_bits_paddr[31:3] ?
    _GEN_759 : _GEN_670; // @[Store_queue.scala 152:136]
  wire  _GEN_894 = _T_35 & _T_36 & _T_40 & _GEN_540; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_895 = _T_35 & _T_36 & _T_40 & _GEN_542; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_896 = _T_35 & _T_36 & _T_40 & _GEN_544; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_897 = _T_35 & _T_36 & _T_40 & _GEN_546; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_898 = _T_35 & _T_36 & _T_40 & _GEN_548; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_899 = _T_35 & _T_36 & _T_40 & _GEN_550; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_900 = _T_35 & _T_36 & _T_40 & _GEN_552; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_901 = _T_35 & _T_36 & _T_40 & _GEN_554; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_902 = _T_35 & _T_36 & _T_40 & _GEN_556; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_903 = _T_35 & _T_36 & _T_40 & _GEN_558; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_904 = _T_35 & _T_36 & _T_40 & _GEN_560; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_908 = _T_35 & _T_36 & _T_40 & _GEN_568; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_909 = _T_35 & _T_36 & _T_40 & _GEN_570; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_910 = _T_35 & _T_36 & _T_40 & _GEN_572; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_911 = _T_35 & _T_36 & _T_40 & _GEN_574; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_912 = _T_35 & _T_36 & _T_40 & _GEN_576; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_913 = _T_35 & _T_36 & _T_40 & _GEN_578; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_914 = _T_35 & _T_36 & _T_40 & _GEN_580; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_915 = _T_35 & _T_36 & _T_40 & _GEN_582; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_916 = _T_35 & _T_36 & _T_40 & _GEN_584; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_917 = _T_35 & _T_36 & _T_40 & _GEN_586; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_918 = _T_35 & _T_36 & _T_40 & _GEN_588; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_919 = _T_35 & _T_36 & _T_40 & _GEN_590; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_920 = _T_35 & _T_36 & _T_40 & _GEN_592; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_921 = _T_35 & _T_36 & _T_40 & _GEN_594; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_922 = _T_35 & _T_36 & _T_40 & _GEN_596; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_923 = _T_35 & _T_36 & _T_40 & _GEN_598; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_924 = _T_35 & _T_36 & _T_40 & _GEN_600; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_925 = _T_35 & _T_36 & _T_40 & _GEN_602; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_926 = _T_35 & _T_36 & _T_40 & _GEN_604; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_927 = _T_35 & _T_36 & _T_40 & _GEN_606; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_928 = _T_35 & _T_36 & _T_40 & _GEN_608; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_929 = _T_35 & _T_36 & _T_40 & _GEN_610; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_930 = _T_35 & _T_36 & _T_40 & _GEN_612; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_931 = _T_35 & _T_36 & _T_40 & _GEN_614; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_932 = _T_35 & _T_36 & _T_40 & _GEN_616; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_933 = _T_35 & _T_36 & _T_40 & _GEN_618; // @[Store_queue.scala 165:134 166:27 171:27]
  wire [63:0] _GEN_935 = _T_35 & _T_36 & _T_40 ? _GEN_538 : 64'h0; // @[Store_queue.scala 165:134 166:27 171:27]
  wire [63:0] _GEN_936 = _T_35 & _T_36 & _T_40 ? _GEN_622 : 64'h0; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_938 = _T_35 & _T_36 & _T_40 ? _GEN_625 : io_overlapReq_valid; // @[Store_queue.scala 165:134 146:26]
  wire  _GEN_1027 = _T_86 ? 1'h0 : _GEN_938; // @[Store_queue.scala 168:{43,66}]
  wire  _GEN_1028 = _T_61 & _T_62 & _T_66 & _GEN_674; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1029 = _T_61 & _T_62 & _T_66 & _GEN_676; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1030 = _T_61 & _T_62 & _T_66 & _GEN_678; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1031 = _T_61 & _T_62 & _T_66 & _GEN_680; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1032 = _T_61 & _T_62 & _T_66 & _GEN_682; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1033 = _T_61 & _T_62 & _T_66 & _GEN_684; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1034 = _T_61 & _T_62 & _T_66 & _GEN_686; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1035 = _T_61 & _T_62 & _T_66 & _GEN_688; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1036 = _T_61 & _T_62 & _T_66 & _GEN_690; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1037 = _T_61 & _T_62 & _T_66 & _GEN_692; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1038 = _T_61 & _T_62 & _T_66 & _GEN_694; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1042 = _T_61 & _T_62 & _T_66 & _GEN_702; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1043 = _T_61 & _T_62 & _T_66 & _GEN_704; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1044 = _T_61 & _T_62 & _T_66 & _GEN_706; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1045 = _T_61 & _T_62 & _T_66 & _GEN_708; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1046 = _T_61 & _T_62 & _T_66 & _GEN_710; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1047 = _T_61 & _T_62 & _T_66 & _GEN_712; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1048 = _T_61 & _T_62 & _T_66 & _GEN_714; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1049 = _T_61 & _T_62 & _T_66 & _GEN_716; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1050 = _T_61 & _T_62 & _T_66 & _GEN_718; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1051 = _T_61 & _T_62 & _T_66 & _GEN_720; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1052 = _T_61 & _T_62 & _T_66 & _GEN_722; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1053 = _T_61 & _T_62 & _T_66 & _GEN_724; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1054 = _T_61 & _T_62 & _T_66 & _GEN_726; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1055 = _T_61 & _T_62 & _T_66 & _GEN_728; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1056 = _T_61 & _T_62 & _T_66 & _GEN_730; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1057 = _T_61 & _T_62 & _T_66 & _GEN_732; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1058 = _T_61 & _T_62 & _T_66 & _GEN_734; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1059 = _T_61 & _T_62 & _T_66 & _GEN_736; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1060 = _T_61 & _T_62 & _T_66 & _GEN_738; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1061 = _T_61 & _T_62 & _T_66 & _GEN_740; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1062 = _T_61 & _T_62 & _T_66 & _GEN_742; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1063 = _T_61 & _T_62 & _T_66 & _GEN_744; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1064 = _T_61 & _T_62 & _T_66 & _GEN_746; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1065 = _T_61 & _T_62 & _T_66 & _GEN_748; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1066 = _T_61 & _T_62 & _T_66 & _GEN_750; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1067 = _T_61 & _T_62 & _T_66 & _GEN_752; // @[Store_queue.scala 165:134 166:27 171:27]
  wire [63:0] _GEN_1069 = _T_61 & _T_62 & _T_66 ? _GEN_672 : 64'h0; // @[Store_queue.scala 165:134 166:27 171:27]
  wire [63:0] _GEN_1070 = _T_61 & _T_62 & _T_66 ? _GEN_756 : 64'h0; // @[Store_queue.scala 165:134 166:27 171:27]
  wire  _GEN_1072 = _T_61 & _T_62 & _T_66 ? _GEN_1027 : _GEN_938; // @[Store_queue.scala 165:134]
  wire  overlap_buff_0_fun_lb = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_626 : _GEN_894; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_lh = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_627 : _GEN_895; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_lw = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_628 : _GEN_896; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_ld = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_629 : _GEN_897; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_lbu = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_630 : _GEN_898; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_lhu = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_631 : _GEN_899; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_lwu = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_632 : _GEN_900; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_sb = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_633 : _GEN_901; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_sh = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_634 : _GEN_902; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_sw = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_635 : _GEN_903; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_sd = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_636 : _GEN_904; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_lr_w = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_640 : _GEN_908; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_sc_w = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_641 : _GEN_909; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_amoswap_w = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_642 : _GEN_910; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_amoadd_w = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_643 : _GEN_911; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_amoxor_w = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_644 : _GEN_912; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_amoand_w = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_645 : _GEN_913; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_amoor_w = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_646 : _GEN_914; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_amomin_w = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_647 : _GEN_915; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_amomax_w = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_648 : _GEN_916; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_amominu_w = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_649 : _GEN_917; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_amomaxu_w = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_650 : _GEN_918; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_lr_d = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_651 : _GEN_919; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_sc_d = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_652 : _GEN_920; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_amoswap_d = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_653 : _GEN_921; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_amoadd_d = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_654 : _GEN_922; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_amoxor_d = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_655 : _GEN_923; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_amoand_d = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_656 : _GEN_924; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_amoor_d = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_657 : _GEN_925; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_amomin_d = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_658 : _GEN_926; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_amomax_d = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_659 : _GEN_927; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_amominu_d = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_660 : _GEN_928; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_amomaxu_d = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_661 : _GEN_929; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_flw = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_662 : _GEN_930; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_fsw = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_663 : _GEN_931; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_fld = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_664 : _GEN_932; // @[Store_queue.scala 148:51]
  wire  overlap_buff_0_fun_fsd = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_665 : _GEN_933; // @[Store_queue.scala 148:51]
  wire [63:0] overlap_buff_0_param_dat_op1 = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_667 : _GEN_935; // @[Store_queue.scala 148:51]
  wire [63:0] overlap_buff_0_param_dat_op2 = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_668 : _GEN_936; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_lb = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_760 : _GEN_1028; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_lh = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_761 : _GEN_1029; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_lw = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_762 : _GEN_1030; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_ld = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_763 : _GEN_1031; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_lbu = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_764 : _GEN_1032; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_lhu = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_765 : _GEN_1033; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_lwu = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_766 : _GEN_1034; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_sb = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_767 : _GEN_1035; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_sh = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_768 : _GEN_1036; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_sw = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_769 : _GEN_1037; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_sd = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_770 : _GEN_1038; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_lr_w = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_774 : _GEN_1042; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_sc_w = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_775 : _GEN_1043; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_amoswap_w = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_776 : _GEN_1044; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_amoadd_w = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_777 : _GEN_1045; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_amoxor_w = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_778 : _GEN_1046; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_amoand_w = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_779 : _GEN_1047; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_amoor_w = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_780 : _GEN_1048; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_amomin_w = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_781 : _GEN_1049; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_amomax_w = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_782 : _GEN_1050; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_amominu_w = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_783 : _GEN_1051; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_amomaxu_w = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_784 : _GEN_1052; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_lr_d = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_785 : _GEN_1053; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_sc_d = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_786 : _GEN_1054; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_amoswap_d = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_787 : _GEN_1055; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_amoadd_d = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_788 : _GEN_1056; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_amoxor_d = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_789 : _GEN_1057; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_amoand_d = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_790 : _GEN_1058; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_amoor_d = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_791 : _GEN_1059; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_amomin_d = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_792 : _GEN_1060; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_amomax_d = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_793 : _GEN_1061; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_amominu_d = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_794 : _GEN_1062; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_amomaxu_d = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_795 : _GEN_1063; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_flw = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_796 : _GEN_1064; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_fsw = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_797 : _GEN_1065; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_fld = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_798 : _GEN_1066; // @[Store_queue.scala 148:51]
  wire  overlap_buff_1_fun_fsd = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_799 : _GEN_1067; // @[Store_queue.scala 148:51]
  wire [63:0] overlap_buff_1_param_dat_op1 = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_801 : _GEN_1069; // @[Store_queue.scala 148:51]
  wire [63:0] overlap_buff_1_param_dat_op2 = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_802 : _GEN_1070; // @[Store_queue.scala 148:51]
  wire [5:0] _res_T_1 = {overlap_buff_0_param_dat_op1[2:0], 3'h0}; // @[riscv_isa.scala 907:61]
  wire [126:0] _GEN_382 = {{63'd0}, overlap_buff_0_param_dat_op2}; // @[riscv_isa.scala 907:28]
  wire [126:0] _res_T_2 = _GEN_382 << _res_T_1; // @[riscv_isa.scala 907:28]
  wire  _wstrb_T_1 = overlap_buff_0_fun_lb | overlap_buff_0_fun_lbu | overlap_buff_0_fun_sb; // @[riscv_isa.scala 153:26]
  wire  _wstrb_T_3 = overlap_buff_0_fun_lh | overlap_buff_0_fun_lhu | overlap_buff_0_fun_sh; // @[riscv_isa.scala 154:26]
  wire  _wstrb_T_18 = overlap_buff_0_fun_lw | overlap_buff_0_fun_lwu | overlap_buff_0_fun_sw |
    overlap_buff_0_fun_amoswap_w | overlap_buff_0_fun_amoadd_w | overlap_buff_0_fun_amoxor_w |
    overlap_buff_0_fun_amoand_w | overlap_buff_0_fun_amoor_w | overlap_buff_0_fun_amomin_w | overlap_buff_0_fun_amomax_w
     | overlap_buff_0_fun_amominu_w | overlap_buff_0_fun_amomaxu_w | overlap_buff_0_fun_flw | overlap_buff_0_fun_fsw |
    overlap_buff_0_fun_lr_w | overlap_buff_0_fun_sc_w; // @[riscv_isa.scala 155:151]
  wire  _wstrb_T_32 = overlap_buff_0_fun_ld | overlap_buff_0_fun_lr_d | overlap_buff_0_fun_fld | overlap_buff_0_fun_sd
     | overlap_buff_0_fun_sc_d | overlap_buff_0_fun_fsd | overlap_buff_0_fun_amoswap_d | overlap_buff_0_fun_amoadd_d |
    overlap_buff_0_fun_amoxor_d | overlap_buff_0_fun_amoand_d | overlap_buff_0_fun_amoor_d | overlap_buff_0_fun_amomin_d
     | overlap_buff_0_fun_amomax_d | overlap_buff_0_fun_amominu_d | overlap_buff_0_fun_amomaxu_d; // @[riscv_isa.scala 156:140]
  wire [1:0] _wstrb_T_34 = _wstrb_T_3 ? 2'h3 : 2'h0; // @[Mux.scala 27:73]
  wire [3:0] _wstrb_T_35 = _wstrb_T_18 ? 4'hf : 4'h0; // @[Mux.scala 27:73]
  wire [7:0] _wstrb_T_36 = _wstrb_T_32 ? 8'hff : 8'h0; // @[Mux.scala 27:73]
  wire [1:0] _GEN_14 = {{1'd0}, _wstrb_T_1}; // @[Mux.scala 27:73]
  wire [1:0] _wstrb_T_37 = _GEN_14 | _wstrb_T_34; // @[Mux.scala 27:73]
  wire [3:0] _GEN_15 = {{2'd0}, _wstrb_T_37}; // @[Mux.scala 27:73]
  wire [3:0] _wstrb_T_38 = _GEN_15 | _wstrb_T_35; // @[Mux.scala 27:73]
  wire [7:0] _GEN_16 = {{4'd0}, _wstrb_T_38}; // @[Mux.scala 27:73]
  wire [7:0] _wstrb_T_39 = _GEN_16 | _wstrb_T_36; // @[Mux.scala 27:73]
  wire [14:0] _GEN_383 = {{7'd0}, _wstrb_T_39}; // @[riscv_isa.scala 916:10]
  wire [14:0] _wstrb_T_41 = _GEN_383 << overlap_buff_0_param_dat_op1[2:0]; // @[riscv_isa.scala 916:10]
  wire [7:0] wstrb = _wstrb_T_41[7:0]; // @[riscv_isa.scala 912:21 913:11]
  wire [7:0] _wmask_T_9 = wstrb[0] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _wmask_T_11 = wstrb[1] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _wmask_T_13 = wstrb[2] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _wmask_T_15 = wstrb[3] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _wmask_T_17 = wstrb[4] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _wmask_T_19 = wstrb[5] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _wmask_T_21 = wstrb[6] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _wmask_T_23 = wstrb[7] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [63:0] wmask = {_wmask_T_23,_wmask_T_21,_wmask_T_19,_wmask_T_17,_wmask_T_15,_wmask_T_13,_wmask_T_11,_wmask_T_9}; // @[Cat.scala 33:92]
  wire [63:0] res = _res_T_2[63:0]; // @[riscv_isa.scala 906:21 907:11]
  wire [63:0] wdata = res & wmask; // @[Util.scala 108:44]
  wire [5:0] _res_T_4 = {overlap_buff_1_param_dat_op1[2:0], 3'h0}; // @[riscv_isa.scala 907:61]
  wire [126:0] _GEN_384 = {{63'd0}, overlap_buff_1_param_dat_op2}; // @[riscv_isa.scala 907:28]
  wire [126:0] _res_T_5 = _GEN_384 << _res_T_4; // @[riscv_isa.scala 907:28]
  wire  _wstrb_T_43 = overlap_buff_1_fun_lb | overlap_buff_1_fun_lbu | overlap_buff_1_fun_sb; // @[riscv_isa.scala 153:26]
  wire  _wstrb_T_45 = overlap_buff_1_fun_lh | overlap_buff_1_fun_lhu | overlap_buff_1_fun_sh; // @[riscv_isa.scala 154:26]
  wire  _wstrb_T_60 = overlap_buff_1_fun_lw | overlap_buff_1_fun_lwu | overlap_buff_1_fun_sw |
    overlap_buff_1_fun_amoswap_w | overlap_buff_1_fun_amoadd_w | overlap_buff_1_fun_amoxor_w |
    overlap_buff_1_fun_amoand_w | overlap_buff_1_fun_amoor_w | overlap_buff_1_fun_amomin_w | overlap_buff_1_fun_amomax_w
     | overlap_buff_1_fun_amominu_w | overlap_buff_1_fun_amomaxu_w | overlap_buff_1_fun_flw | overlap_buff_1_fun_fsw |
    overlap_buff_1_fun_lr_w | overlap_buff_1_fun_sc_w; // @[riscv_isa.scala 155:151]
  wire  _wstrb_T_74 = overlap_buff_1_fun_ld | overlap_buff_1_fun_lr_d | overlap_buff_1_fun_fld | overlap_buff_1_fun_sd
     | overlap_buff_1_fun_sc_d | overlap_buff_1_fun_fsd | overlap_buff_1_fun_amoswap_d | overlap_buff_1_fun_amoadd_d |
    overlap_buff_1_fun_amoxor_d | overlap_buff_1_fun_amoand_d | overlap_buff_1_fun_amoor_d | overlap_buff_1_fun_amomin_d
     | overlap_buff_1_fun_amomax_d | overlap_buff_1_fun_amominu_d | overlap_buff_1_fun_amomaxu_d; // @[riscv_isa.scala 156:140]
  wire [1:0] _wstrb_T_76 = _wstrb_T_45 ? 2'h3 : 2'h0; // @[Mux.scala 27:73]
  wire [3:0] _wstrb_T_77 = _wstrb_T_60 ? 4'hf : 4'h0; // @[Mux.scala 27:73]
  wire [7:0] _wstrb_T_78 = _wstrb_T_74 ? 8'hff : 8'h0; // @[Mux.scala 27:73]
  wire [1:0] _GEN_46 = {{1'd0}, _wstrb_T_43}; // @[Mux.scala 27:73]
  wire [1:0] _wstrb_T_79 = _GEN_46 | _wstrb_T_76; // @[Mux.scala 27:73]
  wire [3:0] _GEN_58 = {{2'd0}, _wstrb_T_79}; // @[Mux.scala 27:73]
  wire [3:0] _wstrb_T_80 = _GEN_58 | _wstrb_T_77; // @[Mux.scala 27:73]
  wire [7:0] _GEN_59 = {{4'd0}, _wstrb_T_80}; // @[Mux.scala 27:73]
  wire [7:0] _wstrb_T_81 = _GEN_59 | _wstrb_T_78; // @[Mux.scala 27:73]
  wire [14:0] _GEN_385 = {{7'd0}, _wstrb_T_81}; // @[riscv_isa.scala 916:10]
  wire [14:0] _wstrb_T_83 = _GEN_385 << overlap_buff_1_param_dat_op1[2:0]; // @[riscv_isa.scala 916:10]
  wire [7:0] wstrb_2 = _wstrb_T_83[7:0]; // @[riscv_isa.scala 912:21 913:11]
  wire [7:0] _wmask_T_33 = wstrb_2[0] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _wmask_T_35 = wstrb_2[1] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _wmask_T_37 = wstrb_2[2] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _wmask_T_39 = wstrb_2[3] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _wmask_T_41 = wstrb_2[4] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _wmask_T_43 = wstrb_2[5] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _wmask_T_45 = wstrb_2[6] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _wmask_T_47 = wstrb_2[7] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [63:0] wmask_1 = {_wmask_T_47,_wmask_T_45,_wmask_T_43,_wmask_T_41,_wmask_T_39,_wmask_T_37,_wmask_T_35,_wmask_T_33
    }; // @[Cat.scala 33:92]
  wire [63:0] _new_data_T_3 = ~wmask_1; // @[Util.scala 108:27]
  wire [63:0] _new_data_T_4 = wdata & _new_data_T_3; // @[Util.scala 108:25]
  wire [63:0] res_1 = _res_T_5[63:0]; // @[riscv_isa.scala 906:21 907:11]
  wire [63:0] _new_data_T_5 = res_1 & wmask_1; // @[Util.scala 108:44]
  wire  _GEN_60 = io_cmm_lsu_is_store_commit_0 & ~reset; // @[Store_queue.scala 129:13]
  wire  _GEN_178 = ~io_cmm_lsu_is_store_commit_0 & _T_1 & _T_9; // @[Store_queue.scala 133:13]
  assign io_enq_ready = ~full; // @[Store_queue.scala 89:19]
  assign io_deq_valid = ~emty; // @[Store_queue.scala 90:19]
  assign io_deq_bits_fun_lb = io_deq_valid & _GEN_47; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_lh = io_deq_valid & _GEN_48; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_lw = io_deq_valid & _GEN_49; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_ld = io_deq_valid & _GEN_50; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_lbu = io_deq_valid & _GEN_51; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_lhu = io_deq_valid & _GEN_52; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_lwu = io_deq_valid & _GEN_53; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_sb = io_deq_valid & _GEN_54; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_sh = io_deq_valid & _GEN_55; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_sw = io_deq_valid & _GEN_56; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_sd = io_deq_valid & _GEN_57; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_lr_w = io_deq_valid & _GEN_61; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_sc_w = io_deq_valid & _GEN_62; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_amoswap_w = io_deq_valid & _GEN_63; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_amoadd_w = io_deq_valid & _GEN_64; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_amoxor_w = io_deq_valid & _GEN_65; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_amoand_w = io_deq_valid & _GEN_66; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_amoor_w = io_deq_valid & _GEN_67; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_amomin_w = io_deq_valid & _GEN_68; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_amomax_w = io_deq_valid & _GEN_69; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_amominu_w = io_deq_valid & _GEN_70; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_amomaxu_w = io_deq_valid & _GEN_71; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_lr_d = io_deq_valid & _GEN_72; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_sc_d = io_deq_valid & _GEN_73; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_amoswap_d = io_deq_valid & _GEN_74; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_amoadd_d = io_deq_valid & _GEN_75; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_amoxor_d = io_deq_valid & _GEN_76; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_amoand_d = io_deq_valid & _GEN_77; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_amoor_d = io_deq_valid & _GEN_78; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_amomin_d = io_deq_valid & _GEN_79; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_amomax_d = io_deq_valid & _GEN_80; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_amominu_d = io_deq_valid & _GEN_81; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_amomaxu_d = io_deq_valid & _GEN_82; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_flw = io_deq_valid & _GEN_83; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_fsw = io_deq_valid & _GEN_84; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_fld = io_deq_valid & _GEN_85; // @[Store_queue.scala 92:21]
  assign io_deq_bits_fun_fsd = io_deq_valid & _GEN_86; // @[Store_queue.scala 92:21]
  assign io_deq_bits_param_rd0 = io_deq_valid ? _GEN_87 : 6'h0; // @[Store_queue.scala 92:21]
  assign io_deq_bits_param_dat_op1 = io_deq_valid ? _GEN_88 : 64'h0; // @[Store_queue.scala 92:21]
  assign io_deq_bits_param_dat_op2 = io_deq_valid ? _GEN_89 : 64'h0; // @[Store_queue.scala 92:21]
  assign io_is_empty = cm_ptr_reg == wr_ptr_reg & emty; // @[Store_queue.scala 141:48]
  assign io_overlapResp_valid = rd_ptr_reg[1] != wr_ptr_reg[1] ? _GEN_804 : _GEN_1072; // @[Store_queue.scala 148:51]
  assign io_overlapResp_bits_wdata = _new_data_T_4 | _new_data_T_5; // @[Util.scala 108:35]
  assign io_overlapResp_bits_wstrb = wstrb | wstrb_2; // @[Util.scala 109:30]
  always @(posedge clock) begin
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_lb <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_lb <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_lb <= _GEN_270;
      end
    end else begin
      buff_0_fun_lb <= _GEN_270;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_lh <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_lh <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_lh <= _GEN_272;
      end
    end else begin
      buff_0_fun_lh <= _GEN_272;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_lw <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_lw <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_lw <= _GEN_274;
      end
    end else begin
      buff_0_fun_lw <= _GEN_274;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_ld <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_ld <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_ld <= _GEN_276;
      end
    end else begin
      buff_0_fun_ld <= _GEN_276;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_lbu <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_lbu <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_lbu <= _GEN_278;
      end
    end else begin
      buff_0_fun_lbu <= _GEN_278;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_lhu <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_lhu <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_lhu <= _GEN_280;
      end
    end else begin
      buff_0_fun_lhu <= _GEN_280;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_lwu <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_lwu <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_lwu <= _GEN_282;
      end
    end else begin
      buff_0_fun_lwu <= _GEN_282;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_sb <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_sb <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_sb <= _GEN_284;
      end
    end else begin
      buff_0_fun_sb <= _GEN_284;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_sh <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_sh <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_sh <= _GEN_286;
      end
    end else begin
      buff_0_fun_sh <= _GEN_286;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_sw <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_sw <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_sw <= _GEN_288;
      end
    end else begin
      buff_0_fun_sw <= _GEN_288;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_sd <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_sd <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_sd <= _GEN_290;
      end
    end else begin
      buff_0_fun_sd <= _GEN_290;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_lr_w <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_lr_w <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_lr_w <= _GEN_298;
      end
    end else begin
      buff_0_fun_lr_w <= _GEN_298;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_sc_w <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_sc_w <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_sc_w <= _GEN_300;
      end
    end else begin
      buff_0_fun_sc_w <= _GEN_300;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_amoswap_w <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_amoswap_w <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_amoswap_w <= _GEN_302;
      end
    end else begin
      buff_0_fun_amoswap_w <= _GEN_302;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_amoadd_w <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_amoadd_w <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_amoadd_w <= _GEN_304;
      end
    end else begin
      buff_0_fun_amoadd_w <= _GEN_304;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_amoxor_w <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_amoxor_w <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_amoxor_w <= _GEN_306;
      end
    end else begin
      buff_0_fun_amoxor_w <= _GEN_306;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_amoand_w <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_amoand_w <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_amoand_w <= _GEN_308;
      end
    end else begin
      buff_0_fun_amoand_w <= _GEN_308;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_amoor_w <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_amoor_w <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_amoor_w <= _GEN_310;
      end
    end else begin
      buff_0_fun_amoor_w <= _GEN_310;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_amomin_w <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_amomin_w <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_amomin_w <= _GEN_312;
      end
    end else begin
      buff_0_fun_amomin_w <= _GEN_312;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_amomax_w <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_amomax_w <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_amomax_w <= _GEN_314;
      end
    end else begin
      buff_0_fun_amomax_w <= _GEN_314;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_amominu_w <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_amominu_w <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_amominu_w <= _GEN_316;
      end
    end else begin
      buff_0_fun_amominu_w <= _GEN_316;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_amomaxu_w <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_amomaxu_w <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_amomaxu_w <= _GEN_318;
      end
    end else begin
      buff_0_fun_amomaxu_w <= _GEN_318;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_lr_d <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_lr_d <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_lr_d <= _GEN_320;
      end
    end else begin
      buff_0_fun_lr_d <= _GEN_320;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_sc_d <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_sc_d <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_sc_d <= _GEN_322;
      end
    end else begin
      buff_0_fun_sc_d <= _GEN_322;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_amoswap_d <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_amoswap_d <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_amoswap_d <= _GEN_324;
      end
    end else begin
      buff_0_fun_amoswap_d <= _GEN_324;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_amoadd_d <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_amoadd_d <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_amoadd_d <= _GEN_326;
      end
    end else begin
      buff_0_fun_amoadd_d <= _GEN_326;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_amoxor_d <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_amoxor_d <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_amoxor_d <= _GEN_328;
      end
    end else begin
      buff_0_fun_amoxor_d <= _GEN_328;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_amoand_d <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_amoand_d <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_amoand_d <= _GEN_330;
      end
    end else begin
      buff_0_fun_amoand_d <= _GEN_330;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_amoor_d <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_amoor_d <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_amoor_d <= _GEN_332;
      end
    end else begin
      buff_0_fun_amoor_d <= _GEN_332;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_amomin_d <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_amomin_d <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_amomin_d <= _GEN_334;
      end
    end else begin
      buff_0_fun_amomin_d <= _GEN_334;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_amomax_d <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_amomax_d <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_amomax_d <= _GEN_336;
      end
    end else begin
      buff_0_fun_amomax_d <= _GEN_336;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_amominu_d <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_amominu_d <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_amominu_d <= _GEN_338;
      end
    end else begin
      buff_0_fun_amominu_d <= _GEN_338;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_amomaxu_d <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_amomaxu_d <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_amomaxu_d <= _GEN_340;
      end
    end else begin
      buff_0_fun_amomaxu_d <= _GEN_340;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_flw <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_flw <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_flw <= _GEN_342;
      end
    end else begin
      buff_0_fun_flw <= _GEN_342;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_fsw <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_fsw <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_fsw <= _GEN_344;
      end
    end else begin
      buff_0_fun_fsw <= _GEN_344;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_fld <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_fld <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_fld <= _GEN_346;
      end
    end else begin
      buff_0_fun_fld <= _GEN_346;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_fun_fsd <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_fun_fsd <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_fun_fsd <= _GEN_348;
      end
    end else begin
      buff_0_fun_fsd <= _GEN_348;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_param_rd0 <= 6'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_param_rd0 <= 6'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_param_rd0 <= _GEN_350;
      end
    end else begin
      buff_0_param_rd0 <= _GEN_350;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_param_dat_op1 <= 64'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_param_dat_op1 <= 64'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_param_dat_op1 <= _GEN_352;
      end
    end else begin
      buff_0_param_dat_op1 <= _GEN_352;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_0_param_dat_op2 <= 64'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (~rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_0_param_dat_op2 <= 64'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_0_param_dat_op2 <= _GEN_354;
      end
    end else begin
      buff_0_param_dat_op2 <= _GEN_354;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_lb <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_lb <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_lb <= _GEN_271;
      end
    end else begin
      buff_1_fun_lb <= _GEN_271;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_lh <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_lh <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_lh <= _GEN_273;
      end
    end else begin
      buff_1_fun_lh <= _GEN_273;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_lw <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_lw <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_lw <= _GEN_275;
      end
    end else begin
      buff_1_fun_lw <= _GEN_275;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_ld <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_ld <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_ld <= _GEN_277;
      end
    end else begin
      buff_1_fun_ld <= _GEN_277;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_lbu <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_lbu <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_lbu <= _GEN_279;
      end
    end else begin
      buff_1_fun_lbu <= _GEN_279;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_lhu <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_lhu <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_lhu <= _GEN_281;
      end
    end else begin
      buff_1_fun_lhu <= _GEN_281;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_lwu <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_lwu <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_lwu <= _GEN_283;
      end
    end else begin
      buff_1_fun_lwu <= _GEN_283;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_sb <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_sb <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_sb <= _GEN_285;
      end
    end else begin
      buff_1_fun_sb <= _GEN_285;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_sh <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_sh <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_sh <= _GEN_287;
      end
    end else begin
      buff_1_fun_sh <= _GEN_287;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_sw <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_sw <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_sw <= _GEN_289;
      end
    end else begin
      buff_1_fun_sw <= _GEN_289;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_sd <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_sd <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_sd <= _GEN_291;
      end
    end else begin
      buff_1_fun_sd <= _GEN_291;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_lr_w <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_lr_w <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_lr_w <= _GEN_299;
      end
    end else begin
      buff_1_fun_lr_w <= _GEN_299;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_sc_w <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_sc_w <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_sc_w <= _GEN_301;
      end
    end else begin
      buff_1_fun_sc_w <= _GEN_301;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_amoswap_w <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_amoswap_w <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_amoswap_w <= _GEN_303;
      end
    end else begin
      buff_1_fun_amoswap_w <= _GEN_303;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_amoadd_w <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_amoadd_w <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_amoadd_w <= _GEN_305;
      end
    end else begin
      buff_1_fun_amoadd_w <= _GEN_305;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_amoxor_w <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_amoxor_w <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_amoxor_w <= _GEN_307;
      end
    end else begin
      buff_1_fun_amoxor_w <= _GEN_307;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_amoand_w <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_amoand_w <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_amoand_w <= _GEN_309;
      end
    end else begin
      buff_1_fun_amoand_w <= _GEN_309;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_amoor_w <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_amoor_w <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_amoor_w <= _GEN_311;
      end
    end else begin
      buff_1_fun_amoor_w <= _GEN_311;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_amomin_w <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_amomin_w <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_amomin_w <= _GEN_313;
      end
    end else begin
      buff_1_fun_amomin_w <= _GEN_313;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_amomax_w <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_amomax_w <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_amomax_w <= _GEN_315;
      end
    end else begin
      buff_1_fun_amomax_w <= _GEN_315;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_amominu_w <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_amominu_w <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_amominu_w <= _GEN_317;
      end
    end else begin
      buff_1_fun_amominu_w <= _GEN_317;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_amomaxu_w <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_amomaxu_w <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_amomaxu_w <= _GEN_319;
      end
    end else begin
      buff_1_fun_amomaxu_w <= _GEN_319;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_lr_d <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_lr_d <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_lr_d <= _GEN_321;
      end
    end else begin
      buff_1_fun_lr_d <= _GEN_321;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_sc_d <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_sc_d <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_sc_d <= _GEN_323;
      end
    end else begin
      buff_1_fun_sc_d <= _GEN_323;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_amoswap_d <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_amoswap_d <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_amoswap_d <= _GEN_325;
      end
    end else begin
      buff_1_fun_amoswap_d <= _GEN_325;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_amoadd_d <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_amoadd_d <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_amoadd_d <= _GEN_327;
      end
    end else begin
      buff_1_fun_amoadd_d <= _GEN_327;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_amoxor_d <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_amoxor_d <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_amoxor_d <= _GEN_329;
      end
    end else begin
      buff_1_fun_amoxor_d <= _GEN_329;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_amoand_d <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_amoand_d <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_amoand_d <= _GEN_331;
      end
    end else begin
      buff_1_fun_amoand_d <= _GEN_331;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_amoor_d <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_amoor_d <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_amoor_d <= _GEN_333;
      end
    end else begin
      buff_1_fun_amoor_d <= _GEN_333;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_amomin_d <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_amomin_d <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_amomin_d <= _GEN_335;
      end
    end else begin
      buff_1_fun_amomin_d <= _GEN_335;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_amomax_d <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_amomax_d <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_amomax_d <= _GEN_337;
      end
    end else begin
      buff_1_fun_amomax_d <= _GEN_337;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_amominu_d <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_amominu_d <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_amominu_d <= _GEN_339;
      end
    end else begin
      buff_1_fun_amominu_d <= _GEN_339;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_amomaxu_d <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_amomaxu_d <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_amomaxu_d <= _GEN_341;
      end
    end else begin
      buff_1_fun_amomaxu_d <= _GEN_341;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_flw <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_flw <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_flw <= _GEN_343;
      end
    end else begin
      buff_1_fun_flw <= _GEN_343;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_fsw <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_fsw <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_fsw <= _GEN_345;
      end
    end else begin
      buff_1_fun_fsw <= _GEN_345;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_fld <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_fld <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_fld <= _GEN_347;
      end
    end else begin
      buff_1_fun_fld <= _GEN_347;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_fun_fsd <= 1'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_fun_fsd <= 1'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_fun_fsd <= _GEN_349;
      end
    end else begin
      buff_1_fun_fsd <= _GEN_349;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_param_rd0 <= 6'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_param_rd0 <= 6'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_param_rd0 <= _GEN_351;
      end
    end else begin
      buff_1_param_rd0 <= _GEN_351;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_param_dat_op1 <= 64'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_param_dat_op1 <= 64'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_param_dat_op1 <= _GEN_353;
      end
    end else begin
      buff_1_param_dat_op1 <= _GEN_353;
    end
    if (reset) begin // @[Store_queue.scala 54:21]
      buff_1_param_dat_op2 <= 64'h0; // @[Store_queue.scala 54:21]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      if (rd_ptr) begin // @[Store_queue.scala 113:18]
        buff_1_param_dat_op2 <= 64'h0; // @[Store_queue.scala 113:18]
      end else begin
        buff_1_param_dat_op2 <= _GEN_355;
      end
    end else begin
      buff_1_param_dat_op2 <= _GEN_355;
    end
    if (reset) begin // @[Store_queue.scala 56:27]
      cm_ptr_reg <= 2'h0; // @[Store_queue.scala 56:27]
    end else if (io_cmm_lsu_is_store_commit_0) begin // @[Store_queue.scala 127:31]
      cm_ptr_reg <= _wr_ptr_reg_T_1; // @[Store_queue.scala 128:18]
    end else if (_T_1) begin // @[Store_queue.scala 131:44]
      cm_ptr_reg <= _wr_ptr_reg_T_1; // @[Store_queue.scala 132:18]
    end
    if (reset) begin // @[Store_queue.scala 57:27]
      wr_ptr_reg <= 2'h0; // @[Store_queue.scala 57:27]
    end else if (io_flush) begin // @[Store_queue.scala 94:20]
      if (io_cmm_lsu_is_store_commit_0 | _T_1) begin // @[Store_queue.scala 100:59]
        wr_ptr_reg <= _wr_ptr_reg_T_1; // @[Store_queue.scala 100:72]
      end else begin
        wr_ptr_reg <= cm_ptr_reg; // @[Store_queue.scala 101:30]
      end
    end else if (_T_5) begin // @[Store_queue.scala 106:30]
      wr_ptr_reg <= _wr_ptr_reg_T_3; // @[Store_queue.scala 108:16]
    end
    if (reset) begin // @[Store_queue.scala 58:27]
      rd_ptr_reg <= 2'h0; // @[Store_queue.scala 58:27]
    end else if (_T_6) begin // @[Store_queue.scala 111:23]
      rd_ptr_reg <= _rd_ptr_reg_T_1; // @[Store_queue.scala 112:16]
    end
    if (reset) begin // @[Store_queue.scala 69:23]
      is_amo <= 1'h0; // @[Store_queue.scala 69:23]
    end else if (io_flush) begin // @[Store_queue.scala 78:22]
      is_amo <= 1'h0; // @[Store_queue.scala 79:14]
    end else begin
      is_amo <= _GEN_1;
    end
    if (reset) begin // @[Store_queue.scala 76:29]
      is_amo_pre <= 1'h0; // @[Store_queue.scala 76:29]
    end else begin
      is_amo_pre <= io_cmm_lsu_is_amo_pending; // @[Store_queue.scala 76:29]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_cmm_lsu_is_store_commit_0 & ~reset & ~(~is_amo)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Store_queue.scala:129 assert( ~is_amo )\n"); // @[Store_queue.scala 129:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~is_amo) & (io_cmm_lsu_is_store_commit_0 & ~reset)) begin
          $fatal; // @[Store_queue.scala 129:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_60 & ~(cm_ptr_reg != wr_ptr_reg)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Store_queue.scala:130 assert( cm_ptr_reg =/= wr_ptr_reg )\n"); // @[Store_queue.scala 130:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(cm_ptr_reg != wr_ptr_reg) & _GEN_60) begin
          $fatal; // @[Store_queue.scala 130:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~io_cmm_lsu_is_store_commit_0 & _T_1 & _T_9 & ~(~(io_cmm_lsu_is_store_commit_0 & _T_1))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, is_amo only launch at chn 0!\n\n    at Store_queue.scala:133 assert( ~((is_st_commited(0)) & (is_amo & ~io.is_empty)), \"Assert Failed, is_amo only launch at chn 0!\\n\" )\n"
            ); // @[Store_queue.scala 133:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(io_cmm_lsu_is_store_commit_0 & _T_1)) & (~io_cmm_lsu_is_store_commit_0 & _T_1 & _T_9)) begin
          $fatal; // @[Store_queue.scala 133:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_178 & _T_14) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Store_queue.scala:134 assert( cm_ptr_reg =/= wr_ptr_reg )\n"); // @[Store_queue.scala 134:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_14 & _GEN_178) begin
          $fatal; // @[Store_queue.scala 134:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_30 & _T_9 & ~(rd_ptr >= wr_ptr)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Store_queue.scala:149 assert( rd_ptr >= wr_ptr )\n"); // @[Store_queue.scala 149:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(rd_ptr >= wr_ptr) & (_T_30 & _T_9)) begin
          $fatal; // @[Store_queue.scala 149:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~_T_30 & _T_9 & ~(rd_ptr <= wr_ptr)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Store_queue.scala:162 assert( rd_ptr <= wr_ptr )\n"); // @[Store_queue.scala 162:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(rd_ptr <= wr_ptr) & (~_T_30 & _T_9)) begin
          $fatal; // @[Store_queue.scala 162:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  buff_0_fun_lb = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  buff_0_fun_lh = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  buff_0_fun_lw = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  buff_0_fun_ld = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  buff_0_fun_lbu = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  buff_0_fun_lhu = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  buff_0_fun_lwu = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  buff_0_fun_sb = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  buff_0_fun_sh = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  buff_0_fun_sw = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  buff_0_fun_sd = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  buff_0_fun_lr_w = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  buff_0_fun_sc_w = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  buff_0_fun_amoswap_w = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  buff_0_fun_amoadd_w = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  buff_0_fun_amoxor_w = _RAND_15[0:0];
  _RAND_16 = {1{`RANDOM}};
  buff_0_fun_amoand_w = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  buff_0_fun_amoor_w = _RAND_17[0:0];
  _RAND_18 = {1{`RANDOM}};
  buff_0_fun_amomin_w = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  buff_0_fun_amomax_w = _RAND_19[0:0];
  _RAND_20 = {1{`RANDOM}};
  buff_0_fun_amominu_w = _RAND_20[0:0];
  _RAND_21 = {1{`RANDOM}};
  buff_0_fun_amomaxu_w = _RAND_21[0:0];
  _RAND_22 = {1{`RANDOM}};
  buff_0_fun_lr_d = _RAND_22[0:0];
  _RAND_23 = {1{`RANDOM}};
  buff_0_fun_sc_d = _RAND_23[0:0];
  _RAND_24 = {1{`RANDOM}};
  buff_0_fun_amoswap_d = _RAND_24[0:0];
  _RAND_25 = {1{`RANDOM}};
  buff_0_fun_amoadd_d = _RAND_25[0:0];
  _RAND_26 = {1{`RANDOM}};
  buff_0_fun_amoxor_d = _RAND_26[0:0];
  _RAND_27 = {1{`RANDOM}};
  buff_0_fun_amoand_d = _RAND_27[0:0];
  _RAND_28 = {1{`RANDOM}};
  buff_0_fun_amoor_d = _RAND_28[0:0];
  _RAND_29 = {1{`RANDOM}};
  buff_0_fun_amomin_d = _RAND_29[0:0];
  _RAND_30 = {1{`RANDOM}};
  buff_0_fun_amomax_d = _RAND_30[0:0];
  _RAND_31 = {1{`RANDOM}};
  buff_0_fun_amominu_d = _RAND_31[0:0];
  _RAND_32 = {1{`RANDOM}};
  buff_0_fun_amomaxu_d = _RAND_32[0:0];
  _RAND_33 = {1{`RANDOM}};
  buff_0_fun_flw = _RAND_33[0:0];
  _RAND_34 = {1{`RANDOM}};
  buff_0_fun_fsw = _RAND_34[0:0];
  _RAND_35 = {1{`RANDOM}};
  buff_0_fun_fld = _RAND_35[0:0];
  _RAND_36 = {1{`RANDOM}};
  buff_0_fun_fsd = _RAND_36[0:0];
  _RAND_37 = {1{`RANDOM}};
  buff_0_param_rd0 = _RAND_37[5:0];
  _RAND_38 = {2{`RANDOM}};
  buff_0_param_dat_op1 = _RAND_38[63:0];
  _RAND_39 = {2{`RANDOM}};
  buff_0_param_dat_op2 = _RAND_39[63:0];
  _RAND_40 = {1{`RANDOM}};
  buff_1_fun_lb = _RAND_40[0:0];
  _RAND_41 = {1{`RANDOM}};
  buff_1_fun_lh = _RAND_41[0:0];
  _RAND_42 = {1{`RANDOM}};
  buff_1_fun_lw = _RAND_42[0:0];
  _RAND_43 = {1{`RANDOM}};
  buff_1_fun_ld = _RAND_43[0:0];
  _RAND_44 = {1{`RANDOM}};
  buff_1_fun_lbu = _RAND_44[0:0];
  _RAND_45 = {1{`RANDOM}};
  buff_1_fun_lhu = _RAND_45[0:0];
  _RAND_46 = {1{`RANDOM}};
  buff_1_fun_lwu = _RAND_46[0:0];
  _RAND_47 = {1{`RANDOM}};
  buff_1_fun_sb = _RAND_47[0:0];
  _RAND_48 = {1{`RANDOM}};
  buff_1_fun_sh = _RAND_48[0:0];
  _RAND_49 = {1{`RANDOM}};
  buff_1_fun_sw = _RAND_49[0:0];
  _RAND_50 = {1{`RANDOM}};
  buff_1_fun_sd = _RAND_50[0:0];
  _RAND_51 = {1{`RANDOM}};
  buff_1_fun_lr_w = _RAND_51[0:0];
  _RAND_52 = {1{`RANDOM}};
  buff_1_fun_sc_w = _RAND_52[0:0];
  _RAND_53 = {1{`RANDOM}};
  buff_1_fun_amoswap_w = _RAND_53[0:0];
  _RAND_54 = {1{`RANDOM}};
  buff_1_fun_amoadd_w = _RAND_54[0:0];
  _RAND_55 = {1{`RANDOM}};
  buff_1_fun_amoxor_w = _RAND_55[0:0];
  _RAND_56 = {1{`RANDOM}};
  buff_1_fun_amoand_w = _RAND_56[0:0];
  _RAND_57 = {1{`RANDOM}};
  buff_1_fun_amoor_w = _RAND_57[0:0];
  _RAND_58 = {1{`RANDOM}};
  buff_1_fun_amomin_w = _RAND_58[0:0];
  _RAND_59 = {1{`RANDOM}};
  buff_1_fun_amomax_w = _RAND_59[0:0];
  _RAND_60 = {1{`RANDOM}};
  buff_1_fun_amominu_w = _RAND_60[0:0];
  _RAND_61 = {1{`RANDOM}};
  buff_1_fun_amomaxu_w = _RAND_61[0:0];
  _RAND_62 = {1{`RANDOM}};
  buff_1_fun_lr_d = _RAND_62[0:0];
  _RAND_63 = {1{`RANDOM}};
  buff_1_fun_sc_d = _RAND_63[0:0];
  _RAND_64 = {1{`RANDOM}};
  buff_1_fun_amoswap_d = _RAND_64[0:0];
  _RAND_65 = {1{`RANDOM}};
  buff_1_fun_amoadd_d = _RAND_65[0:0];
  _RAND_66 = {1{`RANDOM}};
  buff_1_fun_amoxor_d = _RAND_66[0:0];
  _RAND_67 = {1{`RANDOM}};
  buff_1_fun_amoand_d = _RAND_67[0:0];
  _RAND_68 = {1{`RANDOM}};
  buff_1_fun_amoor_d = _RAND_68[0:0];
  _RAND_69 = {1{`RANDOM}};
  buff_1_fun_amomin_d = _RAND_69[0:0];
  _RAND_70 = {1{`RANDOM}};
  buff_1_fun_amomax_d = _RAND_70[0:0];
  _RAND_71 = {1{`RANDOM}};
  buff_1_fun_amominu_d = _RAND_71[0:0];
  _RAND_72 = {1{`RANDOM}};
  buff_1_fun_amomaxu_d = _RAND_72[0:0];
  _RAND_73 = {1{`RANDOM}};
  buff_1_fun_flw = _RAND_73[0:0];
  _RAND_74 = {1{`RANDOM}};
  buff_1_fun_fsw = _RAND_74[0:0];
  _RAND_75 = {1{`RANDOM}};
  buff_1_fun_fld = _RAND_75[0:0];
  _RAND_76 = {1{`RANDOM}};
  buff_1_fun_fsd = _RAND_76[0:0];
  _RAND_77 = {1{`RANDOM}};
  buff_1_param_rd0 = _RAND_77[5:0];
  _RAND_78 = {2{`RANDOM}};
  buff_1_param_dat_op1 = _RAND_78[63:0];
  _RAND_79 = {2{`RANDOM}};
  buff_1_param_dat_op2 = _RAND_79[63:0];
  _RAND_80 = {1{`RANDOM}};
  cm_ptr_reg = _RAND_80[1:0];
  _RAND_81 = {1{`RANDOM}};
  wr_ptr_reg = _RAND_81[1:0];
  _RAND_82 = {1{`RANDOM}};
  rd_ptr_reg = _RAND_82[1:0];
  _RAND_83 = {1{`RANDOM}};
  is_amo = _RAND_83[0:0];
  _RAND_84 = {1{`RANDOM}};
  is_amo_pre = _RAND_84[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Arbiter(
  output        io_in_0_ready,
  input         io_in_0_valid,
  input         io_in_0_bits_fun_lb,
  input         io_in_0_bits_fun_lh,
  input         io_in_0_bits_fun_lw,
  input         io_in_0_bits_fun_ld,
  input         io_in_0_bits_fun_lbu,
  input         io_in_0_bits_fun_lhu,
  input         io_in_0_bits_fun_lwu,
  input         io_in_0_bits_fun_sb,
  input         io_in_0_bits_fun_sh,
  input         io_in_0_bits_fun_sw,
  input         io_in_0_bits_fun_sd,
  input         io_in_0_bits_fun_lr_w,
  input         io_in_0_bits_fun_sc_w,
  input         io_in_0_bits_fun_amoswap_w,
  input         io_in_0_bits_fun_amoadd_w,
  input         io_in_0_bits_fun_amoxor_w,
  input         io_in_0_bits_fun_amoand_w,
  input         io_in_0_bits_fun_amoor_w,
  input         io_in_0_bits_fun_amomin_w,
  input         io_in_0_bits_fun_amomax_w,
  input         io_in_0_bits_fun_amominu_w,
  input         io_in_0_bits_fun_amomaxu_w,
  input         io_in_0_bits_fun_lr_d,
  input         io_in_0_bits_fun_sc_d,
  input         io_in_0_bits_fun_amoswap_d,
  input         io_in_0_bits_fun_amoadd_d,
  input         io_in_0_bits_fun_amoxor_d,
  input         io_in_0_bits_fun_amoand_d,
  input         io_in_0_bits_fun_amoor_d,
  input         io_in_0_bits_fun_amomin_d,
  input         io_in_0_bits_fun_amomax_d,
  input         io_in_0_bits_fun_amominu_d,
  input         io_in_0_bits_fun_amomaxu_d,
  input         io_in_0_bits_fun_flw,
  input         io_in_0_bits_fun_fsw,
  input         io_in_0_bits_fun_fld,
  input         io_in_0_bits_fun_fsd,
  input  [5:0]  io_in_0_bits_param_rd0,
  input  [63:0] io_in_0_bits_param_dat_op1,
  input  [63:0] io_in_0_bits_param_dat_op2,
  output        io_in_1_ready,
  input         io_in_1_valid,
  input         io_in_1_bits_fun_lb,
  input         io_in_1_bits_fun_lh,
  input         io_in_1_bits_fun_lw,
  input         io_in_1_bits_fun_ld,
  input         io_in_1_bits_fun_lbu,
  input         io_in_1_bits_fun_lhu,
  input         io_in_1_bits_fun_lwu,
  input         io_in_1_bits_fun_sb,
  input         io_in_1_bits_fun_sh,
  input         io_in_1_bits_fun_sw,
  input         io_in_1_bits_fun_sd,
  input         io_in_1_bits_fun_lr_w,
  input         io_in_1_bits_fun_sc_w,
  input         io_in_1_bits_fun_amoswap_w,
  input         io_in_1_bits_fun_amoadd_w,
  input         io_in_1_bits_fun_amoxor_w,
  input         io_in_1_bits_fun_amoand_w,
  input         io_in_1_bits_fun_amoor_w,
  input         io_in_1_bits_fun_amomin_w,
  input         io_in_1_bits_fun_amomax_w,
  input         io_in_1_bits_fun_amominu_w,
  input         io_in_1_bits_fun_amomaxu_w,
  input         io_in_1_bits_fun_lr_d,
  input         io_in_1_bits_fun_sc_d,
  input         io_in_1_bits_fun_amoswap_d,
  input         io_in_1_bits_fun_amoadd_d,
  input         io_in_1_bits_fun_amoxor_d,
  input         io_in_1_bits_fun_amoand_d,
  input         io_in_1_bits_fun_amoor_d,
  input         io_in_1_bits_fun_amomin_d,
  input         io_in_1_bits_fun_amomax_d,
  input         io_in_1_bits_fun_amominu_d,
  input         io_in_1_bits_fun_amomaxu_d,
  input         io_in_1_bits_fun_flw,
  input         io_in_1_bits_fun_fsw,
  input         io_in_1_bits_fun_fld,
  input         io_in_1_bits_fun_fsd,
  input  [5:0]  io_in_1_bits_param_rd0,
  input  [63:0] io_in_1_bits_param_dat_op1,
  input  [63:0] io_in_1_bits_param_dat_op2,
  input         io_out_ready,
  output        io_out_valid,
  output        io_out_bits_fun_lb,
  output        io_out_bits_fun_lh,
  output        io_out_bits_fun_lw,
  output        io_out_bits_fun_ld,
  output        io_out_bits_fun_lbu,
  output        io_out_bits_fun_lhu,
  output        io_out_bits_fun_lwu,
  output        io_out_bits_fun_sb,
  output        io_out_bits_fun_sh,
  output        io_out_bits_fun_sw,
  output        io_out_bits_fun_sd,
  output        io_out_bits_fun_lr_w,
  output        io_out_bits_fun_sc_w,
  output        io_out_bits_fun_amoswap_w,
  output        io_out_bits_fun_amoadd_w,
  output        io_out_bits_fun_amoxor_w,
  output        io_out_bits_fun_amoand_w,
  output        io_out_bits_fun_amoor_w,
  output        io_out_bits_fun_amomin_w,
  output        io_out_bits_fun_amomax_w,
  output        io_out_bits_fun_amominu_w,
  output        io_out_bits_fun_amomaxu_w,
  output        io_out_bits_fun_lr_d,
  output        io_out_bits_fun_sc_d,
  output        io_out_bits_fun_amoswap_d,
  output        io_out_bits_fun_amoadd_d,
  output        io_out_bits_fun_amoxor_d,
  output        io_out_bits_fun_amoand_d,
  output        io_out_bits_fun_amoor_d,
  output        io_out_bits_fun_amomin_d,
  output        io_out_bits_fun_amomax_d,
  output        io_out_bits_fun_amominu_d,
  output        io_out_bits_fun_amomaxu_d,
  output        io_out_bits_fun_flw,
  output        io_out_bits_fun_fsw,
  output        io_out_bits_fun_fld,
  output        io_out_bits_fun_fsd,
  output [5:0]  io_out_bits_param_rd0,
  output [63:0] io_out_bits_param_dat_op1,
  output [63:0] io_out_bits_param_dat_op2
);
  wire  grant_1 = ~io_in_0_valid; // @[Arbiter.scala 45:78]
  assign io_in_0_ready = io_out_ready; // @[Arbiter.scala 146:19]
  assign io_in_1_ready = grant_1 & io_out_ready; // @[Arbiter.scala 146:19]
  assign io_out_valid = ~grant_1 | io_in_1_valid; // @[Arbiter.scala 147:31]
  assign io_out_bits_fun_lb = io_in_0_valid ? io_in_0_bits_fun_lb : io_in_1_bits_fun_lb; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_lh = io_in_0_valid ? io_in_0_bits_fun_lh : io_in_1_bits_fun_lh; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_lw = io_in_0_valid ? io_in_0_bits_fun_lw : io_in_1_bits_fun_lw; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_ld = io_in_0_valid ? io_in_0_bits_fun_ld : io_in_1_bits_fun_ld; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_lbu = io_in_0_valid ? io_in_0_bits_fun_lbu : io_in_1_bits_fun_lbu; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_lhu = io_in_0_valid ? io_in_0_bits_fun_lhu : io_in_1_bits_fun_lhu; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_lwu = io_in_0_valid ? io_in_0_bits_fun_lwu : io_in_1_bits_fun_lwu; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_sb = io_in_0_valid ? io_in_0_bits_fun_sb : io_in_1_bits_fun_sb; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_sh = io_in_0_valid ? io_in_0_bits_fun_sh : io_in_1_bits_fun_sh; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_sw = io_in_0_valid ? io_in_0_bits_fun_sw : io_in_1_bits_fun_sw; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_sd = io_in_0_valid ? io_in_0_bits_fun_sd : io_in_1_bits_fun_sd; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_lr_w = io_in_0_valid ? io_in_0_bits_fun_lr_w : io_in_1_bits_fun_lr_w; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_sc_w = io_in_0_valid ? io_in_0_bits_fun_sc_w : io_in_1_bits_fun_sc_w; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amoswap_w = io_in_0_valid ? io_in_0_bits_fun_amoswap_w : io_in_1_bits_fun_amoswap_w; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amoadd_w = io_in_0_valid ? io_in_0_bits_fun_amoadd_w : io_in_1_bits_fun_amoadd_w; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amoxor_w = io_in_0_valid ? io_in_0_bits_fun_amoxor_w : io_in_1_bits_fun_amoxor_w; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amoand_w = io_in_0_valid ? io_in_0_bits_fun_amoand_w : io_in_1_bits_fun_amoand_w; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amoor_w = io_in_0_valid ? io_in_0_bits_fun_amoor_w : io_in_1_bits_fun_amoor_w; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amomin_w = io_in_0_valid ? io_in_0_bits_fun_amomin_w : io_in_1_bits_fun_amomin_w; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amomax_w = io_in_0_valid ? io_in_0_bits_fun_amomax_w : io_in_1_bits_fun_amomax_w; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amominu_w = io_in_0_valid ? io_in_0_bits_fun_amominu_w : io_in_1_bits_fun_amominu_w; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amomaxu_w = io_in_0_valid ? io_in_0_bits_fun_amomaxu_w : io_in_1_bits_fun_amomaxu_w; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_lr_d = io_in_0_valid ? io_in_0_bits_fun_lr_d : io_in_1_bits_fun_lr_d; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_sc_d = io_in_0_valid ? io_in_0_bits_fun_sc_d : io_in_1_bits_fun_sc_d; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amoswap_d = io_in_0_valid ? io_in_0_bits_fun_amoswap_d : io_in_1_bits_fun_amoswap_d; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amoadd_d = io_in_0_valid ? io_in_0_bits_fun_amoadd_d : io_in_1_bits_fun_amoadd_d; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amoxor_d = io_in_0_valid ? io_in_0_bits_fun_amoxor_d : io_in_1_bits_fun_amoxor_d; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amoand_d = io_in_0_valid ? io_in_0_bits_fun_amoand_d : io_in_1_bits_fun_amoand_d; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amoor_d = io_in_0_valid ? io_in_0_bits_fun_amoor_d : io_in_1_bits_fun_amoor_d; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amomin_d = io_in_0_valid ? io_in_0_bits_fun_amomin_d : io_in_1_bits_fun_amomin_d; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amomax_d = io_in_0_valid ? io_in_0_bits_fun_amomax_d : io_in_1_bits_fun_amomax_d; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amominu_d = io_in_0_valid ? io_in_0_bits_fun_amominu_d : io_in_1_bits_fun_amominu_d; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amomaxu_d = io_in_0_valid ? io_in_0_bits_fun_amomaxu_d : io_in_1_bits_fun_amomaxu_d; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_flw = io_in_0_valid ? io_in_0_bits_fun_flw : io_in_1_bits_fun_flw; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_fsw = io_in_0_valid ? io_in_0_bits_fun_fsw : io_in_1_bits_fun_fsw; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_fld = io_in_0_valid ? io_in_0_bits_fun_fld : io_in_1_bits_fun_fld; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_fsd = io_in_0_valid ? io_in_0_bits_fun_fsd : io_in_1_bits_fun_fsd; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_param_rd0 = io_in_0_valid ? io_in_0_bits_param_rd0 : io_in_1_bits_param_rd0; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_param_dat_op1 = io_in_0_valid ? io_in_0_bits_param_dat_op1 : io_in_1_bits_param_dat_op1; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_param_dat_op2 = io_in_0_valid ? io_in_0_bits_param_dat_op2 : io_in_1_bits_param_dat_op2; // @[Arbiter.scala 136:15 138:26 140:19]
endmodule
module IO_Lsu(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input         io_enq_bits_fun_lb,
  input         io_enq_bits_fun_lh,
  input         io_enq_bits_fun_lw,
  input         io_enq_bits_fun_ld,
  input         io_enq_bits_fun_lbu,
  input         io_enq_bits_fun_lhu,
  input         io_enq_bits_fun_lwu,
  input         io_enq_bits_fun_sb,
  input         io_enq_bits_fun_sh,
  input         io_enq_bits_fun_sw,
  input         io_enq_bits_fun_sd,
  input         io_enq_bits_fun_lr_w,
  input         io_enq_bits_fun_sc_w,
  input         io_enq_bits_fun_amoswap_w,
  input         io_enq_bits_fun_amoadd_w,
  input         io_enq_bits_fun_amoxor_w,
  input         io_enq_bits_fun_amoand_w,
  input         io_enq_bits_fun_amoor_w,
  input         io_enq_bits_fun_amomin_w,
  input         io_enq_bits_fun_amomax_w,
  input         io_enq_bits_fun_amominu_w,
  input         io_enq_bits_fun_amomaxu_w,
  input         io_enq_bits_fun_lr_d,
  input         io_enq_bits_fun_sc_d,
  input         io_enq_bits_fun_amoswap_d,
  input         io_enq_bits_fun_amoadd_d,
  input         io_enq_bits_fun_amoxor_d,
  input         io_enq_bits_fun_amoand_d,
  input         io_enq_bits_fun_amoor_d,
  input         io_enq_bits_fun_amomin_d,
  input         io_enq_bits_fun_amomax_d,
  input         io_enq_bits_fun_amominu_d,
  input         io_enq_bits_fun_amomaxu_d,
  input         io_enq_bits_fun_flw,
  input         io_enq_bits_fun_fsw,
  input         io_enq_bits_fun_fld,
  input         io_enq_bits_fun_fsd,
  input  [5:0]  io_enq_bits_param_rd0,
  input  [63:0] io_enq_bits_param_dat_op1,
  input  [63:0] io_enq_bits_param_dat_op2,
  input         io_deq_ready,
  output        io_deq_valid,
  output [5:0]  io_deq_bits_wb_rd0,
  output [63:0] io_deq_bits_wb_res,
  output        io_deq_bits_is_load_amo,
  output        io_deq_bits_is_flw,
  output        io_deq_bits_is_fld,
  output        io_is_empty,
  input         io_getPut_ready,
  output        io_getPut_valid,
  output [2:0]  io_getPut_bits_opcode,
  output [31:0] io_getPut_bits_address,
  output [7:0]  io_getPut_bits_mask,
  output [63:0] io_getPut_bits_data,
  output        io_access_ready,
  input         io_access_valid,
  input  [2:0]  io_access_bits_opcode,
  input  [63:0] io_access_bits_data
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
  reg [31:0] _RAND_33;
  reg [31:0] _RAND_34;
  reg [31:0] _RAND_35;
  reg [31:0] _RAND_36;
  reg [31:0] _RAND_37;
  reg [31:0] _RAND_38;
  reg [31:0] _RAND_39;
  reg [63:0] _RAND_40;
  reg [63:0] _RAND_41;
`endif // RANDOMIZE_REG_INIT
  reg  is_busy; // @[IO_Lsu.scala 45:27]
  reg  isTransing; // @[IO_Lsu.scala 46:27]
  reg  pending_fun_lb; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_lh; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_lw; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_ld; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_lbu; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_lhu; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_lwu; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_sb; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_sh; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_sw; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_sd; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_lr_w; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_sc_w; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_amoswap_w; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_amoadd_w; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_amoxor_w; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_amoand_w; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_amoor_w; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_amomin_w; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_amomax_w; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_amominu_w; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_amomaxu_w; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_lr_d; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_sc_d; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_amoswap_d; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_amoadd_d; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_amoxor_d; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_amoand_d; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_amoor_d; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_amomin_d; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_amomax_d; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_amominu_d; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_amomaxu_d; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_flw; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_fsw; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_fld; // @[IO_Lsu.scala 47:20]
  reg  pending_fun_fsd; // @[IO_Lsu.scala 47:20]
  reg [5:0] pending_param_rd0; // @[IO_Lsu.scala 47:20]
  reg [63:0] pending_param_dat_op1; // @[IO_Lsu.scala 47:20]
  reg [63:0] pending_param_dat_op2; // @[IO_Lsu.scala 47:20]
  wire  _io_is_empty_T = ~is_busy; // @[IO_Lsu.scala 49:18]
  wire  _io_getPut_valid_T = ~isTransing; // @[IO_Lsu.scala 51:32]
  wire  _T_8 = pending_fun_lr_d | pending_fun_lr_w; // @[riscv_isa.scala 141:20]
  wire  _T_9 = pending_fun_lb | pending_fun_lh | pending_fun_lw | pending_fun_ld | pending_fun_lbu | pending_fun_lhu |
    pending_fun_lwu | pending_fun_flw | pending_fun_fld | _T_8; // @[riscv_isa.scala 143:65]
  wire  _T_12 = _T_9 & ~_T_8; // @[IO_Lsu.scala 55:29]
  wire [63:0] _io_getPut_bits_T = {{3'd0}, pending_param_dat_op1[63:3]}; // @[IO_Lsu.scala 59:39]
  wire [66:0] _io_getPut_bits_T_1 = {_io_getPut_bits_T, 3'h0}; // @[IO_Lsu.scala 59:59]
  wire  _T_17 = pending_fun_sb | pending_fun_sh | pending_fun_sw | pending_fun_sd | pending_fun_fsw | pending_fun_fsd; // @[riscv_isa.scala 144:40]
  wire  _T_18 = pending_fun_sc_d | pending_fun_sc_w; // @[riscv_isa.scala 140:20]
  wire  _T_20 = _T_17 & ~_T_18; // @[IO_Lsu.scala 62:38]
  wire [5:0] _io_getPut_bits_res_T_1 = {pending_param_dat_op1[2:0], 3'h0}; // @[riscv_isa.scala 907:61]
  wire [126:0] _GEN_119 = {{63'd0}, pending_param_dat_op2}; // @[riscv_isa.scala 907:28]
  wire [126:0] _io_getPut_bits_res_T_2 = _GEN_119 << _io_getPut_bits_res_T_1; // @[riscv_isa.scala 907:28]
  wire  _io_getPut_bits_wstrb_T_1 = pending_fun_lb | pending_fun_lbu | pending_fun_sb; // @[riscv_isa.scala 153:26]
  wire  _io_getPut_bits_wstrb_T_3 = pending_fun_lh | pending_fun_lhu | pending_fun_sh; // @[riscv_isa.scala 154:26]
  wire  _io_getPut_bits_wstrb_T_18 = pending_fun_lw | pending_fun_lwu | pending_fun_sw | pending_fun_amoswap_w |
    pending_fun_amoadd_w | pending_fun_amoxor_w | pending_fun_amoand_w | pending_fun_amoor_w | pending_fun_amomin_w |
    pending_fun_amomax_w | pending_fun_amominu_w | pending_fun_amomaxu_w | pending_fun_flw | pending_fun_fsw |
    pending_fun_lr_w | pending_fun_sc_w; // @[riscv_isa.scala 155:151]
  wire  _io_getPut_bits_wstrb_T_32 = pending_fun_ld | pending_fun_lr_d | pending_fun_fld | pending_fun_sd |
    pending_fun_sc_d | pending_fun_fsd | pending_fun_amoswap_d | pending_fun_amoadd_d | pending_fun_amoxor_d |
    pending_fun_amoand_d | pending_fun_amoor_d | pending_fun_amomin_d | pending_fun_amomax_d | pending_fun_amominu_d |
    pending_fun_amomaxu_d; // @[riscv_isa.scala 156:140]
  wire [1:0] _io_getPut_bits_wstrb_T_34 = _io_getPut_bits_wstrb_T_3 ? 2'h3 : 2'h0; // @[Mux.scala 27:73]
  wire [3:0] _io_getPut_bits_wstrb_T_35 = _io_getPut_bits_wstrb_T_18 ? 4'hf : 4'h0; // @[Mux.scala 27:73]
  wire [7:0] _io_getPut_bits_wstrb_T_36 = _io_getPut_bits_wstrb_T_32 ? 8'hff : 8'h0; // @[Mux.scala 27:73]
  wire [1:0] _GEN_43 = {{1'd0}, _io_getPut_bits_wstrb_T_1}; // @[Mux.scala 27:73]
  wire [1:0] _io_getPut_bits_wstrb_T_37 = _GEN_43 | _io_getPut_bits_wstrb_T_34; // @[Mux.scala 27:73]
  wire [3:0] _GEN_73 = {{2'd0}, _io_getPut_bits_wstrb_T_37}; // @[Mux.scala 27:73]
  wire [3:0] _io_getPut_bits_wstrb_T_38 = _GEN_73 | _io_getPut_bits_wstrb_T_35; // @[Mux.scala 27:73]
  wire [7:0] _GEN_76 = {{4'd0}, _io_getPut_bits_wstrb_T_38}; // @[Mux.scala 27:73]
  wire [7:0] _io_getPut_bits_wstrb_T_39 = _GEN_76 | _io_getPut_bits_wstrb_T_36; // @[Mux.scala 27:73]
  wire [14:0] _GEN_120 = {{7'd0}, _io_getPut_bits_wstrb_T_39}; // @[riscv_isa.scala 916:10]
  wire [14:0] _io_getPut_bits_wstrb_T_41 = _GEN_120 << pending_param_dat_op1[2:0]; // @[riscv_isa.scala 916:10]
  wire  _T_22 = ~reset; // @[IO_Lsu.scala 73:15]
  wire [31:0] io_getPut_bits_a_1_address = _io_getPut_bits_T_1[31:0]; // @[Edges.scala 483:17 488:15]
  wire [7:0] io_getPut_bits_wstrb = _io_getPut_bits_wstrb_T_41[7:0]; // @[riscv_isa.scala 912:21 913:11]
  wire [63:0] io_getPut_bits_res = _io_getPut_bits_res_T_2[63:0]; // @[riscv_isa.scala 906:21 907:11]
  wire  _T_24 = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _T_33 = io_getPut_ready & io_getPut_valid; // @[Decoupled.scala 52:35]
  wire  _T_34 = io_access_ready & io_access_valid; // @[Decoupled.scala 52:35]
  wire  _T_35 = _T_33 & _T_34; // @[IO_Lsu.scala 89:31]
  wire  _GEN_24 = _T_34 ? 1'h0 : is_busy; // @[IO_Lsu.scala 96:32 98:13 45:27]
  wire  _GEN_25 = _T_34 ? 1'h0 : isTransing; // @[IO_Lsu.scala 96:32 99:16 46:27]
  wire  _GEN_26 = _T_33 | _GEN_25; // @[IO_Lsu.scala 93:33 95:16]
  wire  _GEN_27 = _T_33 ? is_busy : _GEN_24; // @[IO_Lsu.scala 45:27 93:33]
  wire  _GEN_28 = _T_33 & _T_34 ? 1'h0 : _GEN_27; // @[IO_Lsu.scala 89:50 90:13]
  wire  _GEN_74 = _T_24 | _GEN_28; // @[IO_Lsu.scala 84:23 88:13]
  wire [63:0] io_deq_bits_wb_res_res_pre_align = io_access_bits_data >> _io_getPut_bits_res_T_1; // @[Util.scala 147:26]
  wire  _io_deq_bits_wb_res_res_pre_res_T_3 = pending_fun_lbu | pending_fun_lhu | pending_fun_lwu; // @[riscv_isa.scala 158:26]
  wire  _io_deq_bits_wb_res_res_pre_res_T_5 = _io_deq_bits_wb_res_res_pre_res_T_3 ? 1'h0 :
    io_deq_bits_wb_res_res_pre_align[7]; // @[Util.scala 120:71]
  wire [55:0] _io_deq_bits_wb_res_res_pre_res_T_7 = _io_deq_bits_wb_res_res_pre_res_T_5 ? 56'hffffffffffffff : 56'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _io_deq_bits_wb_res_res_pre_res_T_9 = {_io_deq_bits_wb_res_res_pre_res_T_7,
    io_deq_bits_wb_res_res_pre_align[7:0]}; // @[Cat.scala 33:92]
  wire  _io_deq_bits_wb_res_res_pre_res_T_15 = _io_deq_bits_wb_res_res_pre_res_T_3 ? 1'h0 :
    io_deq_bits_wb_res_res_pre_align[15]; // @[Util.scala 121:71]
  wire [47:0] _io_deq_bits_wb_res_res_pre_res_T_17 = _io_deq_bits_wb_res_res_pre_res_T_15 ? 48'hffffffffffff : 48'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _io_deq_bits_wb_res_res_pre_res_T_19 = {_io_deq_bits_wb_res_res_pre_res_T_17,
    io_deq_bits_wb_res_res_pre_align[15:0]}; // @[Cat.scala 33:92]
  wire  _io_deq_bits_wb_res_res_pre_res_T_38 = _io_deq_bits_wb_res_res_pre_res_T_3 ? 1'h0 :
    io_deq_bits_wb_res_res_pre_align[31]; // @[Util.scala 122:71]
  wire [31:0] _io_deq_bits_wb_res_res_pre_res_T_40 = _io_deq_bits_wb_res_res_pre_res_T_38 ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _io_deq_bits_wb_res_res_pre_res_T_42 = {_io_deq_bits_wb_res_res_pre_res_T_40,
    io_deq_bits_wb_res_res_pre_align[31:0]}; // @[Cat.scala 33:92]
  wire [63:0] _io_deq_bits_wb_res_res_pre_res_T_57 = _io_getPut_bits_wstrb_T_1 ? _io_deq_bits_wb_res_res_pre_res_T_9 : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _io_deq_bits_wb_res_res_pre_res_T_58 = _io_getPut_bits_wstrb_T_3 ? _io_deq_bits_wb_res_res_pre_res_T_19 : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _io_deq_bits_wb_res_res_pre_res_T_59 = _io_getPut_bits_wstrb_T_18 ? _io_deq_bits_wb_res_res_pre_res_T_42
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_deq_bits_wb_res_res_pre_res_T_60 = _io_getPut_bits_wstrb_T_32 ? io_deq_bits_wb_res_res_pre_align : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _io_deq_bits_wb_res_res_pre_res_T_61 = _io_deq_bits_wb_res_res_pre_res_T_57 |
    _io_deq_bits_wb_res_res_pre_res_T_58; // @[Mux.scala 27:73]
  wire [63:0] _io_deq_bits_wb_res_res_pre_res_T_62 = _io_deq_bits_wb_res_res_pre_res_T_61 |
    _io_deq_bits_wb_res_res_pre_res_T_59; // @[Mux.scala 27:73]
  wire  _GEN_85 = _T_24 & _T_22; // @[IO_Lsu.scala 85:11]
  wire  _GEN_91 = ~_T_24; // @[IO_Lsu.scala 92:11]
  wire  _GEN_95 = _GEN_91 & ~_T_35; // @[IO_Lsu.scala 94:11]
  assign io_enq_ready = ~is_busy; // @[IO_Lsu.scala 53:19]
  assign io_deq_valid = io_access_valid; // @[IO_Lsu.scala 102:19]
  assign io_deq_bits_wb_rd0 = pending_param_rd0; // @[IO_Lsu.scala 104:22]
  assign io_deq_bits_wb_res = _io_deq_bits_wb_res_res_pre_res_T_62 | _io_deq_bits_wb_res_res_pre_res_T_60; // @[Mux.scala 27:73]
  assign io_deq_bits_is_load_amo = io_access_bits_opcode == 3'h1; // @[IO_Lsu.scala 121:53]
  assign io_deq_bits_is_flw = io_deq_valid & pending_fun_flw; // @[IO_Lsu.scala 125:28]
  assign io_deq_bits_is_fld = io_deq_valid & pending_fun_fld; // @[IO_Lsu.scala 126:28]
  assign io_is_empty = ~is_busy; // @[IO_Lsu.scala 49:18]
  assign io_getPut_valid = is_busy & ~isTransing; // @[IO_Lsu.scala 51:30]
  assign io_getPut_bits_opcode = _T_9 & ~_T_8 ? 3'h4 : 3'h1; // @[IO_Lsu.scala 55:51 56:24]
  assign io_getPut_bits_address = _T_9 & ~_T_8 ? io_getPut_bits_a_1_address : io_getPut_bits_a_1_address; // @[IO_Lsu.scala 55:51 56:24]
  assign io_getPut_bits_mask = _T_9 & ~_T_8 ? 8'hff : io_getPut_bits_wstrb; // @[IO_Lsu.scala 55:51 56:24]
  assign io_getPut_bits_data = _T_9 & ~_T_8 ? 64'h0 : io_getPut_bits_res; // @[IO_Lsu.scala 55:51 56:24]
  assign io_access_ready = io_deq_ready; // @[IO_Lsu.scala 129:19]
  always @(posedge clock) begin
    if (reset) begin // @[IO_Lsu.scala 45:27]
      is_busy <= 1'h0; // @[IO_Lsu.scala 45:27]
    end else begin
      is_busy <= _GEN_74;
    end
    if (reset) begin // @[IO_Lsu.scala 46:27]
      isTransing <= 1'h0; // @[IO_Lsu.scala 46:27]
    end else if (!(_T_24)) begin // @[IO_Lsu.scala 84:23]
      if (_T_33 & _T_34) begin // @[IO_Lsu.scala 89:50]
        isTransing <= 1'h0; // @[IO_Lsu.scala 91:16]
      end else begin
        isTransing <= _GEN_26;
      end
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_lb <= io_enq_bits_fun_lb; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_lh <= io_enq_bits_fun_lh; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_lw <= io_enq_bits_fun_lw; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_ld <= io_enq_bits_fun_ld; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_lbu <= io_enq_bits_fun_lbu; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_lhu <= io_enq_bits_fun_lhu; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_lwu <= io_enq_bits_fun_lwu; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_sb <= io_enq_bits_fun_sb; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_sh <= io_enq_bits_fun_sh; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_sw <= io_enq_bits_fun_sw; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_sd <= io_enq_bits_fun_sd; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_lr_w <= io_enq_bits_fun_lr_w; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_sc_w <= io_enq_bits_fun_sc_w; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_amoswap_w <= io_enq_bits_fun_amoswap_w; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_amoadd_w <= io_enq_bits_fun_amoadd_w; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_amoxor_w <= io_enq_bits_fun_amoxor_w; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_amoand_w <= io_enq_bits_fun_amoand_w; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_amoor_w <= io_enq_bits_fun_amoor_w; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_amomin_w <= io_enq_bits_fun_amomin_w; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_amomax_w <= io_enq_bits_fun_amomax_w; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_amominu_w <= io_enq_bits_fun_amominu_w; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_amomaxu_w <= io_enq_bits_fun_amomaxu_w; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_lr_d <= io_enq_bits_fun_lr_d; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_sc_d <= io_enq_bits_fun_sc_d; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_amoswap_d <= io_enq_bits_fun_amoswap_d; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_amoadd_d <= io_enq_bits_fun_amoadd_d; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_amoxor_d <= io_enq_bits_fun_amoxor_d; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_amoand_d <= io_enq_bits_fun_amoand_d; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_amoor_d <= io_enq_bits_fun_amoor_d; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_amomin_d <= io_enq_bits_fun_amomin_d; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_amomax_d <= io_enq_bits_fun_amomax_d; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_amominu_d <= io_enq_bits_fun_amominu_d; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_amomaxu_d <= io_enq_bits_fun_amomaxu_d; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_flw <= io_enq_bits_fun_flw; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_fsw <= io_enq_bits_fun_fsw; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_fld <= io_enq_bits_fun_fld; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_fun_fsd <= io_enq_bits_fun_fsd; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_param_rd0 <= io_enq_bits_param_rd0; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_param_dat_op1 <= io_enq_bits_param_dat_op1; // @[IO_Lsu.scala 87:13]
    end
    if (_T_24) begin // @[IO_Lsu.scala 84:23]
      pending_param_dat_op2 <= io_enq_bits_param_dat_op2; // @[IO_Lsu.scala 87:13]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (is_busy & ~_T_12 & ~_T_20 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed at IO_Lsu, RISCV-A is not support at IO region\n    at IO_Lsu.scala:73 assert(false.B, \"Assert Failed at IO_Lsu, RISCV-A is not support at IO region\")\n"
            ); // @[IO_Lsu.scala 73:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (is_busy & ~_T_12 & ~_T_20 & ~reset) begin
          $fatal; // @[IO_Lsu.scala 73:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_24 & _T_22 & ~_io_is_empty_T) begin
          $fwrite(32'h80000002,"Assertion failed\n    at IO_Lsu.scala:85 assert( is_busy === false.B  )\n"); // @[IO_Lsu.scala 85:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_io_is_empty_T & (_T_24 & _T_22)) begin
          $fatal; // @[IO_Lsu.scala 85:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_85 & ~_io_getPut_valid_T) begin
          $fwrite(32'h80000002,"Assertion failed\n    at IO_Lsu.scala:86 assert( isTransing === false.B  )\n"); // @[IO_Lsu.scala 86:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_io_getPut_valid_T & _GEN_85) begin
          $fatal; // @[IO_Lsu.scala 86:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~_T_24 & _T_35 & _T_22) begin
          $fwrite(32'h80000002,"Warning! Accessing a Non-define Region."); // @[IO_Lsu.scala 92:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_91 & ~_T_35 & _T_33 & _T_22 & _io_is_empty_T) begin
          $fwrite(32'h80000002,"Assertion failed\n    at IO_Lsu.scala:94 assert( is_busy === true.B )\n"); // @[IO_Lsu.scala 94:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_io_is_empty_T & (_GEN_91 & ~_T_35 & _T_33 & _T_22)) begin
          $fatal; // @[IO_Lsu.scala 94:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_95 & ~_T_33 & _T_34 & _T_22 & _io_is_empty_T) begin
          $fwrite(32'h80000002,"Assertion failed\n    at IO_Lsu.scala:97 assert( is_busy === true.B  )\n"); // @[IO_Lsu.scala 97:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_io_is_empty_T & (_GEN_95 & ~_T_33 & _T_34 & _T_22)) begin
          $fatal; // @[IO_Lsu.scala 97:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  is_busy = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  isTransing = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  pending_fun_lb = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  pending_fun_lh = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  pending_fun_lw = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  pending_fun_ld = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  pending_fun_lbu = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  pending_fun_lhu = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  pending_fun_lwu = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  pending_fun_sb = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  pending_fun_sh = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  pending_fun_sw = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  pending_fun_sd = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  pending_fun_lr_w = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  pending_fun_sc_w = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  pending_fun_amoswap_w = _RAND_15[0:0];
  _RAND_16 = {1{`RANDOM}};
  pending_fun_amoadd_w = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  pending_fun_amoxor_w = _RAND_17[0:0];
  _RAND_18 = {1{`RANDOM}};
  pending_fun_amoand_w = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  pending_fun_amoor_w = _RAND_19[0:0];
  _RAND_20 = {1{`RANDOM}};
  pending_fun_amomin_w = _RAND_20[0:0];
  _RAND_21 = {1{`RANDOM}};
  pending_fun_amomax_w = _RAND_21[0:0];
  _RAND_22 = {1{`RANDOM}};
  pending_fun_amominu_w = _RAND_22[0:0];
  _RAND_23 = {1{`RANDOM}};
  pending_fun_amomaxu_w = _RAND_23[0:0];
  _RAND_24 = {1{`RANDOM}};
  pending_fun_lr_d = _RAND_24[0:0];
  _RAND_25 = {1{`RANDOM}};
  pending_fun_sc_d = _RAND_25[0:0];
  _RAND_26 = {1{`RANDOM}};
  pending_fun_amoswap_d = _RAND_26[0:0];
  _RAND_27 = {1{`RANDOM}};
  pending_fun_amoadd_d = _RAND_27[0:0];
  _RAND_28 = {1{`RANDOM}};
  pending_fun_amoxor_d = _RAND_28[0:0];
  _RAND_29 = {1{`RANDOM}};
  pending_fun_amoand_d = _RAND_29[0:0];
  _RAND_30 = {1{`RANDOM}};
  pending_fun_amoor_d = _RAND_30[0:0];
  _RAND_31 = {1{`RANDOM}};
  pending_fun_amomin_d = _RAND_31[0:0];
  _RAND_32 = {1{`RANDOM}};
  pending_fun_amomax_d = _RAND_32[0:0];
  _RAND_33 = {1{`RANDOM}};
  pending_fun_amominu_d = _RAND_33[0:0];
  _RAND_34 = {1{`RANDOM}};
  pending_fun_amomaxu_d = _RAND_34[0:0];
  _RAND_35 = {1{`RANDOM}};
  pending_fun_flw = _RAND_35[0:0];
  _RAND_36 = {1{`RANDOM}};
  pending_fun_fsw = _RAND_36[0:0];
  _RAND_37 = {1{`RANDOM}};
  pending_fun_fld = _RAND_37[0:0];
  _RAND_38 = {1{`RANDOM}};
  pending_fun_fsd = _RAND_38[0:0];
  _RAND_39 = {1{`RANDOM}};
  pending_param_rd0 = _RAND_39[5:0];
  _RAND_40 = {2{`RANDOM}};
  pending_param_dat_op1 = _RAND_40[63:0];
  _RAND_41 = {2{`RANDOM}};
  pending_param_dat_op2 = _RAND_41[63:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module MissUnit(
  input          clock,
  input          reset,
  input          io_req_valid,
  input  [31:0]  io_req_bits_paddr,
  output         io_rsp_valid,
  output [31:0]  io_rsp_bits_paddr,
  output [127:0] io_rsp_bits_wdata,
  input          io_cache_acquire_ready,
  output         io_cache_acquire_valid,
  output [31:0]  io_cache_acquire_bits_address,
  output         io_cache_grant_ready,
  input          io_cache_grant_valid,
  input  [2:0]   io_cache_grant_bits_opcode,
  input  [2:0]   io_cache_grant_bits_size,
  input          io_cache_grant_bits_source,
  input  [4:0]   io_cache_grant_bits_sink,
  input  [63:0]  io_cache_grant_bits_data,
  input          io_cache_grantAck_ready,
  output         io_cache_grantAck_valid,
  output [4:0]   io_cache_grantAck_bits_sink,
  input          io_miss_ban,
  output         io_release_ban
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [63:0] _RAND_4;
  reg [63:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
`endif // RANDOMIZE_REG_INIT
  reg [31:0] miss_queue_0_paddr; // @[MissUnit.scala 56:27]
  reg [31:0] miss_queue_1_paddr; // @[MissUnit.scala 56:27]
  reg  miss_valid_0; // @[MissUnit.scala 59:27]
  reg  miss_valid_1; // @[MissUnit.scala 59:27]
  reg [63:0] miss_rsp_0; // @[MissUnit.scala 62:25]
  reg [63:0] miss_rsp_1; // @[MissUnit.scala 62:25]
  reg [2:0] mshr_state_qout; // @[MissUnit.scala 65:32]
  wire  _T = io_cache_grant_ready & io_cache_grant_valid; // @[Decoupled.scala 52:35]
  wire [10:0] _beats1_decode_T_1 = 11'hf << io_cache_grant_bits_size; // @[package.scala 234:77]
  wire [3:0] _beats1_decode_T_3 = ~_beats1_decode_T_1[3:0]; // @[package.scala 234:46]
  wire  beats1_decode = _beats1_decode_T_3[3]; // @[Edges.scala 219:59]
  wire  beats1_opdata = io_cache_grant_bits_opcode[0]; // @[Edges.scala 105:36]
  wire  beats1 = beats1_opdata & beats1_decode; // @[Edges.scala 220:14]
  reg  counter; // @[Edges.scala 228:27]
  wire  counter1 = counter - 1'h1; // @[Edges.scala 229:28]
  wire  first = ~counter; // @[Edges.scala 230:25]
  wire  last = counter | ~beats1; // @[Edges.scala 231:37]
  wire  is_trans_done = last & _T; // @[Edges.scala 232:22]
  wire  transCnt = beats1 & ~counter1; // @[Edges.scala 233:25]
  wire  acquire_sel_sel = miss_valid_0 ? 1'h0 : 1'h1; // @[MissUnit.scala 75:36]
  wire  _acquire_sel_T = mshr_state_qout == 3'h0; // @[MissUnit.scala 76:26]
  wire  _mshr_state_dnxt_T_6 = (miss_valid_0 | miss_valid_1) & ~io_miss_ban; // @[MissUnit.scala 103:68]
  wire  _mshr_state_dnxt_T_16 = _acquire_sel_T & _mshr_state_dnxt_T_6; // @[Mux.scala 27:73]
  wire  _mshr_state_dnxt_T_8 = mshr_state_qout == 3'h1; // @[MissUnit.scala 104:24]
  wire  _mshr_state_dnxt_T_9 = io_cache_acquire_ready & io_cache_acquire_valid; // @[Decoupled.scala 52:35]
  wire [1:0] _mshr_state_dnxt_T_10 = _mshr_state_dnxt_T_9 ? 2'h2 : 2'h1; // @[MissUnit.scala 104:39]
  wire [1:0] _mshr_state_dnxt_T_17 = _mshr_state_dnxt_T_8 ? _mshr_state_dnxt_T_10 : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _GEN_2 = {{1'd0}, _mshr_state_dnxt_T_16}; // @[Mux.scala 27:73]
  wire [1:0] _mshr_state_dnxt_T_20 = _GEN_2 | _mshr_state_dnxt_T_17; // @[Mux.scala 27:73]
  wire  _mshr_state_dnxt_T_11 = mshr_state_qout == 3'h2; // @[MissUnit.scala 105:24]
  wire [1:0] _mshr_state_dnxt_T_12 = is_trans_done ? 2'h3 : 2'h2; // @[MissUnit.scala 105:39]
  wire [1:0] _mshr_state_dnxt_T_18 = _mshr_state_dnxt_T_11 ? _mshr_state_dnxt_T_12 : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _mshr_state_dnxt_T_21 = _mshr_state_dnxt_T_20 | _mshr_state_dnxt_T_18; // @[Mux.scala 27:73]
  wire  _mshr_state_dnxt_T_13 = mshr_state_qout == 3'h3; // @[MissUnit.scala 106:24]
  wire  _mshr_state_dnxt_T_14 = io_cache_grantAck_ready & io_cache_grantAck_valid; // @[Decoupled.scala 52:35]
  wire [1:0] _mshr_state_dnxt_T_15 = _mshr_state_dnxt_T_14 ? 2'h0 : 2'h3; // @[MissUnit.scala 106:39]
  wire [1:0] _mshr_state_dnxt_T_19 = _mshr_state_dnxt_T_13 ? _mshr_state_dnxt_T_15 : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _mshr_state_dnxt_T_22 = _mshr_state_dnxt_T_21 | _mshr_state_dnxt_T_19; // @[Mux.scala 27:73]
  wire [2:0] mshr_state_dnxt = {{1'd0}, _mshr_state_dnxt_T_22}; // @[MissUnit.scala 101:19 64:29]
  wire  _acquire_sel_T_3 = mshr_state_qout == 3'h0 & mshr_state_dnxt == 3'h1; // @[MissUnit.scala 76:79]
  reg  acquire_sel_r; // @[Reg.scala 19:16]
  wire  acquire_sel = mshr_state_qout == 3'h0 ? acquire_sel_sel : acquire_sel_r; // @[MissUnit.scala 76:8]
  reg  cache_acquire_vaild; // @[MissUnit.scala 81:37]
  reg  cache_grantAck_valid; // @[MissUnit.scala 87:37]
  reg  rsp_valid; // @[MissUnit.scala 90:26]
  reg [4:0] cache_grant_reg_sink; // @[Reg.scala 19:16]
  wire  _T_6 = ~reset; // @[MissUnit.scala 93:9]
  wire  _GEN_10 = _mshr_state_dnxt_T_9 ? 1'h0 : cache_acquire_vaild; // @[MissUnit.scala 111:40 112:25 81:37]
  wire  _GEN_11 = _acquire_sel_T_3 | _GEN_10; // @[MissUnit.scala 109:61 110:25]
  wire [31:0] _GEN_13 = acquire_sel ? miss_queue_1_paddr : miss_queue_0_paddr; // @[MissUnit.scala 130:{49,49}]
  wire [38:0] _GEN_3 = {{7'd0}, _GEN_13}; // @[MissUnit.scala 130:49]
  wire [38:0] _io_cache_acquire_bits_T_1 = _GEN_3 & 39'hffffffff0; // @[MissUnit.scala 130:49]
  wire  _T_23 = mshr_state_dnxt == 3'h3 & _mshr_state_dnxt_T_11; // @[MissUnit.scala 145:33]
  wire  _T_28 = ~_mshr_state_dnxt_T_13; // @[MissUnit.scala 150:11]
  wire  _GEN_18 = ~acquire_sel ? 1'h0 : miss_valid_0; // @[MissUnit.scala 153:{31,31} 59:27]
  wire  _GEN_19 = acquire_sel ? 1'h0 : miss_valid_1; // @[MissUnit.scala 153:{31,31} 59:27]
  wire  _GEN_20 = _mshr_state_dnxt_T_14 ? 1'h0 : cache_grantAck_valid; // @[MissUnit.scala 151:41 152:26 87:37]
  wire  _GEN_21 = _mshr_state_dnxt_T_14 ? _GEN_18 : miss_valid_0; // @[MissUnit.scala 151:41 59:27]
  wire  _GEN_22 = _mshr_state_dnxt_T_14 ? _GEN_19 : miss_valid_1; // @[MissUnit.scala 151:41 59:27]
  wire  _GEN_23 = io_rsp_valid ? 1'h0 : rsp_valid; // @[MissUnit.scala 147:28 148:15 90:26]
  wire  _GEN_24 = io_rsp_valid | _GEN_20; // @[MissUnit.scala 147:28 149:26]
  wire  _GEN_25 = io_rsp_valid ? miss_valid_0 : _GEN_21; // @[MissUnit.scala 147:28 59:27]
  wire  _GEN_26 = io_rsp_valid ? miss_valid_1 : _GEN_22; // @[MissUnit.scala 147:28 59:27]
  wire  _GEN_27 = mshr_state_dnxt == 3'h3 & _mshr_state_dnxt_T_11 | _GEN_23; // @[MissUnit.scala 145:61 146:15]
  wire  _GEN_29 = mshr_state_dnxt == 3'h3 & _mshr_state_dnxt_T_11 ? miss_valid_0 : _GEN_25; // @[MissUnit.scala 145:61 59:27]
  wire  _GEN_30 = mshr_state_dnxt == 3'h3 & _mshr_state_dnxt_T_11 ? miss_valid_1 : _GEN_26; // @[MissUnit.scala 145:61 59:27]
  wire  is_missQueue_full = miss_valid_0 & miss_valid_1; // @[MissUnit.scala 167:44]
  wire  _load_sel_T = ~miss_valid_0; // @[MissUnit.scala 170:56]
  wire  load_sel = ~miss_valid_0 ? 1'h0 : 1'h1; // @[MissUnit.scala 170:39]
  wire  _is_merge_T_2 = miss_queue_0_paddr == io_req_bits_paddr & miss_valid_0; // @[MissUnit.scala 178:51]
  wire  _is_merge_T_5 = miss_queue_1_paddr == io_req_bits_paddr & miss_valid_1; // @[MissUnit.scala 178:51]
  wire  is_merge = _is_merge_T_2 | _is_merge_T_5; // @[MissUnit.scala 180:13]
  wire  _GEN_33 = ~load_sel | _GEN_29; // @[MissUnit.scala 186:{28,28}]
  wire  _GEN_34 = load_sel | _GEN_30; // @[MissUnit.scala 186:{28,28}]
  wire  _T_48 = _load_sel_T | ~miss_valid_1 | is_merge; // @[MissUnit.scala 194:54]
  wire  _GEN_50 = ~_T_23; // @[MissUnit.scala 150:11]
  assign io_rsp_valid = rsp_valid; // @[MissUnit.scala 99:16]
  assign io_rsp_bits_paddr = acquire_sel ? miss_queue_1_paddr : miss_queue_0_paddr; // @[MissUnit.scala 130:{49,49}]
  assign io_rsp_bits_wdata = {miss_rsp_1,miss_rsp_0}; // @[Cat.scala 33:92]
  assign io_cache_acquire_valid = cache_acquire_vaild; // @[MissUnit.scala 95:26]
  assign io_cache_acquire_bits_address = _io_cache_acquire_bits_T_1[31:0]; // @[Edges.scala 345:17 350:15]
  assign io_cache_grant_ready = mshr_state_qout == 3'h2; // @[MissUnit.scala 139:41]
  assign io_cache_grantAck_valid = cache_grantAck_valid; // @[MissUnit.scala 97:27]
  assign io_cache_grantAck_bits_sink = cache_grant_reg_sink; // @[Edges.scala 438:17 439:12]
  assign io_release_ban = mshr_state_dnxt == 3'h2 | _mshr_state_dnxt_T_11; // @[MissUnit.scala 161:45]
  always @(posedge clock) begin
    if (reset) begin // @[MissUnit.scala 56:27]
      miss_queue_0_paddr <= 32'h0; // @[MissUnit.scala 56:27]
    end else if (io_req_valid) begin // @[MissUnit.scala 183:21]
      if (~is_merge & ~is_missQueue_full) begin // @[MissUnit.scala 184:44]
        if (~load_sel) begin // @[MissUnit.scala 185:28]
          miss_queue_0_paddr <= io_req_bits_paddr; // @[MissUnit.scala 185:28]
        end
      end
    end
    if (reset) begin // @[MissUnit.scala 56:27]
      miss_queue_1_paddr <= 32'h0; // @[MissUnit.scala 56:27]
    end else if (io_req_valid) begin // @[MissUnit.scala 183:21]
      if (~is_merge & ~is_missQueue_full) begin // @[MissUnit.scala 184:44]
        if (load_sel) begin // @[MissUnit.scala 185:28]
          miss_queue_1_paddr <= io_req_bits_paddr; // @[MissUnit.scala 185:28]
        end
      end
    end
    if (reset) begin // @[MissUnit.scala 59:27]
      miss_valid_0 <= 1'h0; // @[MissUnit.scala 59:27]
    end else if (io_req_valid) begin // @[MissUnit.scala 183:21]
      if (~is_merge & ~is_missQueue_full) begin // @[MissUnit.scala 184:44]
        miss_valid_0 <= _GEN_33;
      end else begin
        miss_valid_0 <= _GEN_29;
      end
    end else begin
      miss_valid_0 <= _GEN_29;
    end
    if (reset) begin // @[MissUnit.scala 59:27]
      miss_valid_1 <= 1'h0; // @[MissUnit.scala 59:27]
    end else if (io_req_valid) begin // @[MissUnit.scala 183:21]
      if (~is_merge & ~is_missQueue_full) begin // @[MissUnit.scala 184:44]
        miss_valid_1 <= _GEN_34;
      end else begin
        miss_valid_1 <= _GEN_30;
      end
    end else begin
      miss_valid_1 <= _GEN_30;
    end
    if (reset) begin // @[MissUnit.scala 62:25]
      miss_rsp_0 <= 64'h0; // @[MissUnit.scala 62:25]
    end else if (_T) begin // @[MissUnit.scala 140:31]
      if (~transCnt) begin // @[MissUnit.scala 141:25]
        miss_rsp_0 <= io_cache_grant_bits_data; // @[MissUnit.scala 141:25]
      end
    end
    if (reset) begin // @[MissUnit.scala 62:25]
      miss_rsp_1 <= 64'h0; // @[MissUnit.scala 62:25]
    end else if (_T) begin // @[MissUnit.scala 140:31]
      if (transCnt) begin // @[MissUnit.scala 141:25]
        miss_rsp_1 <= io_cache_grant_bits_data; // @[MissUnit.scala 141:25]
      end
    end
    if (reset) begin // @[MissUnit.scala 65:32]
      mshr_state_qout <= 3'h0; // @[MissUnit.scala 65:32]
    end else begin
      mshr_state_qout <= mshr_state_dnxt; // @[MissUnit.scala 65:32]
    end
    if (reset) begin // @[Edges.scala 228:27]
      counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_T) begin // @[Edges.scala 234:17]
      if (first) begin // @[Edges.scala 235:21]
        counter <= beats1;
      end else begin
        counter <= counter1;
      end
    end
    if (_acquire_sel_T_3) begin // @[Reg.scala 20:18]
      if (miss_valid_0) begin // @[MissUnit.scala 75:36]
        acquire_sel_r <= 1'h0;
      end else begin
        acquire_sel_r <= 1'h1;
      end
    end
    if (reset) begin // @[MissUnit.scala 81:37]
      cache_acquire_vaild <= 1'h0; // @[MissUnit.scala 81:37]
    end else begin
      cache_acquire_vaild <= _GEN_11;
    end
    if (reset) begin // @[MissUnit.scala 87:37]
      cache_grantAck_valid <= 1'h0; // @[MissUnit.scala 87:37]
    end else if (!(mshr_state_dnxt == 3'h3 & _mshr_state_dnxt_T_11)) begin // @[MissUnit.scala 145:61]
      cache_grantAck_valid <= _GEN_24;
    end
    if (reset) begin // @[MissUnit.scala 90:26]
      rsp_valid <= 1'h0; // @[MissUnit.scala 90:26]
    end else begin
      rsp_valid <= _GEN_27;
    end
    if (_T) begin // @[Reg.scala 20:18]
      cache_grant_reg_sink <= io_cache_grant_bits_sink; // @[Reg.scala 20:22]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(_T & io_cache_grant_bits_source))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed at missUnit, source-id of grant mis-match\n    at MissUnit.scala:93 assert( ~(io.cache_grant.fire & io.cache_grant.bits.source =/= id.U), \"Assert Failed at missUnit, source-id of grant mis-match\"  )\n"
            ); // @[MissUnit.scala 93:9]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T & io_cache_grant_bits_source)) & ~reset) begin
          $fatal; // @[MissUnit.scala 93:9]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~_acquire_sel_T_3 & _mshr_state_dnxt_T_9 & _T_6 & ~_mshr_state_dnxt_T_8) begin
          $fwrite(32'h80000002,"Assertion failed\n    at MissUnit.scala:113 assert(mshr_state_qout === 1.U)\n"); // @[MissUnit.scala 113:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_mshr_state_dnxt_T_8 & (~_acquire_sel_T_3 & _mshr_state_dnxt_T_9 & _T_6)) begin
          $fatal; // @[MissUnit.scala 113:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T & _T_6 & ~_mshr_state_dnxt_T_11) begin
          $fwrite(32'h80000002,"Assertion failed\n    at MissUnit.scala:142 assert( mshr_state_qout === 2.U )\n"); // @[MissUnit.scala 142:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_mshr_state_dnxt_T_11 & (_T & _T_6)) begin
          $fatal; // @[MissUnit.scala 142:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~_T_23 & io_rsp_valid & _T_6 & ~_mshr_state_dnxt_T_13) begin
          $fwrite(32'h80000002,"Assertion failed\n    at MissUnit.scala:150 assert(mshr_state_qout === 3.U)\n"); // @[MissUnit.scala 150:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_mshr_state_dnxt_T_13 & (~_T_23 & io_rsp_valid & _T_6)) begin
          $fatal; // @[MissUnit.scala 150:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_50 & ~io_rsp_valid & _mshr_state_dnxt_T_14 & _T_6 & _T_28) begin
          $fwrite(32'h80000002,"Assertion failed\n    at MissUnit.scala:154 assert(mshr_state_qout === 3.U)\n"); // @[MissUnit.scala 154:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_28 & (_GEN_50 & ~io_rsp_valid & _mshr_state_dnxt_T_14 & _T_6)) begin
          $fatal; // @[MissUnit.scala 154:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_req_valid & _T_6 & ~_T_48) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed at MissUnit, the Miss-Entry is equal to SB-Entry, which hints that missUnit never full!\n    at MissUnit.scala:193 assert(\n"
            ); // @[MissUnit.scala 193:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_48 & (io_req_valid & _T_6)) begin
          $fatal; // @[MissUnit.scala 193:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  miss_queue_0_paddr = _RAND_0[31:0];
  _RAND_1 = {1{`RANDOM}};
  miss_queue_1_paddr = _RAND_1[31:0];
  _RAND_2 = {1{`RANDOM}};
  miss_valid_0 = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  miss_valid_1 = _RAND_3[0:0];
  _RAND_4 = {2{`RANDOM}};
  miss_rsp_0 = _RAND_4[63:0];
  _RAND_5 = {2{`RANDOM}};
  miss_rsp_1 = _RAND_5[63:0];
  _RAND_6 = {1{`RANDOM}};
  mshr_state_qout = _RAND_6[2:0];
  _RAND_7 = {1{`RANDOM}};
  counter = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  acquire_sel_r = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  cache_acquire_vaild = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  cache_grantAck_valid = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  rsp_valid = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  cache_grant_reg_sink = _RAND_12[4:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_11(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [31:0] io_enq_bits,
  input         io_deq_ready,
  output        io_deq_valid,
  output [31:0] io_deq_bits
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_1;
`endif // RANDOMIZE_REG_INIT
  reg [31:0] ram [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [31:0] ram_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [31:0] ram_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_deq = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign ram_io_deq_bits_MPORT_en = 1'h1;
  assign ram_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_io_deq_bits_MPORT_data = ram[ram_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_MPORT_data = io_enq_bits;
  assign ram_MPORT_addr = 1'h0;
  assign ram_MPORT_mask = 1'h1;
  assign ram_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = ~maybe_full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits = ram_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_MPORT_en & ram_MPORT_mask) begin
      ram[ram_MPORT_addr] <= ram_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram[initvar] = _RAND_0[31:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_1 = {1{`RANDOM}};
  maybe_full = _RAND_1[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module ProbeUnit(
  input         clock,
  input         reset,
  output        io_cache_probe_ready,
  input         io_cache_probe_valid,
  input  [31:0] io_cache_probe_bits_address,
  input         io_req_ready,
  output        io_req_valid,
  output [31:0] io_req_bits_paddr,
  input         io_probeBan
);
  wire  probe_fifo_clock; // @[ProbeUnit.scala 47:26]
  wire  probe_fifo_reset; // @[ProbeUnit.scala 47:26]
  wire  probe_fifo_io_enq_ready; // @[ProbeUnit.scala 47:26]
  wire  probe_fifo_io_enq_valid; // @[ProbeUnit.scala 47:26]
  wire [31:0] probe_fifo_io_enq_bits; // @[ProbeUnit.scala 47:26]
  wire  probe_fifo_io_deq_ready; // @[ProbeUnit.scala 47:26]
  wire  probe_fifo_io_deq_valid; // @[ProbeUnit.scala 47:26]
  wire [31:0] probe_fifo_io_deq_bits; // @[ProbeUnit.scala 47:26]
  wire  _io_req_valid_T = ~io_probeBan; // @[ProbeUnit.scala 54:45]
  Queue_11 probe_fifo ( // @[ProbeUnit.scala 47:26]
    .clock(probe_fifo_clock),
    .reset(probe_fifo_reset),
    .io_enq_ready(probe_fifo_io_enq_ready),
    .io_enq_valid(probe_fifo_io_enq_valid),
    .io_enq_bits(probe_fifo_io_enq_bits),
    .io_deq_ready(probe_fifo_io_deq_ready),
    .io_deq_valid(probe_fifo_io_deq_valid),
    .io_deq_bits(probe_fifo_io_deq_bits)
  );
  assign io_cache_probe_ready = probe_fifo_io_enq_ready; // @[ProbeUnit.scala 52:24]
  assign io_req_valid = probe_fifo_io_deq_valid & ~io_probeBan; // @[ProbeUnit.scala 54:43]
  assign io_req_bits_paddr = probe_fifo_io_deq_bits; // @[ProbeUnit.scala 56:21]
  assign probe_fifo_clock = clock;
  assign probe_fifo_reset = reset;
  assign probe_fifo_io_enq_valid = io_cache_probe_valid; // @[ProbeUnit.scala 50:27]
  assign probe_fifo_io_enq_bits = io_cache_probe_bits_address; // @[ProbeUnit.scala 51:26]
  assign probe_fifo_io_deq_ready = io_req_ready & _io_req_valid_T; // @[ProbeUnit.scala 55:43]
endmodule
module Queue_12(
  input          clock,
  input          reset,
  output         io_enq_ready,
  input          io_enq_valid,
  input  [31:0]  io_enq_bits_paddr,
  input  [127:0] io_enq_bits_data,
  input          io_enq_bits_is_releaseData,
  input          io_enq_bits_is_release,
  input          io_enq_bits_is_probe,
  input          io_enq_bits_is_probeData,
  input          io_deq_ready,
  output         io_deq_valid,
  output [31:0]  io_deq_bits_paddr,
  output [127:0] io_deq_bits_data,
  output         io_deq_bits_is_releaseData,
  output         io_deq_bits_is_release,
  output         io_deq_bits_is_probe,
  output         io_deq_bits_is_probeData
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [127:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
`endif // RANDOMIZE_REG_INIT
  reg [31:0] ram_paddr [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_paddr_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_paddr_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [31:0] ram_paddr_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [31:0] ram_paddr_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_paddr_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_paddr_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_paddr_MPORT_en; // @[Decoupled.scala 275:95]
  reg [127:0] ram_data [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [127:0] ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [127:0] ram_data_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_is_releaseData [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_is_releaseData_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_is_releaseData_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_is_releaseData_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_is_releaseData_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_is_releaseData_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_is_releaseData_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_is_releaseData_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_is_release [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_is_release_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_is_release_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_is_release_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_is_release_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_is_release_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_is_release_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_is_release_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_is_probe [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_is_probe_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_is_probe_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_is_probe_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_is_probe_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_is_probe_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_is_probe_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_is_probe_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_is_probeData [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_is_probeData_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_is_probeData_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_is_probeData_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_is_probeData_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_is_probeData_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_is_probeData_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_is_probeData_MPORT_en; // @[Decoupled.scala 275:95]
  reg  enq_ptr_value; // @[Counter.scala 61:40]
  reg  deq_ptr_value; // @[Counter.scala 61:40]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  ptr_match = enq_ptr_value == deq_ptr_value; // @[Decoupled.scala 279:33]
  wire  empty = ptr_match & ~maybe_full; // @[Decoupled.scala 280:25]
  wire  full = ptr_match & maybe_full; // @[Decoupled.scala 281:24]
  wire  _do_enq_T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _do_deq_T = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_17 = io_deq_ready ? 1'h0 : _do_enq_T; // @[Decoupled.scala 320:{26,35}]
  wire  do_enq = empty ? _GEN_17 : _do_enq_T; // @[Decoupled.scala 317:17]
  wire  do_deq = empty ? 1'h0 : _do_deq_T; // @[Decoupled.scala 317:17 319:14]
  assign ram_paddr_io_deq_bits_MPORT_en = 1'h1;
  assign ram_paddr_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_paddr_io_deq_bits_MPORT_data = ram_paddr[ram_paddr_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_paddr_MPORT_data = io_enq_bits_paddr;
  assign ram_paddr_MPORT_addr = enq_ptr_value;
  assign ram_paddr_MPORT_mask = 1'h1;
  assign ram_paddr_MPORT_en = empty ? _GEN_17 : _do_enq_T;
  assign ram_data_io_deq_bits_MPORT_en = 1'h1;
  assign ram_data_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_data_io_deq_bits_MPORT_data = ram_data[ram_data_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_data_MPORT_data = io_enq_bits_data;
  assign ram_data_MPORT_addr = enq_ptr_value;
  assign ram_data_MPORT_mask = 1'h1;
  assign ram_data_MPORT_en = empty ? _GEN_17 : _do_enq_T;
  assign ram_is_releaseData_io_deq_bits_MPORT_en = 1'h1;
  assign ram_is_releaseData_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_is_releaseData_io_deq_bits_MPORT_data = ram_is_releaseData[ram_is_releaseData_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_is_releaseData_MPORT_data = io_enq_bits_is_releaseData;
  assign ram_is_releaseData_MPORT_addr = enq_ptr_value;
  assign ram_is_releaseData_MPORT_mask = 1'h1;
  assign ram_is_releaseData_MPORT_en = empty ? _GEN_17 : _do_enq_T;
  assign ram_is_release_io_deq_bits_MPORT_en = 1'h1;
  assign ram_is_release_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_is_release_io_deq_bits_MPORT_data = ram_is_release[ram_is_release_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_is_release_MPORT_data = io_enq_bits_is_release;
  assign ram_is_release_MPORT_addr = enq_ptr_value;
  assign ram_is_release_MPORT_mask = 1'h1;
  assign ram_is_release_MPORT_en = empty ? _GEN_17 : _do_enq_T;
  assign ram_is_probe_io_deq_bits_MPORT_en = 1'h1;
  assign ram_is_probe_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_is_probe_io_deq_bits_MPORT_data = ram_is_probe[ram_is_probe_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_is_probe_MPORT_data = io_enq_bits_is_probe;
  assign ram_is_probe_MPORT_addr = enq_ptr_value;
  assign ram_is_probe_MPORT_mask = 1'h1;
  assign ram_is_probe_MPORT_en = empty ? _GEN_17 : _do_enq_T;
  assign ram_is_probeData_io_deq_bits_MPORT_en = 1'h1;
  assign ram_is_probeData_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_is_probeData_io_deq_bits_MPORT_data = ram_is_probeData[ram_is_probeData_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_is_probeData_MPORT_data = io_enq_bits_is_probeData;
  assign ram_is_probeData_MPORT_addr = enq_ptr_value;
  assign ram_is_probeData_MPORT_mask = 1'h1;
  assign ram_is_probeData_MPORT_en = empty ? _GEN_17 : _do_enq_T;
  assign io_enq_ready = ~full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = io_enq_valid | ~empty; // @[Decoupled.scala 304:16 316:{24,39}]
  assign io_deq_bits_paddr = empty ? io_enq_bits_paddr : ram_paddr_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_data = empty ? io_enq_bits_data : ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_is_releaseData = empty ? io_enq_bits_is_releaseData : ram_is_releaseData_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_is_release = empty ? io_enq_bits_is_release : ram_is_release_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_is_probe = empty ? io_enq_bits_is_probe : ram_is_probe_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_is_probeData = empty ? io_enq_bits_is_probeData : ram_is_probeData_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  always @(posedge clock) begin
    if (ram_paddr_MPORT_en & ram_paddr_MPORT_mask) begin
      ram_paddr[ram_paddr_MPORT_addr] <= ram_paddr_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_data_MPORT_en & ram_data_MPORT_mask) begin
      ram_data[ram_data_MPORT_addr] <= ram_data_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_is_releaseData_MPORT_en & ram_is_releaseData_MPORT_mask) begin
      ram_is_releaseData[ram_is_releaseData_MPORT_addr] <= ram_is_releaseData_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_is_release_MPORT_en & ram_is_release_MPORT_mask) begin
      ram_is_release[ram_is_release_MPORT_addr] <= ram_is_release_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_is_probe_MPORT_en & ram_is_probe_MPORT_mask) begin
      ram_is_probe[ram_is_probe_MPORT_addr] <= ram_is_probe_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_is_probeData_MPORT_en & ram_is_probeData_MPORT_mask) begin
      ram_is_probeData[ram_is_probeData_MPORT_addr] <= ram_is_probeData_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Counter.scala 61:40]
      enq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_enq) begin // @[Decoupled.scala 288:16]
      enq_ptr_value <= enq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Counter.scala 61:40]
      deq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_deq) begin // @[Decoupled.scala 292:16]
      deq_ptr_value <= deq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      if (empty) begin // @[Decoupled.scala 317:17]
        if (io_deq_ready) begin // @[Decoupled.scala 320:26]
          maybe_full <= 1'h0; // @[Decoupled.scala 320:35]
        end else begin
          maybe_full <= _do_enq_T;
        end
      end else begin
        maybe_full <= _do_enq_T;
      end
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_paddr[initvar] = _RAND_0[31:0];
  _RAND_1 = {4{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_data[initvar] = _RAND_1[127:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_is_releaseData[initvar] = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_is_release[initvar] = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_is_probe[initvar] = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_is_probeData[initvar] = _RAND_5[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_6 = {1{`RANDOM}};
  enq_ptr_value = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  deq_ptr_value = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  maybe_full = _RAND_8[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module WriteBackUnit(
  input          clock,
  input          reset,
  input          io_wb_req_valid,
  input  [31:0]  io_wb_req_bits_paddr,
  input  [127:0] io_wb_req_bits_data,
  input          io_wb_req_bits_is_releaseData,
  input          io_wb_req_bits_is_release,
  input          io_wb_req_bits_is_probe,
  input          io_wb_req_bits_is_probeData,
  input          io_cache_release_ready,
  output         io_cache_release_valid,
  output [2:0]   io_cache_release_bits_opcode,
  output [2:0]   io_cache_release_bits_param,
  output [2:0]   io_cache_release_bits_size,
  output [31:0]  io_cache_release_bits_address,
  output [63:0]  io_cache_release_bits_data,
  output         io_cache_grant_ready,
  input          io_cache_grant_valid,
  input          io_cache_grant_bits_source,
  input          io_release_ban,
  output         io_miss_ban
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
`endif // RANDOMIZE_REG_INIT
  wire  wb_fifo_clock; // @[wrtieBackUnit.scala 61:23]
  wire  wb_fifo_reset; // @[wrtieBackUnit.scala 61:23]
  wire  wb_fifo_io_enq_ready; // @[wrtieBackUnit.scala 61:23]
  wire  wb_fifo_io_enq_valid; // @[wrtieBackUnit.scala 61:23]
  wire [31:0] wb_fifo_io_enq_bits_paddr; // @[wrtieBackUnit.scala 61:23]
  wire [127:0] wb_fifo_io_enq_bits_data; // @[wrtieBackUnit.scala 61:23]
  wire  wb_fifo_io_enq_bits_is_releaseData; // @[wrtieBackUnit.scala 61:23]
  wire  wb_fifo_io_enq_bits_is_release; // @[wrtieBackUnit.scala 61:23]
  wire  wb_fifo_io_enq_bits_is_probe; // @[wrtieBackUnit.scala 61:23]
  wire  wb_fifo_io_enq_bits_is_probeData; // @[wrtieBackUnit.scala 61:23]
  wire  wb_fifo_io_deq_ready; // @[wrtieBackUnit.scala 61:23]
  wire  wb_fifo_io_deq_valid; // @[wrtieBackUnit.scala 61:23]
  wire [31:0] wb_fifo_io_deq_bits_paddr; // @[wrtieBackUnit.scala 61:23]
  wire [127:0] wb_fifo_io_deq_bits_data; // @[wrtieBackUnit.scala 61:23]
  wire  wb_fifo_io_deq_bits_is_releaseData; // @[wrtieBackUnit.scala 61:23]
  wire  wb_fifo_io_deq_bits_is_release; // @[wrtieBackUnit.scala 61:23]
  wire  wb_fifo_io_deq_bits_is_probe; // @[wrtieBackUnit.scala 61:23]
  wire  wb_fifo_io_deq_bits_is_probeData; // @[wrtieBackUnit.scala 61:23]
  reg [1:0] wb_state_qout; // @[wrtieBackUnit.scala 70:30]
  wire  _is_release_done_T = io_cache_release_ready & io_cache_release_valid; // @[Decoupled.scala 52:35]
  wire [10:0] _is_release_done_beats1_decode_T_1 = 11'hf << io_cache_release_bits_size; // @[package.scala 234:77]
  wire [3:0] _is_release_done_beats1_decode_T_3 = ~_is_release_done_beats1_decode_T_1[3:0]; // @[package.scala 234:46]
  wire  is_release_done_beats1_decode = _is_release_done_beats1_decode_T_3[3]; // @[Edges.scala 219:59]
  wire  is_release_done_beats1_opdata = io_cache_release_bits_opcode[0]; // @[Edges.scala 101:36]
  wire  is_release_done_beats1 = is_release_done_beats1_opdata & is_release_done_beats1_decode; // @[Edges.scala 220:14]
  reg  is_release_done_counter; // @[Edges.scala 228:27]
  wire  is_release_done_counter1 = is_release_done_counter - 1'h1; // @[Edges.scala 229:28]
  wire  is_release_done_first = ~is_release_done_counter; // @[Edges.scala 230:25]
  wire  is_release_done_last = is_release_done_counter | ~is_release_done_beats1; // @[Edges.scala 231:37]
  wire  is_release_done = is_release_done_last & _is_release_done_T; // @[Edges.scala 232:22]
  reg  cache_release_valid; // @[wrtieBackUnit.scala 76:36]
  reg  cache_grant_ready; // @[wrtieBackUnit.scala 79:36]
  wire  _wb_state_dnxt_T = wb_state_qout == 2'h0; // @[wrtieBackUnit.scala 87:22]
  wire  _wb_state_dnxt_T_4 = wb_fifo_io_deq_bits_is_probe | wb_fifo_io_deq_bits_is_probeData; // @[wrtieBackUnit.scala 90:42]
  wire  _wb_state_dnxt_T_5 = ~io_release_ban & (wb_fifo_io_deq_bits_is_release | wb_fifo_io_deq_bits_is_releaseData) |
    _wb_state_dnxt_T_4; // @[wrtieBackUnit.scala 89:103]
  wire  _wb_state_dnxt_T_6 = wb_fifo_io_deq_valid & _wb_state_dnxt_T_5; // @[wrtieBackUnit.scala 88:30]
  wire  _wb_state_dnxt_T_8 = wb_state_qout == 2'h1; // @[wrtieBackUnit.scala 93:22]
  wire [1:0] _wb_state_dnxt_T_11 = wb_fifo_io_deq_bits_is_probeData | wb_fifo_io_deq_bits_is_probe ? 2'h0 : 2'h2; // @[wrtieBackUnit.scala 95:14]
  wire [1:0] _wb_state_dnxt_T_12 = ~is_release_done ? 2'h1 : _wb_state_dnxt_T_11; // @[wrtieBackUnit.scala 94:12]
  wire  _wb_state_dnxt_T_13 = wb_state_qout == 2'h2; // @[wrtieBackUnit.scala 96:22]
  wire  _wb_state_dnxt_T_14 = io_cache_grant_ready & io_cache_grant_valid; // @[Decoupled.scala 52:35]
  wire [1:0] _wb_state_dnxt_T_15 = _wb_state_dnxt_T_14 ? 2'h0 : 2'h2; // @[wrtieBackUnit.scala 96:37]
  wire  _wb_state_dnxt_T_16 = _wb_state_dnxt_T & _wb_state_dnxt_T_6; // @[Mux.scala 27:73]
  wire [1:0] _wb_state_dnxt_T_17 = _wb_state_dnxt_T_8 ? _wb_state_dnxt_T_12 : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _wb_state_dnxt_T_18 = _wb_state_dnxt_T_13 ? _wb_state_dnxt_T_15 : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _GEN_8 = {{1'd0}, _wb_state_dnxt_T_16}; // @[Mux.scala 27:73]
  wire [1:0] _wb_state_dnxt_T_19 = _GEN_8 | _wb_state_dnxt_T_17; // @[Mux.scala 27:73]
  wire [1:0] wb_state_dnxt = _wb_state_dnxt_T_19 | _wb_state_dnxt_T_18; // @[Mux.scala 27:73]
  reg  beatCnt; // @[wrtieBackUnit.scala 100:24]
  wire  _GEN_3 = ~io_cache_release_valid | cache_release_valid; // @[wrtieBackUnit.scala 106:{42,64} 76:36]
  wire [38:0] _GEN_9 = {{7'd0}, wb_fifo_io_deq_bits_paddr}; // @[wrtieBackUnit.scala 123:45]
  wire [38:0] _io_cache_release_bits_info_probe_T_1 = _GEN_9 & 39'hffffffff0; // @[wrtieBackUnit.scala 123:45]
  wire [6:0] _io_cache_release_bits_info_probeData_T_2 = {beatCnt, 6'h0}; // @[wrtieBackUnit.scala 133:51]
  wire [127:0] _io_cache_release_bits_info_probeData_T_3 = wb_fifo_io_deq_bits_data >>
    _io_cache_release_bits_info_probeData_T_2; // @[wrtieBackUnit.scala 133:39]
  wire [63:0] io_cache_release_bits_info_probeData_data = _io_cache_release_bits_info_probeData_T_3[63:0]; // @[Edges.scala 422:17 428:15]
  wire [63:0] _io_cache_release_bits_T_8 = wb_fifo_io_deq_bits_is_probeData ? io_cache_release_bits_info_probeData_data
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_cache_release_bits_T_10 = wb_fifo_io_deq_bits_is_releaseData ?
    io_cache_release_bits_info_probeData_data : 64'h0; // @[Mux.scala 27:73]
  wire [31:0] io_cache_release_bits_info_probe_address = _io_cache_release_bits_info_probe_T_1[31:0]; // @[Edges.scala 407:17 412:15]
  wire [31:0] _io_cache_release_bits_T_14 = wb_fifo_io_deq_bits_is_probe ? io_cache_release_bits_info_probe_address : 32'h0
    ; // @[Mux.scala 27:73]
  wire [31:0] _io_cache_release_bits_T_15 = wb_fifo_io_deq_bits_is_probeData ? io_cache_release_bits_info_probe_address
     : 32'h0; // @[Mux.scala 27:73]
  wire [31:0] _io_cache_release_bits_T_16 = wb_fifo_io_deq_bits_is_release ? io_cache_release_bits_info_probe_address : 32'h0
    ; // @[Mux.scala 27:73]
  wire [31:0] _io_cache_release_bits_T_17 = wb_fifo_io_deq_bits_is_releaseData ?
    io_cache_release_bits_info_probe_address : 32'h0; // @[Mux.scala 27:73]
  wire [31:0] _io_cache_release_bits_T_18 = _io_cache_release_bits_T_14 | _io_cache_release_bits_T_15; // @[Mux.scala 27:73]
  wire [31:0] _io_cache_release_bits_T_19 = _io_cache_release_bits_T_18 | _io_cache_release_bits_T_16; // @[Mux.scala 27:73]
  wire [2:0] _io_cache_release_bits_T_28 = wb_fifo_io_deq_bits_is_probe ? 3'h4 : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _io_cache_release_bits_T_29 = wb_fifo_io_deq_bits_is_probeData ? 3'h4 : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _io_cache_release_bits_T_30 = wb_fifo_io_deq_bits_is_release ? 3'h4 : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _io_cache_release_bits_T_31 = wb_fifo_io_deq_bits_is_releaseData ? 3'h4 : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _io_cache_release_bits_T_32 = _io_cache_release_bits_T_28 | _io_cache_release_bits_T_29; // @[Mux.scala 27:73]
  wire [2:0] _io_cache_release_bits_T_33 = _io_cache_release_bits_T_32 | _io_cache_release_bits_T_30; // @[Mux.scala 27:73]
  wire [2:0] _io_cache_release_bits_T_35 = wb_fifo_io_deq_bits_is_probe ? 3'h1 : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _io_cache_release_bits_T_36 = wb_fifo_io_deq_bits_is_probeData ? 3'h1 : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _io_cache_release_bits_T_37 = wb_fifo_io_deq_bits_is_release ? 3'h1 : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _io_cache_release_bits_T_38 = wb_fifo_io_deq_bits_is_releaseData ? 3'h1 : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _io_cache_release_bits_T_39 = _io_cache_release_bits_T_35 | _io_cache_release_bits_T_36; // @[Mux.scala 27:73]
  wire [2:0] _io_cache_release_bits_T_40 = _io_cache_release_bits_T_39 | _io_cache_release_bits_T_37; // @[Mux.scala 27:73]
  wire [2:0] _io_cache_release_bits_T_43 = wb_fifo_io_deq_bits_is_probeData ? 3'h5 : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _io_cache_release_bits_T_44 = wb_fifo_io_deq_bits_is_release ? 3'h6 : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _io_cache_release_bits_T_45 = wb_fifo_io_deq_bits_is_releaseData ? 3'h7 : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _io_cache_release_bits_T_46 = _io_cache_release_bits_T_28 | _io_cache_release_bits_T_43; // @[Mux.scala 27:73]
  wire [2:0] _io_cache_release_bits_T_47 = _io_cache_release_bits_T_46 | _io_cache_release_bits_T_44; // @[Mux.scala 27:73]
  wire  _T_8 = io_cache_grant_valid & ~io_cache_grant_ready; // @[wrtieBackUnit.scala 160:30]
  wire  _T_11 = ~reset; // @[wrtieBackUnit.scala 162:11]
  wire  _T_12 = ~_wb_state_dnxt_T_13; // @[wrtieBackUnit.scala 162:11]
  wire  _GEN_6 = io_cache_grant_ready ? 1'h0 : cache_grant_ready; // @[wrtieBackUnit.scala 163:39 164:23 79:36]
  wire  _GEN_7 = io_cache_grant_valid & ~io_cache_grant_ready | _GEN_6; // @[wrtieBackUnit.scala 160:56 161:23]
  wire  _T_24 = ~wb_fifo_io_enq_ready; // @[wrtieBackUnit.scala 175:9]
  Queue_12 wb_fifo ( // @[wrtieBackUnit.scala 61:23]
    .clock(wb_fifo_clock),
    .reset(wb_fifo_reset),
    .io_enq_ready(wb_fifo_io_enq_ready),
    .io_enq_valid(wb_fifo_io_enq_valid),
    .io_enq_bits_paddr(wb_fifo_io_enq_bits_paddr),
    .io_enq_bits_data(wb_fifo_io_enq_bits_data),
    .io_enq_bits_is_releaseData(wb_fifo_io_enq_bits_is_releaseData),
    .io_enq_bits_is_release(wb_fifo_io_enq_bits_is_release),
    .io_enq_bits_is_probe(wb_fifo_io_enq_bits_is_probe),
    .io_enq_bits_is_probeData(wb_fifo_io_enq_bits_is_probeData),
    .io_deq_ready(wb_fifo_io_deq_ready),
    .io_deq_valid(wb_fifo_io_deq_valid),
    .io_deq_bits_paddr(wb_fifo_io_deq_bits_paddr),
    .io_deq_bits_data(wb_fifo_io_deq_bits_data),
    .io_deq_bits_is_releaseData(wb_fifo_io_deq_bits_is_releaseData),
    .io_deq_bits_is_release(wb_fifo_io_deq_bits_is_release),
    .io_deq_bits_is_probe(wb_fifo_io_deq_bits_is_probe),
    .io_deq_bits_is_probeData(wb_fifo_io_deq_bits_is_probeData)
  );
  assign io_cache_release_valid = cache_release_valid; // @[wrtieBackUnit.scala 81:26]
  assign io_cache_release_bits_opcode = _io_cache_release_bits_T_47 | _io_cache_release_bits_T_45; // @[Mux.scala 27:73]
  assign io_cache_release_bits_param = _io_cache_release_bits_T_40 | _io_cache_release_bits_T_38; // @[Mux.scala 27:73]
  assign io_cache_release_bits_size = _io_cache_release_bits_T_33 | _io_cache_release_bits_T_31; // @[Mux.scala 27:73]
  assign io_cache_release_bits_address = _io_cache_release_bits_T_19 | _io_cache_release_bits_T_17; // @[Mux.scala 27:73]
  assign io_cache_release_bits_data = _io_cache_release_bits_T_8 | _io_cache_release_bits_T_10; // @[Mux.scala 27:73]
  assign io_cache_grant_ready = cache_grant_ready; // @[wrtieBackUnit.scala 82:26]
  assign io_miss_ban = _wb_state_dnxt_T_8 | _wb_state_dnxt_T_13 | wb_fifo_io_deq_valid; // @[wrtieBackUnit.scala 171:64]
  assign wb_fifo_clock = clock;
  assign wb_fifo_reset = reset;
  assign wb_fifo_io_enq_valid = io_wb_req_valid; // @[wrtieBackUnit.scala 63:24]
  assign wb_fifo_io_enq_bits_paddr = io_wb_req_bits_paddr; // @[wrtieBackUnit.scala 64:24]
  assign wb_fifo_io_enq_bits_data = io_wb_req_bits_data; // @[wrtieBackUnit.scala 64:24]
  assign wb_fifo_io_enq_bits_is_releaseData = io_wb_req_bits_is_releaseData; // @[wrtieBackUnit.scala 64:24]
  assign wb_fifo_io_enq_bits_is_release = io_wb_req_bits_is_release; // @[wrtieBackUnit.scala 64:24]
  assign wb_fifo_io_enq_bits_is_probe = io_wb_req_bits_is_probe; // @[wrtieBackUnit.scala 64:24]
  assign wb_fifo_io_enq_bits_is_probeData = io_wb_req_bits_is_probeData; // @[wrtieBackUnit.scala 64:24]
  assign wb_fifo_io_deq_ready = wb_state_qout != 2'h0 & wb_state_dnxt == 2'h0; // @[wrtieBackUnit.scala 169:27]
  always @(posedge clock) begin
    if (reset) begin // @[wrtieBackUnit.scala 70:30]
      wb_state_qout <= 2'h0; // @[wrtieBackUnit.scala 70:30]
    end else begin
      wb_state_qout <= wb_state_dnxt; // @[wrtieBackUnit.scala 70:30]
    end
    if (reset) begin // @[Edges.scala 228:27]
      is_release_done_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_is_release_done_T) begin // @[Edges.scala 234:17]
      if (is_release_done_first) begin // @[Edges.scala 235:21]
        is_release_done_counter <= is_release_done_beats1;
      end else begin
        is_release_done_counter <= is_release_done_counter1;
      end
    end
    if (reset) begin // @[wrtieBackUnit.scala 76:36]
      cache_release_valid <= 1'h0; // @[wrtieBackUnit.scala 76:36]
    end else if (_wb_state_dnxt_T_8) begin // @[wrtieBackUnit.scala 104:33]
      if (_is_release_done_T) begin // @[wrtieBackUnit.scala 105:35]
        cache_release_valid <= 1'h0; // @[wrtieBackUnit.scala 105:57]
      end else begin
        cache_release_valid <= _GEN_3;
      end
    end
    if (reset) begin // @[wrtieBackUnit.scala 79:36]
      cache_grant_ready <= 1'h0; // @[wrtieBackUnit.scala 79:36]
    end else begin
      cache_grant_ready <= _GEN_7;
    end
    if (reset) begin // @[wrtieBackUnit.scala 100:24]
      beatCnt <= 1'h0; // @[wrtieBackUnit.scala 100:24]
    end else if (_wb_state_dnxt_T & wb_state_dnxt == 2'h1) begin // @[wrtieBackUnit.scala 101:57]
      beatCnt <= 1'h0; // @[wrtieBackUnit.scala 101:67]
    end else if (_is_release_done_T) begin // @[wrtieBackUnit.scala 102:38]
      beatCnt <= beatCnt + 1'h1; // @[wrtieBackUnit.scala 102:48]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_8 & ~reset & ~_wb_state_dnxt_T_13) begin
          $fwrite(32'h80000002,"Assertion failed\n    at wrtieBackUnit.scala:162 assert( wb_state_qout === 2.U )\n"); // @[wrtieBackUnit.scala 162:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_wb_state_dnxt_T_13 & (_T_8 & ~reset)) begin
          $fatal; // @[wrtieBackUnit.scala 162:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~_T_8 & io_cache_grant_ready & _T_11 & _T_12) begin
          $fwrite(32'h80000002,"Assertion failed\n    at wrtieBackUnit.scala:165 assert( wb_state_qout === 2.U )\n"); // @[wrtieBackUnit.scala 165:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_12 & (~_T_8 & io_cache_grant_ready & _T_11)) begin
          $fatal; // @[wrtieBackUnit.scala 165:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_11 & ~(~(_wb_state_dnxt_T_14 & io_cache_grant_bits_source))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed at writeBack-Unit, grant-id mis-match\n    at wrtieBackUnit.scala:167 assert( ~(io.cache_grant.fire & io.cache_grant.bits.source =/= id.U), \"Assert Failed at writeBack-Unit, grant-id mis-match\" )\n"
            ); // @[wrtieBackUnit.scala 167:9]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_wb_state_dnxt_T_14 & io_cache_grant_bits_source)) & _T_11) begin
          $fatal; // @[wrtieBackUnit.scala 167:9]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_24 & _T_11 & ~(~io_wb_req_valid)) begin
          $fwrite(32'h80000002,
            "Assertion failed: When WriteBack Unit is busy, no new acquire will be emitted, and there is no wb request!\n    at wrtieBackUnit.scala:176 assert(~io.wb_req.valid, \"When WriteBack Unit is busy, no new acquire will be emitted, and there is no wb request!\")\n"
            ); // @[wrtieBackUnit.scala 176:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~io_wb_req_valid) & (_T_24 & _T_11)) begin
          $fatal; // @[wrtieBackUnit.scala 176:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  wb_state_qout = _RAND_0[1:0];
  _RAND_1 = {1{`RANDOM}};
  is_release_done_counter = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  cache_release_valid = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  cache_grant_ready = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  beatCnt = _RAND_4[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_13(
  input          clock,
  input          reset,
  output         io_enq_ready,
  input          io_enq_valid,
  input          io_enq_bits_chkIdx,
  input  [31:0]  io_enq_bits_paddr,
  input  [127:0] io_enq_bits_wdata,
  input  [15:0]  io_enq_bits_wstrb,
  input          io_enq_bits_fun_lb,
  input          io_enq_bits_fun_lh,
  input          io_enq_bits_fun_lw,
  input          io_enq_bits_fun_ld,
  input          io_enq_bits_fun_lbu,
  input          io_enq_bits_fun_lhu,
  input          io_enq_bits_fun_lwu,
  input          io_enq_bits_fun_sb,
  input          io_enq_bits_fun_sh,
  input          io_enq_bits_fun_sw,
  input          io_enq_bits_fun_sd,
  input          io_enq_bits_fun_lr_w,
  input          io_enq_bits_fun_sc_w,
  input          io_enq_bits_fun_amoswap_w,
  input          io_enq_bits_fun_amoadd_w,
  input          io_enq_bits_fun_amoxor_w,
  input          io_enq_bits_fun_amoand_w,
  input          io_enq_bits_fun_amoor_w,
  input          io_enq_bits_fun_amomin_w,
  input          io_enq_bits_fun_amomax_w,
  input          io_enq_bits_fun_amominu_w,
  input          io_enq_bits_fun_amomaxu_w,
  input          io_enq_bits_fun_lr_d,
  input          io_enq_bits_fun_sc_d,
  input          io_enq_bits_fun_amoswap_d,
  input          io_enq_bits_fun_amoadd_d,
  input          io_enq_bits_fun_amoxor_d,
  input          io_enq_bits_fun_amoand_d,
  input          io_enq_bits_fun_amoor_d,
  input          io_enq_bits_fun_amomin_d,
  input          io_enq_bits_fun_amomax_d,
  input          io_enq_bits_fun_amominu_d,
  input          io_enq_bits_fun_amomaxu_d,
  input          io_enq_bits_fun_flw,
  input          io_enq_bits_fun_fsw,
  input          io_enq_bits_fun_fld,
  input          io_enq_bits_fun_fsd,
  input          io_enq_bits_fun_probe,
  input          io_enq_bits_fun_grant,
  input          io_enq_bits_fun_preft,
  input  [5:0]   io_enq_bits_rd_rd0,
  input          io_deq_ready,
  output         io_deq_valid,
  output         io_deq_bits_chkIdx,
  output [31:0]  io_deq_bits_paddr,
  output [127:0] io_deq_bits_wdata,
  output [15:0]  io_deq_bits_wstrb,
  output         io_deq_bits_fun_lb,
  output         io_deq_bits_fun_lh,
  output         io_deq_bits_fun_lw,
  output         io_deq_bits_fun_ld,
  output         io_deq_bits_fun_lbu,
  output         io_deq_bits_fun_lhu,
  output         io_deq_bits_fun_lwu,
  output         io_deq_bits_fun_sb,
  output         io_deq_bits_fun_sh,
  output         io_deq_bits_fun_sw,
  output         io_deq_bits_fun_sd,
  output         io_deq_bits_fun_lr_w,
  output         io_deq_bits_fun_sc_w,
  output         io_deq_bits_fun_amoswap_w,
  output         io_deq_bits_fun_amoadd_w,
  output         io_deq_bits_fun_amoxor_w,
  output         io_deq_bits_fun_amoand_w,
  output         io_deq_bits_fun_amoor_w,
  output         io_deq_bits_fun_amomin_w,
  output         io_deq_bits_fun_amomax_w,
  output         io_deq_bits_fun_amominu_w,
  output         io_deq_bits_fun_amomaxu_w,
  output         io_deq_bits_fun_lr_d,
  output         io_deq_bits_fun_sc_d,
  output         io_deq_bits_fun_amoswap_d,
  output         io_deq_bits_fun_amoadd_d,
  output         io_deq_bits_fun_amoxor_d,
  output         io_deq_bits_fun_amoand_d,
  output         io_deq_bits_fun_amoor_d,
  output         io_deq_bits_fun_amomin_d,
  output         io_deq_bits_fun_amomax_d,
  output         io_deq_bits_fun_amominu_d,
  output         io_deq_bits_fun_amomaxu_d,
  output         io_deq_bits_fun_flw,
  output         io_deq_bits_fun_fsw,
  output         io_deq_bits_fun_fld,
  output         io_deq_bits_fun_fsd,
  output         io_deq_bits_fun_probe,
  output         io_deq_bits_fun_grant,
  output         io_deq_bits_fun_preft,
  output [5:0]   io_deq_bits_rd_rd0
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [127:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
  reg [31:0] _RAND_33;
  reg [31:0] _RAND_34;
  reg [31:0] _RAND_35;
  reg [31:0] _RAND_36;
  reg [31:0] _RAND_37;
  reg [31:0] _RAND_38;
  reg [31:0] _RAND_39;
  reg [31:0] _RAND_40;
  reg [31:0] _RAND_41;
  reg [31:0] _RAND_42;
  reg [31:0] _RAND_43;
  reg [31:0] _RAND_44;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_45;
  reg [31:0] _RAND_46;
  reg [31:0] _RAND_47;
`endif // RANDOMIZE_REG_INIT
  reg  ram_chkIdx [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_chkIdx_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_chkIdx_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_chkIdx_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_chkIdx_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_chkIdx_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_chkIdx_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_chkIdx_MPORT_en; // @[Decoupled.scala 275:95]
  reg [31:0] ram_paddr [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_paddr_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_paddr_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [31:0] ram_paddr_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [31:0] ram_paddr_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_paddr_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_paddr_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_paddr_MPORT_en; // @[Decoupled.scala 275:95]
  reg [127:0] ram_wdata [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_wdata_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_wdata_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [127:0] ram_wdata_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [127:0] ram_wdata_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_wdata_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_wdata_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_wdata_MPORT_en; // @[Decoupled.scala 275:95]
  reg [15:0] ram_wstrb [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_wstrb_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_wstrb_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [15:0] ram_wstrb_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [15:0] ram_wstrb_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_wstrb_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_wstrb_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_wstrb_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lb [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lb_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lb_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lb_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lb_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lb_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lb_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lb_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lh [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lh_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lh_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lh_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lh_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lh_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lh_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lh_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lw [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lw_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lw_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lw_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lw_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lw_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lw_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lw_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_ld [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_ld_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_ld_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_ld_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_ld_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_ld_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_ld_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_ld_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lbu [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lbu_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lbu_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lbu_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lbu_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lbu_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lbu_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lbu_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lhu [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lhu_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lhu_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lhu_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lhu_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lhu_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lhu_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lhu_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lwu [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lwu_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lwu_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lwu_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lwu_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lwu_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lwu_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lwu_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_sb [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_sb_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_sb_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sb_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sb_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sb_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sb_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_sb_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_sh [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_sh_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_sh_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sh_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sh_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sh_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sh_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_sh_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_sw [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_sw_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_sw_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sw_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sw_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sw_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sw_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_sw_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_sd [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_sd_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_sd_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sd_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sd_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sd_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sd_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_sd_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lr_w [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_sc_w [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoswap_w [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoadd_w [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoxor_w [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoand_w [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoor_w [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amomin_w [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amomax_w [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amominu_w [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amomaxu_w [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lr_d [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_sc_d [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoswap_d [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoadd_d [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoxor_d [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoand_d [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoor_d [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amomin_d [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amomax_d [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amominu_d [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amomaxu_d [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_flw [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_flw_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_flw_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_flw_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_flw_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_flw_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_flw_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_flw_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_fsw [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsw_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsw_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsw_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsw_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsw_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsw_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsw_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_fld [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_fld_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_fld_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_fld_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_fld_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_fld_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_fld_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_fld_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_fsd [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsd_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsd_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsd_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsd_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsd_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsd_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsd_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_probe [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_probe_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_probe_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_probe_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_probe_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_probe_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_probe_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_probe_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_grant [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_grant_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_grant_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_grant_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_grant_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_grant_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_grant_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_grant_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_preft [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_fun_preft_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_preft_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_preft_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_preft_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_preft_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_preft_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_preft_MPORT_en; // @[Decoupled.scala 275:95]
  reg [5:0] ram_rd_rd0 [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_rd_rd0_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_rd_rd0_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [5:0] ram_rd_rd0_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [5:0] ram_rd_rd0_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_rd_rd0_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_rd_rd0_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_rd_rd0_MPORT_en; // @[Decoupled.scala 275:95]
  reg  enq_ptr_value; // @[Counter.scala 61:40]
  reg  deq_ptr_value; // @[Counter.scala 61:40]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  ptr_match = enq_ptr_value == deq_ptr_value; // @[Decoupled.scala 279:33]
  wire  empty = ptr_match & ~maybe_full; // @[Decoupled.scala 280:25]
  wire  full = ptr_match & maybe_full; // @[Decoupled.scala 281:24]
  wire  _do_enq_T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _do_deq_T = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_59 = io_deq_ready ? 1'h0 : _do_enq_T; // @[Decoupled.scala 320:{26,35}]
  wire  do_enq = empty ? _GEN_59 : _do_enq_T; // @[Decoupled.scala 317:17]
  wire  do_deq = empty ? 1'h0 : _do_deq_T; // @[Decoupled.scala 317:17 319:14]
  assign ram_chkIdx_io_deq_bits_MPORT_en = 1'h1;
  assign ram_chkIdx_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_chkIdx_io_deq_bits_MPORT_data = ram_chkIdx[ram_chkIdx_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_chkIdx_MPORT_data = io_enq_bits_chkIdx;
  assign ram_chkIdx_MPORT_addr = enq_ptr_value;
  assign ram_chkIdx_MPORT_mask = 1'h1;
  assign ram_chkIdx_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_paddr_io_deq_bits_MPORT_en = 1'h1;
  assign ram_paddr_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_paddr_io_deq_bits_MPORT_data = ram_paddr[ram_paddr_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_paddr_MPORT_data = io_enq_bits_paddr;
  assign ram_paddr_MPORT_addr = enq_ptr_value;
  assign ram_paddr_MPORT_mask = 1'h1;
  assign ram_paddr_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_wdata_io_deq_bits_MPORT_en = 1'h1;
  assign ram_wdata_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_wdata_io_deq_bits_MPORT_data = ram_wdata[ram_wdata_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_wdata_MPORT_data = io_enq_bits_wdata;
  assign ram_wdata_MPORT_addr = enq_ptr_value;
  assign ram_wdata_MPORT_mask = 1'h1;
  assign ram_wdata_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_wstrb_io_deq_bits_MPORT_en = 1'h1;
  assign ram_wstrb_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_wstrb_io_deq_bits_MPORT_data = ram_wstrb[ram_wstrb_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_wstrb_MPORT_data = io_enq_bits_wstrb;
  assign ram_wstrb_MPORT_addr = enq_ptr_value;
  assign ram_wstrb_MPORT_mask = 1'h1;
  assign ram_wstrb_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_lb_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lb_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_lb_io_deq_bits_MPORT_data = ram_fun_lb[ram_fun_lb_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lb_MPORT_data = io_enq_bits_fun_lb;
  assign ram_fun_lb_MPORT_addr = enq_ptr_value;
  assign ram_fun_lb_MPORT_mask = 1'h1;
  assign ram_fun_lb_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_lh_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lh_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_lh_io_deq_bits_MPORT_data = ram_fun_lh[ram_fun_lh_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lh_MPORT_data = io_enq_bits_fun_lh;
  assign ram_fun_lh_MPORT_addr = enq_ptr_value;
  assign ram_fun_lh_MPORT_mask = 1'h1;
  assign ram_fun_lh_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_lw_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lw_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_lw_io_deq_bits_MPORT_data = ram_fun_lw[ram_fun_lw_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lw_MPORT_data = io_enq_bits_fun_lw;
  assign ram_fun_lw_MPORT_addr = enq_ptr_value;
  assign ram_fun_lw_MPORT_mask = 1'h1;
  assign ram_fun_lw_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_ld_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_ld_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_ld_io_deq_bits_MPORT_data = ram_fun_ld[ram_fun_ld_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_ld_MPORT_data = io_enq_bits_fun_ld;
  assign ram_fun_ld_MPORT_addr = enq_ptr_value;
  assign ram_fun_ld_MPORT_mask = 1'h1;
  assign ram_fun_ld_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_lbu_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lbu_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_lbu_io_deq_bits_MPORT_data = ram_fun_lbu[ram_fun_lbu_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lbu_MPORT_data = io_enq_bits_fun_lbu;
  assign ram_fun_lbu_MPORT_addr = enq_ptr_value;
  assign ram_fun_lbu_MPORT_mask = 1'h1;
  assign ram_fun_lbu_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_lhu_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lhu_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_lhu_io_deq_bits_MPORT_data = ram_fun_lhu[ram_fun_lhu_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lhu_MPORT_data = io_enq_bits_fun_lhu;
  assign ram_fun_lhu_MPORT_addr = enq_ptr_value;
  assign ram_fun_lhu_MPORT_mask = 1'h1;
  assign ram_fun_lhu_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_lwu_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lwu_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_lwu_io_deq_bits_MPORT_data = ram_fun_lwu[ram_fun_lwu_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lwu_MPORT_data = io_enq_bits_fun_lwu;
  assign ram_fun_lwu_MPORT_addr = enq_ptr_value;
  assign ram_fun_lwu_MPORT_mask = 1'h1;
  assign ram_fun_lwu_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_sb_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_sb_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_sb_io_deq_bits_MPORT_data = ram_fun_sb[ram_fun_sb_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_sb_MPORT_data = io_enq_bits_fun_sb;
  assign ram_fun_sb_MPORT_addr = enq_ptr_value;
  assign ram_fun_sb_MPORT_mask = 1'h1;
  assign ram_fun_sb_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_sh_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_sh_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_sh_io_deq_bits_MPORT_data = ram_fun_sh[ram_fun_sh_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_sh_MPORT_data = io_enq_bits_fun_sh;
  assign ram_fun_sh_MPORT_addr = enq_ptr_value;
  assign ram_fun_sh_MPORT_mask = 1'h1;
  assign ram_fun_sh_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_sw_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_sw_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_sw_io_deq_bits_MPORT_data = ram_fun_sw[ram_fun_sw_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_sw_MPORT_data = io_enq_bits_fun_sw;
  assign ram_fun_sw_MPORT_addr = enq_ptr_value;
  assign ram_fun_sw_MPORT_mask = 1'h1;
  assign ram_fun_sw_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_sd_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_sd_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_sd_io_deq_bits_MPORT_data = ram_fun_sd[ram_fun_sd_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_sd_MPORT_data = io_enq_bits_fun_sd;
  assign ram_fun_sd_MPORT_addr = enq_ptr_value;
  assign ram_fun_sd_MPORT_mask = 1'h1;
  assign ram_fun_sd_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_lr_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lr_w_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_lr_w_io_deq_bits_MPORT_data = ram_fun_lr_w[ram_fun_lr_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lr_w_MPORT_data = io_enq_bits_fun_lr_w;
  assign ram_fun_lr_w_MPORT_addr = enq_ptr_value;
  assign ram_fun_lr_w_MPORT_mask = 1'h1;
  assign ram_fun_lr_w_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_sc_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_sc_w_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_sc_w_io_deq_bits_MPORT_data = ram_fun_sc_w[ram_fun_sc_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_sc_w_MPORT_data = io_enq_bits_fun_sc_w;
  assign ram_fun_sc_w_MPORT_addr = enq_ptr_value;
  assign ram_fun_sc_w_MPORT_mask = 1'h1;
  assign ram_fun_sc_w_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_amoswap_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoswap_w_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_amoswap_w_io_deq_bits_MPORT_data = ram_fun_amoswap_w[ram_fun_amoswap_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoswap_w_MPORT_data = io_enq_bits_fun_amoswap_w;
  assign ram_fun_amoswap_w_MPORT_addr = enq_ptr_value;
  assign ram_fun_amoswap_w_MPORT_mask = 1'h1;
  assign ram_fun_amoswap_w_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_amoadd_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoadd_w_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_amoadd_w_io_deq_bits_MPORT_data = ram_fun_amoadd_w[ram_fun_amoadd_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoadd_w_MPORT_data = io_enq_bits_fun_amoadd_w;
  assign ram_fun_amoadd_w_MPORT_addr = enq_ptr_value;
  assign ram_fun_amoadd_w_MPORT_mask = 1'h1;
  assign ram_fun_amoadd_w_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_amoxor_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoxor_w_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_amoxor_w_io_deq_bits_MPORT_data = ram_fun_amoxor_w[ram_fun_amoxor_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoxor_w_MPORT_data = io_enq_bits_fun_amoxor_w;
  assign ram_fun_amoxor_w_MPORT_addr = enq_ptr_value;
  assign ram_fun_amoxor_w_MPORT_mask = 1'h1;
  assign ram_fun_amoxor_w_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_amoand_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoand_w_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_amoand_w_io_deq_bits_MPORT_data = ram_fun_amoand_w[ram_fun_amoand_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoand_w_MPORT_data = io_enq_bits_fun_amoand_w;
  assign ram_fun_amoand_w_MPORT_addr = enq_ptr_value;
  assign ram_fun_amoand_w_MPORT_mask = 1'h1;
  assign ram_fun_amoand_w_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_amoor_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoor_w_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_amoor_w_io_deq_bits_MPORT_data = ram_fun_amoor_w[ram_fun_amoor_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoor_w_MPORT_data = io_enq_bits_fun_amoor_w;
  assign ram_fun_amoor_w_MPORT_addr = enq_ptr_value;
  assign ram_fun_amoor_w_MPORT_mask = 1'h1;
  assign ram_fun_amoor_w_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_amomin_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amomin_w_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_amomin_w_io_deq_bits_MPORT_data = ram_fun_amomin_w[ram_fun_amomin_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amomin_w_MPORT_data = io_enq_bits_fun_amomin_w;
  assign ram_fun_amomin_w_MPORT_addr = enq_ptr_value;
  assign ram_fun_amomin_w_MPORT_mask = 1'h1;
  assign ram_fun_amomin_w_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_amomax_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amomax_w_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_amomax_w_io_deq_bits_MPORT_data = ram_fun_amomax_w[ram_fun_amomax_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amomax_w_MPORT_data = io_enq_bits_fun_amomax_w;
  assign ram_fun_amomax_w_MPORT_addr = enq_ptr_value;
  assign ram_fun_amomax_w_MPORT_mask = 1'h1;
  assign ram_fun_amomax_w_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_amominu_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amominu_w_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_amominu_w_io_deq_bits_MPORT_data = ram_fun_amominu_w[ram_fun_amominu_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amominu_w_MPORT_data = io_enq_bits_fun_amominu_w;
  assign ram_fun_amominu_w_MPORT_addr = enq_ptr_value;
  assign ram_fun_amominu_w_MPORT_mask = 1'h1;
  assign ram_fun_amominu_w_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_amomaxu_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amomaxu_w_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_amomaxu_w_io_deq_bits_MPORT_data = ram_fun_amomaxu_w[ram_fun_amomaxu_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amomaxu_w_MPORT_data = io_enq_bits_fun_amomaxu_w;
  assign ram_fun_amomaxu_w_MPORT_addr = enq_ptr_value;
  assign ram_fun_amomaxu_w_MPORT_mask = 1'h1;
  assign ram_fun_amomaxu_w_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_lr_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lr_d_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_lr_d_io_deq_bits_MPORT_data = ram_fun_lr_d[ram_fun_lr_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lr_d_MPORT_data = io_enq_bits_fun_lr_d;
  assign ram_fun_lr_d_MPORT_addr = enq_ptr_value;
  assign ram_fun_lr_d_MPORT_mask = 1'h1;
  assign ram_fun_lr_d_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_sc_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_sc_d_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_sc_d_io_deq_bits_MPORT_data = ram_fun_sc_d[ram_fun_sc_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_sc_d_MPORT_data = io_enq_bits_fun_sc_d;
  assign ram_fun_sc_d_MPORT_addr = enq_ptr_value;
  assign ram_fun_sc_d_MPORT_mask = 1'h1;
  assign ram_fun_sc_d_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_amoswap_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoswap_d_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_amoswap_d_io_deq_bits_MPORT_data = ram_fun_amoswap_d[ram_fun_amoswap_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoswap_d_MPORT_data = io_enq_bits_fun_amoswap_d;
  assign ram_fun_amoswap_d_MPORT_addr = enq_ptr_value;
  assign ram_fun_amoswap_d_MPORT_mask = 1'h1;
  assign ram_fun_amoswap_d_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_amoadd_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoadd_d_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_amoadd_d_io_deq_bits_MPORT_data = ram_fun_amoadd_d[ram_fun_amoadd_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoadd_d_MPORT_data = io_enq_bits_fun_amoadd_d;
  assign ram_fun_amoadd_d_MPORT_addr = enq_ptr_value;
  assign ram_fun_amoadd_d_MPORT_mask = 1'h1;
  assign ram_fun_amoadd_d_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_amoxor_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoxor_d_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_amoxor_d_io_deq_bits_MPORT_data = ram_fun_amoxor_d[ram_fun_amoxor_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoxor_d_MPORT_data = io_enq_bits_fun_amoxor_d;
  assign ram_fun_amoxor_d_MPORT_addr = enq_ptr_value;
  assign ram_fun_amoxor_d_MPORT_mask = 1'h1;
  assign ram_fun_amoxor_d_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_amoand_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoand_d_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_amoand_d_io_deq_bits_MPORT_data = ram_fun_amoand_d[ram_fun_amoand_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoand_d_MPORT_data = io_enq_bits_fun_amoand_d;
  assign ram_fun_amoand_d_MPORT_addr = enq_ptr_value;
  assign ram_fun_amoand_d_MPORT_mask = 1'h1;
  assign ram_fun_amoand_d_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_amoor_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoor_d_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_amoor_d_io_deq_bits_MPORT_data = ram_fun_amoor_d[ram_fun_amoor_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoor_d_MPORT_data = io_enq_bits_fun_amoor_d;
  assign ram_fun_amoor_d_MPORT_addr = enq_ptr_value;
  assign ram_fun_amoor_d_MPORT_mask = 1'h1;
  assign ram_fun_amoor_d_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_amomin_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amomin_d_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_amomin_d_io_deq_bits_MPORT_data = ram_fun_amomin_d[ram_fun_amomin_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amomin_d_MPORT_data = io_enq_bits_fun_amomin_d;
  assign ram_fun_amomin_d_MPORT_addr = enq_ptr_value;
  assign ram_fun_amomin_d_MPORT_mask = 1'h1;
  assign ram_fun_amomin_d_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_amomax_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amomax_d_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_amomax_d_io_deq_bits_MPORT_data = ram_fun_amomax_d[ram_fun_amomax_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amomax_d_MPORT_data = io_enq_bits_fun_amomax_d;
  assign ram_fun_amomax_d_MPORT_addr = enq_ptr_value;
  assign ram_fun_amomax_d_MPORT_mask = 1'h1;
  assign ram_fun_amomax_d_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_amominu_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amominu_d_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_amominu_d_io_deq_bits_MPORT_data = ram_fun_amominu_d[ram_fun_amominu_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amominu_d_MPORT_data = io_enq_bits_fun_amominu_d;
  assign ram_fun_amominu_d_MPORT_addr = enq_ptr_value;
  assign ram_fun_amominu_d_MPORT_mask = 1'h1;
  assign ram_fun_amominu_d_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_amomaxu_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amomaxu_d_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_amomaxu_d_io_deq_bits_MPORT_data = ram_fun_amomaxu_d[ram_fun_amomaxu_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amomaxu_d_MPORT_data = io_enq_bits_fun_amomaxu_d;
  assign ram_fun_amomaxu_d_MPORT_addr = enq_ptr_value;
  assign ram_fun_amomaxu_d_MPORT_mask = 1'h1;
  assign ram_fun_amomaxu_d_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_flw_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_flw_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_flw_io_deq_bits_MPORT_data = ram_fun_flw[ram_fun_flw_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_flw_MPORT_data = io_enq_bits_fun_flw;
  assign ram_fun_flw_MPORT_addr = enq_ptr_value;
  assign ram_fun_flw_MPORT_mask = 1'h1;
  assign ram_fun_flw_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_fsw_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_fsw_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_fsw_io_deq_bits_MPORT_data = ram_fun_fsw[ram_fun_fsw_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_fsw_MPORT_data = io_enq_bits_fun_fsw;
  assign ram_fun_fsw_MPORT_addr = enq_ptr_value;
  assign ram_fun_fsw_MPORT_mask = 1'h1;
  assign ram_fun_fsw_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_fld_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_fld_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_fld_io_deq_bits_MPORT_data = ram_fun_fld[ram_fun_fld_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_fld_MPORT_data = io_enq_bits_fun_fld;
  assign ram_fun_fld_MPORT_addr = enq_ptr_value;
  assign ram_fun_fld_MPORT_mask = 1'h1;
  assign ram_fun_fld_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_fsd_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_fsd_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_fsd_io_deq_bits_MPORT_data = ram_fun_fsd[ram_fun_fsd_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_fsd_MPORT_data = io_enq_bits_fun_fsd;
  assign ram_fun_fsd_MPORT_addr = enq_ptr_value;
  assign ram_fun_fsd_MPORT_mask = 1'h1;
  assign ram_fun_fsd_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_probe_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_probe_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_probe_io_deq_bits_MPORT_data = ram_fun_probe[ram_fun_probe_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_probe_MPORT_data = io_enq_bits_fun_probe;
  assign ram_fun_probe_MPORT_addr = enq_ptr_value;
  assign ram_fun_probe_MPORT_mask = 1'h1;
  assign ram_fun_probe_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_grant_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_grant_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_grant_io_deq_bits_MPORT_data = ram_fun_grant[ram_fun_grant_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_grant_MPORT_data = io_enq_bits_fun_grant;
  assign ram_fun_grant_MPORT_addr = enq_ptr_value;
  assign ram_fun_grant_MPORT_mask = 1'h1;
  assign ram_fun_grant_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_fun_preft_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_preft_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_fun_preft_io_deq_bits_MPORT_data = ram_fun_preft[ram_fun_preft_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_preft_MPORT_data = io_enq_bits_fun_preft;
  assign ram_fun_preft_MPORT_addr = enq_ptr_value;
  assign ram_fun_preft_MPORT_mask = 1'h1;
  assign ram_fun_preft_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign ram_rd_rd0_io_deq_bits_MPORT_en = 1'h1;
  assign ram_rd_rd0_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_rd_rd0_io_deq_bits_MPORT_data = ram_rd_rd0[ram_rd_rd0_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_rd_rd0_MPORT_data = io_enq_bits_rd_rd0;
  assign ram_rd_rd0_MPORT_addr = enq_ptr_value;
  assign ram_rd_rd0_MPORT_mask = 1'h1;
  assign ram_rd_rd0_MPORT_en = empty ? _GEN_59 : _do_enq_T;
  assign io_enq_ready = ~full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = io_enq_valid | ~empty; // @[Decoupled.scala 304:16 316:{24,39}]
  assign io_deq_bits_chkIdx = empty ? io_enq_bits_chkIdx : ram_chkIdx_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_paddr = empty ? io_enq_bits_paddr : ram_paddr_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_wdata = empty ? io_enq_bits_wdata : ram_wdata_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_wstrb = empty ? io_enq_bits_wstrb : ram_wstrb_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_lb = empty ? io_enq_bits_fun_lb : ram_fun_lb_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_lh = empty ? io_enq_bits_fun_lh : ram_fun_lh_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_lw = empty ? io_enq_bits_fun_lw : ram_fun_lw_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_ld = empty ? io_enq_bits_fun_ld : ram_fun_ld_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_lbu = empty ? io_enq_bits_fun_lbu : ram_fun_lbu_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_lhu = empty ? io_enq_bits_fun_lhu : ram_fun_lhu_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_lwu = empty ? io_enq_bits_fun_lwu : ram_fun_lwu_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_sb = empty ? io_enq_bits_fun_sb : ram_fun_sb_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_sh = empty ? io_enq_bits_fun_sh : ram_fun_sh_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_sw = empty ? io_enq_bits_fun_sw : ram_fun_sw_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_sd = empty ? io_enq_bits_fun_sd : ram_fun_sd_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_lr_w = empty ? io_enq_bits_fun_lr_w : ram_fun_lr_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_sc_w = empty ? io_enq_bits_fun_sc_w : ram_fun_sc_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amoswap_w = empty ? io_enq_bits_fun_amoswap_w : ram_fun_amoswap_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amoadd_w = empty ? io_enq_bits_fun_amoadd_w : ram_fun_amoadd_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amoxor_w = empty ? io_enq_bits_fun_amoxor_w : ram_fun_amoxor_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amoand_w = empty ? io_enq_bits_fun_amoand_w : ram_fun_amoand_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amoor_w = empty ? io_enq_bits_fun_amoor_w : ram_fun_amoor_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amomin_w = empty ? io_enq_bits_fun_amomin_w : ram_fun_amomin_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amomax_w = empty ? io_enq_bits_fun_amomax_w : ram_fun_amomax_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amominu_w = empty ? io_enq_bits_fun_amominu_w : ram_fun_amominu_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amomaxu_w = empty ? io_enq_bits_fun_amomaxu_w : ram_fun_amomaxu_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_lr_d = empty ? io_enq_bits_fun_lr_d : ram_fun_lr_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_sc_d = empty ? io_enq_bits_fun_sc_d : ram_fun_sc_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amoswap_d = empty ? io_enq_bits_fun_amoswap_d : ram_fun_amoswap_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amoadd_d = empty ? io_enq_bits_fun_amoadd_d : ram_fun_amoadd_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amoxor_d = empty ? io_enq_bits_fun_amoxor_d : ram_fun_amoxor_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amoand_d = empty ? io_enq_bits_fun_amoand_d : ram_fun_amoand_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amoor_d = empty ? io_enq_bits_fun_amoor_d : ram_fun_amoor_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amomin_d = empty ? io_enq_bits_fun_amomin_d : ram_fun_amomin_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amomax_d = empty ? io_enq_bits_fun_amomax_d : ram_fun_amomax_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amominu_d = empty ? io_enq_bits_fun_amominu_d : ram_fun_amominu_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_amomaxu_d = empty ? io_enq_bits_fun_amomaxu_d : ram_fun_amomaxu_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_flw = empty ? io_enq_bits_fun_flw : ram_fun_flw_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_fsw = empty ? io_enq_bits_fun_fsw : ram_fun_fsw_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_fld = empty ? io_enq_bits_fun_fld : ram_fun_fld_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_fsd = empty ? io_enq_bits_fun_fsd : ram_fun_fsd_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_probe = empty ? io_enq_bits_fun_probe : ram_fun_probe_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_grant = empty ? io_enq_bits_fun_grant : ram_fun_grant_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_fun_preft = empty ? io_enq_bits_fun_preft : ram_fun_preft_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_rd_rd0 = empty ? io_enq_bits_rd_rd0 : ram_rd_rd0_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  always @(posedge clock) begin
    if (ram_chkIdx_MPORT_en & ram_chkIdx_MPORT_mask) begin
      ram_chkIdx[ram_chkIdx_MPORT_addr] <= ram_chkIdx_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_paddr_MPORT_en & ram_paddr_MPORT_mask) begin
      ram_paddr[ram_paddr_MPORT_addr] <= ram_paddr_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_wdata_MPORT_en & ram_wdata_MPORT_mask) begin
      ram_wdata[ram_wdata_MPORT_addr] <= ram_wdata_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_wstrb_MPORT_en & ram_wstrb_MPORT_mask) begin
      ram_wstrb[ram_wstrb_MPORT_addr] <= ram_wstrb_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lb_MPORT_en & ram_fun_lb_MPORT_mask) begin
      ram_fun_lb[ram_fun_lb_MPORT_addr] <= ram_fun_lb_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lh_MPORT_en & ram_fun_lh_MPORT_mask) begin
      ram_fun_lh[ram_fun_lh_MPORT_addr] <= ram_fun_lh_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lw_MPORT_en & ram_fun_lw_MPORT_mask) begin
      ram_fun_lw[ram_fun_lw_MPORT_addr] <= ram_fun_lw_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_ld_MPORT_en & ram_fun_ld_MPORT_mask) begin
      ram_fun_ld[ram_fun_ld_MPORT_addr] <= ram_fun_ld_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lbu_MPORT_en & ram_fun_lbu_MPORT_mask) begin
      ram_fun_lbu[ram_fun_lbu_MPORT_addr] <= ram_fun_lbu_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lhu_MPORT_en & ram_fun_lhu_MPORT_mask) begin
      ram_fun_lhu[ram_fun_lhu_MPORT_addr] <= ram_fun_lhu_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lwu_MPORT_en & ram_fun_lwu_MPORT_mask) begin
      ram_fun_lwu[ram_fun_lwu_MPORT_addr] <= ram_fun_lwu_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_sb_MPORT_en & ram_fun_sb_MPORT_mask) begin
      ram_fun_sb[ram_fun_sb_MPORT_addr] <= ram_fun_sb_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_sh_MPORT_en & ram_fun_sh_MPORT_mask) begin
      ram_fun_sh[ram_fun_sh_MPORT_addr] <= ram_fun_sh_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_sw_MPORT_en & ram_fun_sw_MPORT_mask) begin
      ram_fun_sw[ram_fun_sw_MPORT_addr] <= ram_fun_sw_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_sd_MPORT_en & ram_fun_sd_MPORT_mask) begin
      ram_fun_sd[ram_fun_sd_MPORT_addr] <= ram_fun_sd_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lr_w_MPORT_en & ram_fun_lr_w_MPORT_mask) begin
      ram_fun_lr_w[ram_fun_lr_w_MPORT_addr] <= ram_fun_lr_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_sc_w_MPORT_en & ram_fun_sc_w_MPORT_mask) begin
      ram_fun_sc_w[ram_fun_sc_w_MPORT_addr] <= ram_fun_sc_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoswap_w_MPORT_en & ram_fun_amoswap_w_MPORT_mask) begin
      ram_fun_amoswap_w[ram_fun_amoswap_w_MPORT_addr] <= ram_fun_amoswap_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoadd_w_MPORT_en & ram_fun_amoadd_w_MPORT_mask) begin
      ram_fun_amoadd_w[ram_fun_amoadd_w_MPORT_addr] <= ram_fun_amoadd_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoxor_w_MPORT_en & ram_fun_amoxor_w_MPORT_mask) begin
      ram_fun_amoxor_w[ram_fun_amoxor_w_MPORT_addr] <= ram_fun_amoxor_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoand_w_MPORT_en & ram_fun_amoand_w_MPORT_mask) begin
      ram_fun_amoand_w[ram_fun_amoand_w_MPORT_addr] <= ram_fun_amoand_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoor_w_MPORT_en & ram_fun_amoor_w_MPORT_mask) begin
      ram_fun_amoor_w[ram_fun_amoor_w_MPORT_addr] <= ram_fun_amoor_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amomin_w_MPORT_en & ram_fun_amomin_w_MPORT_mask) begin
      ram_fun_amomin_w[ram_fun_amomin_w_MPORT_addr] <= ram_fun_amomin_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amomax_w_MPORT_en & ram_fun_amomax_w_MPORT_mask) begin
      ram_fun_amomax_w[ram_fun_amomax_w_MPORT_addr] <= ram_fun_amomax_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amominu_w_MPORT_en & ram_fun_amominu_w_MPORT_mask) begin
      ram_fun_amominu_w[ram_fun_amominu_w_MPORT_addr] <= ram_fun_amominu_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amomaxu_w_MPORT_en & ram_fun_amomaxu_w_MPORT_mask) begin
      ram_fun_amomaxu_w[ram_fun_amomaxu_w_MPORT_addr] <= ram_fun_amomaxu_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lr_d_MPORT_en & ram_fun_lr_d_MPORT_mask) begin
      ram_fun_lr_d[ram_fun_lr_d_MPORT_addr] <= ram_fun_lr_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_sc_d_MPORT_en & ram_fun_sc_d_MPORT_mask) begin
      ram_fun_sc_d[ram_fun_sc_d_MPORT_addr] <= ram_fun_sc_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoswap_d_MPORT_en & ram_fun_amoswap_d_MPORT_mask) begin
      ram_fun_amoswap_d[ram_fun_amoswap_d_MPORT_addr] <= ram_fun_amoswap_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoadd_d_MPORT_en & ram_fun_amoadd_d_MPORT_mask) begin
      ram_fun_amoadd_d[ram_fun_amoadd_d_MPORT_addr] <= ram_fun_amoadd_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoxor_d_MPORT_en & ram_fun_amoxor_d_MPORT_mask) begin
      ram_fun_amoxor_d[ram_fun_amoxor_d_MPORT_addr] <= ram_fun_amoxor_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoand_d_MPORT_en & ram_fun_amoand_d_MPORT_mask) begin
      ram_fun_amoand_d[ram_fun_amoand_d_MPORT_addr] <= ram_fun_amoand_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoor_d_MPORT_en & ram_fun_amoor_d_MPORT_mask) begin
      ram_fun_amoor_d[ram_fun_amoor_d_MPORT_addr] <= ram_fun_amoor_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amomin_d_MPORT_en & ram_fun_amomin_d_MPORT_mask) begin
      ram_fun_amomin_d[ram_fun_amomin_d_MPORT_addr] <= ram_fun_amomin_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amomax_d_MPORT_en & ram_fun_amomax_d_MPORT_mask) begin
      ram_fun_amomax_d[ram_fun_amomax_d_MPORT_addr] <= ram_fun_amomax_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amominu_d_MPORT_en & ram_fun_amominu_d_MPORT_mask) begin
      ram_fun_amominu_d[ram_fun_amominu_d_MPORT_addr] <= ram_fun_amominu_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amomaxu_d_MPORT_en & ram_fun_amomaxu_d_MPORT_mask) begin
      ram_fun_amomaxu_d[ram_fun_amomaxu_d_MPORT_addr] <= ram_fun_amomaxu_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_flw_MPORT_en & ram_fun_flw_MPORT_mask) begin
      ram_fun_flw[ram_fun_flw_MPORT_addr] <= ram_fun_flw_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_fsw_MPORT_en & ram_fun_fsw_MPORT_mask) begin
      ram_fun_fsw[ram_fun_fsw_MPORT_addr] <= ram_fun_fsw_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_fld_MPORT_en & ram_fun_fld_MPORT_mask) begin
      ram_fun_fld[ram_fun_fld_MPORT_addr] <= ram_fun_fld_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_fsd_MPORT_en & ram_fun_fsd_MPORT_mask) begin
      ram_fun_fsd[ram_fun_fsd_MPORT_addr] <= ram_fun_fsd_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_probe_MPORT_en & ram_fun_probe_MPORT_mask) begin
      ram_fun_probe[ram_fun_probe_MPORT_addr] <= ram_fun_probe_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_grant_MPORT_en & ram_fun_grant_MPORT_mask) begin
      ram_fun_grant[ram_fun_grant_MPORT_addr] <= ram_fun_grant_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_preft_MPORT_en & ram_fun_preft_MPORT_mask) begin
      ram_fun_preft[ram_fun_preft_MPORT_addr] <= ram_fun_preft_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_rd_rd0_MPORT_en & ram_rd_rd0_MPORT_mask) begin
      ram_rd_rd0[ram_rd_rd0_MPORT_addr] <= ram_rd_rd0_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Counter.scala 61:40]
      enq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_enq) begin // @[Decoupled.scala 288:16]
      enq_ptr_value <= enq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Counter.scala 61:40]
      deq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_deq) begin // @[Decoupled.scala 292:16]
      deq_ptr_value <= deq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      if (empty) begin // @[Decoupled.scala 317:17]
        if (io_deq_ready) begin // @[Decoupled.scala 320:26]
          maybe_full <= 1'h0; // @[Decoupled.scala 320:35]
        end else begin
          maybe_full <= _do_enq_T;
        end
      end else begin
        maybe_full <= _do_enq_T;
      end
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_chkIdx[initvar] = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_paddr[initvar] = _RAND_1[31:0];
  _RAND_2 = {4{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_wdata[initvar] = _RAND_2[127:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_wstrb[initvar] = _RAND_3[15:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_lb[initvar] = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_lh[initvar] = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_lw[initvar] = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_ld[initvar] = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_lbu[initvar] = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_lhu[initvar] = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_lwu[initvar] = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_sb[initvar] = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_sh[initvar] = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_sw[initvar] = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_sd[initvar] = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_lr_w[initvar] = _RAND_15[0:0];
  _RAND_16 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_sc_w[initvar] = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_amoswap_w[initvar] = _RAND_17[0:0];
  _RAND_18 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_amoadd_w[initvar] = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_amoxor_w[initvar] = _RAND_19[0:0];
  _RAND_20 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_amoand_w[initvar] = _RAND_20[0:0];
  _RAND_21 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_amoor_w[initvar] = _RAND_21[0:0];
  _RAND_22 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_amomin_w[initvar] = _RAND_22[0:0];
  _RAND_23 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_amomax_w[initvar] = _RAND_23[0:0];
  _RAND_24 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_amominu_w[initvar] = _RAND_24[0:0];
  _RAND_25 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_amomaxu_w[initvar] = _RAND_25[0:0];
  _RAND_26 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_lr_d[initvar] = _RAND_26[0:0];
  _RAND_27 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_sc_d[initvar] = _RAND_27[0:0];
  _RAND_28 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_amoswap_d[initvar] = _RAND_28[0:0];
  _RAND_29 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_amoadd_d[initvar] = _RAND_29[0:0];
  _RAND_30 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_amoxor_d[initvar] = _RAND_30[0:0];
  _RAND_31 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_amoand_d[initvar] = _RAND_31[0:0];
  _RAND_32 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_amoor_d[initvar] = _RAND_32[0:0];
  _RAND_33 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_amomin_d[initvar] = _RAND_33[0:0];
  _RAND_34 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_amomax_d[initvar] = _RAND_34[0:0];
  _RAND_35 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_amominu_d[initvar] = _RAND_35[0:0];
  _RAND_36 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_amomaxu_d[initvar] = _RAND_36[0:0];
  _RAND_37 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_flw[initvar] = _RAND_37[0:0];
  _RAND_38 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_fsw[initvar] = _RAND_38[0:0];
  _RAND_39 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_fld[initvar] = _RAND_39[0:0];
  _RAND_40 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_fsd[initvar] = _RAND_40[0:0];
  _RAND_41 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_probe[initvar] = _RAND_41[0:0];
  _RAND_42 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_grant[initvar] = _RAND_42[0:0];
  _RAND_43 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_fun_preft[initvar] = _RAND_43[0:0];
  _RAND_44 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_rd_rd0[initvar] = _RAND_44[5:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_45 = {1{`RANDOM}};
  enq_ptr_value = _RAND_45[0:0];
  _RAND_46 = {1{`RANDOM}};
  deq_ptr_value = _RAND_46[0:0];
  _RAND_47 = {1{`RANDOM}};
  maybe_full = _RAND_47[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_14(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input         io_enq_bits_chkIdx,
  input  [5:0]  io_enq_bits_wb_rd0,
  input  [63:0] io_enq_bits_wb_res,
  input         io_enq_bits_is_load_amo,
  input         io_enq_bits_is_flw,
  input         io_enq_bits_is_fld,
  input         io_deq_ready,
  output        io_deq_valid,
  output        io_deq_bits_chkIdx,
  output [5:0]  io_deq_bits_wb_rd0,
  output [63:0] io_deq_bits_wb_res,
  output        io_deq_bits_is_load_amo,
  output        io_deq_bits_is_flw,
  output        io_deq_bits_is_fld
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [63:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
`endif // RANDOMIZE_REG_INIT
  reg  ram_chkIdx [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_chkIdx_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_chkIdx_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_chkIdx_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_chkIdx_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_chkIdx_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_chkIdx_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_chkIdx_MPORT_en; // @[Decoupled.scala 275:95]
  reg [5:0] ram_wb_rd0 [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_wb_rd0_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_wb_rd0_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [5:0] ram_wb_rd0_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [5:0] ram_wb_rd0_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_wb_rd0_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_wb_rd0_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_wb_rd0_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_wb_res [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_wb_res_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_wb_res_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_wb_res_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_wb_res_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_wb_res_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_wb_res_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_wb_res_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_is_load_amo [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_is_load_amo_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_is_load_amo_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_is_load_amo_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_is_load_amo_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_is_load_amo_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_is_load_amo_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_is_load_amo_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_is_flw [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_is_flw_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_is_flw_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_is_flw_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_is_flw_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_is_flw_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_is_flw_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_is_flw_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_is_fld [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_is_fld_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_is_fld_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_is_fld_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_is_fld_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_is_fld_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_is_fld_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_is_fld_MPORT_en; // @[Decoupled.scala 275:95]
  reg  enq_ptr_value; // @[Counter.scala 61:40]
  reg  deq_ptr_value; // @[Counter.scala 61:40]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  ptr_match = enq_ptr_value == deq_ptr_value; // @[Decoupled.scala 279:33]
  wire  empty = ptr_match & ~maybe_full; // @[Decoupled.scala 280:25]
  wire  full = ptr_match & maybe_full; // @[Decoupled.scala 281:24]
  wire  _do_enq_T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _do_deq_T = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_17 = io_deq_ready ? 1'h0 : _do_enq_T; // @[Decoupled.scala 320:{26,35}]
  wire  do_enq = empty ? _GEN_17 : _do_enq_T; // @[Decoupled.scala 317:17]
  wire  do_deq = empty ? 1'h0 : _do_deq_T; // @[Decoupled.scala 317:17 319:14]
  assign ram_chkIdx_io_deq_bits_MPORT_en = 1'h1;
  assign ram_chkIdx_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_chkIdx_io_deq_bits_MPORT_data = ram_chkIdx[ram_chkIdx_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_chkIdx_MPORT_data = io_enq_bits_chkIdx;
  assign ram_chkIdx_MPORT_addr = enq_ptr_value;
  assign ram_chkIdx_MPORT_mask = 1'h1;
  assign ram_chkIdx_MPORT_en = empty ? _GEN_17 : _do_enq_T;
  assign ram_wb_rd0_io_deq_bits_MPORT_en = 1'h1;
  assign ram_wb_rd0_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_wb_rd0_io_deq_bits_MPORT_data = ram_wb_rd0[ram_wb_rd0_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_wb_rd0_MPORT_data = io_enq_bits_wb_rd0;
  assign ram_wb_rd0_MPORT_addr = enq_ptr_value;
  assign ram_wb_rd0_MPORT_mask = 1'h1;
  assign ram_wb_rd0_MPORT_en = empty ? _GEN_17 : _do_enq_T;
  assign ram_wb_res_io_deq_bits_MPORT_en = 1'h1;
  assign ram_wb_res_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_wb_res_io_deq_bits_MPORT_data = ram_wb_res[ram_wb_res_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_wb_res_MPORT_data = io_enq_bits_wb_res;
  assign ram_wb_res_MPORT_addr = enq_ptr_value;
  assign ram_wb_res_MPORT_mask = 1'h1;
  assign ram_wb_res_MPORT_en = empty ? _GEN_17 : _do_enq_T;
  assign ram_is_load_amo_io_deq_bits_MPORT_en = 1'h1;
  assign ram_is_load_amo_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_is_load_amo_io_deq_bits_MPORT_data = ram_is_load_amo[ram_is_load_amo_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_is_load_amo_MPORT_data = io_enq_bits_is_load_amo;
  assign ram_is_load_amo_MPORT_addr = enq_ptr_value;
  assign ram_is_load_amo_MPORT_mask = 1'h1;
  assign ram_is_load_amo_MPORT_en = empty ? _GEN_17 : _do_enq_T;
  assign ram_is_flw_io_deq_bits_MPORT_en = 1'h1;
  assign ram_is_flw_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_is_flw_io_deq_bits_MPORT_data = ram_is_flw[ram_is_flw_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_is_flw_MPORT_data = io_enq_bits_is_flw;
  assign ram_is_flw_MPORT_addr = enq_ptr_value;
  assign ram_is_flw_MPORT_mask = 1'h1;
  assign ram_is_flw_MPORT_en = empty ? _GEN_17 : _do_enq_T;
  assign ram_is_fld_io_deq_bits_MPORT_en = 1'h1;
  assign ram_is_fld_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_is_fld_io_deq_bits_MPORT_data = ram_is_fld[ram_is_fld_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_is_fld_MPORT_data = io_enq_bits_is_fld;
  assign ram_is_fld_MPORT_addr = enq_ptr_value;
  assign ram_is_fld_MPORT_mask = 1'h1;
  assign ram_is_fld_MPORT_en = empty ? _GEN_17 : _do_enq_T;
  assign io_enq_ready = ~full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = io_enq_valid | ~empty; // @[Decoupled.scala 304:16 316:{24,39}]
  assign io_deq_bits_chkIdx = empty ? io_enq_bits_chkIdx : ram_chkIdx_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_wb_rd0 = empty ? io_enq_bits_wb_rd0 : ram_wb_rd0_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_wb_res = empty ? io_enq_bits_wb_res : ram_wb_res_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_is_load_amo = empty ? io_enq_bits_is_load_amo : ram_is_load_amo_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_is_flw = empty ? io_enq_bits_is_flw : ram_is_flw_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_is_fld = empty ? io_enq_bits_is_fld : ram_is_fld_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  always @(posedge clock) begin
    if (ram_chkIdx_MPORT_en & ram_chkIdx_MPORT_mask) begin
      ram_chkIdx[ram_chkIdx_MPORT_addr] <= ram_chkIdx_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_wb_rd0_MPORT_en & ram_wb_rd0_MPORT_mask) begin
      ram_wb_rd0[ram_wb_rd0_MPORT_addr] <= ram_wb_rd0_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_wb_res_MPORT_en & ram_wb_res_MPORT_mask) begin
      ram_wb_res[ram_wb_res_MPORT_addr] <= ram_wb_res_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_is_load_amo_MPORT_en & ram_is_load_amo_MPORT_mask) begin
      ram_is_load_amo[ram_is_load_amo_MPORT_addr] <= ram_is_load_amo_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_is_flw_MPORT_en & ram_is_flw_MPORT_mask) begin
      ram_is_flw[ram_is_flw_MPORT_addr] <= ram_is_flw_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_is_fld_MPORT_en & ram_is_fld_MPORT_mask) begin
      ram_is_fld[ram_is_fld_MPORT_addr] <= ram_is_fld_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Counter.scala 61:40]
      enq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_enq) begin // @[Decoupled.scala 288:16]
      enq_ptr_value <= enq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Counter.scala 61:40]
      deq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_deq) begin // @[Decoupled.scala 292:16]
      deq_ptr_value <= deq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      if (empty) begin // @[Decoupled.scala 317:17]
        if (io_deq_ready) begin // @[Decoupled.scala 320:26]
          maybe_full <= 1'h0; // @[Decoupled.scala 320:35]
        end else begin
          maybe_full <= _do_enq_T;
        end
      end else begin
        maybe_full <= _do_enq_T;
      end
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_chkIdx[initvar] = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_wb_rd0[initvar] = _RAND_1[5:0];
  _RAND_2 = {2{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_wb_res[initvar] = _RAND_2[63:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_is_load_amo[initvar] = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_is_flw[initvar] = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_is_fld[initvar] = _RAND_5[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_6 = {1{`RANDOM}};
  enq_ptr_value = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  deq_ptr_value = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  maybe_full = _RAND_8[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Arbiter_1(
  output         io_in_0_ready,
  input          io_in_0_valid,
  input          io_in_0_bits_chkIdx,
  input  [31:0]  io_in_0_bits_paddr,
  input  [127:0] io_in_0_bits_wdata,
  input  [15:0]  io_in_0_bits_wstrb,
  input          io_in_0_bits_fun_lb,
  input          io_in_0_bits_fun_lh,
  input          io_in_0_bits_fun_lw,
  input          io_in_0_bits_fun_ld,
  input          io_in_0_bits_fun_lbu,
  input          io_in_0_bits_fun_lhu,
  input          io_in_0_bits_fun_lwu,
  input          io_in_0_bits_fun_sb,
  input          io_in_0_bits_fun_sh,
  input          io_in_0_bits_fun_sw,
  input          io_in_0_bits_fun_sd,
  input          io_in_0_bits_fun_lr_w,
  input          io_in_0_bits_fun_sc_w,
  input          io_in_0_bits_fun_amoswap_w,
  input          io_in_0_bits_fun_amoadd_w,
  input          io_in_0_bits_fun_amoxor_w,
  input          io_in_0_bits_fun_amoand_w,
  input          io_in_0_bits_fun_amoor_w,
  input          io_in_0_bits_fun_amomin_w,
  input          io_in_0_bits_fun_amomax_w,
  input          io_in_0_bits_fun_amominu_w,
  input          io_in_0_bits_fun_amomaxu_w,
  input          io_in_0_bits_fun_lr_d,
  input          io_in_0_bits_fun_sc_d,
  input          io_in_0_bits_fun_amoswap_d,
  input          io_in_0_bits_fun_amoadd_d,
  input          io_in_0_bits_fun_amoxor_d,
  input          io_in_0_bits_fun_amoand_d,
  input          io_in_0_bits_fun_amoor_d,
  input          io_in_0_bits_fun_amomin_d,
  input          io_in_0_bits_fun_amomax_d,
  input          io_in_0_bits_fun_amominu_d,
  input          io_in_0_bits_fun_amomaxu_d,
  input          io_in_0_bits_fun_flw,
  input          io_in_0_bits_fun_fsw,
  input          io_in_0_bits_fun_fld,
  input          io_in_0_bits_fun_fsd,
  input          io_in_0_bits_fun_probe,
  input          io_in_0_bits_fun_grant,
  input          io_in_0_bits_fun_preft,
  input  [5:0]   io_in_0_bits_rd_rd0,
  output         io_in_1_ready,
  input          io_in_1_valid,
  input          io_in_1_bits_chkIdx,
  input  [31:0]  io_in_1_bits_paddr,
  input  [127:0] io_in_1_bits_wdata,
  input  [15:0]  io_in_1_bits_wstrb,
  input          io_in_1_bits_fun_lb,
  input          io_in_1_bits_fun_lh,
  input          io_in_1_bits_fun_lw,
  input          io_in_1_bits_fun_ld,
  input          io_in_1_bits_fun_lbu,
  input          io_in_1_bits_fun_lhu,
  input          io_in_1_bits_fun_lwu,
  input          io_in_1_bits_fun_sb,
  input          io_in_1_bits_fun_sh,
  input          io_in_1_bits_fun_sw,
  input          io_in_1_bits_fun_sd,
  input          io_in_1_bits_fun_lr_w,
  input          io_in_1_bits_fun_sc_w,
  input          io_in_1_bits_fun_amoswap_w,
  input          io_in_1_bits_fun_amoadd_w,
  input          io_in_1_bits_fun_amoxor_w,
  input          io_in_1_bits_fun_amoand_w,
  input          io_in_1_bits_fun_amoor_w,
  input          io_in_1_bits_fun_amomin_w,
  input          io_in_1_bits_fun_amomax_w,
  input          io_in_1_bits_fun_amominu_w,
  input          io_in_1_bits_fun_amomaxu_w,
  input          io_in_1_bits_fun_lr_d,
  input          io_in_1_bits_fun_sc_d,
  input          io_in_1_bits_fun_amoswap_d,
  input          io_in_1_bits_fun_amoadd_d,
  input          io_in_1_bits_fun_amoxor_d,
  input          io_in_1_bits_fun_amoand_d,
  input          io_in_1_bits_fun_amoor_d,
  input          io_in_1_bits_fun_amomin_d,
  input          io_in_1_bits_fun_amomax_d,
  input          io_in_1_bits_fun_amominu_d,
  input          io_in_1_bits_fun_amomaxu_d,
  input          io_in_1_bits_fun_flw,
  input          io_in_1_bits_fun_fsw,
  input          io_in_1_bits_fun_fld,
  input          io_in_1_bits_fun_fsd,
  input  [5:0]   io_in_1_bits_rd_rd0,
  input          io_out_ready,
  output         io_out_valid,
  output         io_out_bits_chkIdx,
  output [31:0]  io_out_bits_paddr,
  output [127:0] io_out_bits_wdata,
  output [15:0]  io_out_bits_wstrb,
  output         io_out_bits_fun_lb,
  output         io_out_bits_fun_lh,
  output         io_out_bits_fun_lw,
  output         io_out_bits_fun_ld,
  output         io_out_bits_fun_lbu,
  output         io_out_bits_fun_lhu,
  output         io_out_bits_fun_lwu,
  output         io_out_bits_fun_sb,
  output         io_out_bits_fun_sh,
  output         io_out_bits_fun_sw,
  output         io_out_bits_fun_sd,
  output         io_out_bits_fun_lr_w,
  output         io_out_bits_fun_sc_w,
  output         io_out_bits_fun_amoswap_w,
  output         io_out_bits_fun_amoadd_w,
  output         io_out_bits_fun_amoxor_w,
  output         io_out_bits_fun_amoand_w,
  output         io_out_bits_fun_amoor_w,
  output         io_out_bits_fun_amomin_w,
  output         io_out_bits_fun_amomax_w,
  output         io_out_bits_fun_amominu_w,
  output         io_out_bits_fun_amomaxu_w,
  output         io_out_bits_fun_lr_d,
  output         io_out_bits_fun_sc_d,
  output         io_out_bits_fun_amoswap_d,
  output         io_out_bits_fun_amoadd_d,
  output         io_out_bits_fun_amoxor_d,
  output         io_out_bits_fun_amoand_d,
  output         io_out_bits_fun_amoor_d,
  output         io_out_bits_fun_amomin_d,
  output         io_out_bits_fun_amomax_d,
  output         io_out_bits_fun_amominu_d,
  output         io_out_bits_fun_amomaxu_d,
  output         io_out_bits_fun_flw,
  output         io_out_bits_fun_fsw,
  output         io_out_bits_fun_fld,
  output         io_out_bits_fun_fsd,
  output         io_out_bits_fun_probe,
  output         io_out_bits_fun_grant,
  output         io_out_bits_fun_preft,
  output [5:0]   io_out_bits_rd_rd0
);
  wire  grant_1 = ~io_in_0_valid; // @[Arbiter.scala 45:78]
  assign io_in_0_ready = io_out_ready; // @[Arbiter.scala 146:19]
  assign io_in_1_ready = grant_1 & io_out_ready; // @[Arbiter.scala 146:19]
  assign io_out_valid = ~grant_1 | io_in_1_valid; // @[Arbiter.scala 147:31]
  assign io_out_bits_chkIdx = io_in_0_valid ? io_in_0_bits_chkIdx : io_in_1_bits_chkIdx; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_paddr = io_in_0_valid ? io_in_0_bits_paddr : io_in_1_bits_paddr; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_wdata = io_in_0_valid ? io_in_0_bits_wdata : io_in_1_bits_wdata; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_wstrb = io_in_0_valid ? io_in_0_bits_wstrb : io_in_1_bits_wstrb; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_lb = io_in_0_valid ? io_in_0_bits_fun_lb : io_in_1_bits_fun_lb; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_lh = io_in_0_valid ? io_in_0_bits_fun_lh : io_in_1_bits_fun_lh; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_lw = io_in_0_valid ? io_in_0_bits_fun_lw : io_in_1_bits_fun_lw; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_ld = io_in_0_valid ? io_in_0_bits_fun_ld : io_in_1_bits_fun_ld; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_lbu = io_in_0_valid ? io_in_0_bits_fun_lbu : io_in_1_bits_fun_lbu; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_lhu = io_in_0_valid ? io_in_0_bits_fun_lhu : io_in_1_bits_fun_lhu; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_lwu = io_in_0_valid ? io_in_0_bits_fun_lwu : io_in_1_bits_fun_lwu; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_sb = io_in_0_valid ? io_in_0_bits_fun_sb : io_in_1_bits_fun_sb; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_sh = io_in_0_valid ? io_in_0_bits_fun_sh : io_in_1_bits_fun_sh; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_sw = io_in_0_valid ? io_in_0_bits_fun_sw : io_in_1_bits_fun_sw; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_sd = io_in_0_valid ? io_in_0_bits_fun_sd : io_in_1_bits_fun_sd; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_lr_w = io_in_0_valid ? io_in_0_bits_fun_lr_w : io_in_1_bits_fun_lr_w; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_sc_w = io_in_0_valid ? io_in_0_bits_fun_sc_w : io_in_1_bits_fun_sc_w; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amoswap_w = io_in_0_valid ? io_in_0_bits_fun_amoswap_w : io_in_1_bits_fun_amoswap_w; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amoadd_w = io_in_0_valid ? io_in_0_bits_fun_amoadd_w : io_in_1_bits_fun_amoadd_w; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amoxor_w = io_in_0_valid ? io_in_0_bits_fun_amoxor_w : io_in_1_bits_fun_amoxor_w; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amoand_w = io_in_0_valid ? io_in_0_bits_fun_amoand_w : io_in_1_bits_fun_amoand_w; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amoor_w = io_in_0_valid ? io_in_0_bits_fun_amoor_w : io_in_1_bits_fun_amoor_w; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amomin_w = io_in_0_valid ? io_in_0_bits_fun_amomin_w : io_in_1_bits_fun_amomin_w; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amomax_w = io_in_0_valid ? io_in_0_bits_fun_amomax_w : io_in_1_bits_fun_amomax_w; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amominu_w = io_in_0_valid ? io_in_0_bits_fun_amominu_w : io_in_1_bits_fun_amominu_w; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amomaxu_w = io_in_0_valid ? io_in_0_bits_fun_amomaxu_w : io_in_1_bits_fun_amomaxu_w; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_lr_d = io_in_0_valid ? io_in_0_bits_fun_lr_d : io_in_1_bits_fun_lr_d; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_sc_d = io_in_0_valid ? io_in_0_bits_fun_sc_d : io_in_1_bits_fun_sc_d; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amoswap_d = io_in_0_valid ? io_in_0_bits_fun_amoswap_d : io_in_1_bits_fun_amoswap_d; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amoadd_d = io_in_0_valid ? io_in_0_bits_fun_amoadd_d : io_in_1_bits_fun_amoadd_d; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amoxor_d = io_in_0_valid ? io_in_0_bits_fun_amoxor_d : io_in_1_bits_fun_amoxor_d; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amoand_d = io_in_0_valid ? io_in_0_bits_fun_amoand_d : io_in_1_bits_fun_amoand_d; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amoor_d = io_in_0_valid ? io_in_0_bits_fun_amoor_d : io_in_1_bits_fun_amoor_d; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amomin_d = io_in_0_valid ? io_in_0_bits_fun_amomin_d : io_in_1_bits_fun_amomin_d; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amomax_d = io_in_0_valid ? io_in_0_bits_fun_amomax_d : io_in_1_bits_fun_amomax_d; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amominu_d = io_in_0_valid ? io_in_0_bits_fun_amominu_d : io_in_1_bits_fun_amominu_d; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_amomaxu_d = io_in_0_valid ? io_in_0_bits_fun_amomaxu_d : io_in_1_bits_fun_amomaxu_d; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_flw = io_in_0_valid ? io_in_0_bits_fun_flw : io_in_1_bits_fun_flw; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_fsw = io_in_0_valid ? io_in_0_bits_fun_fsw : io_in_1_bits_fun_fsw; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_fld = io_in_0_valid ? io_in_0_bits_fun_fld : io_in_1_bits_fun_fld; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_fsd = io_in_0_valid ? io_in_0_bits_fun_fsd : io_in_1_bits_fun_fsd; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_probe = io_in_0_valid & io_in_0_bits_fun_probe; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_grant = io_in_0_valid & io_in_0_bits_fun_grant; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_fun_preft = io_in_0_valid & io_in_0_bits_fun_preft; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_rd_rd0 = io_in_0_valid ? io_in_0_bits_rd_rd0 : io_in_1_bits_rd_rd0; // @[Arbiter.scala 136:15 138:26 140:19]
endmodule
module Arbiter_2(
  input          io_in_0_valid,
  input  [31:0]  io_in_0_bits_paddr,
  input  [127:0] io_in_0_bits_wdata,
  output         io_in_1_ready,
  input          io_in_1_valid,
  input  [31:0]  io_in_1_bits_paddr,
  output         io_in_2_ready,
  input          io_in_2_valid,
  input          io_in_2_bits_chkIdx,
  input  [31:0]  io_in_2_bits_paddr,
  input  [127:0] io_in_2_bits_wdata,
  input  [15:0]  io_in_2_bits_wstrb,
  input          io_in_2_bits_fun_lb,
  input          io_in_2_bits_fun_lh,
  input          io_in_2_bits_fun_lw,
  input          io_in_2_bits_fun_ld,
  input          io_in_2_bits_fun_lbu,
  input          io_in_2_bits_fun_lhu,
  input          io_in_2_bits_fun_lwu,
  input          io_in_2_bits_fun_sb,
  input          io_in_2_bits_fun_sh,
  input          io_in_2_bits_fun_sw,
  input          io_in_2_bits_fun_sd,
  input          io_in_2_bits_fun_lr_w,
  input          io_in_2_bits_fun_sc_w,
  input          io_in_2_bits_fun_amoswap_w,
  input          io_in_2_bits_fun_amoadd_w,
  input          io_in_2_bits_fun_amoxor_w,
  input          io_in_2_bits_fun_amoand_w,
  input          io_in_2_bits_fun_amoor_w,
  input          io_in_2_bits_fun_amomin_w,
  input          io_in_2_bits_fun_amomax_w,
  input          io_in_2_bits_fun_amominu_w,
  input          io_in_2_bits_fun_amomaxu_w,
  input          io_in_2_bits_fun_lr_d,
  input          io_in_2_bits_fun_sc_d,
  input          io_in_2_bits_fun_amoswap_d,
  input          io_in_2_bits_fun_amoadd_d,
  input          io_in_2_bits_fun_amoxor_d,
  input          io_in_2_bits_fun_amoand_d,
  input          io_in_2_bits_fun_amoor_d,
  input          io_in_2_bits_fun_amomin_d,
  input          io_in_2_bits_fun_amomax_d,
  input          io_in_2_bits_fun_amominu_d,
  input          io_in_2_bits_fun_amomaxu_d,
  input          io_in_2_bits_fun_flw,
  input          io_in_2_bits_fun_fsw,
  input          io_in_2_bits_fun_fld,
  input          io_in_2_bits_fun_fsd,
  input          io_in_2_bits_fun_probe,
  input          io_in_2_bits_fun_grant,
  input          io_in_2_bits_fun_preft,
  input  [5:0]   io_in_2_bits_rd_rd0,
  output         io_out_valid,
  output         io_out_bits_chkIdx,
  output [31:0]  io_out_bits_paddr,
  output [127:0] io_out_bits_wdata,
  output [15:0]  io_out_bits_wstrb,
  output         io_out_bits_fun_lb,
  output         io_out_bits_fun_lh,
  output         io_out_bits_fun_lw,
  output         io_out_bits_fun_ld,
  output         io_out_bits_fun_lbu,
  output         io_out_bits_fun_lhu,
  output         io_out_bits_fun_lwu,
  output         io_out_bits_fun_sb,
  output         io_out_bits_fun_sh,
  output         io_out_bits_fun_sw,
  output         io_out_bits_fun_sd,
  output         io_out_bits_fun_lr_w,
  output         io_out_bits_fun_sc_w,
  output         io_out_bits_fun_amoswap_w,
  output         io_out_bits_fun_amoadd_w,
  output         io_out_bits_fun_amoxor_w,
  output         io_out_bits_fun_amoand_w,
  output         io_out_bits_fun_amoor_w,
  output         io_out_bits_fun_amomin_w,
  output         io_out_bits_fun_amomax_w,
  output         io_out_bits_fun_amominu_w,
  output         io_out_bits_fun_amomaxu_w,
  output         io_out_bits_fun_lr_d,
  output         io_out_bits_fun_sc_d,
  output         io_out_bits_fun_amoswap_d,
  output         io_out_bits_fun_amoadd_d,
  output         io_out_bits_fun_amoxor_d,
  output         io_out_bits_fun_amoand_d,
  output         io_out_bits_fun_amoor_d,
  output         io_out_bits_fun_amomin_d,
  output         io_out_bits_fun_amomax_d,
  output         io_out_bits_fun_amominu_d,
  output         io_out_bits_fun_amomaxu_d,
  output         io_out_bits_fun_flw,
  output         io_out_bits_fun_fsw,
  output         io_out_bits_fun_fld,
  output         io_out_bits_fun_fsd,
  output         io_out_bits_fun_probe,
  output         io_out_bits_fun_grant,
  output         io_out_bits_fun_preft,
  output [5:0]   io_out_bits_rd_rd0
);
  wire  _GEN_1 = io_in_1_valid ? 1'h0 : io_in_2_bits_chkIdx; // @[Arbiter.scala 136:15 138:26 140:19]
  wire [31:0] _GEN_2 = io_in_1_valid ? io_in_1_bits_paddr : io_in_2_bits_paddr; // @[Arbiter.scala 136:15 138:26 140:19]
  wire [127:0] _GEN_3 = io_in_1_valid ? 128'h0 : io_in_2_bits_wdata; // @[Arbiter.scala 136:15 138:26 140:19]
  wire [15:0] _GEN_4 = io_in_1_valid ? 16'h0 : io_in_2_bits_wstrb; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_5 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_lb; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_6 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_lh; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_7 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_lw; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_8 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_ld; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_9 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_lbu; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_10 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_lhu; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_11 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_lwu; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_12 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_sb; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_13 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_sh; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_14 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_sw; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_15 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_sd; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_19 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_lr_w; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_20 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_sc_w; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_21 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_amoswap_w; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_22 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_amoadd_w; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_23 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_amoxor_w; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_24 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_amoand_w; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_25 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_amoor_w; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_26 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_amomin_w; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_27 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_amomax_w; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_28 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_amominu_w; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_29 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_amomaxu_w; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_30 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_lr_d; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_31 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_sc_d; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_32 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_amoswap_d; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_33 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_amoadd_d; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_34 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_amoxor_d; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_35 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_amoand_d; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_36 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_amoor_d; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_37 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_amomin_d; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_38 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_amomax_d; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_39 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_amominu_d; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_40 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_amomaxu_d; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_41 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_flw; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_42 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_fsw; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_43 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_fld; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_44 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_fsd; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_45 = io_in_1_valid | io_in_2_bits_fun_probe; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_46 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_grant; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_47 = io_in_1_valid ? 1'h0 : io_in_2_bits_fun_preft; // @[Arbiter.scala 136:15 138:26 140:19]
  wire [5:0] _GEN_48 = io_in_1_valid ? 6'h0 : io_in_2_bits_rd_rd0; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  grant_2 = ~(io_in_0_valid | io_in_1_valid); // @[Arbiter.scala 45:78]
  assign io_in_1_ready = ~io_in_0_valid; // @[Arbiter.scala 45:78]
  assign io_in_2_ready = ~(io_in_0_valid | io_in_1_valid); // @[Arbiter.scala 45:78]
  assign io_out_valid = ~grant_2 | io_in_2_valid; // @[Arbiter.scala 147:31]
  assign io_out_bits_chkIdx = io_in_0_valid ? 1'h0 : _GEN_1; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_paddr = io_in_0_valid ? io_in_0_bits_paddr : _GEN_2; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_wdata = io_in_0_valid ? io_in_0_bits_wdata : _GEN_3; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_wstrb = io_in_0_valid ? 16'hffff : _GEN_4; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_lb = io_in_0_valid ? 1'h0 : _GEN_5; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_lh = io_in_0_valid ? 1'h0 : _GEN_6; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_lw = io_in_0_valid ? 1'h0 : _GEN_7; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_ld = io_in_0_valid ? 1'h0 : _GEN_8; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_lbu = io_in_0_valid ? 1'h0 : _GEN_9; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_lhu = io_in_0_valid ? 1'h0 : _GEN_10; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_lwu = io_in_0_valid ? 1'h0 : _GEN_11; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_sb = io_in_0_valid ? 1'h0 : _GEN_12; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_sh = io_in_0_valid ? 1'h0 : _GEN_13; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_sw = io_in_0_valid ? 1'h0 : _GEN_14; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_sd = io_in_0_valid ? 1'h0 : _GEN_15; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_lr_w = io_in_0_valid ? 1'h0 : _GEN_19; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_sc_w = io_in_0_valid ? 1'h0 : _GEN_20; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_amoswap_w = io_in_0_valid ? 1'h0 : _GEN_21; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_amoadd_w = io_in_0_valid ? 1'h0 : _GEN_22; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_amoxor_w = io_in_0_valid ? 1'h0 : _GEN_23; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_amoand_w = io_in_0_valid ? 1'h0 : _GEN_24; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_amoor_w = io_in_0_valid ? 1'h0 : _GEN_25; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_amomin_w = io_in_0_valid ? 1'h0 : _GEN_26; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_amomax_w = io_in_0_valid ? 1'h0 : _GEN_27; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_amominu_w = io_in_0_valid ? 1'h0 : _GEN_28; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_amomaxu_w = io_in_0_valid ? 1'h0 : _GEN_29; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_lr_d = io_in_0_valid ? 1'h0 : _GEN_30; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_sc_d = io_in_0_valid ? 1'h0 : _GEN_31; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_amoswap_d = io_in_0_valid ? 1'h0 : _GEN_32; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_amoadd_d = io_in_0_valid ? 1'h0 : _GEN_33; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_amoxor_d = io_in_0_valid ? 1'h0 : _GEN_34; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_amoand_d = io_in_0_valid ? 1'h0 : _GEN_35; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_amoor_d = io_in_0_valid ? 1'h0 : _GEN_36; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_amomin_d = io_in_0_valid ? 1'h0 : _GEN_37; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_amomax_d = io_in_0_valid ? 1'h0 : _GEN_38; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_amominu_d = io_in_0_valid ? 1'h0 : _GEN_39; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_amomaxu_d = io_in_0_valid ? 1'h0 : _GEN_40; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_flw = io_in_0_valid ? 1'h0 : _GEN_41; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_fsw = io_in_0_valid ? 1'h0 : _GEN_42; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_fld = io_in_0_valid ? 1'h0 : _GEN_43; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_fsd = io_in_0_valid ? 1'h0 : _GEN_44; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_probe = io_in_0_valid ? 1'h0 : _GEN_45; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_grant = io_in_0_valid | _GEN_46; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_fun_preft = io_in_0_valid ? 1'h0 : _GEN_47; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_rd_rd0 = io_in_0_valid ? 6'h0 : _GEN_48; // @[Arbiter.scala 138:26 140:19]
endmodule
module Queue_15(
  input          clock,
  input          reset,
  output         io_enq_ready,
  input          io_enq_valid,
  input          io_enq_bits_chkIdx,
  input  [31:0]  io_enq_bits_paddr,
  input  [127:0] io_enq_bits_wdata,
  input  [15:0]  io_enq_bits_wstrb,
  input          io_enq_bits_fun_lb,
  input          io_enq_bits_fun_lh,
  input          io_enq_bits_fun_lw,
  input          io_enq_bits_fun_ld,
  input          io_enq_bits_fun_lbu,
  input          io_enq_bits_fun_lhu,
  input          io_enq_bits_fun_lwu,
  input          io_enq_bits_fun_sb,
  input          io_enq_bits_fun_sh,
  input          io_enq_bits_fun_sw,
  input          io_enq_bits_fun_sd,
  input          io_enq_bits_fun_lr_w,
  input          io_enq_bits_fun_sc_w,
  input          io_enq_bits_fun_amoswap_w,
  input          io_enq_bits_fun_amoadd_w,
  input          io_enq_bits_fun_amoxor_w,
  input          io_enq_bits_fun_amoand_w,
  input          io_enq_bits_fun_amoor_w,
  input          io_enq_bits_fun_amomin_w,
  input          io_enq_bits_fun_amomax_w,
  input          io_enq_bits_fun_amominu_w,
  input          io_enq_bits_fun_amomaxu_w,
  input          io_enq_bits_fun_lr_d,
  input          io_enq_bits_fun_sc_d,
  input          io_enq_bits_fun_amoswap_d,
  input          io_enq_bits_fun_amoadd_d,
  input          io_enq_bits_fun_amoxor_d,
  input          io_enq_bits_fun_amoand_d,
  input          io_enq_bits_fun_amoor_d,
  input          io_enq_bits_fun_amomin_d,
  input          io_enq_bits_fun_amomax_d,
  input          io_enq_bits_fun_amominu_d,
  input          io_enq_bits_fun_amomaxu_d,
  input          io_enq_bits_fun_flw,
  input          io_enq_bits_fun_fsw,
  input          io_enq_bits_fun_fld,
  input          io_enq_bits_fun_fsd,
  input          io_enq_bits_fun_probe,
  input          io_enq_bits_fun_grant,
  input          io_enq_bits_fun_preft,
  input  [5:0]   io_enq_bits_rd_rd0,
  input          io_deq_ready,
  output         io_deq_valid,
  output         io_deq_bits_chkIdx,
  output [31:0]  io_deq_bits_paddr,
  output [127:0] io_deq_bits_wdata,
  output [15:0]  io_deq_bits_wstrb,
  output         io_deq_bits_fun_lb,
  output         io_deq_bits_fun_lh,
  output         io_deq_bits_fun_lw,
  output         io_deq_bits_fun_ld,
  output         io_deq_bits_fun_lbu,
  output         io_deq_bits_fun_lhu,
  output         io_deq_bits_fun_lwu,
  output         io_deq_bits_fun_sb,
  output         io_deq_bits_fun_sh,
  output         io_deq_bits_fun_sw,
  output         io_deq_bits_fun_sd,
  output         io_deq_bits_fun_lr_w,
  output         io_deq_bits_fun_sc_w,
  output         io_deq_bits_fun_amoswap_w,
  output         io_deq_bits_fun_amoadd_w,
  output         io_deq_bits_fun_amoxor_w,
  output         io_deq_bits_fun_amoand_w,
  output         io_deq_bits_fun_amoor_w,
  output         io_deq_bits_fun_amomin_w,
  output         io_deq_bits_fun_amomax_w,
  output         io_deq_bits_fun_amominu_w,
  output         io_deq_bits_fun_amomaxu_w,
  output         io_deq_bits_fun_lr_d,
  output         io_deq_bits_fun_sc_d,
  output         io_deq_bits_fun_amoswap_d,
  output         io_deq_bits_fun_amoadd_d,
  output         io_deq_bits_fun_amoxor_d,
  output         io_deq_bits_fun_amoand_d,
  output         io_deq_bits_fun_amoor_d,
  output         io_deq_bits_fun_amomin_d,
  output         io_deq_bits_fun_amomax_d,
  output         io_deq_bits_fun_amominu_d,
  output         io_deq_bits_fun_amomaxu_d,
  output         io_deq_bits_fun_flw,
  output         io_deq_bits_fun_fsw,
  output         io_deq_bits_fun_fld,
  output         io_deq_bits_fun_fsd,
  output         io_deq_bits_fun_probe,
  output         io_deq_bits_fun_grant,
  output         io_deq_bits_fun_preft,
  output [5:0]   io_deq_bits_rd_rd0
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [127:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
  reg [31:0] _RAND_33;
  reg [31:0] _RAND_34;
  reg [31:0] _RAND_35;
  reg [31:0] _RAND_36;
  reg [31:0] _RAND_37;
  reg [31:0] _RAND_38;
  reg [31:0] _RAND_39;
  reg [31:0] _RAND_40;
  reg [31:0] _RAND_41;
  reg [31:0] _RAND_42;
  reg [31:0] _RAND_43;
  reg [31:0] _RAND_44;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_45;
`endif // RANDOMIZE_REG_INIT
  reg  ram_chkIdx [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_chkIdx_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_chkIdx_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_chkIdx_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_chkIdx_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_chkIdx_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_chkIdx_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_chkIdx_MPORT_en; // @[Decoupled.scala 275:95]
  reg [31:0] ram_paddr [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_paddr_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_paddr_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [31:0] ram_paddr_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [31:0] ram_paddr_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_paddr_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_paddr_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_paddr_MPORT_en; // @[Decoupled.scala 275:95]
  reg [127:0] ram_wdata [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_wdata_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_wdata_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [127:0] ram_wdata_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [127:0] ram_wdata_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_wdata_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_wdata_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_wdata_MPORT_en; // @[Decoupled.scala 275:95]
  reg [15:0] ram_wstrb [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_wstrb_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_wstrb_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [15:0] ram_wstrb_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [15:0] ram_wstrb_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_wstrb_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_wstrb_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_wstrb_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lb [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lb_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lb_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lb_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lb_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lb_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lb_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lb_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lh [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lh_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lh_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lh_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lh_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lh_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lh_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lh_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lw [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lw_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lw_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lw_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lw_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lw_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lw_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lw_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_ld [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_ld_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_ld_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_ld_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_ld_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_ld_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_ld_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_ld_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lbu [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lbu_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lbu_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lbu_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lbu_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lbu_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lbu_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lbu_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lhu [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lhu_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lhu_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lhu_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lhu_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lhu_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lhu_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lhu_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lwu [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lwu_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lwu_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lwu_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lwu_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lwu_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lwu_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lwu_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_sb [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_sb_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_sb_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sb_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sb_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sb_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sb_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_sb_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_sh [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_sh_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_sh_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sh_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sh_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sh_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sh_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_sh_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_sw [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_sw_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_sw_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sw_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sw_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sw_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sw_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_sw_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_sd [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_sd_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_sd_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sd_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sd_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sd_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sd_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_sd_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lr_w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_sc_w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoswap_w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoadd_w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoxor_w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoand_w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoor_w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amomin_w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amomax_w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amominu_w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amomaxu_w [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_w_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_w_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_w_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_w_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_w_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_w_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_lr_d [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_lr_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_sc_d [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_sc_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoswap_d [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoswap_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoadd_d [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoadd_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoxor_d [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoxor_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoand_d [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoand_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amoor_d [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amoor_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amomin_d [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomin_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amomax_d [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomax_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amominu_d [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amominu_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_amomaxu_d [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_d_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_d_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_d_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_d_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_d_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_amomaxu_d_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_flw [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_flw_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_flw_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_flw_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_flw_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_flw_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_flw_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_flw_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_fsw [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsw_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsw_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsw_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsw_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsw_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsw_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsw_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_fld [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_fld_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_fld_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_fld_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_fld_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_fld_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_fld_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_fld_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_fsd [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsd_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsd_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsd_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsd_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsd_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsd_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_fsd_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_probe [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_probe_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_probe_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_probe_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_probe_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_probe_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_probe_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_probe_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_grant [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_grant_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_grant_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_grant_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_grant_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_grant_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_grant_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_grant_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_fun_preft [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_fun_preft_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_fun_preft_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_preft_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_preft_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_fun_preft_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_fun_preft_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_fun_preft_MPORT_en; // @[Decoupled.scala 275:95]
  reg [5:0] ram_rd_rd0 [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_rd_rd0_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_rd_rd0_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [5:0] ram_rd_rd0_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [5:0] ram_rd_rd0_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_rd_rd0_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_rd_rd0_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_rd_rd0_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_deq = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign ram_chkIdx_io_deq_bits_MPORT_en = 1'h1;
  assign ram_chkIdx_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_chkIdx_io_deq_bits_MPORT_data = ram_chkIdx[ram_chkIdx_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_chkIdx_MPORT_data = io_enq_bits_chkIdx;
  assign ram_chkIdx_MPORT_addr = 1'h0;
  assign ram_chkIdx_MPORT_mask = 1'h1;
  assign ram_chkIdx_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_paddr_io_deq_bits_MPORT_en = 1'h1;
  assign ram_paddr_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_paddr_io_deq_bits_MPORT_data = ram_paddr[ram_paddr_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_paddr_MPORT_data = io_enq_bits_paddr;
  assign ram_paddr_MPORT_addr = 1'h0;
  assign ram_paddr_MPORT_mask = 1'h1;
  assign ram_paddr_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_wdata_io_deq_bits_MPORT_en = 1'h1;
  assign ram_wdata_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_wdata_io_deq_bits_MPORT_data = ram_wdata[ram_wdata_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_wdata_MPORT_data = io_enq_bits_wdata;
  assign ram_wdata_MPORT_addr = 1'h0;
  assign ram_wdata_MPORT_mask = 1'h1;
  assign ram_wdata_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_wstrb_io_deq_bits_MPORT_en = 1'h1;
  assign ram_wstrb_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_wstrb_io_deq_bits_MPORT_data = ram_wstrb[ram_wstrb_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_wstrb_MPORT_data = io_enq_bits_wstrb;
  assign ram_wstrb_MPORT_addr = 1'h0;
  assign ram_wstrb_MPORT_mask = 1'h1;
  assign ram_wstrb_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_lb_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lb_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_lb_io_deq_bits_MPORT_data = ram_fun_lb[ram_fun_lb_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lb_MPORT_data = io_enq_bits_fun_lb;
  assign ram_fun_lb_MPORT_addr = 1'h0;
  assign ram_fun_lb_MPORT_mask = 1'h1;
  assign ram_fun_lb_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_lh_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lh_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_lh_io_deq_bits_MPORT_data = ram_fun_lh[ram_fun_lh_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lh_MPORT_data = io_enq_bits_fun_lh;
  assign ram_fun_lh_MPORT_addr = 1'h0;
  assign ram_fun_lh_MPORT_mask = 1'h1;
  assign ram_fun_lh_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_lw_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lw_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_lw_io_deq_bits_MPORT_data = ram_fun_lw[ram_fun_lw_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lw_MPORT_data = io_enq_bits_fun_lw;
  assign ram_fun_lw_MPORT_addr = 1'h0;
  assign ram_fun_lw_MPORT_mask = 1'h1;
  assign ram_fun_lw_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_ld_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_ld_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_ld_io_deq_bits_MPORT_data = ram_fun_ld[ram_fun_ld_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_ld_MPORT_data = io_enq_bits_fun_ld;
  assign ram_fun_ld_MPORT_addr = 1'h0;
  assign ram_fun_ld_MPORT_mask = 1'h1;
  assign ram_fun_ld_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_lbu_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lbu_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_lbu_io_deq_bits_MPORT_data = ram_fun_lbu[ram_fun_lbu_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lbu_MPORT_data = io_enq_bits_fun_lbu;
  assign ram_fun_lbu_MPORT_addr = 1'h0;
  assign ram_fun_lbu_MPORT_mask = 1'h1;
  assign ram_fun_lbu_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_lhu_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lhu_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_lhu_io_deq_bits_MPORT_data = ram_fun_lhu[ram_fun_lhu_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lhu_MPORT_data = io_enq_bits_fun_lhu;
  assign ram_fun_lhu_MPORT_addr = 1'h0;
  assign ram_fun_lhu_MPORT_mask = 1'h1;
  assign ram_fun_lhu_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_lwu_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lwu_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_lwu_io_deq_bits_MPORT_data = ram_fun_lwu[ram_fun_lwu_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lwu_MPORT_data = io_enq_bits_fun_lwu;
  assign ram_fun_lwu_MPORT_addr = 1'h0;
  assign ram_fun_lwu_MPORT_mask = 1'h1;
  assign ram_fun_lwu_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_sb_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_sb_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_sb_io_deq_bits_MPORT_data = ram_fun_sb[ram_fun_sb_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_sb_MPORT_data = io_enq_bits_fun_sb;
  assign ram_fun_sb_MPORT_addr = 1'h0;
  assign ram_fun_sb_MPORT_mask = 1'h1;
  assign ram_fun_sb_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_sh_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_sh_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_sh_io_deq_bits_MPORT_data = ram_fun_sh[ram_fun_sh_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_sh_MPORT_data = io_enq_bits_fun_sh;
  assign ram_fun_sh_MPORT_addr = 1'h0;
  assign ram_fun_sh_MPORT_mask = 1'h1;
  assign ram_fun_sh_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_sw_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_sw_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_sw_io_deq_bits_MPORT_data = ram_fun_sw[ram_fun_sw_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_sw_MPORT_data = io_enq_bits_fun_sw;
  assign ram_fun_sw_MPORT_addr = 1'h0;
  assign ram_fun_sw_MPORT_mask = 1'h1;
  assign ram_fun_sw_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_sd_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_sd_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_sd_io_deq_bits_MPORT_data = ram_fun_sd[ram_fun_sd_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_sd_MPORT_data = io_enq_bits_fun_sd;
  assign ram_fun_sd_MPORT_addr = 1'h0;
  assign ram_fun_sd_MPORT_mask = 1'h1;
  assign ram_fun_sd_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_lr_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lr_w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_lr_w_io_deq_bits_MPORT_data = ram_fun_lr_w[ram_fun_lr_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lr_w_MPORT_data = io_enq_bits_fun_lr_w;
  assign ram_fun_lr_w_MPORT_addr = 1'h0;
  assign ram_fun_lr_w_MPORT_mask = 1'h1;
  assign ram_fun_lr_w_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_sc_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_sc_w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_sc_w_io_deq_bits_MPORT_data = ram_fun_sc_w[ram_fun_sc_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_sc_w_MPORT_data = io_enq_bits_fun_sc_w;
  assign ram_fun_sc_w_MPORT_addr = 1'h0;
  assign ram_fun_sc_w_MPORT_mask = 1'h1;
  assign ram_fun_sc_w_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_amoswap_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoswap_w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amoswap_w_io_deq_bits_MPORT_data = ram_fun_amoswap_w[ram_fun_amoswap_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoswap_w_MPORT_data = io_enq_bits_fun_amoswap_w;
  assign ram_fun_amoswap_w_MPORT_addr = 1'h0;
  assign ram_fun_amoswap_w_MPORT_mask = 1'h1;
  assign ram_fun_amoswap_w_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_amoadd_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoadd_w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amoadd_w_io_deq_bits_MPORT_data = ram_fun_amoadd_w[ram_fun_amoadd_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoadd_w_MPORT_data = io_enq_bits_fun_amoadd_w;
  assign ram_fun_amoadd_w_MPORT_addr = 1'h0;
  assign ram_fun_amoadd_w_MPORT_mask = 1'h1;
  assign ram_fun_amoadd_w_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_amoxor_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoxor_w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amoxor_w_io_deq_bits_MPORT_data = ram_fun_amoxor_w[ram_fun_amoxor_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoxor_w_MPORT_data = io_enq_bits_fun_amoxor_w;
  assign ram_fun_amoxor_w_MPORT_addr = 1'h0;
  assign ram_fun_amoxor_w_MPORT_mask = 1'h1;
  assign ram_fun_amoxor_w_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_amoand_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoand_w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amoand_w_io_deq_bits_MPORT_data = ram_fun_amoand_w[ram_fun_amoand_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoand_w_MPORT_data = io_enq_bits_fun_amoand_w;
  assign ram_fun_amoand_w_MPORT_addr = 1'h0;
  assign ram_fun_amoand_w_MPORT_mask = 1'h1;
  assign ram_fun_amoand_w_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_amoor_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoor_w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amoor_w_io_deq_bits_MPORT_data = ram_fun_amoor_w[ram_fun_amoor_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoor_w_MPORT_data = io_enq_bits_fun_amoor_w;
  assign ram_fun_amoor_w_MPORT_addr = 1'h0;
  assign ram_fun_amoor_w_MPORT_mask = 1'h1;
  assign ram_fun_amoor_w_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_amomin_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amomin_w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amomin_w_io_deq_bits_MPORT_data = ram_fun_amomin_w[ram_fun_amomin_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amomin_w_MPORT_data = io_enq_bits_fun_amomin_w;
  assign ram_fun_amomin_w_MPORT_addr = 1'h0;
  assign ram_fun_amomin_w_MPORT_mask = 1'h1;
  assign ram_fun_amomin_w_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_amomax_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amomax_w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amomax_w_io_deq_bits_MPORT_data = ram_fun_amomax_w[ram_fun_amomax_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amomax_w_MPORT_data = io_enq_bits_fun_amomax_w;
  assign ram_fun_amomax_w_MPORT_addr = 1'h0;
  assign ram_fun_amomax_w_MPORT_mask = 1'h1;
  assign ram_fun_amomax_w_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_amominu_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amominu_w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amominu_w_io_deq_bits_MPORT_data = ram_fun_amominu_w[ram_fun_amominu_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amominu_w_MPORT_data = io_enq_bits_fun_amominu_w;
  assign ram_fun_amominu_w_MPORT_addr = 1'h0;
  assign ram_fun_amominu_w_MPORT_mask = 1'h1;
  assign ram_fun_amominu_w_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_amomaxu_w_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amomaxu_w_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amomaxu_w_io_deq_bits_MPORT_data = ram_fun_amomaxu_w[ram_fun_amomaxu_w_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amomaxu_w_MPORT_data = io_enq_bits_fun_amomaxu_w;
  assign ram_fun_amomaxu_w_MPORT_addr = 1'h0;
  assign ram_fun_amomaxu_w_MPORT_mask = 1'h1;
  assign ram_fun_amomaxu_w_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_lr_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_lr_d_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_lr_d_io_deq_bits_MPORT_data = ram_fun_lr_d[ram_fun_lr_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_lr_d_MPORT_data = io_enq_bits_fun_lr_d;
  assign ram_fun_lr_d_MPORT_addr = 1'h0;
  assign ram_fun_lr_d_MPORT_mask = 1'h1;
  assign ram_fun_lr_d_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_sc_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_sc_d_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_sc_d_io_deq_bits_MPORT_data = ram_fun_sc_d[ram_fun_sc_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_sc_d_MPORT_data = io_enq_bits_fun_sc_d;
  assign ram_fun_sc_d_MPORT_addr = 1'h0;
  assign ram_fun_sc_d_MPORT_mask = 1'h1;
  assign ram_fun_sc_d_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_amoswap_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoswap_d_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amoswap_d_io_deq_bits_MPORT_data = ram_fun_amoswap_d[ram_fun_amoswap_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoswap_d_MPORT_data = io_enq_bits_fun_amoswap_d;
  assign ram_fun_amoswap_d_MPORT_addr = 1'h0;
  assign ram_fun_amoswap_d_MPORT_mask = 1'h1;
  assign ram_fun_amoswap_d_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_amoadd_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoadd_d_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amoadd_d_io_deq_bits_MPORT_data = ram_fun_amoadd_d[ram_fun_amoadd_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoadd_d_MPORT_data = io_enq_bits_fun_amoadd_d;
  assign ram_fun_amoadd_d_MPORT_addr = 1'h0;
  assign ram_fun_amoadd_d_MPORT_mask = 1'h1;
  assign ram_fun_amoadd_d_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_amoxor_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoxor_d_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amoxor_d_io_deq_bits_MPORT_data = ram_fun_amoxor_d[ram_fun_amoxor_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoxor_d_MPORT_data = io_enq_bits_fun_amoxor_d;
  assign ram_fun_amoxor_d_MPORT_addr = 1'h0;
  assign ram_fun_amoxor_d_MPORT_mask = 1'h1;
  assign ram_fun_amoxor_d_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_amoand_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoand_d_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amoand_d_io_deq_bits_MPORT_data = ram_fun_amoand_d[ram_fun_amoand_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoand_d_MPORT_data = io_enq_bits_fun_amoand_d;
  assign ram_fun_amoand_d_MPORT_addr = 1'h0;
  assign ram_fun_amoand_d_MPORT_mask = 1'h1;
  assign ram_fun_amoand_d_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_amoor_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amoor_d_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amoor_d_io_deq_bits_MPORT_data = ram_fun_amoor_d[ram_fun_amoor_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amoor_d_MPORT_data = io_enq_bits_fun_amoor_d;
  assign ram_fun_amoor_d_MPORT_addr = 1'h0;
  assign ram_fun_amoor_d_MPORT_mask = 1'h1;
  assign ram_fun_amoor_d_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_amomin_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amomin_d_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amomin_d_io_deq_bits_MPORT_data = ram_fun_amomin_d[ram_fun_amomin_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amomin_d_MPORT_data = io_enq_bits_fun_amomin_d;
  assign ram_fun_amomin_d_MPORT_addr = 1'h0;
  assign ram_fun_amomin_d_MPORT_mask = 1'h1;
  assign ram_fun_amomin_d_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_amomax_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amomax_d_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amomax_d_io_deq_bits_MPORT_data = ram_fun_amomax_d[ram_fun_amomax_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amomax_d_MPORT_data = io_enq_bits_fun_amomax_d;
  assign ram_fun_amomax_d_MPORT_addr = 1'h0;
  assign ram_fun_amomax_d_MPORT_mask = 1'h1;
  assign ram_fun_amomax_d_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_amominu_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amominu_d_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amominu_d_io_deq_bits_MPORT_data = ram_fun_amominu_d[ram_fun_amominu_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amominu_d_MPORT_data = io_enq_bits_fun_amominu_d;
  assign ram_fun_amominu_d_MPORT_addr = 1'h0;
  assign ram_fun_amominu_d_MPORT_mask = 1'h1;
  assign ram_fun_amominu_d_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_amomaxu_d_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_amomaxu_d_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_amomaxu_d_io_deq_bits_MPORT_data = ram_fun_amomaxu_d[ram_fun_amomaxu_d_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_amomaxu_d_MPORT_data = io_enq_bits_fun_amomaxu_d;
  assign ram_fun_amomaxu_d_MPORT_addr = 1'h0;
  assign ram_fun_amomaxu_d_MPORT_mask = 1'h1;
  assign ram_fun_amomaxu_d_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_flw_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_flw_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_flw_io_deq_bits_MPORT_data = ram_fun_flw[ram_fun_flw_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_flw_MPORT_data = io_enq_bits_fun_flw;
  assign ram_fun_flw_MPORT_addr = 1'h0;
  assign ram_fun_flw_MPORT_mask = 1'h1;
  assign ram_fun_flw_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_fsw_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_fsw_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_fsw_io_deq_bits_MPORT_data = ram_fun_fsw[ram_fun_fsw_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_fsw_MPORT_data = io_enq_bits_fun_fsw;
  assign ram_fun_fsw_MPORT_addr = 1'h0;
  assign ram_fun_fsw_MPORT_mask = 1'h1;
  assign ram_fun_fsw_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_fld_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_fld_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_fld_io_deq_bits_MPORT_data = ram_fun_fld[ram_fun_fld_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_fld_MPORT_data = io_enq_bits_fun_fld;
  assign ram_fun_fld_MPORT_addr = 1'h0;
  assign ram_fun_fld_MPORT_mask = 1'h1;
  assign ram_fun_fld_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_fsd_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_fsd_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_fsd_io_deq_bits_MPORT_data = ram_fun_fsd[ram_fun_fsd_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_fsd_MPORT_data = io_enq_bits_fun_fsd;
  assign ram_fun_fsd_MPORT_addr = 1'h0;
  assign ram_fun_fsd_MPORT_mask = 1'h1;
  assign ram_fun_fsd_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_probe_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_probe_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_probe_io_deq_bits_MPORT_data = ram_fun_probe[ram_fun_probe_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_probe_MPORT_data = io_enq_bits_fun_probe;
  assign ram_fun_probe_MPORT_addr = 1'h0;
  assign ram_fun_probe_MPORT_mask = 1'h1;
  assign ram_fun_probe_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_grant_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_grant_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_grant_io_deq_bits_MPORT_data = ram_fun_grant[ram_fun_grant_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_grant_MPORT_data = io_enq_bits_fun_grant;
  assign ram_fun_grant_MPORT_addr = 1'h0;
  assign ram_fun_grant_MPORT_mask = 1'h1;
  assign ram_fun_grant_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_fun_preft_io_deq_bits_MPORT_en = 1'h1;
  assign ram_fun_preft_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_fun_preft_io_deq_bits_MPORT_data = ram_fun_preft[ram_fun_preft_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_fun_preft_MPORT_data = io_enq_bits_fun_preft;
  assign ram_fun_preft_MPORT_addr = 1'h0;
  assign ram_fun_preft_MPORT_mask = 1'h1;
  assign ram_fun_preft_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_rd_rd0_io_deq_bits_MPORT_en = 1'h1;
  assign ram_rd_rd0_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_rd_rd0_io_deq_bits_MPORT_data = ram_rd_rd0[ram_rd_rd0_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_rd_rd0_MPORT_data = io_enq_bits_rd_rd0;
  assign ram_rd_rd0_MPORT_addr = 1'h0;
  assign ram_rd_rd0_MPORT_mask = 1'h1;
  assign ram_rd_rd0_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = io_deq_ready | empty; // @[Decoupled.scala 305:16 325:{24,39}]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_chkIdx = ram_chkIdx_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_paddr = ram_paddr_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_wdata = ram_wdata_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_wstrb = ram_wstrb_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_lb = ram_fun_lb_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_lh = ram_fun_lh_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_lw = ram_fun_lw_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_ld = ram_fun_ld_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_lbu = ram_fun_lbu_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_lhu = ram_fun_lhu_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_lwu = ram_fun_lwu_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_sb = ram_fun_sb_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_sh = ram_fun_sh_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_sw = ram_fun_sw_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_sd = ram_fun_sd_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_lr_w = ram_fun_lr_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_sc_w = ram_fun_sc_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_amoswap_w = ram_fun_amoswap_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_amoadd_w = ram_fun_amoadd_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_amoxor_w = ram_fun_amoxor_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_amoand_w = ram_fun_amoand_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_amoor_w = ram_fun_amoor_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_amomin_w = ram_fun_amomin_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_amomax_w = ram_fun_amomax_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_amominu_w = ram_fun_amominu_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_amomaxu_w = ram_fun_amomaxu_w_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_lr_d = ram_fun_lr_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_sc_d = ram_fun_sc_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_amoswap_d = ram_fun_amoswap_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_amoadd_d = ram_fun_amoadd_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_amoxor_d = ram_fun_amoxor_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_amoand_d = ram_fun_amoand_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_amoor_d = ram_fun_amoor_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_amomin_d = ram_fun_amomin_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_amomax_d = ram_fun_amomax_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_amominu_d = ram_fun_amominu_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_amomaxu_d = ram_fun_amomaxu_d_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_flw = ram_fun_flw_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_fsw = ram_fun_fsw_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_fld = ram_fun_fld_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_fsd = ram_fun_fsd_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_probe = ram_fun_probe_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_grant = ram_fun_grant_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_fun_preft = ram_fun_preft_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_rd_rd0 = ram_rd_rd0_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_chkIdx_MPORT_en & ram_chkIdx_MPORT_mask) begin
      ram_chkIdx[ram_chkIdx_MPORT_addr] <= ram_chkIdx_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_paddr_MPORT_en & ram_paddr_MPORT_mask) begin
      ram_paddr[ram_paddr_MPORT_addr] <= ram_paddr_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_wdata_MPORT_en & ram_wdata_MPORT_mask) begin
      ram_wdata[ram_wdata_MPORT_addr] <= ram_wdata_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_wstrb_MPORT_en & ram_wstrb_MPORT_mask) begin
      ram_wstrb[ram_wstrb_MPORT_addr] <= ram_wstrb_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lb_MPORT_en & ram_fun_lb_MPORT_mask) begin
      ram_fun_lb[ram_fun_lb_MPORT_addr] <= ram_fun_lb_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lh_MPORT_en & ram_fun_lh_MPORT_mask) begin
      ram_fun_lh[ram_fun_lh_MPORT_addr] <= ram_fun_lh_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lw_MPORT_en & ram_fun_lw_MPORT_mask) begin
      ram_fun_lw[ram_fun_lw_MPORT_addr] <= ram_fun_lw_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_ld_MPORT_en & ram_fun_ld_MPORT_mask) begin
      ram_fun_ld[ram_fun_ld_MPORT_addr] <= ram_fun_ld_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lbu_MPORT_en & ram_fun_lbu_MPORT_mask) begin
      ram_fun_lbu[ram_fun_lbu_MPORT_addr] <= ram_fun_lbu_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lhu_MPORT_en & ram_fun_lhu_MPORT_mask) begin
      ram_fun_lhu[ram_fun_lhu_MPORT_addr] <= ram_fun_lhu_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lwu_MPORT_en & ram_fun_lwu_MPORT_mask) begin
      ram_fun_lwu[ram_fun_lwu_MPORT_addr] <= ram_fun_lwu_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_sb_MPORT_en & ram_fun_sb_MPORT_mask) begin
      ram_fun_sb[ram_fun_sb_MPORT_addr] <= ram_fun_sb_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_sh_MPORT_en & ram_fun_sh_MPORT_mask) begin
      ram_fun_sh[ram_fun_sh_MPORT_addr] <= ram_fun_sh_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_sw_MPORT_en & ram_fun_sw_MPORT_mask) begin
      ram_fun_sw[ram_fun_sw_MPORT_addr] <= ram_fun_sw_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_sd_MPORT_en & ram_fun_sd_MPORT_mask) begin
      ram_fun_sd[ram_fun_sd_MPORT_addr] <= ram_fun_sd_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lr_w_MPORT_en & ram_fun_lr_w_MPORT_mask) begin
      ram_fun_lr_w[ram_fun_lr_w_MPORT_addr] <= ram_fun_lr_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_sc_w_MPORT_en & ram_fun_sc_w_MPORT_mask) begin
      ram_fun_sc_w[ram_fun_sc_w_MPORT_addr] <= ram_fun_sc_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoswap_w_MPORT_en & ram_fun_amoswap_w_MPORT_mask) begin
      ram_fun_amoswap_w[ram_fun_amoswap_w_MPORT_addr] <= ram_fun_amoswap_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoadd_w_MPORT_en & ram_fun_amoadd_w_MPORT_mask) begin
      ram_fun_amoadd_w[ram_fun_amoadd_w_MPORT_addr] <= ram_fun_amoadd_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoxor_w_MPORT_en & ram_fun_amoxor_w_MPORT_mask) begin
      ram_fun_amoxor_w[ram_fun_amoxor_w_MPORT_addr] <= ram_fun_amoxor_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoand_w_MPORT_en & ram_fun_amoand_w_MPORT_mask) begin
      ram_fun_amoand_w[ram_fun_amoand_w_MPORT_addr] <= ram_fun_amoand_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoor_w_MPORT_en & ram_fun_amoor_w_MPORT_mask) begin
      ram_fun_amoor_w[ram_fun_amoor_w_MPORT_addr] <= ram_fun_amoor_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amomin_w_MPORT_en & ram_fun_amomin_w_MPORT_mask) begin
      ram_fun_amomin_w[ram_fun_amomin_w_MPORT_addr] <= ram_fun_amomin_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amomax_w_MPORT_en & ram_fun_amomax_w_MPORT_mask) begin
      ram_fun_amomax_w[ram_fun_amomax_w_MPORT_addr] <= ram_fun_amomax_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amominu_w_MPORT_en & ram_fun_amominu_w_MPORT_mask) begin
      ram_fun_amominu_w[ram_fun_amominu_w_MPORT_addr] <= ram_fun_amominu_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amomaxu_w_MPORT_en & ram_fun_amomaxu_w_MPORT_mask) begin
      ram_fun_amomaxu_w[ram_fun_amomaxu_w_MPORT_addr] <= ram_fun_amomaxu_w_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_lr_d_MPORT_en & ram_fun_lr_d_MPORT_mask) begin
      ram_fun_lr_d[ram_fun_lr_d_MPORT_addr] <= ram_fun_lr_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_sc_d_MPORT_en & ram_fun_sc_d_MPORT_mask) begin
      ram_fun_sc_d[ram_fun_sc_d_MPORT_addr] <= ram_fun_sc_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoswap_d_MPORT_en & ram_fun_amoswap_d_MPORT_mask) begin
      ram_fun_amoswap_d[ram_fun_amoswap_d_MPORT_addr] <= ram_fun_amoswap_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoadd_d_MPORT_en & ram_fun_amoadd_d_MPORT_mask) begin
      ram_fun_amoadd_d[ram_fun_amoadd_d_MPORT_addr] <= ram_fun_amoadd_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoxor_d_MPORT_en & ram_fun_amoxor_d_MPORT_mask) begin
      ram_fun_amoxor_d[ram_fun_amoxor_d_MPORT_addr] <= ram_fun_amoxor_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoand_d_MPORT_en & ram_fun_amoand_d_MPORT_mask) begin
      ram_fun_amoand_d[ram_fun_amoand_d_MPORT_addr] <= ram_fun_amoand_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amoor_d_MPORT_en & ram_fun_amoor_d_MPORT_mask) begin
      ram_fun_amoor_d[ram_fun_amoor_d_MPORT_addr] <= ram_fun_amoor_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amomin_d_MPORT_en & ram_fun_amomin_d_MPORT_mask) begin
      ram_fun_amomin_d[ram_fun_amomin_d_MPORT_addr] <= ram_fun_amomin_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amomax_d_MPORT_en & ram_fun_amomax_d_MPORT_mask) begin
      ram_fun_amomax_d[ram_fun_amomax_d_MPORT_addr] <= ram_fun_amomax_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amominu_d_MPORT_en & ram_fun_amominu_d_MPORT_mask) begin
      ram_fun_amominu_d[ram_fun_amominu_d_MPORT_addr] <= ram_fun_amominu_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_amomaxu_d_MPORT_en & ram_fun_amomaxu_d_MPORT_mask) begin
      ram_fun_amomaxu_d[ram_fun_amomaxu_d_MPORT_addr] <= ram_fun_amomaxu_d_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_flw_MPORT_en & ram_fun_flw_MPORT_mask) begin
      ram_fun_flw[ram_fun_flw_MPORT_addr] <= ram_fun_flw_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_fsw_MPORT_en & ram_fun_fsw_MPORT_mask) begin
      ram_fun_fsw[ram_fun_fsw_MPORT_addr] <= ram_fun_fsw_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_fld_MPORT_en & ram_fun_fld_MPORT_mask) begin
      ram_fun_fld[ram_fun_fld_MPORT_addr] <= ram_fun_fld_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_fsd_MPORT_en & ram_fun_fsd_MPORT_mask) begin
      ram_fun_fsd[ram_fun_fsd_MPORT_addr] <= ram_fun_fsd_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_probe_MPORT_en & ram_fun_probe_MPORT_mask) begin
      ram_fun_probe[ram_fun_probe_MPORT_addr] <= ram_fun_probe_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_grant_MPORT_en & ram_fun_grant_MPORT_mask) begin
      ram_fun_grant[ram_fun_grant_MPORT_addr] <= ram_fun_grant_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_fun_preft_MPORT_en & ram_fun_preft_MPORT_mask) begin
      ram_fun_preft[ram_fun_preft_MPORT_addr] <= ram_fun_preft_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_rd_rd0_MPORT_en & ram_rd_rd0_MPORT_mask) begin
      ram_rd_rd0[ram_rd_rd0_MPORT_addr] <= ram_rd_rd0_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_chkIdx[initvar] = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_paddr[initvar] = _RAND_1[31:0];
  _RAND_2 = {4{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_wdata[initvar] = _RAND_2[127:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_wstrb[initvar] = _RAND_3[15:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_lb[initvar] = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_lh[initvar] = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_lw[initvar] = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_ld[initvar] = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_lbu[initvar] = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_lhu[initvar] = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_lwu[initvar] = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_sb[initvar] = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_sh[initvar] = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_sw[initvar] = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_sd[initvar] = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_lr_w[initvar] = _RAND_15[0:0];
  _RAND_16 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_sc_w[initvar] = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amoswap_w[initvar] = _RAND_17[0:0];
  _RAND_18 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amoadd_w[initvar] = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amoxor_w[initvar] = _RAND_19[0:0];
  _RAND_20 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amoand_w[initvar] = _RAND_20[0:0];
  _RAND_21 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amoor_w[initvar] = _RAND_21[0:0];
  _RAND_22 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amomin_w[initvar] = _RAND_22[0:0];
  _RAND_23 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amomax_w[initvar] = _RAND_23[0:0];
  _RAND_24 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amominu_w[initvar] = _RAND_24[0:0];
  _RAND_25 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amomaxu_w[initvar] = _RAND_25[0:0];
  _RAND_26 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_lr_d[initvar] = _RAND_26[0:0];
  _RAND_27 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_sc_d[initvar] = _RAND_27[0:0];
  _RAND_28 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amoswap_d[initvar] = _RAND_28[0:0];
  _RAND_29 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amoadd_d[initvar] = _RAND_29[0:0];
  _RAND_30 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amoxor_d[initvar] = _RAND_30[0:0];
  _RAND_31 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amoand_d[initvar] = _RAND_31[0:0];
  _RAND_32 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amoor_d[initvar] = _RAND_32[0:0];
  _RAND_33 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amomin_d[initvar] = _RAND_33[0:0];
  _RAND_34 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amomax_d[initvar] = _RAND_34[0:0];
  _RAND_35 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amominu_d[initvar] = _RAND_35[0:0];
  _RAND_36 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_amomaxu_d[initvar] = _RAND_36[0:0];
  _RAND_37 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_flw[initvar] = _RAND_37[0:0];
  _RAND_38 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_fsw[initvar] = _RAND_38[0:0];
  _RAND_39 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_fld[initvar] = _RAND_39[0:0];
  _RAND_40 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_fsd[initvar] = _RAND_40[0:0];
  _RAND_41 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_probe[initvar] = _RAND_41[0:0];
  _RAND_42 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_grant[initvar] = _RAND_42[0:0];
  _RAND_43 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_fun_preft[initvar] = _RAND_43[0:0];
  _RAND_44 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_rd_rd0[initvar] = _RAND_44[5:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_45 = {1{`RANDOM}};
  maybe_full = _RAND_45[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module DcacheStage(
  input          clock,
  input          reset,
  output         io_enq_ready,
  input          io_enq_valid,
  input          io_enq_bits_chkIdx,
  input  [31:0]  io_enq_bits_paddr,
  input  [127:0] io_enq_bits_wdata,
  input  [15:0]  io_enq_bits_wstrb,
  input          io_enq_bits_fun_lb,
  input          io_enq_bits_fun_lh,
  input          io_enq_bits_fun_lw,
  input          io_enq_bits_fun_ld,
  input          io_enq_bits_fun_lbu,
  input          io_enq_bits_fun_lhu,
  input          io_enq_bits_fun_lwu,
  input          io_enq_bits_fun_sb,
  input          io_enq_bits_fun_sh,
  input          io_enq_bits_fun_sw,
  input          io_enq_bits_fun_sd,
  input          io_enq_bits_fun_lr_w,
  input          io_enq_bits_fun_sc_w,
  input          io_enq_bits_fun_amoswap_w,
  input          io_enq_bits_fun_amoadd_w,
  input          io_enq_bits_fun_amoxor_w,
  input          io_enq_bits_fun_amoand_w,
  input          io_enq_bits_fun_amoor_w,
  input          io_enq_bits_fun_amomin_w,
  input          io_enq_bits_fun_amomax_w,
  input          io_enq_bits_fun_amominu_w,
  input          io_enq_bits_fun_amomaxu_w,
  input          io_enq_bits_fun_lr_d,
  input          io_enq_bits_fun_sc_d,
  input          io_enq_bits_fun_amoswap_d,
  input          io_enq_bits_fun_amoadd_d,
  input          io_enq_bits_fun_amoxor_d,
  input          io_enq_bits_fun_amoand_d,
  input          io_enq_bits_fun_amoor_d,
  input          io_enq_bits_fun_amomin_d,
  input          io_enq_bits_fun_amomax_d,
  input          io_enq_bits_fun_amominu_d,
  input          io_enq_bits_fun_amomaxu_d,
  input          io_enq_bits_fun_flw,
  input          io_enq_bits_fun_fsw,
  input          io_enq_bits_fun_fld,
  input          io_enq_bits_fun_fsd,
  input          io_enq_bits_fun_probe,
  input          io_enq_bits_fun_grant,
  input          io_enq_bits_fun_preft,
  input  [5:0]   io_enq_bits_rd_rd0,
  output         io_reload_valid,
  output         io_reload_bits_chkIdx,
  output [31:0]  io_reload_bits_paddr,
  output [127:0] io_reload_bits_wdata,
  output [15:0]  io_reload_bits_wstrb,
  output         io_reload_bits_fun_lb,
  output         io_reload_bits_fun_lh,
  output         io_reload_bits_fun_lw,
  output         io_reload_bits_fun_ld,
  output         io_reload_bits_fun_lbu,
  output         io_reload_bits_fun_lhu,
  output         io_reload_bits_fun_lwu,
  output         io_reload_bits_fun_sb,
  output         io_reload_bits_fun_sh,
  output         io_reload_bits_fun_sw,
  output         io_reload_bits_fun_sd,
  output         io_reload_bits_fun_lr_w,
  output         io_reload_bits_fun_sc_w,
  output         io_reload_bits_fun_amoswap_w,
  output         io_reload_bits_fun_amoadd_w,
  output         io_reload_bits_fun_amoxor_w,
  output         io_reload_bits_fun_amoand_w,
  output         io_reload_bits_fun_amoor_w,
  output         io_reload_bits_fun_amomin_w,
  output         io_reload_bits_fun_amomax_w,
  output         io_reload_bits_fun_amominu_w,
  output         io_reload_bits_fun_amomaxu_w,
  output         io_reload_bits_fun_lr_d,
  output         io_reload_bits_fun_sc_d,
  output         io_reload_bits_fun_amoswap_d,
  output         io_reload_bits_fun_amoadd_d,
  output         io_reload_bits_fun_amoxor_d,
  output         io_reload_bits_fun_amoand_d,
  output         io_reload_bits_fun_amoor_d,
  output         io_reload_bits_fun_amomin_d,
  output         io_reload_bits_fun_amomax_d,
  output         io_reload_bits_fun_amominu_d,
  output         io_reload_bits_fun_amomaxu_d,
  output         io_reload_bits_fun_flw,
  output         io_reload_bits_fun_fsw,
  output         io_reload_bits_fun_fld,
  output         io_reload_bits_fun_fsd,
  output         io_reload_bits_fun_probe,
  output         io_reload_bits_fun_grant,
  output         io_reload_bits_fun_preft,
  output [5:0]   io_reload_bits_rd_rd0,
  output         io_deq_valid,
  output         io_deq_bits_chkIdx,
  output [5:0]   io_deq_bits_wb_rd0,
  output [63:0]  io_deq_bits_wb_res,
  output         io_deq_bits_is_load_amo,
  output         io_deq_bits_is_flw,
  output         io_deq_bits_is_fld,
  output         io_missUnit_req_valid,
  output [31:0]  io_missUnit_req_bits_paddr,
  output         io_wb_req_valid,
  output [31:0]  io_wb_req_bits_paddr,
  output [127:0] io_wb_req_bits_data,
  output         io_wb_req_bits_is_releaseData,
  output         io_wb_req_bits_is_release,
  output         io_wb_req_bits_is_probe,
  output         io_wb_req_bits_is_probeData,
  input          io_isCacheEmpty,
  input          io_flush
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [127:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
  reg [31:0] _RAND_33;
  reg [31:0] _RAND_34;
  reg [31:0] _RAND_35;
  reg [31:0] _RAND_36;
  reg [31:0] _RAND_37;
  reg [31:0] _RAND_38;
  reg [31:0] _RAND_39;
  reg [31:0] _RAND_40;
  reg [31:0] _RAND_41;
  reg [31:0] _RAND_42;
  reg [31:0] _RAND_43;
  reg [31:0] _RAND_44;
  reg [31:0] _RAND_45;
  reg [31:0] _RAND_46;
  reg [31:0] _RAND_47;
  reg [31:0] _RAND_48;
  reg [31:0] _RAND_49;
  reg [31:0] _RAND_50;
  reg [31:0] _RAND_51;
  reg [31:0] _RAND_52;
  reg [31:0] _RAND_53;
  reg [31:0] _RAND_54;
  reg [31:0] _RAND_55;
  reg [31:0] _RAND_56;
  reg [31:0] _RAND_57;
  reg [31:0] _RAND_58;
  reg [31:0] _RAND_59;
  reg [31:0] _RAND_60;
  reg [31:0] _RAND_61;
  reg [31:0] _RAND_62;
  reg [31:0] _RAND_63;
  reg [31:0] _RAND_64;
  reg [31:0] _RAND_65;
  reg [31:0] _RAND_66;
  reg [31:0] _RAND_67;
  reg [31:0] _RAND_68;
  reg [31:0] _RAND_69;
  reg [31:0] _RAND_70;
  reg [31:0] _RAND_71;
  reg [31:0] _RAND_72;
  reg [31:0] _RAND_73;
  reg [31:0] _RAND_74;
  reg [31:0] _RAND_75;
  reg [31:0] _RAND_76;
  reg [31:0] _RAND_77;
  reg [31:0] _RAND_78;
  reg [31:0] _RAND_79;
  reg [31:0] _RAND_80;
  reg [31:0] _RAND_81;
  reg [31:0] _RAND_82;
  reg [31:0] _RAND_83;
  reg [31:0] _RAND_84;
  reg [31:0] _RAND_85;
  reg [31:0] _RAND_86;
  reg [31:0] _RAND_87;
  reg [31:0] _RAND_88;
  reg [31:0] _RAND_89;
  reg [31:0] _RAND_90;
  reg [31:0] _RAND_91;
  reg [31:0] _RAND_92;
  reg [31:0] _RAND_93;
  reg [31:0] _RAND_94;
  reg [31:0] _RAND_95;
  reg [31:0] _RAND_96;
  reg [31:0] _RAND_97;
  reg [31:0] _RAND_98;
  reg [31:0] _RAND_99;
  reg [31:0] _RAND_100;
  reg [31:0] _RAND_101;
  reg [31:0] _RAND_102;
  reg [31:0] _RAND_103;
  reg [31:0] _RAND_104;
  reg [31:0] _RAND_105;
  reg [31:0] _RAND_106;
  reg [31:0] _RAND_107;
  reg [31:0] _RAND_108;
  reg [31:0] _RAND_109;
  reg [31:0] _RAND_110;
  reg [31:0] _RAND_111;
  reg [31:0] _RAND_112;
  reg [31:0] _RAND_113;
  reg [31:0] _RAND_114;
  reg [31:0] _RAND_115;
  reg [31:0] _RAND_116;
  reg [31:0] _RAND_117;
  reg [31:0] _RAND_118;
  reg [31:0] _RAND_119;
  reg [31:0] _RAND_120;
  reg [31:0] _RAND_121;
  reg [31:0] _RAND_122;
  reg [31:0] _RAND_123;
  reg [31:0] _RAND_124;
  reg [31:0] _RAND_125;
  reg [31:0] _RAND_126;
  reg [31:0] _RAND_127;
  reg [31:0] _RAND_128;
  reg [31:0] _RAND_129;
  reg [31:0] _RAND_130;
  reg [31:0] _RAND_131;
  reg [31:0] _RAND_132;
  reg [31:0] _RAND_133;
  reg [31:0] _RAND_134;
  reg [31:0] _RAND_135;
  reg [31:0] _RAND_136;
  reg [31:0] _RAND_137;
  reg [31:0] _RAND_138;
  reg [31:0] _RAND_139;
  reg [127:0] _RAND_140;
  reg [31:0] _RAND_141;
  reg [31:0] _RAND_142;
  reg [31:0] _RAND_143;
  reg [31:0] _RAND_144;
  reg [31:0] _RAND_145;
  reg [127:0] _RAND_146;
  reg [31:0] _RAND_147;
  reg [31:0] _RAND_148;
  reg [31:0] _RAND_149;
  reg [31:0] _RAND_150;
  reg [31:0] _RAND_151;
  reg [31:0] _RAND_152;
  reg [31:0] _RAND_153;
  reg [31:0] _RAND_154;
  reg [31:0] _RAND_155;
  reg [31:0] _RAND_156;
  reg [31:0] _RAND_157;
  reg [31:0] _RAND_158;
  reg [31:0] _RAND_159;
  reg [31:0] _RAND_160;
  reg [31:0] _RAND_161;
  reg [31:0] _RAND_162;
  reg [31:0] _RAND_163;
  reg [31:0] _RAND_164;
  reg [31:0] _RAND_165;
  reg [31:0] _RAND_166;
  reg [31:0] _RAND_167;
  reg [31:0] _RAND_168;
  reg [31:0] _RAND_169;
  reg [31:0] _RAND_170;
  reg [31:0] _RAND_171;
  reg [31:0] _RAND_172;
  reg [31:0] _RAND_173;
  reg [31:0] _RAND_174;
  reg [31:0] _RAND_175;
  reg [31:0] _RAND_176;
  reg [31:0] _RAND_177;
  reg [31:0] _RAND_178;
  reg [31:0] _RAND_179;
  reg [31:0] _RAND_180;
  reg [31:0] _RAND_181;
  reg [31:0] _RAND_182;
  reg [31:0] _RAND_183;
  reg [31:0] _RAND_184;
  reg [31:0] _RAND_185;
  reg [31:0] _RAND_186;
  reg [31:0] _RAND_187;
  reg [31:0] _RAND_188;
  reg [31:0] _RAND_189;
  reg [31:0] _RAND_190;
  reg [31:0] _RAND_191;
  reg [63:0] _RAND_192;
  reg [31:0] _RAND_193;
  reg [31:0] _RAND_194;
  reg [31:0] _RAND_195;
`endif // RANDOMIZE_REG_INIT
  wire  datRAM_0_clock; // @[DcacheStage.scala 62:54]
  wire [1:0] datRAM_0_io_addrr; // @[DcacheStage.scala 62:54]
  wire [1:0] datRAM_0_io_addrw; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_dataw_0; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_dataw_1; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_dataw_2; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_dataw_3; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_dataw_4; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_dataw_5; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_dataw_6; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_dataw_7; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_dataw_8; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_dataw_9; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_dataw_10; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_dataw_11; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_dataw_12; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_dataw_13; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_dataw_14; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_dataw_15; // @[DcacheStage.scala 62:54]
  wire  datRAM_0_io_datawm_0; // @[DcacheStage.scala 62:54]
  wire  datRAM_0_io_datawm_1; // @[DcacheStage.scala 62:54]
  wire  datRAM_0_io_datawm_2; // @[DcacheStage.scala 62:54]
  wire  datRAM_0_io_datawm_3; // @[DcacheStage.scala 62:54]
  wire  datRAM_0_io_datawm_4; // @[DcacheStage.scala 62:54]
  wire  datRAM_0_io_datawm_5; // @[DcacheStage.scala 62:54]
  wire  datRAM_0_io_datawm_6; // @[DcacheStage.scala 62:54]
  wire  datRAM_0_io_datawm_7; // @[DcacheStage.scala 62:54]
  wire  datRAM_0_io_datawm_8; // @[DcacheStage.scala 62:54]
  wire  datRAM_0_io_datawm_9; // @[DcacheStage.scala 62:54]
  wire  datRAM_0_io_datawm_10; // @[DcacheStage.scala 62:54]
  wire  datRAM_0_io_datawm_11; // @[DcacheStage.scala 62:54]
  wire  datRAM_0_io_datawm_12; // @[DcacheStage.scala 62:54]
  wire  datRAM_0_io_datawm_13; // @[DcacheStage.scala 62:54]
  wire  datRAM_0_io_datawm_14; // @[DcacheStage.scala 62:54]
  wire  datRAM_0_io_datawm_15; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_datar_0; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_datar_1; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_datar_2; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_datar_3; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_datar_4; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_datar_5; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_datar_6; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_datar_7; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_datar_8; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_datar_9; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_datar_10; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_datar_11; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_datar_12; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_datar_13; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_datar_14; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_0_io_datar_15; // @[DcacheStage.scala 62:54]
  wire  datRAM_0_io_enw; // @[DcacheStage.scala 62:54]
  wire  datRAM_0_io_enr; // @[DcacheStage.scala 62:54]
  wire  datRAM_1_clock; // @[DcacheStage.scala 62:54]
  wire [1:0] datRAM_1_io_addrr; // @[DcacheStage.scala 62:54]
  wire [1:0] datRAM_1_io_addrw; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_dataw_0; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_dataw_1; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_dataw_2; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_dataw_3; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_dataw_4; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_dataw_5; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_dataw_6; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_dataw_7; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_dataw_8; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_dataw_9; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_dataw_10; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_dataw_11; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_dataw_12; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_dataw_13; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_dataw_14; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_dataw_15; // @[DcacheStage.scala 62:54]
  wire  datRAM_1_io_datawm_0; // @[DcacheStage.scala 62:54]
  wire  datRAM_1_io_datawm_1; // @[DcacheStage.scala 62:54]
  wire  datRAM_1_io_datawm_2; // @[DcacheStage.scala 62:54]
  wire  datRAM_1_io_datawm_3; // @[DcacheStage.scala 62:54]
  wire  datRAM_1_io_datawm_4; // @[DcacheStage.scala 62:54]
  wire  datRAM_1_io_datawm_5; // @[DcacheStage.scala 62:54]
  wire  datRAM_1_io_datawm_6; // @[DcacheStage.scala 62:54]
  wire  datRAM_1_io_datawm_7; // @[DcacheStage.scala 62:54]
  wire  datRAM_1_io_datawm_8; // @[DcacheStage.scala 62:54]
  wire  datRAM_1_io_datawm_9; // @[DcacheStage.scala 62:54]
  wire  datRAM_1_io_datawm_10; // @[DcacheStage.scala 62:54]
  wire  datRAM_1_io_datawm_11; // @[DcacheStage.scala 62:54]
  wire  datRAM_1_io_datawm_12; // @[DcacheStage.scala 62:54]
  wire  datRAM_1_io_datawm_13; // @[DcacheStage.scala 62:54]
  wire  datRAM_1_io_datawm_14; // @[DcacheStage.scala 62:54]
  wire  datRAM_1_io_datawm_15; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_datar_0; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_datar_1; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_datar_2; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_datar_3; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_datar_4; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_datar_5; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_datar_6; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_datar_7; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_datar_8; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_datar_9; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_datar_10; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_datar_11; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_datar_12; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_datar_13; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_datar_14; // @[DcacheStage.scala 62:54]
  wire [7:0] datRAM_1_io_datar_15; // @[DcacheStage.scala 62:54]
  wire  datRAM_1_io_enw; // @[DcacheStage.scala 62:54]
  wire  datRAM_1_io_enr; // @[DcacheStage.scala 62:54]
  wire  tagRAM_0_clock; // @[DcacheStage.scala 63:54]
  wire [1:0] tagRAM_0_io_addrr; // @[DcacheStage.scala 63:54]
  wire [1:0] tagRAM_0_io_addrw; // @[DcacheStage.scala 63:54]
  wire [25:0] tagRAM_0_io_dataw; // @[DcacheStage.scala 63:54]
  wire [25:0] tagRAM_0_io_datar; // @[DcacheStage.scala 63:54]
  wire  tagRAM_0_io_enw; // @[DcacheStage.scala 63:54]
  wire  tagRAM_0_io_enr; // @[DcacheStage.scala 63:54]
  wire  tagRAM_1_clock; // @[DcacheStage.scala 63:54]
  wire [1:0] tagRAM_1_io_addrr; // @[DcacheStage.scala 63:54]
  wire [1:0] tagRAM_1_io_addrw; // @[DcacheStage.scala 63:54]
  wire [25:0] tagRAM_1_io_dataw; // @[DcacheStage.scala 63:54]
  wire [25:0] tagRAM_1_io_datar; // @[DcacheStage.scala 63:54]
  wire  tagRAM_1_io_enw; // @[DcacheStage.scala 63:54]
  wire  tagRAM_1_io_enr; // @[DcacheStage.scala 63:54]
  wire  rplSel_rpl_prng_clock; // @[PRNG.scala 91:22]
  wire  rplSel_rpl_prng_reset; // @[PRNG.scala 91:22]
  wire  rplSel_rpl_prng_io_increment; // @[PRNG.scala 91:22]
  wire  rplSel_rpl_prng_io_out_0; // @[PRNG.scala 91:22]
  wire  rplSel_rpl_prng_io_out_1; // @[PRNG.scala 91:22]
  wire  rplSel_rpl_prng_io_out_2; // @[PRNG.scala 91:22]
  wire  rplSel_rpl_prng_io_out_3; // @[PRNG.scala 91:22]
  wire  rplSel_rpl_prng_io_out_4; // @[PRNG.scala 91:22]
  wire  rplSel_rpl_prng_io_out_5; // @[PRNG.scala 91:22]
  wire  rplSel_rpl_prng_io_out_6; // @[PRNG.scala 91:22]
  wire  rplSel_rpl_prng_io_out_7; // @[PRNG.scala 91:22]
  wire  rplSel_rpl_prng_io_out_8; // @[PRNG.scala 91:22]
  wire  rplSel_rpl_prng_io_out_9; // @[PRNG.scala 91:22]
  wire  rplSel_rpl_prng_io_out_10; // @[PRNG.scala 91:22]
  wire  rplSel_rpl_prng_io_out_11; // @[PRNG.scala 91:22]
  wire  rplSel_rpl_prng_io_out_12; // @[PRNG.scala 91:22]
  wire  rplSel_rpl_prng_io_out_13; // @[PRNG.scala 91:22]
  wire  rplSel_rpl_prng_io_out_14; // @[PRNG.scala 91:22]
  wire  rplSel_rpl_prng_io_out_15; // @[PRNG.scala 91:22]
  wire  _pipeStage1Valid_T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  reg  pipeStage1Valid; // @[DcacheStage.scala 71:32]
  reg  pipeStage1Bits_chkIdx; // @[DcacheStage.scala 72:32]
  reg [31:0] pipeStage1Bits_paddr; // @[DcacheStage.scala 72:32]
  reg [127:0] pipeStage1Bits_wdata; // @[DcacheStage.scala 72:32]
  reg [15:0] pipeStage1Bits_wstrb; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_lb; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_lh; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_lw; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_ld; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_lbu; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_lhu; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_lwu; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_sb; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_sh; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_sw; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_sd; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_lr_w; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_sc_w; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_amoswap_w; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_amoadd_w; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_amoxor_w; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_amoand_w; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_amoor_w; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_amomin_w; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_amomax_w; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_amominu_w; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_amomaxu_w; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_lr_d; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_sc_d; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_amoswap_d; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_amoadd_d; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_amoxor_d; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_amoand_d; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_amoor_d; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_amomin_d; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_amomax_d; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_amominu_d; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_amomaxu_d; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_flw; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_fsw; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_fld; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_fsd; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_probe; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_grant; // @[DcacheStage.scala 72:32]
  reg  pipeStage1Bits_fun_preft; // @[DcacheStage.scala 72:32]
  reg [5:0] pipeStage1Bits_rd_rd0; // @[DcacheStage.scala 72:32]
  reg  isTagBypass_1; // @[Reg.scala 19:16]
  reg [25:0] tagBypassData_1; // @[Reg.scala 19:16]
  wire [25:0] tagInfoR_1 = isTagBypass_1 ? tagBypassData_1 : tagRAM_1_io_datar; // @[DcacheStage.scala 127:31]
  wire [25:0] tagInfoW = pipeStage1Bits_paddr[31:6]; // @[Dcache.scala 73:21]
  wire [1:0] addrSelW = pipeStage1Bits_paddr[5:4]; // @[Dcache.scala 74:21]
  reg  isCBValid_3_1; // @[DcacheStage.scala 84:26]
  reg  isCBValid_2_1; // @[DcacheStage.scala 84:26]
  reg  isCBValid_1_1; // @[DcacheStage.scala 84:26]
  reg  isCBValid_0_1; // @[DcacheStage.scala 84:26]
  wire  _GEN_203 = 2'h1 == addrSelW ? isCBValid_1_1 : isCBValid_0_1; // @[DcacheStage.scala 241:{73,73}]
  wire  _GEN_204 = 2'h2 == addrSelW ? isCBValid_2_1 : _GEN_203; // @[DcacheStage.scala 241:{73,73}]
  wire  _GEN_205 = 2'h3 == addrSelW ? isCBValid_3_1 : _GEN_204; // @[DcacheStage.scala 241:{73,73}]
  wire  res_1 = tagInfoR_1 == tagInfoW & _GEN_205; // @[DcacheStage.scala 241:73]
  reg  isTagBypass; // @[Reg.scala 19:16]
  reg [25:0] tagBypassData; // @[Reg.scala 19:16]
  wire [25:0] tagInfoR_0 = isTagBypass ? tagBypassData : tagRAM_0_io_datar; // @[DcacheStage.scala 127:31]
  reg  isCBValid_3_0; // @[DcacheStage.scala 84:26]
  reg  isCBValid_2_0; // @[DcacheStage.scala 84:26]
  reg  isCBValid_1_0; // @[DcacheStage.scala 84:26]
  reg  isCBValid_0_0; // @[DcacheStage.scala 84:26]
  wire  _GEN_199 = 2'h1 == addrSelW ? isCBValid_1_0 : isCBValid_0_0; // @[DcacheStage.scala 241:{73,73}]
  wire  _GEN_200 = 2'h2 == addrSelW ? isCBValid_2_0 : _GEN_199; // @[DcacheStage.scala 241:{73,73}]
  wire  _GEN_201 = 2'h3 == addrSelW ? isCBValid_3_0 : _GEN_200; // @[DcacheStage.scala 241:{73,73}]
  wire  res_0 = tagInfoR_0 == tagInfoW & _GEN_201; // @[DcacheStage.scala 241:73]
  wire [1:0] _isHit_T = {res_1,res_0}; // @[DcacheStage.scala 77:23]
  wire  isHit = |_isHit_T; // @[DcacheStage.scala 77:30]
  wire  hitSel = _isHit_T[1]; // @[CircuitMath.scala 28:8]
  reg  isCBDirty_0_0; // @[DcacheStage.scala 86:26]
  reg  isCBDirty_0_1; // @[DcacheStage.scala 86:26]
  reg  isCBDirty_1_0; // @[DcacheStage.scala 86:26]
  reg  isCBDirty_1_1; // @[DcacheStage.scala 86:26]
  reg  isCBDirty_2_0; // @[DcacheStage.scala 86:26]
  reg  isCBDirty_2_1; // @[DcacheStage.scala 86:26]
  reg  isCBDirty_3_0; // @[DcacheStage.scala 86:26]
  reg  isCBDirty_3_1; // @[DcacheStage.scala 86:26]
  wire [1:0] addrSelR = io_enq_bits_paddr[5:4]; // @[Dcache.scala 74:21]
  wire  _cbSel_T_17 = pipeStage1Bits_fun_sc_d | pipeStage1Bits_fun_sc_w; // @[riscv_isa.scala 140:20]
  wire  _cbSel_T_18 = pipeStage1Bits_fun_amoswap_w | pipeStage1Bits_fun_amoadd_w | pipeStage1Bits_fun_amoxor_w |
    pipeStage1Bits_fun_amoand_w | pipeStage1Bits_fun_amoor_w | pipeStage1Bits_fun_amomin_w | pipeStage1Bits_fun_amomax_w
     | pipeStage1Bits_fun_amominu_w | pipeStage1Bits_fun_amomaxu_w | pipeStage1Bits_fun_amoswap_d |
    pipeStage1Bits_fun_amoadd_d | pipeStage1Bits_fun_amoxor_d | pipeStage1Bits_fun_amoand_d | pipeStage1Bits_fun_amoor_d
     | pipeStage1Bits_fun_amomin_d | pipeStage1Bits_fun_amomax_d | pipeStage1Bits_fun_amominu_d |
    pipeStage1Bits_fun_amomaxu_d | _cbSel_T_17; // @[riscv_isa.scala 148:205]
  wire  _cbSel_T_27 = pipeStage1Bits_fun_lr_d | pipeStage1Bits_fun_lr_w; // @[riscv_isa.scala 141:20]
  wire  _cbSel_T_28 = pipeStage1Bits_fun_lb | pipeStage1Bits_fun_lh | pipeStage1Bits_fun_lw | pipeStage1Bits_fun_ld |
    pipeStage1Bits_fun_lbu | pipeStage1Bits_fun_lhu | pipeStage1Bits_fun_lwu | pipeStage1Bits_fun_flw |
    pipeStage1Bits_fun_fld | _cbSel_T_27; // @[riscv_isa.scala 143:65]
  wire  _cbSel_T_29 = _cbSel_T_18 | _cbSel_T_28; // @[Dcache.scala 50:27]
  wire  _cbSel_T_34 = pipeStage1Bits_fun_sb | pipeStage1Bits_fun_sh | pipeStage1Bits_fun_sw | pipeStage1Bits_fun_sd |
    pipeStage1Bits_fun_fsw | pipeStage1Bits_fun_fsd; // @[riscv_isa.scala 144:40]
  wire  _cbSel_T_39 = _cbSel_T_18 | _cbSel_T_28 | _cbSel_T_34 | _cbSel_T_27 | _cbSel_T_17; // @[Dcache.scala 50:51]
  wire  _rplSel_is_emptyBlock_exist_T = ~_GEN_201; // @[DcacheStage.scala 263:61]
  wire  rplSel_is_emptyBlock_exist = ~_GEN_201 | ~_GEN_205; // @[DcacheStage.scala 263:61]
  wire  rplSel_emptyBlock_sel = _rplSel_is_emptyBlock_exist_T ? 1'h0 : 1'h1; // @[DcacheStage.scala 264:58]
  wire [7:0] rplSel_rpl_lo = {rplSel_rpl_prng_io_out_7,rplSel_rpl_prng_io_out_6,rplSel_rpl_prng_io_out_5,
    rplSel_rpl_prng_io_out_4,rplSel_rpl_prng_io_out_3,rplSel_rpl_prng_io_out_2,rplSel_rpl_prng_io_out_1,
    rplSel_rpl_prng_io_out_0}; // @[PRNG.scala 95:17]
  wire [15:0] rplSel_rpl = {rplSel_rpl_prng_io_out_15,rplSel_rpl_prng_io_out_14,rplSel_rpl_prng_io_out_13,
    rplSel_rpl_prng_io_out_12,rplSel_rpl_prng_io_out_11,rplSel_rpl_prng_io_out_10,rplSel_rpl_prng_io_out_9,
    rplSel_rpl_prng_io_out_8,rplSel_rpl_lo}; // @[PRNG.scala 95:17]
  wire [15:0] _rplSel_T = rplSel_is_emptyBlock_exist ? {{15'd0}, rplSel_emptyBlock_sel} : rplSel_rpl; // @[DcacheStage.scala 275:10]
  wire  rplSel = _rplSel_T[0]; // @[DcacheStage.scala 261:10 79:20]
  wire  cbSel = _cbSel_T_39 & hitSel | pipeStage1Bits_fun_preft & hitSel | pipeStage1Bits_fun_probe & hitSel |
    pipeStage1Bits_fun_grant & rplSel; // @[Mux.scala 27:73]
  wire  _datEnW_0_T = ~cbSel; // @[DcacheStage.scala 100:12]
  wire  _datEnW_0_T_1 = ~cbSel & pipeStage1Valid; // @[DcacheStage.scala 100:23]
  wire  _datEnW_0_T_28 = _cbSel_T_18 | _cbSel_T_34 | _cbSel_T_17; // @[Dcache.scala 54:34]
  wire  _datEnW_0_T_29 = _cbSel_T_18 | _cbSel_T_34 | _cbSel_T_17 | pipeStage1Bits_fun_grant; // @[Dcache.scala 54:42]
  wire  _datEnW_0_T_30 = ~cbSel & pipeStage1Valid & _datEnW_0_T_29; // @[DcacheStage.scala 100:41]
  reg  is_pending_lr; // @[DcacheStage.scala 147:30]
  reg  is_lr_64_32n; // @[DcacheStage.scala 148:29]
  wire  _is_sc_fail_T_15 = pipeStage1Bits_fun_lw | pipeStage1Bits_fun_lwu | pipeStage1Bits_fun_sw |
    pipeStage1Bits_fun_amoswap_w | pipeStage1Bits_fun_amoadd_w | pipeStage1Bits_fun_amoxor_w |
    pipeStage1Bits_fun_amoand_w | pipeStage1Bits_fun_amoor_w | pipeStage1Bits_fun_amomin_w | pipeStage1Bits_fun_amomax_w
     | pipeStage1Bits_fun_amominu_w | pipeStage1Bits_fun_amomaxu_w | pipeStage1Bits_fun_flw | pipeStage1Bits_fun_fsw |
    pipeStage1Bits_fun_lr_w | pipeStage1Bits_fun_sc_w; // @[riscv_isa.scala 155:151]
  wire  _is_sc_fail_T_16 = is_lr_64_32n & _is_sc_fail_T_15; // @[DcacheStage.scala 152:20]
  wire  _is_sc_fail_T_17 = ~is_pending_lr | _is_sc_fail_T_16; // @[DcacheStage.scala 151:20]
  wire  _is_sc_fail_T_32 = pipeStage1Bits_fun_ld | pipeStage1Bits_fun_lr_d | pipeStage1Bits_fun_fld |
    pipeStage1Bits_fun_sd | pipeStage1Bits_fun_sc_d | pipeStage1Bits_fun_fsd | pipeStage1Bits_fun_amoswap_d |
    pipeStage1Bits_fun_amoadd_d | pipeStage1Bits_fun_amoxor_d | pipeStage1Bits_fun_amoand_d | pipeStage1Bits_fun_amoor_d
     | pipeStage1Bits_fun_amomin_d | pipeStage1Bits_fun_amomax_d | pipeStage1Bits_fun_amominu_d |
    pipeStage1Bits_fun_amomaxu_d; // @[riscv_isa.scala 156:140]
  wire  _is_sc_fail_T_33 = ~is_lr_64_32n & _is_sc_fail_T_32; // @[DcacheStage.scala 153:20]
  wire  _is_sc_fail_T_34 = _is_sc_fail_T_17 | _is_sc_fail_T_33; // @[DcacheStage.scala 152:50]
  reg [31:0] lr_addr; // @[DcacheStage.scala 149:20]
  wire  _is_sc_fail_T_35 = lr_addr != pipeStage1Bits_paddr; // @[DcacheStage.scala 154:13]
  wire  is_sc_fail = _is_sc_fail_T_34 | _is_sc_fail_T_35; // @[DcacheStage.scala 153:50]
  wire  _datEnW_0_T_74 = _cbSel_T_17 ? ~is_sc_fail : 1'h1; // @[DcacheStage.scala 103:53]
  wire  _datEnW_0_T_75 = _cbSel_T_39 & isHit & _datEnW_0_T_74; // @[DcacheStage.scala 103:48]
  wire  _datEnW_0_T_76 = pipeStage1Bits_fun_grant | _datEnW_0_T_75; // @[DcacheStage.scala 102:38]
  wire  datEnW_0 = _datEnW_0_T_30 & _datEnW_0_T_76; // @[DcacheStage.scala 101:35]
  wire  tagEnW_0 = _datEnW_0_T_1 & pipeStage1Bits_fun_grant; // @[DcacheStage.scala 106:52]
  wire  _datEnW_1_T_1 = cbSel & pipeStage1Valid; // @[DcacheStage.scala 100:23]
  wire  _datEnW_1_T_30 = cbSel & pipeStage1Valid & _datEnW_0_T_29; // @[DcacheStage.scala 100:41]
  wire  datEnW_1 = _datEnW_1_T_30 & _datEnW_0_T_76; // @[DcacheStage.scala 101:35]
  wire  tagEnW_1 = _datEnW_1_T_1 & pipeStage1Bits_fun_grant; // @[DcacheStage.scala 106:52]
  wire [15:0] _T_41 = pipeStage1Bits_fun_grant ? 16'hffff : 16'h0; // @[Mux.scala 27:73]
  wire [15:0] _T_42 = _cbSel_T_39 ? pipeStage1Bits_wstrb : 16'h0; // @[Mux.scala 27:73]
  wire [15:0] _T_43 = _T_41 | _T_42; // @[Mux.scala 27:73]
  wire  datInfoWM_0 = _T_43[0]; // @[DcacheStage.scala 113:8]
  wire  datInfoWM_1 = _T_43[1]; // @[DcacheStage.scala 113:8]
  wire  datInfoWM_2 = _T_43[2]; // @[DcacheStage.scala 113:8]
  wire  datInfoWM_3 = _T_43[3]; // @[DcacheStage.scala 113:8]
  wire  datInfoWM_4 = _T_43[4]; // @[DcacheStage.scala 113:8]
  wire  datInfoWM_5 = _T_43[5]; // @[DcacheStage.scala 113:8]
  wire  datInfoWM_6 = _T_43[6]; // @[DcacheStage.scala 113:8]
  wire  datInfoWM_7 = _T_43[7]; // @[DcacheStage.scala 113:8]
  wire  datInfoWM_8 = _T_43[8]; // @[DcacheStage.scala 113:8]
  wire  datInfoWM_9 = _T_43[9]; // @[DcacheStage.scala 113:8]
  wire  datInfoWM_10 = _T_43[10]; // @[DcacheStage.scala 113:8]
  wire  datInfoWM_11 = _T_43[11]; // @[DcacheStage.scala 113:8]
  wire  datInfoWM_12 = _T_43[12]; // @[DcacheStage.scala 113:8]
  wire  datInfoWM_13 = _T_43[13]; // @[DcacheStage.scala 113:8]
  wire  datInfoWM_14 = _T_43[14]; // @[DcacheStage.scala 113:8]
  wire  datInfoWM_15 = _T_43[15]; // @[DcacheStage.scala 113:8]
  wire  _isTagBypass_T = addrSelR == addrSelW; // @[DcacheStage.scala 117:58]
  wire  _isTagBypass_T_1 = tagEnW_0 & addrSelR == addrSelW; // @[DcacheStage.scala 117:46]
  wire  _tagBypassData_T_3 = _pipeStage1Valid_T & tagEnW_0 & _isTagBypass_T; // @[DcacheStage.scala 118:70]
  wire  _isDatBypass_T_1 = datEnW_0 & _isTagBypass_T; // @[DcacheStage.scala 119:46]
  reg  isDatBypass; // @[Reg.scala 19:16]
  wire  _datBypassData_T_3 = _pipeStage1Valid_T & datEnW_0 & _isTagBypass_T; // @[DcacheStage.scala 120:70]
  reg [7:0] datBypassData__0; // @[Reg.scala 19:16]
  reg [7:0] datBypassData__1; // @[Reg.scala 19:16]
  reg [7:0] datBypassData__2; // @[Reg.scala 19:16]
  reg [7:0] datBypassData__3; // @[Reg.scala 19:16]
  reg [7:0] datBypassData__4; // @[Reg.scala 19:16]
  reg [7:0] datBypassData__5; // @[Reg.scala 19:16]
  reg [7:0] datBypassData__6; // @[Reg.scala 19:16]
  reg [7:0] datBypassData__7; // @[Reg.scala 19:16]
  reg [7:0] datBypassData__8; // @[Reg.scala 19:16]
  reg [7:0] datBypassData__9; // @[Reg.scala 19:16]
  reg [7:0] datBypassData__10; // @[Reg.scala 19:16]
  reg [7:0] datBypassData__11; // @[Reg.scala 19:16]
  reg [7:0] datBypassData__12; // @[Reg.scala 19:16]
  reg [7:0] datBypassData__13; // @[Reg.scala 19:16]
  reg [7:0] datBypassData__14; // @[Reg.scala 19:16]
  reg [7:0] datBypassData__15; // @[Reg.scala 19:16]
  wire [127:0] _dataW_T_44 = pipeStage1Bits_fun_grant ? pipeStage1Bits_wdata : 128'h0; // @[Mux.scala 27:73]
  wire [127:0] _dataW_T_45 = _cbSel_T_34 ? pipeStage1Bits_wdata : 128'h0; // @[Mux.scala 27:73]
  wire [127:0] _dataW_T_61 = _dataW_T_44 | _dataW_T_45; // @[Mux.scala 27:73]
  wire [127:0] _dataW_T_46 = _cbSel_T_17 ? pipeStage1Bits_wdata : 128'h0; // @[Mux.scala 27:73]
  wire [127:0] _dataW_T_62 = _dataW_T_61 | _dataW_T_46; // @[Mux.scala 27:73]
  wire  _dataW_T_6 = pipeStage1Bits_fun_amoswap_w | pipeStage1Bits_fun_amoswap_d; // @[DcacheStage.scala 202:37]
  wire [3:0] _amo_reAlign_64_a_align_data_T_2 = {pipeStage1Bits_paddr[3], 3'h0}; // @[Util.scala 147:62]
  wire [6:0] _amo_reAlign_64_a_align_data_T_3 = {_amo_reAlign_64_a_align_data_T_2, 3'h0}; // @[Util.scala 147:72]
  wire [127:0] _amo_reAlign_64_a_align_data_T_4 = pipeStage1Bits_wdata >> _amo_reAlign_64_a_align_data_T_3; // @[Util.scala 147:26]
  wire [63:0] amo_reAlign_64_a_align_data = _amo_reAlign_64_a_align_data_T_4[63:0]; // @[Util.scala 145:26 147:18]
  wire [190:0] _GEN_373 = {{127'd0}, amo_reAlign_64_a_align_data}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_4 = _GEN_373 << _amo_reAlign_64_a_align_data_T_3; // @[Util.scala 149:26]
  wire [127:0] dataW_align_data = _dataW_align_data_T_4[127:0]; // @[Util.scala 145:26 149:18]
  wire [127:0] _dataW_T_47 = _dataW_T_6 ? dataW_align_data : 128'h0; // @[Mux.scala 27:73]
  wire [127:0] _dataW_T_63 = _dataW_T_62 | _dataW_T_47; // @[Mux.scala 27:73]
  wire  high_sel = pipeStage1Bits_paddr[2]; // @[DcacheStage.scala 186:39]
  wire [63:0] _dataW_T_8 = {amo_reAlign_64_a_align_data[63:32], 32'h0}; // @[DcacheStage.scala 203:145]
  wire [63:0] _dataW_T_9 = high_sel ? _dataW_T_8 : amo_reAlign_64_a_align_data; // @[DcacheStage.scala 203:111]
  reg  isDatBypass_1; // @[Reg.scala 19:16]
  reg  datBypassWM_1_15; // @[Reg.scala 19:16]
  reg [7:0] datBypassData_1_15; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_1_15 = isDatBypass_1 & datBypassWM_1_15 ? datBypassData_1_15 : datRAM_1_io_datar_15; // @[DcacheStage.scala 136:65]
  reg  datBypassWM__15; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_0_15 = isDatBypass & datBypassWM__15 ? datBypassData__15 : datRAM_0_io_datar_15; // @[DcacheStage.scala 136:65]
  wire [7:0] _GEN_115 = cbSel ? datInfoR_1_15 : datInfoR_0_15; // @[Cat.scala 33:{92,92}]
  reg  datBypassWM_1_14; // @[Reg.scala 19:16]
  reg [7:0] datBypassData_1_14; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_1_14 = isDatBypass_1 & datBypassWM_1_14 ? datBypassData_1_14 : datRAM_1_io_datar_14; // @[DcacheStage.scala 136:65]
  reg  datBypassWM__14; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_0_14 = isDatBypass & datBypassWM__14 ? datBypassData__14 : datRAM_0_io_datar_14; // @[DcacheStage.scala 136:65]
  wire [7:0] _GEN_117 = cbSel ? datInfoR_1_14 : datInfoR_0_14; // @[Cat.scala 33:{92,92}]
  reg  datBypassWM_1_13; // @[Reg.scala 19:16]
  reg [7:0] datBypassData_1_13; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_1_13 = isDatBypass_1 & datBypassWM_1_13 ? datBypassData_1_13 : datRAM_1_io_datar_13; // @[DcacheStage.scala 136:65]
  reg  datBypassWM__13; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_0_13 = isDatBypass & datBypassWM__13 ? datBypassData__13 : datRAM_0_io_datar_13; // @[DcacheStage.scala 136:65]
  wire [7:0] _GEN_111 = cbSel ? datInfoR_1_13 : datInfoR_0_13; // @[Cat.scala 33:{92,92}]
  reg  datBypassWM_1_12; // @[Reg.scala 19:16]
  reg [7:0] datBypassData_1_12; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_1_12 = isDatBypass_1 & datBypassWM_1_12 ? datBypassData_1_12 : datRAM_1_io_datar_12; // @[DcacheStage.scala 136:65]
  reg  datBypassWM__12; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_0_12 = isDatBypass & datBypassWM__12 ? datBypassData__12 : datRAM_0_io_datar_12; // @[DcacheStage.scala 136:65]
  wire [7:0] _GEN_113 = cbSel ? datInfoR_1_12 : datInfoR_0_12; // @[Cat.scala 33:{92,92}]
  reg  datBypassWM_1_11; // @[Reg.scala 19:16]
  reg [7:0] datBypassData_1_11; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_1_11 = isDatBypass_1 & datBypassWM_1_11 ? datBypassData_1_11 : datRAM_1_io_datar_11; // @[DcacheStage.scala 136:65]
  reg  datBypassWM__11; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_0_11 = isDatBypass & datBypassWM__11 ? datBypassData__11 : datRAM_0_io_datar_11; // @[DcacheStage.scala 136:65]
  wire [7:0] _GEN_107 = cbSel ? datInfoR_1_11 : datInfoR_0_11; // @[Cat.scala 33:{92,92}]
  reg  datBypassWM_1_10; // @[Reg.scala 19:16]
  reg [7:0] datBypassData_1_10; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_1_10 = isDatBypass_1 & datBypassWM_1_10 ? datBypassData_1_10 : datRAM_1_io_datar_10; // @[DcacheStage.scala 136:65]
  reg  datBypassWM__10; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_0_10 = isDatBypass & datBypassWM__10 ? datBypassData__10 : datRAM_0_io_datar_10; // @[DcacheStage.scala 136:65]
  wire [7:0] _GEN_109 = cbSel ? datInfoR_1_10 : datInfoR_0_10; // @[Cat.scala 33:{92,92}]
  reg  datBypassWM_1_9; // @[Reg.scala 19:16]
  reg [7:0] datBypassData_1_9; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_1_9 = isDatBypass_1 & datBypassWM_1_9 ? datBypassData_1_9 : datRAM_1_io_datar_9; // @[DcacheStage.scala 136:65]
  reg  datBypassWM__9; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_0_9 = isDatBypass & datBypassWM__9 ? datBypassData__9 : datRAM_0_io_datar_9; // @[DcacheStage.scala 136:65]
  wire [7:0] _GEN_103 = cbSel ? datInfoR_1_9 : datInfoR_0_9; // @[Cat.scala 33:{92,92}]
  reg  datBypassWM_1_8; // @[Reg.scala 19:16]
  reg [7:0] datBypassData_1_8; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_1_8 = isDatBypass_1 & datBypassWM_1_8 ? datBypassData_1_8 : datRAM_1_io_datar_8; // @[DcacheStage.scala 136:65]
  reg  datBypassWM__8; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_0_8 = isDatBypass & datBypassWM__8 ? datBypassData__8 : datRAM_0_io_datar_8; // @[DcacheStage.scala 136:65]
  wire [7:0] _GEN_105 = cbSel ? datInfoR_1_8 : datInfoR_0_8; // @[Cat.scala 33:{92,92}]
  reg  datBypassWM_1_7; // @[Reg.scala 19:16]
  reg [7:0] datBypassData_1_7; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_1_7 = isDatBypass_1 & datBypassWM_1_7 ? datBypassData_1_7 : datRAM_1_io_datar_7; // @[DcacheStage.scala 136:65]
  reg  datBypassWM__7; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_0_7 = isDatBypass & datBypassWM__7 ? datBypassData__7 : datRAM_0_io_datar_7; // @[DcacheStage.scala 136:65]
  wire [7:0] _GEN_99 = cbSel ? datInfoR_1_7 : datInfoR_0_7; // @[Cat.scala 33:{92,92}]
  reg  datBypassWM_1_6; // @[Reg.scala 19:16]
  reg [7:0] datBypassData_1_6; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_1_6 = isDatBypass_1 & datBypassWM_1_6 ? datBypassData_1_6 : datRAM_1_io_datar_6; // @[DcacheStage.scala 136:65]
  reg  datBypassWM__6; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_0_6 = isDatBypass & datBypassWM__6 ? datBypassData__6 : datRAM_0_io_datar_6; // @[DcacheStage.scala 136:65]
  wire [7:0] _GEN_101 = cbSel ? datInfoR_1_6 : datInfoR_0_6; // @[Cat.scala 33:{92,92}]
  reg  datBypassWM_1_5; // @[Reg.scala 19:16]
  reg [7:0] datBypassData_1_5; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_1_5 = isDatBypass_1 & datBypassWM_1_5 ? datBypassData_1_5 : datRAM_1_io_datar_5; // @[DcacheStage.scala 136:65]
  reg  datBypassWM__5; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_0_5 = isDatBypass & datBypassWM__5 ? datBypassData__5 : datRAM_0_io_datar_5; // @[DcacheStage.scala 136:65]
  wire [7:0] _GEN_95 = cbSel ? datInfoR_1_5 : datInfoR_0_5; // @[Cat.scala 33:{92,92}]
  reg  datBypassWM_1_4; // @[Reg.scala 19:16]
  reg [7:0] datBypassData_1_4; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_1_4 = isDatBypass_1 & datBypassWM_1_4 ? datBypassData_1_4 : datRAM_1_io_datar_4; // @[DcacheStage.scala 136:65]
  reg  datBypassWM__4; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_0_4 = isDatBypass & datBypassWM__4 ? datBypassData__4 : datRAM_0_io_datar_4; // @[DcacheStage.scala 136:65]
  wire [7:0] _GEN_97 = cbSel ? datInfoR_1_4 : datInfoR_0_4; // @[Cat.scala 33:{92,92}]
  reg  datBypassWM_1_3; // @[Reg.scala 19:16]
  reg [7:0] datBypassData_1_3; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_1_3 = isDatBypass_1 & datBypassWM_1_3 ? datBypassData_1_3 : datRAM_1_io_datar_3; // @[DcacheStage.scala 136:65]
  reg  datBypassWM__3; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_0_3 = isDatBypass & datBypassWM__3 ? datBypassData__3 : datRAM_0_io_datar_3; // @[DcacheStage.scala 136:65]
  wire [7:0] _GEN_91 = cbSel ? datInfoR_1_3 : datInfoR_0_3; // @[Cat.scala 33:{92,92}]
  reg  datBypassWM_1_2; // @[Reg.scala 19:16]
  reg [7:0] datBypassData_1_2; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_1_2 = isDatBypass_1 & datBypassWM_1_2 ? datBypassData_1_2 : datRAM_1_io_datar_2; // @[DcacheStage.scala 136:65]
  reg  datBypassWM__2; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_0_2 = isDatBypass & datBypassWM__2 ? datBypassData__2 : datRAM_0_io_datar_2; // @[DcacheStage.scala 136:65]
  wire [7:0] _GEN_93 = cbSel ? datInfoR_1_2 : datInfoR_0_2; // @[Cat.scala 33:{92,92}]
  reg  datBypassWM_1_1; // @[Reg.scala 19:16]
  reg [7:0] datBypassData_1_1; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_1_1 = isDatBypass_1 & datBypassWM_1_1 ? datBypassData_1_1 : datRAM_1_io_datar_1; // @[DcacheStage.scala 136:65]
  reg  datBypassWM__1; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_0_1 = isDatBypass & datBypassWM__1 ? datBypassData__1 : datRAM_0_io_datar_1; // @[DcacheStage.scala 136:65]
  wire [7:0] _GEN_87 = cbSel ? datInfoR_1_1 : datInfoR_0_1; // @[Cat.scala 33:{92,92}]
  reg  datBypassWM_1_0; // @[Reg.scala 19:16]
  reg [7:0] datBypassData_1_0; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_1_0 = isDatBypass_1 & datBypassWM_1_0 ? datBypassData_1_0 : datRAM_1_io_datar_0; // @[DcacheStage.scala 136:65]
  reg  datBypassWM__0; // @[Reg.scala 19:16]
  wire [7:0] datInfoR_0_0 = isDatBypass & datBypassWM__0 ? datBypassData__0 : datRAM_0_io_datar_0; // @[DcacheStage.scala 136:65]
  wire [7:0] _GEN_89 = cbSel ? datInfoR_1_0 : datInfoR_0_0; // @[Cat.scala 33:{92,92}]
  wire [63:0] amo_reAlign_64_b_lo = {_GEN_99,_GEN_101,_GEN_95,_GEN_97,_GEN_91,_GEN_93,_GEN_87,_GEN_89}; // @[Cat.scala 33:92]
  wire [127:0] _amo_reAlign_64_b_T = {_GEN_115,_GEN_117,_GEN_111,_GEN_113,_GEN_107,_GEN_109,_GEN_103,_GEN_105,
    amo_reAlign_64_b_lo}; // @[Cat.scala 33:92]
  wire [127:0] _amo_reAlign_64_b_align_data_T_4 = _amo_reAlign_64_b_T >> _amo_reAlign_64_a_align_data_T_3; // @[Util.scala 147:26]
  wire [63:0] amo_reAlign_64_b_align_data = _amo_reAlign_64_b_align_data_T_4[63:0]; // @[Util.scala 145:26 147:18]
  wire [63:0] _dataW_T_11 = _dataW_T_9 + amo_reAlign_64_b_align_data; // @[DcacheStage.scala 203:170]
  wire [190:0] _GEN_374 = {{127'd0}, _dataW_T_11}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_9 = _GEN_374 << _amo_reAlign_64_a_align_data_T_3; // @[Util.scala 149:26]
  wire [127:0] dataW_align_data_1 = _dataW_align_data_T_9[127:0]; // @[Util.scala 145:26 149:18]
  wire [127:0] _dataW_T_48 = pipeStage1Bits_fun_amoadd_w ? dataW_align_data_1 : 128'h0; // @[Mux.scala 27:73]
  wire [127:0] _dataW_T_64 = _dataW_T_63 | _dataW_T_48; // @[Mux.scala 27:73]
  wire [63:0] _dataW_T_13 = amo_reAlign_64_a_align_data + amo_reAlign_64_b_align_data; // @[DcacheStage.scala 204:124]
  wire [190:0] _GEN_375 = {{127'd0}, _dataW_T_13}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_14 = _GEN_375 << _amo_reAlign_64_a_align_data_T_3; // @[Util.scala 149:26]
  wire [127:0] dataW_align_data_2 = _dataW_align_data_T_14[127:0]; // @[Util.scala 145:26 149:18]
  wire [127:0] _dataW_T_49 = pipeStage1Bits_fun_amoadd_d ? dataW_align_data_2 : 128'h0; // @[Mux.scala 27:73]
  wire [127:0] _dataW_T_65 = _dataW_T_64 | _dataW_T_49; // @[Mux.scala 27:73]
  wire  _dataW_T_14 = pipeStage1Bits_fun_amoxor_w | pipeStage1Bits_fun_amoxor_d; // @[DcacheStage.scala 205:37]
  wire [63:0] _dataW_T_15 = amo_reAlign_64_a_align_data ^ amo_reAlign_64_b_align_data; // @[DcacheStage.scala 205:124]
  wire [190:0] _GEN_376 = {{127'd0}, _dataW_T_15}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_19 = _GEN_376 << _amo_reAlign_64_a_align_data_T_3; // @[Util.scala 149:26]
  wire [127:0] dataW_align_data_3 = _dataW_align_data_T_19[127:0]; // @[Util.scala 145:26 149:18]
  wire [127:0] _dataW_T_50 = _dataW_T_14 ? dataW_align_data_3 : 128'h0; // @[Mux.scala 27:73]
  wire [127:0] _dataW_T_66 = _dataW_T_65 | _dataW_T_50; // @[Mux.scala 27:73]
  wire  _dataW_T_16 = pipeStage1Bits_fun_amoand_w | pipeStage1Bits_fun_amoand_d; // @[DcacheStage.scala 206:37]
  wire [63:0] _dataW_T_17 = amo_reAlign_64_a_align_data & amo_reAlign_64_b_align_data; // @[DcacheStage.scala 206:124]
  wire [190:0] _GEN_377 = {{127'd0}, _dataW_T_17}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_24 = _GEN_377 << _amo_reAlign_64_a_align_data_T_3; // @[Util.scala 149:26]
  wire [127:0] dataW_align_data_4 = _dataW_align_data_T_24[127:0]; // @[Util.scala 145:26 149:18]
  wire [127:0] _dataW_T_51 = _dataW_T_16 ? dataW_align_data_4 : 128'h0; // @[Mux.scala 27:73]
  wire [127:0] _dataW_T_67 = _dataW_T_66 | _dataW_T_51; // @[Mux.scala 27:73]
  wire  _dataW_T_18 = pipeStage1Bits_fun_amoor_w | pipeStage1Bits_fun_amoor_d; // @[DcacheStage.scala 207:37]
  wire [63:0] _dataW_T_19 = amo_reAlign_64_a_align_data | amo_reAlign_64_b_align_data; // @[DcacheStage.scala 207:124]
  wire [190:0] _GEN_378 = {{127'd0}, _dataW_T_19}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_29 = _GEN_378 << _amo_reAlign_64_a_align_data_T_3; // @[Util.scala 149:26]
  wire [127:0] dataW_align_data_5 = _dataW_align_data_T_29[127:0]; // @[Util.scala 145:26 149:18]
  wire [127:0] _dataW_T_52 = _dataW_T_18 ? dataW_align_data_5 : 128'h0; // @[Mux.scala 27:73]
  wire [127:0] _dataW_T_68 = _dataW_T_67 | _dataW_T_52; // @[Mux.scala 27:73]
  wire [31:0] cmp_a_sel = high_sel ? amo_reAlign_64_a_align_data[63:32] : amo_reAlign_64_a_align_data[31:0]; // @[DcacheStage.scala 193:22]
  wire [31:0] _dataW_T_20 = high_sel ? amo_reAlign_64_a_align_data[63:32] : amo_reAlign_64_a_align_data[31:0]; // @[DcacheStage.scala 210:89]
  wire [31:0] cmp_b_sel = high_sel ? amo_reAlign_64_b_align_data[63:32] : amo_reAlign_64_b_align_data[31:0]; // @[DcacheStage.scala 194:22]
  wire [31:0] _dataW_T_21 = high_sel ? amo_reAlign_64_b_align_data[63:32] : amo_reAlign_64_b_align_data[31:0]; // @[DcacheStage.scala 210:115]
  wire  _dataW_T_22 = $signed(_dataW_T_20) < $signed(_dataW_T_21); // @[DcacheStage.scala 210:103]
  wire [63:0] _dataW_T_23 = $signed(_dataW_T_20) < $signed(_dataW_T_21) ? amo_reAlign_64_a_align_data :
    amo_reAlign_64_b_align_data; // @[DcacheStage.scala 210:78]
  wire [190:0] _GEN_379 = {{127'd0}, _dataW_T_23}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_34 = _GEN_379 << _amo_reAlign_64_a_align_data_T_3; // @[Util.scala 149:26]
  wire [127:0] dataW_align_data_6 = _dataW_align_data_T_34[127:0]; // @[Util.scala 145:26 149:18]
  wire [127:0] _dataW_T_53 = pipeStage1Bits_fun_amomin_w ? dataW_align_data_6 : 128'h0; // @[Mux.scala 27:73]
  wire [127:0] _dataW_T_69 = _dataW_T_68 | _dataW_T_53; // @[Mux.scala 27:73]
  wire [63:0] _dataW_T_24 = _amo_reAlign_64_a_align_data_T_4[63:0]; // @[DcacheStage.scala 211:96]
  wire [63:0] _dataW_T_25 = _amo_reAlign_64_b_align_data_T_4[63:0]; // @[DcacheStage.scala 211:122]
  wire  _dataW_T_26 = $signed(_dataW_T_24) < $signed(_dataW_T_25); // @[DcacheStage.scala 211:103]
  wire [63:0] _dataW_T_27 = $signed(_dataW_T_24) < $signed(_dataW_T_25) ? amo_reAlign_64_a_align_data :
    amo_reAlign_64_b_align_data; // @[DcacheStage.scala 211:78]
  wire [190:0] _GEN_380 = {{127'd0}, _dataW_T_27}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_39 = _GEN_380 << _amo_reAlign_64_a_align_data_T_3; // @[Util.scala 149:26]
  wire [127:0] dataW_align_data_7 = _dataW_align_data_T_39[127:0]; // @[Util.scala 145:26 149:18]
  wire [127:0] _dataW_T_54 = pipeStage1Bits_fun_amomin_d ? dataW_align_data_7 : 128'h0; // @[Mux.scala 27:73]
  wire [127:0] _dataW_T_70 = _dataW_T_69 | _dataW_T_54; // @[Mux.scala 27:73]
  wire [63:0] _dataW_T_31 = _dataW_T_22 ? amo_reAlign_64_b_align_data : amo_reAlign_64_a_align_data; // @[DcacheStage.scala 212:78]
  wire [190:0] _GEN_381 = {{127'd0}, _dataW_T_31}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_44 = _GEN_381 << _amo_reAlign_64_a_align_data_T_3; // @[Util.scala 149:26]
  wire [127:0] dataW_align_data_8 = _dataW_align_data_T_44[127:0]; // @[Util.scala 145:26 149:18]
  wire [127:0] _dataW_T_55 = pipeStage1Bits_fun_amomax_w ? dataW_align_data_8 : 128'h0; // @[Mux.scala 27:73]
  wire [127:0] _dataW_T_71 = _dataW_T_70 | _dataW_T_55; // @[Mux.scala 27:73]
  wire [63:0] _dataW_T_35 = _dataW_T_26 ? amo_reAlign_64_b_align_data : amo_reAlign_64_a_align_data; // @[DcacheStage.scala 213:78]
  wire [190:0] _GEN_382 = {{127'd0}, _dataW_T_35}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_49 = _GEN_382 << _amo_reAlign_64_a_align_data_T_3; // @[Util.scala 149:26]
  wire [127:0] dataW_align_data_9 = _dataW_align_data_T_49[127:0]; // @[Util.scala 145:26 149:18]
  wire [127:0] _dataW_T_56 = pipeStage1Bits_fun_amomax_d ? dataW_align_data_9 : 128'h0; // @[Mux.scala 27:73]
  wire [127:0] _dataW_T_72 = _dataW_T_71 | _dataW_T_56; // @[Mux.scala 27:73]
  wire  _dataW_T_36 = cmp_a_sel < cmp_b_sel; // @[DcacheStage.scala 214:103]
  wire [63:0] _dataW_T_37 = cmp_a_sel < cmp_b_sel ? amo_reAlign_64_a_align_data : amo_reAlign_64_b_align_data; // @[DcacheStage.scala 214:78]
  wire [190:0] _GEN_383 = {{127'd0}, _dataW_T_37}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_54 = _GEN_383 << _amo_reAlign_64_a_align_data_T_3; // @[Util.scala 149:26]
  wire [127:0] dataW_align_data_10 = _dataW_align_data_T_54[127:0]; // @[Util.scala 145:26 149:18]
  wire [127:0] _dataW_T_57 = pipeStage1Bits_fun_amominu_w ? dataW_align_data_10 : 128'h0; // @[Mux.scala 27:73]
  wire [127:0] _dataW_T_73 = _dataW_T_72 | _dataW_T_57; // @[Mux.scala 27:73]
  wire  _dataW_T_38 = amo_reAlign_64_a_align_data < amo_reAlign_64_b_align_data; // @[DcacheStage.scala 215:103]
  wire [63:0] _dataW_T_39 = amo_reAlign_64_a_align_data < amo_reAlign_64_b_align_data ? amo_reAlign_64_a_align_data :
    amo_reAlign_64_b_align_data; // @[DcacheStage.scala 215:78]
  wire [190:0] _GEN_384 = {{127'd0}, _dataW_T_39}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_59 = _GEN_384 << _amo_reAlign_64_a_align_data_T_3; // @[Util.scala 149:26]
  wire [127:0] dataW_align_data_11 = _dataW_align_data_T_59[127:0]; // @[Util.scala 145:26 149:18]
  wire [127:0] _dataW_T_58 = pipeStage1Bits_fun_amominu_d ? dataW_align_data_11 : 128'h0; // @[Mux.scala 27:73]
  wire [127:0] _dataW_T_74 = _dataW_T_73 | _dataW_T_58; // @[Mux.scala 27:73]
  wire [63:0] _dataW_T_41 = _dataW_T_36 ? amo_reAlign_64_b_align_data : amo_reAlign_64_a_align_data; // @[DcacheStage.scala 216:78]
  wire [190:0] _GEN_385 = {{127'd0}, _dataW_T_41}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_64 = _GEN_385 << _amo_reAlign_64_a_align_data_T_3; // @[Util.scala 149:26]
  wire [127:0] dataW_align_data_12 = _dataW_align_data_T_64[127:0]; // @[Util.scala 145:26 149:18]
  wire [127:0] _dataW_T_59 = pipeStage1Bits_fun_amomaxu_w ? dataW_align_data_12 : 128'h0; // @[Mux.scala 27:73]
  wire [127:0] _dataW_T_75 = _dataW_T_74 | _dataW_T_59; // @[Mux.scala 27:73]
  wire [63:0] _dataW_T_43 = _dataW_T_38 ? amo_reAlign_64_b_align_data : amo_reAlign_64_a_align_data; // @[DcacheStage.scala 217:78]
  wire [190:0] _GEN_386 = {{127'd0}, _dataW_T_43}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_69 = _GEN_386 << _amo_reAlign_64_a_align_data_T_3; // @[Util.scala 149:26]
  wire [127:0] dataW_align_data_13 = _dataW_align_data_T_69[127:0]; // @[Util.scala 145:26 149:18]
  wire [127:0] _dataW_T_60 = pipeStage1Bits_fun_amomaxu_d ? dataW_align_data_13 : 128'h0; // @[Mux.scala 27:73]
  wire [127:0] dataW = _dataW_T_75 | _dataW_T_60; // @[Mux.scala 27:73]
  wire [7:0] datInfoW_0 = dataW[7:0]; // @[DcacheStage.scala 222:60]
  wire [7:0] datInfoW_1 = dataW[15:8]; // @[DcacheStage.scala 222:60]
  wire [7:0] datInfoW_2 = dataW[23:16]; // @[DcacheStage.scala 222:60]
  wire [7:0] datInfoW_3 = dataW[31:24]; // @[DcacheStage.scala 222:60]
  wire [7:0] datInfoW_4 = dataW[39:32]; // @[DcacheStage.scala 222:60]
  wire [7:0] datInfoW_5 = dataW[47:40]; // @[DcacheStage.scala 222:60]
  wire [7:0] datInfoW_6 = dataW[55:48]; // @[DcacheStage.scala 222:60]
  wire [7:0] datInfoW_7 = dataW[63:56]; // @[DcacheStage.scala 222:60]
  wire [7:0] datInfoW_8 = dataW[71:64]; // @[DcacheStage.scala 222:60]
  wire [7:0] datInfoW_9 = dataW[79:72]; // @[DcacheStage.scala 222:60]
  wire [7:0] datInfoW_10 = dataW[87:80]; // @[DcacheStage.scala 222:60]
  wire [7:0] datInfoW_11 = dataW[95:88]; // @[DcacheStage.scala 222:60]
  wire [7:0] datInfoW_12 = dataW[103:96]; // @[DcacheStage.scala 222:60]
  wire [7:0] datInfoW_13 = dataW[111:104]; // @[DcacheStage.scala 222:60]
  wire [7:0] datInfoW_14 = dataW[119:112]; // @[DcacheStage.scala 222:60]
  wire [7:0] datInfoW_15 = dataW[127:120]; // @[DcacheStage.scala 222:60]
  wire  _isTagBypass_T_4 = tagEnW_1 & addrSelR == addrSelW; // @[DcacheStage.scala 117:46]
  wire  _tagBypassData_T_7 = _pipeStage1Valid_T & tagEnW_1 & _isTagBypass_T; // @[DcacheStage.scala 118:70]
  wire  _isDatBypass_T_4 = datEnW_1 & _isTagBypass_T; // @[DcacheStage.scala 119:46]
  wire  _datBypassData_T_7 = _pipeStage1Valid_T & datEnW_1 & _isTagBypass_T; // @[DcacheStage.scala 120:70]
  reg  killTrans; // @[DcacheStage.scala 146:26]
  wire  _T_124 = io_flush | killTrans; // @[DcacheStage.scala 157:18]
  wire  _T_165 = pipeStage1Valid & _cbSel_T_39; // @[DcacheStage.scala 159:32]
  wire  _T_166 = pipeStage1Valid & _cbSel_T_39 & isHit; // @[DcacheStage.scala 159:63]
  wire  _T_199 = ~reset; // @[DcacheStage.scala 164:13]
  wire  _T_228 = _cbSel_T_17 | _cbSel_T_27; // @[riscv_isa.scala 146:23]
  wire  _GEN_70 = tagInfoW == lr_addr[31:6] ? 1'h0 : is_pending_lr; // @[DcacheStage.scala 168:55 169:23 147:30]
  wire  _GEN_71 = _cbSel_T_34 | _cbSel_T_18 & ~_T_228 ? _GEN_70 : is_pending_lr; // @[DcacheStage.scala 167:107 147:30]
  wire  _GEN_72 = _cbSel_T_17 ? 1'h0 : _GEN_71; // @[DcacheStage.scala 165:45 166:21]
  wire  _GEN_73 = _cbSel_T_27 | _GEN_72; // @[DcacheStage.scala 160:38 161:21]
  wire  _T_234 = pipeStage1Valid & pipeStage1Bits_fun_probe; // @[DcacheStage.scala 172:32]
  wire  _GEN_84 = io_isCacheEmpty ? 1'h0 : killTrans; // @[DcacheStage.scala 180:34 181:15 146:26]
  wire  _GEN_85 = io_flush | _GEN_84; // @[DcacheStage.scala 178:20 179:15]
  wire  _GEN_244 = 2'h0 == addrSelW; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_246 = 2'h0 == addrSelW & _datEnW_0_T; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_118 = 2'h0 == addrSelW & _datEnW_0_T | isCBValid_0_0; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_285 = 2'h0 == addrSelW & cbSel; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_119 = 2'h0 == addrSelW & cbSel | isCBValid_0_1; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_286 = 2'h1 == addrSelW; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_288 = 2'h1 == addrSelW & _datEnW_0_T; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_120 = 2'h1 == addrSelW & _datEnW_0_T | isCBValid_1_0; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_290 = 2'h1 == addrSelW & cbSel; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_121 = 2'h1 == addrSelW & cbSel | isCBValid_1_1; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_291 = 2'h2 == addrSelW; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_293 = 2'h2 == addrSelW & _datEnW_0_T; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_122 = 2'h2 == addrSelW & _datEnW_0_T | isCBValid_2_0; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_295 = 2'h2 == addrSelW & cbSel; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_123 = 2'h2 == addrSelW & cbSel | isCBValid_2_1; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_296 = 2'h3 == addrSelW; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_298 = 2'h3 == addrSelW & _datEnW_0_T; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_124 = 2'h3 == addrSelW & _datEnW_0_T | isCBValid_3_0; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_300 = 2'h3 == addrSelW & cbSel; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_125 = 2'h3 == addrSelW & cbSel | isCBValid_3_1; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_126 = _GEN_244 & _datEnW_0_T ? 1'h0 : isCBDirty_0_0; // @[DcacheStage.scala 229:{34,34} 86:26]
  wire  _GEN_127 = _GEN_244 & cbSel ? 1'h0 : isCBDirty_0_1; // @[DcacheStage.scala 229:{34,34} 86:26]
  wire  _GEN_128 = _GEN_286 & _datEnW_0_T ? 1'h0 : isCBDirty_1_0; // @[DcacheStage.scala 229:{34,34} 86:26]
  wire  _GEN_129 = _GEN_286 & cbSel ? 1'h0 : isCBDirty_1_1; // @[DcacheStage.scala 229:{34,34} 86:26]
  wire  _GEN_130 = _GEN_291 & _datEnW_0_T ? 1'h0 : isCBDirty_2_0; // @[DcacheStage.scala 229:{34,34} 86:26]
  wire  _GEN_131 = _GEN_291 & cbSel ? 1'h0 : isCBDirty_2_1; // @[DcacheStage.scala 229:{34,34} 86:26]
  wire  _GEN_132 = _GEN_296 & _datEnW_0_T ? 1'h0 : isCBDirty_3_0; // @[DcacheStage.scala 229:{34,34} 86:26]
  wire  _GEN_133 = _GEN_296 & cbSel ? 1'h0 : isCBDirty_3_1; // @[DcacheStage.scala 229:{34,34} 86:26]
  wire  _GEN_134 = pipeStage1Bits_fun_grant ? _GEN_118 : isCBValid_0_0; // @[DcacheStage.scala 227:38 84:26]
  wire  _GEN_135 = pipeStage1Bits_fun_grant ? _GEN_119 : isCBValid_0_1; // @[DcacheStage.scala 227:38 84:26]
  wire  _GEN_136 = pipeStage1Bits_fun_grant ? _GEN_120 : isCBValid_1_0; // @[DcacheStage.scala 227:38 84:26]
  wire  _GEN_137 = pipeStage1Bits_fun_grant ? _GEN_121 : isCBValid_1_1; // @[DcacheStage.scala 227:38 84:26]
  wire  _GEN_138 = pipeStage1Bits_fun_grant ? _GEN_122 : isCBValid_2_0; // @[DcacheStage.scala 227:38 84:26]
  wire  _GEN_139 = pipeStage1Bits_fun_grant ? _GEN_123 : isCBValid_2_1; // @[DcacheStage.scala 227:38 84:26]
  wire  _GEN_140 = pipeStage1Bits_fun_grant ? _GEN_124 : isCBValid_3_0; // @[DcacheStage.scala 227:38 84:26]
  wire  _GEN_141 = pipeStage1Bits_fun_grant ? _GEN_125 : isCBValid_3_1; // @[DcacheStage.scala 227:38 84:26]
  wire  _GEN_142 = pipeStage1Bits_fun_grant ? _GEN_126 : isCBDirty_0_0; // @[DcacheStage.scala 227:38 86:26]
  wire  _GEN_143 = pipeStage1Bits_fun_grant ? _GEN_127 : isCBDirty_0_1; // @[DcacheStage.scala 227:38 86:26]
  wire  _GEN_144 = pipeStage1Bits_fun_grant ? _GEN_128 : isCBDirty_1_0; // @[DcacheStage.scala 227:38 86:26]
  wire  _GEN_145 = pipeStage1Bits_fun_grant ? _GEN_129 : isCBDirty_1_1; // @[DcacheStage.scala 227:38 86:26]
  wire  _GEN_146 = pipeStage1Bits_fun_grant ? _GEN_130 : isCBDirty_2_0; // @[DcacheStage.scala 227:38 86:26]
  wire  _GEN_147 = pipeStage1Bits_fun_grant ? _GEN_131 : isCBDirty_2_1; // @[DcacheStage.scala 227:38 86:26]
  wire  _GEN_148 = pipeStage1Bits_fun_grant ? _GEN_132 : isCBDirty_3_0; // @[DcacheStage.scala 227:38 86:26]
  wire  _GEN_149 = pipeStage1Bits_fun_grant ? _GEN_133 : isCBDirty_3_1; // @[DcacheStage.scala 227:38 86:26]
  wire  _GEN_150 = _GEN_246 | _GEN_142; // @[DcacheStage.scala 232:{34,34}]
  wire  _GEN_151 = _GEN_285 | _GEN_143; // @[DcacheStage.scala 232:{34,34}]
  wire  _GEN_152 = _GEN_288 | _GEN_144; // @[DcacheStage.scala 232:{34,34}]
  wire  _GEN_153 = _GEN_290 | _GEN_145; // @[DcacheStage.scala 232:{34,34}]
  wire  _GEN_154 = _GEN_293 | _GEN_146; // @[DcacheStage.scala 232:{34,34}]
  wire  _GEN_155 = _GEN_295 | _GEN_147; // @[DcacheStage.scala 232:{34,34}]
  wire  _GEN_156 = _GEN_298 | _GEN_148; // @[DcacheStage.scala 232:{34,34}]
  wire  _GEN_157 = _GEN_300 | _GEN_149; // @[DcacheStage.scala 232:{34,34}]
  wire [1:0] _T_281 = res_0 + res_1; // @[Bitwise.scala 51:90]
  wire  _T_287 = ~isHit; // @[DcacheStage.scala 283:46]
  reg  missUnitReqValid; // @[DcacheStage.scala 291:33]
  reg [31:0] missUnitReqPaddr; // @[DcacheStage.scala 292:29]
  wire  _T_333 = pipeStage1Valid & (_cbSel_T_39 | pipeStage1Bits_fun_preft) & _T_287; // @[DcacheStage.scala 297:87]
  wire [31:0] _missUnitReqPaddr_T = {{4'd0}, pipeStage1Bits_paddr[31:4]}; // @[DcacheStage.scala 299:46]
  wire [35:0] _GEN_346 = {_missUnitReqPaddr_T, 4'h0}; // @[DcacheStage.scala 299:60]
  wire [38:0] _missUnitReqPaddr_T_1 = {{3'd0}, _GEN_346}; // @[DcacheStage.scala 299:60]
  wire [38:0] _GEN_207 = pipeStage1Valid & (_cbSel_T_39 | pipeStage1Bits_fun_preft) & _T_287 ? _missUnitReqPaddr_T_1 :
    {{7'd0}, missUnitReqPaddr}; // @[DcacheStage.scala 297:102 299:22 292:29]
  reg  wbReqValid; // @[DcacheStage.scala 307:27]
  reg [31:0] wbReqPaddr; // @[DcacheStage.scala 308:23]
  reg [127:0] wbReqData; // @[DcacheStage.scala 309:23]
  reg  wbReqisData; // @[DcacheStage.scala 310:24]
  reg  isPb; // @[DcacheStage.scala 311:24]
  wire  _io_wb_req_bits_is_releaseData_T = ~isPb; // @[DcacheStage.scala 317:51]
  wire  _io_wb_req_bits_is_release_T = ~wbReqisData; // @[DcacheStage.scala 318:36]
  wire [25:0] _GEN_209 = cbSel ? tagInfoR_1 : tagInfoR_0; // @[Cat.scala 33:{92,92}]
  wire [31:0] _wbReqPaddr_T = {_GEN_209,addrSelW,4'h0}; // @[Cat.scala 33:92]
  wire  _GEN_211 = _GEN_244 & cbSel ? isCBDirty_0_1 : isCBDirty_0_0; // @[DcacheStage.scala 326:{17,17}]
  wire  _GEN_212 = _GEN_286 & _datEnW_0_T ? isCBDirty_1_0 : _GEN_211; // @[DcacheStage.scala 326:{17,17}]
  wire  _GEN_213 = _GEN_286 & cbSel ? isCBDirty_1_1 : _GEN_212; // @[DcacheStage.scala 326:{17,17}]
  wire  _GEN_214 = _GEN_291 & _datEnW_0_T ? isCBDirty_2_0 : _GEN_213; // @[DcacheStage.scala 326:{17,17}]
  wire  _GEN_215 = _GEN_291 & cbSel ? isCBDirty_2_1 : _GEN_214; // @[DcacheStage.scala 326:{17,17}]
  wire  _GEN_216 = _GEN_296 & _datEnW_0_T ? isCBDirty_3_0 : _GEN_215; // @[DcacheStage.scala 326:{17,17}]
  wire  _GEN_217 = _GEN_296 & cbSel ? isCBDirty_3_1 : _GEN_216; // @[DcacheStage.scala 326:{17,17}]
  wire [38:0] _GEN_219 = _T_234 ? _missUnitReqPaddr_T_1 : {{7'd0}, wbReqPaddr}; // @[DcacheStage.scala 328:60 330:17 308:23]
  wire  _GEN_222 = _T_234 | isPb; // @[DcacheStage.scala 328:60 333:17 311:24]
  wire  _GEN_223 = pipeStage1Valid & (pipeStage1Bits_fun_grant & ~rplSel_is_emptyBlock_exist) | _T_234; // @[DcacheStage.scala 322:99 323:17]
  wire [38:0] _GEN_224 = pipeStage1Valid & (pipeStage1Bits_fun_grant & ~rplSel_is_emptyBlock_exist) ? {{7'd0},
    _wbReqPaddr_T} : _GEN_219; // @[DcacheStage.scala 322:99 324:17]
  reg  reloadValid; // @[DcacheStage.scala 347:28]
  reg  reloadBits_chkIdx; // @[DcacheStage.scala 348:24]
  reg [31:0] reloadBits_paddr; // @[DcacheStage.scala 348:24]
  reg [127:0] reloadBits_wdata; // @[DcacheStage.scala 348:24]
  reg [15:0] reloadBits_wstrb; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_lb; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_lh; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_lw; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_ld; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_lbu; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_lhu; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_lwu; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_sb; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_sh; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_sw; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_sd; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_lr_w; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_sc_w; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_amoswap_w; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_amoadd_w; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_amoxor_w; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_amoand_w; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_amoor_w; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_amomin_w; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_amomax_w; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_amominu_w; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_amomaxu_w; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_lr_d; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_sc_d; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_amoswap_d; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_amoadd_d; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_amoxor_d; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_amoand_d; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_amoor_d; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_amomin_d; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_amomax_d; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_amominu_d; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_amomaxu_d; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_flw; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_fsw; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_fld; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_fsd; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_probe; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_grant; // @[DcacheStage.scala 348:24]
  reg  reloadBits_fun_preft; // @[DcacheStage.scala 348:24]
  reg [5:0] reloadBits_rd_rd0; // @[DcacheStage.scala 348:24]
  wire  _T_384 = _T_165 & _T_287; // @[DcacheStage.scala 350:56]
  reg  deqValid; // @[DcacheStage.scala 362:25]
  reg  deqBits_chkIdx; // @[DcacheStage.scala 363:21]
  reg [5:0] deqBits_wb_rd0; // @[DcacheStage.scala 363:21]
  reg [63:0] deqBits_wb_res; // @[DcacheStage.scala 363:21]
  reg  deqBits_is_load_amo; // @[DcacheStage.scala 363:21]
  reg  deqBits_is_flw; // @[DcacheStage.scala 363:21]
  reg  deqBits_is_fld; // @[DcacheStage.scala 363:21]
  wire [7:0] _deqBits_wb_res_res_pre_pre_wmask_T_17 = pipeStage1Bits_wstrb[0] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _deqBits_wb_res_res_pre_pre_wmask_T_19 = pipeStage1Bits_wstrb[1] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _deqBits_wb_res_res_pre_pre_wmask_T_21 = pipeStage1Bits_wstrb[2] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _deqBits_wb_res_res_pre_pre_wmask_T_23 = pipeStage1Bits_wstrb[3] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _deqBits_wb_res_res_pre_pre_wmask_T_25 = pipeStage1Bits_wstrb[4] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _deqBits_wb_res_res_pre_pre_wmask_T_27 = pipeStage1Bits_wstrb[5] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _deqBits_wb_res_res_pre_pre_wmask_T_29 = pipeStage1Bits_wstrb[6] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _deqBits_wb_res_res_pre_pre_wmask_T_31 = pipeStage1Bits_wstrb[7] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _deqBits_wb_res_res_pre_pre_wmask_T_33 = pipeStage1Bits_wstrb[8] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _deqBits_wb_res_res_pre_pre_wmask_T_35 = pipeStage1Bits_wstrb[9] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _deqBits_wb_res_res_pre_pre_wmask_T_37 = pipeStage1Bits_wstrb[10] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _deqBits_wb_res_res_pre_pre_wmask_T_39 = pipeStage1Bits_wstrb[11] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _deqBits_wb_res_res_pre_pre_wmask_T_41 = pipeStage1Bits_wstrb[12] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _deqBits_wb_res_res_pre_pre_wmask_T_43 = pipeStage1Bits_wstrb[13] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _deqBits_wb_res_res_pre_pre_wmask_T_45 = pipeStage1Bits_wstrb[14] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _deqBits_wb_res_res_pre_pre_wmask_T_47 = pipeStage1Bits_wstrb[15] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [63:0] deqBits_wb_res_res_pre_pre_wmask_lo = {_deqBits_wb_res_res_pre_pre_wmask_T_31,
    _deqBits_wb_res_res_pre_pre_wmask_T_29,_deqBits_wb_res_res_pre_pre_wmask_T_27,_deqBits_wb_res_res_pre_pre_wmask_T_25
    ,_deqBits_wb_res_res_pre_pre_wmask_T_23,_deqBits_wb_res_res_pre_pre_wmask_T_21,
    _deqBits_wb_res_res_pre_pre_wmask_T_19,_deqBits_wb_res_res_pre_pre_wmask_T_17}; // @[Cat.scala 33:92]
  wire [127:0] deqBits_wb_res_res_pre_pre_wmask = {_deqBits_wb_res_res_pre_pre_wmask_T_47,
    _deqBits_wb_res_res_pre_pre_wmask_T_45,_deqBits_wb_res_res_pre_pre_wmask_T_43,_deqBits_wb_res_res_pre_pre_wmask_T_41
    ,_deqBits_wb_res_res_pre_pre_wmask_T_39,_deqBits_wb_res_res_pre_pre_wmask_T_37,
    _deqBits_wb_res_res_pre_pre_wmask_T_35,_deqBits_wb_res_res_pre_pre_wmask_T_33,deqBits_wb_res_res_pre_pre_wmask_lo}; // @[Cat.scala 33:92]
  wire [127:0] _deqBits_wb_res_res_pre_pre_new_data_T = ~deqBits_wb_res_res_pre_pre_wmask; // @[Util.scala 108:27]
  wire [127:0] _deqBits_wb_res_res_pre_pre_new_data_T_1 = _amo_reAlign_64_b_T & _deqBits_wb_res_res_pre_pre_new_data_T; // @[Util.scala 108:25]
  wire [127:0] _deqBits_wb_res_res_pre_pre_new_data_T_2 = pipeStage1Bits_wdata & deqBits_wb_res_res_pre_pre_wmask; // @[Util.scala 108:44]
  wire [127:0] deqBits_wb_res_res_pre_pre_new_data = _deqBits_wb_res_res_pre_pre_new_data_T_1 |
    _deqBits_wb_res_res_pre_pre_new_data_T_2; // @[Util.scala 108:35]
  wire [127:0] deqBits_wb_res_res_pre_pre_overlap_data = _cbSel_T_28 ? deqBits_wb_res_res_pre_pre_new_data :
    _amo_reAlign_64_b_T; // @[DcacheStage.scala 380:31]
  wire [127:0] _deqBits_wb_res_res_pre_pre_res_align_data_T_4 = deqBits_wb_res_res_pre_pre_overlap_data >>
    _amo_reAlign_64_a_align_data_T_3; // @[Util.scala 147:26]
  wire [5:0] _deqBits_wb_res_res_pre_align_align_data_T_3 = {pipeStage1Bits_paddr[2:0], 3'h0}; // @[Util.scala 147:72]
  wire [63:0] deqBits_wb_res_res_pre_pre_res_align_data = _deqBits_wb_res_res_pre_pre_res_align_data_T_4[63:0]; // @[Util.scala 145:26 147:18]
  wire [63:0] deqBits_wb_res_res_pre_align = deqBits_wb_res_res_pre_pre_res_align_data >>
    _deqBits_wb_res_res_pre_align_align_data_T_3; // @[Util.scala 147:26]
  wire  _deqBits_wb_res_res_pre_res_T_1 = pipeStage1Bits_fun_lb | pipeStage1Bits_fun_lbu | pipeStage1Bits_fun_sb; // @[riscv_isa.scala 153:26]
  wire  _deqBits_wb_res_res_pre_res_T_3 = pipeStage1Bits_fun_lbu | pipeStage1Bits_fun_lhu | pipeStage1Bits_fun_lwu; // @[riscv_isa.scala 158:26]
  wire  _deqBits_wb_res_res_pre_res_T_5 = _deqBits_wb_res_res_pre_res_T_3 ? 1'h0 : deqBits_wb_res_res_pre_align[7]; // @[Util.scala 120:71]
  wire [55:0] _deqBits_wb_res_res_pre_res_T_7 = _deqBits_wb_res_res_pre_res_T_5 ? 56'hffffffffffffff : 56'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _deqBits_wb_res_res_pre_res_T_9 = {_deqBits_wb_res_res_pre_res_T_7,deqBits_wb_res_res_pre_align[7:0]}; // @[Cat.scala 33:92]
  wire  _deqBits_wb_res_res_pre_res_T_11 = pipeStage1Bits_fun_lh | pipeStage1Bits_fun_lhu | pipeStage1Bits_fun_sh; // @[riscv_isa.scala 154:26]
  wire  _deqBits_wb_res_res_pre_res_T_15 = _deqBits_wb_res_res_pre_res_T_3 ? 1'h0 : deqBits_wb_res_res_pre_align[15]; // @[Util.scala 121:71]
  wire [47:0] _deqBits_wb_res_res_pre_res_T_17 = _deqBits_wb_res_res_pre_res_T_15 ? 48'hffffffffffff : 48'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _deqBits_wb_res_res_pre_res_T_19 = {_deqBits_wb_res_res_pre_res_T_17,deqBits_wb_res_res_pre_align[15:0]}; // @[Cat.scala 33:92]
  wire  _deqBits_wb_res_res_pre_res_T_38 = _deqBits_wb_res_res_pre_res_T_3 ? 1'h0 : deqBits_wb_res_res_pre_align[31]; // @[Util.scala 122:71]
  wire [31:0] _deqBits_wb_res_res_pre_res_T_40 = _deqBits_wb_res_res_pre_res_T_38 ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _deqBits_wb_res_res_pre_res_T_42 = {_deqBits_wb_res_res_pre_res_T_40,deqBits_wb_res_res_pre_align[31:0]}; // @[Cat.scala 33:92]
  wire [63:0] _deqBits_wb_res_res_pre_res_T_57 = _deqBits_wb_res_res_pre_res_T_1 ? _deqBits_wb_res_res_pre_res_T_9 : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _deqBits_wb_res_res_pre_res_T_58 = _deqBits_wb_res_res_pre_res_T_11 ? _deqBits_wb_res_res_pre_res_T_19 : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _deqBits_wb_res_res_pre_res_T_59 = _is_sc_fail_T_15 ? _deqBits_wb_res_res_pre_res_T_42 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _deqBits_wb_res_res_pre_res_T_60 = _is_sc_fail_T_32 ? deqBits_wb_res_res_pre_align : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _deqBits_wb_res_res_pre_res_T_61 = _deqBits_wb_res_res_pre_res_T_57 | _deqBits_wb_res_res_pre_res_T_58; // @[Mux.scala 27:73]
  wire [63:0] _deqBits_wb_res_res_pre_res_T_62 = _deqBits_wb_res_res_pre_res_T_61 | _deqBits_wb_res_res_pre_res_T_59; // @[Mux.scala 27:73]
  wire [63:0] deqBits_wb_res_res_pre = _deqBits_wb_res_res_pre_res_T_62 | _deqBits_wb_res_res_pre_res_T_60; // @[Mux.scala 27:73]
  wire  _deqBits_is_load_amo_T_31 = _cbSel_T_29 | _cbSel_T_27; // @[Dcache.scala 56:31]
  DatRAM datRAM_0 ( // @[DcacheStage.scala 62:54]
    .clock(datRAM_0_clock),
    .io_addrr(datRAM_0_io_addrr),
    .io_addrw(datRAM_0_io_addrw),
    .io_dataw_0(datRAM_0_io_dataw_0),
    .io_dataw_1(datRAM_0_io_dataw_1),
    .io_dataw_2(datRAM_0_io_dataw_2),
    .io_dataw_3(datRAM_0_io_dataw_3),
    .io_dataw_4(datRAM_0_io_dataw_4),
    .io_dataw_5(datRAM_0_io_dataw_5),
    .io_dataw_6(datRAM_0_io_dataw_6),
    .io_dataw_7(datRAM_0_io_dataw_7),
    .io_dataw_8(datRAM_0_io_dataw_8),
    .io_dataw_9(datRAM_0_io_dataw_9),
    .io_dataw_10(datRAM_0_io_dataw_10),
    .io_dataw_11(datRAM_0_io_dataw_11),
    .io_dataw_12(datRAM_0_io_dataw_12),
    .io_dataw_13(datRAM_0_io_dataw_13),
    .io_dataw_14(datRAM_0_io_dataw_14),
    .io_dataw_15(datRAM_0_io_dataw_15),
    .io_datawm_0(datRAM_0_io_datawm_0),
    .io_datawm_1(datRAM_0_io_datawm_1),
    .io_datawm_2(datRAM_0_io_datawm_2),
    .io_datawm_3(datRAM_0_io_datawm_3),
    .io_datawm_4(datRAM_0_io_datawm_4),
    .io_datawm_5(datRAM_0_io_datawm_5),
    .io_datawm_6(datRAM_0_io_datawm_6),
    .io_datawm_7(datRAM_0_io_datawm_7),
    .io_datawm_8(datRAM_0_io_datawm_8),
    .io_datawm_9(datRAM_0_io_datawm_9),
    .io_datawm_10(datRAM_0_io_datawm_10),
    .io_datawm_11(datRAM_0_io_datawm_11),
    .io_datawm_12(datRAM_0_io_datawm_12),
    .io_datawm_13(datRAM_0_io_datawm_13),
    .io_datawm_14(datRAM_0_io_datawm_14),
    .io_datawm_15(datRAM_0_io_datawm_15),
    .io_datar_0(datRAM_0_io_datar_0),
    .io_datar_1(datRAM_0_io_datar_1),
    .io_datar_2(datRAM_0_io_datar_2),
    .io_datar_3(datRAM_0_io_datar_3),
    .io_datar_4(datRAM_0_io_datar_4),
    .io_datar_5(datRAM_0_io_datar_5),
    .io_datar_6(datRAM_0_io_datar_6),
    .io_datar_7(datRAM_0_io_datar_7),
    .io_datar_8(datRAM_0_io_datar_8),
    .io_datar_9(datRAM_0_io_datar_9),
    .io_datar_10(datRAM_0_io_datar_10),
    .io_datar_11(datRAM_0_io_datar_11),
    .io_datar_12(datRAM_0_io_datar_12),
    .io_datar_13(datRAM_0_io_datar_13),
    .io_datar_14(datRAM_0_io_datar_14),
    .io_datar_15(datRAM_0_io_datar_15),
    .io_enw(datRAM_0_io_enw),
    .io_enr(datRAM_0_io_enr)
  );
  DatRAM datRAM_1 ( // @[DcacheStage.scala 62:54]
    .clock(datRAM_1_clock),
    .io_addrr(datRAM_1_io_addrr),
    .io_addrw(datRAM_1_io_addrw),
    .io_dataw_0(datRAM_1_io_dataw_0),
    .io_dataw_1(datRAM_1_io_dataw_1),
    .io_dataw_2(datRAM_1_io_dataw_2),
    .io_dataw_3(datRAM_1_io_dataw_3),
    .io_dataw_4(datRAM_1_io_dataw_4),
    .io_dataw_5(datRAM_1_io_dataw_5),
    .io_dataw_6(datRAM_1_io_dataw_6),
    .io_dataw_7(datRAM_1_io_dataw_7),
    .io_dataw_8(datRAM_1_io_dataw_8),
    .io_dataw_9(datRAM_1_io_dataw_9),
    .io_dataw_10(datRAM_1_io_dataw_10),
    .io_dataw_11(datRAM_1_io_dataw_11),
    .io_dataw_12(datRAM_1_io_dataw_12),
    .io_dataw_13(datRAM_1_io_dataw_13),
    .io_dataw_14(datRAM_1_io_dataw_14),
    .io_dataw_15(datRAM_1_io_dataw_15),
    .io_datawm_0(datRAM_1_io_datawm_0),
    .io_datawm_1(datRAM_1_io_datawm_1),
    .io_datawm_2(datRAM_1_io_datawm_2),
    .io_datawm_3(datRAM_1_io_datawm_3),
    .io_datawm_4(datRAM_1_io_datawm_4),
    .io_datawm_5(datRAM_1_io_datawm_5),
    .io_datawm_6(datRAM_1_io_datawm_6),
    .io_datawm_7(datRAM_1_io_datawm_7),
    .io_datawm_8(datRAM_1_io_datawm_8),
    .io_datawm_9(datRAM_1_io_datawm_9),
    .io_datawm_10(datRAM_1_io_datawm_10),
    .io_datawm_11(datRAM_1_io_datawm_11),
    .io_datawm_12(datRAM_1_io_datawm_12),
    .io_datawm_13(datRAM_1_io_datawm_13),
    .io_datawm_14(datRAM_1_io_datawm_14),
    .io_datawm_15(datRAM_1_io_datawm_15),
    .io_datar_0(datRAM_1_io_datar_0),
    .io_datar_1(datRAM_1_io_datar_1),
    .io_datar_2(datRAM_1_io_datar_2),
    .io_datar_3(datRAM_1_io_datar_3),
    .io_datar_4(datRAM_1_io_datar_4),
    .io_datar_5(datRAM_1_io_datar_5),
    .io_datar_6(datRAM_1_io_datar_6),
    .io_datar_7(datRAM_1_io_datar_7),
    .io_datar_8(datRAM_1_io_datar_8),
    .io_datar_9(datRAM_1_io_datar_9),
    .io_datar_10(datRAM_1_io_datar_10),
    .io_datar_11(datRAM_1_io_datar_11),
    .io_datar_12(datRAM_1_io_datar_12),
    .io_datar_13(datRAM_1_io_datar_13),
    .io_datar_14(datRAM_1_io_datar_14),
    .io_datar_15(datRAM_1_io_datar_15),
    .io_enw(datRAM_1_io_enw),
    .io_enr(datRAM_1_io_enr)
  );
  TagRAM tagRAM_0 ( // @[DcacheStage.scala 63:54]
    .clock(tagRAM_0_clock),
    .io_addrr(tagRAM_0_io_addrr),
    .io_addrw(tagRAM_0_io_addrw),
    .io_dataw(tagRAM_0_io_dataw),
    .io_datar(tagRAM_0_io_datar),
    .io_enw(tagRAM_0_io_enw),
    .io_enr(tagRAM_0_io_enr)
  );
  TagRAM tagRAM_1 ( // @[DcacheStage.scala 63:54]
    .clock(tagRAM_1_clock),
    .io_addrr(tagRAM_1_io_addrr),
    .io_addrw(tagRAM_1_io_addrw),
    .io_dataw(tagRAM_1_io_dataw),
    .io_datar(tagRAM_1_io_datar),
    .io_enw(tagRAM_1_io_enw),
    .io_enr(tagRAM_1_io_enr)
  );
  MaxPeriodFibonacciLFSR rplSel_rpl_prng ( // @[PRNG.scala 91:22]
    .clock(rplSel_rpl_prng_clock),
    .reset(rplSel_rpl_prng_reset),
    .io_increment(rplSel_rpl_prng_io_increment),
    .io_out_0(rplSel_rpl_prng_io_out_0),
    .io_out_1(rplSel_rpl_prng_io_out_1),
    .io_out_2(rplSel_rpl_prng_io_out_2),
    .io_out_3(rplSel_rpl_prng_io_out_3),
    .io_out_4(rplSel_rpl_prng_io_out_4),
    .io_out_5(rplSel_rpl_prng_io_out_5),
    .io_out_6(rplSel_rpl_prng_io_out_6),
    .io_out_7(rplSel_rpl_prng_io_out_7),
    .io_out_8(rplSel_rpl_prng_io_out_8),
    .io_out_9(rplSel_rpl_prng_io_out_9),
    .io_out_10(rplSel_rpl_prng_io_out_10),
    .io_out_11(rplSel_rpl_prng_io_out_11),
    .io_out_12(rplSel_rpl_prng_io_out_12),
    .io_out_13(rplSel_rpl_prng_io_out_13),
    .io_out_14(rplSel_rpl_prng_io_out_14),
    .io_out_15(rplSel_rpl_prng_io_out_15)
  );
  assign io_enq_ready = 1'h1; // @[DcacheStage.scala 70:16]
  assign io_reload_valid = reloadValid; // @[DcacheStage.scala 359:19]
  assign io_reload_bits_chkIdx = reloadBits_chkIdx; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_paddr = reloadBits_paddr; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_wdata = reloadBits_wdata; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_wstrb = reloadBits_wstrb; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_lb = reloadBits_fun_lb; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_lh = reloadBits_fun_lh; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_lw = reloadBits_fun_lw; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_ld = reloadBits_fun_ld; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_lbu = reloadBits_fun_lbu; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_lhu = reloadBits_fun_lhu; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_lwu = reloadBits_fun_lwu; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_sb = reloadBits_fun_sb; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_sh = reloadBits_fun_sh; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_sw = reloadBits_fun_sw; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_sd = reloadBits_fun_sd; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_lr_w = reloadBits_fun_lr_w; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_sc_w = reloadBits_fun_sc_w; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_amoswap_w = reloadBits_fun_amoswap_w; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_amoadd_w = reloadBits_fun_amoadd_w; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_amoxor_w = reloadBits_fun_amoxor_w; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_amoand_w = reloadBits_fun_amoand_w; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_amoor_w = reloadBits_fun_amoor_w; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_amomin_w = reloadBits_fun_amomin_w; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_amomax_w = reloadBits_fun_amomax_w; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_amominu_w = reloadBits_fun_amominu_w; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_amomaxu_w = reloadBits_fun_amomaxu_w; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_lr_d = reloadBits_fun_lr_d; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_sc_d = reloadBits_fun_sc_d; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_amoswap_d = reloadBits_fun_amoswap_d; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_amoadd_d = reloadBits_fun_amoadd_d; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_amoxor_d = reloadBits_fun_amoxor_d; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_amoand_d = reloadBits_fun_amoand_d; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_amoor_d = reloadBits_fun_amoor_d; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_amomin_d = reloadBits_fun_amomin_d; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_amomax_d = reloadBits_fun_amomax_d; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_amominu_d = reloadBits_fun_amominu_d; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_amomaxu_d = reloadBits_fun_amomaxu_d; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_flw = reloadBits_fun_flw; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_fsw = reloadBits_fun_fsw; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_fld = reloadBits_fun_fld; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_fsd = reloadBits_fun_fsd; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_probe = reloadBits_fun_probe; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_grant = reloadBits_fun_grant; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_fun_preft = reloadBits_fun_preft; // @[DcacheStage.scala 360:19]
  assign io_reload_bits_rd_rd0 = reloadBits_rd_rd0; // @[DcacheStage.scala 360:19]
  assign io_deq_valid = deqValid; // @[DcacheStage.scala 365:16]
  assign io_deq_bits_chkIdx = deqBits_chkIdx; // @[DcacheStage.scala 366:16]
  assign io_deq_bits_wb_rd0 = deqBits_wb_rd0; // @[DcacheStage.scala 366:16]
  assign io_deq_bits_wb_res = deqBits_wb_res; // @[DcacheStage.scala 366:16]
  assign io_deq_bits_is_load_amo = deqBits_is_load_amo; // @[DcacheStage.scala 366:16]
  assign io_deq_bits_is_flw = deqBits_is_flw; // @[DcacheStage.scala 366:16]
  assign io_deq_bits_is_fld = deqBits_is_fld; // @[DcacheStage.scala 366:16]
  assign io_missUnit_req_valid = missUnitReqValid; // @[DcacheStage.scala 294:25]
  assign io_missUnit_req_bits_paddr = missUnitReqPaddr; // @[DcacheStage.scala 295:30]
  assign io_wb_req_valid = wbReqValid; // @[DcacheStage.scala 313:19]
  assign io_wb_req_bits_paddr = wbReqPaddr; // @[DcacheStage.scala 314:24]
  assign io_wb_req_bits_data = wbReqData; // @[DcacheStage.scala 315:23]
  assign io_wb_req_bits_is_releaseData = wbReqisData & ~isPb; // @[DcacheStage.scala 317:49]
  assign io_wb_req_bits_is_release = ~wbReqisData & _io_wb_req_bits_is_releaseData_T; // @[DcacheStage.scala 318:49]
  assign io_wb_req_bits_is_probe = _io_wb_req_bits_is_release_T & isPb; // @[DcacheStage.scala 320:49]
  assign io_wb_req_bits_is_probeData = wbReqisData & isPb; // @[DcacheStage.scala 319:49]
  assign datRAM_0_clock = clock;
  assign datRAM_0_io_addrr = io_enq_bits_paddr[5:4]; // @[Dcache.scala 74:21]
  assign datRAM_0_io_addrw = pipeStage1Bits_paddr[5:4]; // @[Dcache.scala 74:21]
  assign datRAM_0_io_dataw_0 = dataW[7:0]; // @[DcacheStage.scala 222:60]
  assign datRAM_0_io_dataw_1 = dataW[15:8]; // @[DcacheStage.scala 222:60]
  assign datRAM_0_io_dataw_2 = dataW[23:16]; // @[DcacheStage.scala 222:60]
  assign datRAM_0_io_dataw_3 = dataW[31:24]; // @[DcacheStage.scala 222:60]
  assign datRAM_0_io_dataw_4 = dataW[39:32]; // @[DcacheStage.scala 222:60]
  assign datRAM_0_io_dataw_5 = dataW[47:40]; // @[DcacheStage.scala 222:60]
  assign datRAM_0_io_dataw_6 = dataW[55:48]; // @[DcacheStage.scala 222:60]
  assign datRAM_0_io_dataw_7 = dataW[63:56]; // @[DcacheStage.scala 222:60]
  assign datRAM_0_io_dataw_8 = dataW[71:64]; // @[DcacheStage.scala 222:60]
  assign datRAM_0_io_dataw_9 = dataW[79:72]; // @[DcacheStage.scala 222:60]
  assign datRAM_0_io_dataw_10 = dataW[87:80]; // @[DcacheStage.scala 222:60]
  assign datRAM_0_io_dataw_11 = dataW[95:88]; // @[DcacheStage.scala 222:60]
  assign datRAM_0_io_dataw_12 = dataW[103:96]; // @[DcacheStage.scala 222:60]
  assign datRAM_0_io_dataw_13 = dataW[111:104]; // @[DcacheStage.scala 222:60]
  assign datRAM_0_io_dataw_14 = dataW[119:112]; // @[DcacheStage.scala 222:60]
  assign datRAM_0_io_dataw_15 = dataW[127:120]; // @[DcacheStage.scala 222:60]
  assign datRAM_0_io_datawm_0 = _T_43[0]; // @[DcacheStage.scala 113:8]
  assign datRAM_0_io_datawm_1 = _T_43[1]; // @[DcacheStage.scala 113:8]
  assign datRAM_0_io_datawm_2 = _T_43[2]; // @[DcacheStage.scala 113:8]
  assign datRAM_0_io_datawm_3 = _T_43[3]; // @[DcacheStage.scala 113:8]
  assign datRAM_0_io_datawm_4 = _T_43[4]; // @[DcacheStage.scala 113:8]
  assign datRAM_0_io_datawm_5 = _T_43[5]; // @[DcacheStage.scala 113:8]
  assign datRAM_0_io_datawm_6 = _T_43[6]; // @[DcacheStage.scala 113:8]
  assign datRAM_0_io_datawm_7 = _T_43[7]; // @[DcacheStage.scala 113:8]
  assign datRAM_0_io_datawm_8 = _T_43[8]; // @[DcacheStage.scala 113:8]
  assign datRAM_0_io_datawm_9 = _T_43[9]; // @[DcacheStage.scala 113:8]
  assign datRAM_0_io_datawm_10 = _T_43[10]; // @[DcacheStage.scala 113:8]
  assign datRAM_0_io_datawm_11 = _T_43[11]; // @[DcacheStage.scala 113:8]
  assign datRAM_0_io_datawm_12 = _T_43[12]; // @[DcacheStage.scala 113:8]
  assign datRAM_0_io_datawm_13 = _T_43[13]; // @[DcacheStage.scala 113:8]
  assign datRAM_0_io_datawm_14 = _T_43[14]; // @[DcacheStage.scala 113:8]
  assign datRAM_0_io_datawm_15 = _T_43[15]; // @[DcacheStage.scala 113:8]
  assign datRAM_0_io_enw = _datEnW_0_T_30 & _datEnW_0_T_76; // @[DcacheStage.scala 101:35]
  assign datRAM_0_io_enr = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  assign datRAM_1_clock = clock;
  assign datRAM_1_io_addrr = io_enq_bits_paddr[5:4]; // @[Dcache.scala 74:21]
  assign datRAM_1_io_addrw = pipeStage1Bits_paddr[5:4]; // @[Dcache.scala 74:21]
  assign datRAM_1_io_dataw_0 = dataW[7:0]; // @[DcacheStage.scala 222:60]
  assign datRAM_1_io_dataw_1 = dataW[15:8]; // @[DcacheStage.scala 222:60]
  assign datRAM_1_io_dataw_2 = dataW[23:16]; // @[DcacheStage.scala 222:60]
  assign datRAM_1_io_dataw_3 = dataW[31:24]; // @[DcacheStage.scala 222:60]
  assign datRAM_1_io_dataw_4 = dataW[39:32]; // @[DcacheStage.scala 222:60]
  assign datRAM_1_io_dataw_5 = dataW[47:40]; // @[DcacheStage.scala 222:60]
  assign datRAM_1_io_dataw_6 = dataW[55:48]; // @[DcacheStage.scala 222:60]
  assign datRAM_1_io_dataw_7 = dataW[63:56]; // @[DcacheStage.scala 222:60]
  assign datRAM_1_io_dataw_8 = dataW[71:64]; // @[DcacheStage.scala 222:60]
  assign datRAM_1_io_dataw_9 = dataW[79:72]; // @[DcacheStage.scala 222:60]
  assign datRAM_1_io_dataw_10 = dataW[87:80]; // @[DcacheStage.scala 222:60]
  assign datRAM_1_io_dataw_11 = dataW[95:88]; // @[DcacheStage.scala 222:60]
  assign datRAM_1_io_dataw_12 = dataW[103:96]; // @[DcacheStage.scala 222:60]
  assign datRAM_1_io_dataw_13 = dataW[111:104]; // @[DcacheStage.scala 222:60]
  assign datRAM_1_io_dataw_14 = dataW[119:112]; // @[DcacheStage.scala 222:60]
  assign datRAM_1_io_dataw_15 = dataW[127:120]; // @[DcacheStage.scala 222:60]
  assign datRAM_1_io_datawm_0 = _T_43[0]; // @[DcacheStage.scala 113:8]
  assign datRAM_1_io_datawm_1 = _T_43[1]; // @[DcacheStage.scala 113:8]
  assign datRAM_1_io_datawm_2 = _T_43[2]; // @[DcacheStage.scala 113:8]
  assign datRAM_1_io_datawm_3 = _T_43[3]; // @[DcacheStage.scala 113:8]
  assign datRAM_1_io_datawm_4 = _T_43[4]; // @[DcacheStage.scala 113:8]
  assign datRAM_1_io_datawm_5 = _T_43[5]; // @[DcacheStage.scala 113:8]
  assign datRAM_1_io_datawm_6 = _T_43[6]; // @[DcacheStage.scala 113:8]
  assign datRAM_1_io_datawm_7 = _T_43[7]; // @[DcacheStage.scala 113:8]
  assign datRAM_1_io_datawm_8 = _T_43[8]; // @[DcacheStage.scala 113:8]
  assign datRAM_1_io_datawm_9 = _T_43[9]; // @[DcacheStage.scala 113:8]
  assign datRAM_1_io_datawm_10 = _T_43[10]; // @[DcacheStage.scala 113:8]
  assign datRAM_1_io_datawm_11 = _T_43[11]; // @[DcacheStage.scala 113:8]
  assign datRAM_1_io_datawm_12 = _T_43[12]; // @[DcacheStage.scala 113:8]
  assign datRAM_1_io_datawm_13 = _T_43[13]; // @[DcacheStage.scala 113:8]
  assign datRAM_1_io_datawm_14 = _T_43[14]; // @[DcacheStage.scala 113:8]
  assign datRAM_1_io_datawm_15 = _T_43[15]; // @[DcacheStage.scala 113:8]
  assign datRAM_1_io_enw = _datEnW_1_T_30 & _datEnW_0_T_76; // @[DcacheStage.scala 101:35]
  assign datRAM_1_io_enr = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  assign tagRAM_0_clock = clock;
  assign tagRAM_0_io_addrr = io_enq_bits_paddr[5:4]; // @[Dcache.scala 74:21]
  assign tagRAM_0_io_addrw = pipeStage1Bits_paddr[5:4]; // @[Dcache.scala 74:21]
  assign tagRAM_0_io_dataw = pipeStage1Bits_paddr[31:6]; // @[Dcache.scala 73:21]
  assign tagRAM_0_io_enw = _datEnW_0_T_1 & pipeStage1Bits_fun_grant; // @[DcacheStage.scala 106:52]
  assign tagRAM_0_io_enr = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  assign tagRAM_1_clock = clock;
  assign tagRAM_1_io_addrr = io_enq_bits_paddr[5:4]; // @[Dcache.scala 74:21]
  assign tagRAM_1_io_addrw = pipeStage1Bits_paddr[5:4]; // @[Dcache.scala 74:21]
  assign tagRAM_1_io_dataw = pipeStage1Bits_paddr[31:6]; // @[Dcache.scala 73:21]
  assign tagRAM_1_io_enw = _datEnW_1_T_1 & pipeStage1Bits_fun_grant; // @[DcacheStage.scala 106:52]
  assign tagRAM_1_io_enr = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  assign rplSel_rpl_prng_clock = clock;
  assign rplSel_rpl_prng_reset = reset;
  assign rplSel_rpl_prng_io_increment = 1'h1; // @[PRNG.scala 94:23]
  always @(posedge clock) begin
    if (reset) begin // @[DcacheStage.scala 71:32]
      pipeStage1Valid <= 1'h0; // @[DcacheStage.scala 71:32]
    end else begin
      pipeStage1Valid <= _pipeStage1Valid_T; // @[DcacheStage.scala 71:32]
    end
    pipeStage1Bits_chkIdx <= io_enq_bits_chkIdx; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_paddr <= io_enq_bits_paddr; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_wdata <= io_enq_bits_wdata; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_wstrb <= io_enq_bits_wstrb; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_lb <= io_enq_bits_fun_lb; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_lh <= io_enq_bits_fun_lh; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_lw <= io_enq_bits_fun_lw; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_ld <= io_enq_bits_fun_ld; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_lbu <= io_enq_bits_fun_lbu; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_lhu <= io_enq_bits_fun_lhu; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_lwu <= io_enq_bits_fun_lwu; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_sb <= io_enq_bits_fun_sb; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_sh <= io_enq_bits_fun_sh; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_sw <= io_enq_bits_fun_sw; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_sd <= io_enq_bits_fun_sd; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_lr_w <= io_enq_bits_fun_lr_w; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_sc_w <= io_enq_bits_fun_sc_w; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_amoswap_w <= io_enq_bits_fun_amoswap_w; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_amoadd_w <= io_enq_bits_fun_amoadd_w; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_amoxor_w <= io_enq_bits_fun_amoxor_w; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_amoand_w <= io_enq_bits_fun_amoand_w; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_amoor_w <= io_enq_bits_fun_amoor_w; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_amomin_w <= io_enq_bits_fun_amomin_w; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_amomax_w <= io_enq_bits_fun_amomax_w; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_amominu_w <= io_enq_bits_fun_amominu_w; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_amomaxu_w <= io_enq_bits_fun_amomaxu_w; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_lr_d <= io_enq_bits_fun_lr_d; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_sc_d <= io_enq_bits_fun_sc_d; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_amoswap_d <= io_enq_bits_fun_amoswap_d; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_amoadd_d <= io_enq_bits_fun_amoadd_d; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_amoxor_d <= io_enq_bits_fun_amoxor_d; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_amoand_d <= io_enq_bits_fun_amoand_d; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_amoor_d <= io_enq_bits_fun_amoor_d; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_amomin_d <= io_enq_bits_fun_amomin_d; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_amomax_d <= io_enq_bits_fun_amomax_d; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_amominu_d <= io_enq_bits_fun_amominu_d; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_amomaxu_d <= io_enq_bits_fun_amomaxu_d; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_flw <= io_enq_bits_fun_flw; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_fsw <= io_enq_bits_fun_fsw; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_fld <= io_enq_bits_fun_fld; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_fsd <= io_enq_bits_fun_fsd; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_probe <= io_enq_bits_fun_probe; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_grant <= io_enq_bits_fun_grant; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_fun_preft <= io_enq_bits_fun_preft; // @[DcacheStage.scala 72:32]
    pipeStage1Bits_rd_rd0 <= io_enq_bits_rd_rd0; // @[DcacheStage.scala 72:32]
    if (_pipeStage1Valid_T) begin // @[Reg.scala 20:18]
      isTagBypass_1 <= _isTagBypass_T_4; // @[Reg.scala 20:22]
    end
    if (_tagBypassData_T_7) begin // @[Reg.scala 20:18]
      tagBypassData_1 <= tagInfoW; // @[Reg.scala 20:22]
    end
    if (reset) begin // @[DcacheStage.scala 84:26]
      isCBValid_3_1 <= 1'h0; // @[DcacheStage.scala 84:26]
    end else if (pipeStage1Valid) begin // @[DcacheStage.scala 226:27]
      if (pipeStage1Bits_fun_probe & isHit) begin // @[DcacheStage.scala 235:46]
        if (_GEN_296 & cbSel) begin // @[DcacheStage.scala 236:34]
          isCBValid_3_1 <= 1'h0; // @[DcacheStage.scala 236:34]
        end else begin
          isCBValid_3_1 <= _GEN_141;
        end
      end else begin
        isCBValid_3_1 <= _GEN_141;
      end
    end
    if (reset) begin // @[DcacheStage.scala 84:26]
      isCBValid_2_1 <= 1'h0; // @[DcacheStage.scala 84:26]
    end else if (pipeStage1Valid) begin // @[DcacheStage.scala 226:27]
      if (pipeStage1Bits_fun_probe & isHit) begin // @[DcacheStage.scala 235:46]
        if (_GEN_291 & cbSel) begin // @[DcacheStage.scala 236:34]
          isCBValid_2_1 <= 1'h0; // @[DcacheStage.scala 236:34]
        end else begin
          isCBValid_2_1 <= _GEN_139;
        end
      end else begin
        isCBValid_2_1 <= _GEN_139;
      end
    end
    if (reset) begin // @[DcacheStage.scala 84:26]
      isCBValid_1_1 <= 1'h0; // @[DcacheStage.scala 84:26]
    end else if (pipeStage1Valid) begin // @[DcacheStage.scala 226:27]
      if (pipeStage1Bits_fun_probe & isHit) begin // @[DcacheStage.scala 235:46]
        if (_GEN_286 & cbSel) begin // @[DcacheStage.scala 236:34]
          isCBValid_1_1 <= 1'h0; // @[DcacheStage.scala 236:34]
        end else begin
          isCBValid_1_1 <= _GEN_137;
        end
      end else begin
        isCBValid_1_1 <= _GEN_137;
      end
    end
    if (reset) begin // @[DcacheStage.scala 84:26]
      isCBValid_0_1 <= 1'h0; // @[DcacheStage.scala 84:26]
    end else if (pipeStage1Valid) begin // @[DcacheStage.scala 226:27]
      if (pipeStage1Bits_fun_probe & isHit) begin // @[DcacheStage.scala 235:46]
        if (_GEN_244 & cbSel) begin // @[DcacheStage.scala 236:34]
          isCBValid_0_1 <= 1'h0; // @[DcacheStage.scala 236:34]
        end else begin
          isCBValid_0_1 <= _GEN_135;
        end
      end else begin
        isCBValid_0_1 <= _GEN_135;
      end
    end
    if (_pipeStage1Valid_T) begin // @[Reg.scala 20:18]
      isTagBypass <= _isTagBypass_T_1; // @[Reg.scala 20:22]
    end
    if (_tagBypassData_T_3) begin // @[Reg.scala 20:18]
      tagBypassData <= tagInfoW; // @[Reg.scala 20:22]
    end
    if (reset) begin // @[DcacheStage.scala 84:26]
      isCBValid_3_0 <= 1'h0; // @[DcacheStage.scala 84:26]
    end else if (pipeStage1Valid) begin // @[DcacheStage.scala 226:27]
      if (pipeStage1Bits_fun_probe & isHit) begin // @[DcacheStage.scala 235:46]
        if (_GEN_296 & _datEnW_0_T) begin // @[DcacheStage.scala 236:34]
          isCBValid_3_0 <= 1'h0; // @[DcacheStage.scala 236:34]
        end else begin
          isCBValid_3_0 <= _GEN_140;
        end
      end else begin
        isCBValid_3_0 <= _GEN_140;
      end
    end
    if (reset) begin // @[DcacheStage.scala 84:26]
      isCBValid_2_0 <= 1'h0; // @[DcacheStage.scala 84:26]
    end else if (pipeStage1Valid) begin // @[DcacheStage.scala 226:27]
      if (pipeStage1Bits_fun_probe & isHit) begin // @[DcacheStage.scala 235:46]
        if (_GEN_291 & _datEnW_0_T) begin // @[DcacheStage.scala 236:34]
          isCBValid_2_0 <= 1'h0; // @[DcacheStage.scala 236:34]
        end else begin
          isCBValid_2_0 <= _GEN_138;
        end
      end else begin
        isCBValid_2_0 <= _GEN_138;
      end
    end
    if (reset) begin // @[DcacheStage.scala 84:26]
      isCBValid_1_0 <= 1'h0; // @[DcacheStage.scala 84:26]
    end else if (pipeStage1Valid) begin // @[DcacheStage.scala 226:27]
      if (pipeStage1Bits_fun_probe & isHit) begin // @[DcacheStage.scala 235:46]
        if (_GEN_286 & _datEnW_0_T) begin // @[DcacheStage.scala 236:34]
          isCBValid_1_0 <= 1'h0; // @[DcacheStage.scala 236:34]
        end else begin
          isCBValid_1_0 <= _GEN_136;
        end
      end else begin
        isCBValid_1_0 <= _GEN_136;
      end
    end
    if (reset) begin // @[DcacheStage.scala 84:26]
      isCBValid_0_0 <= 1'h0; // @[DcacheStage.scala 84:26]
    end else if (pipeStage1Valid) begin // @[DcacheStage.scala 226:27]
      if (pipeStage1Bits_fun_probe & isHit) begin // @[DcacheStage.scala 235:46]
        if (_GEN_244 & _datEnW_0_T) begin // @[DcacheStage.scala 236:34]
          isCBValid_0_0 <= 1'h0; // @[DcacheStage.scala 236:34]
        end else begin
          isCBValid_0_0 <= _GEN_134;
        end
      end else begin
        isCBValid_0_0 <= _GEN_134;
      end
    end
    if (reset) begin // @[DcacheStage.scala 86:26]
      isCBDirty_0_0 <= 1'h0; // @[DcacheStage.scala 86:26]
    end else if (pipeStage1Valid) begin // @[DcacheStage.scala 226:27]
      if (_datEnW_0_T_28) begin // @[DcacheStage.scala 231:42]
        isCBDirty_0_0 <= _GEN_150;
      end else if (pipeStage1Bits_fun_grant) begin // @[DcacheStage.scala 227:38]
        isCBDirty_0_0 <= _GEN_126;
      end
    end
    if (reset) begin // @[DcacheStage.scala 86:26]
      isCBDirty_0_1 <= 1'h0; // @[DcacheStage.scala 86:26]
    end else if (pipeStage1Valid) begin // @[DcacheStage.scala 226:27]
      if (_datEnW_0_T_28) begin // @[DcacheStage.scala 231:42]
        isCBDirty_0_1 <= _GEN_151;
      end else if (pipeStage1Bits_fun_grant) begin // @[DcacheStage.scala 227:38]
        isCBDirty_0_1 <= _GEN_127;
      end
    end
    if (reset) begin // @[DcacheStage.scala 86:26]
      isCBDirty_1_0 <= 1'h0; // @[DcacheStage.scala 86:26]
    end else if (pipeStage1Valid) begin // @[DcacheStage.scala 226:27]
      if (_datEnW_0_T_28) begin // @[DcacheStage.scala 231:42]
        isCBDirty_1_0 <= _GEN_152;
      end else if (pipeStage1Bits_fun_grant) begin // @[DcacheStage.scala 227:38]
        isCBDirty_1_0 <= _GEN_128;
      end
    end
    if (reset) begin // @[DcacheStage.scala 86:26]
      isCBDirty_1_1 <= 1'h0; // @[DcacheStage.scala 86:26]
    end else if (pipeStage1Valid) begin // @[DcacheStage.scala 226:27]
      if (_datEnW_0_T_28) begin // @[DcacheStage.scala 231:42]
        isCBDirty_1_1 <= _GEN_153;
      end else if (pipeStage1Bits_fun_grant) begin // @[DcacheStage.scala 227:38]
        isCBDirty_1_1 <= _GEN_129;
      end
    end
    if (reset) begin // @[DcacheStage.scala 86:26]
      isCBDirty_2_0 <= 1'h0; // @[DcacheStage.scala 86:26]
    end else if (pipeStage1Valid) begin // @[DcacheStage.scala 226:27]
      if (_datEnW_0_T_28) begin // @[DcacheStage.scala 231:42]
        isCBDirty_2_0 <= _GEN_154;
      end else if (pipeStage1Bits_fun_grant) begin // @[DcacheStage.scala 227:38]
        isCBDirty_2_0 <= _GEN_130;
      end
    end
    if (reset) begin // @[DcacheStage.scala 86:26]
      isCBDirty_2_1 <= 1'h0; // @[DcacheStage.scala 86:26]
    end else if (pipeStage1Valid) begin // @[DcacheStage.scala 226:27]
      if (_datEnW_0_T_28) begin // @[DcacheStage.scala 231:42]
        isCBDirty_2_1 <= _GEN_155;
      end else if (pipeStage1Bits_fun_grant) begin // @[DcacheStage.scala 227:38]
        isCBDirty_2_1 <= _GEN_131;
      end
    end
    if (reset) begin // @[DcacheStage.scala 86:26]
      isCBDirty_3_0 <= 1'h0; // @[DcacheStage.scala 86:26]
    end else if (pipeStage1Valid) begin // @[DcacheStage.scala 226:27]
      if (_datEnW_0_T_28) begin // @[DcacheStage.scala 231:42]
        isCBDirty_3_0 <= _GEN_156;
      end else if (pipeStage1Bits_fun_grant) begin // @[DcacheStage.scala 227:38]
        isCBDirty_3_0 <= _GEN_132;
      end
    end
    if (reset) begin // @[DcacheStage.scala 86:26]
      isCBDirty_3_1 <= 1'h0; // @[DcacheStage.scala 86:26]
    end else if (pipeStage1Valid) begin // @[DcacheStage.scala 226:27]
      if (_datEnW_0_T_28) begin // @[DcacheStage.scala 231:42]
        isCBDirty_3_1 <= _GEN_157;
      end else if (pipeStage1Bits_fun_grant) begin // @[DcacheStage.scala 227:38]
        isCBDirty_3_1 <= _GEN_133;
      end
    end
    if (reset) begin // @[DcacheStage.scala 147:30]
      is_pending_lr <= 1'h0; // @[DcacheStage.scala 147:30]
    end else if (io_flush | killTrans) begin // @[DcacheStage.scala 157:32]
      is_pending_lr <= 1'h0; // @[DcacheStage.scala 158:19]
    end else if (pipeStage1Valid & _cbSel_T_39 & isHit) begin // @[DcacheStage.scala 159:73]
      is_pending_lr <= _GEN_73;
    end else if (pipeStage1Valid & pipeStage1Bits_fun_probe) begin // @[DcacheStage.scala 172:61]
      is_pending_lr <= _GEN_70;
    end
    if (reset) begin // @[DcacheStage.scala 148:29]
      is_lr_64_32n <= 1'h0; // @[DcacheStage.scala 148:29]
    end else if (!(io_flush | killTrans)) begin // @[DcacheStage.scala 157:32]
      if (pipeStage1Valid & _cbSel_T_39 & isHit) begin // @[DcacheStage.scala 159:73]
        if (_cbSel_T_27) begin // @[DcacheStage.scala 160:38]
          is_lr_64_32n <= _is_sc_fail_T_32; // @[DcacheStage.scala 162:20]
        end
      end
    end
    if (!(io_flush | killTrans)) begin // @[DcacheStage.scala 157:32]
      if (pipeStage1Valid & _cbSel_T_39 & isHit) begin // @[DcacheStage.scala 159:73]
        if (_cbSel_T_27) begin // @[DcacheStage.scala 160:38]
          lr_addr <= pipeStage1Bits_paddr; // @[DcacheStage.scala 163:15]
        end
      end
    end
    if (_pipeStage1Valid_T) begin // @[Reg.scala 20:18]
      isDatBypass <= _isDatBypass_T_1; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassData__0 <= datInfoW_0; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassData__1 <= datInfoW_1; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassData__2 <= datInfoW_2; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassData__3 <= datInfoW_3; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassData__4 <= datInfoW_4; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassData__5 <= datInfoW_5; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassData__6 <= datInfoW_6; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassData__7 <= datInfoW_7; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassData__8 <= datInfoW_8; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassData__9 <= datInfoW_9; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassData__10 <= datInfoW_10; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassData__11 <= datInfoW_11; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassData__12 <= datInfoW_12; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassData__13 <= datInfoW_13; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassData__14 <= datInfoW_14; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassData__15 <= datInfoW_15; // @[Reg.scala 20:22]
    end
    if (_pipeStage1Valid_T) begin // @[Reg.scala 20:18]
      isDatBypass_1 <= _isDatBypass_T_4; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassWM_1_15 <= datInfoWM_15; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassData_1_15 <= datInfoW_15; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassWM__15 <= datInfoWM_15; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassWM_1_14 <= datInfoWM_14; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassData_1_14 <= datInfoW_14; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassWM__14 <= datInfoWM_14; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassWM_1_13 <= datInfoWM_13; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassData_1_13 <= datInfoW_13; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassWM__13 <= datInfoWM_13; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassWM_1_12 <= datInfoWM_12; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassData_1_12 <= datInfoW_12; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassWM__12 <= datInfoWM_12; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassWM_1_11 <= datInfoWM_11; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassData_1_11 <= datInfoW_11; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassWM__11 <= datInfoWM_11; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassWM_1_10 <= datInfoWM_10; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassData_1_10 <= datInfoW_10; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassWM__10 <= datInfoWM_10; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassWM_1_9 <= datInfoWM_9; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassData_1_9 <= datInfoW_9; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassWM__9 <= datInfoWM_9; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassWM_1_8 <= datInfoWM_8; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassData_1_8 <= datInfoW_8; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassWM__8 <= datInfoWM_8; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassWM_1_7 <= datInfoWM_7; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassData_1_7 <= datInfoW_7; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassWM__7 <= datInfoWM_7; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassWM_1_6 <= datInfoWM_6; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassData_1_6 <= datInfoW_6; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassWM__6 <= datInfoWM_6; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassWM_1_5 <= datInfoWM_5; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassData_1_5 <= datInfoW_5; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassWM__5 <= datInfoWM_5; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassWM_1_4 <= datInfoWM_4; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassData_1_4 <= datInfoW_4; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassWM__4 <= datInfoWM_4; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassWM_1_3 <= datInfoWM_3; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassData_1_3 <= datInfoW_3; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassWM__3 <= datInfoWM_3; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassWM_1_2 <= datInfoWM_2; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassData_1_2 <= datInfoW_2; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassWM__2 <= datInfoWM_2; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassWM_1_1 <= datInfoWM_1; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassData_1_1 <= datInfoW_1; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassWM__1 <= datInfoWM_1; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassWM_1_0 <= datInfoWM_0; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_7) begin // @[Reg.scala 20:18]
      datBypassData_1_0 <= datInfoW_0; // @[Reg.scala 20:22]
    end
    if (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassWM__0 <= datInfoWM_0; // @[Reg.scala 20:22]
    end
    if (reset) begin // @[DcacheStage.scala 146:26]
      killTrans <= 1'h0; // @[DcacheStage.scala 146:26]
    end else begin
      killTrans <= _GEN_85;
    end
    if (reset) begin // @[DcacheStage.scala 291:33]
      missUnitReqValid <= 1'h0; // @[DcacheStage.scala 291:33]
    end else begin
      missUnitReqValid <= _T_333;
    end
    missUnitReqPaddr <= _GEN_207[31:0];
    if (reset) begin // @[DcacheStage.scala 307:27]
      wbReqValid <= 1'h0; // @[DcacheStage.scala 307:27]
    end else begin
      wbReqValid <= _GEN_223;
    end
    wbReqPaddr <= _GEN_224[31:0];
    if (pipeStage1Valid & (pipeStage1Bits_fun_grant & ~rplSel_is_emptyBlock_exist)) begin // @[DcacheStage.scala 322:99]
      wbReqData <= _amo_reAlign_64_b_T; // @[DcacheStage.scala 325:17]
    end else if (_T_234) begin // @[DcacheStage.scala 328:60]
      wbReqData <= _amo_reAlign_64_b_T; // @[DcacheStage.scala 331:17]
    end
    if (pipeStage1Valid & (pipeStage1Bits_fun_grant & ~rplSel_is_emptyBlock_exist)) begin // @[DcacheStage.scala 322:99]
      if (_GEN_296 & cbSel) begin // @[DcacheStage.scala 326:17]
        wbReqisData <= isCBDirty_3_1; // @[DcacheStage.scala 326:17]
      end else if (_GEN_296 & _datEnW_0_T) begin // @[DcacheStage.scala 326:17]
        wbReqisData <= isCBDirty_3_0; // @[DcacheStage.scala 326:17]
      end else if (_GEN_291 & cbSel) begin // @[DcacheStage.scala 326:17]
        wbReqisData <= isCBDirty_2_1; // @[DcacheStage.scala 326:17]
      end else begin
        wbReqisData <= _GEN_214;
      end
    end else if (_T_234) begin // @[DcacheStage.scala 328:60]
      wbReqisData <= _GEN_217 & isHit; // @[DcacheStage.scala 332:17]
    end
    if (pipeStage1Valid & (pipeStage1Bits_fun_grant & ~rplSel_is_emptyBlock_exist)) begin // @[DcacheStage.scala 322:99]
      isPb <= 1'h0; // @[DcacheStage.scala 327:17]
    end else begin
      isPb <= _GEN_222;
    end
    if (reset) begin // @[DcacheStage.scala 347:28]
      reloadValid <= 1'h0; // @[DcacheStage.scala 347:28]
    end else begin
      reloadValid <= _T_384;
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_chkIdx <= pipeStage1Bits_chkIdx; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_paddr <= pipeStage1Bits_paddr; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_wdata <= pipeStage1Bits_wdata; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_wstrb <= pipeStage1Bits_wstrb; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_lb <= pipeStage1Bits_fun_lb; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_lh <= pipeStage1Bits_fun_lh; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_lw <= pipeStage1Bits_fun_lw; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_ld <= pipeStage1Bits_fun_ld; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_lbu <= pipeStage1Bits_fun_lbu; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_lhu <= pipeStage1Bits_fun_lhu; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_lwu <= pipeStage1Bits_fun_lwu; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_sb <= pipeStage1Bits_fun_sb; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_sh <= pipeStage1Bits_fun_sh; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_sw <= pipeStage1Bits_fun_sw; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_sd <= pipeStage1Bits_fun_sd; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_lr_w <= pipeStage1Bits_fun_lr_w; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_sc_w <= pipeStage1Bits_fun_sc_w; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amoswap_w <= pipeStage1Bits_fun_amoswap_w; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amoadd_w <= pipeStage1Bits_fun_amoadd_w; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amoxor_w <= pipeStage1Bits_fun_amoxor_w; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amoand_w <= pipeStage1Bits_fun_amoand_w; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amoor_w <= pipeStage1Bits_fun_amoor_w; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amomin_w <= pipeStage1Bits_fun_amomin_w; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amomax_w <= pipeStage1Bits_fun_amomax_w; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amominu_w <= pipeStage1Bits_fun_amominu_w; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amomaxu_w <= pipeStage1Bits_fun_amomaxu_w; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_lr_d <= pipeStage1Bits_fun_lr_d; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_sc_d <= pipeStage1Bits_fun_sc_d; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amoswap_d <= pipeStage1Bits_fun_amoswap_d; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amoadd_d <= pipeStage1Bits_fun_amoadd_d; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amoxor_d <= pipeStage1Bits_fun_amoxor_d; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amoand_d <= pipeStage1Bits_fun_amoand_d; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amoor_d <= pipeStage1Bits_fun_amoor_d; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amomin_d <= pipeStage1Bits_fun_amomin_d; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amomax_d <= pipeStage1Bits_fun_amomax_d; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amominu_d <= pipeStage1Bits_fun_amominu_d; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amomaxu_d <= pipeStage1Bits_fun_amomaxu_d; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_flw <= pipeStage1Bits_fun_flw; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_fsw <= pipeStage1Bits_fun_fsw; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_fld <= pipeStage1Bits_fun_fld; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_fsd <= pipeStage1Bits_fun_fsd; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_probe <= pipeStage1Bits_fun_probe; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_grant <= pipeStage1Bits_fun_grant; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_preft <= pipeStage1Bits_fun_preft; // @[DcacheStage.scala 352:17]
    end
    if (_T_165 & _T_287) begin // @[DcacheStage.scala 350:67]
      reloadBits_rd_rd0 <= pipeStage1Bits_rd_rd0; // @[DcacheStage.scala 352:17]
    end
    if (reset) begin // @[DcacheStage.scala 362:25]
      deqValid <= 1'h0; // @[DcacheStage.scala 362:25]
    end else begin
      deqValid <= _T_166;
    end
    if (_T_166) begin // @[DcacheStage.scala 368:66]
      deqBits_chkIdx <= pipeStage1Bits_chkIdx; // @[DcacheStage.scala 395:24]
    end
    if (_T_166) begin // @[DcacheStage.scala 368:66]
      deqBits_wb_rd0 <= pipeStage1Bits_rd_rd0; // @[DcacheStage.scala 394:25]
    end
    if (_T_166) begin // @[DcacheStage.scala 368:66]
      if (_cbSel_T_17) begin // @[DcacheStage.scala 386:20]
        deqBits_wb_res <= {{63'd0}, is_sc_fail};
      end else begin
        deqBits_wb_res <= deqBits_wb_res_res_pre;
      end
    end
    if (_T_166) begin // @[DcacheStage.scala 368:66]
      deqBits_is_load_amo <= _deqBits_is_load_amo_T_31; // @[DcacheStage.scala 396:25]
    end
    if (_T_166) begin // @[DcacheStage.scala 368:66]
      deqBits_is_flw <= pipeStage1Bits_fun_flw; // @[DcacheStage.scala 397:25]
    end
    if (_T_166) begin // @[DcacheStage.scala 368:66]
      deqBits_is_fld <= pipeStage1Bits_fun_fld; // @[DcacheStage.scala 398:25]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~_T_124 & _T_166 & _cbSel_T_27 & ~reset & ~(_is_sc_fail_T_32 | _is_sc_fail_T_15)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at DcacheStage.scala:164 assert( pipeStage1Bits.fun.is_dubl | pipeStage1Bits.fun.is_word )\n"
            ); // @[DcacheStage.scala 164:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_is_sc_fail_T_32 | _is_sc_fail_T_15) & (~_T_124 & _T_166 & _cbSel_T_27 & ~reset)) begin
          $fatal; // @[DcacheStage.scala 164:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (pipeStage1Valid & _T_199 & ~(_T_281 <= 2'h1)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at DcacheStage.scala:242 when( pipeStage1Valid ) {assert(PopCount(res) <= 1.U)}\n"); // @[DcacheStage.scala 242:36]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_281 <= 2'h1) & (pipeStage1Valid & _T_199)) begin
          $fatal; // @[DcacheStage.scala 242:36]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_234 & ~isHit & _T_199) begin
          $fwrite(32'h80000002,"Warning, l2 will never request a empty probe, is it in writeback unit?\n"); // @[DcacheStage.scala 283:63]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  pipeStage1Valid = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  pipeStage1Bits_chkIdx = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  pipeStage1Bits_paddr = _RAND_2[31:0];
  _RAND_3 = {4{`RANDOM}};
  pipeStage1Bits_wdata = _RAND_3[127:0];
  _RAND_4 = {1{`RANDOM}};
  pipeStage1Bits_wstrb = _RAND_4[15:0];
  _RAND_5 = {1{`RANDOM}};
  pipeStage1Bits_fun_lb = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  pipeStage1Bits_fun_lh = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  pipeStage1Bits_fun_lw = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  pipeStage1Bits_fun_ld = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  pipeStage1Bits_fun_lbu = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  pipeStage1Bits_fun_lhu = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  pipeStage1Bits_fun_lwu = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  pipeStage1Bits_fun_sb = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  pipeStage1Bits_fun_sh = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  pipeStage1Bits_fun_sw = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  pipeStage1Bits_fun_sd = _RAND_15[0:0];
  _RAND_16 = {1{`RANDOM}};
  pipeStage1Bits_fun_lr_w = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  pipeStage1Bits_fun_sc_w = _RAND_17[0:0];
  _RAND_18 = {1{`RANDOM}};
  pipeStage1Bits_fun_amoswap_w = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  pipeStage1Bits_fun_amoadd_w = _RAND_19[0:0];
  _RAND_20 = {1{`RANDOM}};
  pipeStage1Bits_fun_amoxor_w = _RAND_20[0:0];
  _RAND_21 = {1{`RANDOM}};
  pipeStage1Bits_fun_amoand_w = _RAND_21[0:0];
  _RAND_22 = {1{`RANDOM}};
  pipeStage1Bits_fun_amoor_w = _RAND_22[0:0];
  _RAND_23 = {1{`RANDOM}};
  pipeStage1Bits_fun_amomin_w = _RAND_23[0:0];
  _RAND_24 = {1{`RANDOM}};
  pipeStage1Bits_fun_amomax_w = _RAND_24[0:0];
  _RAND_25 = {1{`RANDOM}};
  pipeStage1Bits_fun_amominu_w = _RAND_25[0:0];
  _RAND_26 = {1{`RANDOM}};
  pipeStage1Bits_fun_amomaxu_w = _RAND_26[0:0];
  _RAND_27 = {1{`RANDOM}};
  pipeStage1Bits_fun_lr_d = _RAND_27[0:0];
  _RAND_28 = {1{`RANDOM}};
  pipeStage1Bits_fun_sc_d = _RAND_28[0:0];
  _RAND_29 = {1{`RANDOM}};
  pipeStage1Bits_fun_amoswap_d = _RAND_29[0:0];
  _RAND_30 = {1{`RANDOM}};
  pipeStage1Bits_fun_amoadd_d = _RAND_30[0:0];
  _RAND_31 = {1{`RANDOM}};
  pipeStage1Bits_fun_amoxor_d = _RAND_31[0:0];
  _RAND_32 = {1{`RANDOM}};
  pipeStage1Bits_fun_amoand_d = _RAND_32[0:0];
  _RAND_33 = {1{`RANDOM}};
  pipeStage1Bits_fun_amoor_d = _RAND_33[0:0];
  _RAND_34 = {1{`RANDOM}};
  pipeStage1Bits_fun_amomin_d = _RAND_34[0:0];
  _RAND_35 = {1{`RANDOM}};
  pipeStage1Bits_fun_amomax_d = _RAND_35[0:0];
  _RAND_36 = {1{`RANDOM}};
  pipeStage1Bits_fun_amominu_d = _RAND_36[0:0];
  _RAND_37 = {1{`RANDOM}};
  pipeStage1Bits_fun_amomaxu_d = _RAND_37[0:0];
  _RAND_38 = {1{`RANDOM}};
  pipeStage1Bits_fun_flw = _RAND_38[0:0];
  _RAND_39 = {1{`RANDOM}};
  pipeStage1Bits_fun_fsw = _RAND_39[0:0];
  _RAND_40 = {1{`RANDOM}};
  pipeStage1Bits_fun_fld = _RAND_40[0:0];
  _RAND_41 = {1{`RANDOM}};
  pipeStage1Bits_fun_fsd = _RAND_41[0:0];
  _RAND_42 = {1{`RANDOM}};
  pipeStage1Bits_fun_probe = _RAND_42[0:0];
  _RAND_43 = {1{`RANDOM}};
  pipeStage1Bits_fun_grant = _RAND_43[0:0];
  _RAND_44 = {1{`RANDOM}};
  pipeStage1Bits_fun_preft = _RAND_44[0:0];
  _RAND_45 = {1{`RANDOM}};
  pipeStage1Bits_rd_rd0 = _RAND_45[5:0];
  _RAND_46 = {1{`RANDOM}};
  isTagBypass_1 = _RAND_46[0:0];
  _RAND_47 = {1{`RANDOM}};
  tagBypassData_1 = _RAND_47[25:0];
  _RAND_48 = {1{`RANDOM}};
  isCBValid_3_1 = _RAND_48[0:0];
  _RAND_49 = {1{`RANDOM}};
  isCBValid_2_1 = _RAND_49[0:0];
  _RAND_50 = {1{`RANDOM}};
  isCBValid_1_1 = _RAND_50[0:0];
  _RAND_51 = {1{`RANDOM}};
  isCBValid_0_1 = _RAND_51[0:0];
  _RAND_52 = {1{`RANDOM}};
  isTagBypass = _RAND_52[0:0];
  _RAND_53 = {1{`RANDOM}};
  tagBypassData = _RAND_53[25:0];
  _RAND_54 = {1{`RANDOM}};
  isCBValid_3_0 = _RAND_54[0:0];
  _RAND_55 = {1{`RANDOM}};
  isCBValid_2_0 = _RAND_55[0:0];
  _RAND_56 = {1{`RANDOM}};
  isCBValid_1_0 = _RAND_56[0:0];
  _RAND_57 = {1{`RANDOM}};
  isCBValid_0_0 = _RAND_57[0:0];
  _RAND_58 = {1{`RANDOM}};
  isCBDirty_0_0 = _RAND_58[0:0];
  _RAND_59 = {1{`RANDOM}};
  isCBDirty_0_1 = _RAND_59[0:0];
  _RAND_60 = {1{`RANDOM}};
  isCBDirty_1_0 = _RAND_60[0:0];
  _RAND_61 = {1{`RANDOM}};
  isCBDirty_1_1 = _RAND_61[0:0];
  _RAND_62 = {1{`RANDOM}};
  isCBDirty_2_0 = _RAND_62[0:0];
  _RAND_63 = {1{`RANDOM}};
  isCBDirty_2_1 = _RAND_63[0:0];
  _RAND_64 = {1{`RANDOM}};
  isCBDirty_3_0 = _RAND_64[0:0];
  _RAND_65 = {1{`RANDOM}};
  isCBDirty_3_1 = _RAND_65[0:0];
  _RAND_66 = {1{`RANDOM}};
  is_pending_lr = _RAND_66[0:0];
  _RAND_67 = {1{`RANDOM}};
  is_lr_64_32n = _RAND_67[0:0];
  _RAND_68 = {1{`RANDOM}};
  lr_addr = _RAND_68[31:0];
  _RAND_69 = {1{`RANDOM}};
  isDatBypass = _RAND_69[0:0];
  _RAND_70 = {1{`RANDOM}};
  datBypassData__0 = _RAND_70[7:0];
  _RAND_71 = {1{`RANDOM}};
  datBypassData__1 = _RAND_71[7:0];
  _RAND_72 = {1{`RANDOM}};
  datBypassData__2 = _RAND_72[7:0];
  _RAND_73 = {1{`RANDOM}};
  datBypassData__3 = _RAND_73[7:0];
  _RAND_74 = {1{`RANDOM}};
  datBypassData__4 = _RAND_74[7:0];
  _RAND_75 = {1{`RANDOM}};
  datBypassData__5 = _RAND_75[7:0];
  _RAND_76 = {1{`RANDOM}};
  datBypassData__6 = _RAND_76[7:0];
  _RAND_77 = {1{`RANDOM}};
  datBypassData__7 = _RAND_77[7:0];
  _RAND_78 = {1{`RANDOM}};
  datBypassData__8 = _RAND_78[7:0];
  _RAND_79 = {1{`RANDOM}};
  datBypassData__9 = _RAND_79[7:0];
  _RAND_80 = {1{`RANDOM}};
  datBypassData__10 = _RAND_80[7:0];
  _RAND_81 = {1{`RANDOM}};
  datBypassData__11 = _RAND_81[7:0];
  _RAND_82 = {1{`RANDOM}};
  datBypassData__12 = _RAND_82[7:0];
  _RAND_83 = {1{`RANDOM}};
  datBypassData__13 = _RAND_83[7:0];
  _RAND_84 = {1{`RANDOM}};
  datBypassData__14 = _RAND_84[7:0];
  _RAND_85 = {1{`RANDOM}};
  datBypassData__15 = _RAND_85[7:0];
  _RAND_86 = {1{`RANDOM}};
  isDatBypass_1 = _RAND_86[0:0];
  _RAND_87 = {1{`RANDOM}};
  datBypassWM_1_15 = _RAND_87[0:0];
  _RAND_88 = {1{`RANDOM}};
  datBypassData_1_15 = _RAND_88[7:0];
  _RAND_89 = {1{`RANDOM}};
  datBypassWM__15 = _RAND_89[0:0];
  _RAND_90 = {1{`RANDOM}};
  datBypassWM_1_14 = _RAND_90[0:0];
  _RAND_91 = {1{`RANDOM}};
  datBypassData_1_14 = _RAND_91[7:0];
  _RAND_92 = {1{`RANDOM}};
  datBypassWM__14 = _RAND_92[0:0];
  _RAND_93 = {1{`RANDOM}};
  datBypassWM_1_13 = _RAND_93[0:0];
  _RAND_94 = {1{`RANDOM}};
  datBypassData_1_13 = _RAND_94[7:0];
  _RAND_95 = {1{`RANDOM}};
  datBypassWM__13 = _RAND_95[0:0];
  _RAND_96 = {1{`RANDOM}};
  datBypassWM_1_12 = _RAND_96[0:0];
  _RAND_97 = {1{`RANDOM}};
  datBypassData_1_12 = _RAND_97[7:0];
  _RAND_98 = {1{`RANDOM}};
  datBypassWM__12 = _RAND_98[0:0];
  _RAND_99 = {1{`RANDOM}};
  datBypassWM_1_11 = _RAND_99[0:0];
  _RAND_100 = {1{`RANDOM}};
  datBypassData_1_11 = _RAND_100[7:0];
  _RAND_101 = {1{`RANDOM}};
  datBypassWM__11 = _RAND_101[0:0];
  _RAND_102 = {1{`RANDOM}};
  datBypassWM_1_10 = _RAND_102[0:0];
  _RAND_103 = {1{`RANDOM}};
  datBypassData_1_10 = _RAND_103[7:0];
  _RAND_104 = {1{`RANDOM}};
  datBypassWM__10 = _RAND_104[0:0];
  _RAND_105 = {1{`RANDOM}};
  datBypassWM_1_9 = _RAND_105[0:0];
  _RAND_106 = {1{`RANDOM}};
  datBypassData_1_9 = _RAND_106[7:0];
  _RAND_107 = {1{`RANDOM}};
  datBypassWM__9 = _RAND_107[0:0];
  _RAND_108 = {1{`RANDOM}};
  datBypassWM_1_8 = _RAND_108[0:0];
  _RAND_109 = {1{`RANDOM}};
  datBypassData_1_8 = _RAND_109[7:0];
  _RAND_110 = {1{`RANDOM}};
  datBypassWM__8 = _RAND_110[0:0];
  _RAND_111 = {1{`RANDOM}};
  datBypassWM_1_7 = _RAND_111[0:0];
  _RAND_112 = {1{`RANDOM}};
  datBypassData_1_7 = _RAND_112[7:0];
  _RAND_113 = {1{`RANDOM}};
  datBypassWM__7 = _RAND_113[0:0];
  _RAND_114 = {1{`RANDOM}};
  datBypassWM_1_6 = _RAND_114[0:0];
  _RAND_115 = {1{`RANDOM}};
  datBypassData_1_6 = _RAND_115[7:0];
  _RAND_116 = {1{`RANDOM}};
  datBypassWM__6 = _RAND_116[0:0];
  _RAND_117 = {1{`RANDOM}};
  datBypassWM_1_5 = _RAND_117[0:0];
  _RAND_118 = {1{`RANDOM}};
  datBypassData_1_5 = _RAND_118[7:0];
  _RAND_119 = {1{`RANDOM}};
  datBypassWM__5 = _RAND_119[0:0];
  _RAND_120 = {1{`RANDOM}};
  datBypassWM_1_4 = _RAND_120[0:0];
  _RAND_121 = {1{`RANDOM}};
  datBypassData_1_4 = _RAND_121[7:0];
  _RAND_122 = {1{`RANDOM}};
  datBypassWM__4 = _RAND_122[0:0];
  _RAND_123 = {1{`RANDOM}};
  datBypassWM_1_3 = _RAND_123[0:0];
  _RAND_124 = {1{`RANDOM}};
  datBypassData_1_3 = _RAND_124[7:0];
  _RAND_125 = {1{`RANDOM}};
  datBypassWM__3 = _RAND_125[0:0];
  _RAND_126 = {1{`RANDOM}};
  datBypassWM_1_2 = _RAND_126[0:0];
  _RAND_127 = {1{`RANDOM}};
  datBypassData_1_2 = _RAND_127[7:0];
  _RAND_128 = {1{`RANDOM}};
  datBypassWM__2 = _RAND_128[0:0];
  _RAND_129 = {1{`RANDOM}};
  datBypassWM_1_1 = _RAND_129[0:0];
  _RAND_130 = {1{`RANDOM}};
  datBypassData_1_1 = _RAND_130[7:0];
  _RAND_131 = {1{`RANDOM}};
  datBypassWM__1 = _RAND_131[0:0];
  _RAND_132 = {1{`RANDOM}};
  datBypassWM_1_0 = _RAND_132[0:0];
  _RAND_133 = {1{`RANDOM}};
  datBypassData_1_0 = _RAND_133[7:0];
  _RAND_134 = {1{`RANDOM}};
  datBypassWM__0 = _RAND_134[0:0];
  _RAND_135 = {1{`RANDOM}};
  killTrans = _RAND_135[0:0];
  _RAND_136 = {1{`RANDOM}};
  missUnitReqValid = _RAND_136[0:0];
  _RAND_137 = {1{`RANDOM}};
  missUnitReqPaddr = _RAND_137[31:0];
  _RAND_138 = {1{`RANDOM}};
  wbReqValid = _RAND_138[0:0];
  _RAND_139 = {1{`RANDOM}};
  wbReqPaddr = _RAND_139[31:0];
  _RAND_140 = {4{`RANDOM}};
  wbReqData = _RAND_140[127:0];
  _RAND_141 = {1{`RANDOM}};
  wbReqisData = _RAND_141[0:0];
  _RAND_142 = {1{`RANDOM}};
  isPb = _RAND_142[0:0];
  _RAND_143 = {1{`RANDOM}};
  reloadValid = _RAND_143[0:0];
  _RAND_144 = {1{`RANDOM}};
  reloadBits_chkIdx = _RAND_144[0:0];
  _RAND_145 = {1{`RANDOM}};
  reloadBits_paddr = _RAND_145[31:0];
  _RAND_146 = {4{`RANDOM}};
  reloadBits_wdata = _RAND_146[127:0];
  _RAND_147 = {1{`RANDOM}};
  reloadBits_wstrb = _RAND_147[15:0];
  _RAND_148 = {1{`RANDOM}};
  reloadBits_fun_lb = _RAND_148[0:0];
  _RAND_149 = {1{`RANDOM}};
  reloadBits_fun_lh = _RAND_149[0:0];
  _RAND_150 = {1{`RANDOM}};
  reloadBits_fun_lw = _RAND_150[0:0];
  _RAND_151 = {1{`RANDOM}};
  reloadBits_fun_ld = _RAND_151[0:0];
  _RAND_152 = {1{`RANDOM}};
  reloadBits_fun_lbu = _RAND_152[0:0];
  _RAND_153 = {1{`RANDOM}};
  reloadBits_fun_lhu = _RAND_153[0:0];
  _RAND_154 = {1{`RANDOM}};
  reloadBits_fun_lwu = _RAND_154[0:0];
  _RAND_155 = {1{`RANDOM}};
  reloadBits_fun_sb = _RAND_155[0:0];
  _RAND_156 = {1{`RANDOM}};
  reloadBits_fun_sh = _RAND_156[0:0];
  _RAND_157 = {1{`RANDOM}};
  reloadBits_fun_sw = _RAND_157[0:0];
  _RAND_158 = {1{`RANDOM}};
  reloadBits_fun_sd = _RAND_158[0:0];
  _RAND_159 = {1{`RANDOM}};
  reloadBits_fun_lr_w = _RAND_159[0:0];
  _RAND_160 = {1{`RANDOM}};
  reloadBits_fun_sc_w = _RAND_160[0:0];
  _RAND_161 = {1{`RANDOM}};
  reloadBits_fun_amoswap_w = _RAND_161[0:0];
  _RAND_162 = {1{`RANDOM}};
  reloadBits_fun_amoadd_w = _RAND_162[0:0];
  _RAND_163 = {1{`RANDOM}};
  reloadBits_fun_amoxor_w = _RAND_163[0:0];
  _RAND_164 = {1{`RANDOM}};
  reloadBits_fun_amoand_w = _RAND_164[0:0];
  _RAND_165 = {1{`RANDOM}};
  reloadBits_fun_amoor_w = _RAND_165[0:0];
  _RAND_166 = {1{`RANDOM}};
  reloadBits_fun_amomin_w = _RAND_166[0:0];
  _RAND_167 = {1{`RANDOM}};
  reloadBits_fun_amomax_w = _RAND_167[0:0];
  _RAND_168 = {1{`RANDOM}};
  reloadBits_fun_amominu_w = _RAND_168[0:0];
  _RAND_169 = {1{`RANDOM}};
  reloadBits_fun_amomaxu_w = _RAND_169[0:0];
  _RAND_170 = {1{`RANDOM}};
  reloadBits_fun_lr_d = _RAND_170[0:0];
  _RAND_171 = {1{`RANDOM}};
  reloadBits_fun_sc_d = _RAND_171[0:0];
  _RAND_172 = {1{`RANDOM}};
  reloadBits_fun_amoswap_d = _RAND_172[0:0];
  _RAND_173 = {1{`RANDOM}};
  reloadBits_fun_amoadd_d = _RAND_173[0:0];
  _RAND_174 = {1{`RANDOM}};
  reloadBits_fun_amoxor_d = _RAND_174[0:0];
  _RAND_175 = {1{`RANDOM}};
  reloadBits_fun_amoand_d = _RAND_175[0:0];
  _RAND_176 = {1{`RANDOM}};
  reloadBits_fun_amoor_d = _RAND_176[0:0];
  _RAND_177 = {1{`RANDOM}};
  reloadBits_fun_amomin_d = _RAND_177[0:0];
  _RAND_178 = {1{`RANDOM}};
  reloadBits_fun_amomax_d = _RAND_178[0:0];
  _RAND_179 = {1{`RANDOM}};
  reloadBits_fun_amominu_d = _RAND_179[0:0];
  _RAND_180 = {1{`RANDOM}};
  reloadBits_fun_amomaxu_d = _RAND_180[0:0];
  _RAND_181 = {1{`RANDOM}};
  reloadBits_fun_flw = _RAND_181[0:0];
  _RAND_182 = {1{`RANDOM}};
  reloadBits_fun_fsw = _RAND_182[0:0];
  _RAND_183 = {1{`RANDOM}};
  reloadBits_fun_fld = _RAND_183[0:0];
  _RAND_184 = {1{`RANDOM}};
  reloadBits_fun_fsd = _RAND_184[0:0];
  _RAND_185 = {1{`RANDOM}};
  reloadBits_fun_probe = _RAND_185[0:0];
  _RAND_186 = {1{`RANDOM}};
  reloadBits_fun_grant = _RAND_186[0:0];
  _RAND_187 = {1{`RANDOM}};
  reloadBits_fun_preft = _RAND_187[0:0];
  _RAND_188 = {1{`RANDOM}};
  reloadBits_rd_rd0 = _RAND_188[5:0];
  _RAND_189 = {1{`RANDOM}};
  deqValid = _RAND_189[0:0];
  _RAND_190 = {1{`RANDOM}};
  deqBits_chkIdx = _RAND_190[0:0];
  _RAND_191 = {1{`RANDOM}};
  deqBits_wb_rd0 = _RAND_191[5:0];
  _RAND_192 = {2{`RANDOM}};
  deqBits_wb_res = _RAND_192[63:0];
  _RAND_193 = {1{`RANDOM}};
  deqBits_is_load_amo = _RAND_193[0:0];
  _RAND_194 = {1{`RANDOM}};
  deqBits_is_flw = _RAND_194[0:0];
  _RAND_195 = {1{`RANDOM}};
  deqBits_is_fld = _RAND_195[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Dcache(
  input          clock,
  input          reset,
  output         io_enq_ready,
  input          io_enq_valid,
  input  [31:0]  io_enq_bits_paddr,
  input  [127:0] io_enq_bits_wdata,
  input  [15:0]  io_enq_bits_wstrb,
  input          io_enq_bits_fun_lb,
  input          io_enq_bits_fun_lh,
  input          io_enq_bits_fun_lw,
  input          io_enq_bits_fun_ld,
  input          io_enq_bits_fun_lbu,
  input          io_enq_bits_fun_lhu,
  input          io_enq_bits_fun_lwu,
  input          io_enq_bits_fun_sb,
  input          io_enq_bits_fun_sh,
  input          io_enq_bits_fun_sw,
  input          io_enq_bits_fun_sd,
  input          io_enq_bits_fun_lr_w,
  input          io_enq_bits_fun_sc_w,
  input          io_enq_bits_fun_amoswap_w,
  input          io_enq_bits_fun_amoadd_w,
  input          io_enq_bits_fun_amoxor_w,
  input          io_enq_bits_fun_amoand_w,
  input          io_enq_bits_fun_amoor_w,
  input          io_enq_bits_fun_amomin_w,
  input          io_enq_bits_fun_amomax_w,
  input          io_enq_bits_fun_amominu_w,
  input          io_enq_bits_fun_amomaxu_w,
  input          io_enq_bits_fun_lr_d,
  input          io_enq_bits_fun_sc_d,
  input          io_enq_bits_fun_amoswap_d,
  input          io_enq_bits_fun_amoadd_d,
  input          io_enq_bits_fun_amoxor_d,
  input          io_enq_bits_fun_amoand_d,
  input          io_enq_bits_fun_amoor_d,
  input          io_enq_bits_fun_amomin_d,
  input          io_enq_bits_fun_amomax_d,
  input          io_enq_bits_fun_amominu_d,
  input          io_enq_bits_fun_amomaxu_d,
  input          io_enq_bits_fun_flw,
  input          io_enq_bits_fun_fsw,
  input          io_enq_bits_fun_fld,
  input          io_enq_bits_fun_fsd,
  input  [5:0]   io_enq_bits_rd_rd0,
  input          io_deq_ready,
  output         io_deq_valid,
  output         io_deq_bits_chkIdx,
  output [5:0]   io_deq_bits_wb_rd0,
  output [63:0]  io_deq_bits_wb_res,
  output         io_deq_bits_is_load_amo,
  output         io_deq_bits_is_flw,
  output         io_deq_bits_is_fld,
  output         io_is_empty,
  input          io_flush,
  input          io_missUnit_dcache_acquire_ready,
  output         io_missUnit_dcache_acquire_valid,
  output [31:0]  io_missUnit_dcache_acquire_bits_address,
  output         io_missUnit_dcache_grant_ready,
  input          io_missUnit_dcache_grant_valid,
  input  [2:0]   io_missUnit_dcache_grant_bits_opcode,
  input  [2:0]   io_missUnit_dcache_grant_bits_size,
  input          io_missUnit_dcache_grant_bits_source,
  input  [4:0]   io_missUnit_dcache_grant_bits_sink,
  input  [63:0]  io_missUnit_dcache_grant_bits_data,
  input          io_missUnit_dcache_grantAck_ready,
  output         io_missUnit_dcache_grantAck_valid,
  output [4:0]   io_missUnit_dcache_grantAck_bits_sink,
  output         io_probeUnit_dcache_probe_ready,
  input          io_probeUnit_dcache_probe_valid,
  input  [31:0]  io_probeUnit_dcache_probe_bits_address,
  input          io_writeBackUnit_dcache_release_ready,
  output         io_writeBackUnit_dcache_release_valid,
  output [2:0]   io_writeBackUnit_dcache_release_bits_opcode,
  output [2:0]   io_writeBackUnit_dcache_release_bits_param,
  output [2:0]   io_writeBackUnit_dcache_release_bits_size,
  output [31:0]  io_writeBackUnit_dcache_release_bits_address,
  output [63:0]  io_writeBackUnit_dcache_release_bits_data,
  output         io_writeBackUnit_dcache_grant_ready,
  input          io_writeBackUnit_dcache_grant_valid,
  input          io_writeBackUnit_dcache_grant_bits_source
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
`endif // RANDOMIZE_REG_INIT
  wire  missUnit_clock; // @[Dcache.scala 116:46]
  wire  missUnit_reset; // @[Dcache.scala 116:46]
  wire  missUnit_io_req_valid; // @[Dcache.scala 116:46]
  wire [31:0] missUnit_io_req_bits_paddr; // @[Dcache.scala 116:46]
  wire  missUnit_io_rsp_valid; // @[Dcache.scala 116:46]
  wire [31:0] missUnit_io_rsp_bits_paddr; // @[Dcache.scala 116:46]
  wire [127:0] missUnit_io_rsp_bits_wdata; // @[Dcache.scala 116:46]
  wire  missUnit_io_cache_acquire_ready; // @[Dcache.scala 116:46]
  wire  missUnit_io_cache_acquire_valid; // @[Dcache.scala 116:46]
  wire [31:0] missUnit_io_cache_acquire_bits_address; // @[Dcache.scala 116:46]
  wire  missUnit_io_cache_grant_ready; // @[Dcache.scala 116:46]
  wire  missUnit_io_cache_grant_valid; // @[Dcache.scala 116:46]
  wire [2:0] missUnit_io_cache_grant_bits_opcode; // @[Dcache.scala 116:46]
  wire [2:0] missUnit_io_cache_grant_bits_size; // @[Dcache.scala 116:46]
  wire  missUnit_io_cache_grant_bits_source; // @[Dcache.scala 116:46]
  wire [4:0] missUnit_io_cache_grant_bits_sink; // @[Dcache.scala 116:46]
  wire [63:0] missUnit_io_cache_grant_bits_data; // @[Dcache.scala 116:46]
  wire  missUnit_io_cache_grantAck_ready; // @[Dcache.scala 116:46]
  wire  missUnit_io_cache_grantAck_valid; // @[Dcache.scala 116:46]
  wire [4:0] missUnit_io_cache_grantAck_bits_sink; // @[Dcache.scala 116:46]
  wire  missUnit_io_miss_ban; // @[Dcache.scala 116:46]
  wire  missUnit_io_release_ban; // @[Dcache.scala 116:46]
  wire  probeUnit_clock; // @[Dcache.scala 117:46]
  wire  probeUnit_reset; // @[Dcache.scala 117:46]
  wire  probeUnit_io_cache_probe_ready; // @[Dcache.scala 117:46]
  wire  probeUnit_io_cache_probe_valid; // @[Dcache.scala 117:46]
  wire [31:0] probeUnit_io_cache_probe_bits_address; // @[Dcache.scala 117:46]
  wire  probeUnit_io_req_ready; // @[Dcache.scala 117:46]
  wire  probeUnit_io_req_valid; // @[Dcache.scala 117:46]
  wire [31:0] probeUnit_io_req_bits_paddr; // @[Dcache.scala 117:46]
  wire  probeUnit_io_probeBan; // @[Dcache.scala 117:46]
  wire  writeBackUnit_clock; // @[Dcache.scala 118:46]
  wire  writeBackUnit_reset; // @[Dcache.scala 118:46]
  wire  writeBackUnit_io_wb_req_valid; // @[Dcache.scala 118:46]
  wire [31:0] writeBackUnit_io_wb_req_bits_paddr; // @[Dcache.scala 118:46]
  wire [127:0] writeBackUnit_io_wb_req_bits_data; // @[Dcache.scala 118:46]
  wire  writeBackUnit_io_wb_req_bits_is_releaseData; // @[Dcache.scala 118:46]
  wire  writeBackUnit_io_wb_req_bits_is_release; // @[Dcache.scala 118:46]
  wire  writeBackUnit_io_wb_req_bits_is_probe; // @[Dcache.scala 118:46]
  wire  writeBackUnit_io_wb_req_bits_is_probeData; // @[Dcache.scala 118:46]
  wire  writeBackUnit_io_cache_release_ready; // @[Dcache.scala 118:46]
  wire  writeBackUnit_io_cache_release_valid; // @[Dcache.scala 118:46]
  wire [2:0] writeBackUnit_io_cache_release_bits_opcode; // @[Dcache.scala 118:46]
  wire [2:0] writeBackUnit_io_cache_release_bits_param; // @[Dcache.scala 118:46]
  wire [2:0] writeBackUnit_io_cache_release_bits_size; // @[Dcache.scala 118:46]
  wire [31:0] writeBackUnit_io_cache_release_bits_address; // @[Dcache.scala 118:46]
  wire [63:0] writeBackUnit_io_cache_release_bits_data; // @[Dcache.scala 118:46]
  wire  writeBackUnit_io_cache_grant_ready; // @[Dcache.scala 118:46]
  wire  writeBackUnit_io_cache_grant_valid; // @[Dcache.scala 118:46]
  wire  writeBackUnit_io_cache_grant_bits_source; // @[Dcache.scala 118:46]
  wire  writeBackUnit_io_release_ban; // @[Dcache.scala 118:46]
  wire  writeBackUnit_io_miss_ban; // @[Dcache.scala 118:46]
  wire  lsEntry_clock; // @[Dcache.scala 123:23]
  wire  lsEntry_reset; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_ready; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_valid; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_chkIdx; // @[Dcache.scala 123:23]
  wire [31:0] lsEntry_io_enq_bits_paddr; // @[Dcache.scala 123:23]
  wire [127:0] lsEntry_io_enq_bits_wdata; // @[Dcache.scala 123:23]
  wire [15:0] lsEntry_io_enq_bits_wstrb; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_lb; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_lh; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_lw; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_ld; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_lbu; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_lhu; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_lwu; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_sb; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_sh; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_sw; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_sd; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_lr_w; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_sc_w; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_amoswap_w; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_amoadd_w; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_amoxor_w; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_amoand_w; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_amoor_w; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_amomin_w; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_amomax_w; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_amominu_w; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_amomaxu_w; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_lr_d; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_sc_d; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_amoswap_d; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_amoadd_d; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_amoxor_d; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_amoand_d; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_amoor_d; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_amomin_d; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_amomax_d; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_amominu_d; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_amomaxu_d; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_flw; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_fsw; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_fld; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_fsd; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_probe; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_grant; // @[Dcache.scala 123:23]
  wire  lsEntry_io_enq_bits_fun_preft; // @[Dcache.scala 123:23]
  wire [5:0] lsEntry_io_enq_bits_rd_rd0; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_ready; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_valid; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_chkIdx; // @[Dcache.scala 123:23]
  wire [31:0] lsEntry_io_deq_bits_paddr; // @[Dcache.scala 123:23]
  wire [127:0] lsEntry_io_deq_bits_wdata; // @[Dcache.scala 123:23]
  wire [15:0] lsEntry_io_deq_bits_wstrb; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_lb; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_lh; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_lw; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_ld; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_lbu; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_lhu; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_lwu; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_sb; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_sh; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_sw; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_sd; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_lr_w; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_sc_w; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_amoswap_w; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_amoadd_w; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_amoxor_w; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_amoand_w; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_amoor_w; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_amomin_w; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_amomax_w; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_amominu_w; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_amomaxu_w; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_lr_d; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_sc_d; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_amoswap_d; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_amoadd_d; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_amoxor_d; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_amoand_d; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_amoor_d; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_amomin_d; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_amomax_d; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_amominu_d; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_amomaxu_d; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_flw; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_fsw; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_fld; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_fsd; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_probe; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_grant; // @[Dcache.scala 123:23]
  wire  lsEntry_io_deq_bits_fun_preft; // @[Dcache.scala 123:23]
  wire [5:0] lsEntry_io_deq_bits_rd_rd0; // @[Dcache.scala 123:23]
  wire  rtn_fifo_clock; // @[Dcache.scala 126:24]
  wire  rtn_fifo_reset; // @[Dcache.scala 126:24]
  wire  rtn_fifo_io_enq_ready; // @[Dcache.scala 126:24]
  wire  rtn_fifo_io_enq_valid; // @[Dcache.scala 126:24]
  wire  rtn_fifo_io_enq_bits_chkIdx; // @[Dcache.scala 126:24]
  wire [5:0] rtn_fifo_io_enq_bits_wb_rd0; // @[Dcache.scala 126:24]
  wire [63:0] rtn_fifo_io_enq_bits_wb_res; // @[Dcache.scala 126:24]
  wire  rtn_fifo_io_enq_bits_is_load_amo; // @[Dcache.scala 126:24]
  wire  rtn_fifo_io_enq_bits_is_flw; // @[Dcache.scala 126:24]
  wire  rtn_fifo_io_enq_bits_is_fld; // @[Dcache.scala 126:24]
  wire  rtn_fifo_io_deq_ready; // @[Dcache.scala 126:24]
  wire  rtn_fifo_io_deq_valid; // @[Dcache.scala 126:24]
  wire  rtn_fifo_io_deq_bits_chkIdx; // @[Dcache.scala 126:24]
  wire [5:0] rtn_fifo_io_deq_bits_wb_rd0; // @[Dcache.scala 126:24]
  wire [63:0] rtn_fifo_io_deq_bits_wb_res; // @[Dcache.scala 126:24]
  wire  rtn_fifo_io_deq_bits_is_load_amo; // @[Dcache.scala 126:24]
  wire  rtn_fifo_io_deq_bits_is_flw; // @[Dcache.scala 126:24]
  wire  rtn_fifo_io_deq_bits_is_fld; // @[Dcache.scala 126:24]
  wire  op_arb_io_in_0_ready; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_valid; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_chkIdx; // @[Dcache.scala 127:22]
  wire [31:0] op_arb_io_in_0_bits_paddr; // @[Dcache.scala 127:22]
  wire [127:0] op_arb_io_in_0_bits_wdata; // @[Dcache.scala 127:22]
  wire [15:0] op_arb_io_in_0_bits_wstrb; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_lb; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_lh; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_lw; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_ld; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_lbu; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_lhu; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_lwu; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_sb; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_sh; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_sw; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_sd; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_lr_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_sc_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_amoswap_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_amoadd_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_amoxor_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_amoand_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_amoor_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_amomin_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_amomax_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_amominu_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_amomaxu_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_lr_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_sc_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_amoswap_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_amoadd_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_amoxor_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_amoand_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_amoor_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_amomin_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_amomax_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_amominu_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_amomaxu_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_flw; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_fsw; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_fld; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_fsd; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_probe; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_grant; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_0_bits_fun_preft; // @[Dcache.scala 127:22]
  wire [5:0] op_arb_io_in_0_bits_rd_rd0; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_ready; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_valid; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_chkIdx; // @[Dcache.scala 127:22]
  wire [31:0] op_arb_io_in_1_bits_paddr; // @[Dcache.scala 127:22]
  wire [127:0] op_arb_io_in_1_bits_wdata; // @[Dcache.scala 127:22]
  wire [15:0] op_arb_io_in_1_bits_wstrb; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_lb; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_lh; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_lw; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_ld; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_lbu; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_lhu; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_lwu; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_sb; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_sh; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_sw; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_sd; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_lr_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_sc_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_amoswap_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_amoadd_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_amoxor_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_amoand_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_amoor_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_amomin_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_amomax_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_amominu_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_amomaxu_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_lr_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_sc_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_amoswap_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_amoadd_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_amoxor_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_amoand_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_amoor_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_amomin_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_amomax_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_amominu_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_amomaxu_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_flw; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_fsw; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_fld; // @[Dcache.scala 127:22]
  wire  op_arb_io_in_1_bits_fun_fsd; // @[Dcache.scala 127:22]
  wire [5:0] op_arb_io_in_1_bits_rd_rd0; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_ready; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_valid; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_chkIdx; // @[Dcache.scala 127:22]
  wire [31:0] op_arb_io_out_bits_paddr; // @[Dcache.scala 127:22]
  wire [127:0] op_arb_io_out_bits_wdata; // @[Dcache.scala 127:22]
  wire [15:0] op_arb_io_out_bits_wstrb; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_lb; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_lh; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_lw; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_ld; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_lbu; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_lhu; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_lwu; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_sb; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_sh; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_sw; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_sd; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_lr_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_sc_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_amoswap_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_amoadd_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_amoxor_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_amoand_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_amoor_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_amomin_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_amomax_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_amominu_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_amomaxu_w; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_lr_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_sc_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_amoswap_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_amoadd_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_amoxor_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_amoand_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_amoor_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_amomin_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_amomax_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_amominu_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_amomaxu_d; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_flw; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_fsw; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_fld; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_fsd; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_probe; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_grant; // @[Dcache.scala 127:22]
  wire  op_arb_io_out_bits_fun_preft; // @[Dcache.scala 127:22]
  wire [5:0] op_arb_io_out_bits_rd_rd0; // @[Dcache.scala 127:22]
  wire  rd_arb_io_in_0_valid; // @[Dcache.scala 128:22]
  wire [31:0] rd_arb_io_in_0_bits_paddr; // @[Dcache.scala 128:22]
  wire [127:0] rd_arb_io_in_0_bits_wdata; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_1_ready; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_1_valid; // @[Dcache.scala 128:22]
  wire [31:0] rd_arb_io_in_1_bits_paddr; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_ready; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_valid; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_chkIdx; // @[Dcache.scala 128:22]
  wire [31:0] rd_arb_io_in_2_bits_paddr; // @[Dcache.scala 128:22]
  wire [127:0] rd_arb_io_in_2_bits_wdata; // @[Dcache.scala 128:22]
  wire [15:0] rd_arb_io_in_2_bits_wstrb; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_lb; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_lh; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_lw; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_ld; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_lbu; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_lhu; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_lwu; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_sb; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_sh; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_sw; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_sd; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_lr_w; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_sc_w; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_amoswap_w; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_amoadd_w; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_amoxor_w; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_amoand_w; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_amoor_w; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_amomin_w; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_amomax_w; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_amominu_w; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_amomaxu_w; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_lr_d; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_sc_d; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_amoswap_d; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_amoadd_d; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_amoxor_d; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_amoand_d; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_amoor_d; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_amomin_d; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_amomax_d; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_amominu_d; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_amomaxu_d; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_flw; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_fsw; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_fld; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_fsd; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_probe; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_grant; // @[Dcache.scala 128:22]
  wire  rd_arb_io_in_2_bits_fun_preft; // @[Dcache.scala 128:22]
  wire [5:0] rd_arb_io_in_2_bits_rd_rd0; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_valid; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_chkIdx; // @[Dcache.scala 128:22]
  wire [31:0] rd_arb_io_out_bits_paddr; // @[Dcache.scala 128:22]
  wire [127:0] rd_arb_io_out_bits_wdata; // @[Dcache.scala 128:22]
  wire [15:0] rd_arb_io_out_bits_wstrb; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_lb; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_lh; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_lw; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_ld; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_lbu; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_lhu; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_lwu; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_sb; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_sh; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_sw; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_sd; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_lr_w; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_sc_w; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_amoswap_w; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_amoadd_w; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_amoxor_w; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_amoand_w; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_amoor_w; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_amomin_w; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_amomax_w; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_amominu_w; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_amomaxu_w; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_lr_d; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_sc_d; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_amoswap_d; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_amoadd_d; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_amoxor_d; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_amoand_d; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_amoor_d; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_amomin_d; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_amomax_d; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_amominu_d; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_amomaxu_d; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_flw; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_fsw; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_fld; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_fsd; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_probe; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_grant; // @[Dcache.scala 128:22]
  wire  rd_arb_io_out_bits_fun_preft; // @[Dcache.scala 128:22]
  wire [5:0] rd_arb_io_out_bits_rd_rd0; // @[Dcache.scala 128:22]
  wire  reload_fifo_clock; // @[Dcache.scala 130:27]
  wire  reload_fifo_reset; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_ready; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_valid; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_chkIdx; // @[Dcache.scala 130:27]
  wire [31:0] reload_fifo_io_enq_bits_paddr; // @[Dcache.scala 130:27]
  wire [127:0] reload_fifo_io_enq_bits_wdata; // @[Dcache.scala 130:27]
  wire [15:0] reload_fifo_io_enq_bits_wstrb; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_lb; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_lh; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_lw; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_ld; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_lbu; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_lhu; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_lwu; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_sb; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_sh; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_sw; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_sd; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_lr_w; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_sc_w; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_amoswap_w; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_amoadd_w; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_amoxor_w; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_amoand_w; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_amoor_w; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_amomin_w; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_amomax_w; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_amominu_w; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_amomaxu_w; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_lr_d; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_sc_d; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_amoswap_d; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_amoadd_d; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_amoxor_d; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_amoand_d; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_amoor_d; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_amomin_d; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_amomax_d; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_amominu_d; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_amomaxu_d; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_flw; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_fsw; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_fld; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_fsd; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_probe; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_grant; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_enq_bits_fun_preft; // @[Dcache.scala 130:27]
  wire [5:0] reload_fifo_io_enq_bits_rd_rd0; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_ready; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_valid; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_chkIdx; // @[Dcache.scala 130:27]
  wire [31:0] reload_fifo_io_deq_bits_paddr; // @[Dcache.scala 130:27]
  wire [127:0] reload_fifo_io_deq_bits_wdata; // @[Dcache.scala 130:27]
  wire [15:0] reload_fifo_io_deq_bits_wstrb; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_lb; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_lh; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_lw; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_ld; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_lbu; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_lhu; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_lwu; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_sb; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_sh; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_sw; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_sd; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_lr_w; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_sc_w; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_amoswap_w; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_amoadd_w; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_amoxor_w; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_amoand_w; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_amoor_w; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_amomin_w; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_amomax_w; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_amominu_w; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_amomaxu_w; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_lr_d; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_sc_d; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_amoswap_d; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_amoadd_d; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_amoxor_d; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_amoand_d; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_amoor_d; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_amomin_d; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_amomax_d; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_amominu_d; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_amomaxu_d; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_flw; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_fsw; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_fld; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_fsd; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_probe; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_grant; // @[Dcache.scala 130:27]
  wire  reload_fifo_io_deq_bits_fun_preft; // @[Dcache.scala 130:27]
  wire [5:0] reload_fifo_io_deq_bits_rd_rd0; // @[Dcache.scala 130:27]
  wire  stage_clock; // @[Dcache.scala 132:21]
  wire  stage_reset; // @[Dcache.scala 132:21]
  wire  stage_io_enq_ready; // @[Dcache.scala 132:21]
  wire  stage_io_enq_valid; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_chkIdx; // @[Dcache.scala 132:21]
  wire [31:0] stage_io_enq_bits_paddr; // @[Dcache.scala 132:21]
  wire [127:0] stage_io_enq_bits_wdata; // @[Dcache.scala 132:21]
  wire [15:0] stage_io_enq_bits_wstrb; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_lb; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_lh; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_lw; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_ld; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_lbu; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_lhu; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_lwu; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_sb; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_sh; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_sw; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_sd; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_lr_w; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_sc_w; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_amoswap_w; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_amoadd_w; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_amoxor_w; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_amoand_w; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_amoor_w; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_amomin_w; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_amomax_w; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_amominu_w; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_amomaxu_w; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_lr_d; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_sc_d; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_amoswap_d; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_amoadd_d; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_amoxor_d; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_amoand_d; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_amoor_d; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_amomin_d; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_amomax_d; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_amominu_d; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_amomaxu_d; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_flw; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_fsw; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_fld; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_fsd; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_probe; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_grant; // @[Dcache.scala 132:21]
  wire  stage_io_enq_bits_fun_preft; // @[Dcache.scala 132:21]
  wire [5:0] stage_io_enq_bits_rd_rd0; // @[Dcache.scala 132:21]
  wire  stage_io_reload_valid; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_chkIdx; // @[Dcache.scala 132:21]
  wire [31:0] stage_io_reload_bits_paddr; // @[Dcache.scala 132:21]
  wire [127:0] stage_io_reload_bits_wdata; // @[Dcache.scala 132:21]
  wire [15:0] stage_io_reload_bits_wstrb; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_lb; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_lh; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_lw; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_ld; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_lbu; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_lhu; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_lwu; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_sb; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_sh; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_sw; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_sd; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_lr_w; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_sc_w; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_amoswap_w; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_amoadd_w; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_amoxor_w; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_amoand_w; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_amoor_w; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_amomin_w; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_amomax_w; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_amominu_w; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_amomaxu_w; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_lr_d; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_sc_d; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_amoswap_d; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_amoadd_d; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_amoxor_d; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_amoand_d; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_amoor_d; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_amomin_d; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_amomax_d; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_amominu_d; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_amomaxu_d; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_flw; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_fsw; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_fld; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_fsd; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_probe; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_grant; // @[Dcache.scala 132:21]
  wire  stage_io_reload_bits_fun_preft; // @[Dcache.scala 132:21]
  wire [5:0] stage_io_reload_bits_rd_rd0; // @[Dcache.scala 132:21]
  wire  stage_io_deq_valid; // @[Dcache.scala 132:21]
  wire  stage_io_deq_bits_chkIdx; // @[Dcache.scala 132:21]
  wire [5:0] stage_io_deq_bits_wb_rd0; // @[Dcache.scala 132:21]
  wire [63:0] stage_io_deq_bits_wb_res; // @[Dcache.scala 132:21]
  wire  stage_io_deq_bits_is_load_amo; // @[Dcache.scala 132:21]
  wire  stage_io_deq_bits_is_flw; // @[Dcache.scala 132:21]
  wire  stage_io_deq_bits_is_fld; // @[Dcache.scala 132:21]
  wire  stage_io_missUnit_req_valid; // @[Dcache.scala 132:21]
  wire [31:0] stage_io_missUnit_req_bits_paddr; // @[Dcache.scala 132:21]
  wire  stage_io_wb_req_valid; // @[Dcache.scala 132:21]
  wire [31:0] stage_io_wb_req_bits_paddr; // @[Dcache.scala 132:21]
  wire [127:0] stage_io_wb_req_bits_data; // @[Dcache.scala 132:21]
  wire  stage_io_wb_req_bits_is_releaseData; // @[Dcache.scala 132:21]
  wire  stage_io_wb_req_bits_is_release; // @[Dcache.scala 132:21]
  wire  stage_io_wb_req_bits_is_probe; // @[Dcache.scala 132:21]
  wire  stage_io_wb_req_bits_is_probeData; // @[Dcache.scala 132:21]
  wire  stage_io_isCacheEmpty; // @[Dcache.scala 132:21]
  wire  stage_io_flush; // @[Dcache.scala 132:21]
  reg [31:0] sbBuff_0_paddr; // @[Dcache.scala 138:23]
  reg [31:0] sbBuff_1_paddr; // @[Dcache.scala 138:23]
  reg  sbValid_0; // @[Dcache.scala 139:24]
  reg  sbValid_1; // @[Dcache.scala 139:24]
  wire  isHazard = sbBuff_0_paddr[31:3] == io_enq_bits_paddr[31:3] | sbBuff_1_paddr[31:3] == io_enq_bits_paddr[31:3]; // @[Dcache.scala 142:106]
  wire  _sbIdx_T = ~sbValid_0; // @[Dcache.scala 143:50]
  wire  sbIdx = ~sbValid_0 ? 1'h0 : 1'h1; // @[Dcache.scala 143:33]
  wire  _sbEnqReady_T_1 = ~sbValid_1; // @[Dcache.scala 147:36]
  wire  _sbEnqReady_T_4 = ~isHazard; // @[Dcache.scala 148:5]
  wire  sbEnqReady = (_sbIdx_T | ~sbValid_1) & _sbEnqReady_T_4; // @[Dcache.scala 147:51]
  wire  _T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire [31:0] _GEN_2 = ~sbIdx ? io_enq_bits_paddr : sbBuff_0_paddr; // @[Dcache.scala 151:{20,20} 138:23]
  wire [31:0] _GEN_3 = sbIdx ? io_enq_bits_paddr : sbBuff_1_paddr; // @[Dcache.scala 151:{20,20} 138:23]
  wire  _GEN_96 = ~sbIdx | sbValid_0; // @[Dcache.scala 152:{20,20} 139:24]
  wire  _GEN_97 = sbIdx | sbValid_1; // @[Dcache.scala 152:{20,20} 139:24]
  wire [31:0] _GEN_100 = _T ? _GEN_2 : sbBuff_0_paddr; // @[Dcache.scala 138:23 150:23]
  wire [31:0] _GEN_101 = _T ? _GEN_3 : sbBuff_1_paddr; // @[Dcache.scala 138:23 150:23]
  wire  _GEN_194 = _T ? _GEN_96 : sbValid_0; // @[Dcache.scala 150:23 139:24]
  wire  _GEN_195 = _T ? _GEN_97 : sbValid_1; // @[Dcache.scala 150:23 139:24]
  wire  _T_1 = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire  isSBEmpty = _sbIdx_T & _sbEnqReady_T_1; // @[Dcache.scala 160:33]
  wire  _T_5 = ~reset; // @[Dcache.scala 161:31]
  wire [1:0] _T_10 = 1'h1 + (sbBuff_1_paddr == sbBuff_0_paddr); // @[Dcache.scala 168:27]
  wire [1:0] _T_19 = (sbBuff_0_paddr == sbBuff_1_paddr) + 1'h1; // @[Dcache.scala 168:27]
  MissUnit missUnit ( // @[Dcache.scala 116:46]
    .clock(missUnit_clock),
    .reset(missUnit_reset),
    .io_req_valid(missUnit_io_req_valid),
    .io_req_bits_paddr(missUnit_io_req_bits_paddr),
    .io_rsp_valid(missUnit_io_rsp_valid),
    .io_rsp_bits_paddr(missUnit_io_rsp_bits_paddr),
    .io_rsp_bits_wdata(missUnit_io_rsp_bits_wdata),
    .io_cache_acquire_ready(missUnit_io_cache_acquire_ready),
    .io_cache_acquire_valid(missUnit_io_cache_acquire_valid),
    .io_cache_acquire_bits_address(missUnit_io_cache_acquire_bits_address),
    .io_cache_grant_ready(missUnit_io_cache_grant_ready),
    .io_cache_grant_valid(missUnit_io_cache_grant_valid),
    .io_cache_grant_bits_opcode(missUnit_io_cache_grant_bits_opcode),
    .io_cache_grant_bits_size(missUnit_io_cache_grant_bits_size),
    .io_cache_grant_bits_source(missUnit_io_cache_grant_bits_source),
    .io_cache_grant_bits_sink(missUnit_io_cache_grant_bits_sink),
    .io_cache_grant_bits_data(missUnit_io_cache_grant_bits_data),
    .io_cache_grantAck_ready(missUnit_io_cache_grantAck_ready),
    .io_cache_grantAck_valid(missUnit_io_cache_grantAck_valid),
    .io_cache_grantAck_bits_sink(missUnit_io_cache_grantAck_bits_sink),
    .io_miss_ban(missUnit_io_miss_ban),
    .io_release_ban(missUnit_io_release_ban)
  );
  ProbeUnit probeUnit ( // @[Dcache.scala 117:46]
    .clock(probeUnit_clock),
    .reset(probeUnit_reset),
    .io_cache_probe_ready(probeUnit_io_cache_probe_ready),
    .io_cache_probe_valid(probeUnit_io_cache_probe_valid),
    .io_cache_probe_bits_address(probeUnit_io_cache_probe_bits_address),
    .io_req_ready(probeUnit_io_req_ready),
    .io_req_valid(probeUnit_io_req_valid),
    .io_req_bits_paddr(probeUnit_io_req_bits_paddr),
    .io_probeBan(probeUnit_io_probeBan)
  );
  WriteBackUnit writeBackUnit ( // @[Dcache.scala 118:46]
    .clock(writeBackUnit_clock),
    .reset(writeBackUnit_reset),
    .io_wb_req_valid(writeBackUnit_io_wb_req_valid),
    .io_wb_req_bits_paddr(writeBackUnit_io_wb_req_bits_paddr),
    .io_wb_req_bits_data(writeBackUnit_io_wb_req_bits_data),
    .io_wb_req_bits_is_releaseData(writeBackUnit_io_wb_req_bits_is_releaseData),
    .io_wb_req_bits_is_release(writeBackUnit_io_wb_req_bits_is_release),
    .io_wb_req_bits_is_probe(writeBackUnit_io_wb_req_bits_is_probe),
    .io_wb_req_bits_is_probeData(writeBackUnit_io_wb_req_bits_is_probeData),
    .io_cache_release_ready(writeBackUnit_io_cache_release_ready),
    .io_cache_release_valid(writeBackUnit_io_cache_release_valid),
    .io_cache_release_bits_opcode(writeBackUnit_io_cache_release_bits_opcode),
    .io_cache_release_bits_param(writeBackUnit_io_cache_release_bits_param),
    .io_cache_release_bits_size(writeBackUnit_io_cache_release_bits_size),
    .io_cache_release_bits_address(writeBackUnit_io_cache_release_bits_address),
    .io_cache_release_bits_data(writeBackUnit_io_cache_release_bits_data),
    .io_cache_grant_ready(writeBackUnit_io_cache_grant_ready),
    .io_cache_grant_valid(writeBackUnit_io_cache_grant_valid),
    .io_cache_grant_bits_source(writeBackUnit_io_cache_grant_bits_source),
    .io_release_ban(writeBackUnit_io_release_ban),
    .io_miss_ban(writeBackUnit_io_miss_ban)
  );
  Queue_13 lsEntry ( // @[Dcache.scala 123:23]
    .clock(lsEntry_clock),
    .reset(lsEntry_reset),
    .io_enq_ready(lsEntry_io_enq_ready),
    .io_enq_valid(lsEntry_io_enq_valid),
    .io_enq_bits_chkIdx(lsEntry_io_enq_bits_chkIdx),
    .io_enq_bits_paddr(lsEntry_io_enq_bits_paddr),
    .io_enq_bits_wdata(lsEntry_io_enq_bits_wdata),
    .io_enq_bits_wstrb(lsEntry_io_enq_bits_wstrb),
    .io_enq_bits_fun_lb(lsEntry_io_enq_bits_fun_lb),
    .io_enq_bits_fun_lh(lsEntry_io_enq_bits_fun_lh),
    .io_enq_bits_fun_lw(lsEntry_io_enq_bits_fun_lw),
    .io_enq_bits_fun_ld(lsEntry_io_enq_bits_fun_ld),
    .io_enq_bits_fun_lbu(lsEntry_io_enq_bits_fun_lbu),
    .io_enq_bits_fun_lhu(lsEntry_io_enq_bits_fun_lhu),
    .io_enq_bits_fun_lwu(lsEntry_io_enq_bits_fun_lwu),
    .io_enq_bits_fun_sb(lsEntry_io_enq_bits_fun_sb),
    .io_enq_bits_fun_sh(lsEntry_io_enq_bits_fun_sh),
    .io_enq_bits_fun_sw(lsEntry_io_enq_bits_fun_sw),
    .io_enq_bits_fun_sd(lsEntry_io_enq_bits_fun_sd),
    .io_enq_bits_fun_lr_w(lsEntry_io_enq_bits_fun_lr_w),
    .io_enq_bits_fun_sc_w(lsEntry_io_enq_bits_fun_sc_w),
    .io_enq_bits_fun_amoswap_w(lsEntry_io_enq_bits_fun_amoswap_w),
    .io_enq_bits_fun_amoadd_w(lsEntry_io_enq_bits_fun_amoadd_w),
    .io_enq_bits_fun_amoxor_w(lsEntry_io_enq_bits_fun_amoxor_w),
    .io_enq_bits_fun_amoand_w(lsEntry_io_enq_bits_fun_amoand_w),
    .io_enq_bits_fun_amoor_w(lsEntry_io_enq_bits_fun_amoor_w),
    .io_enq_bits_fun_amomin_w(lsEntry_io_enq_bits_fun_amomin_w),
    .io_enq_bits_fun_amomax_w(lsEntry_io_enq_bits_fun_amomax_w),
    .io_enq_bits_fun_amominu_w(lsEntry_io_enq_bits_fun_amominu_w),
    .io_enq_bits_fun_amomaxu_w(lsEntry_io_enq_bits_fun_amomaxu_w),
    .io_enq_bits_fun_lr_d(lsEntry_io_enq_bits_fun_lr_d),
    .io_enq_bits_fun_sc_d(lsEntry_io_enq_bits_fun_sc_d),
    .io_enq_bits_fun_amoswap_d(lsEntry_io_enq_bits_fun_amoswap_d),
    .io_enq_bits_fun_amoadd_d(lsEntry_io_enq_bits_fun_amoadd_d),
    .io_enq_bits_fun_amoxor_d(lsEntry_io_enq_bits_fun_amoxor_d),
    .io_enq_bits_fun_amoand_d(lsEntry_io_enq_bits_fun_amoand_d),
    .io_enq_bits_fun_amoor_d(lsEntry_io_enq_bits_fun_amoor_d),
    .io_enq_bits_fun_amomin_d(lsEntry_io_enq_bits_fun_amomin_d),
    .io_enq_bits_fun_amomax_d(lsEntry_io_enq_bits_fun_amomax_d),
    .io_enq_bits_fun_amominu_d(lsEntry_io_enq_bits_fun_amominu_d),
    .io_enq_bits_fun_amomaxu_d(lsEntry_io_enq_bits_fun_amomaxu_d),
    .io_enq_bits_fun_flw(lsEntry_io_enq_bits_fun_flw),
    .io_enq_bits_fun_fsw(lsEntry_io_enq_bits_fun_fsw),
    .io_enq_bits_fun_fld(lsEntry_io_enq_bits_fun_fld),
    .io_enq_bits_fun_fsd(lsEntry_io_enq_bits_fun_fsd),
    .io_enq_bits_fun_probe(lsEntry_io_enq_bits_fun_probe),
    .io_enq_bits_fun_grant(lsEntry_io_enq_bits_fun_grant),
    .io_enq_bits_fun_preft(lsEntry_io_enq_bits_fun_preft),
    .io_enq_bits_rd_rd0(lsEntry_io_enq_bits_rd_rd0),
    .io_deq_ready(lsEntry_io_deq_ready),
    .io_deq_valid(lsEntry_io_deq_valid),
    .io_deq_bits_chkIdx(lsEntry_io_deq_bits_chkIdx),
    .io_deq_bits_paddr(lsEntry_io_deq_bits_paddr),
    .io_deq_bits_wdata(lsEntry_io_deq_bits_wdata),
    .io_deq_bits_wstrb(lsEntry_io_deq_bits_wstrb),
    .io_deq_bits_fun_lb(lsEntry_io_deq_bits_fun_lb),
    .io_deq_bits_fun_lh(lsEntry_io_deq_bits_fun_lh),
    .io_deq_bits_fun_lw(lsEntry_io_deq_bits_fun_lw),
    .io_deq_bits_fun_ld(lsEntry_io_deq_bits_fun_ld),
    .io_deq_bits_fun_lbu(lsEntry_io_deq_bits_fun_lbu),
    .io_deq_bits_fun_lhu(lsEntry_io_deq_bits_fun_lhu),
    .io_deq_bits_fun_lwu(lsEntry_io_deq_bits_fun_lwu),
    .io_deq_bits_fun_sb(lsEntry_io_deq_bits_fun_sb),
    .io_deq_bits_fun_sh(lsEntry_io_deq_bits_fun_sh),
    .io_deq_bits_fun_sw(lsEntry_io_deq_bits_fun_sw),
    .io_deq_bits_fun_sd(lsEntry_io_deq_bits_fun_sd),
    .io_deq_bits_fun_lr_w(lsEntry_io_deq_bits_fun_lr_w),
    .io_deq_bits_fun_sc_w(lsEntry_io_deq_bits_fun_sc_w),
    .io_deq_bits_fun_amoswap_w(lsEntry_io_deq_bits_fun_amoswap_w),
    .io_deq_bits_fun_amoadd_w(lsEntry_io_deq_bits_fun_amoadd_w),
    .io_deq_bits_fun_amoxor_w(lsEntry_io_deq_bits_fun_amoxor_w),
    .io_deq_bits_fun_amoand_w(lsEntry_io_deq_bits_fun_amoand_w),
    .io_deq_bits_fun_amoor_w(lsEntry_io_deq_bits_fun_amoor_w),
    .io_deq_bits_fun_amomin_w(lsEntry_io_deq_bits_fun_amomin_w),
    .io_deq_bits_fun_amomax_w(lsEntry_io_deq_bits_fun_amomax_w),
    .io_deq_bits_fun_amominu_w(lsEntry_io_deq_bits_fun_amominu_w),
    .io_deq_bits_fun_amomaxu_w(lsEntry_io_deq_bits_fun_amomaxu_w),
    .io_deq_bits_fun_lr_d(lsEntry_io_deq_bits_fun_lr_d),
    .io_deq_bits_fun_sc_d(lsEntry_io_deq_bits_fun_sc_d),
    .io_deq_bits_fun_amoswap_d(lsEntry_io_deq_bits_fun_amoswap_d),
    .io_deq_bits_fun_amoadd_d(lsEntry_io_deq_bits_fun_amoadd_d),
    .io_deq_bits_fun_amoxor_d(lsEntry_io_deq_bits_fun_amoxor_d),
    .io_deq_bits_fun_amoand_d(lsEntry_io_deq_bits_fun_amoand_d),
    .io_deq_bits_fun_amoor_d(lsEntry_io_deq_bits_fun_amoor_d),
    .io_deq_bits_fun_amomin_d(lsEntry_io_deq_bits_fun_amomin_d),
    .io_deq_bits_fun_amomax_d(lsEntry_io_deq_bits_fun_amomax_d),
    .io_deq_bits_fun_amominu_d(lsEntry_io_deq_bits_fun_amominu_d),
    .io_deq_bits_fun_amomaxu_d(lsEntry_io_deq_bits_fun_amomaxu_d),
    .io_deq_bits_fun_flw(lsEntry_io_deq_bits_fun_flw),
    .io_deq_bits_fun_fsw(lsEntry_io_deq_bits_fun_fsw),
    .io_deq_bits_fun_fld(lsEntry_io_deq_bits_fun_fld),
    .io_deq_bits_fun_fsd(lsEntry_io_deq_bits_fun_fsd),
    .io_deq_bits_fun_probe(lsEntry_io_deq_bits_fun_probe),
    .io_deq_bits_fun_grant(lsEntry_io_deq_bits_fun_grant),
    .io_deq_bits_fun_preft(lsEntry_io_deq_bits_fun_preft),
    .io_deq_bits_rd_rd0(lsEntry_io_deq_bits_rd_rd0)
  );
  Queue_14 rtn_fifo ( // @[Dcache.scala 126:24]
    .clock(rtn_fifo_clock),
    .reset(rtn_fifo_reset),
    .io_enq_ready(rtn_fifo_io_enq_ready),
    .io_enq_valid(rtn_fifo_io_enq_valid),
    .io_enq_bits_chkIdx(rtn_fifo_io_enq_bits_chkIdx),
    .io_enq_bits_wb_rd0(rtn_fifo_io_enq_bits_wb_rd0),
    .io_enq_bits_wb_res(rtn_fifo_io_enq_bits_wb_res),
    .io_enq_bits_is_load_amo(rtn_fifo_io_enq_bits_is_load_amo),
    .io_enq_bits_is_flw(rtn_fifo_io_enq_bits_is_flw),
    .io_enq_bits_is_fld(rtn_fifo_io_enq_bits_is_fld),
    .io_deq_ready(rtn_fifo_io_deq_ready),
    .io_deq_valid(rtn_fifo_io_deq_valid),
    .io_deq_bits_chkIdx(rtn_fifo_io_deq_bits_chkIdx),
    .io_deq_bits_wb_rd0(rtn_fifo_io_deq_bits_wb_rd0),
    .io_deq_bits_wb_res(rtn_fifo_io_deq_bits_wb_res),
    .io_deq_bits_is_load_amo(rtn_fifo_io_deq_bits_is_load_amo),
    .io_deq_bits_is_flw(rtn_fifo_io_deq_bits_is_flw),
    .io_deq_bits_is_fld(rtn_fifo_io_deq_bits_is_fld)
  );
  Arbiter_1 op_arb ( // @[Dcache.scala 127:22]
    .io_in_0_ready(op_arb_io_in_0_ready),
    .io_in_0_valid(op_arb_io_in_0_valid),
    .io_in_0_bits_chkIdx(op_arb_io_in_0_bits_chkIdx),
    .io_in_0_bits_paddr(op_arb_io_in_0_bits_paddr),
    .io_in_0_bits_wdata(op_arb_io_in_0_bits_wdata),
    .io_in_0_bits_wstrb(op_arb_io_in_0_bits_wstrb),
    .io_in_0_bits_fun_lb(op_arb_io_in_0_bits_fun_lb),
    .io_in_0_bits_fun_lh(op_arb_io_in_0_bits_fun_lh),
    .io_in_0_bits_fun_lw(op_arb_io_in_0_bits_fun_lw),
    .io_in_0_bits_fun_ld(op_arb_io_in_0_bits_fun_ld),
    .io_in_0_bits_fun_lbu(op_arb_io_in_0_bits_fun_lbu),
    .io_in_0_bits_fun_lhu(op_arb_io_in_0_bits_fun_lhu),
    .io_in_0_bits_fun_lwu(op_arb_io_in_0_bits_fun_lwu),
    .io_in_0_bits_fun_sb(op_arb_io_in_0_bits_fun_sb),
    .io_in_0_bits_fun_sh(op_arb_io_in_0_bits_fun_sh),
    .io_in_0_bits_fun_sw(op_arb_io_in_0_bits_fun_sw),
    .io_in_0_bits_fun_sd(op_arb_io_in_0_bits_fun_sd),
    .io_in_0_bits_fun_lr_w(op_arb_io_in_0_bits_fun_lr_w),
    .io_in_0_bits_fun_sc_w(op_arb_io_in_0_bits_fun_sc_w),
    .io_in_0_bits_fun_amoswap_w(op_arb_io_in_0_bits_fun_amoswap_w),
    .io_in_0_bits_fun_amoadd_w(op_arb_io_in_0_bits_fun_amoadd_w),
    .io_in_0_bits_fun_amoxor_w(op_arb_io_in_0_bits_fun_amoxor_w),
    .io_in_0_bits_fun_amoand_w(op_arb_io_in_0_bits_fun_amoand_w),
    .io_in_0_bits_fun_amoor_w(op_arb_io_in_0_bits_fun_amoor_w),
    .io_in_0_bits_fun_amomin_w(op_arb_io_in_0_bits_fun_amomin_w),
    .io_in_0_bits_fun_amomax_w(op_arb_io_in_0_bits_fun_amomax_w),
    .io_in_0_bits_fun_amominu_w(op_arb_io_in_0_bits_fun_amominu_w),
    .io_in_0_bits_fun_amomaxu_w(op_arb_io_in_0_bits_fun_amomaxu_w),
    .io_in_0_bits_fun_lr_d(op_arb_io_in_0_bits_fun_lr_d),
    .io_in_0_bits_fun_sc_d(op_arb_io_in_0_bits_fun_sc_d),
    .io_in_0_bits_fun_amoswap_d(op_arb_io_in_0_bits_fun_amoswap_d),
    .io_in_0_bits_fun_amoadd_d(op_arb_io_in_0_bits_fun_amoadd_d),
    .io_in_0_bits_fun_amoxor_d(op_arb_io_in_0_bits_fun_amoxor_d),
    .io_in_0_bits_fun_amoand_d(op_arb_io_in_0_bits_fun_amoand_d),
    .io_in_0_bits_fun_amoor_d(op_arb_io_in_0_bits_fun_amoor_d),
    .io_in_0_bits_fun_amomin_d(op_arb_io_in_0_bits_fun_amomin_d),
    .io_in_0_bits_fun_amomax_d(op_arb_io_in_0_bits_fun_amomax_d),
    .io_in_0_bits_fun_amominu_d(op_arb_io_in_0_bits_fun_amominu_d),
    .io_in_0_bits_fun_amomaxu_d(op_arb_io_in_0_bits_fun_amomaxu_d),
    .io_in_0_bits_fun_flw(op_arb_io_in_0_bits_fun_flw),
    .io_in_0_bits_fun_fsw(op_arb_io_in_0_bits_fun_fsw),
    .io_in_0_bits_fun_fld(op_arb_io_in_0_bits_fun_fld),
    .io_in_0_bits_fun_fsd(op_arb_io_in_0_bits_fun_fsd),
    .io_in_0_bits_fun_probe(op_arb_io_in_0_bits_fun_probe),
    .io_in_0_bits_fun_grant(op_arb_io_in_0_bits_fun_grant),
    .io_in_0_bits_fun_preft(op_arb_io_in_0_bits_fun_preft),
    .io_in_0_bits_rd_rd0(op_arb_io_in_0_bits_rd_rd0),
    .io_in_1_ready(op_arb_io_in_1_ready),
    .io_in_1_valid(op_arb_io_in_1_valid),
    .io_in_1_bits_chkIdx(op_arb_io_in_1_bits_chkIdx),
    .io_in_1_bits_paddr(op_arb_io_in_1_bits_paddr),
    .io_in_1_bits_wdata(op_arb_io_in_1_bits_wdata),
    .io_in_1_bits_wstrb(op_arb_io_in_1_bits_wstrb),
    .io_in_1_bits_fun_lb(op_arb_io_in_1_bits_fun_lb),
    .io_in_1_bits_fun_lh(op_arb_io_in_1_bits_fun_lh),
    .io_in_1_bits_fun_lw(op_arb_io_in_1_bits_fun_lw),
    .io_in_1_bits_fun_ld(op_arb_io_in_1_bits_fun_ld),
    .io_in_1_bits_fun_lbu(op_arb_io_in_1_bits_fun_lbu),
    .io_in_1_bits_fun_lhu(op_arb_io_in_1_bits_fun_lhu),
    .io_in_1_bits_fun_lwu(op_arb_io_in_1_bits_fun_lwu),
    .io_in_1_bits_fun_sb(op_arb_io_in_1_bits_fun_sb),
    .io_in_1_bits_fun_sh(op_arb_io_in_1_bits_fun_sh),
    .io_in_1_bits_fun_sw(op_arb_io_in_1_bits_fun_sw),
    .io_in_1_bits_fun_sd(op_arb_io_in_1_bits_fun_sd),
    .io_in_1_bits_fun_lr_w(op_arb_io_in_1_bits_fun_lr_w),
    .io_in_1_bits_fun_sc_w(op_arb_io_in_1_bits_fun_sc_w),
    .io_in_1_bits_fun_amoswap_w(op_arb_io_in_1_bits_fun_amoswap_w),
    .io_in_1_bits_fun_amoadd_w(op_arb_io_in_1_bits_fun_amoadd_w),
    .io_in_1_bits_fun_amoxor_w(op_arb_io_in_1_bits_fun_amoxor_w),
    .io_in_1_bits_fun_amoand_w(op_arb_io_in_1_bits_fun_amoand_w),
    .io_in_1_bits_fun_amoor_w(op_arb_io_in_1_bits_fun_amoor_w),
    .io_in_1_bits_fun_amomin_w(op_arb_io_in_1_bits_fun_amomin_w),
    .io_in_1_bits_fun_amomax_w(op_arb_io_in_1_bits_fun_amomax_w),
    .io_in_1_bits_fun_amominu_w(op_arb_io_in_1_bits_fun_amominu_w),
    .io_in_1_bits_fun_amomaxu_w(op_arb_io_in_1_bits_fun_amomaxu_w),
    .io_in_1_bits_fun_lr_d(op_arb_io_in_1_bits_fun_lr_d),
    .io_in_1_bits_fun_sc_d(op_arb_io_in_1_bits_fun_sc_d),
    .io_in_1_bits_fun_amoswap_d(op_arb_io_in_1_bits_fun_amoswap_d),
    .io_in_1_bits_fun_amoadd_d(op_arb_io_in_1_bits_fun_amoadd_d),
    .io_in_1_bits_fun_amoxor_d(op_arb_io_in_1_bits_fun_amoxor_d),
    .io_in_1_bits_fun_amoand_d(op_arb_io_in_1_bits_fun_amoand_d),
    .io_in_1_bits_fun_amoor_d(op_arb_io_in_1_bits_fun_amoor_d),
    .io_in_1_bits_fun_amomin_d(op_arb_io_in_1_bits_fun_amomin_d),
    .io_in_1_bits_fun_amomax_d(op_arb_io_in_1_bits_fun_amomax_d),
    .io_in_1_bits_fun_amominu_d(op_arb_io_in_1_bits_fun_amominu_d),
    .io_in_1_bits_fun_amomaxu_d(op_arb_io_in_1_bits_fun_amomaxu_d),
    .io_in_1_bits_fun_flw(op_arb_io_in_1_bits_fun_flw),
    .io_in_1_bits_fun_fsw(op_arb_io_in_1_bits_fun_fsw),
    .io_in_1_bits_fun_fld(op_arb_io_in_1_bits_fun_fld),
    .io_in_1_bits_fun_fsd(op_arb_io_in_1_bits_fun_fsd),
    .io_in_1_bits_rd_rd0(op_arb_io_in_1_bits_rd_rd0),
    .io_out_ready(op_arb_io_out_ready),
    .io_out_valid(op_arb_io_out_valid),
    .io_out_bits_chkIdx(op_arb_io_out_bits_chkIdx),
    .io_out_bits_paddr(op_arb_io_out_bits_paddr),
    .io_out_bits_wdata(op_arb_io_out_bits_wdata),
    .io_out_bits_wstrb(op_arb_io_out_bits_wstrb),
    .io_out_bits_fun_lb(op_arb_io_out_bits_fun_lb),
    .io_out_bits_fun_lh(op_arb_io_out_bits_fun_lh),
    .io_out_bits_fun_lw(op_arb_io_out_bits_fun_lw),
    .io_out_bits_fun_ld(op_arb_io_out_bits_fun_ld),
    .io_out_bits_fun_lbu(op_arb_io_out_bits_fun_lbu),
    .io_out_bits_fun_lhu(op_arb_io_out_bits_fun_lhu),
    .io_out_bits_fun_lwu(op_arb_io_out_bits_fun_lwu),
    .io_out_bits_fun_sb(op_arb_io_out_bits_fun_sb),
    .io_out_bits_fun_sh(op_arb_io_out_bits_fun_sh),
    .io_out_bits_fun_sw(op_arb_io_out_bits_fun_sw),
    .io_out_bits_fun_sd(op_arb_io_out_bits_fun_sd),
    .io_out_bits_fun_lr_w(op_arb_io_out_bits_fun_lr_w),
    .io_out_bits_fun_sc_w(op_arb_io_out_bits_fun_sc_w),
    .io_out_bits_fun_amoswap_w(op_arb_io_out_bits_fun_amoswap_w),
    .io_out_bits_fun_amoadd_w(op_arb_io_out_bits_fun_amoadd_w),
    .io_out_bits_fun_amoxor_w(op_arb_io_out_bits_fun_amoxor_w),
    .io_out_bits_fun_amoand_w(op_arb_io_out_bits_fun_amoand_w),
    .io_out_bits_fun_amoor_w(op_arb_io_out_bits_fun_amoor_w),
    .io_out_bits_fun_amomin_w(op_arb_io_out_bits_fun_amomin_w),
    .io_out_bits_fun_amomax_w(op_arb_io_out_bits_fun_amomax_w),
    .io_out_bits_fun_amominu_w(op_arb_io_out_bits_fun_amominu_w),
    .io_out_bits_fun_amomaxu_w(op_arb_io_out_bits_fun_amomaxu_w),
    .io_out_bits_fun_lr_d(op_arb_io_out_bits_fun_lr_d),
    .io_out_bits_fun_sc_d(op_arb_io_out_bits_fun_sc_d),
    .io_out_bits_fun_amoswap_d(op_arb_io_out_bits_fun_amoswap_d),
    .io_out_bits_fun_amoadd_d(op_arb_io_out_bits_fun_amoadd_d),
    .io_out_bits_fun_amoxor_d(op_arb_io_out_bits_fun_amoxor_d),
    .io_out_bits_fun_amoand_d(op_arb_io_out_bits_fun_amoand_d),
    .io_out_bits_fun_amoor_d(op_arb_io_out_bits_fun_amoor_d),
    .io_out_bits_fun_amomin_d(op_arb_io_out_bits_fun_amomin_d),
    .io_out_bits_fun_amomax_d(op_arb_io_out_bits_fun_amomax_d),
    .io_out_bits_fun_amominu_d(op_arb_io_out_bits_fun_amominu_d),
    .io_out_bits_fun_amomaxu_d(op_arb_io_out_bits_fun_amomaxu_d),
    .io_out_bits_fun_flw(op_arb_io_out_bits_fun_flw),
    .io_out_bits_fun_fsw(op_arb_io_out_bits_fun_fsw),
    .io_out_bits_fun_fld(op_arb_io_out_bits_fun_fld),
    .io_out_bits_fun_fsd(op_arb_io_out_bits_fun_fsd),
    .io_out_bits_fun_probe(op_arb_io_out_bits_fun_probe),
    .io_out_bits_fun_grant(op_arb_io_out_bits_fun_grant),
    .io_out_bits_fun_preft(op_arb_io_out_bits_fun_preft),
    .io_out_bits_rd_rd0(op_arb_io_out_bits_rd_rd0)
  );
  Arbiter_2 rd_arb ( // @[Dcache.scala 128:22]
    .io_in_0_valid(rd_arb_io_in_0_valid),
    .io_in_0_bits_paddr(rd_arb_io_in_0_bits_paddr),
    .io_in_0_bits_wdata(rd_arb_io_in_0_bits_wdata),
    .io_in_1_ready(rd_arb_io_in_1_ready),
    .io_in_1_valid(rd_arb_io_in_1_valid),
    .io_in_1_bits_paddr(rd_arb_io_in_1_bits_paddr),
    .io_in_2_ready(rd_arb_io_in_2_ready),
    .io_in_2_valid(rd_arb_io_in_2_valid),
    .io_in_2_bits_chkIdx(rd_arb_io_in_2_bits_chkIdx),
    .io_in_2_bits_paddr(rd_arb_io_in_2_bits_paddr),
    .io_in_2_bits_wdata(rd_arb_io_in_2_bits_wdata),
    .io_in_2_bits_wstrb(rd_arb_io_in_2_bits_wstrb),
    .io_in_2_bits_fun_lb(rd_arb_io_in_2_bits_fun_lb),
    .io_in_2_bits_fun_lh(rd_arb_io_in_2_bits_fun_lh),
    .io_in_2_bits_fun_lw(rd_arb_io_in_2_bits_fun_lw),
    .io_in_2_bits_fun_ld(rd_arb_io_in_2_bits_fun_ld),
    .io_in_2_bits_fun_lbu(rd_arb_io_in_2_bits_fun_lbu),
    .io_in_2_bits_fun_lhu(rd_arb_io_in_2_bits_fun_lhu),
    .io_in_2_bits_fun_lwu(rd_arb_io_in_2_bits_fun_lwu),
    .io_in_2_bits_fun_sb(rd_arb_io_in_2_bits_fun_sb),
    .io_in_2_bits_fun_sh(rd_arb_io_in_2_bits_fun_sh),
    .io_in_2_bits_fun_sw(rd_arb_io_in_2_bits_fun_sw),
    .io_in_2_bits_fun_sd(rd_arb_io_in_2_bits_fun_sd),
    .io_in_2_bits_fun_lr_w(rd_arb_io_in_2_bits_fun_lr_w),
    .io_in_2_bits_fun_sc_w(rd_arb_io_in_2_bits_fun_sc_w),
    .io_in_2_bits_fun_amoswap_w(rd_arb_io_in_2_bits_fun_amoswap_w),
    .io_in_2_bits_fun_amoadd_w(rd_arb_io_in_2_bits_fun_amoadd_w),
    .io_in_2_bits_fun_amoxor_w(rd_arb_io_in_2_bits_fun_amoxor_w),
    .io_in_2_bits_fun_amoand_w(rd_arb_io_in_2_bits_fun_amoand_w),
    .io_in_2_bits_fun_amoor_w(rd_arb_io_in_2_bits_fun_amoor_w),
    .io_in_2_bits_fun_amomin_w(rd_arb_io_in_2_bits_fun_amomin_w),
    .io_in_2_bits_fun_amomax_w(rd_arb_io_in_2_bits_fun_amomax_w),
    .io_in_2_bits_fun_amominu_w(rd_arb_io_in_2_bits_fun_amominu_w),
    .io_in_2_bits_fun_amomaxu_w(rd_arb_io_in_2_bits_fun_amomaxu_w),
    .io_in_2_bits_fun_lr_d(rd_arb_io_in_2_bits_fun_lr_d),
    .io_in_2_bits_fun_sc_d(rd_arb_io_in_2_bits_fun_sc_d),
    .io_in_2_bits_fun_amoswap_d(rd_arb_io_in_2_bits_fun_amoswap_d),
    .io_in_2_bits_fun_amoadd_d(rd_arb_io_in_2_bits_fun_amoadd_d),
    .io_in_2_bits_fun_amoxor_d(rd_arb_io_in_2_bits_fun_amoxor_d),
    .io_in_2_bits_fun_amoand_d(rd_arb_io_in_2_bits_fun_amoand_d),
    .io_in_2_bits_fun_amoor_d(rd_arb_io_in_2_bits_fun_amoor_d),
    .io_in_2_bits_fun_amomin_d(rd_arb_io_in_2_bits_fun_amomin_d),
    .io_in_2_bits_fun_amomax_d(rd_arb_io_in_2_bits_fun_amomax_d),
    .io_in_2_bits_fun_amominu_d(rd_arb_io_in_2_bits_fun_amominu_d),
    .io_in_2_bits_fun_amomaxu_d(rd_arb_io_in_2_bits_fun_amomaxu_d),
    .io_in_2_bits_fun_flw(rd_arb_io_in_2_bits_fun_flw),
    .io_in_2_bits_fun_fsw(rd_arb_io_in_2_bits_fun_fsw),
    .io_in_2_bits_fun_fld(rd_arb_io_in_2_bits_fun_fld),
    .io_in_2_bits_fun_fsd(rd_arb_io_in_2_bits_fun_fsd),
    .io_in_2_bits_fun_probe(rd_arb_io_in_2_bits_fun_probe),
    .io_in_2_bits_fun_grant(rd_arb_io_in_2_bits_fun_grant),
    .io_in_2_bits_fun_preft(rd_arb_io_in_2_bits_fun_preft),
    .io_in_2_bits_rd_rd0(rd_arb_io_in_2_bits_rd_rd0),
    .io_out_valid(rd_arb_io_out_valid),
    .io_out_bits_chkIdx(rd_arb_io_out_bits_chkIdx),
    .io_out_bits_paddr(rd_arb_io_out_bits_paddr),
    .io_out_bits_wdata(rd_arb_io_out_bits_wdata),
    .io_out_bits_wstrb(rd_arb_io_out_bits_wstrb),
    .io_out_bits_fun_lb(rd_arb_io_out_bits_fun_lb),
    .io_out_bits_fun_lh(rd_arb_io_out_bits_fun_lh),
    .io_out_bits_fun_lw(rd_arb_io_out_bits_fun_lw),
    .io_out_bits_fun_ld(rd_arb_io_out_bits_fun_ld),
    .io_out_bits_fun_lbu(rd_arb_io_out_bits_fun_lbu),
    .io_out_bits_fun_lhu(rd_arb_io_out_bits_fun_lhu),
    .io_out_bits_fun_lwu(rd_arb_io_out_bits_fun_lwu),
    .io_out_bits_fun_sb(rd_arb_io_out_bits_fun_sb),
    .io_out_bits_fun_sh(rd_arb_io_out_bits_fun_sh),
    .io_out_bits_fun_sw(rd_arb_io_out_bits_fun_sw),
    .io_out_bits_fun_sd(rd_arb_io_out_bits_fun_sd),
    .io_out_bits_fun_lr_w(rd_arb_io_out_bits_fun_lr_w),
    .io_out_bits_fun_sc_w(rd_arb_io_out_bits_fun_sc_w),
    .io_out_bits_fun_amoswap_w(rd_arb_io_out_bits_fun_amoswap_w),
    .io_out_bits_fun_amoadd_w(rd_arb_io_out_bits_fun_amoadd_w),
    .io_out_bits_fun_amoxor_w(rd_arb_io_out_bits_fun_amoxor_w),
    .io_out_bits_fun_amoand_w(rd_arb_io_out_bits_fun_amoand_w),
    .io_out_bits_fun_amoor_w(rd_arb_io_out_bits_fun_amoor_w),
    .io_out_bits_fun_amomin_w(rd_arb_io_out_bits_fun_amomin_w),
    .io_out_bits_fun_amomax_w(rd_arb_io_out_bits_fun_amomax_w),
    .io_out_bits_fun_amominu_w(rd_arb_io_out_bits_fun_amominu_w),
    .io_out_bits_fun_amomaxu_w(rd_arb_io_out_bits_fun_amomaxu_w),
    .io_out_bits_fun_lr_d(rd_arb_io_out_bits_fun_lr_d),
    .io_out_bits_fun_sc_d(rd_arb_io_out_bits_fun_sc_d),
    .io_out_bits_fun_amoswap_d(rd_arb_io_out_bits_fun_amoswap_d),
    .io_out_bits_fun_amoadd_d(rd_arb_io_out_bits_fun_amoadd_d),
    .io_out_bits_fun_amoxor_d(rd_arb_io_out_bits_fun_amoxor_d),
    .io_out_bits_fun_amoand_d(rd_arb_io_out_bits_fun_amoand_d),
    .io_out_bits_fun_amoor_d(rd_arb_io_out_bits_fun_amoor_d),
    .io_out_bits_fun_amomin_d(rd_arb_io_out_bits_fun_amomin_d),
    .io_out_bits_fun_amomax_d(rd_arb_io_out_bits_fun_amomax_d),
    .io_out_bits_fun_amominu_d(rd_arb_io_out_bits_fun_amominu_d),
    .io_out_bits_fun_amomaxu_d(rd_arb_io_out_bits_fun_amomaxu_d),
    .io_out_bits_fun_flw(rd_arb_io_out_bits_fun_flw),
    .io_out_bits_fun_fsw(rd_arb_io_out_bits_fun_fsw),
    .io_out_bits_fun_fld(rd_arb_io_out_bits_fun_fld),
    .io_out_bits_fun_fsd(rd_arb_io_out_bits_fun_fsd),
    .io_out_bits_fun_probe(rd_arb_io_out_bits_fun_probe),
    .io_out_bits_fun_grant(rd_arb_io_out_bits_fun_grant),
    .io_out_bits_fun_preft(rd_arb_io_out_bits_fun_preft),
    .io_out_bits_rd_rd0(rd_arb_io_out_bits_rd_rd0)
  );
  Queue_15 reload_fifo ( // @[Dcache.scala 130:27]
    .clock(reload_fifo_clock),
    .reset(reload_fifo_reset),
    .io_enq_ready(reload_fifo_io_enq_ready),
    .io_enq_valid(reload_fifo_io_enq_valid),
    .io_enq_bits_chkIdx(reload_fifo_io_enq_bits_chkIdx),
    .io_enq_bits_paddr(reload_fifo_io_enq_bits_paddr),
    .io_enq_bits_wdata(reload_fifo_io_enq_bits_wdata),
    .io_enq_bits_wstrb(reload_fifo_io_enq_bits_wstrb),
    .io_enq_bits_fun_lb(reload_fifo_io_enq_bits_fun_lb),
    .io_enq_bits_fun_lh(reload_fifo_io_enq_bits_fun_lh),
    .io_enq_bits_fun_lw(reload_fifo_io_enq_bits_fun_lw),
    .io_enq_bits_fun_ld(reload_fifo_io_enq_bits_fun_ld),
    .io_enq_bits_fun_lbu(reload_fifo_io_enq_bits_fun_lbu),
    .io_enq_bits_fun_lhu(reload_fifo_io_enq_bits_fun_lhu),
    .io_enq_bits_fun_lwu(reload_fifo_io_enq_bits_fun_lwu),
    .io_enq_bits_fun_sb(reload_fifo_io_enq_bits_fun_sb),
    .io_enq_bits_fun_sh(reload_fifo_io_enq_bits_fun_sh),
    .io_enq_bits_fun_sw(reload_fifo_io_enq_bits_fun_sw),
    .io_enq_bits_fun_sd(reload_fifo_io_enq_bits_fun_sd),
    .io_enq_bits_fun_lr_w(reload_fifo_io_enq_bits_fun_lr_w),
    .io_enq_bits_fun_sc_w(reload_fifo_io_enq_bits_fun_sc_w),
    .io_enq_bits_fun_amoswap_w(reload_fifo_io_enq_bits_fun_amoswap_w),
    .io_enq_bits_fun_amoadd_w(reload_fifo_io_enq_bits_fun_amoadd_w),
    .io_enq_bits_fun_amoxor_w(reload_fifo_io_enq_bits_fun_amoxor_w),
    .io_enq_bits_fun_amoand_w(reload_fifo_io_enq_bits_fun_amoand_w),
    .io_enq_bits_fun_amoor_w(reload_fifo_io_enq_bits_fun_amoor_w),
    .io_enq_bits_fun_amomin_w(reload_fifo_io_enq_bits_fun_amomin_w),
    .io_enq_bits_fun_amomax_w(reload_fifo_io_enq_bits_fun_amomax_w),
    .io_enq_bits_fun_amominu_w(reload_fifo_io_enq_bits_fun_amominu_w),
    .io_enq_bits_fun_amomaxu_w(reload_fifo_io_enq_bits_fun_amomaxu_w),
    .io_enq_bits_fun_lr_d(reload_fifo_io_enq_bits_fun_lr_d),
    .io_enq_bits_fun_sc_d(reload_fifo_io_enq_bits_fun_sc_d),
    .io_enq_bits_fun_amoswap_d(reload_fifo_io_enq_bits_fun_amoswap_d),
    .io_enq_bits_fun_amoadd_d(reload_fifo_io_enq_bits_fun_amoadd_d),
    .io_enq_bits_fun_amoxor_d(reload_fifo_io_enq_bits_fun_amoxor_d),
    .io_enq_bits_fun_amoand_d(reload_fifo_io_enq_bits_fun_amoand_d),
    .io_enq_bits_fun_amoor_d(reload_fifo_io_enq_bits_fun_amoor_d),
    .io_enq_bits_fun_amomin_d(reload_fifo_io_enq_bits_fun_amomin_d),
    .io_enq_bits_fun_amomax_d(reload_fifo_io_enq_bits_fun_amomax_d),
    .io_enq_bits_fun_amominu_d(reload_fifo_io_enq_bits_fun_amominu_d),
    .io_enq_bits_fun_amomaxu_d(reload_fifo_io_enq_bits_fun_amomaxu_d),
    .io_enq_bits_fun_flw(reload_fifo_io_enq_bits_fun_flw),
    .io_enq_bits_fun_fsw(reload_fifo_io_enq_bits_fun_fsw),
    .io_enq_bits_fun_fld(reload_fifo_io_enq_bits_fun_fld),
    .io_enq_bits_fun_fsd(reload_fifo_io_enq_bits_fun_fsd),
    .io_enq_bits_fun_probe(reload_fifo_io_enq_bits_fun_probe),
    .io_enq_bits_fun_grant(reload_fifo_io_enq_bits_fun_grant),
    .io_enq_bits_fun_preft(reload_fifo_io_enq_bits_fun_preft),
    .io_enq_bits_rd_rd0(reload_fifo_io_enq_bits_rd_rd0),
    .io_deq_ready(reload_fifo_io_deq_ready),
    .io_deq_valid(reload_fifo_io_deq_valid),
    .io_deq_bits_chkIdx(reload_fifo_io_deq_bits_chkIdx),
    .io_deq_bits_paddr(reload_fifo_io_deq_bits_paddr),
    .io_deq_bits_wdata(reload_fifo_io_deq_bits_wdata),
    .io_deq_bits_wstrb(reload_fifo_io_deq_bits_wstrb),
    .io_deq_bits_fun_lb(reload_fifo_io_deq_bits_fun_lb),
    .io_deq_bits_fun_lh(reload_fifo_io_deq_bits_fun_lh),
    .io_deq_bits_fun_lw(reload_fifo_io_deq_bits_fun_lw),
    .io_deq_bits_fun_ld(reload_fifo_io_deq_bits_fun_ld),
    .io_deq_bits_fun_lbu(reload_fifo_io_deq_bits_fun_lbu),
    .io_deq_bits_fun_lhu(reload_fifo_io_deq_bits_fun_lhu),
    .io_deq_bits_fun_lwu(reload_fifo_io_deq_bits_fun_lwu),
    .io_deq_bits_fun_sb(reload_fifo_io_deq_bits_fun_sb),
    .io_deq_bits_fun_sh(reload_fifo_io_deq_bits_fun_sh),
    .io_deq_bits_fun_sw(reload_fifo_io_deq_bits_fun_sw),
    .io_deq_bits_fun_sd(reload_fifo_io_deq_bits_fun_sd),
    .io_deq_bits_fun_lr_w(reload_fifo_io_deq_bits_fun_lr_w),
    .io_deq_bits_fun_sc_w(reload_fifo_io_deq_bits_fun_sc_w),
    .io_deq_bits_fun_amoswap_w(reload_fifo_io_deq_bits_fun_amoswap_w),
    .io_deq_bits_fun_amoadd_w(reload_fifo_io_deq_bits_fun_amoadd_w),
    .io_deq_bits_fun_amoxor_w(reload_fifo_io_deq_bits_fun_amoxor_w),
    .io_deq_bits_fun_amoand_w(reload_fifo_io_deq_bits_fun_amoand_w),
    .io_deq_bits_fun_amoor_w(reload_fifo_io_deq_bits_fun_amoor_w),
    .io_deq_bits_fun_amomin_w(reload_fifo_io_deq_bits_fun_amomin_w),
    .io_deq_bits_fun_amomax_w(reload_fifo_io_deq_bits_fun_amomax_w),
    .io_deq_bits_fun_amominu_w(reload_fifo_io_deq_bits_fun_amominu_w),
    .io_deq_bits_fun_amomaxu_w(reload_fifo_io_deq_bits_fun_amomaxu_w),
    .io_deq_bits_fun_lr_d(reload_fifo_io_deq_bits_fun_lr_d),
    .io_deq_bits_fun_sc_d(reload_fifo_io_deq_bits_fun_sc_d),
    .io_deq_bits_fun_amoswap_d(reload_fifo_io_deq_bits_fun_amoswap_d),
    .io_deq_bits_fun_amoadd_d(reload_fifo_io_deq_bits_fun_amoadd_d),
    .io_deq_bits_fun_amoxor_d(reload_fifo_io_deq_bits_fun_amoxor_d),
    .io_deq_bits_fun_amoand_d(reload_fifo_io_deq_bits_fun_amoand_d),
    .io_deq_bits_fun_amoor_d(reload_fifo_io_deq_bits_fun_amoor_d),
    .io_deq_bits_fun_amomin_d(reload_fifo_io_deq_bits_fun_amomin_d),
    .io_deq_bits_fun_amomax_d(reload_fifo_io_deq_bits_fun_amomax_d),
    .io_deq_bits_fun_amominu_d(reload_fifo_io_deq_bits_fun_amominu_d),
    .io_deq_bits_fun_amomaxu_d(reload_fifo_io_deq_bits_fun_amomaxu_d),
    .io_deq_bits_fun_flw(reload_fifo_io_deq_bits_fun_flw),
    .io_deq_bits_fun_fsw(reload_fifo_io_deq_bits_fun_fsw),
    .io_deq_bits_fun_fld(reload_fifo_io_deq_bits_fun_fld),
    .io_deq_bits_fun_fsd(reload_fifo_io_deq_bits_fun_fsd),
    .io_deq_bits_fun_probe(reload_fifo_io_deq_bits_fun_probe),
    .io_deq_bits_fun_grant(reload_fifo_io_deq_bits_fun_grant),
    .io_deq_bits_fun_preft(reload_fifo_io_deq_bits_fun_preft),
    .io_deq_bits_rd_rd0(reload_fifo_io_deq_bits_rd_rd0)
  );
  DcacheStage stage ( // @[Dcache.scala 132:21]
    .clock(stage_clock),
    .reset(stage_reset),
    .io_enq_ready(stage_io_enq_ready),
    .io_enq_valid(stage_io_enq_valid),
    .io_enq_bits_chkIdx(stage_io_enq_bits_chkIdx),
    .io_enq_bits_paddr(stage_io_enq_bits_paddr),
    .io_enq_bits_wdata(stage_io_enq_bits_wdata),
    .io_enq_bits_wstrb(stage_io_enq_bits_wstrb),
    .io_enq_bits_fun_lb(stage_io_enq_bits_fun_lb),
    .io_enq_bits_fun_lh(stage_io_enq_bits_fun_lh),
    .io_enq_bits_fun_lw(stage_io_enq_bits_fun_lw),
    .io_enq_bits_fun_ld(stage_io_enq_bits_fun_ld),
    .io_enq_bits_fun_lbu(stage_io_enq_bits_fun_lbu),
    .io_enq_bits_fun_lhu(stage_io_enq_bits_fun_lhu),
    .io_enq_bits_fun_lwu(stage_io_enq_bits_fun_lwu),
    .io_enq_bits_fun_sb(stage_io_enq_bits_fun_sb),
    .io_enq_bits_fun_sh(stage_io_enq_bits_fun_sh),
    .io_enq_bits_fun_sw(stage_io_enq_bits_fun_sw),
    .io_enq_bits_fun_sd(stage_io_enq_bits_fun_sd),
    .io_enq_bits_fun_lr_w(stage_io_enq_bits_fun_lr_w),
    .io_enq_bits_fun_sc_w(stage_io_enq_bits_fun_sc_w),
    .io_enq_bits_fun_amoswap_w(stage_io_enq_bits_fun_amoswap_w),
    .io_enq_bits_fun_amoadd_w(stage_io_enq_bits_fun_amoadd_w),
    .io_enq_bits_fun_amoxor_w(stage_io_enq_bits_fun_amoxor_w),
    .io_enq_bits_fun_amoand_w(stage_io_enq_bits_fun_amoand_w),
    .io_enq_bits_fun_amoor_w(stage_io_enq_bits_fun_amoor_w),
    .io_enq_bits_fun_amomin_w(stage_io_enq_bits_fun_amomin_w),
    .io_enq_bits_fun_amomax_w(stage_io_enq_bits_fun_amomax_w),
    .io_enq_bits_fun_amominu_w(stage_io_enq_bits_fun_amominu_w),
    .io_enq_bits_fun_amomaxu_w(stage_io_enq_bits_fun_amomaxu_w),
    .io_enq_bits_fun_lr_d(stage_io_enq_bits_fun_lr_d),
    .io_enq_bits_fun_sc_d(stage_io_enq_bits_fun_sc_d),
    .io_enq_bits_fun_amoswap_d(stage_io_enq_bits_fun_amoswap_d),
    .io_enq_bits_fun_amoadd_d(stage_io_enq_bits_fun_amoadd_d),
    .io_enq_bits_fun_amoxor_d(stage_io_enq_bits_fun_amoxor_d),
    .io_enq_bits_fun_amoand_d(stage_io_enq_bits_fun_amoand_d),
    .io_enq_bits_fun_amoor_d(stage_io_enq_bits_fun_amoor_d),
    .io_enq_bits_fun_amomin_d(stage_io_enq_bits_fun_amomin_d),
    .io_enq_bits_fun_amomax_d(stage_io_enq_bits_fun_amomax_d),
    .io_enq_bits_fun_amominu_d(stage_io_enq_bits_fun_amominu_d),
    .io_enq_bits_fun_amomaxu_d(stage_io_enq_bits_fun_amomaxu_d),
    .io_enq_bits_fun_flw(stage_io_enq_bits_fun_flw),
    .io_enq_bits_fun_fsw(stage_io_enq_bits_fun_fsw),
    .io_enq_bits_fun_fld(stage_io_enq_bits_fun_fld),
    .io_enq_bits_fun_fsd(stage_io_enq_bits_fun_fsd),
    .io_enq_bits_fun_probe(stage_io_enq_bits_fun_probe),
    .io_enq_bits_fun_grant(stage_io_enq_bits_fun_grant),
    .io_enq_bits_fun_preft(stage_io_enq_bits_fun_preft),
    .io_enq_bits_rd_rd0(stage_io_enq_bits_rd_rd0),
    .io_reload_valid(stage_io_reload_valid),
    .io_reload_bits_chkIdx(stage_io_reload_bits_chkIdx),
    .io_reload_bits_paddr(stage_io_reload_bits_paddr),
    .io_reload_bits_wdata(stage_io_reload_bits_wdata),
    .io_reload_bits_wstrb(stage_io_reload_bits_wstrb),
    .io_reload_bits_fun_lb(stage_io_reload_bits_fun_lb),
    .io_reload_bits_fun_lh(stage_io_reload_bits_fun_lh),
    .io_reload_bits_fun_lw(stage_io_reload_bits_fun_lw),
    .io_reload_bits_fun_ld(stage_io_reload_bits_fun_ld),
    .io_reload_bits_fun_lbu(stage_io_reload_bits_fun_lbu),
    .io_reload_bits_fun_lhu(stage_io_reload_bits_fun_lhu),
    .io_reload_bits_fun_lwu(stage_io_reload_bits_fun_lwu),
    .io_reload_bits_fun_sb(stage_io_reload_bits_fun_sb),
    .io_reload_bits_fun_sh(stage_io_reload_bits_fun_sh),
    .io_reload_bits_fun_sw(stage_io_reload_bits_fun_sw),
    .io_reload_bits_fun_sd(stage_io_reload_bits_fun_sd),
    .io_reload_bits_fun_lr_w(stage_io_reload_bits_fun_lr_w),
    .io_reload_bits_fun_sc_w(stage_io_reload_bits_fun_sc_w),
    .io_reload_bits_fun_amoswap_w(stage_io_reload_bits_fun_amoswap_w),
    .io_reload_bits_fun_amoadd_w(stage_io_reload_bits_fun_amoadd_w),
    .io_reload_bits_fun_amoxor_w(stage_io_reload_bits_fun_amoxor_w),
    .io_reload_bits_fun_amoand_w(stage_io_reload_bits_fun_amoand_w),
    .io_reload_bits_fun_amoor_w(stage_io_reload_bits_fun_amoor_w),
    .io_reload_bits_fun_amomin_w(stage_io_reload_bits_fun_amomin_w),
    .io_reload_bits_fun_amomax_w(stage_io_reload_bits_fun_amomax_w),
    .io_reload_bits_fun_amominu_w(stage_io_reload_bits_fun_amominu_w),
    .io_reload_bits_fun_amomaxu_w(stage_io_reload_bits_fun_amomaxu_w),
    .io_reload_bits_fun_lr_d(stage_io_reload_bits_fun_lr_d),
    .io_reload_bits_fun_sc_d(stage_io_reload_bits_fun_sc_d),
    .io_reload_bits_fun_amoswap_d(stage_io_reload_bits_fun_amoswap_d),
    .io_reload_bits_fun_amoadd_d(stage_io_reload_bits_fun_amoadd_d),
    .io_reload_bits_fun_amoxor_d(stage_io_reload_bits_fun_amoxor_d),
    .io_reload_bits_fun_amoand_d(stage_io_reload_bits_fun_amoand_d),
    .io_reload_bits_fun_amoor_d(stage_io_reload_bits_fun_amoor_d),
    .io_reload_bits_fun_amomin_d(stage_io_reload_bits_fun_amomin_d),
    .io_reload_bits_fun_amomax_d(stage_io_reload_bits_fun_amomax_d),
    .io_reload_bits_fun_amominu_d(stage_io_reload_bits_fun_amominu_d),
    .io_reload_bits_fun_amomaxu_d(stage_io_reload_bits_fun_amomaxu_d),
    .io_reload_bits_fun_flw(stage_io_reload_bits_fun_flw),
    .io_reload_bits_fun_fsw(stage_io_reload_bits_fun_fsw),
    .io_reload_bits_fun_fld(stage_io_reload_bits_fun_fld),
    .io_reload_bits_fun_fsd(stage_io_reload_bits_fun_fsd),
    .io_reload_bits_fun_probe(stage_io_reload_bits_fun_probe),
    .io_reload_bits_fun_grant(stage_io_reload_bits_fun_grant),
    .io_reload_bits_fun_preft(stage_io_reload_bits_fun_preft),
    .io_reload_bits_rd_rd0(stage_io_reload_bits_rd_rd0),
    .io_deq_valid(stage_io_deq_valid),
    .io_deq_bits_chkIdx(stage_io_deq_bits_chkIdx),
    .io_deq_bits_wb_rd0(stage_io_deq_bits_wb_rd0),
    .io_deq_bits_wb_res(stage_io_deq_bits_wb_res),
    .io_deq_bits_is_load_amo(stage_io_deq_bits_is_load_amo),
    .io_deq_bits_is_flw(stage_io_deq_bits_is_flw),
    .io_deq_bits_is_fld(stage_io_deq_bits_is_fld),
    .io_missUnit_req_valid(stage_io_missUnit_req_valid),
    .io_missUnit_req_bits_paddr(stage_io_missUnit_req_bits_paddr),
    .io_wb_req_valid(stage_io_wb_req_valid),
    .io_wb_req_bits_paddr(stage_io_wb_req_bits_paddr),
    .io_wb_req_bits_data(stage_io_wb_req_bits_data),
    .io_wb_req_bits_is_releaseData(stage_io_wb_req_bits_is_releaseData),
    .io_wb_req_bits_is_release(stage_io_wb_req_bits_is_release),
    .io_wb_req_bits_is_probe(stage_io_wb_req_bits_is_probe),
    .io_wb_req_bits_is_probeData(stage_io_wb_req_bits_is_probeData),
    .io_isCacheEmpty(stage_io_isCacheEmpty),
    .io_flush(stage_io_flush)
  );
  assign io_enq_ready = op_arb_io_in_1_ready & sbEnqReady; // @[Dcache.scala 253:41]
  assign io_deq_valid = rtn_fifo_io_deq_valid; // @[Dcache.scala 273:19]
  assign io_deq_bits_chkIdx = rtn_fifo_io_deq_bits_chkIdx; // @[Dcache.scala 273:19]
  assign io_deq_bits_wb_rd0 = rtn_fifo_io_deq_bits_wb_rd0; // @[Dcache.scala 273:19]
  assign io_deq_bits_wb_res = rtn_fifo_io_deq_bits_wb_res; // @[Dcache.scala 273:19]
  assign io_deq_bits_is_load_amo = rtn_fifo_io_deq_bits_is_load_amo; // @[Dcache.scala 273:19]
  assign io_deq_bits_is_flw = rtn_fifo_io_deq_bits_is_flw; // @[Dcache.scala 273:19]
  assign io_deq_bits_is_fld = rtn_fifo_io_deq_bits_is_fld; // @[Dcache.scala 273:19]
  assign io_is_empty = _sbIdx_T & _sbEnqReady_T_1; // @[Dcache.scala 160:33]
  assign io_missUnit_dcache_acquire_valid = missUnit_io_cache_acquire_valid; // @[Dcache.scala 184:37]
  assign io_missUnit_dcache_acquire_bits_address = missUnit_io_cache_acquire_bits_address; // @[Dcache.scala 184:37]
  assign io_missUnit_dcache_grant_ready = missUnit_io_cache_grant_ready; // @[Dcache.scala 185:33]
  assign io_missUnit_dcache_grantAck_valid = missUnit_io_cache_grantAck_valid; // @[Dcache.scala 186:37]
  assign io_missUnit_dcache_grantAck_bits_sink = missUnit_io_cache_grantAck_bits_sink; // @[Dcache.scala 186:37]
  assign io_probeUnit_dcache_probe_ready = probeUnit_io_cache_probe_ready; // @[Dcache.scala 187:34]
  assign io_writeBackUnit_dcache_release_valid = writeBackUnit_io_cache_release_valid; // @[Dcache.scala 188:41]
  assign io_writeBackUnit_dcache_release_bits_opcode = writeBackUnit_io_cache_release_bits_opcode; // @[Dcache.scala 188:41]
  assign io_writeBackUnit_dcache_release_bits_param = writeBackUnit_io_cache_release_bits_param; // @[Dcache.scala 188:41]
  assign io_writeBackUnit_dcache_release_bits_size = writeBackUnit_io_cache_release_bits_size; // @[Dcache.scala 188:41]
  assign io_writeBackUnit_dcache_release_bits_address = writeBackUnit_io_cache_release_bits_address; // @[Dcache.scala 188:41]
  assign io_writeBackUnit_dcache_release_bits_data = writeBackUnit_io_cache_release_bits_data; // @[Dcache.scala 188:41]
  assign io_writeBackUnit_dcache_grant_ready = writeBackUnit_io_cache_grant_ready; // @[Dcache.scala 189:38]
  assign missUnit_clock = clock;
  assign missUnit_reset = reset;
  assign missUnit_io_req_valid = stage_io_missUnit_req_valid; // @[Dcache.scala 216:32]
  assign missUnit_io_req_bits_paddr = stage_io_missUnit_req_bits_paddr; // @[Dcache.scala 216:32]
  assign missUnit_io_cache_acquire_ready = io_missUnit_dcache_acquire_ready; // @[Dcache.scala 184:37]
  assign missUnit_io_cache_grant_valid = io_missUnit_dcache_grant_valid; // @[Dcache.scala 185:33]
  assign missUnit_io_cache_grant_bits_opcode = io_missUnit_dcache_grant_bits_opcode; // @[Dcache.scala 185:33]
  assign missUnit_io_cache_grant_bits_size = io_missUnit_dcache_grant_bits_size; // @[Dcache.scala 185:33]
  assign missUnit_io_cache_grant_bits_source = io_missUnit_dcache_grant_bits_source; // @[Dcache.scala 185:33]
  assign missUnit_io_cache_grant_bits_sink = io_missUnit_dcache_grant_bits_sink; // @[Dcache.scala 185:33]
  assign missUnit_io_cache_grant_bits_data = io_missUnit_dcache_grant_bits_data; // @[Dcache.scala 185:33]
  assign missUnit_io_cache_grantAck_ready = io_missUnit_dcache_grantAck_ready; // @[Dcache.scala 186:37]
  assign missUnit_io_miss_ban = writeBackUnit_io_miss_ban; // @[Dcache.scala 220:30]
  assign probeUnit_clock = clock;
  assign probeUnit_reset = reset;
  assign probeUnit_io_cache_probe_valid = io_probeUnit_dcache_probe_valid; // @[Dcache.scala 187:34]
  assign probeUnit_io_cache_probe_bits_address = io_probeUnit_dcache_probe_bits_address; // @[Dcache.scala 187:34]
  assign probeUnit_io_req_ready = rd_arb_io_in_1_ready; // @[Dcache.scala 229:32]
  assign probeUnit_io_probeBan = writeBackUnit_io_miss_ban; // @[Dcache.scala 219:31]
  assign writeBackUnit_clock = clock;
  assign writeBackUnit_reset = reset;
  assign writeBackUnit_io_wb_req_valid = stage_io_wb_req_valid; // @[Dcache.scala 217:21]
  assign writeBackUnit_io_wb_req_bits_paddr = stage_io_wb_req_bits_paddr; // @[Dcache.scala 217:21]
  assign writeBackUnit_io_wb_req_bits_data = stage_io_wb_req_bits_data; // @[Dcache.scala 217:21]
  assign writeBackUnit_io_wb_req_bits_is_releaseData = stage_io_wb_req_bits_is_releaseData; // @[Dcache.scala 217:21]
  assign writeBackUnit_io_wb_req_bits_is_release = stage_io_wb_req_bits_is_release; // @[Dcache.scala 217:21]
  assign writeBackUnit_io_wb_req_bits_is_probe = stage_io_wb_req_bits_is_probe; // @[Dcache.scala 217:21]
  assign writeBackUnit_io_wb_req_bits_is_probeData = stage_io_wb_req_bits_is_probeData; // @[Dcache.scala 217:21]
  assign writeBackUnit_io_cache_release_ready = io_writeBackUnit_dcache_release_ready; // @[Dcache.scala 188:41]
  assign writeBackUnit_io_cache_grant_valid = io_writeBackUnit_dcache_grant_valid; // @[Dcache.scala 189:38]
  assign writeBackUnit_io_cache_grant_bits_source = io_writeBackUnit_dcache_grant_bits_source; // @[Dcache.scala 189:38]
  assign writeBackUnit_io_release_ban = missUnit_io_release_ban; // @[Dcache.scala 221:38]
  assign lsEntry_clock = clock;
  assign lsEntry_reset = reset;
  assign lsEntry_io_enq_valid = op_arb_io_out_valid; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_chkIdx = op_arb_io_out_bits_chkIdx; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_paddr = op_arb_io_out_bits_paddr; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_wdata = op_arb_io_out_bits_wdata; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_wstrb = op_arb_io_out_bits_wstrb; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_lb = op_arb_io_out_bits_fun_lb; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_lh = op_arb_io_out_bits_fun_lh; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_lw = op_arb_io_out_bits_fun_lw; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_ld = op_arb_io_out_bits_fun_ld; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_lbu = op_arb_io_out_bits_fun_lbu; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_lhu = op_arb_io_out_bits_fun_lhu; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_lwu = op_arb_io_out_bits_fun_lwu; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_sb = op_arb_io_out_bits_fun_sb; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_sh = op_arb_io_out_bits_fun_sh; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_sw = op_arb_io_out_bits_fun_sw; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_sd = op_arb_io_out_bits_fun_sd; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_lr_w = op_arb_io_out_bits_fun_lr_w; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_sc_w = op_arb_io_out_bits_fun_sc_w; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_amoswap_w = op_arb_io_out_bits_fun_amoswap_w; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_amoadd_w = op_arb_io_out_bits_fun_amoadd_w; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_amoxor_w = op_arb_io_out_bits_fun_amoxor_w; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_amoand_w = op_arb_io_out_bits_fun_amoand_w; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_amoor_w = op_arb_io_out_bits_fun_amoor_w; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_amomin_w = op_arb_io_out_bits_fun_amomin_w; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_amomax_w = op_arb_io_out_bits_fun_amomax_w; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_amominu_w = op_arb_io_out_bits_fun_amominu_w; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_amomaxu_w = op_arb_io_out_bits_fun_amomaxu_w; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_lr_d = op_arb_io_out_bits_fun_lr_d; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_sc_d = op_arb_io_out_bits_fun_sc_d; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_amoswap_d = op_arb_io_out_bits_fun_amoswap_d; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_amoadd_d = op_arb_io_out_bits_fun_amoadd_d; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_amoxor_d = op_arb_io_out_bits_fun_amoxor_d; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_amoand_d = op_arb_io_out_bits_fun_amoand_d; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_amoor_d = op_arb_io_out_bits_fun_amoor_d; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_amomin_d = op_arb_io_out_bits_fun_amomin_d; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_amomax_d = op_arb_io_out_bits_fun_amomax_d; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_amominu_d = op_arb_io_out_bits_fun_amominu_d; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_amomaxu_d = op_arb_io_out_bits_fun_amomaxu_d; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_flw = op_arb_io_out_bits_fun_flw; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_fsw = op_arb_io_out_bits_fun_fsw; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_fld = op_arb_io_out_bits_fun_fld; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_fsd = op_arb_io_out_bits_fun_fsd; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_probe = op_arb_io_out_bits_fun_probe; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_grant = op_arb_io_out_bits_fun_grant; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_fun_preft = op_arb_io_out_bits_fun_preft; // @[Dcache.scala 257:17]
  assign lsEntry_io_enq_bits_rd_rd0 = op_arb_io_out_bits_rd_rd0; // @[Dcache.scala 257:17]
  assign lsEntry_io_deq_ready = rd_arb_io_in_2_ready; // @[Dcache.scala 264:18]
  assign rtn_fifo_clock = clock;
  assign rtn_fifo_reset = reset;
  assign rtn_fifo_io_enq_valid = stage_io_deq_valid; // @[Dcache.scala 270:25]
  assign rtn_fifo_io_enq_bits_chkIdx = stage_io_deq_bits_chkIdx; // @[Dcache.scala 271:25]
  assign rtn_fifo_io_enq_bits_wb_rd0 = stage_io_deq_bits_wb_rd0; // @[Dcache.scala 271:25]
  assign rtn_fifo_io_enq_bits_wb_res = stage_io_deq_bits_wb_res; // @[Dcache.scala 271:25]
  assign rtn_fifo_io_enq_bits_is_load_amo = stage_io_deq_bits_is_load_amo; // @[Dcache.scala 271:25]
  assign rtn_fifo_io_enq_bits_is_flw = stage_io_deq_bits_is_flw; // @[Dcache.scala 271:25]
  assign rtn_fifo_io_enq_bits_is_fld = stage_io_deq_bits_is_fld; // @[Dcache.scala 271:25]
  assign rtn_fifo_io_deq_ready = io_deq_ready; // @[Dcache.scala 273:19]
  assign op_arb_io_in_0_valid = reload_fifo_io_deq_valid; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_chkIdx = reload_fifo_io_deq_bits_chkIdx; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_paddr = reload_fifo_io_deq_bits_paddr; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_wdata = reload_fifo_io_deq_bits_wdata; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_wstrb = reload_fifo_io_deq_bits_wstrb; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_lb = reload_fifo_io_deq_bits_fun_lb; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_lh = reload_fifo_io_deq_bits_fun_lh; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_lw = reload_fifo_io_deq_bits_fun_lw; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_ld = reload_fifo_io_deq_bits_fun_ld; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_lbu = reload_fifo_io_deq_bits_fun_lbu; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_lhu = reload_fifo_io_deq_bits_fun_lhu; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_lwu = reload_fifo_io_deq_bits_fun_lwu; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_sb = reload_fifo_io_deq_bits_fun_sb; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_sh = reload_fifo_io_deq_bits_fun_sh; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_sw = reload_fifo_io_deq_bits_fun_sw; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_sd = reload_fifo_io_deq_bits_fun_sd; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_lr_w = reload_fifo_io_deq_bits_fun_lr_w; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_sc_w = reload_fifo_io_deq_bits_fun_sc_w; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_amoswap_w = reload_fifo_io_deq_bits_fun_amoswap_w; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_amoadd_w = reload_fifo_io_deq_bits_fun_amoadd_w; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_amoxor_w = reload_fifo_io_deq_bits_fun_amoxor_w; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_amoand_w = reload_fifo_io_deq_bits_fun_amoand_w; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_amoor_w = reload_fifo_io_deq_bits_fun_amoor_w; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_amomin_w = reload_fifo_io_deq_bits_fun_amomin_w; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_amomax_w = reload_fifo_io_deq_bits_fun_amomax_w; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_amominu_w = reload_fifo_io_deq_bits_fun_amominu_w; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_amomaxu_w = reload_fifo_io_deq_bits_fun_amomaxu_w; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_lr_d = reload_fifo_io_deq_bits_fun_lr_d; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_sc_d = reload_fifo_io_deq_bits_fun_sc_d; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_amoswap_d = reload_fifo_io_deq_bits_fun_amoswap_d; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_amoadd_d = reload_fifo_io_deq_bits_fun_amoadd_d; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_amoxor_d = reload_fifo_io_deq_bits_fun_amoxor_d; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_amoand_d = reload_fifo_io_deq_bits_fun_amoand_d; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_amoor_d = reload_fifo_io_deq_bits_fun_amoor_d; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_amomin_d = reload_fifo_io_deq_bits_fun_amomin_d; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_amomax_d = reload_fifo_io_deq_bits_fun_amomax_d; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_amominu_d = reload_fifo_io_deq_bits_fun_amominu_d; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_amomaxu_d = reload_fifo_io_deq_bits_fun_amomaxu_d; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_flw = reload_fifo_io_deq_bits_fun_flw; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_fsw = reload_fifo_io_deq_bits_fun_fsw; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_fld = reload_fifo_io_deq_bits_fun_fld; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_fsd = reload_fifo_io_deq_bits_fun_fsd; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_probe = reload_fifo_io_deq_bits_fun_probe; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_grant = reload_fifo_io_deq_bits_fun_grant; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_fun_preft = reload_fifo_io_deq_bits_fun_preft; // @[Dcache.scala 252:22]
  assign op_arb_io_in_0_bits_rd_rd0 = reload_fifo_io_deq_bits_rd_rd0; // @[Dcache.scala 252:22]
  assign op_arb_io_in_1_valid = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  assign op_arb_io_in_1_bits_chkIdx = ~sbValid_0 ? 1'h0 : 1'h1; // @[Dcache.scala 143:33]
  assign op_arb_io_in_1_bits_paddr = io_enq_bits_paddr; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_wdata = io_enq_bits_wdata; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_wstrb = io_enq_bits_wstrb; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_lb = io_enq_bits_fun_lb; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_lh = io_enq_bits_fun_lh; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_lw = io_enq_bits_fun_lw; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_ld = io_enq_bits_fun_ld; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_lbu = io_enq_bits_fun_lbu; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_lhu = io_enq_bits_fun_lhu; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_lwu = io_enq_bits_fun_lwu; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_sb = io_enq_bits_fun_sb; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_sh = io_enq_bits_fun_sh; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_sw = io_enq_bits_fun_sw; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_sd = io_enq_bits_fun_sd; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_lr_w = io_enq_bits_fun_lr_w; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_sc_w = io_enq_bits_fun_sc_w; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_amoswap_w = io_enq_bits_fun_amoswap_w; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_amoadd_w = io_enq_bits_fun_amoadd_w; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_amoxor_w = io_enq_bits_fun_amoxor_w; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_amoand_w = io_enq_bits_fun_amoand_w; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_amoor_w = io_enq_bits_fun_amoor_w; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_amomin_w = io_enq_bits_fun_amomin_w; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_amomax_w = io_enq_bits_fun_amomax_w; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_amominu_w = io_enq_bits_fun_amominu_w; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_amomaxu_w = io_enq_bits_fun_amomaxu_w; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_lr_d = io_enq_bits_fun_lr_d; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_sc_d = io_enq_bits_fun_sc_d; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_amoswap_d = io_enq_bits_fun_amoswap_d; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_amoadd_d = io_enq_bits_fun_amoadd_d; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_amoxor_d = io_enq_bits_fun_amoxor_d; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_amoand_d = io_enq_bits_fun_amoand_d; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_amoor_d = io_enq_bits_fun_amoor_d; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_amomin_d = io_enq_bits_fun_amomin_d; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_amomax_d = io_enq_bits_fun_amomax_d; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_amominu_d = io_enq_bits_fun_amominu_d; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_amomaxu_d = io_enq_bits_fun_amomaxu_d; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_flw = io_enq_bits_fun_flw; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_fsw = io_enq_bits_fun_fsw; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_fld = io_enq_bits_fun_fld; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_fun_fsd = io_enq_bits_fun_fsd; // @[Dcache.scala 255:25]
  assign op_arb_io_in_1_bits_rd_rd0 = io_enq_bits_rd_rd0; // @[Dcache.scala 255:25]
  assign op_arb_io_out_ready = lsEntry_io_enq_ready; // @[Dcache.scala 257:17]
  assign rd_arb_io_in_0_valid = missUnit_io_rsp_valid; // @[Dcache.scala 224:27]
  assign rd_arb_io_in_0_bits_paddr = missUnit_io_rsp_bits_paddr; // @[Util.scala 48:19 50:15]
  assign rd_arb_io_in_0_bits_wdata = missUnit_io_rsp_bits_wdata; // @[Util.scala 48:19 52:15]
  assign rd_arb_io_in_1_valid = probeUnit_io_req_valid; // @[Dcache.scala 228:27]
  assign rd_arb_io_in_1_bits_paddr = probeUnit_io_req_bits_paddr; // @[Util.scala 64:19 65:15]
  assign rd_arb_io_in_2_valid = lsEntry_io_deq_valid; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_chkIdx = lsEntry_io_deq_bits_chkIdx; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_paddr = lsEntry_io_deq_bits_paddr; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_wdata = lsEntry_io_deq_bits_wdata; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_wstrb = lsEntry_io_deq_bits_wstrb; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_lb = lsEntry_io_deq_bits_fun_lb; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_lh = lsEntry_io_deq_bits_fun_lh; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_lw = lsEntry_io_deq_bits_fun_lw; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_ld = lsEntry_io_deq_bits_fun_ld; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_lbu = lsEntry_io_deq_bits_fun_lbu; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_lhu = lsEntry_io_deq_bits_fun_lhu; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_lwu = lsEntry_io_deq_bits_fun_lwu; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_sb = lsEntry_io_deq_bits_fun_sb; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_sh = lsEntry_io_deq_bits_fun_sh; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_sw = lsEntry_io_deq_bits_fun_sw; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_sd = lsEntry_io_deq_bits_fun_sd; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_lr_w = lsEntry_io_deq_bits_fun_lr_w; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_sc_w = lsEntry_io_deq_bits_fun_sc_w; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_amoswap_w = lsEntry_io_deq_bits_fun_amoswap_w; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_amoadd_w = lsEntry_io_deq_bits_fun_amoadd_w; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_amoxor_w = lsEntry_io_deq_bits_fun_amoxor_w; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_amoand_w = lsEntry_io_deq_bits_fun_amoand_w; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_amoor_w = lsEntry_io_deq_bits_fun_amoor_w; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_amomin_w = lsEntry_io_deq_bits_fun_amomin_w; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_amomax_w = lsEntry_io_deq_bits_fun_amomax_w; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_amominu_w = lsEntry_io_deq_bits_fun_amominu_w; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_amomaxu_w = lsEntry_io_deq_bits_fun_amomaxu_w; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_lr_d = lsEntry_io_deq_bits_fun_lr_d; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_sc_d = lsEntry_io_deq_bits_fun_sc_d; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_amoswap_d = lsEntry_io_deq_bits_fun_amoswap_d; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_amoadd_d = lsEntry_io_deq_bits_fun_amoadd_d; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_amoxor_d = lsEntry_io_deq_bits_fun_amoxor_d; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_amoand_d = lsEntry_io_deq_bits_fun_amoand_d; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_amoor_d = lsEntry_io_deq_bits_fun_amoor_d; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_amomin_d = lsEntry_io_deq_bits_fun_amomin_d; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_amomax_d = lsEntry_io_deq_bits_fun_amomax_d; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_amominu_d = lsEntry_io_deq_bits_fun_amominu_d; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_amomaxu_d = lsEntry_io_deq_bits_fun_amomaxu_d; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_flw = lsEntry_io_deq_bits_fun_flw; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_fsw = lsEntry_io_deq_bits_fun_fsw; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_fld = lsEntry_io_deq_bits_fun_fld; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_fsd = lsEntry_io_deq_bits_fun_fsd; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_probe = lsEntry_io_deq_bits_fun_probe; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_grant = lsEntry_io_deq_bits_fun_grant; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_fun_preft = lsEntry_io_deq_bits_fun_preft; // @[Dcache.scala 264:18]
  assign rd_arb_io_in_2_bits_rd_rd0 = lsEntry_io_deq_bits_rd_rd0; // @[Dcache.scala 264:18]
  assign reload_fifo_clock = clock;
  assign reload_fifo_reset = reset;
  assign reload_fifo_io_enq_valid = stage_io_reload_valid; // @[Dcache.scala 248:28]
  assign reload_fifo_io_enq_bits_chkIdx = stage_io_reload_bits_chkIdx; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_paddr = stage_io_reload_bits_paddr; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_wdata = stage_io_reload_bits_wdata; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_wstrb = stage_io_reload_bits_wstrb; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_lb = stage_io_reload_bits_fun_lb; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_lh = stage_io_reload_bits_fun_lh; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_lw = stage_io_reload_bits_fun_lw; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_ld = stage_io_reload_bits_fun_ld; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_lbu = stage_io_reload_bits_fun_lbu; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_lhu = stage_io_reload_bits_fun_lhu; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_lwu = stage_io_reload_bits_fun_lwu; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_sb = stage_io_reload_bits_fun_sb; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_sh = stage_io_reload_bits_fun_sh; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_sw = stage_io_reload_bits_fun_sw; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_sd = stage_io_reload_bits_fun_sd; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_lr_w = stage_io_reload_bits_fun_lr_w; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_sc_w = stage_io_reload_bits_fun_sc_w; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_amoswap_w = stage_io_reload_bits_fun_amoswap_w; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_amoadd_w = stage_io_reload_bits_fun_amoadd_w; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_amoxor_w = stage_io_reload_bits_fun_amoxor_w; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_amoand_w = stage_io_reload_bits_fun_amoand_w; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_amoor_w = stage_io_reload_bits_fun_amoor_w; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_amomin_w = stage_io_reload_bits_fun_amomin_w; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_amomax_w = stage_io_reload_bits_fun_amomax_w; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_amominu_w = stage_io_reload_bits_fun_amominu_w; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_amomaxu_w = stage_io_reload_bits_fun_amomaxu_w; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_lr_d = stage_io_reload_bits_fun_lr_d; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_sc_d = stage_io_reload_bits_fun_sc_d; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_amoswap_d = stage_io_reload_bits_fun_amoswap_d; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_amoadd_d = stage_io_reload_bits_fun_amoadd_d; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_amoxor_d = stage_io_reload_bits_fun_amoxor_d; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_amoand_d = stage_io_reload_bits_fun_amoand_d; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_amoor_d = stage_io_reload_bits_fun_amoor_d; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_amomin_d = stage_io_reload_bits_fun_amomin_d; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_amomax_d = stage_io_reload_bits_fun_amomax_d; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_amominu_d = stage_io_reload_bits_fun_amominu_d; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_amomaxu_d = stage_io_reload_bits_fun_amomaxu_d; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_flw = stage_io_reload_bits_fun_flw; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_fsw = stage_io_reload_bits_fun_fsw; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_fld = stage_io_reload_bits_fun_fld; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_fsd = stage_io_reload_bits_fun_fsd; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_probe = stage_io_reload_bits_fun_probe; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_grant = stage_io_reload_bits_fun_grant; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_fun_preft = stage_io_reload_bits_fun_preft; // @[Dcache.scala 249:28]
  assign reload_fifo_io_enq_bits_rd_rd0 = stage_io_reload_bits_rd_rd0; // @[Dcache.scala 249:28]
  assign reload_fifo_io_deq_ready = op_arb_io_in_0_ready; // @[Dcache.scala 252:22]
  assign stage_clock = clock;
  assign stage_reset = reset;
  assign stage_io_enq_valid = rd_arb_io_out_valid; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_chkIdx = rd_arb_io_out_bits_chkIdx; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_paddr = rd_arb_io_out_bits_paddr; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_wdata = rd_arb_io_out_bits_wdata; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_wstrb = rd_arb_io_out_bits_wstrb; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_lb = rd_arb_io_out_bits_fun_lb; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_lh = rd_arb_io_out_bits_fun_lh; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_lw = rd_arb_io_out_bits_fun_lw; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_ld = rd_arb_io_out_bits_fun_ld; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_lbu = rd_arb_io_out_bits_fun_lbu; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_lhu = rd_arb_io_out_bits_fun_lhu; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_lwu = rd_arb_io_out_bits_fun_lwu; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_sb = rd_arb_io_out_bits_fun_sb; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_sh = rd_arb_io_out_bits_fun_sh; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_sw = rd_arb_io_out_bits_fun_sw; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_sd = rd_arb_io_out_bits_fun_sd; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_lr_w = rd_arb_io_out_bits_fun_lr_w; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_sc_w = rd_arb_io_out_bits_fun_sc_w; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_amoswap_w = rd_arb_io_out_bits_fun_amoswap_w; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_amoadd_w = rd_arb_io_out_bits_fun_amoadd_w; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_amoxor_w = rd_arb_io_out_bits_fun_amoxor_w; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_amoand_w = rd_arb_io_out_bits_fun_amoand_w; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_amoor_w = rd_arb_io_out_bits_fun_amoor_w; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_amomin_w = rd_arb_io_out_bits_fun_amomin_w; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_amomax_w = rd_arb_io_out_bits_fun_amomax_w; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_amominu_w = rd_arb_io_out_bits_fun_amominu_w; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_amomaxu_w = rd_arb_io_out_bits_fun_amomaxu_w; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_lr_d = rd_arb_io_out_bits_fun_lr_d; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_sc_d = rd_arb_io_out_bits_fun_sc_d; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_amoswap_d = rd_arb_io_out_bits_fun_amoswap_d; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_amoadd_d = rd_arb_io_out_bits_fun_amoadd_d; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_amoxor_d = rd_arb_io_out_bits_fun_amoxor_d; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_amoand_d = rd_arb_io_out_bits_fun_amoand_d; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_amoor_d = rd_arb_io_out_bits_fun_amoor_d; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_amomin_d = rd_arb_io_out_bits_fun_amomin_d; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_amomax_d = rd_arb_io_out_bits_fun_amomax_d; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_amominu_d = rd_arb_io_out_bits_fun_amominu_d; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_amomaxu_d = rd_arb_io_out_bits_fun_amomaxu_d; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_flw = rd_arb_io_out_bits_fun_flw; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_fsw = rd_arb_io_out_bits_fun_fsw; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_fld = rd_arb_io_out_bits_fun_fld; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_fsd = rd_arb_io_out_bits_fun_fsd; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_probe = rd_arb_io_out_bits_fun_probe; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_grant = rd_arb_io_out_bits_fun_grant; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_fun_preft = rd_arb_io_out_bits_fun_preft; // @[Dcache.scala 265:16]
  assign stage_io_enq_bits_rd_rd0 = rd_arb_io_out_bits_rd_rd0; // @[Dcache.scala 265:16]
  assign stage_io_isCacheEmpty = _sbIdx_T & _sbEnqReady_T_1; // @[Dcache.scala 160:33]
  assign stage_io_flush = io_flush; // @[Dcache.scala 259:18]
  always @(posedge clock) begin
    if (reset) begin // @[Dcache.scala 138:23]
      sbBuff_0_paddr <= 32'h0; // @[Dcache.scala 138:23]
    end else if (_T_1) begin // @[Dcache.scala 155:23]
      if (~io_deq_bits_chkIdx) begin // @[Dcache.scala 156:33]
        sbBuff_0_paddr <= 32'h0; // @[Dcache.scala 156:33]
      end else begin
        sbBuff_0_paddr <= _GEN_100;
      end
    end else begin
      sbBuff_0_paddr <= _GEN_100;
    end
    if (reset) begin // @[Dcache.scala 138:23]
      sbBuff_1_paddr <= 32'h0; // @[Dcache.scala 138:23]
    end else if (_T_1) begin // @[Dcache.scala 155:23]
      if (io_deq_bits_chkIdx) begin // @[Dcache.scala 156:33]
        sbBuff_1_paddr <= 32'h0; // @[Dcache.scala 156:33]
      end else begin
        sbBuff_1_paddr <= _GEN_101;
      end
    end else begin
      sbBuff_1_paddr <= _GEN_101;
    end
    if (reset) begin // @[Dcache.scala 139:24]
      sbValid_0 <= 1'h0; // @[Dcache.scala 139:24]
    end else if (_T_1) begin // @[Dcache.scala 155:23]
      if (~io_deq_bits_chkIdx) begin // @[Dcache.scala 157:33]
        sbValid_0 <= 1'h0; // @[Dcache.scala 157:33]
      end else begin
        sbValid_0 <= _GEN_194;
      end
    end else begin
      sbValid_0 <= _GEN_194;
    end
    if (reset) begin // @[Dcache.scala 139:24]
      sbValid_1 <= 1'h0; // @[Dcache.scala 139:24]
    end else if (_T_1) begin // @[Dcache.scala 155:23]
      if (io_deq_bits_chkIdx) begin // @[Dcache.scala 157:33]
        sbValid_1 <= 1'h0; // @[Dcache.scala 157:33]
      end else begin
        sbValid_1 <= _GEN_195;
      end
    end else begin
      sbValid_1 <= _GEN_195;
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1 & ~reset & ~(~isSBEmpty)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Dcache.scala:161 when( io.deq.fire ) { assert(~isSBEmpty) }\n"
            ); // @[Dcache.scala 161:31]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~isSBEmpty) & (_T_1 & ~reset)) begin
          $fatal; // @[Dcache.scala 161:31]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (sbValid_0 & _T_5 & ~(_T_10 == 2'h1)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Dcache.scala:168 assert( sbBuff.count( (x: Dcache_Enq_Bundle) => (x.paddr === sbBuff(i).paddr) ) === 1.U )\n"
            ); // @[Dcache.scala 168:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_10 == 2'h1) & (sbValid_0 & _T_5)) begin
          $fatal; // @[Dcache.scala 168:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (sbValid_1 & _T_5 & ~(_T_19 == 2'h1)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Dcache.scala:168 assert( sbBuff.count( (x: Dcache_Enq_Bundle) => (x.paddr === sbBuff(i).paddr) ) === 1.U )\n"
            ); // @[Dcache.scala 168:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_19 == 2'h1) & (sbValid_1 & _T_5)) begin
          $fatal; // @[Dcache.scala 168:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (reload_fifo_io_enq_valid & _T_5 & ~reload_fifo_io_enq_ready) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed at Dcache, Pipeline stuck!\n    at Dcache.scala:281 when(reload_fifo.io.enq.valid) {assert(reload_fifo.io.enq.ready, \"Assert Failed at Dcache, Pipeline stuck!\")}\n"
            ); // @[Dcache.scala 281:41]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~reload_fifo_io_enq_ready & (reload_fifo_io_enq_valid & _T_5)) begin
          $fatal; // @[Dcache.scala 281:41]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (rtn_fifo_io_enq_valid & _T_5 & ~rtn_fifo_io_enq_ready) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed at Dcache, Pipeline stuck!\n    at Dcache.scala:282 when(rtn_fifo.io.enq.valid) {assert(rtn_fifo.io.enq.ready, \"Assert Failed at Dcache, Pipeline stuck!\")}\n"
            ); // @[Dcache.scala 282:38]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~rtn_fifo_io_enq_ready & (rtn_fifo_io_enq_valid & _T_5)) begin
          $fatal; // @[Dcache.scala 282:38]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  sbBuff_0_paddr = _RAND_0[31:0];
  _RAND_1 = {1{`RANDOM}};
  sbBuff_1_paddr = _RAND_1[31:0];
  _RAND_2 = {1{`RANDOM}};
  sbValid_0 = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  sbValid_1 = _RAND_3[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Arbiter_3(
  output        io_in_0_ready,
  input         io_in_0_valid,
  input  [5:0]  io_in_0_bits_wb_rd0,
  input  [63:0] io_in_0_bits_wb_res,
  input         io_in_0_bits_is_flw,
  input         io_in_0_bits_is_fld,
  output        io_in_1_ready,
  input         io_in_1_valid,
  input  [5:0]  io_in_1_bits_wb_rd0,
  input  [63:0] io_in_1_bits_wb_res,
  input         io_in_1_bits_is_flw,
  input         io_in_1_bits_is_fld,
  output        io_in_2_ready,
  input         io_in_2_valid,
  input  [5:0]  io_in_2_bits_wb_rd0,
  input  [63:0] io_in_2_bits_wb_res,
  input         io_in_2_bits_is_flw,
  input         io_in_2_bits_is_fld,
  input         io_out_ready,
  output        io_out_valid,
  output [5:0]  io_out_bits_wb_rd0,
  output [63:0] io_out_bits_wb_res,
  output        io_out_bits_is_flw,
  output        io_out_bits_is_fld
);
  wire [5:0] _GEN_2 = io_in_1_valid ? io_in_1_bits_wb_rd0 : io_in_2_bits_wb_rd0; // @[Arbiter.scala 136:15 138:26 140:19]
  wire [63:0] _GEN_3 = io_in_1_valid ? io_in_1_bits_wb_res : io_in_2_bits_wb_res; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_5 = io_in_1_valid ? io_in_1_bits_is_flw : io_in_2_bits_is_flw; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  _GEN_6 = io_in_1_valid ? io_in_1_bits_is_fld : io_in_2_bits_is_fld; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  grant_1 = ~io_in_0_valid; // @[Arbiter.scala 45:78]
  wire  grant_2 = ~(io_in_0_valid | io_in_1_valid); // @[Arbiter.scala 45:78]
  assign io_in_0_ready = io_out_ready; // @[Arbiter.scala 146:19]
  assign io_in_1_ready = grant_1 & io_out_ready; // @[Arbiter.scala 146:19]
  assign io_in_2_ready = grant_2 & io_out_ready; // @[Arbiter.scala 146:19]
  assign io_out_valid = ~grant_2 | io_in_2_valid; // @[Arbiter.scala 147:31]
  assign io_out_bits_wb_rd0 = io_in_0_valid ? io_in_0_bits_wb_rd0 : _GEN_2; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_wb_res = io_in_0_valid ? io_in_0_bits_wb_res : _GEN_3; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_is_flw = io_in_0_valid ? io_in_0_bits_is_flw : _GEN_5; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_is_fld = io_in_0_valid ? io_in_0_bits_is_fld : _GEN_6; // @[Arbiter.scala 138:26 140:19]
endmodule
module Queue_16(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [5:0]  io_enq_bits_rd0,
  input  [63:0] io_enq_bits_res,
  input         io_deq_ready,
  output        io_deq_valid,
  output [5:0]  io_deq_bits_rd0,
  output [63:0] io_deq_bits_res
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [63:0] _RAND_1;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_2;
`endif // RANDOMIZE_REG_INIT
  reg [5:0] ram_rd0 [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_rd0_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_rd0_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [5:0] ram_rd0_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [5:0] ram_rd0_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_rd0_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_rd0_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_rd0_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_res [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_res_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_res_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_res_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_res_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_res_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_res_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_res_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  _do_enq_T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _do_deq_T = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_10 = io_deq_ready ? 1'h0 : _do_enq_T; // @[Decoupled.scala 320:{26,35}]
  wire  do_enq = empty ? _GEN_10 : _do_enq_T; // @[Decoupled.scala 317:17]
  wire  do_deq = empty ? 1'h0 : _do_deq_T; // @[Decoupled.scala 317:17 319:14]
  assign ram_rd0_io_deq_bits_MPORT_en = 1'h1;
  assign ram_rd0_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_rd0_io_deq_bits_MPORT_data = ram_rd0[ram_rd0_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_rd0_MPORT_data = io_enq_bits_rd0;
  assign ram_rd0_MPORT_addr = 1'h0;
  assign ram_rd0_MPORT_mask = 1'h1;
  assign ram_rd0_MPORT_en = empty ? _GEN_10 : _do_enq_T;
  assign ram_res_io_deq_bits_MPORT_en = 1'h1;
  assign ram_res_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_res_io_deq_bits_MPORT_data = ram_res[ram_res_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_res_MPORT_data = io_enq_bits_res;
  assign ram_res_MPORT_addr = 1'h0;
  assign ram_res_MPORT_mask = 1'h1;
  assign ram_res_MPORT_en = empty ? _GEN_10 : _do_enq_T;
  assign io_enq_ready = ~maybe_full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = io_enq_valid | ~empty; // @[Decoupled.scala 304:16 316:{24,39}]
  assign io_deq_bits_rd0 = empty ? io_enq_bits_rd0 : ram_rd0_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_res = empty ? io_enq_bits_res : ram_res_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  always @(posedge clock) begin
    if (ram_rd0_MPORT_en & ram_rd0_MPORT_mask) begin
      ram_rd0[ram_rd0_MPORT_addr] <= ram_rd0_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_res_MPORT_en & ram_res_MPORT_mask) begin
      ram_res[ram_res_MPORT_addr] <= ram_res_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      if (empty) begin // @[Decoupled.scala 317:17]
        if (io_deq_ready) begin // @[Decoupled.scala 320:26]
          maybe_full <= 1'h0; // @[Decoupled.scala 320:35]
        end else begin
          maybe_full <= _do_enq_T;
        end
      end else begin
        maybe_full <= _do_enq_T;
      end
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_rd0[initvar] = _RAND_0[5:0];
  _RAND_1 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_res[initvar] = _RAND_1[63:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_2 = {1{`RANDOM}};
  maybe_full = _RAND_2[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_17(
  input   clock,
  input   reset,
  output  io_enq_ready,
  input   io_enq_valid,
  output  io_deq_valid
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
`endif // RANDOMIZE_REG_INIT
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  _do_enq_T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_enq = empty ? 1'h0 : _do_enq_T; // @[Decoupled.scala 317:17]
  wire  do_deq = empty ? 1'h0 : io_deq_valid; // @[Decoupled.scala 317:17 319:14]
  assign io_enq_ready = ~maybe_full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = io_enq_valid | ~empty; // @[Decoupled.scala 304:16 316:{24,39}]
  always @(posedge clock) begin
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      if (empty) begin // @[Decoupled.scala 317:17]
        maybe_full <= 1'h0;
      end else begin
        maybe_full <= _do_enq_T;
      end
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  maybe_full = _RAND_0[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Arbiter_4(
  output        io_in_0_ready,
  input         io_in_0_valid,
  input  [5:0]  io_in_0_bits_rd0,
  input  [63:0] io_in_0_bits_res,
  output        io_in_1_ready,
  input         io_in_1_valid,
  input  [5:0]  io_in_1_bits_rd0,
  input  [63:0] io_in_1_bits_res,
  output        io_in_2_ready,
  input         io_in_2_valid,
  input  [5:0]  io_in_2_bits_rd0,
  input  [63:0] io_in_2_bits_res,
  input         io_out_ready,
  output        io_out_valid,
  output [5:0]  io_out_bits_rd0,
  output [63:0] io_out_bits_res
);
  wire [5:0] _GEN_1 = io_in_1_valid ? io_in_1_bits_rd0 : io_in_2_bits_rd0; // @[Arbiter.scala 136:15 138:26 140:19]
  wire [63:0] _GEN_2 = io_in_1_valid ? io_in_1_bits_res : io_in_2_bits_res; // @[Arbiter.scala 136:15 138:26 140:19]
  wire  grant_1 = ~io_in_0_valid; // @[Arbiter.scala 45:78]
  wire  grant_2 = ~(io_in_0_valid | io_in_1_valid); // @[Arbiter.scala 45:78]
  assign io_in_0_ready = io_out_ready; // @[Arbiter.scala 146:19]
  assign io_in_1_ready = grant_1 & io_out_ready; // @[Arbiter.scala 146:19]
  assign io_in_2_ready = grant_2 & io_out_ready; // @[Arbiter.scala 146:19]
  assign io_out_valid = ~grant_2 | io_in_2_valid; // @[Arbiter.scala 147:31]
  assign io_out_bits_rd0 = io_in_0_valid ? io_in_0_bits_rd0 : _GEN_1; // @[Arbiter.scala 138:26 140:19]
  assign io_out_bits_res = io_in_0_valid ? io_in_0_bits_res : _GEN_2; // @[Arbiter.scala 138:26 140:19]
endmodule
module Arbiter_5(
  output        io_in_0_ready,
  input         io_in_0_valid,
  input  [31:0] io_in_0_bits_address,
  input         io_out_ready,
  output        io_out_valid,
  output [31:0] io_out_bits_address
);
  assign io_in_0_ready = io_out_ready; // @[Arbiter.scala 146:19]
  assign io_out_valid = io_in_0_valid; // @[Arbiter.scala 147:31]
  assign io_out_bits_address = io_in_0_bits_address; // @[Arbiter.scala 136:15]
endmodule
module Arbiter_6(
  output       io_in_0_ready,
  input        io_in_0_valid,
  input  [4:0] io_in_0_bits_sink,
  input        io_out_ready,
  output       io_out_valid,
  output [4:0] io_out_bits_sink
);
  assign io_in_0_ready = io_out_ready; // @[Arbiter.scala 146:19]
  assign io_out_valid = io_in_0_valid; // @[Arbiter.scala 147:31]
  assign io_out_bits_sink = io_in_0_bits_sink; // @[Arbiter.scala 136:15]
endmodule
module Arbiter_7(
  output        io_in_0_ready,
  input         io_in_0_valid,
  input  [2:0]  io_in_0_bits_opcode,
  input  [2:0]  io_in_0_bits_param,
  input  [2:0]  io_in_0_bits_size,
  input  [31:0] io_in_0_bits_address,
  input  [63:0] io_in_0_bits_data,
  input         io_out_ready,
  output        io_out_valid,
  output [2:0]  io_out_bits_opcode,
  output [2:0]  io_out_bits_param,
  output [2:0]  io_out_bits_size,
  output [31:0] io_out_bits_address,
  output [63:0] io_out_bits_data
);
  assign io_in_0_ready = io_out_ready; // @[Arbiter.scala 146:19]
  assign io_out_valid = io_in_0_valid; // @[Arbiter.scala 147:31]
  assign io_out_bits_opcode = io_in_0_bits_opcode; // @[Arbiter.scala 136:15]
  assign io_out_bits_param = io_in_0_bits_param; // @[Arbiter.scala 136:15]
  assign io_out_bits_size = io_in_0_bits_size; // @[Arbiter.scala 136:15]
  assign io_out_bits_address = io_in_0_bits_address; // @[Arbiter.scala 136:15]
  assign io_out_bits_data = io_in_0_bits_data; // @[Arbiter.scala 136:15]
endmodule
module Lsu(
  input         clock,
  input         reset,
  output        io_lsu_iss_exe_ready,
  input         io_lsu_iss_exe_valid,
  input         io_lsu_iss_exe_bits_fun_lb,
  input         io_lsu_iss_exe_bits_fun_lh,
  input         io_lsu_iss_exe_bits_fun_lw,
  input         io_lsu_iss_exe_bits_fun_ld,
  input         io_lsu_iss_exe_bits_fun_lbu,
  input         io_lsu_iss_exe_bits_fun_lhu,
  input         io_lsu_iss_exe_bits_fun_lwu,
  input         io_lsu_iss_exe_bits_fun_sb,
  input         io_lsu_iss_exe_bits_fun_sh,
  input         io_lsu_iss_exe_bits_fun_sw,
  input         io_lsu_iss_exe_bits_fun_sd,
  input         io_lsu_iss_exe_bits_fun_fence,
  input         io_lsu_iss_exe_bits_fun_fence_i,
  input         io_lsu_iss_exe_bits_fun_sfence_vma,
  input         io_lsu_iss_exe_bits_fun_lr_w,
  input         io_lsu_iss_exe_bits_fun_sc_w,
  input         io_lsu_iss_exe_bits_fun_amoswap_w,
  input         io_lsu_iss_exe_bits_fun_amoadd_w,
  input         io_lsu_iss_exe_bits_fun_amoxor_w,
  input         io_lsu_iss_exe_bits_fun_amoand_w,
  input         io_lsu_iss_exe_bits_fun_amoor_w,
  input         io_lsu_iss_exe_bits_fun_amomin_w,
  input         io_lsu_iss_exe_bits_fun_amomax_w,
  input         io_lsu_iss_exe_bits_fun_amominu_w,
  input         io_lsu_iss_exe_bits_fun_amomaxu_w,
  input         io_lsu_iss_exe_bits_fun_lr_d,
  input         io_lsu_iss_exe_bits_fun_sc_d,
  input         io_lsu_iss_exe_bits_fun_amoswap_d,
  input         io_lsu_iss_exe_bits_fun_amoadd_d,
  input         io_lsu_iss_exe_bits_fun_amoxor_d,
  input         io_lsu_iss_exe_bits_fun_amoand_d,
  input         io_lsu_iss_exe_bits_fun_amoor_d,
  input         io_lsu_iss_exe_bits_fun_amomin_d,
  input         io_lsu_iss_exe_bits_fun_amomax_d,
  input         io_lsu_iss_exe_bits_fun_amominu_d,
  input         io_lsu_iss_exe_bits_fun_amomaxu_d,
  input         io_lsu_iss_exe_bits_fun_flw,
  input         io_lsu_iss_exe_bits_fun_fsw,
  input         io_lsu_iss_exe_bits_fun_fld,
  input         io_lsu_iss_exe_bits_fun_fsd,
  input  [5:0]  io_lsu_iss_exe_bits_param_rd0,
  input  [63:0] io_lsu_iss_exe_bits_param_dat_op1,
  input  [63:0] io_lsu_iss_exe_bits_param_dat_op2,
  input         io_lsu_exe_iwb_ready,
  output        io_lsu_exe_iwb_valid,
  output [5:0]  io_lsu_exe_iwb_bits_rd0,
  output [63:0] io_lsu_exe_iwb_bits_res,
  output        io_lsu_exe_fwb_valid,
  input         io_cmm_lsu_is_amo_pending,
  input         io_cmm_lsu_is_store_commit_0,
  output        io_lsu_cmm_is_access_fault,
  output        io_lsu_cmm_is_paging_fault,
  output        io_lsu_cmm_is_misAlign,
  output [63:0] io_lsu_cmm_trap_addr,
  input         io_lsu_mmu_ready,
  output        io_lsu_mmu_valid,
  output        io_lsu_mmu_bits_is_W,
  output        io_lsu_mmu_bits_is_R,
  output [63:0] io_lsu_mmu_bits_vaddr,
  output        io_mmu_lsu_ready,
  input         io_mmu_lsu_valid,
  input  [63:0] io_mmu_lsu_bits_paddr,
  input         io_mmu_lsu_bits_is_paging_fault,
  input         io_mmu_lsu_bits_is_access_fault,
  input         io_missUnit_dcache_acquire_ready,
  output        io_missUnit_dcache_acquire_valid,
  output [31:0] io_missUnit_dcache_acquire_bits_address,
  output        io_missUnit_dcache_grant_ready,
  input         io_missUnit_dcache_grant_valid,
  input  [2:0]  io_missUnit_dcache_grant_bits_opcode,
  input  [2:0]  io_missUnit_dcache_grant_bits_size,
  input         io_missUnit_dcache_grant_bits_source,
  input  [4:0]  io_missUnit_dcache_grant_bits_sink,
  input  [63:0] io_missUnit_dcache_grant_bits_data,
  input         io_missUnit_dcache_grantAck_ready,
  output        io_missUnit_dcache_grantAck_valid,
  output [4:0]  io_missUnit_dcache_grantAck_bits_sink,
  output        io_probeUnit_dcache_probe_ready,
  input         io_probeUnit_dcache_probe_valid,
  input  [31:0] io_probeUnit_dcache_probe_bits_address,
  input         io_writeBackUnit_dcache_release_ready,
  output        io_writeBackUnit_dcache_release_valid,
  output [2:0]  io_writeBackUnit_dcache_release_bits_opcode,
  output [2:0]  io_writeBackUnit_dcache_release_bits_param,
  output [2:0]  io_writeBackUnit_dcache_release_bits_size,
  output [31:0] io_writeBackUnit_dcache_release_bits_address,
  output [63:0] io_writeBackUnit_dcache_release_bits_data,
  output        io_writeBackUnit_dcache_grant_ready,
  input         io_writeBackUnit_dcache_grant_valid,
  input         io_writeBackUnit_dcache_grant_bits_source,
  input         io_system_getPut_ready,
  output        io_system_getPut_valid,
  output [2:0]  io_system_getPut_bits_opcode,
  output [31:0] io_system_getPut_bits_address,
  output [7:0]  io_system_getPut_bits_mask,
  output [63:0] io_system_getPut_bits_data,
  output        io_system_access_ready,
  input         io_system_access_valid,
  input  [2:0]  io_system_access_bits_opcode,
  input  [63:0] io_system_access_bits_data,
  input         io_periph_getPut_ready,
  output        io_periph_getPut_valid,
  output [2:0]  io_periph_getPut_bits_opcode,
  output [31:0] io_periph_getPut_bits_address,
  output [7:0]  io_periph_getPut_bits_mask,
  output [63:0] io_periph_getPut_bits_data,
  output        io_periph_access_ready,
  input         io_periph_access_valid,
  input  [2:0]  io_periph_access_bits_opcode,
  input  [63:0] io_periph_access_bits_data,
  input         io_flush
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [63:0] _RAND_6;
`endif // RANDOMIZE_REG_INIT
  wire  stQueue_clock; // @[Lsu.scala 84:23]
  wire  stQueue_reset; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_ready; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_valid; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_lb; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_lh; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_lw; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_ld; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_lbu; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_lhu; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_lwu; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_sb; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_sh; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_sw; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_sd; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_lr_w; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_sc_w; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_amoswap_w; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_amoadd_w; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_amoxor_w; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_amoand_w; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_amoor_w; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_amomin_w; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_amomax_w; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_amominu_w; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_amomaxu_w; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_lr_d; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_sc_d; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_amoswap_d; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_amoadd_d; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_amoxor_d; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_amoand_d; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_amoor_d; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_amomin_d; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_amomax_d; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_amominu_d; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_amomaxu_d; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_flw; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_fsw; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_fld; // @[Lsu.scala 84:23]
  wire  stQueue_io_enq_bits_fun_fsd; // @[Lsu.scala 84:23]
  wire [5:0] stQueue_io_enq_bits_param_rd0; // @[Lsu.scala 84:23]
  wire [63:0] stQueue_io_enq_bits_param_dat_op1; // @[Lsu.scala 84:23]
  wire [63:0] stQueue_io_enq_bits_param_dat_op2; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_ready; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_valid; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_lb; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_lh; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_lw; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_ld; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_lbu; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_lhu; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_lwu; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_sb; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_sh; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_sw; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_sd; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_lr_w; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_sc_w; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_amoswap_w; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_amoadd_w; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_amoxor_w; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_amoand_w; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_amoor_w; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_amomin_w; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_amomax_w; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_amominu_w; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_amomaxu_w; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_lr_d; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_sc_d; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_amoswap_d; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_amoadd_d; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_amoxor_d; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_amoand_d; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_amoor_d; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_amomin_d; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_amomax_d; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_amominu_d; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_amomaxu_d; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_flw; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_fsw; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_fld; // @[Lsu.scala 84:23]
  wire  stQueue_io_deq_bits_fun_fsd; // @[Lsu.scala 84:23]
  wire [5:0] stQueue_io_deq_bits_param_rd0; // @[Lsu.scala 84:23]
  wire [63:0] stQueue_io_deq_bits_param_dat_op1; // @[Lsu.scala 84:23]
  wire [63:0] stQueue_io_deq_bits_param_dat_op2; // @[Lsu.scala 84:23]
  wire  stQueue_io_cmm_lsu_is_amo_pending; // @[Lsu.scala 84:23]
  wire  stQueue_io_cmm_lsu_is_store_commit_0; // @[Lsu.scala 84:23]
  wire  stQueue_io_is_empty; // @[Lsu.scala 84:23]
  wire  stQueue_io_overlapReq_valid; // @[Lsu.scala 84:23]
  wire [31:0] stQueue_io_overlapReq_bits_paddr; // @[Lsu.scala 84:23]
  wire  stQueue_io_overlapResp_valid; // @[Lsu.scala 84:23]
  wire [63:0] stQueue_io_overlapResp_bits_wdata; // @[Lsu.scala 84:23]
  wire [7:0] stQueue_io_overlapResp_bits_wstrb; // @[Lsu.scala 84:23]
  wire  stQueue_io_flush; // @[Lsu.scala 84:23]
  wire  ls_arb_io_in_0_ready; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_valid; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_lb; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_lh; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_lw; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_ld; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_lbu; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_lhu; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_lwu; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_sb; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_sh; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_sw; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_sd; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_lr_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_sc_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_amoswap_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_amoadd_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_amoxor_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_amoand_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_amoor_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_amomin_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_amomax_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_amominu_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_amomaxu_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_lr_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_sc_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_amoswap_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_amoadd_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_amoxor_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_amoand_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_amoor_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_amomin_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_amomax_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_amominu_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_amomaxu_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_flw; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_fsw; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_fld; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_0_bits_fun_fsd; // @[Lsu.scala 87:22]
  wire [5:0] ls_arb_io_in_0_bits_param_rd0; // @[Lsu.scala 87:22]
  wire [63:0] ls_arb_io_in_0_bits_param_dat_op1; // @[Lsu.scala 87:22]
  wire [63:0] ls_arb_io_in_0_bits_param_dat_op2; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_ready; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_valid; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_lb; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_lh; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_lw; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_ld; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_lbu; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_lhu; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_lwu; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_sb; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_sh; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_sw; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_sd; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_lr_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_sc_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_amoswap_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_amoadd_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_amoxor_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_amoand_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_amoor_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_amomin_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_amomax_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_amominu_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_amomaxu_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_lr_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_sc_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_amoswap_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_amoadd_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_amoxor_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_amoand_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_amoor_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_amomin_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_amomax_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_amominu_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_amomaxu_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_flw; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_fsw; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_fld; // @[Lsu.scala 87:22]
  wire  ls_arb_io_in_1_bits_fun_fsd; // @[Lsu.scala 87:22]
  wire [5:0] ls_arb_io_in_1_bits_param_rd0; // @[Lsu.scala 87:22]
  wire [63:0] ls_arb_io_in_1_bits_param_dat_op1; // @[Lsu.scala 87:22]
  wire [63:0] ls_arb_io_in_1_bits_param_dat_op2; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_ready; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_valid; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_lb; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_lh; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_lw; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_ld; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_lbu; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_lhu; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_lwu; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_sb; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_sh; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_sw; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_sd; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_lr_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_sc_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_amoswap_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_amoadd_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_amoxor_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_amoand_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_amoor_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_amomin_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_amomax_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_amominu_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_amomaxu_w; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_lr_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_sc_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_amoswap_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_amoadd_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_amoxor_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_amoand_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_amoor_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_amomin_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_amomax_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_amominu_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_amomaxu_d; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_flw; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_fsw; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_fld; // @[Lsu.scala 87:22]
  wire  ls_arb_io_out_bits_fun_fsd; // @[Lsu.scala 87:22]
  wire [5:0] ls_arb_io_out_bits_param_rd0; // @[Lsu.scala 87:22]
  wire [63:0] ls_arb_io_out_bits_param_dat_op1; // @[Lsu.scala 87:22]
  wire [63:0] ls_arb_io_out_bits_param_dat_op2; // @[Lsu.scala 87:22]
  wire  system_clock; // @[Lsu.scala 95:22]
  wire  system_reset; // @[Lsu.scala 95:22]
  wire  system_io_enq_ready; // @[Lsu.scala 95:22]
  wire  system_io_enq_valid; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_lb; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_lh; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_lw; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_ld; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_lbu; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_lhu; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_lwu; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_sb; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_sh; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_sw; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_sd; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_lr_w; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_sc_w; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_amoswap_w; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_amoadd_w; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_amoxor_w; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_amoand_w; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_amoor_w; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_amomin_w; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_amomax_w; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_amominu_w; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_amomaxu_w; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_lr_d; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_sc_d; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_amoswap_d; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_amoadd_d; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_amoxor_d; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_amoand_d; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_amoor_d; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_amomin_d; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_amomax_d; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_amominu_d; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_amomaxu_d; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_flw; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_fsw; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_fld; // @[Lsu.scala 95:22]
  wire  system_io_enq_bits_fun_fsd; // @[Lsu.scala 95:22]
  wire [5:0] system_io_enq_bits_param_rd0; // @[Lsu.scala 95:22]
  wire [63:0] system_io_enq_bits_param_dat_op1; // @[Lsu.scala 95:22]
  wire [63:0] system_io_enq_bits_param_dat_op2; // @[Lsu.scala 95:22]
  wire  system_io_deq_ready; // @[Lsu.scala 95:22]
  wire  system_io_deq_valid; // @[Lsu.scala 95:22]
  wire [5:0] system_io_deq_bits_wb_rd0; // @[Lsu.scala 95:22]
  wire [63:0] system_io_deq_bits_wb_res; // @[Lsu.scala 95:22]
  wire  system_io_deq_bits_is_load_amo; // @[Lsu.scala 95:22]
  wire  system_io_deq_bits_is_flw; // @[Lsu.scala 95:22]
  wire  system_io_deq_bits_is_fld; // @[Lsu.scala 95:22]
  wire  system_io_is_empty; // @[Lsu.scala 95:22]
  wire  system_io_getPut_ready; // @[Lsu.scala 95:22]
  wire  system_io_getPut_valid; // @[Lsu.scala 95:22]
  wire [2:0] system_io_getPut_bits_opcode; // @[Lsu.scala 95:22]
  wire [31:0] system_io_getPut_bits_address; // @[Lsu.scala 95:22]
  wire [7:0] system_io_getPut_bits_mask; // @[Lsu.scala 95:22]
  wire [63:0] system_io_getPut_bits_data; // @[Lsu.scala 95:22]
  wire  system_io_access_ready; // @[Lsu.scala 95:22]
  wire  system_io_access_valid; // @[Lsu.scala 95:22]
  wire [2:0] system_io_access_bits_opcode; // @[Lsu.scala 95:22]
  wire [63:0] system_io_access_bits_data; // @[Lsu.scala 95:22]
  wire  periph_clock; // @[Lsu.scala 96:22]
  wire  periph_reset; // @[Lsu.scala 96:22]
  wire  periph_io_enq_ready; // @[Lsu.scala 96:22]
  wire  periph_io_enq_valid; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_lb; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_lh; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_lw; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_ld; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_lbu; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_lhu; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_lwu; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_sb; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_sh; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_sw; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_sd; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_lr_w; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_sc_w; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_amoswap_w; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_amoadd_w; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_amoxor_w; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_amoand_w; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_amoor_w; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_amomin_w; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_amomax_w; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_amominu_w; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_amomaxu_w; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_lr_d; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_sc_d; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_amoswap_d; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_amoadd_d; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_amoxor_d; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_amoand_d; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_amoor_d; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_amomin_d; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_amomax_d; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_amominu_d; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_amomaxu_d; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_flw; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_fsw; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_fld; // @[Lsu.scala 96:22]
  wire  periph_io_enq_bits_fun_fsd; // @[Lsu.scala 96:22]
  wire [5:0] periph_io_enq_bits_param_rd0; // @[Lsu.scala 96:22]
  wire [63:0] periph_io_enq_bits_param_dat_op1; // @[Lsu.scala 96:22]
  wire [63:0] periph_io_enq_bits_param_dat_op2; // @[Lsu.scala 96:22]
  wire  periph_io_deq_ready; // @[Lsu.scala 96:22]
  wire  periph_io_deq_valid; // @[Lsu.scala 96:22]
  wire [5:0] periph_io_deq_bits_wb_rd0; // @[Lsu.scala 96:22]
  wire [63:0] periph_io_deq_bits_wb_res; // @[Lsu.scala 96:22]
  wire  periph_io_deq_bits_is_load_amo; // @[Lsu.scala 96:22]
  wire  periph_io_deq_bits_is_flw; // @[Lsu.scala 96:22]
  wire  periph_io_deq_bits_is_fld; // @[Lsu.scala 96:22]
  wire  periph_io_is_empty; // @[Lsu.scala 96:22]
  wire  periph_io_getPut_ready; // @[Lsu.scala 96:22]
  wire  periph_io_getPut_valid; // @[Lsu.scala 96:22]
  wire [2:0] periph_io_getPut_bits_opcode; // @[Lsu.scala 96:22]
  wire [31:0] periph_io_getPut_bits_address; // @[Lsu.scala 96:22]
  wire [7:0] periph_io_getPut_bits_mask; // @[Lsu.scala 96:22]
  wire [63:0] periph_io_getPut_bits_data; // @[Lsu.scala 96:22]
  wire  periph_io_access_ready; // @[Lsu.scala 96:22]
  wire  periph_io_access_valid; // @[Lsu.scala 96:22]
  wire [2:0] periph_io_access_bits_opcode; // @[Lsu.scala 96:22]
  wire [63:0] periph_io_access_bits_data; // @[Lsu.scala 96:22]
  wire  cache_0_clock; // @[Lsu.scala 97:63]
  wire  cache_0_reset; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_ready; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_valid; // @[Lsu.scala 97:63]
  wire [31:0] cache_0_io_enq_bits_paddr; // @[Lsu.scala 97:63]
  wire [127:0] cache_0_io_enq_bits_wdata; // @[Lsu.scala 97:63]
  wire [15:0] cache_0_io_enq_bits_wstrb; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_lb; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_lh; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_lw; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_ld; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_lbu; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_lhu; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_lwu; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_sb; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_sh; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_sw; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_sd; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_lr_w; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_sc_w; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_amoswap_w; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_amoadd_w; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_amoxor_w; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_amoand_w; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_amoor_w; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_amomin_w; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_amomax_w; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_amominu_w; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_amomaxu_w; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_lr_d; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_sc_d; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_amoswap_d; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_amoadd_d; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_amoxor_d; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_amoand_d; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_amoor_d; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_amomin_d; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_amomax_d; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_amominu_d; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_amomaxu_d; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_flw; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_fsw; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_fld; // @[Lsu.scala 97:63]
  wire  cache_0_io_enq_bits_fun_fsd; // @[Lsu.scala 97:63]
  wire [5:0] cache_0_io_enq_bits_rd_rd0; // @[Lsu.scala 97:63]
  wire  cache_0_io_deq_ready; // @[Lsu.scala 97:63]
  wire  cache_0_io_deq_valid; // @[Lsu.scala 97:63]
  wire  cache_0_io_deq_bits_chkIdx; // @[Lsu.scala 97:63]
  wire [5:0] cache_0_io_deq_bits_wb_rd0; // @[Lsu.scala 97:63]
  wire [63:0] cache_0_io_deq_bits_wb_res; // @[Lsu.scala 97:63]
  wire  cache_0_io_deq_bits_is_load_amo; // @[Lsu.scala 97:63]
  wire  cache_0_io_deq_bits_is_flw; // @[Lsu.scala 97:63]
  wire  cache_0_io_deq_bits_is_fld; // @[Lsu.scala 97:63]
  wire  cache_0_io_is_empty; // @[Lsu.scala 97:63]
  wire  cache_0_io_flush; // @[Lsu.scala 97:63]
  wire  cache_0_io_missUnit_dcache_acquire_ready; // @[Lsu.scala 97:63]
  wire  cache_0_io_missUnit_dcache_acquire_valid; // @[Lsu.scala 97:63]
  wire [31:0] cache_0_io_missUnit_dcache_acquire_bits_address; // @[Lsu.scala 97:63]
  wire  cache_0_io_missUnit_dcache_grant_ready; // @[Lsu.scala 97:63]
  wire  cache_0_io_missUnit_dcache_grant_valid; // @[Lsu.scala 97:63]
  wire [2:0] cache_0_io_missUnit_dcache_grant_bits_opcode; // @[Lsu.scala 97:63]
  wire [2:0] cache_0_io_missUnit_dcache_grant_bits_size; // @[Lsu.scala 97:63]
  wire  cache_0_io_missUnit_dcache_grant_bits_source; // @[Lsu.scala 97:63]
  wire [4:0] cache_0_io_missUnit_dcache_grant_bits_sink; // @[Lsu.scala 97:63]
  wire [63:0] cache_0_io_missUnit_dcache_grant_bits_data; // @[Lsu.scala 97:63]
  wire  cache_0_io_missUnit_dcache_grantAck_ready; // @[Lsu.scala 97:63]
  wire  cache_0_io_missUnit_dcache_grantAck_valid; // @[Lsu.scala 97:63]
  wire [4:0] cache_0_io_missUnit_dcache_grantAck_bits_sink; // @[Lsu.scala 97:63]
  wire  cache_0_io_probeUnit_dcache_probe_ready; // @[Lsu.scala 97:63]
  wire  cache_0_io_probeUnit_dcache_probe_valid; // @[Lsu.scala 97:63]
  wire [31:0] cache_0_io_probeUnit_dcache_probe_bits_address; // @[Lsu.scala 97:63]
  wire  cache_0_io_writeBackUnit_dcache_release_ready; // @[Lsu.scala 97:63]
  wire  cache_0_io_writeBackUnit_dcache_release_valid; // @[Lsu.scala 97:63]
  wire [2:0] cache_0_io_writeBackUnit_dcache_release_bits_opcode; // @[Lsu.scala 97:63]
  wire [2:0] cache_0_io_writeBackUnit_dcache_release_bits_param; // @[Lsu.scala 97:63]
  wire [2:0] cache_0_io_writeBackUnit_dcache_release_bits_size; // @[Lsu.scala 97:63]
  wire [31:0] cache_0_io_writeBackUnit_dcache_release_bits_address; // @[Lsu.scala 97:63]
  wire [63:0] cache_0_io_writeBackUnit_dcache_release_bits_data; // @[Lsu.scala 97:63]
  wire  cache_0_io_writeBackUnit_dcache_grant_ready; // @[Lsu.scala 97:63]
  wire  cache_0_io_writeBackUnit_dcache_grant_valid; // @[Lsu.scala 97:63]
  wire  cache_0_io_writeBackUnit_dcache_grant_bits_source; // @[Lsu.scala 97:63]
  wire  lu_wb_arb_io_in_0_ready; // @[Lsu.scala 103:25]
  wire  lu_wb_arb_io_in_0_valid; // @[Lsu.scala 103:25]
  wire [5:0] lu_wb_arb_io_in_0_bits_wb_rd0; // @[Lsu.scala 103:25]
  wire [63:0] lu_wb_arb_io_in_0_bits_wb_res; // @[Lsu.scala 103:25]
  wire  lu_wb_arb_io_in_0_bits_is_flw; // @[Lsu.scala 103:25]
  wire  lu_wb_arb_io_in_0_bits_is_fld; // @[Lsu.scala 103:25]
  wire  lu_wb_arb_io_in_1_ready; // @[Lsu.scala 103:25]
  wire  lu_wb_arb_io_in_1_valid; // @[Lsu.scala 103:25]
  wire [5:0] lu_wb_arb_io_in_1_bits_wb_rd0; // @[Lsu.scala 103:25]
  wire [63:0] lu_wb_arb_io_in_1_bits_wb_res; // @[Lsu.scala 103:25]
  wire  lu_wb_arb_io_in_1_bits_is_flw; // @[Lsu.scala 103:25]
  wire  lu_wb_arb_io_in_1_bits_is_fld; // @[Lsu.scala 103:25]
  wire  lu_wb_arb_io_in_2_ready; // @[Lsu.scala 103:25]
  wire  lu_wb_arb_io_in_2_valid; // @[Lsu.scala 103:25]
  wire [5:0] lu_wb_arb_io_in_2_bits_wb_rd0; // @[Lsu.scala 103:25]
  wire [63:0] lu_wb_arb_io_in_2_bits_wb_res; // @[Lsu.scala 103:25]
  wire  lu_wb_arb_io_in_2_bits_is_flw; // @[Lsu.scala 103:25]
  wire  lu_wb_arb_io_in_2_bits_is_fld; // @[Lsu.scala 103:25]
  wire  lu_wb_arb_io_out_ready; // @[Lsu.scala 103:25]
  wire  lu_wb_arb_io_out_valid; // @[Lsu.scala 103:25]
  wire [5:0] lu_wb_arb_io_out_bits_wb_rd0; // @[Lsu.scala 103:25]
  wire [63:0] lu_wb_arb_io_out_bits_wb_res; // @[Lsu.scala 103:25]
  wire  lu_wb_arb_io_out_bits_is_flw; // @[Lsu.scala 103:25]
  wire  lu_wb_arb_io_out_bits_is_fld; // @[Lsu.scala 103:25]
  wire  lu_wb_fifo_clock; // @[Lsu.scala 110:26]
  wire  lu_wb_fifo_reset; // @[Lsu.scala 110:26]
  wire  lu_wb_fifo_io_enq_ready; // @[Lsu.scala 110:26]
  wire  lu_wb_fifo_io_enq_valid; // @[Lsu.scala 110:26]
  wire [5:0] lu_wb_fifo_io_enq_bits_rd0; // @[Lsu.scala 110:26]
  wire [63:0] lu_wb_fifo_io_enq_bits_res; // @[Lsu.scala 110:26]
  wire  lu_wb_fifo_io_deq_ready; // @[Lsu.scala 110:26]
  wire  lu_wb_fifo_io_deq_valid; // @[Lsu.scala 110:26]
  wire [5:0] lu_wb_fifo_io_deq_bits_rd0; // @[Lsu.scala 110:26]
  wire [63:0] lu_wb_fifo_io_deq_bits_res; // @[Lsu.scala 110:26]
  wire  flu_wb_fifo_clock; // @[Lsu.scala 112:27]
  wire  flu_wb_fifo_reset; // @[Lsu.scala 112:27]
  wire  flu_wb_fifo_io_enq_ready; // @[Lsu.scala 112:27]
  wire  flu_wb_fifo_io_enq_valid; // @[Lsu.scala 112:27]
  wire  flu_wb_fifo_io_deq_valid; // @[Lsu.scala 112:27]
  wire  su_wb_fifo_clock; // @[Lsu.scala 118:26]
  wire  su_wb_fifo_reset; // @[Lsu.scala 118:26]
  wire  su_wb_fifo_io_enq_ready; // @[Lsu.scala 118:26]
  wire  su_wb_fifo_io_enq_valid; // @[Lsu.scala 118:26]
  wire [5:0] su_wb_fifo_io_enq_bits_rd0; // @[Lsu.scala 118:26]
  wire [63:0] su_wb_fifo_io_enq_bits_res; // @[Lsu.scala 118:26]
  wire  su_wb_fifo_io_deq_ready; // @[Lsu.scala 118:26]
  wire  su_wb_fifo_io_deq_valid; // @[Lsu.scala 118:26]
  wire [5:0] su_wb_fifo_io_deq_bits_rd0; // @[Lsu.scala 118:26]
  wire [63:0] su_wb_fifo_io_deq_bits_res; // @[Lsu.scala 118:26]
  wire  fe_wb_fifo_clock; // @[Lsu.scala 119:26]
  wire  fe_wb_fifo_reset; // @[Lsu.scala 119:26]
  wire  fe_wb_fifo_io_enq_ready; // @[Lsu.scala 119:26]
  wire  fe_wb_fifo_io_enq_valid; // @[Lsu.scala 119:26]
  wire [5:0] fe_wb_fifo_io_enq_bits_rd0; // @[Lsu.scala 119:26]
  wire [63:0] fe_wb_fifo_io_enq_bits_res; // @[Lsu.scala 119:26]
  wire  fe_wb_fifo_io_deq_ready; // @[Lsu.scala 119:26]
  wire  fe_wb_fifo_io_deq_valid; // @[Lsu.scala 119:26]
  wire [5:0] fe_wb_fifo_io_deq_bits_rd0; // @[Lsu.scala 119:26]
  wire [63:0] fe_wb_fifo_io_deq_bits_res; // @[Lsu.scala 119:26]
  wire  rtn_arb_io_in_0_ready; // @[Lsu.scala 125:23]
  wire  rtn_arb_io_in_0_valid; // @[Lsu.scala 125:23]
  wire [5:0] rtn_arb_io_in_0_bits_rd0; // @[Lsu.scala 125:23]
  wire [63:0] rtn_arb_io_in_0_bits_res; // @[Lsu.scala 125:23]
  wire  rtn_arb_io_in_1_ready; // @[Lsu.scala 125:23]
  wire  rtn_arb_io_in_1_valid; // @[Lsu.scala 125:23]
  wire [5:0] rtn_arb_io_in_1_bits_rd0; // @[Lsu.scala 125:23]
  wire [63:0] rtn_arb_io_in_1_bits_res; // @[Lsu.scala 125:23]
  wire  rtn_arb_io_in_2_ready; // @[Lsu.scala 125:23]
  wire  rtn_arb_io_in_2_valid; // @[Lsu.scala 125:23]
  wire [5:0] rtn_arb_io_in_2_bits_rd0; // @[Lsu.scala 125:23]
  wire [63:0] rtn_arb_io_in_2_bits_res; // @[Lsu.scala 125:23]
  wire  rtn_arb_io_out_ready; // @[Lsu.scala 125:23]
  wire  rtn_arb_io_out_valid; // @[Lsu.scala 125:23]
  wire [5:0] rtn_arb_io_out_bits_rd0; // @[Lsu.scala 125:23]
  wire [63:0] rtn_arb_io_out_bits_res; // @[Lsu.scala 125:23]
  wire  acquireArb_io_in_0_ready; // @[Lsu.scala 277:29]
  wire  acquireArb_io_in_0_valid; // @[Lsu.scala 277:29]
  wire [31:0] acquireArb_io_in_0_bits_address; // @[Lsu.scala 277:29]
  wire  acquireArb_io_out_ready; // @[Lsu.scala 277:29]
  wire  acquireArb_io_out_valid; // @[Lsu.scala 277:29]
  wire [31:0] acquireArb_io_out_bits_address; // @[Lsu.scala 277:29]
  wire  grantAckArb_io_in_0_ready; // @[Lsu.scala 278:29]
  wire  grantAckArb_io_in_0_valid; // @[Lsu.scala 278:29]
  wire [4:0] grantAckArb_io_in_0_bits_sink; // @[Lsu.scala 278:29]
  wire  grantAckArb_io_out_ready; // @[Lsu.scala 278:29]
  wire  grantAckArb_io_out_valid; // @[Lsu.scala 278:29]
  wire [4:0] grantAckArb_io_out_bits_sink; // @[Lsu.scala 278:29]
  wire  releaseArb_io_in_0_ready; // @[Lsu.scala 279:29]
  wire  releaseArb_io_in_0_valid; // @[Lsu.scala 279:29]
  wire [2:0] releaseArb_io_in_0_bits_opcode; // @[Lsu.scala 279:29]
  wire [2:0] releaseArb_io_in_0_bits_param; // @[Lsu.scala 279:29]
  wire [2:0] releaseArb_io_in_0_bits_size; // @[Lsu.scala 279:29]
  wire [31:0] releaseArb_io_in_0_bits_address; // @[Lsu.scala 279:29]
  wire [63:0] releaseArb_io_in_0_bits_data; // @[Lsu.scala 279:29]
  wire  releaseArb_io_out_ready; // @[Lsu.scala 279:29]
  wire  releaseArb_io_out_valid; // @[Lsu.scala 279:29]
  wire [2:0] releaseArb_io_out_bits_opcode; // @[Lsu.scala 279:29]
  wire [2:0] releaseArb_io_out_bits_param; // @[Lsu.scala 279:29]
  wire [2:0] releaseArb_io_out_bits_size; // @[Lsu.scala 279:29]
  wire [31:0] releaseArb_io_out_bits_address; // @[Lsu.scala 279:29]
  wire [63:0] releaseArb_io_out_bits_data; // @[Lsu.scala 279:29]
  reg  trans_kill; // @[Lsu.scala 73:27]
  wire  _addrTransIO_valid_T = io_mmu_lsu_bits_is_access_fault | io_mmu_lsu_bits_is_paging_fault; // @[MMU.scala 77:34]
  wire  _addrTransIO_valid_T_1 = ~_addrTransIO_valid_T; // @[Lsu.scala 136:43]
  wire  _addrTransIO_valid_T_4 = io_lsu_iss_exe_bits_fun_lh | io_lsu_iss_exe_bits_fun_lhu | io_lsu_iss_exe_bits_fun_sh; // @[riscv_isa.scala 154:26]
  wire  _addrTransIO_valid_T_21 = io_lsu_iss_exe_bits_fun_lw | io_lsu_iss_exe_bits_fun_lwu | io_lsu_iss_exe_bits_fun_sw
     | io_lsu_iss_exe_bits_fun_amoswap_w | io_lsu_iss_exe_bits_fun_amoadd_w | io_lsu_iss_exe_bits_fun_amoxor_w |
    io_lsu_iss_exe_bits_fun_amoand_w | io_lsu_iss_exe_bits_fun_amoor_w | io_lsu_iss_exe_bits_fun_amomin_w |
    io_lsu_iss_exe_bits_fun_amomax_w | io_lsu_iss_exe_bits_fun_amominu_w | io_lsu_iss_exe_bits_fun_amomaxu_w |
    io_lsu_iss_exe_bits_fun_flw | io_lsu_iss_exe_bits_fun_fsw | io_lsu_iss_exe_bits_fun_lr_w |
    io_lsu_iss_exe_bits_fun_sc_w; // @[riscv_isa.scala 155:151]
  wire  _addrTransIO_valid_T_23 = io_lsu_iss_exe_bits_param_dat_op1[1:0] != 2'h0; // @[riscv_isa.scala 899:42]
  wire  _addrTransIO_valid_T_37 = io_lsu_iss_exe_bits_fun_ld | io_lsu_iss_exe_bits_fun_lr_d |
    io_lsu_iss_exe_bits_fun_fld | io_lsu_iss_exe_bits_fun_sd | io_lsu_iss_exe_bits_fun_sc_d |
    io_lsu_iss_exe_bits_fun_fsd | io_lsu_iss_exe_bits_fun_amoswap_d | io_lsu_iss_exe_bits_fun_amoadd_d |
    io_lsu_iss_exe_bits_fun_amoxor_d | io_lsu_iss_exe_bits_fun_amoand_d | io_lsu_iss_exe_bits_fun_amoor_d |
    io_lsu_iss_exe_bits_fun_amomin_d | io_lsu_iss_exe_bits_fun_amomax_d | io_lsu_iss_exe_bits_fun_amominu_d |
    io_lsu_iss_exe_bits_fun_amomaxu_d; // @[riscv_isa.scala 156:140]
  wire  _addrTransIO_valid_T_39 = io_lsu_iss_exe_bits_param_dat_op1[2:0] != 3'h0; // @[riscv_isa.scala 900:42]
  wire  _addrTransIO_valid_T_44 = _addrTransIO_valid_T_4 & io_lsu_iss_exe_bits_param_dat_op1[0] |
    _addrTransIO_valid_T_21 & _addrTransIO_valid_T_23 | _addrTransIO_valid_T_37 & _addrTransIO_valid_T_39; // @[Mux.scala 27:73]
  wire  _addrTransIO_valid_T_45 = ~_addrTransIO_valid_T_44; // @[Lsu.scala 136:71]
  wire  _addrTransIO_valid_T_48 = io_lsu_iss_exe_bits_fun_fence | io_lsu_iss_exe_bits_fun_fence_i |
    io_lsu_iss_exe_bits_fun_sfence_vma; // @[riscv_isa.scala 150:34]
  wire  _addrTransIO_valid_T_50 = ~(trans_kill | _addrTransIO_valid_T_48); // @[Lsu.scala 136:106]
  wire  addrTransIO_valid = io_mmu_lsu_valid & ~_addrTransIO_valid_T & ~_addrTransIO_valid_T_44 & ~(trans_kill |
    _addrTransIO_valid_T_48); // @[Lsu.scala 136:104]
  wire  _T_32 = io_lsu_iss_exe_bits_fun_sc_d | io_lsu_iss_exe_bits_fun_sc_w; // @[riscv_isa.scala 140:20]
  wire  _T_33 = io_lsu_iss_exe_bits_fun_amoswap_w | io_lsu_iss_exe_bits_fun_amoadd_w | io_lsu_iss_exe_bits_fun_amoxor_w
     | io_lsu_iss_exe_bits_fun_amoand_w | io_lsu_iss_exe_bits_fun_amoor_w | io_lsu_iss_exe_bits_fun_amomin_w |
    io_lsu_iss_exe_bits_fun_amomax_w | io_lsu_iss_exe_bits_fun_amominu_w | io_lsu_iss_exe_bits_fun_amomaxu_w |
    io_lsu_iss_exe_bits_fun_amoswap_d | io_lsu_iss_exe_bits_fun_amoadd_d | io_lsu_iss_exe_bits_fun_amoxor_d |
    io_lsu_iss_exe_bits_fun_amoand_d | io_lsu_iss_exe_bits_fun_amoor_d | io_lsu_iss_exe_bits_fun_amomin_d |
    io_lsu_iss_exe_bits_fun_amomax_d | io_lsu_iss_exe_bits_fun_amominu_d | io_lsu_iss_exe_bits_fun_amomaxu_d | _T_32; // @[riscv_isa.scala 148:205]
  wire  opAmIO_ready = stQueue_io_enq_ready; // @[Lsu.scala 463:16 81:20]
  wire  _T_14 = io_lsu_iss_exe_bits_fun_sb | io_lsu_iss_exe_bits_fun_sh | io_lsu_iss_exe_bits_fun_sw |
    io_lsu_iss_exe_bits_fun_sd | io_lsu_iss_exe_bits_fun_fsw | io_lsu_iss_exe_bits_fun_fsd; // @[riscv_isa.scala 144:40]
  wire  opStIO_ready = su_wb_fifo_io_enq_ready & stQueue_io_enq_ready; // @[Lsu.scala 462:43]
  wire  _T_8 = io_lsu_iss_exe_bits_fun_lr_d | io_lsu_iss_exe_bits_fun_lr_w; // @[riscv_isa.scala 141:20]
  wire  _T_9 = io_lsu_iss_exe_bits_fun_lb | io_lsu_iss_exe_bits_fun_lh | io_lsu_iss_exe_bits_fun_lw |
    io_lsu_iss_exe_bits_fun_ld | io_lsu_iss_exe_bits_fun_lbu | io_lsu_iss_exe_bits_fun_lhu | io_lsu_iss_exe_bits_fun_lwu
     | io_lsu_iss_exe_bits_fun_flw | io_lsu_iss_exe_bits_fun_fld | _T_8; // @[riscv_isa.scala 143:65]
  wire  opLdIO_ready = ls_arb_io_in_0_ready & stQueue_io_overlapResp_valid; // @[Lsu.scala 213:41]
  wire  _GEN_45 = _T_9 & opLdIO_ready; // @[Lsu.scala 160:21 162:38 165:23]
  wire  _GEN_91 = _T_14 ? opStIO_ready : _GEN_45; // @[Lsu.scala 171:38 174:23]
  wire  addrTransIO_ready = _T_33 ? opAmIO_ready : _GEN_91; // @[Lsu.scala 180:39 183:23]
  wire  _io_lsu_mmu_valid_T_2 = ~_addrTransIO_valid_T_48; // @[Lsu.scala 141:46]
  wire  _io_lsu_iss_exe_ready_T_6 = fe_wb_fifo_io_enq_ready & fe_wb_fifo_io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _io_lsu_iss_exe_ready_T_7 = _addrTransIO_valid_T_48 & _io_lsu_iss_exe_ready_T_6; // @[Lsu.scala 148:41]
  wire  opLdIO_valid = _T_9 & addrTransIO_valid; // @[Lsu.scala 162:38 163:23 167:18]
  wire [63:0] opLdIO_bits_param_dat_op1 = _T_9 ? io_mmu_lsu_bits_paddr : 64'h0; // @[Lsu.scala 162:38 164:23 168:18]
  wire  opStIO_valid = _T_14 & addrTransIO_valid; // @[Lsu.scala 171:38 172:23 176:18]
  wire  opStIO_bits_fun_lb = _T_14 & io_lsu_iss_exe_bits_fun_lb; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_lh = _T_14 & io_lsu_iss_exe_bits_fun_lh; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_lw = _T_14 & io_lsu_iss_exe_bits_fun_lw; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_ld = _T_14 & io_lsu_iss_exe_bits_fun_ld; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_lbu = _T_14 & io_lsu_iss_exe_bits_fun_lbu; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_lhu = _T_14 & io_lsu_iss_exe_bits_fun_lhu; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_lwu = _T_14 & io_lsu_iss_exe_bits_fun_lwu; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_sb = _T_14 & io_lsu_iss_exe_bits_fun_sb; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_sh = _T_14 & io_lsu_iss_exe_bits_fun_sh; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_sw = _T_14 & io_lsu_iss_exe_bits_fun_sw; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_sd = _T_14 & io_lsu_iss_exe_bits_fun_sd; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_lr_w = _T_14 & io_lsu_iss_exe_bits_fun_lr_w; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_sc_w = _T_14 & io_lsu_iss_exe_bits_fun_sc_w; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_amoswap_w = _T_14 & io_lsu_iss_exe_bits_fun_amoswap_w; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_amoadd_w = _T_14 & io_lsu_iss_exe_bits_fun_amoadd_w; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_amoxor_w = _T_14 & io_lsu_iss_exe_bits_fun_amoxor_w; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_amoand_w = _T_14 & io_lsu_iss_exe_bits_fun_amoand_w; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_amoor_w = _T_14 & io_lsu_iss_exe_bits_fun_amoor_w; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_amomin_w = _T_14 & io_lsu_iss_exe_bits_fun_amomin_w; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_amomax_w = _T_14 & io_lsu_iss_exe_bits_fun_amomax_w; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_amominu_w = _T_14 & io_lsu_iss_exe_bits_fun_amominu_w; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_amomaxu_w = _T_14 & io_lsu_iss_exe_bits_fun_amomaxu_w; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_lr_d = _T_14 & io_lsu_iss_exe_bits_fun_lr_d; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_sc_d = _T_14 & io_lsu_iss_exe_bits_fun_sc_d; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_amoswap_d = _T_14 & io_lsu_iss_exe_bits_fun_amoswap_d; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_amoadd_d = _T_14 & io_lsu_iss_exe_bits_fun_amoadd_d; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_amoxor_d = _T_14 & io_lsu_iss_exe_bits_fun_amoxor_d; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_amoand_d = _T_14 & io_lsu_iss_exe_bits_fun_amoand_d; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_amoor_d = _T_14 & io_lsu_iss_exe_bits_fun_amoor_d; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_amomin_d = _T_14 & io_lsu_iss_exe_bits_fun_amomin_d; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_amomax_d = _T_14 & io_lsu_iss_exe_bits_fun_amomax_d; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_amominu_d = _T_14 & io_lsu_iss_exe_bits_fun_amominu_d; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_amomaxu_d = _T_14 & io_lsu_iss_exe_bits_fun_amomaxu_d; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_flw = _T_14 & io_lsu_iss_exe_bits_fun_flw; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_fsw = _T_14 & io_lsu_iss_exe_bits_fun_fsw; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_fld = _T_14 & io_lsu_iss_exe_bits_fun_fld; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opStIO_bits_fun_fsd = _T_14 & io_lsu_iss_exe_bits_fun_fsd; // @[Lsu.scala 171:38 173:23 177:18]
  wire [5:0] opStIO_bits_param_rd0 = _T_14 ? io_lsu_iss_exe_bits_param_rd0 : 6'h0; // @[Lsu.scala 171:38 173:23 177:18]
  wire [63:0] opStIO_bits_param_dat_op1 = _T_14 ? io_mmu_lsu_bits_paddr : 64'h0; // @[Lsu.scala 171:38 173:23 177:18]
  wire [63:0] opStIO_bits_param_dat_op2 = _T_14 ? io_lsu_iss_exe_bits_param_dat_op2 : 64'h0; // @[Lsu.scala 171:38 173:23 177:18]
  wire  opAmIO_valid = _T_33 & addrTransIO_valid; // @[Lsu.scala 180:39 181:23 185:18]
  wire  opAmIO_bits_fun_lb = _T_33 & io_lsu_iss_exe_bits_fun_lb; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_lh = _T_33 & io_lsu_iss_exe_bits_fun_lh; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_lw = _T_33 & io_lsu_iss_exe_bits_fun_lw; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_ld = _T_33 & io_lsu_iss_exe_bits_fun_ld; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_lbu = _T_33 & io_lsu_iss_exe_bits_fun_lbu; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_lhu = _T_33 & io_lsu_iss_exe_bits_fun_lhu; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_lwu = _T_33 & io_lsu_iss_exe_bits_fun_lwu; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_sb = _T_33 & io_lsu_iss_exe_bits_fun_sb; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_sh = _T_33 & io_lsu_iss_exe_bits_fun_sh; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_sw = _T_33 & io_lsu_iss_exe_bits_fun_sw; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_sd = _T_33 & io_lsu_iss_exe_bits_fun_sd; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_lr_w = _T_33 & io_lsu_iss_exe_bits_fun_lr_w; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_sc_w = _T_33 & io_lsu_iss_exe_bits_fun_sc_w; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_amoswap_w = _T_33 & io_lsu_iss_exe_bits_fun_amoswap_w; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_amoadd_w = _T_33 & io_lsu_iss_exe_bits_fun_amoadd_w; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_amoxor_w = _T_33 & io_lsu_iss_exe_bits_fun_amoxor_w; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_amoand_w = _T_33 & io_lsu_iss_exe_bits_fun_amoand_w; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_amoor_w = _T_33 & io_lsu_iss_exe_bits_fun_amoor_w; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_amomin_w = _T_33 & io_lsu_iss_exe_bits_fun_amomin_w; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_amomax_w = _T_33 & io_lsu_iss_exe_bits_fun_amomax_w; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_amominu_w = _T_33 & io_lsu_iss_exe_bits_fun_amominu_w; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_amomaxu_w = _T_33 & io_lsu_iss_exe_bits_fun_amomaxu_w; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_lr_d = _T_33 & io_lsu_iss_exe_bits_fun_lr_d; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_sc_d = _T_33 & io_lsu_iss_exe_bits_fun_sc_d; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_amoswap_d = _T_33 & io_lsu_iss_exe_bits_fun_amoswap_d; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_amoadd_d = _T_33 & io_lsu_iss_exe_bits_fun_amoadd_d; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_amoxor_d = _T_33 & io_lsu_iss_exe_bits_fun_amoxor_d; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_amoand_d = _T_33 & io_lsu_iss_exe_bits_fun_amoand_d; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_amoor_d = _T_33 & io_lsu_iss_exe_bits_fun_amoor_d; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_amomin_d = _T_33 & io_lsu_iss_exe_bits_fun_amomin_d; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_amomax_d = _T_33 & io_lsu_iss_exe_bits_fun_amomax_d; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_amominu_d = _T_33 & io_lsu_iss_exe_bits_fun_amominu_d; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_amomaxu_d = _T_33 & io_lsu_iss_exe_bits_fun_amomaxu_d; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_flw = _T_33 & io_lsu_iss_exe_bits_fun_flw; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_fsw = _T_33 & io_lsu_iss_exe_bits_fun_fsw; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_fld = _T_33 & io_lsu_iss_exe_bits_fun_fld; // @[Lsu.scala 180:39 182:23 186:18]
  wire  opAmIO_bits_fun_fsd = _T_33 & io_lsu_iss_exe_bits_fun_fsd; // @[Lsu.scala 180:39 182:23 186:18]
  wire [5:0] opAmIO_bits_param_rd0 = _T_33 ? io_lsu_iss_exe_bits_param_rd0 : 6'h0; // @[Lsu.scala 180:39 182:23 186:18]
  wire [63:0] opAmIO_bits_param_dat_op1 = _T_33 ? io_mmu_lsu_bits_paddr : 64'h0; // @[Lsu.scala 180:39 182:23 186:18]
  wire [63:0] opAmIO_bits_param_dat_op2 = _T_33 ? io_lsu_iss_exe_bits_param_dat_op2 : 64'h0; // @[Lsu.scala 180:39 182:23 186:18]
  wire  _stQueue_io_enq_valid_T = opStIO_ready & opStIO_valid; // @[Decoupled.scala 52:35]
  wire  _stQueue_io_enq_valid_T_1 = opAmIO_ready & opAmIO_valid; // @[Decoupled.scala 52:35]
  wire [63:0] _stQueue_io_enq_bits_T_5 = _stQueue_io_enq_valid_T ? opStIO_bits_param_dat_op2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _stQueue_io_enq_bits_T_6 = _stQueue_io_enq_valid_T_1 ? opAmIO_bits_param_dat_op2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _stQueue_io_enq_bits_T_8 = _stQueue_io_enq_valid_T ? opStIO_bits_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _stQueue_io_enq_bits_T_9 = _stQueue_io_enq_valid_T_1 ? opAmIO_bits_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [5:0] _stQueue_io_enq_bits_T_11 = _stQueue_io_enq_valid_T ? opStIO_bits_param_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _stQueue_io_enq_bits_T_12 = _stQueue_io_enq_valid_T_1 ? opAmIO_bits_param_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [3:0] psel = ls_arb_io_out_bits_param_dat_op1[31:28]; // @[Lsu.scala 222:46]
  wire [1:0] _sel_T_2 = psel[2] ? 2'h1 : 2'h2; // @[Lsu.scala 223:35]
  wire [1:0] sel = psel[3] ? 2'h0 : _sel_T_2; // @[Lsu.scala 223:16]
  wire  regionPeriphIO_ready = periph_io_enq_ready; // @[Lsu.scala 398:24 91:28]
  wire  _GEN_183 = sel == 2'h2 & regionPeriphIO_ready; // @[Lsu.scala 226:23 228:23 231:26]
  wire  regionSystemIO_ready = system_io_enq_ready; // @[Lsu.scala 387:24 90:28]
  wire  _GEN_229 = sel == 2'h1 ? regionSystemIO_ready : _GEN_183; // @[Lsu.scala 237:23 240:26]
  wire  regionDCacheIO_bits_fun_lb = sel == 2'h0 & ls_arb_io_out_bits_fun_lb; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_lh = sel == 2'h0 & ls_arb_io_out_bits_fun_lh; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_lw = sel == 2'h0 & ls_arb_io_out_bits_fun_lw; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_ld = sel == 2'h0 & ls_arb_io_out_bits_fun_ld; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_lbu = sel == 2'h0 & ls_arb_io_out_bits_fun_lbu; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_lhu = sel == 2'h0 & ls_arb_io_out_bits_fun_lhu; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_lwu = sel == 2'h0 & ls_arb_io_out_bits_fun_lwu; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_sb = sel == 2'h0 & ls_arb_io_out_bits_fun_sb; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_sh = sel == 2'h0 & ls_arb_io_out_bits_fun_sh; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_sw = sel == 2'h0 & ls_arb_io_out_bits_fun_sw; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_sd = sel == 2'h0 & ls_arb_io_out_bits_fun_sd; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_lr_w = sel == 2'h0 & ls_arb_io_out_bits_fun_lr_w; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_sc_w = sel == 2'h0 & ls_arb_io_out_bits_fun_sc_w; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_amoswap_w = sel == 2'h0 & ls_arb_io_out_bits_fun_amoswap_w; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_amoadd_w = sel == 2'h0 & ls_arb_io_out_bits_fun_amoadd_w; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_amoxor_w = sel == 2'h0 & ls_arb_io_out_bits_fun_amoxor_w; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_amoand_w = sel == 2'h0 & ls_arb_io_out_bits_fun_amoand_w; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_amoor_w = sel == 2'h0 & ls_arb_io_out_bits_fun_amoor_w; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_amomin_w = sel == 2'h0 & ls_arb_io_out_bits_fun_amomin_w; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_amomax_w = sel == 2'h0 & ls_arb_io_out_bits_fun_amomax_w; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_amominu_w = sel == 2'h0 & ls_arb_io_out_bits_fun_amominu_w; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_amomaxu_w = sel == 2'h0 & ls_arb_io_out_bits_fun_amomaxu_w; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_lr_d = sel == 2'h0 & ls_arb_io_out_bits_fun_lr_d; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_sc_d = sel == 2'h0 & ls_arb_io_out_bits_fun_sc_d; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_amoswap_d = sel == 2'h0 & ls_arb_io_out_bits_fun_amoswap_d; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_amoadd_d = sel == 2'h0 & ls_arb_io_out_bits_fun_amoadd_d; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_amoxor_d = sel == 2'h0 & ls_arb_io_out_bits_fun_amoxor_d; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_amoand_d = sel == 2'h0 & ls_arb_io_out_bits_fun_amoand_d; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_amoor_d = sel == 2'h0 & ls_arb_io_out_bits_fun_amoor_d; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_amomin_d = sel == 2'h0 & ls_arb_io_out_bits_fun_amomin_d; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_amomax_d = sel == 2'h0 & ls_arb_io_out_bits_fun_amomax_d; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_amominu_d = sel == 2'h0 & ls_arb_io_out_bits_fun_amominu_d; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_amomaxu_d = sel == 2'h0 & ls_arb_io_out_bits_fun_amomaxu_d; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_flw = sel == 2'h0 & ls_arb_io_out_bits_fun_flw; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_fsw = sel == 2'h0 & ls_arb_io_out_bits_fun_fsw; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_fld = sel == 2'h0 & ls_arb_io_out_bits_fun_fld; // @[Lsu.scala 246:23 248:26 252:26]
  wire  regionDCacheIO_bits_fun_fsd = sel == 2'h0 & ls_arb_io_out_bits_fun_fsd; // @[Lsu.scala 246:23 248:26 252:26]
  wire [63:0] regionDCacheIO_bits_param_dat_op1 = sel == 2'h0 ? ls_arb_io_out_bits_param_dat_op1 : 64'h0; // @[Lsu.scala 246:23 248:26 252:26]
  wire [63:0] regionDCacheIO_bits_param_dat_op2 = sel == 2'h0 ? ls_arb_io_out_bits_param_dat_op2 : 64'h0; // @[Lsu.scala 246:23 248:26 252:26]
  wire  cacheBankIO_0_ready = cache_0_io_enq_ready; // @[Lsu.scala 93:25 381:27]
  wire  _CacheMuxBits_res_wdata_T_8 = regionDCacheIO_bits_fun_lr_d | regionDCacheIO_bits_fun_lr_w; // @[riscv_isa.scala 141:20]
  wire  _CacheMuxBits_res_wdata_T_9 = regionDCacheIO_bits_fun_lb | regionDCacheIO_bits_fun_lh |
    regionDCacheIO_bits_fun_lw | regionDCacheIO_bits_fun_ld | regionDCacheIO_bits_fun_lbu | regionDCacheIO_bits_fun_lhu
     | regionDCacheIO_bits_fun_lwu | regionDCacheIO_bits_fun_flw | regionDCacheIO_bits_fun_fld |
    _CacheMuxBits_res_wdata_T_8; // @[riscv_isa.scala 143:65]
  wire [3:0] _CacheMuxBits_res_wdata_align_data_T_2 = {stQueue_io_overlapReq_bits_paddr[3], 3'h0}; // @[Util.scala 149:62]
  wire [6:0] _CacheMuxBits_res_wdata_align_data_T_3 = {_CacheMuxBits_res_wdata_align_data_T_2, 3'h0}; // @[Util.scala 149:74]
  wire [190:0] _GEN_150 = {{127'd0}, stQueue_io_overlapResp_bits_wdata}; // @[Util.scala 149:26]
  wire [190:0] _CacheMuxBits_res_wdata_align_data_T_4 = _GEN_150 << _CacheMuxBits_res_wdata_align_data_T_3; // @[Util.scala 149:26]
  wire [6:0] _CacheMuxBits_res_wdata_res_T_1 = {regionDCacheIO_bits_param_dat_op1[3:0], 3'h0}; // @[riscv_isa.scala 907:61]
  wire [190:0] _GEN_151 = {{127'd0}, regionDCacheIO_bits_param_dat_op2}; // @[riscv_isa.scala 907:28]
  wire [190:0] _CacheMuxBits_res_wdata_res_T_2 = _GEN_151 << _CacheMuxBits_res_wdata_res_T_1; // @[riscv_isa.scala 907:28]
  wire [127:0] CacheMuxBits_res_wdata_align_data = _CacheMuxBits_res_wdata_align_data_T_4[127:0]; // @[Util.scala 145:26 149:18]
  wire [127:0] CacheMuxBits_res_wdata_res = _CacheMuxBits_res_wdata_res_T_2[127:0]; // @[riscv_isa.scala 906:21 907:11]
  wire [22:0] _GEN_152 = {{15'd0}, stQueue_io_overlapResp_bits_wstrb}; // @[Util.scala 169:26]
  wire [22:0] _CacheMuxBits_res_wstrb_align_strb_T_3 = _GEN_152 << _CacheMuxBits_res_wdata_align_data_T_2; // @[Util.scala 169:26]
  wire  _CacheMuxBits_res_wstrb_wstrb_T_1 = regionDCacheIO_bits_fun_lb | regionDCacheIO_bits_fun_lbu |
    regionDCacheIO_bits_fun_sb; // @[riscv_isa.scala 153:26]
  wire  _CacheMuxBits_res_wstrb_wstrb_T_3 = regionDCacheIO_bits_fun_lh | regionDCacheIO_bits_fun_lhu |
    regionDCacheIO_bits_fun_sh; // @[riscv_isa.scala 154:26]
  wire  _CacheMuxBits_res_wstrb_wstrb_T_18 = regionDCacheIO_bits_fun_lw | regionDCacheIO_bits_fun_lwu |
    regionDCacheIO_bits_fun_sw | regionDCacheIO_bits_fun_amoswap_w | regionDCacheIO_bits_fun_amoadd_w |
    regionDCacheIO_bits_fun_amoxor_w | regionDCacheIO_bits_fun_amoand_w | regionDCacheIO_bits_fun_amoor_w |
    regionDCacheIO_bits_fun_amomin_w | regionDCacheIO_bits_fun_amomax_w | regionDCacheIO_bits_fun_amominu_w |
    regionDCacheIO_bits_fun_amomaxu_w | regionDCacheIO_bits_fun_flw | regionDCacheIO_bits_fun_fsw |
    regionDCacheIO_bits_fun_lr_w | regionDCacheIO_bits_fun_sc_w; // @[riscv_isa.scala 155:151]
  wire  _CacheMuxBits_res_wstrb_wstrb_T_32 = regionDCacheIO_bits_fun_ld | regionDCacheIO_bits_fun_lr_d |
    regionDCacheIO_bits_fun_fld | regionDCacheIO_bits_fun_sd | regionDCacheIO_bits_fun_sc_d |
    regionDCacheIO_bits_fun_fsd | regionDCacheIO_bits_fun_amoswap_d | regionDCacheIO_bits_fun_amoadd_d |
    regionDCacheIO_bits_fun_amoxor_d | regionDCacheIO_bits_fun_amoand_d | regionDCacheIO_bits_fun_amoor_d |
    regionDCacheIO_bits_fun_amomin_d | regionDCacheIO_bits_fun_amomax_d | regionDCacheIO_bits_fun_amominu_d |
    regionDCacheIO_bits_fun_amomaxu_d; // @[riscv_isa.scala 156:140]
  wire [1:0] _CacheMuxBits_res_wstrb_wstrb_T_34 = _CacheMuxBits_res_wstrb_wstrb_T_3 ? 2'h3 : 2'h0; // @[Mux.scala 27:73]
  wire [3:0] _CacheMuxBits_res_wstrb_wstrb_T_35 = _CacheMuxBits_res_wstrb_wstrb_T_18 ? 4'hf : 4'h0; // @[Mux.scala 27:73]
  wire [7:0] _CacheMuxBits_res_wstrb_wstrb_T_36 = _CacheMuxBits_res_wstrb_wstrb_T_32 ? 8'hff : 8'h0; // @[Mux.scala 27:73]
  wire [1:0] _GEN_12 = {{1'd0}, _CacheMuxBits_res_wstrb_wstrb_T_1}; // @[Mux.scala 27:73]
  wire [1:0] _CacheMuxBits_res_wstrb_wstrb_T_37 = _GEN_12 | _CacheMuxBits_res_wstrb_wstrb_T_34; // @[Mux.scala 27:73]
  wire [3:0] _GEN_13 = {{2'd0}, _CacheMuxBits_res_wstrb_wstrb_T_37}; // @[Mux.scala 27:73]
  wire [3:0] _CacheMuxBits_res_wstrb_wstrb_T_38 = _GEN_13 | _CacheMuxBits_res_wstrb_wstrb_T_35; // @[Mux.scala 27:73]
  wire [7:0] _GEN_14 = {{4'd0}, _CacheMuxBits_res_wstrb_wstrb_T_38}; // @[Mux.scala 27:73]
  wire [7:0] _CacheMuxBits_res_wstrb_wstrb_T_39 = _GEN_14 | _CacheMuxBits_res_wstrb_wstrb_T_36; // @[Mux.scala 27:73]
  wire [22:0] _GEN_182 = {{15'd0}, _CacheMuxBits_res_wstrb_wstrb_T_39}; // @[riscv_isa.scala 916:10]
  wire [22:0] _CacheMuxBits_res_wstrb_wstrb_T_41 = _GEN_182 << regionDCacheIO_bits_param_dat_op1[3:0]; // @[riscv_isa.scala 916:10]
  wire [15:0] CacheMuxBits_res_wstrb_align_strb = _CacheMuxBits_res_wstrb_align_strb_T_3[15:0]; // @[Util.scala 165:26 169:18]
  wire [15:0] CacheMuxBits_res_wstrb_wstrb = _CacheMuxBits_res_wstrb_wstrb_T_41[15:0]; // @[riscv_isa.scala 912:21 913:11]
  reg  is_chnc_busy_0; // @[Lsu.scala 325:33]
  wire  _is_release_done_T = cache_0_io_writeBackUnit_dcache_release_ready &
    cache_0_io_writeBackUnit_dcache_release_valid; // @[Decoupled.scala 52:35]
  wire [10:0] _is_release_done_beats1_decode_T_1 = 11'hf << cache_0_io_writeBackUnit_dcache_release_bits_size; // @[package.scala 234:77]
  wire [3:0] _is_release_done_beats1_decode_T_3 = ~_is_release_done_beats1_decode_T_1[3:0]; // @[package.scala 234:46]
  wire  is_release_done_beats1_decode = _is_release_done_beats1_decode_T_3[3]; // @[Edges.scala 219:59]
  wire  is_release_done_beats1_opdata = cache_0_io_writeBackUnit_dcache_release_bits_opcode[0]; // @[Edges.scala 101:36]
  wire  is_release_done_beats1 = is_release_done_beats1_opdata & is_release_done_beats1_decode; // @[Edges.scala 220:14]
  reg  is_release_done_counter; // @[Edges.scala 228:27]
  wire  is_release_done_counter1 = is_release_done_counter - 1'h1; // @[Edges.scala 229:28]
  wire  is_release_done_first = ~is_release_done_counter; // @[Edges.scala 230:25]
  wire  is_release_done_last = is_release_done_counter | ~is_release_done_beats1; // @[Edges.scala 231:37]
  wire  is_release_done_0 = is_release_done_last & _is_release_done_T; // @[Edges.scala 232:22]
  wire [2:0] _GEN_358 = is_chnc_busy_0 ? cache_0_io_writeBackUnit_dcache_release_bits_opcode : 3'h0; // @[Lsu.scala 287:46 339:{47,85}]
  wire [2:0] _GEN_359 = is_chnc_busy_0 ? cache_0_io_writeBackUnit_dcache_release_bits_param : 3'h0; // @[Lsu.scala 287:46 339:{47,85}]
  wire [2:0] _GEN_360 = is_chnc_busy_0 ? cache_0_io_writeBackUnit_dcache_release_bits_size : 3'h0; // @[Lsu.scala 287:46 339:{47,85}]
  wire [31:0] _GEN_362 = is_chnc_busy_0 ? cache_0_io_writeBackUnit_dcache_release_bits_address : 32'h0; // @[Lsu.scala 287:46 339:{47,85}]
  wire [63:0] _GEN_363 = is_chnc_busy_0 ? cache_0_io_writeBackUnit_dcache_release_bits_data : 64'h0; // @[Lsu.scala 287:46 339:{47,85}]
  wire  _GEN_365 = is_chnc_busy_0 & cache_0_io_writeBackUnit_dcache_release_valid; // @[Lsu.scala 286:47 339:{47,85}]
  wire  _GEN_366 = is_chnc_busy_0 ? io_writeBackUnit_dcache_release_ready : releaseArb_io_in_0_ready; // @[Lsu.scala 332:29 339:{47,85}]
  wire  _T_47 = ~reset; // @[Lsu.scala 342:13]
  wire  _is_empty_WIRE_0 = cache_0_io_is_empty; // @[Lsu.scala 537:{12,12}]
  wire  _is_empty_T_2 = stQueue_io_is_empty & _is_empty_WIRE_0; // @[Lsu.scala 536:25]
  wire  _is_empty_T_3 = _is_empty_T_2 & system_io_is_empty; // @[Lsu.scala 537:79]
  wire  _is_empty_T_4 = _is_empty_T_3 & periph_io_is_empty; // @[Lsu.scala 538:24]
  wire  _is_empty_T_5 = ~su_wb_fifo_io_deq_valid; // @[Lsu.scala 540:5]
  wire  _is_empty_T_6 = _is_empty_T_4 & _is_empty_T_5; // @[Lsu.scala 539:24]
  wire  _is_empty_T_7 = ~lu_wb_fifo_io_deq_valid; // @[Lsu.scala 541:5]
  wire  is_empty = _is_empty_T_6 & _is_empty_T_7; // @[Lsu.scala 540:30]
  wire  _GEN_377 = is_empty ? 1'h0 : trans_kill; // @[Lsu.scala 412:{25,38} 73:27]
  wire  _GEN_378 = io_flush | _GEN_377; // @[Lsu.scala 411:{20,33}]
  wire  _T_49 = cache_0_io_deq_ready & cache_0_io_deq_valid; // @[Decoupled.scala 52:35]
  wire  _T_50 = lu_wb_arb_io_in_0_ready & lu_wb_arb_io_in_0_valid; // @[Decoupled.scala 52:35]
  wire  _T_55 = system_io_deq_ready & system_io_deq_valid; // @[Decoupled.scala 52:35]
  wire  _T_56 = lu_wb_arb_io_in_1_ready & lu_wb_arb_io_in_1_valid; // @[Decoupled.scala 52:35]
  wire  _T_61 = periph_io_deq_ready & periph_io_deq_valid; // @[Decoupled.scala 52:35]
  wire  _T_62 = lu_wb_arb_io_in_2_ready & lu_wb_arb_io_in_2_valid; // @[Decoupled.scala 52:35]
  wire  _lu_wb_fifo_io_enq_valid_T = lu_wb_arb_io_out_bits_is_flw | lu_wb_arb_io_out_bits_is_fld; // @[Dcache.scala 88:23]
  wire  _lu_wb_fifo_io_enq_valid_T_1 = ~_lu_wb_fifo_io_enq_valid_T; // @[Dcache.scala 87:16]
  wire  _lu_wb_fifo_io_enq_valid_T_3 = ~trans_kill; // @[Lsu.scala 437:87]
  reg  isAccessFaultReg; // @[Lsu.scala 485:33]
  reg  isPagingFault; // @[Lsu.scala 486:33]
  reg  isMisAlign; // @[Lsu.scala 487:27]
  reg [63:0] trapAddrReg; // @[Lsu.scala 488:24]
  Store_queue stQueue ( // @[Lsu.scala 84:23]
    .clock(stQueue_clock),
    .reset(stQueue_reset),
    .io_enq_ready(stQueue_io_enq_ready),
    .io_enq_valid(stQueue_io_enq_valid),
    .io_enq_bits_fun_lb(stQueue_io_enq_bits_fun_lb),
    .io_enq_bits_fun_lh(stQueue_io_enq_bits_fun_lh),
    .io_enq_bits_fun_lw(stQueue_io_enq_bits_fun_lw),
    .io_enq_bits_fun_ld(stQueue_io_enq_bits_fun_ld),
    .io_enq_bits_fun_lbu(stQueue_io_enq_bits_fun_lbu),
    .io_enq_bits_fun_lhu(stQueue_io_enq_bits_fun_lhu),
    .io_enq_bits_fun_lwu(stQueue_io_enq_bits_fun_lwu),
    .io_enq_bits_fun_sb(stQueue_io_enq_bits_fun_sb),
    .io_enq_bits_fun_sh(stQueue_io_enq_bits_fun_sh),
    .io_enq_bits_fun_sw(stQueue_io_enq_bits_fun_sw),
    .io_enq_bits_fun_sd(stQueue_io_enq_bits_fun_sd),
    .io_enq_bits_fun_lr_w(stQueue_io_enq_bits_fun_lr_w),
    .io_enq_bits_fun_sc_w(stQueue_io_enq_bits_fun_sc_w),
    .io_enq_bits_fun_amoswap_w(stQueue_io_enq_bits_fun_amoswap_w),
    .io_enq_bits_fun_amoadd_w(stQueue_io_enq_bits_fun_amoadd_w),
    .io_enq_bits_fun_amoxor_w(stQueue_io_enq_bits_fun_amoxor_w),
    .io_enq_bits_fun_amoand_w(stQueue_io_enq_bits_fun_amoand_w),
    .io_enq_bits_fun_amoor_w(stQueue_io_enq_bits_fun_amoor_w),
    .io_enq_bits_fun_amomin_w(stQueue_io_enq_bits_fun_amomin_w),
    .io_enq_bits_fun_amomax_w(stQueue_io_enq_bits_fun_amomax_w),
    .io_enq_bits_fun_amominu_w(stQueue_io_enq_bits_fun_amominu_w),
    .io_enq_bits_fun_amomaxu_w(stQueue_io_enq_bits_fun_amomaxu_w),
    .io_enq_bits_fun_lr_d(stQueue_io_enq_bits_fun_lr_d),
    .io_enq_bits_fun_sc_d(stQueue_io_enq_bits_fun_sc_d),
    .io_enq_bits_fun_amoswap_d(stQueue_io_enq_bits_fun_amoswap_d),
    .io_enq_bits_fun_amoadd_d(stQueue_io_enq_bits_fun_amoadd_d),
    .io_enq_bits_fun_amoxor_d(stQueue_io_enq_bits_fun_amoxor_d),
    .io_enq_bits_fun_amoand_d(stQueue_io_enq_bits_fun_amoand_d),
    .io_enq_bits_fun_amoor_d(stQueue_io_enq_bits_fun_amoor_d),
    .io_enq_bits_fun_amomin_d(stQueue_io_enq_bits_fun_amomin_d),
    .io_enq_bits_fun_amomax_d(stQueue_io_enq_bits_fun_amomax_d),
    .io_enq_bits_fun_amominu_d(stQueue_io_enq_bits_fun_amominu_d),
    .io_enq_bits_fun_amomaxu_d(stQueue_io_enq_bits_fun_amomaxu_d),
    .io_enq_bits_fun_flw(stQueue_io_enq_bits_fun_flw),
    .io_enq_bits_fun_fsw(stQueue_io_enq_bits_fun_fsw),
    .io_enq_bits_fun_fld(stQueue_io_enq_bits_fun_fld),
    .io_enq_bits_fun_fsd(stQueue_io_enq_bits_fun_fsd),
    .io_enq_bits_param_rd0(stQueue_io_enq_bits_param_rd0),
    .io_enq_bits_param_dat_op1(stQueue_io_enq_bits_param_dat_op1),
    .io_enq_bits_param_dat_op2(stQueue_io_enq_bits_param_dat_op2),
    .io_deq_ready(stQueue_io_deq_ready),
    .io_deq_valid(stQueue_io_deq_valid),
    .io_deq_bits_fun_lb(stQueue_io_deq_bits_fun_lb),
    .io_deq_bits_fun_lh(stQueue_io_deq_bits_fun_lh),
    .io_deq_bits_fun_lw(stQueue_io_deq_bits_fun_lw),
    .io_deq_bits_fun_ld(stQueue_io_deq_bits_fun_ld),
    .io_deq_bits_fun_lbu(stQueue_io_deq_bits_fun_lbu),
    .io_deq_bits_fun_lhu(stQueue_io_deq_bits_fun_lhu),
    .io_deq_bits_fun_lwu(stQueue_io_deq_bits_fun_lwu),
    .io_deq_bits_fun_sb(stQueue_io_deq_bits_fun_sb),
    .io_deq_bits_fun_sh(stQueue_io_deq_bits_fun_sh),
    .io_deq_bits_fun_sw(stQueue_io_deq_bits_fun_sw),
    .io_deq_bits_fun_sd(stQueue_io_deq_bits_fun_sd),
    .io_deq_bits_fun_lr_w(stQueue_io_deq_bits_fun_lr_w),
    .io_deq_bits_fun_sc_w(stQueue_io_deq_bits_fun_sc_w),
    .io_deq_bits_fun_amoswap_w(stQueue_io_deq_bits_fun_amoswap_w),
    .io_deq_bits_fun_amoadd_w(stQueue_io_deq_bits_fun_amoadd_w),
    .io_deq_bits_fun_amoxor_w(stQueue_io_deq_bits_fun_amoxor_w),
    .io_deq_bits_fun_amoand_w(stQueue_io_deq_bits_fun_amoand_w),
    .io_deq_bits_fun_amoor_w(stQueue_io_deq_bits_fun_amoor_w),
    .io_deq_bits_fun_amomin_w(stQueue_io_deq_bits_fun_amomin_w),
    .io_deq_bits_fun_amomax_w(stQueue_io_deq_bits_fun_amomax_w),
    .io_deq_bits_fun_amominu_w(stQueue_io_deq_bits_fun_amominu_w),
    .io_deq_bits_fun_amomaxu_w(stQueue_io_deq_bits_fun_amomaxu_w),
    .io_deq_bits_fun_lr_d(stQueue_io_deq_bits_fun_lr_d),
    .io_deq_bits_fun_sc_d(stQueue_io_deq_bits_fun_sc_d),
    .io_deq_bits_fun_amoswap_d(stQueue_io_deq_bits_fun_amoswap_d),
    .io_deq_bits_fun_amoadd_d(stQueue_io_deq_bits_fun_amoadd_d),
    .io_deq_bits_fun_amoxor_d(stQueue_io_deq_bits_fun_amoxor_d),
    .io_deq_bits_fun_amoand_d(stQueue_io_deq_bits_fun_amoand_d),
    .io_deq_bits_fun_amoor_d(stQueue_io_deq_bits_fun_amoor_d),
    .io_deq_bits_fun_amomin_d(stQueue_io_deq_bits_fun_amomin_d),
    .io_deq_bits_fun_amomax_d(stQueue_io_deq_bits_fun_amomax_d),
    .io_deq_bits_fun_amominu_d(stQueue_io_deq_bits_fun_amominu_d),
    .io_deq_bits_fun_amomaxu_d(stQueue_io_deq_bits_fun_amomaxu_d),
    .io_deq_bits_fun_flw(stQueue_io_deq_bits_fun_flw),
    .io_deq_bits_fun_fsw(stQueue_io_deq_bits_fun_fsw),
    .io_deq_bits_fun_fld(stQueue_io_deq_bits_fun_fld),
    .io_deq_bits_fun_fsd(stQueue_io_deq_bits_fun_fsd),
    .io_deq_bits_param_rd0(stQueue_io_deq_bits_param_rd0),
    .io_deq_bits_param_dat_op1(stQueue_io_deq_bits_param_dat_op1),
    .io_deq_bits_param_dat_op2(stQueue_io_deq_bits_param_dat_op2),
    .io_cmm_lsu_is_amo_pending(stQueue_io_cmm_lsu_is_amo_pending),
    .io_cmm_lsu_is_store_commit_0(stQueue_io_cmm_lsu_is_store_commit_0),
    .io_is_empty(stQueue_io_is_empty),
    .io_overlapReq_valid(stQueue_io_overlapReq_valid),
    .io_overlapReq_bits_paddr(stQueue_io_overlapReq_bits_paddr),
    .io_overlapResp_valid(stQueue_io_overlapResp_valid),
    .io_overlapResp_bits_wdata(stQueue_io_overlapResp_bits_wdata),
    .io_overlapResp_bits_wstrb(stQueue_io_overlapResp_bits_wstrb),
    .io_flush(stQueue_io_flush)
  );
  Arbiter ls_arb ( // @[Lsu.scala 87:22]
    .io_in_0_ready(ls_arb_io_in_0_ready),
    .io_in_0_valid(ls_arb_io_in_0_valid),
    .io_in_0_bits_fun_lb(ls_arb_io_in_0_bits_fun_lb),
    .io_in_0_bits_fun_lh(ls_arb_io_in_0_bits_fun_lh),
    .io_in_0_bits_fun_lw(ls_arb_io_in_0_bits_fun_lw),
    .io_in_0_bits_fun_ld(ls_arb_io_in_0_bits_fun_ld),
    .io_in_0_bits_fun_lbu(ls_arb_io_in_0_bits_fun_lbu),
    .io_in_0_bits_fun_lhu(ls_arb_io_in_0_bits_fun_lhu),
    .io_in_0_bits_fun_lwu(ls_arb_io_in_0_bits_fun_lwu),
    .io_in_0_bits_fun_sb(ls_arb_io_in_0_bits_fun_sb),
    .io_in_0_bits_fun_sh(ls_arb_io_in_0_bits_fun_sh),
    .io_in_0_bits_fun_sw(ls_arb_io_in_0_bits_fun_sw),
    .io_in_0_bits_fun_sd(ls_arb_io_in_0_bits_fun_sd),
    .io_in_0_bits_fun_lr_w(ls_arb_io_in_0_bits_fun_lr_w),
    .io_in_0_bits_fun_sc_w(ls_arb_io_in_0_bits_fun_sc_w),
    .io_in_0_bits_fun_amoswap_w(ls_arb_io_in_0_bits_fun_amoswap_w),
    .io_in_0_bits_fun_amoadd_w(ls_arb_io_in_0_bits_fun_amoadd_w),
    .io_in_0_bits_fun_amoxor_w(ls_arb_io_in_0_bits_fun_amoxor_w),
    .io_in_0_bits_fun_amoand_w(ls_arb_io_in_0_bits_fun_amoand_w),
    .io_in_0_bits_fun_amoor_w(ls_arb_io_in_0_bits_fun_amoor_w),
    .io_in_0_bits_fun_amomin_w(ls_arb_io_in_0_bits_fun_amomin_w),
    .io_in_0_bits_fun_amomax_w(ls_arb_io_in_0_bits_fun_amomax_w),
    .io_in_0_bits_fun_amominu_w(ls_arb_io_in_0_bits_fun_amominu_w),
    .io_in_0_bits_fun_amomaxu_w(ls_arb_io_in_0_bits_fun_amomaxu_w),
    .io_in_0_bits_fun_lr_d(ls_arb_io_in_0_bits_fun_lr_d),
    .io_in_0_bits_fun_sc_d(ls_arb_io_in_0_bits_fun_sc_d),
    .io_in_0_bits_fun_amoswap_d(ls_arb_io_in_0_bits_fun_amoswap_d),
    .io_in_0_bits_fun_amoadd_d(ls_arb_io_in_0_bits_fun_amoadd_d),
    .io_in_0_bits_fun_amoxor_d(ls_arb_io_in_0_bits_fun_amoxor_d),
    .io_in_0_bits_fun_amoand_d(ls_arb_io_in_0_bits_fun_amoand_d),
    .io_in_0_bits_fun_amoor_d(ls_arb_io_in_0_bits_fun_amoor_d),
    .io_in_0_bits_fun_amomin_d(ls_arb_io_in_0_bits_fun_amomin_d),
    .io_in_0_bits_fun_amomax_d(ls_arb_io_in_0_bits_fun_amomax_d),
    .io_in_0_bits_fun_amominu_d(ls_arb_io_in_0_bits_fun_amominu_d),
    .io_in_0_bits_fun_amomaxu_d(ls_arb_io_in_0_bits_fun_amomaxu_d),
    .io_in_0_bits_fun_flw(ls_arb_io_in_0_bits_fun_flw),
    .io_in_0_bits_fun_fsw(ls_arb_io_in_0_bits_fun_fsw),
    .io_in_0_bits_fun_fld(ls_arb_io_in_0_bits_fun_fld),
    .io_in_0_bits_fun_fsd(ls_arb_io_in_0_bits_fun_fsd),
    .io_in_0_bits_param_rd0(ls_arb_io_in_0_bits_param_rd0),
    .io_in_0_bits_param_dat_op1(ls_arb_io_in_0_bits_param_dat_op1),
    .io_in_0_bits_param_dat_op2(ls_arb_io_in_0_bits_param_dat_op2),
    .io_in_1_ready(ls_arb_io_in_1_ready),
    .io_in_1_valid(ls_arb_io_in_1_valid),
    .io_in_1_bits_fun_lb(ls_arb_io_in_1_bits_fun_lb),
    .io_in_1_bits_fun_lh(ls_arb_io_in_1_bits_fun_lh),
    .io_in_1_bits_fun_lw(ls_arb_io_in_1_bits_fun_lw),
    .io_in_1_bits_fun_ld(ls_arb_io_in_1_bits_fun_ld),
    .io_in_1_bits_fun_lbu(ls_arb_io_in_1_bits_fun_lbu),
    .io_in_1_bits_fun_lhu(ls_arb_io_in_1_bits_fun_lhu),
    .io_in_1_bits_fun_lwu(ls_arb_io_in_1_bits_fun_lwu),
    .io_in_1_bits_fun_sb(ls_arb_io_in_1_bits_fun_sb),
    .io_in_1_bits_fun_sh(ls_arb_io_in_1_bits_fun_sh),
    .io_in_1_bits_fun_sw(ls_arb_io_in_1_bits_fun_sw),
    .io_in_1_bits_fun_sd(ls_arb_io_in_1_bits_fun_sd),
    .io_in_1_bits_fun_lr_w(ls_arb_io_in_1_bits_fun_lr_w),
    .io_in_1_bits_fun_sc_w(ls_arb_io_in_1_bits_fun_sc_w),
    .io_in_1_bits_fun_amoswap_w(ls_arb_io_in_1_bits_fun_amoswap_w),
    .io_in_1_bits_fun_amoadd_w(ls_arb_io_in_1_bits_fun_amoadd_w),
    .io_in_1_bits_fun_amoxor_w(ls_arb_io_in_1_bits_fun_amoxor_w),
    .io_in_1_bits_fun_amoand_w(ls_arb_io_in_1_bits_fun_amoand_w),
    .io_in_1_bits_fun_amoor_w(ls_arb_io_in_1_bits_fun_amoor_w),
    .io_in_1_bits_fun_amomin_w(ls_arb_io_in_1_bits_fun_amomin_w),
    .io_in_1_bits_fun_amomax_w(ls_arb_io_in_1_bits_fun_amomax_w),
    .io_in_1_bits_fun_amominu_w(ls_arb_io_in_1_bits_fun_amominu_w),
    .io_in_1_bits_fun_amomaxu_w(ls_arb_io_in_1_bits_fun_amomaxu_w),
    .io_in_1_bits_fun_lr_d(ls_arb_io_in_1_bits_fun_lr_d),
    .io_in_1_bits_fun_sc_d(ls_arb_io_in_1_bits_fun_sc_d),
    .io_in_1_bits_fun_amoswap_d(ls_arb_io_in_1_bits_fun_amoswap_d),
    .io_in_1_bits_fun_amoadd_d(ls_arb_io_in_1_bits_fun_amoadd_d),
    .io_in_1_bits_fun_amoxor_d(ls_arb_io_in_1_bits_fun_amoxor_d),
    .io_in_1_bits_fun_amoand_d(ls_arb_io_in_1_bits_fun_amoand_d),
    .io_in_1_bits_fun_amoor_d(ls_arb_io_in_1_bits_fun_amoor_d),
    .io_in_1_bits_fun_amomin_d(ls_arb_io_in_1_bits_fun_amomin_d),
    .io_in_1_bits_fun_amomax_d(ls_arb_io_in_1_bits_fun_amomax_d),
    .io_in_1_bits_fun_amominu_d(ls_arb_io_in_1_bits_fun_amominu_d),
    .io_in_1_bits_fun_amomaxu_d(ls_arb_io_in_1_bits_fun_amomaxu_d),
    .io_in_1_bits_fun_flw(ls_arb_io_in_1_bits_fun_flw),
    .io_in_1_bits_fun_fsw(ls_arb_io_in_1_bits_fun_fsw),
    .io_in_1_bits_fun_fld(ls_arb_io_in_1_bits_fun_fld),
    .io_in_1_bits_fun_fsd(ls_arb_io_in_1_bits_fun_fsd),
    .io_in_1_bits_param_rd0(ls_arb_io_in_1_bits_param_rd0),
    .io_in_1_bits_param_dat_op1(ls_arb_io_in_1_bits_param_dat_op1),
    .io_in_1_bits_param_dat_op2(ls_arb_io_in_1_bits_param_dat_op2),
    .io_out_ready(ls_arb_io_out_ready),
    .io_out_valid(ls_arb_io_out_valid),
    .io_out_bits_fun_lb(ls_arb_io_out_bits_fun_lb),
    .io_out_bits_fun_lh(ls_arb_io_out_bits_fun_lh),
    .io_out_bits_fun_lw(ls_arb_io_out_bits_fun_lw),
    .io_out_bits_fun_ld(ls_arb_io_out_bits_fun_ld),
    .io_out_bits_fun_lbu(ls_arb_io_out_bits_fun_lbu),
    .io_out_bits_fun_lhu(ls_arb_io_out_bits_fun_lhu),
    .io_out_bits_fun_lwu(ls_arb_io_out_bits_fun_lwu),
    .io_out_bits_fun_sb(ls_arb_io_out_bits_fun_sb),
    .io_out_bits_fun_sh(ls_arb_io_out_bits_fun_sh),
    .io_out_bits_fun_sw(ls_arb_io_out_bits_fun_sw),
    .io_out_bits_fun_sd(ls_arb_io_out_bits_fun_sd),
    .io_out_bits_fun_lr_w(ls_arb_io_out_bits_fun_lr_w),
    .io_out_bits_fun_sc_w(ls_arb_io_out_bits_fun_sc_w),
    .io_out_bits_fun_amoswap_w(ls_arb_io_out_bits_fun_amoswap_w),
    .io_out_bits_fun_amoadd_w(ls_arb_io_out_bits_fun_amoadd_w),
    .io_out_bits_fun_amoxor_w(ls_arb_io_out_bits_fun_amoxor_w),
    .io_out_bits_fun_amoand_w(ls_arb_io_out_bits_fun_amoand_w),
    .io_out_bits_fun_amoor_w(ls_arb_io_out_bits_fun_amoor_w),
    .io_out_bits_fun_amomin_w(ls_arb_io_out_bits_fun_amomin_w),
    .io_out_bits_fun_amomax_w(ls_arb_io_out_bits_fun_amomax_w),
    .io_out_bits_fun_amominu_w(ls_arb_io_out_bits_fun_amominu_w),
    .io_out_bits_fun_amomaxu_w(ls_arb_io_out_bits_fun_amomaxu_w),
    .io_out_bits_fun_lr_d(ls_arb_io_out_bits_fun_lr_d),
    .io_out_bits_fun_sc_d(ls_arb_io_out_bits_fun_sc_d),
    .io_out_bits_fun_amoswap_d(ls_arb_io_out_bits_fun_amoswap_d),
    .io_out_bits_fun_amoadd_d(ls_arb_io_out_bits_fun_amoadd_d),
    .io_out_bits_fun_amoxor_d(ls_arb_io_out_bits_fun_amoxor_d),
    .io_out_bits_fun_amoand_d(ls_arb_io_out_bits_fun_amoand_d),
    .io_out_bits_fun_amoor_d(ls_arb_io_out_bits_fun_amoor_d),
    .io_out_bits_fun_amomin_d(ls_arb_io_out_bits_fun_amomin_d),
    .io_out_bits_fun_amomax_d(ls_arb_io_out_bits_fun_amomax_d),
    .io_out_bits_fun_amominu_d(ls_arb_io_out_bits_fun_amominu_d),
    .io_out_bits_fun_amomaxu_d(ls_arb_io_out_bits_fun_amomaxu_d),
    .io_out_bits_fun_flw(ls_arb_io_out_bits_fun_flw),
    .io_out_bits_fun_fsw(ls_arb_io_out_bits_fun_fsw),
    .io_out_bits_fun_fld(ls_arb_io_out_bits_fun_fld),
    .io_out_bits_fun_fsd(ls_arb_io_out_bits_fun_fsd),
    .io_out_bits_param_rd0(ls_arb_io_out_bits_param_rd0),
    .io_out_bits_param_dat_op1(ls_arb_io_out_bits_param_dat_op1),
    .io_out_bits_param_dat_op2(ls_arb_io_out_bits_param_dat_op2)
  );
  IO_Lsu system ( // @[Lsu.scala 95:22]
    .clock(system_clock),
    .reset(system_reset),
    .io_enq_ready(system_io_enq_ready),
    .io_enq_valid(system_io_enq_valid),
    .io_enq_bits_fun_lb(system_io_enq_bits_fun_lb),
    .io_enq_bits_fun_lh(system_io_enq_bits_fun_lh),
    .io_enq_bits_fun_lw(system_io_enq_bits_fun_lw),
    .io_enq_bits_fun_ld(system_io_enq_bits_fun_ld),
    .io_enq_bits_fun_lbu(system_io_enq_bits_fun_lbu),
    .io_enq_bits_fun_lhu(system_io_enq_bits_fun_lhu),
    .io_enq_bits_fun_lwu(system_io_enq_bits_fun_lwu),
    .io_enq_bits_fun_sb(system_io_enq_bits_fun_sb),
    .io_enq_bits_fun_sh(system_io_enq_bits_fun_sh),
    .io_enq_bits_fun_sw(system_io_enq_bits_fun_sw),
    .io_enq_bits_fun_sd(system_io_enq_bits_fun_sd),
    .io_enq_bits_fun_lr_w(system_io_enq_bits_fun_lr_w),
    .io_enq_bits_fun_sc_w(system_io_enq_bits_fun_sc_w),
    .io_enq_bits_fun_amoswap_w(system_io_enq_bits_fun_amoswap_w),
    .io_enq_bits_fun_amoadd_w(system_io_enq_bits_fun_amoadd_w),
    .io_enq_bits_fun_amoxor_w(system_io_enq_bits_fun_amoxor_w),
    .io_enq_bits_fun_amoand_w(system_io_enq_bits_fun_amoand_w),
    .io_enq_bits_fun_amoor_w(system_io_enq_bits_fun_amoor_w),
    .io_enq_bits_fun_amomin_w(system_io_enq_bits_fun_amomin_w),
    .io_enq_bits_fun_amomax_w(system_io_enq_bits_fun_amomax_w),
    .io_enq_bits_fun_amominu_w(system_io_enq_bits_fun_amominu_w),
    .io_enq_bits_fun_amomaxu_w(system_io_enq_bits_fun_amomaxu_w),
    .io_enq_bits_fun_lr_d(system_io_enq_bits_fun_lr_d),
    .io_enq_bits_fun_sc_d(system_io_enq_bits_fun_sc_d),
    .io_enq_bits_fun_amoswap_d(system_io_enq_bits_fun_amoswap_d),
    .io_enq_bits_fun_amoadd_d(system_io_enq_bits_fun_amoadd_d),
    .io_enq_bits_fun_amoxor_d(system_io_enq_bits_fun_amoxor_d),
    .io_enq_bits_fun_amoand_d(system_io_enq_bits_fun_amoand_d),
    .io_enq_bits_fun_amoor_d(system_io_enq_bits_fun_amoor_d),
    .io_enq_bits_fun_amomin_d(system_io_enq_bits_fun_amomin_d),
    .io_enq_bits_fun_amomax_d(system_io_enq_bits_fun_amomax_d),
    .io_enq_bits_fun_amominu_d(system_io_enq_bits_fun_amominu_d),
    .io_enq_bits_fun_amomaxu_d(system_io_enq_bits_fun_amomaxu_d),
    .io_enq_bits_fun_flw(system_io_enq_bits_fun_flw),
    .io_enq_bits_fun_fsw(system_io_enq_bits_fun_fsw),
    .io_enq_bits_fun_fld(system_io_enq_bits_fun_fld),
    .io_enq_bits_fun_fsd(system_io_enq_bits_fun_fsd),
    .io_enq_bits_param_rd0(system_io_enq_bits_param_rd0),
    .io_enq_bits_param_dat_op1(system_io_enq_bits_param_dat_op1),
    .io_enq_bits_param_dat_op2(system_io_enq_bits_param_dat_op2),
    .io_deq_ready(system_io_deq_ready),
    .io_deq_valid(system_io_deq_valid),
    .io_deq_bits_wb_rd0(system_io_deq_bits_wb_rd0),
    .io_deq_bits_wb_res(system_io_deq_bits_wb_res),
    .io_deq_bits_is_load_amo(system_io_deq_bits_is_load_amo),
    .io_deq_bits_is_flw(system_io_deq_bits_is_flw),
    .io_deq_bits_is_fld(system_io_deq_bits_is_fld),
    .io_is_empty(system_io_is_empty),
    .io_getPut_ready(system_io_getPut_ready),
    .io_getPut_valid(system_io_getPut_valid),
    .io_getPut_bits_opcode(system_io_getPut_bits_opcode),
    .io_getPut_bits_address(system_io_getPut_bits_address),
    .io_getPut_bits_mask(system_io_getPut_bits_mask),
    .io_getPut_bits_data(system_io_getPut_bits_data),
    .io_access_ready(system_io_access_ready),
    .io_access_valid(system_io_access_valid),
    .io_access_bits_opcode(system_io_access_bits_opcode),
    .io_access_bits_data(system_io_access_bits_data)
  );
  IO_Lsu periph ( // @[Lsu.scala 96:22]
    .clock(periph_clock),
    .reset(periph_reset),
    .io_enq_ready(periph_io_enq_ready),
    .io_enq_valid(periph_io_enq_valid),
    .io_enq_bits_fun_lb(periph_io_enq_bits_fun_lb),
    .io_enq_bits_fun_lh(periph_io_enq_bits_fun_lh),
    .io_enq_bits_fun_lw(periph_io_enq_bits_fun_lw),
    .io_enq_bits_fun_ld(periph_io_enq_bits_fun_ld),
    .io_enq_bits_fun_lbu(periph_io_enq_bits_fun_lbu),
    .io_enq_bits_fun_lhu(periph_io_enq_bits_fun_lhu),
    .io_enq_bits_fun_lwu(periph_io_enq_bits_fun_lwu),
    .io_enq_bits_fun_sb(periph_io_enq_bits_fun_sb),
    .io_enq_bits_fun_sh(periph_io_enq_bits_fun_sh),
    .io_enq_bits_fun_sw(periph_io_enq_bits_fun_sw),
    .io_enq_bits_fun_sd(periph_io_enq_bits_fun_sd),
    .io_enq_bits_fun_lr_w(periph_io_enq_bits_fun_lr_w),
    .io_enq_bits_fun_sc_w(periph_io_enq_bits_fun_sc_w),
    .io_enq_bits_fun_amoswap_w(periph_io_enq_bits_fun_amoswap_w),
    .io_enq_bits_fun_amoadd_w(periph_io_enq_bits_fun_amoadd_w),
    .io_enq_bits_fun_amoxor_w(periph_io_enq_bits_fun_amoxor_w),
    .io_enq_bits_fun_amoand_w(periph_io_enq_bits_fun_amoand_w),
    .io_enq_bits_fun_amoor_w(periph_io_enq_bits_fun_amoor_w),
    .io_enq_bits_fun_amomin_w(periph_io_enq_bits_fun_amomin_w),
    .io_enq_bits_fun_amomax_w(periph_io_enq_bits_fun_amomax_w),
    .io_enq_bits_fun_amominu_w(periph_io_enq_bits_fun_amominu_w),
    .io_enq_bits_fun_amomaxu_w(periph_io_enq_bits_fun_amomaxu_w),
    .io_enq_bits_fun_lr_d(periph_io_enq_bits_fun_lr_d),
    .io_enq_bits_fun_sc_d(periph_io_enq_bits_fun_sc_d),
    .io_enq_bits_fun_amoswap_d(periph_io_enq_bits_fun_amoswap_d),
    .io_enq_bits_fun_amoadd_d(periph_io_enq_bits_fun_amoadd_d),
    .io_enq_bits_fun_amoxor_d(periph_io_enq_bits_fun_amoxor_d),
    .io_enq_bits_fun_amoand_d(periph_io_enq_bits_fun_amoand_d),
    .io_enq_bits_fun_amoor_d(periph_io_enq_bits_fun_amoor_d),
    .io_enq_bits_fun_amomin_d(periph_io_enq_bits_fun_amomin_d),
    .io_enq_bits_fun_amomax_d(periph_io_enq_bits_fun_amomax_d),
    .io_enq_bits_fun_amominu_d(periph_io_enq_bits_fun_amominu_d),
    .io_enq_bits_fun_amomaxu_d(periph_io_enq_bits_fun_amomaxu_d),
    .io_enq_bits_fun_flw(periph_io_enq_bits_fun_flw),
    .io_enq_bits_fun_fsw(periph_io_enq_bits_fun_fsw),
    .io_enq_bits_fun_fld(periph_io_enq_bits_fun_fld),
    .io_enq_bits_fun_fsd(periph_io_enq_bits_fun_fsd),
    .io_enq_bits_param_rd0(periph_io_enq_bits_param_rd0),
    .io_enq_bits_param_dat_op1(periph_io_enq_bits_param_dat_op1),
    .io_enq_bits_param_dat_op2(periph_io_enq_bits_param_dat_op2),
    .io_deq_ready(periph_io_deq_ready),
    .io_deq_valid(periph_io_deq_valid),
    .io_deq_bits_wb_rd0(periph_io_deq_bits_wb_rd0),
    .io_deq_bits_wb_res(periph_io_deq_bits_wb_res),
    .io_deq_bits_is_load_amo(periph_io_deq_bits_is_load_amo),
    .io_deq_bits_is_flw(periph_io_deq_bits_is_flw),
    .io_deq_bits_is_fld(periph_io_deq_bits_is_fld),
    .io_is_empty(periph_io_is_empty),
    .io_getPut_ready(periph_io_getPut_ready),
    .io_getPut_valid(periph_io_getPut_valid),
    .io_getPut_bits_opcode(periph_io_getPut_bits_opcode),
    .io_getPut_bits_address(periph_io_getPut_bits_address),
    .io_getPut_bits_mask(periph_io_getPut_bits_mask),
    .io_getPut_bits_data(periph_io_getPut_bits_data),
    .io_access_ready(periph_io_access_ready),
    .io_access_valid(periph_io_access_valid),
    .io_access_bits_opcode(periph_io_access_bits_opcode),
    .io_access_bits_data(periph_io_access_bits_data)
  );
  Dcache cache_0 ( // @[Lsu.scala 97:63]
    .clock(cache_0_clock),
    .reset(cache_0_reset),
    .io_enq_ready(cache_0_io_enq_ready),
    .io_enq_valid(cache_0_io_enq_valid),
    .io_enq_bits_paddr(cache_0_io_enq_bits_paddr),
    .io_enq_bits_wdata(cache_0_io_enq_bits_wdata),
    .io_enq_bits_wstrb(cache_0_io_enq_bits_wstrb),
    .io_enq_bits_fun_lb(cache_0_io_enq_bits_fun_lb),
    .io_enq_bits_fun_lh(cache_0_io_enq_bits_fun_lh),
    .io_enq_bits_fun_lw(cache_0_io_enq_bits_fun_lw),
    .io_enq_bits_fun_ld(cache_0_io_enq_bits_fun_ld),
    .io_enq_bits_fun_lbu(cache_0_io_enq_bits_fun_lbu),
    .io_enq_bits_fun_lhu(cache_0_io_enq_bits_fun_lhu),
    .io_enq_bits_fun_lwu(cache_0_io_enq_bits_fun_lwu),
    .io_enq_bits_fun_sb(cache_0_io_enq_bits_fun_sb),
    .io_enq_bits_fun_sh(cache_0_io_enq_bits_fun_sh),
    .io_enq_bits_fun_sw(cache_0_io_enq_bits_fun_sw),
    .io_enq_bits_fun_sd(cache_0_io_enq_bits_fun_sd),
    .io_enq_bits_fun_lr_w(cache_0_io_enq_bits_fun_lr_w),
    .io_enq_bits_fun_sc_w(cache_0_io_enq_bits_fun_sc_w),
    .io_enq_bits_fun_amoswap_w(cache_0_io_enq_bits_fun_amoswap_w),
    .io_enq_bits_fun_amoadd_w(cache_0_io_enq_bits_fun_amoadd_w),
    .io_enq_bits_fun_amoxor_w(cache_0_io_enq_bits_fun_amoxor_w),
    .io_enq_bits_fun_amoand_w(cache_0_io_enq_bits_fun_amoand_w),
    .io_enq_bits_fun_amoor_w(cache_0_io_enq_bits_fun_amoor_w),
    .io_enq_bits_fun_amomin_w(cache_0_io_enq_bits_fun_amomin_w),
    .io_enq_bits_fun_amomax_w(cache_0_io_enq_bits_fun_amomax_w),
    .io_enq_bits_fun_amominu_w(cache_0_io_enq_bits_fun_amominu_w),
    .io_enq_bits_fun_amomaxu_w(cache_0_io_enq_bits_fun_amomaxu_w),
    .io_enq_bits_fun_lr_d(cache_0_io_enq_bits_fun_lr_d),
    .io_enq_bits_fun_sc_d(cache_0_io_enq_bits_fun_sc_d),
    .io_enq_bits_fun_amoswap_d(cache_0_io_enq_bits_fun_amoswap_d),
    .io_enq_bits_fun_amoadd_d(cache_0_io_enq_bits_fun_amoadd_d),
    .io_enq_bits_fun_amoxor_d(cache_0_io_enq_bits_fun_amoxor_d),
    .io_enq_bits_fun_amoand_d(cache_0_io_enq_bits_fun_amoand_d),
    .io_enq_bits_fun_amoor_d(cache_0_io_enq_bits_fun_amoor_d),
    .io_enq_bits_fun_amomin_d(cache_0_io_enq_bits_fun_amomin_d),
    .io_enq_bits_fun_amomax_d(cache_0_io_enq_bits_fun_amomax_d),
    .io_enq_bits_fun_amominu_d(cache_0_io_enq_bits_fun_amominu_d),
    .io_enq_bits_fun_amomaxu_d(cache_0_io_enq_bits_fun_amomaxu_d),
    .io_enq_bits_fun_flw(cache_0_io_enq_bits_fun_flw),
    .io_enq_bits_fun_fsw(cache_0_io_enq_bits_fun_fsw),
    .io_enq_bits_fun_fld(cache_0_io_enq_bits_fun_fld),
    .io_enq_bits_fun_fsd(cache_0_io_enq_bits_fun_fsd),
    .io_enq_bits_rd_rd0(cache_0_io_enq_bits_rd_rd0),
    .io_deq_ready(cache_0_io_deq_ready),
    .io_deq_valid(cache_0_io_deq_valid),
    .io_deq_bits_chkIdx(cache_0_io_deq_bits_chkIdx),
    .io_deq_bits_wb_rd0(cache_0_io_deq_bits_wb_rd0),
    .io_deq_bits_wb_res(cache_0_io_deq_bits_wb_res),
    .io_deq_bits_is_load_amo(cache_0_io_deq_bits_is_load_amo),
    .io_deq_bits_is_flw(cache_0_io_deq_bits_is_flw),
    .io_deq_bits_is_fld(cache_0_io_deq_bits_is_fld),
    .io_is_empty(cache_0_io_is_empty),
    .io_flush(cache_0_io_flush),
    .io_missUnit_dcache_acquire_ready(cache_0_io_missUnit_dcache_acquire_ready),
    .io_missUnit_dcache_acquire_valid(cache_0_io_missUnit_dcache_acquire_valid),
    .io_missUnit_dcache_acquire_bits_address(cache_0_io_missUnit_dcache_acquire_bits_address),
    .io_missUnit_dcache_grant_ready(cache_0_io_missUnit_dcache_grant_ready),
    .io_missUnit_dcache_grant_valid(cache_0_io_missUnit_dcache_grant_valid),
    .io_missUnit_dcache_grant_bits_opcode(cache_0_io_missUnit_dcache_grant_bits_opcode),
    .io_missUnit_dcache_grant_bits_size(cache_0_io_missUnit_dcache_grant_bits_size),
    .io_missUnit_dcache_grant_bits_source(cache_0_io_missUnit_dcache_grant_bits_source),
    .io_missUnit_dcache_grant_bits_sink(cache_0_io_missUnit_dcache_grant_bits_sink),
    .io_missUnit_dcache_grant_bits_data(cache_0_io_missUnit_dcache_grant_bits_data),
    .io_missUnit_dcache_grantAck_ready(cache_0_io_missUnit_dcache_grantAck_ready),
    .io_missUnit_dcache_grantAck_valid(cache_0_io_missUnit_dcache_grantAck_valid),
    .io_missUnit_dcache_grantAck_bits_sink(cache_0_io_missUnit_dcache_grantAck_bits_sink),
    .io_probeUnit_dcache_probe_ready(cache_0_io_probeUnit_dcache_probe_ready),
    .io_probeUnit_dcache_probe_valid(cache_0_io_probeUnit_dcache_probe_valid),
    .io_probeUnit_dcache_probe_bits_address(cache_0_io_probeUnit_dcache_probe_bits_address),
    .io_writeBackUnit_dcache_release_ready(cache_0_io_writeBackUnit_dcache_release_ready),
    .io_writeBackUnit_dcache_release_valid(cache_0_io_writeBackUnit_dcache_release_valid),
    .io_writeBackUnit_dcache_release_bits_opcode(cache_0_io_writeBackUnit_dcache_release_bits_opcode),
    .io_writeBackUnit_dcache_release_bits_param(cache_0_io_writeBackUnit_dcache_release_bits_param),
    .io_writeBackUnit_dcache_release_bits_size(cache_0_io_writeBackUnit_dcache_release_bits_size),
    .io_writeBackUnit_dcache_release_bits_address(cache_0_io_writeBackUnit_dcache_release_bits_address),
    .io_writeBackUnit_dcache_release_bits_data(cache_0_io_writeBackUnit_dcache_release_bits_data),
    .io_writeBackUnit_dcache_grant_ready(cache_0_io_writeBackUnit_dcache_grant_ready),
    .io_writeBackUnit_dcache_grant_valid(cache_0_io_writeBackUnit_dcache_grant_valid),
    .io_writeBackUnit_dcache_grant_bits_source(cache_0_io_writeBackUnit_dcache_grant_bits_source)
  );
  Arbiter_3 lu_wb_arb ( // @[Lsu.scala 103:25]
    .io_in_0_ready(lu_wb_arb_io_in_0_ready),
    .io_in_0_valid(lu_wb_arb_io_in_0_valid),
    .io_in_0_bits_wb_rd0(lu_wb_arb_io_in_0_bits_wb_rd0),
    .io_in_0_bits_wb_res(lu_wb_arb_io_in_0_bits_wb_res),
    .io_in_0_bits_is_flw(lu_wb_arb_io_in_0_bits_is_flw),
    .io_in_0_bits_is_fld(lu_wb_arb_io_in_0_bits_is_fld),
    .io_in_1_ready(lu_wb_arb_io_in_1_ready),
    .io_in_1_valid(lu_wb_arb_io_in_1_valid),
    .io_in_1_bits_wb_rd0(lu_wb_arb_io_in_1_bits_wb_rd0),
    .io_in_1_bits_wb_res(lu_wb_arb_io_in_1_bits_wb_res),
    .io_in_1_bits_is_flw(lu_wb_arb_io_in_1_bits_is_flw),
    .io_in_1_bits_is_fld(lu_wb_arb_io_in_1_bits_is_fld),
    .io_in_2_ready(lu_wb_arb_io_in_2_ready),
    .io_in_2_valid(lu_wb_arb_io_in_2_valid),
    .io_in_2_bits_wb_rd0(lu_wb_arb_io_in_2_bits_wb_rd0),
    .io_in_2_bits_wb_res(lu_wb_arb_io_in_2_bits_wb_res),
    .io_in_2_bits_is_flw(lu_wb_arb_io_in_2_bits_is_flw),
    .io_in_2_bits_is_fld(lu_wb_arb_io_in_2_bits_is_fld),
    .io_out_ready(lu_wb_arb_io_out_ready),
    .io_out_valid(lu_wb_arb_io_out_valid),
    .io_out_bits_wb_rd0(lu_wb_arb_io_out_bits_wb_rd0),
    .io_out_bits_wb_res(lu_wb_arb_io_out_bits_wb_res),
    .io_out_bits_is_flw(lu_wb_arb_io_out_bits_is_flw),
    .io_out_bits_is_fld(lu_wb_arb_io_out_bits_is_fld)
  );
  Queue_16 lu_wb_fifo ( // @[Lsu.scala 110:26]
    .clock(lu_wb_fifo_clock),
    .reset(lu_wb_fifo_reset),
    .io_enq_ready(lu_wb_fifo_io_enq_ready),
    .io_enq_valid(lu_wb_fifo_io_enq_valid),
    .io_enq_bits_rd0(lu_wb_fifo_io_enq_bits_rd0),
    .io_enq_bits_res(lu_wb_fifo_io_enq_bits_res),
    .io_deq_ready(lu_wb_fifo_io_deq_ready),
    .io_deq_valid(lu_wb_fifo_io_deq_valid),
    .io_deq_bits_rd0(lu_wb_fifo_io_deq_bits_rd0),
    .io_deq_bits_res(lu_wb_fifo_io_deq_bits_res)
  );
  Queue_17 flu_wb_fifo ( // @[Lsu.scala 112:27]
    .clock(flu_wb_fifo_clock),
    .reset(flu_wb_fifo_reset),
    .io_enq_ready(flu_wb_fifo_io_enq_ready),
    .io_enq_valid(flu_wb_fifo_io_enq_valid),
    .io_deq_valid(flu_wb_fifo_io_deq_valid)
  );
  Queue_16 su_wb_fifo ( // @[Lsu.scala 118:26]
    .clock(su_wb_fifo_clock),
    .reset(su_wb_fifo_reset),
    .io_enq_ready(su_wb_fifo_io_enq_ready),
    .io_enq_valid(su_wb_fifo_io_enq_valid),
    .io_enq_bits_rd0(su_wb_fifo_io_enq_bits_rd0),
    .io_enq_bits_res(su_wb_fifo_io_enq_bits_res),
    .io_deq_ready(su_wb_fifo_io_deq_ready),
    .io_deq_valid(su_wb_fifo_io_deq_valid),
    .io_deq_bits_rd0(su_wb_fifo_io_deq_bits_rd0),
    .io_deq_bits_res(su_wb_fifo_io_deq_bits_res)
  );
  Queue_16 fe_wb_fifo ( // @[Lsu.scala 119:26]
    .clock(fe_wb_fifo_clock),
    .reset(fe_wb_fifo_reset),
    .io_enq_ready(fe_wb_fifo_io_enq_ready),
    .io_enq_valid(fe_wb_fifo_io_enq_valid),
    .io_enq_bits_rd0(fe_wb_fifo_io_enq_bits_rd0),
    .io_enq_bits_res(fe_wb_fifo_io_enq_bits_res),
    .io_deq_ready(fe_wb_fifo_io_deq_ready),
    .io_deq_valid(fe_wb_fifo_io_deq_valid),
    .io_deq_bits_rd0(fe_wb_fifo_io_deq_bits_rd0),
    .io_deq_bits_res(fe_wb_fifo_io_deq_bits_res)
  );
  Arbiter_4 rtn_arb ( // @[Lsu.scala 125:23]
    .io_in_0_ready(rtn_arb_io_in_0_ready),
    .io_in_0_valid(rtn_arb_io_in_0_valid),
    .io_in_0_bits_rd0(rtn_arb_io_in_0_bits_rd0),
    .io_in_0_bits_res(rtn_arb_io_in_0_bits_res),
    .io_in_1_ready(rtn_arb_io_in_1_ready),
    .io_in_1_valid(rtn_arb_io_in_1_valid),
    .io_in_1_bits_rd0(rtn_arb_io_in_1_bits_rd0),
    .io_in_1_bits_res(rtn_arb_io_in_1_bits_res),
    .io_in_2_ready(rtn_arb_io_in_2_ready),
    .io_in_2_valid(rtn_arb_io_in_2_valid),
    .io_in_2_bits_rd0(rtn_arb_io_in_2_bits_rd0),
    .io_in_2_bits_res(rtn_arb_io_in_2_bits_res),
    .io_out_ready(rtn_arb_io_out_ready),
    .io_out_valid(rtn_arb_io_out_valid),
    .io_out_bits_rd0(rtn_arb_io_out_bits_rd0),
    .io_out_bits_res(rtn_arb_io_out_bits_res)
  );
  Arbiter_5 acquireArb ( // @[Lsu.scala 277:29]
    .io_in_0_ready(acquireArb_io_in_0_ready),
    .io_in_0_valid(acquireArb_io_in_0_valid),
    .io_in_0_bits_address(acquireArb_io_in_0_bits_address),
    .io_out_ready(acquireArb_io_out_ready),
    .io_out_valid(acquireArb_io_out_valid),
    .io_out_bits_address(acquireArb_io_out_bits_address)
  );
  Arbiter_6 grantAckArb ( // @[Lsu.scala 278:29]
    .io_in_0_ready(grantAckArb_io_in_0_ready),
    .io_in_0_valid(grantAckArb_io_in_0_valid),
    .io_in_0_bits_sink(grantAckArb_io_in_0_bits_sink),
    .io_out_ready(grantAckArb_io_out_ready),
    .io_out_valid(grantAckArb_io_out_valid),
    .io_out_bits_sink(grantAckArb_io_out_bits_sink)
  );
  Arbiter_7 releaseArb ( // @[Lsu.scala 279:29]
    .io_in_0_ready(releaseArb_io_in_0_ready),
    .io_in_0_valid(releaseArb_io_in_0_valid),
    .io_in_0_bits_opcode(releaseArb_io_in_0_bits_opcode),
    .io_in_0_bits_param(releaseArb_io_in_0_bits_param),
    .io_in_0_bits_size(releaseArb_io_in_0_bits_size),
    .io_in_0_bits_address(releaseArb_io_in_0_bits_address),
    .io_in_0_bits_data(releaseArb_io_in_0_bits_data),
    .io_out_ready(releaseArb_io_out_ready),
    .io_out_valid(releaseArb_io_out_valid),
    .io_out_bits_opcode(releaseArb_io_out_bits_opcode),
    .io_out_bits_param(releaseArb_io_out_bits_param),
    .io_out_bits_size(releaseArb_io_out_bits_size),
    .io_out_bits_address(releaseArb_io_out_bits_address),
    .io_out_bits_data(releaseArb_io_out_bits_data)
  );
  assign io_lsu_iss_exe_ready = _io_lsu_mmu_valid_T_2 & io_lsu_mmu_ready | _io_lsu_iss_exe_ready_T_7; // @[Lsu.scala 147:61]
  assign io_lsu_exe_iwb_valid = rtn_arb_io_out_valid; // @[Lsu.scala 477:18]
  assign io_lsu_exe_iwb_bits_rd0 = rtn_arb_io_out_bits_rd0; // @[Lsu.scala 477:18]
  assign io_lsu_exe_iwb_bits_res = rtn_arb_io_out_bits_res; // @[Lsu.scala 477:18]
  assign io_lsu_exe_fwb_valid = flu_wb_fifo_io_deq_valid; // @[Lsu.scala 450:22]
  assign io_lsu_cmm_is_access_fault = isAccessFaultReg; // @[Lsu.scala 501:30]
  assign io_lsu_cmm_is_paging_fault = isPagingFault; // @[Lsu.scala 502:30]
  assign io_lsu_cmm_is_misAlign = isMisAlign; // @[Lsu.scala 503:30]
  assign io_lsu_cmm_trap_addr = trapAddrReg; // @[Lsu.scala 504:30]
  assign io_lsu_mmu_valid = io_lsu_iss_exe_valid & ~_addrTransIO_valid_T_48; // @[Lsu.scala 141:44]
  assign io_lsu_mmu_bits_is_W = _T_14 | _T_32 | _T_33; // @[riscv_isa.scala 162:28]
  assign io_lsu_mmu_bits_is_R = _T_9 | _T_8 | _T_33; // @[riscv_isa.scala 161:28]
  assign io_lsu_mmu_bits_vaddr = io_lsu_iss_exe_bits_param_dat_op1; // @[Lsu.scala 142:25]
  assign io_mmu_lsu_ready = addrTransIO_ready & _addrTransIO_valid_T_1 & _addrTransIO_valid_T_45 &
    _addrTransIO_valid_T_50; // @[Lsu.scala 139:104]
  assign io_missUnit_dcache_acquire_valid = acquireArb_io_out_valid; // @[Lsu.scala 302:37]
  assign io_missUnit_dcache_acquire_bits_address = acquireArb_io_out_bits_address; // @[Lsu.scala 302:37]
  assign io_missUnit_dcache_grant_ready = ~io_missUnit_dcache_grant_bits_source & cache_0_io_missUnit_dcache_grant_ready
    ; // @[Lsu.scala 282:40 307:64 308:47]
  assign io_missUnit_dcache_grantAck_valid = grantAckArb_io_out_valid; // @[Lsu.scala 303:37]
  assign io_missUnit_dcache_grantAck_bits_sink = grantAckArb_io_out_bits_sink; // @[Lsu.scala 303:37]
  assign io_probeUnit_dcache_probe_ready = cache_0_io_probeUnit_dcache_probe_ready; // @[Lsu.scala 313:120 285:41 314:48]
  assign io_writeBackUnit_dcache_release_valid = ~is_chnc_busy_0 ? releaseArb_io_out_valid : _GEN_365; // @[Lsu.scala 334:64 335:45]
  assign io_writeBackUnit_dcache_release_bits_opcode = ~is_chnc_busy_0 ? releaseArb_io_out_bits_opcode : _GEN_358; // @[Lsu.scala 334:64 335:45]
  assign io_writeBackUnit_dcache_release_bits_param = ~is_chnc_busy_0 ? releaseArb_io_out_bits_param : _GEN_359; // @[Lsu.scala 334:64 335:45]
  assign io_writeBackUnit_dcache_release_bits_size = ~is_chnc_busy_0 ? releaseArb_io_out_bits_size : _GEN_360; // @[Lsu.scala 334:64 335:45]
  assign io_writeBackUnit_dcache_release_bits_address = ~is_chnc_busy_0 ? releaseArb_io_out_bits_address : _GEN_362; // @[Lsu.scala 334:64 335:45]
  assign io_writeBackUnit_dcache_release_bits_data = ~is_chnc_busy_0 ? releaseArb_io_out_bits_data : _GEN_363; // @[Lsu.scala 334:64 335:45]
  assign io_writeBackUnit_dcache_grant_ready = ~io_writeBackUnit_dcache_grant_bits_source &
    cache_0_io_writeBackUnit_dcache_grant_ready; // @[Lsu.scala 288:45 317:69 318:52]
  assign io_system_getPut_valid = system_io_getPut_valid; // @[Lsu.scala 389:26]
  assign io_system_getPut_bits_opcode = system_io_getPut_bits_opcode; // @[Lsu.scala 390:26]
  assign io_system_getPut_bits_address = system_io_getPut_bits_address; // @[Lsu.scala 390:26]
  assign io_system_getPut_bits_mask = system_io_getPut_bits_mask; // @[Lsu.scala 390:26]
  assign io_system_getPut_bits_data = system_io_getPut_bits_data; // @[Lsu.scala 390:26]
  assign io_system_access_ready = system_io_access_ready; // @[Lsu.scala 394:26]
  assign io_periph_getPut_valid = periph_io_getPut_valid; // @[Lsu.scala 400:26]
  assign io_periph_getPut_bits_opcode = periph_io_getPut_bits_opcode; // @[Lsu.scala 401:26]
  assign io_periph_getPut_bits_address = periph_io_getPut_bits_address; // @[Lsu.scala 401:26]
  assign io_periph_getPut_bits_mask = periph_io_getPut_bits_mask; // @[Lsu.scala 401:26]
  assign io_periph_getPut_bits_data = periph_io_getPut_bits_data; // @[Lsu.scala 401:26]
  assign io_periph_access_ready = periph_io_access_ready; // @[Lsu.scala 405:26]
  assign stQueue_clock = clock;
  assign stQueue_reset = reset;
  assign stQueue_io_enq_valid = _stQueue_io_enq_valid_T | _stQueue_io_enq_valid_T_1; // @[Lsu.scala 194:39]
  assign stQueue_io_enq_bits_fun_lb = _stQueue_io_enq_valid_T & opStIO_bits_fun_lb | _stQueue_io_enq_valid_T_1 &
    opAmIO_bits_fun_lb; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_lh = _stQueue_io_enq_valid_T & opStIO_bits_fun_lh | _stQueue_io_enq_valid_T_1 &
    opAmIO_bits_fun_lh; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_lw = _stQueue_io_enq_valid_T & opStIO_bits_fun_lw | _stQueue_io_enq_valid_T_1 &
    opAmIO_bits_fun_lw; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_ld = _stQueue_io_enq_valid_T & opStIO_bits_fun_ld | _stQueue_io_enq_valid_T_1 &
    opAmIO_bits_fun_ld; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_lbu = _stQueue_io_enq_valid_T & opStIO_bits_fun_lbu | _stQueue_io_enq_valid_T_1 &
    opAmIO_bits_fun_lbu; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_lhu = _stQueue_io_enq_valid_T & opStIO_bits_fun_lhu | _stQueue_io_enq_valid_T_1 &
    opAmIO_bits_fun_lhu; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_lwu = _stQueue_io_enq_valid_T & opStIO_bits_fun_lwu | _stQueue_io_enq_valid_T_1 &
    opAmIO_bits_fun_lwu; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_sb = _stQueue_io_enq_valid_T & opStIO_bits_fun_sb | _stQueue_io_enq_valid_T_1 &
    opAmIO_bits_fun_sb; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_sh = _stQueue_io_enq_valid_T & opStIO_bits_fun_sh | _stQueue_io_enq_valid_T_1 &
    opAmIO_bits_fun_sh; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_sw = _stQueue_io_enq_valid_T & opStIO_bits_fun_sw | _stQueue_io_enq_valid_T_1 &
    opAmIO_bits_fun_sw; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_sd = _stQueue_io_enq_valid_T & opStIO_bits_fun_sd | _stQueue_io_enq_valid_T_1 &
    opAmIO_bits_fun_sd; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_lr_w = _stQueue_io_enq_valid_T & opStIO_bits_fun_lr_w | _stQueue_io_enq_valid_T_1 &
    opAmIO_bits_fun_lr_w; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_sc_w = _stQueue_io_enq_valid_T & opStIO_bits_fun_sc_w | _stQueue_io_enq_valid_T_1 &
    opAmIO_bits_fun_sc_w; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_amoswap_w = _stQueue_io_enq_valid_T & opStIO_bits_fun_amoswap_w |
    _stQueue_io_enq_valid_T_1 & opAmIO_bits_fun_amoswap_w; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_amoadd_w = _stQueue_io_enq_valid_T & opStIO_bits_fun_amoadd_w |
    _stQueue_io_enq_valid_T_1 & opAmIO_bits_fun_amoadd_w; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_amoxor_w = _stQueue_io_enq_valid_T & opStIO_bits_fun_amoxor_w |
    _stQueue_io_enq_valid_T_1 & opAmIO_bits_fun_amoxor_w; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_amoand_w = _stQueue_io_enq_valid_T & opStIO_bits_fun_amoand_w |
    _stQueue_io_enq_valid_T_1 & opAmIO_bits_fun_amoand_w; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_amoor_w = _stQueue_io_enq_valid_T & opStIO_bits_fun_amoor_w | _stQueue_io_enq_valid_T_1
     & opAmIO_bits_fun_amoor_w; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_amomin_w = _stQueue_io_enq_valid_T & opStIO_bits_fun_amomin_w |
    _stQueue_io_enq_valid_T_1 & opAmIO_bits_fun_amomin_w; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_amomax_w = _stQueue_io_enq_valid_T & opStIO_bits_fun_amomax_w |
    _stQueue_io_enq_valid_T_1 & opAmIO_bits_fun_amomax_w; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_amominu_w = _stQueue_io_enq_valid_T & opStIO_bits_fun_amominu_w |
    _stQueue_io_enq_valid_T_1 & opAmIO_bits_fun_amominu_w; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_amomaxu_w = _stQueue_io_enq_valid_T & opStIO_bits_fun_amomaxu_w |
    _stQueue_io_enq_valid_T_1 & opAmIO_bits_fun_amomaxu_w; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_lr_d = _stQueue_io_enq_valid_T & opStIO_bits_fun_lr_d | _stQueue_io_enq_valid_T_1 &
    opAmIO_bits_fun_lr_d; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_sc_d = _stQueue_io_enq_valid_T & opStIO_bits_fun_sc_d | _stQueue_io_enq_valid_T_1 &
    opAmIO_bits_fun_sc_d; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_amoswap_d = _stQueue_io_enq_valid_T & opStIO_bits_fun_amoswap_d |
    _stQueue_io_enq_valid_T_1 & opAmIO_bits_fun_amoswap_d; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_amoadd_d = _stQueue_io_enq_valid_T & opStIO_bits_fun_amoadd_d |
    _stQueue_io_enq_valid_T_1 & opAmIO_bits_fun_amoadd_d; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_amoxor_d = _stQueue_io_enq_valid_T & opStIO_bits_fun_amoxor_d |
    _stQueue_io_enq_valid_T_1 & opAmIO_bits_fun_amoxor_d; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_amoand_d = _stQueue_io_enq_valid_T & opStIO_bits_fun_amoand_d |
    _stQueue_io_enq_valid_T_1 & opAmIO_bits_fun_amoand_d; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_amoor_d = _stQueue_io_enq_valid_T & opStIO_bits_fun_amoor_d | _stQueue_io_enq_valid_T_1
     & opAmIO_bits_fun_amoor_d; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_amomin_d = _stQueue_io_enq_valid_T & opStIO_bits_fun_amomin_d |
    _stQueue_io_enq_valid_T_1 & opAmIO_bits_fun_amomin_d; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_amomax_d = _stQueue_io_enq_valid_T & opStIO_bits_fun_amomax_d |
    _stQueue_io_enq_valid_T_1 & opAmIO_bits_fun_amomax_d; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_amominu_d = _stQueue_io_enq_valid_T & opStIO_bits_fun_amominu_d |
    _stQueue_io_enq_valid_T_1 & opAmIO_bits_fun_amominu_d; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_amomaxu_d = _stQueue_io_enq_valid_T & opStIO_bits_fun_amomaxu_d |
    _stQueue_io_enq_valid_T_1 & opAmIO_bits_fun_amomaxu_d; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_flw = _stQueue_io_enq_valid_T & opStIO_bits_fun_flw | _stQueue_io_enq_valid_T_1 &
    opAmIO_bits_fun_flw; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_fsw = _stQueue_io_enq_valid_T & opStIO_bits_fun_fsw | _stQueue_io_enq_valid_T_1 &
    opAmIO_bits_fun_fsw; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_fld = _stQueue_io_enq_valid_T & opStIO_bits_fun_fld | _stQueue_io_enq_valid_T_1 &
    opAmIO_bits_fun_fld; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_fun_fsd = _stQueue_io_enq_valid_T & opStIO_bits_fun_fsd | _stQueue_io_enq_valid_T_1 &
    opAmIO_bits_fun_fsd; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_param_rd0 = _stQueue_io_enq_bits_T_11 | _stQueue_io_enq_bits_T_12; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_param_dat_op1 = _stQueue_io_enq_bits_T_8 | _stQueue_io_enq_bits_T_9; // @[Mux.scala 27:73]
  assign stQueue_io_enq_bits_param_dat_op2 = _stQueue_io_enq_bits_T_5 | _stQueue_io_enq_bits_T_6; // @[Mux.scala 27:73]
  assign stQueue_io_deq_ready = ls_arb_io_in_1_ready; // @[Lsu.scala 215:19]
  assign stQueue_io_cmm_lsu_is_amo_pending = io_cmm_lsu_is_amo_pending; // @[Lsu.scala 200:22]
  assign stQueue_io_cmm_lsu_is_store_commit_0 = io_cmm_lsu_is_store_commit_0; // @[Lsu.scala 200:22]
  assign stQueue_io_overlapReq_valid = _T_9 & addrTransIO_valid; // @[Lsu.scala 162:38 163:23 167:18]
  assign stQueue_io_overlapReq_bits_paddr = opLdIO_bits_param_dat_op1[31:0]; // @[Lsu.scala 208:36]
  assign stQueue_io_flush = io_flush; // @[Lsu.scala 202:20]
  assign ls_arb_io_in_0_valid = opLdIO_valid & stQueue_io_overlapResp_valid; // @[Lsu.scala 211:41]
  assign ls_arb_io_in_0_bits_fun_lb = _T_9 & io_lsu_iss_exe_bits_fun_lb; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_lh = _T_9 & io_lsu_iss_exe_bits_fun_lh; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_lw = _T_9 & io_lsu_iss_exe_bits_fun_lw; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_ld = _T_9 & io_lsu_iss_exe_bits_fun_ld; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_lbu = _T_9 & io_lsu_iss_exe_bits_fun_lbu; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_lhu = _T_9 & io_lsu_iss_exe_bits_fun_lhu; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_lwu = _T_9 & io_lsu_iss_exe_bits_fun_lwu; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_sb = _T_9 & io_lsu_iss_exe_bits_fun_sb; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_sh = _T_9 & io_lsu_iss_exe_bits_fun_sh; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_sw = _T_9 & io_lsu_iss_exe_bits_fun_sw; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_sd = _T_9 & io_lsu_iss_exe_bits_fun_sd; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_lr_w = _T_9 & io_lsu_iss_exe_bits_fun_lr_w; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_sc_w = _T_9 & io_lsu_iss_exe_bits_fun_sc_w; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_amoswap_w = _T_9 & io_lsu_iss_exe_bits_fun_amoswap_w; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_amoadd_w = _T_9 & io_lsu_iss_exe_bits_fun_amoadd_w; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_amoxor_w = _T_9 & io_lsu_iss_exe_bits_fun_amoxor_w; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_amoand_w = _T_9 & io_lsu_iss_exe_bits_fun_amoand_w; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_amoor_w = _T_9 & io_lsu_iss_exe_bits_fun_amoor_w; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_amomin_w = _T_9 & io_lsu_iss_exe_bits_fun_amomin_w; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_amomax_w = _T_9 & io_lsu_iss_exe_bits_fun_amomax_w; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_amominu_w = _T_9 & io_lsu_iss_exe_bits_fun_amominu_w; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_amomaxu_w = _T_9 & io_lsu_iss_exe_bits_fun_amomaxu_w; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_lr_d = _T_9 & io_lsu_iss_exe_bits_fun_lr_d; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_sc_d = _T_9 & io_lsu_iss_exe_bits_fun_sc_d; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_amoswap_d = _T_9 & io_lsu_iss_exe_bits_fun_amoswap_d; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_amoadd_d = _T_9 & io_lsu_iss_exe_bits_fun_amoadd_d; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_amoxor_d = _T_9 & io_lsu_iss_exe_bits_fun_amoxor_d; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_amoand_d = _T_9 & io_lsu_iss_exe_bits_fun_amoand_d; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_amoor_d = _T_9 & io_lsu_iss_exe_bits_fun_amoor_d; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_amomin_d = _T_9 & io_lsu_iss_exe_bits_fun_amomin_d; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_amomax_d = _T_9 & io_lsu_iss_exe_bits_fun_amomax_d; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_amominu_d = _T_9 & io_lsu_iss_exe_bits_fun_amominu_d; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_amomaxu_d = _T_9 & io_lsu_iss_exe_bits_fun_amomaxu_d; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_flw = _T_9 & io_lsu_iss_exe_bits_fun_flw; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_fsw = _T_9 & io_lsu_iss_exe_bits_fun_fsw; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_fld = _T_9 & io_lsu_iss_exe_bits_fun_fld; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_fun_fsd = _T_9 & io_lsu_iss_exe_bits_fun_fsd; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_param_rd0 = _T_9 ? io_lsu_iss_exe_bits_param_rd0 : 6'h0; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_param_dat_op1 = _T_9 ? io_mmu_lsu_bits_paddr : 64'h0; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_0_bits_param_dat_op2 = _T_9 ? io_lsu_iss_exe_bits_param_dat_op2 : 64'h0; // @[Lsu.scala 162:38 164:23 168:18]
  assign ls_arb_io_in_1_valid = stQueue_io_deq_valid; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_lb = stQueue_io_deq_bits_fun_lb; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_lh = stQueue_io_deq_bits_fun_lh; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_lw = stQueue_io_deq_bits_fun_lw; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_ld = stQueue_io_deq_bits_fun_ld; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_lbu = stQueue_io_deq_bits_fun_lbu; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_lhu = stQueue_io_deq_bits_fun_lhu; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_lwu = stQueue_io_deq_bits_fun_lwu; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_sb = stQueue_io_deq_bits_fun_sb; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_sh = stQueue_io_deq_bits_fun_sh; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_sw = stQueue_io_deq_bits_fun_sw; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_sd = stQueue_io_deq_bits_fun_sd; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_lr_w = stQueue_io_deq_bits_fun_lr_w; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_sc_w = stQueue_io_deq_bits_fun_sc_w; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_amoswap_w = stQueue_io_deq_bits_fun_amoswap_w; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_amoadd_w = stQueue_io_deq_bits_fun_amoadd_w; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_amoxor_w = stQueue_io_deq_bits_fun_amoxor_w; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_amoand_w = stQueue_io_deq_bits_fun_amoand_w; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_amoor_w = stQueue_io_deq_bits_fun_amoor_w; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_amomin_w = stQueue_io_deq_bits_fun_amomin_w; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_amomax_w = stQueue_io_deq_bits_fun_amomax_w; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_amominu_w = stQueue_io_deq_bits_fun_amominu_w; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_amomaxu_w = stQueue_io_deq_bits_fun_amomaxu_w; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_lr_d = stQueue_io_deq_bits_fun_lr_d; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_sc_d = stQueue_io_deq_bits_fun_sc_d; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_amoswap_d = stQueue_io_deq_bits_fun_amoswap_d; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_amoadd_d = stQueue_io_deq_bits_fun_amoadd_d; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_amoxor_d = stQueue_io_deq_bits_fun_amoxor_d; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_amoand_d = stQueue_io_deq_bits_fun_amoand_d; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_amoor_d = stQueue_io_deq_bits_fun_amoor_d; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_amomin_d = stQueue_io_deq_bits_fun_amomin_d; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_amomax_d = stQueue_io_deq_bits_fun_amomax_d; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_amominu_d = stQueue_io_deq_bits_fun_amominu_d; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_amomaxu_d = stQueue_io_deq_bits_fun_amomaxu_d; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_flw = stQueue_io_deq_bits_fun_flw; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_fsw = stQueue_io_deq_bits_fun_fsw; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_fld = stQueue_io_deq_bits_fun_fld; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_fun_fsd = stQueue_io_deq_bits_fun_fsd; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_param_rd0 = stQueue_io_deq_bits_param_rd0; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_param_dat_op1 = stQueue_io_deq_bits_param_dat_op1; // @[Lsu.scala 215:19]
  assign ls_arb_io_in_1_bits_param_dat_op2 = stQueue_io_deq_bits_param_dat_op2; // @[Lsu.scala 215:19]
  assign ls_arb_io_out_ready = sel == 2'h0 ? cacheBankIO_0_ready : _GEN_229; // @[Lsu.scala 246:23 249:26]
  assign system_clock = clock;
  assign system_reset = reset;
  assign system_io_enq_valid = sel == 2'h1 & ls_arb_io_out_valid; // @[Lsu.scala 237:23 238:26 242:26]
  assign system_io_enq_bits_fun_lb = sel == 2'h1 & ls_arb_io_out_bits_fun_lb; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_lh = sel == 2'h1 & ls_arb_io_out_bits_fun_lh; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_lw = sel == 2'h1 & ls_arb_io_out_bits_fun_lw; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_ld = sel == 2'h1 & ls_arb_io_out_bits_fun_ld; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_lbu = sel == 2'h1 & ls_arb_io_out_bits_fun_lbu; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_lhu = sel == 2'h1 & ls_arb_io_out_bits_fun_lhu; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_lwu = sel == 2'h1 & ls_arb_io_out_bits_fun_lwu; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_sb = sel == 2'h1 & ls_arb_io_out_bits_fun_sb; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_sh = sel == 2'h1 & ls_arb_io_out_bits_fun_sh; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_sw = sel == 2'h1 & ls_arb_io_out_bits_fun_sw; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_sd = sel == 2'h1 & ls_arb_io_out_bits_fun_sd; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_lr_w = sel == 2'h1 & ls_arb_io_out_bits_fun_lr_w; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_sc_w = sel == 2'h1 & ls_arb_io_out_bits_fun_sc_w; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_amoswap_w = sel == 2'h1 & ls_arb_io_out_bits_fun_amoswap_w; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_amoadd_w = sel == 2'h1 & ls_arb_io_out_bits_fun_amoadd_w; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_amoxor_w = sel == 2'h1 & ls_arb_io_out_bits_fun_amoxor_w; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_amoand_w = sel == 2'h1 & ls_arb_io_out_bits_fun_amoand_w; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_amoor_w = sel == 2'h1 & ls_arb_io_out_bits_fun_amoor_w; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_amomin_w = sel == 2'h1 & ls_arb_io_out_bits_fun_amomin_w; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_amomax_w = sel == 2'h1 & ls_arb_io_out_bits_fun_amomax_w; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_amominu_w = sel == 2'h1 & ls_arb_io_out_bits_fun_amominu_w; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_amomaxu_w = sel == 2'h1 & ls_arb_io_out_bits_fun_amomaxu_w; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_lr_d = sel == 2'h1 & ls_arb_io_out_bits_fun_lr_d; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_sc_d = sel == 2'h1 & ls_arb_io_out_bits_fun_sc_d; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_amoswap_d = sel == 2'h1 & ls_arb_io_out_bits_fun_amoswap_d; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_amoadd_d = sel == 2'h1 & ls_arb_io_out_bits_fun_amoadd_d; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_amoxor_d = sel == 2'h1 & ls_arb_io_out_bits_fun_amoxor_d; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_amoand_d = sel == 2'h1 & ls_arb_io_out_bits_fun_amoand_d; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_amoor_d = sel == 2'h1 & ls_arb_io_out_bits_fun_amoor_d; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_amomin_d = sel == 2'h1 & ls_arb_io_out_bits_fun_amomin_d; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_amomax_d = sel == 2'h1 & ls_arb_io_out_bits_fun_amomax_d; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_amominu_d = sel == 2'h1 & ls_arb_io_out_bits_fun_amominu_d; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_amomaxu_d = sel == 2'h1 & ls_arb_io_out_bits_fun_amomaxu_d; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_flw = sel == 2'h1 & ls_arb_io_out_bits_fun_flw; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_fsw = sel == 2'h1 & ls_arb_io_out_bits_fun_fsw; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_fld = sel == 2'h1 & ls_arb_io_out_bits_fun_fld; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_fun_fsd = sel == 2'h1 & ls_arb_io_out_bits_fun_fsd; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_param_rd0 = sel == 2'h1 ? ls_arb_io_out_bits_param_rd0 : 6'h0; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_param_dat_op1 = sel == 2'h1 ? ls_arb_io_out_bits_param_dat_op1 : 64'h0; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_enq_bits_param_dat_op2 = sel == 2'h1 ? ls_arb_io_out_bits_param_dat_op2 : 64'h0; // @[Lsu.scala 237:23 239:26 243:26]
  assign system_io_deq_ready = lu_wb_arb_io_in_1_ready | ~system_io_deq_bits_is_load_amo; // @[Lsu.scala 427:52]
  assign system_io_getPut_ready = io_system_getPut_ready; // @[Lsu.scala 391:26]
  assign system_io_access_valid = io_system_access_valid; // @[Lsu.scala 392:26]
  assign system_io_access_bits_opcode = io_system_access_bits_opcode; // @[Lsu.scala 393:26]
  assign system_io_access_bits_data = io_system_access_bits_data; // @[Lsu.scala 393:26]
  assign periph_clock = clock;
  assign periph_reset = reset;
  assign periph_io_enq_valid = sel == 2'h2 & ls_arb_io_out_valid; // @[Lsu.scala 228:23 229:26 233:26]
  assign periph_io_enq_bits_fun_lb = sel == 2'h2 & ls_arb_io_out_bits_fun_lb; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_lh = sel == 2'h2 & ls_arb_io_out_bits_fun_lh; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_lw = sel == 2'h2 & ls_arb_io_out_bits_fun_lw; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_ld = sel == 2'h2 & ls_arb_io_out_bits_fun_ld; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_lbu = sel == 2'h2 & ls_arb_io_out_bits_fun_lbu; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_lhu = sel == 2'h2 & ls_arb_io_out_bits_fun_lhu; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_lwu = sel == 2'h2 & ls_arb_io_out_bits_fun_lwu; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_sb = sel == 2'h2 & ls_arb_io_out_bits_fun_sb; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_sh = sel == 2'h2 & ls_arb_io_out_bits_fun_sh; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_sw = sel == 2'h2 & ls_arb_io_out_bits_fun_sw; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_sd = sel == 2'h2 & ls_arb_io_out_bits_fun_sd; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_lr_w = sel == 2'h2 & ls_arb_io_out_bits_fun_lr_w; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_sc_w = sel == 2'h2 & ls_arb_io_out_bits_fun_sc_w; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_amoswap_w = sel == 2'h2 & ls_arb_io_out_bits_fun_amoswap_w; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_amoadd_w = sel == 2'h2 & ls_arb_io_out_bits_fun_amoadd_w; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_amoxor_w = sel == 2'h2 & ls_arb_io_out_bits_fun_amoxor_w; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_amoand_w = sel == 2'h2 & ls_arb_io_out_bits_fun_amoand_w; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_amoor_w = sel == 2'h2 & ls_arb_io_out_bits_fun_amoor_w; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_amomin_w = sel == 2'h2 & ls_arb_io_out_bits_fun_amomin_w; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_amomax_w = sel == 2'h2 & ls_arb_io_out_bits_fun_amomax_w; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_amominu_w = sel == 2'h2 & ls_arb_io_out_bits_fun_amominu_w; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_amomaxu_w = sel == 2'h2 & ls_arb_io_out_bits_fun_amomaxu_w; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_lr_d = sel == 2'h2 & ls_arb_io_out_bits_fun_lr_d; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_sc_d = sel == 2'h2 & ls_arb_io_out_bits_fun_sc_d; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_amoswap_d = sel == 2'h2 & ls_arb_io_out_bits_fun_amoswap_d; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_amoadd_d = sel == 2'h2 & ls_arb_io_out_bits_fun_amoadd_d; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_amoxor_d = sel == 2'h2 & ls_arb_io_out_bits_fun_amoxor_d; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_amoand_d = sel == 2'h2 & ls_arb_io_out_bits_fun_amoand_d; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_amoor_d = sel == 2'h2 & ls_arb_io_out_bits_fun_amoor_d; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_amomin_d = sel == 2'h2 & ls_arb_io_out_bits_fun_amomin_d; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_amomax_d = sel == 2'h2 & ls_arb_io_out_bits_fun_amomax_d; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_amominu_d = sel == 2'h2 & ls_arb_io_out_bits_fun_amominu_d; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_amomaxu_d = sel == 2'h2 & ls_arb_io_out_bits_fun_amomaxu_d; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_flw = sel == 2'h2 & ls_arb_io_out_bits_fun_flw; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_fsw = sel == 2'h2 & ls_arb_io_out_bits_fun_fsw; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_fld = sel == 2'h2 & ls_arb_io_out_bits_fun_fld; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_fun_fsd = sel == 2'h2 & ls_arb_io_out_bits_fun_fsd; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_param_rd0 = sel == 2'h2 ? ls_arb_io_out_bits_param_rd0 : 6'h0; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_param_dat_op1 = sel == 2'h2 ? ls_arb_io_out_bits_param_dat_op1 : 64'h0; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_enq_bits_param_dat_op2 = sel == 2'h2 ? ls_arb_io_out_bits_param_dat_op2 : 64'h0; // @[Lsu.scala 228:23 230:26 234:26]
  assign periph_io_deq_ready = lu_wb_arb_io_in_2_ready | ~periph_io_deq_bits_is_load_amo; // @[Lsu.scala 432:54]
  assign periph_io_getPut_ready = io_periph_getPut_ready; // @[Lsu.scala 402:26]
  assign periph_io_access_valid = io_periph_access_valid; // @[Lsu.scala 403:26]
  assign periph_io_access_bits_opcode = io_periph_access_bits_opcode; // @[Lsu.scala 404:26]
  assign periph_io_access_bits_data = io_periph_access_bits_data; // @[Lsu.scala 404:26]
  assign cache_0_clock = clock;
  assign cache_0_reset = reset;
  assign cache_0_io_enq_valid = sel == 2'h0 & ls_arb_io_out_valid; // @[Lsu.scala 246:23 247:26 251:26]
  assign cache_0_io_enq_bits_paddr = regionDCacheIO_bits_param_dat_op1[31:0]; // @[Util.scala 81:19 84:15]
  assign cache_0_io_enq_bits_wdata = _CacheMuxBits_res_wdata_T_9 ? CacheMuxBits_res_wdata_align_data :
    CacheMuxBits_res_wdata_res; // @[Util.scala 85:21]
  assign cache_0_io_enq_bits_wstrb = _CacheMuxBits_res_wdata_T_9 ? CacheMuxBits_res_wstrb_align_strb :
    CacheMuxBits_res_wstrb_wstrb; // @[Util.scala 86:21]
  assign cache_0_io_enq_bits_fun_lb = sel == 2'h0 & ls_arb_io_out_bits_fun_lb; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_lh = sel == 2'h0 & ls_arb_io_out_bits_fun_lh; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_lw = sel == 2'h0 & ls_arb_io_out_bits_fun_lw; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_ld = sel == 2'h0 & ls_arb_io_out_bits_fun_ld; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_lbu = sel == 2'h0 & ls_arb_io_out_bits_fun_lbu; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_lhu = sel == 2'h0 & ls_arb_io_out_bits_fun_lhu; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_lwu = sel == 2'h0 & ls_arb_io_out_bits_fun_lwu; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_sb = sel == 2'h0 & ls_arb_io_out_bits_fun_sb; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_sh = sel == 2'h0 & ls_arb_io_out_bits_fun_sh; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_sw = sel == 2'h0 & ls_arb_io_out_bits_fun_sw; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_sd = sel == 2'h0 & ls_arb_io_out_bits_fun_sd; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_lr_w = sel == 2'h0 & ls_arb_io_out_bits_fun_lr_w; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_sc_w = sel == 2'h0 & ls_arb_io_out_bits_fun_sc_w; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_amoswap_w = sel == 2'h0 & ls_arb_io_out_bits_fun_amoswap_w; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_amoadd_w = sel == 2'h0 & ls_arb_io_out_bits_fun_amoadd_w; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_amoxor_w = sel == 2'h0 & ls_arb_io_out_bits_fun_amoxor_w; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_amoand_w = sel == 2'h0 & ls_arb_io_out_bits_fun_amoand_w; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_amoor_w = sel == 2'h0 & ls_arb_io_out_bits_fun_amoor_w; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_amomin_w = sel == 2'h0 & ls_arb_io_out_bits_fun_amomin_w; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_amomax_w = sel == 2'h0 & ls_arb_io_out_bits_fun_amomax_w; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_amominu_w = sel == 2'h0 & ls_arb_io_out_bits_fun_amominu_w; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_amomaxu_w = sel == 2'h0 & ls_arb_io_out_bits_fun_amomaxu_w; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_lr_d = sel == 2'h0 & ls_arb_io_out_bits_fun_lr_d; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_sc_d = sel == 2'h0 & ls_arb_io_out_bits_fun_sc_d; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_amoswap_d = sel == 2'h0 & ls_arb_io_out_bits_fun_amoswap_d; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_amoadd_d = sel == 2'h0 & ls_arb_io_out_bits_fun_amoadd_d; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_amoxor_d = sel == 2'h0 & ls_arb_io_out_bits_fun_amoxor_d; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_amoand_d = sel == 2'h0 & ls_arb_io_out_bits_fun_amoand_d; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_amoor_d = sel == 2'h0 & ls_arb_io_out_bits_fun_amoor_d; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_amomin_d = sel == 2'h0 & ls_arb_io_out_bits_fun_amomin_d; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_amomax_d = sel == 2'h0 & ls_arb_io_out_bits_fun_amomax_d; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_amominu_d = sel == 2'h0 & ls_arb_io_out_bits_fun_amominu_d; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_amomaxu_d = sel == 2'h0 & ls_arb_io_out_bits_fun_amomaxu_d; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_flw = sel == 2'h0 & ls_arb_io_out_bits_fun_flw; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_fsw = sel == 2'h0 & ls_arb_io_out_bits_fun_fsw; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_fld = sel == 2'h0 & ls_arb_io_out_bits_fun_fld; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_fun_fsd = sel == 2'h0 & ls_arb_io_out_bits_fun_fsd; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_enq_bits_rd_rd0 = sel == 2'h0 ? ls_arb_io_out_bits_param_rd0 : 6'h0; // @[Lsu.scala 246:23 248:26 252:26]
  assign cache_0_io_deq_ready = lu_wb_arb_io_in_0_ready | ~cache_0_io_deq_bits_is_load_amo; // @[Lsu.scala 421:55]
  assign cache_0_io_flush = io_flush; // @[Lsu.scala 382:23]
  assign cache_0_io_missUnit_dcache_acquire_ready = acquireArb_io_in_0_ready; // @[Lsu.scala 305:27]
  assign cache_0_io_missUnit_dcache_grant_valid = ~io_missUnit_dcache_grant_bits_source & io_missUnit_dcache_grant_valid
    ; // @[Lsu.scala 307:64 308:47 292:54]
  assign cache_0_io_missUnit_dcache_grant_bits_opcode = ~io_missUnit_dcache_grant_bits_source ?
    io_missUnit_dcache_grant_bits_opcode : 3'h0; // @[Lsu.scala 307:64 308:47 293:54]
  assign cache_0_io_missUnit_dcache_grant_bits_size = ~io_missUnit_dcache_grant_bits_source ?
    io_missUnit_dcache_grant_bits_size : 3'h0; // @[Lsu.scala 307:64 308:47 293:54]
  assign cache_0_io_missUnit_dcache_grant_bits_source = ~io_missUnit_dcache_grant_bits_source &
    io_missUnit_dcache_grant_bits_source; // @[Lsu.scala 307:64 308:47 293:54]
  assign cache_0_io_missUnit_dcache_grant_bits_sink = ~io_missUnit_dcache_grant_bits_source ?
    io_missUnit_dcache_grant_bits_sink : 5'h0; // @[Lsu.scala 307:64 308:47 293:54]
  assign cache_0_io_missUnit_dcache_grant_bits_data = ~io_missUnit_dcache_grant_bits_source ?
    io_missUnit_dcache_grant_bits_data : 64'h0; // @[Lsu.scala 307:64 308:47 293:54]
  assign cache_0_io_missUnit_dcache_grantAck_ready = grantAckArb_io_in_0_ready; // @[Lsu.scala 311:28]
  assign cache_0_io_probeUnit_dcache_probe_valid = io_probeUnit_dcache_probe_valid; // @[Lsu.scala 313:120 314:48 295:54]
  assign cache_0_io_probeUnit_dcache_probe_bits_address = io_probeUnit_dcache_probe_bits_address; // @[Lsu.scala 313:120 314:48 296:54]
  assign cache_0_io_writeBackUnit_dcache_release_ready = ~is_chnc_busy_0 ? releaseArb_io_in_0_ready : _GEN_366; // @[Lsu.scala 332:29 334:64]
  assign cache_0_io_writeBackUnit_dcache_grant_valid = ~io_writeBackUnit_dcache_grant_bits_source &
    io_writeBackUnit_dcache_grant_valid; // @[Lsu.scala 317:69 318:52 298:58]
  assign cache_0_io_writeBackUnit_dcache_grant_bits_source = ~io_writeBackUnit_dcache_grant_bits_source &
    io_writeBackUnit_dcache_grant_bits_source; // @[Lsu.scala 317:69 318:52 299:58]
  assign lu_wb_arb_io_in_0_valid = cache_0_io_deq_valid & cache_0_io_deq_bits_is_load_amo; // @[Lsu.scala 419:55]
  assign lu_wb_arb_io_in_0_bits_wb_rd0 = lu_wb_arb_io_in_0_valid ? cache_0_io_deq_bits_wb_rd0 : 6'h0; // @[Lsu.scala 420:35]
  assign lu_wb_arb_io_in_0_bits_wb_res = lu_wb_arb_io_in_0_valid ? cache_0_io_deq_bits_wb_res : 64'h0; // @[Lsu.scala 420:35]
  assign lu_wb_arb_io_in_0_bits_is_flw = lu_wb_arb_io_in_0_valid & cache_0_io_deq_bits_is_flw; // @[Lsu.scala 420:35]
  assign lu_wb_arb_io_in_0_bits_is_fld = lu_wb_arb_io_in_0_valid & cache_0_io_deq_bits_is_fld; // @[Lsu.scala 420:35]
  assign lu_wb_arb_io_in_1_valid = system_io_deq_valid & system_io_deq_bits_is_load_amo; // @[Lsu.scala 425:52]
  assign lu_wb_arb_io_in_1_bits_wb_rd0 = lu_wb_arb_io_in_1_valid ? system_io_deq_bits_wb_rd0 : 6'h0; // @[Lsu.scala 426:34]
  assign lu_wb_arb_io_in_1_bits_wb_res = lu_wb_arb_io_in_1_valid ? system_io_deq_bits_wb_res : 64'h0; // @[Lsu.scala 426:34]
  assign lu_wb_arb_io_in_1_bits_is_flw = lu_wb_arb_io_in_1_valid & system_io_deq_bits_is_flw; // @[Lsu.scala 426:34]
  assign lu_wb_arb_io_in_1_bits_is_fld = lu_wb_arb_io_in_1_valid & system_io_deq_bits_is_fld; // @[Lsu.scala 426:34]
  assign lu_wb_arb_io_in_2_valid = periph_io_deq_valid & periph_io_deq_bits_is_load_amo; // @[Lsu.scala 430:54]
  assign lu_wb_arb_io_in_2_bits_wb_rd0 = lu_wb_arb_io_in_2_valid ? periph_io_deq_bits_wb_rd0 : 6'h0; // @[Lsu.scala 431:36]
  assign lu_wb_arb_io_in_2_bits_wb_res = lu_wb_arb_io_in_2_valid ? periph_io_deq_bits_wb_res : 64'h0; // @[Lsu.scala 431:36]
  assign lu_wb_arb_io_in_2_bits_is_flw = lu_wb_arb_io_in_2_valid & periph_io_deq_bits_is_flw; // @[Lsu.scala 431:36]
  assign lu_wb_arb_io_in_2_bits_is_fld = lu_wb_arb_io_in_2_valid & periph_io_deq_bits_is_fld; // @[Lsu.scala 431:36]
  assign lu_wb_arb_io_out_ready = lu_wb_fifo_io_enq_ready & flu_wb_fifo_io_enq_ready | trans_kill; // @[Lsu.scala 454:82]
  assign lu_wb_fifo_clock = clock;
  assign lu_wb_fifo_reset = reset | io_flush; // @[Lsu.scala 440:36]
  assign lu_wb_fifo_io_enq_valid = lu_wb_arb_io_out_valid & _lu_wb_fifo_io_enq_valid_T_1 & ~trans_kill; // @[Lsu.scala 437:84]
  assign lu_wb_fifo_io_enq_bits_rd0 = lu_wb_arb_io_out_bits_wb_rd0; // @[Lsu.scala 438:30]
  assign lu_wb_fifo_io_enq_bits_res = lu_wb_arb_io_out_bits_wb_res; // @[Lsu.scala 439:30]
  assign lu_wb_fifo_io_deq_ready = rtn_arb_io_in_1_ready; // @[Lsu.scala 475:20]
  assign flu_wb_fifo_clock = clock;
  assign flu_wb_fifo_reset = reset | io_flush; // @[Lsu.scala 451:37]
  assign flu_wb_fifo_io_enq_valid = lu_wb_arb_io_out_valid & _lu_wb_fifo_io_enq_valid_T & _lu_wb_fifo_io_enq_valid_T_3; // @[Lsu.scala 443:85]
  assign su_wb_fifo_clock = clock;
  assign su_wb_fifo_reset = reset | io_flush; // @[Lsu.scala 460:36]
  assign su_wb_fifo_io_enq_valid = opStIO_ready & opStIO_valid; // @[Decoupled.scala 52:35]
  assign su_wb_fifo_io_enq_bits_rd0 = _T_14 ? io_lsu_iss_exe_bits_param_rd0 : 6'h0; // @[Lsu.scala 171:38 173:23 177:18]
  assign su_wb_fifo_io_enq_bits_res = 64'h0; // @[Lsu.scala 459:30]
  assign su_wb_fifo_io_deq_ready = rtn_arb_io_in_0_ready; // @[Lsu.scala 474:20]
  assign fe_wb_fifo_clock = clock;
  assign fe_wb_fifo_reset = reset | io_flush; // @[Lsu.scala 470:36]
  assign fe_wb_fifo_io_enq_valid = is_empty & _addrTransIO_valid_T_48 & io_lsu_iss_exe_valid; // @[Lsu.scala 467:74]
  assign fe_wb_fifo_io_enq_bits_rd0 = io_lsu_iss_exe_bits_param_rd0; // @[Lsu.scala 468:30]
  assign fe_wb_fifo_io_enq_bits_res = 64'h0; // @[Lsu.scala 469:30]
  assign fe_wb_fifo_io_deq_ready = rtn_arb_io_in_2_ready; // @[Lsu.scala 476:20]
  assign rtn_arb_io_in_0_valid = su_wb_fifo_io_deq_valid; // @[Lsu.scala 474:20]
  assign rtn_arb_io_in_0_bits_rd0 = su_wb_fifo_io_deq_bits_rd0; // @[Lsu.scala 474:20]
  assign rtn_arb_io_in_0_bits_res = su_wb_fifo_io_deq_bits_res; // @[Lsu.scala 474:20]
  assign rtn_arb_io_in_1_valid = lu_wb_fifo_io_deq_valid; // @[Lsu.scala 475:20]
  assign rtn_arb_io_in_1_bits_rd0 = lu_wb_fifo_io_deq_bits_rd0; // @[Lsu.scala 475:20]
  assign rtn_arb_io_in_1_bits_res = lu_wb_fifo_io_deq_bits_res; // @[Lsu.scala 475:20]
  assign rtn_arb_io_in_2_valid = fe_wb_fifo_io_deq_valid; // @[Lsu.scala 476:20]
  assign rtn_arb_io_in_2_bits_rd0 = fe_wb_fifo_io_deq_bits_rd0; // @[Lsu.scala 476:20]
  assign rtn_arb_io_in_2_bits_res = fe_wb_fifo_io_deq_bits_res; // @[Lsu.scala 476:20]
  assign rtn_arb_io_out_ready = io_lsu_exe_iwb_ready; // @[Lsu.scala 477:18]
  assign acquireArb_io_in_0_valid = cache_0_io_missUnit_dcache_acquire_valid; // @[Lsu.scala 305:27]
  assign acquireArb_io_in_0_bits_address = cache_0_io_missUnit_dcache_acquire_bits_address; // @[Lsu.scala 305:27]
  assign acquireArb_io_out_ready = io_missUnit_dcache_acquire_ready; // @[Lsu.scala 302:37]
  assign grantAckArb_io_in_0_valid = cache_0_io_missUnit_dcache_grantAck_valid; // @[Lsu.scala 311:28]
  assign grantAckArb_io_in_0_bits_sink = cache_0_io_missUnit_dcache_grantAck_bits_sink; // @[Lsu.scala 311:28]
  assign grantAckArb_io_out_ready = io_missUnit_dcache_grantAck_ready; // @[Lsu.scala 303:37]
  assign releaseArb_io_in_0_valid = cache_0_io_writeBackUnit_dcache_release_valid; // @[Lsu.scala 332:29]
  assign releaseArb_io_in_0_bits_opcode = cache_0_io_writeBackUnit_dcache_release_bits_opcode; // @[Lsu.scala 332:29]
  assign releaseArb_io_in_0_bits_param = cache_0_io_writeBackUnit_dcache_release_bits_param; // @[Lsu.scala 332:29]
  assign releaseArb_io_in_0_bits_size = cache_0_io_writeBackUnit_dcache_release_bits_size; // @[Lsu.scala 332:29]
  assign releaseArb_io_in_0_bits_address = cache_0_io_writeBackUnit_dcache_release_bits_address; // @[Lsu.scala 332:29]
  assign releaseArb_io_in_0_bits_data = cache_0_io_writeBackUnit_dcache_release_bits_data; // @[Lsu.scala 332:29]
  assign releaseArb_io_out_ready = ~is_chnc_busy_0 & io_writeBackUnit_dcache_release_ready; // @[Lsu.scala 334:64 335:45 337:33]
  always @(posedge clock) begin
    if (reset) begin // @[Lsu.scala 73:27]
      trans_kill <= 1'h0; // @[Lsu.scala 73:27]
    end else begin
      trans_kill <= _GEN_378;
    end
    if (reset) begin // @[Lsu.scala 325:33]
      is_chnc_busy_0 <= 1'h0; // @[Lsu.scala 325:33]
    end else if (_is_release_done_T) begin // @[Lsu.scala 328:67]
      if (is_release_done_0) begin // @[Lsu.scala 328:91]
        is_chnc_busy_0 <= 1'h0;
      end else begin
        is_chnc_busy_0 <= 1'h1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      is_release_done_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_is_release_done_T) begin // @[Edges.scala 234:17]
      if (is_release_done_first) begin // @[Edges.scala 235:21]
        is_release_done_counter <= is_release_done_beats1;
      end else begin
        is_release_done_counter <= is_release_done_counter1;
      end
    end
    if (reset) begin // @[Lsu.scala 485:33]
      isAccessFaultReg <= 1'h0; // @[Lsu.scala 485:33]
    end else if (io_flush) begin // @[Lsu.scala 490:20]
      isAccessFaultReg <= 1'h0; // @[Lsu.scala 491:22]
    end else if (io_mmu_lsu_valid & is_empty) begin // @[Lsu.scala 494:46]
      isAccessFaultReg <= io_mmu_lsu_bits_is_access_fault; // @[Lsu.scala 495:22]
    end
    if (reset) begin // @[Lsu.scala 486:33]
      isPagingFault <= 1'h0; // @[Lsu.scala 486:33]
    end else if (io_flush) begin // @[Lsu.scala 490:20]
      isPagingFault <= 1'h0; // @[Lsu.scala 492:22]
    end else if (io_mmu_lsu_valid & is_empty) begin // @[Lsu.scala 494:46]
      isPagingFault <= io_mmu_lsu_bits_is_paging_fault; // @[Lsu.scala 496:22]
    end
    if (reset) begin // @[Lsu.scala 487:27]
      isMisAlign <= 1'h0; // @[Lsu.scala 487:27]
    end else if (io_flush) begin // @[Lsu.scala 490:20]
      isMisAlign <= 1'h0; // @[Lsu.scala 493:22]
    end else if (io_mmu_lsu_valid & is_empty) begin // @[Lsu.scala 494:46]
      isMisAlign <= _addrTransIO_valid_T_44; // @[Lsu.scala 497:22]
    end
    if (!(io_flush)) begin // @[Lsu.scala 490:20]
      if (io_mmu_lsu_valid & is_empty) begin // @[Lsu.scala 494:46]
        trapAddrReg <= io_lsu_iss_exe_bits_param_dat_op1; // @[Lsu.scala 498:22]
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (cache_0_io_deq_bits_is_load_amo & _T_47 & ~(_T_49 == _T_50)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Lsu.scala:422 when( cache(i).io.deq.bits.is_load_amo ) { assert(cache(i).io.deq.fire === lu_wb_arb.io.in(i).fire) }\n"
            ); // @[Lsu.scala 422:54]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_49 == _T_50) & (cache_0_io_deq_bits_is_load_amo & _T_47)) begin
          $fatal; // @[Lsu.scala 422:54]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (system_io_deq_bits_is_load_amo & _T_47 & ~(_T_55 == _T_56)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Lsu.scala:428 when( system.io.deq.bits.is_load_amo ) { assert(system.io.deq.fire === lu_wb_arb.io.in(bk).fire) }\n"
            ); // @[Lsu.scala 428:50]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_55 == _T_56) & (system_io_deq_bits_is_load_amo & _T_47)) begin
          $fatal; // @[Lsu.scala 428:50]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (periph_io_deq_bits_is_load_amo & _T_47 & ~(_T_61 == _T_62)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Lsu.scala:433 when( periph.io.deq.bits.is_load_amo ) { assert(periph.io.deq.fire === lu_wb_arb.io.in(bk+1).fire) }\n"
            ); // @[Lsu.scala 433:50]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_61 == _T_62) & (periph_io_deq_bits_is_load_amo & _T_47)) begin
          $fatal; // @[Lsu.scala 433:50]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  trans_kill = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  is_chnc_busy_0 = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  is_release_done_counter = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  isAccessFaultReg = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  isPagingFault = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  isMisAlign = _RAND_5[0:0];
  _RAND_6 = {2{`RANDOM}};
  trapAddrReg = _RAND_6[63:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_21(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [11:0] io_enq_bits_addr,
  input  [63:0] io_enq_bits_dat_i,
  input         io_enq_bits_op_rw,
  input         io_enq_bits_op_rs,
  input         io_enq_bits_op_rc,
  input         io_deq_ready,
  output        io_deq_valid,
  output [11:0] io_deq_bits_addr,
  output [63:0] io_deq_bits_dat_i,
  output        io_deq_bits_op_rw,
  output        io_deq_bits_op_rs,
  output        io_deq_bits_op_rc
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [63:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_5;
`endif // RANDOMIZE_REG_INIT
  reg [11:0] ram_addr [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_addr_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_addr_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [11:0] ram_addr_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [11:0] ram_addr_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_addr_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_addr_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_addr_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_dat_i [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_dat_i_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_dat_i_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_dat_i_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_dat_i_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_dat_i_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_dat_i_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_dat_i_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_op_rw [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_op_rw_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_op_rw_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_op_rw_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_op_rw_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_op_rw_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_op_rw_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_op_rw_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_op_rs [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_op_rs_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_op_rs_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_op_rs_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_op_rs_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_op_rs_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_op_rs_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_op_rs_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_op_rc [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_op_rc_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_op_rc_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_op_rc_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_op_rc_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_op_rc_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_op_rc_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_op_rc_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_deq = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign ram_addr_io_deq_bits_MPORT_en = 1'h1;
  assign ram_addr_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_addr_io_deq_bits_MPORT_data = ram_addr[ram_addr_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_addr_MPORT_data = io_enq_bits_addr;
  assign ram_addr_MPORT_addr = 1'h0;
  assign ram_addr_MPORT_mask = 1'h1;
  assign ram_addr_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_dat_i_io_deq_bits_MPORT_en = 1'h1;
  assign ram_dat_i_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_dat_i_io_deq_bits_MPORT_data = ram_dat_i[ram_dat_i_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_dat_i_MPORT_data = io_enq_bits_dat_i;
  assign ram_dat_i_MPORT_addr = 1'h0;
  assign ram_dat_i_MPORT_mask = 1'h1;
  assign ram_dat_i_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_op_rw_io_deq_bits_MPORT_en = 1'h1;
  assign ram_op_rw_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_op_rw_io_deq_bits_MPORT_data = ram_op_rw[ram_op_rw_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_op_rw_MPORT_data = io_enq_bits_op_rw;
  assign ram_op_rw_MPORT_addr = 1'h0;
  assign ram_op_rw_MPORT_mask = 1'h1;
  assign ram_op_rw_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_op_rs_io_deq_bits_MPORT_en = 1'h1;
  assign ram_op_rs_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_op_rs_io_deq_bits_MPORT_data = ram_op_rs[ram_op_rs_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_op_rs_MPORT_data = io_enq_bits_op_rs;
  assign ram_op_rs_MPORT_addr = 1'h0;
  assign ram_op_rs_MPORT_mask = 1'h1;
  assign ram_op_rs_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_op_rc_io_deq_bits_MPORT_en = 1'h1;
  assign ram_op_rc_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_op_rc_io_deq_bits_MPORT_data = ram_op_rc[ram_op_rc_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_op_rc_MPORT_data = io_enq_bits_op_rc;
  assign ram_op_rc_MPORT_addr = 1'h0;
  assign ram_op_rc_MPORT_mask = 1'h1;
  assign ram_op_rc_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = ~maybe_full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_addr = ram_addr_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_dat_i = ram_dat_i_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_op_rw = ram_op_rw_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_op_rs = ram_op_rs_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_op_rc = ram_op_rc_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_addr_MPORT_en & ram_addr_MPORT_mask) begin
      ram_addr[ram_addr_MPORT_addr] <= ram_addr_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_dat_i_MPORT_en & ram_dat_i_MPORT_mask) begin
      ram_dat_i[ram_dat_i_MPORT_addr] <= ram_dat_i_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_op_rw_MPORT_en & ram_op_rw_MPORT_mask) begin
      ram_op_rw[ram_op_rw_MPORT_addr] <= ram_op_rw_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_op_rs_MPORT_en & ram_op_rs_MPORT_mask) begin
      ram_op_rs[ram_op_rs_MPORT_addr] <= ram_op_rs_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_op_rc_MPORT_en & ram_op_rc_MPORT_mask) begin
      ram_op_rc[ram_op_rc_MPORT_addr] <= ram_op_rc_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_addr[initvar] = _RAND_0[11:0];
  _RAND_1 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_dat_i[initvar] = _RAND_1[63:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_op_rw[initvar] = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_op_rs[initvar] = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_op_rc[initvar] = _RAND_4[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_5 = {1{`RANDOM}};
  maybe_full = _RAND_5[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Csr(
  input         clock,
  input         reset,
  output        io_csr_iss_exe_ready,
  input         io_csr_iss_exe_valid,
  input         io_csr_iss_exe_bits_fun_rw,
  input         io_csr_iss_exe_bits_fun_rs,
  input         io_csr_iss_exe_bits_fun_rc,
  input  [5:0]  io_csr_iss_exe_bits_param_rd0,
  input  [63:0] io_csr_iss_exe_bits_param_dat_op1,
  input  [63:0] io_csr_iss_exe_bits_param_dat_op2,
  input         io_csr_exe_iwb_ready,
  output        io_csr_exe_iwb_valid,
  output [5:0]  io_csr_exe_iwb_bits_rd0,
  output [63:0] io_csr_exe_iwb_bits_res,
  output        io_csr_addr_valid,
  output [11:0] io_csr_addr_bits,
  input         io_csr_data_valid,
  input  [63:0] io_csr_data_bits,
  input         io_csr_cmm_op_ready,
  output        io_csr_cmm_op_valid,
  output [11:0] io_csr_cmm_op_bits_addr,
  output [63:0] io_csr_cmm_op_bits_dat_i,
  output        io_csr_cmm_op_bits_op_rw,
  output        io_csr_cmm_op_bits_op_rs,
  output        io_csr_cmm_op_bits_op_rc,
  input         io_flush
);
  wire  csr_exe_iwb_fifo_clock; // @[Csr.scala 43:32]
  wire  csr_exe_iwb_fifo_reset; // @[Csr.scala 43:32]
  wire  csr_exe_iwb_fifo_io_enq_ready; // @[Csr.scala 43:32]
  wire  csr_exe_iwb_fifo_io_enq_valid; // @[Csr.scala 43:32]
  wire [5:0] csr_exe_iwb_fifo_io_enq_bits_rd0; // @[Csr.scala 43:32]
  wire [63:0] csr_exe_iwb_fifo_io_enq_bits_res; // @[Csr.scala 43:32]
  wire  csr_exe_iwb_fifo_io_deq_ready; // @[Csr.scala 43:32]
  wire  csr_exe_iwb_fifo_io_deq_valid; // @[Csr.scala 43:32]
  wire [5:0] csr_exe_iwb_fifo_io_deq_bits_rd0; // @[Csr.scala 43:32]
  wire [63:0] csr_exe_iwb_fifo_io_deq_bits_res; // @[Csr.scala 43:32]
  wire  csr_op_fifo_clock; // @[Csr.scala 47:27]
  wire  csr_op_fifo_reset; // @[Csr.scala 47:27]
  wire  csr_op_fifo_io_enq_ready; // @[Csr.scala 47:27]
  wire  csr_op_fifo_io_enq_valid; // @[Csr.scala 47:27]
  wire [11:0] csr_op_fifo_io_enq_bits_addr; // @[Csr.scala 47:27]
  wire [63:0] csr_op_fifo_io_enq_bits_dat_i; // @[Csr.scala 47:27]
  wire  csr_op_fifo_io_enq_bits_op_rw; // @[Csr.scala 47:27]
  wire  csr_op_fifo_io_enq_bits_op_rs; // @[Csr.scala 47:27]
  wire  csr_op_fifo_io_enq_bits_op_rc; // @[Csr.scala 47:27]
  wire  csr_op_fifo_io_deq_ready; // @[Csr.scala 47:27]
  wire  csr_op_fifo_io_deq_valid; // @[Csr.scala 47:27]
  wire [11:0] csr_op_fifo_io_deq_bits_addr; // @[Csr.scala 47:27]
  wire [63:0] csr_op_fifo_io_deq_bits_dat_i; // @[Csr.scala 47:27]
  wire  csr_op_fifo_io_deq_bits_op_rw; // @[Csr.scala 47:27]
  wire  csr_op_fifo_io_deq_bits_op_rs; // @[Csr.scala 47:27]
  wire  csr_op_fifo_io_deq_bits_op_rc; // @[Csr.scala 47:27]
  wire  dontWrite = io_csr_iss_exe_bits_param_dat_op1 == 64'h0 & (io_csr_iss_exe_bits_fun_rs |
    io_csr_iss_exe_bits_fun_rc); // @[Csr.scala 60:33]
  wire  _csr_op_fifo_io_enq_bits_op_rw_T = ~dontWrite; // @[Csr.scala 64:41]
  Queue_7 csr_exe_iwb_fifo ( // @[Csr.scala 43:32]
    .clock(csr_exe_iwb_fifo_clock),
    .reset(csr_exe_iwb_fifo_reset),
    .io_enq_ready(csr_exe_iwb_fifo_io_enq_ready),
    .io_enq_valid(csr_exe_iwb_fifo_io_enq_valid),
    .io_enq_bits_rd0(csr_exe_iwb_fifo_io_enq_bits_rd0),
    .io_enq_bits_res(csr_exe_iwb_fifo_io_enq_bits_res),
    .io_deq_ready(csr_exe_iwb_fifo_io_deq_ready),
    .io_deq_valid(csr_exe_iwb_fifo_io_deq_valid),
    .io_deq_bits_rd0(csr_exe_iwb_fifo_io_deq_bits_rd0),
    .io_deq_bits_res(csr_exe_iwb_fifo_io_deq_bits_res)
  );
  Queue_21 csr_op_fifo ( // @[Csr.scala 47:27]
    .clock(csr_op_fifo_clock),
    .reset(csr_op_fifo_reset),
    .io_enq_ready(csr_op_fifo_io_enq_ready),
    .io_enq_valid(csr_op_fifo_io_enq_valid),
    .io_enq_bits_addr(csr_op_fifo_io_enq_bits_addr),
    .io_enq_bits_dat_i(csr_op_fifo_io_enq_bits_dat_i),
    .io_enq_bits_op_rw(csr_op_fifo_io_enq_bits_op_rw),
    .io_enq_bits_op_rs(csr_op_fifo_io_enq_bits_op_rs),
    .io_enq_bits_op_rc(csr_op_fifo_io_enq_bits_op_rc),
    .io_deq_ready(csr_op_fifo_io_deq_ready),
    .io_deq_valid(csr_op_fifo_io_deq_valid),
    .io_deq_bits_addr(csr_op_fifo_io_deq_bits_addr),
    .io_deq_bits_dat_i(csr_op_fifo_io_deq_bits_dat_i),
    .io_deq_bits_op_rw(csr_op_fifo_io_deq_bits_op_rw),
    .io_deq_bits_op_rs(csr_op_fifo_io_deq_bits_op_rs),
    .io_deq_bits_op_rc(csr_op_fifo_io_deq_bits_op_rc)
  );
  assign io_csr_iss_exe_ready = csr_exe_iwb_fifo_io_enq_ready & csr_exe_iwb_fifo_io_enq_valid; // @[Decoupled.scala 52:35]
  assign io_csr_exe_iwb_valid = csr_exe_iwb_fifo_io_deq_valid; // @[Csr.scala 44:18]
  assign io_csr_exe_iwb_bits_rd0 = csr_exe_iwb_fifo_io_deq_bits_rd0; // @[Csr.scala 44:18]
  assign io_csr_exe_iwb_bits_res = csr_exe_iwb_fifo_io_deq_bits_res; // @[Csr.scala 44:18]
  assign io_csr_addr_valid = io_csr_iss_exe_valid; // @[Csr.scala 69:21]
  assign io_csr_addr_bits = io_csr_iss_exe_bits_param_dat_op2[11:0]; // @[Csr.scala 68:21]
  assign io_csr_cmm_op_valid = csr_op_fifo_io_deq_valid; // @[Csr.scala 48:17]
  assign io_csr_cmm_op_bits_addr = csr_op_fifo_io_deq_bits_addr; // @[Csr.scala 48:17]
  assign io_csr_cmm_op_bits_dat_i = csr_op_fifo_io_deq_bits_dat_i; // @[Csr.scala 48:17]
  assign io_csr_cmm_op_bits_op_rw = csr_op_fifo_io_deq_bits_op_rw; // @[Csr.scala 48:17]
  assign io_csr_cmm_op_bits_op_rs = csr_op_fifo_io_deq_bits_op_rs; // @[Csr.scala 48:17]
  assign io_csr_cmm_op_bits_op_rc = csr_op_fifo_io_deq_bits_op_rc; // @[Csr.scala 48:17]
  assign csr_exe_iwb_fifo_clock = clock;
  assign csr_exe_iwb_fifo_reset = reset | io_flush; // @[Csr.scala 45:42]
  assign csr_exe_iwb_fifo_io_enq_valid = io_csr_iss_exe_valid & csr_op_fifo_io_enq_ready & io_csr_data_valid; // @[Csr.scala 74:84]
  assign csr_exe_iwb_fifo_io_enq_bits_rd0 = io_csr_iss_exe_bits_param_rd0; // @[Csr.scala 76:36]
  assign csr_exe_iwb_fifo_io_enq_bits_res = io_csr_data_bits; // @[Csr.scala 75:36]
  assign csr_exe_iwb_fifo_io_deq_ready = io_csr_exe_iwb_ready; // @[Csr.scala 44:18]
  assign csr_op_fifo_clock = clock;
  assign csr_op_fifo_reset = reset | io_flush; // @[Csr.scala 49:37]
  assign csr_op_fifo_io_enq_valid = csr_exe_iwb_fifo_io_enq_ready & csr_exe_iwb_fifo_io_enq_valid; // @[Decoupled.scala 52:35]
  assign csr_op_fifo_io_enq_bits_addr = io_csr_iss_exe_bits_param_dat_op2[11:0]; // @[Csr.scala 62:32]
  assign csr_op_fifo_io_enq_bits_dat_i = io_csr_iss_exe_bits_param_dat_op1; // @[Csr.scala 63:33]
  assign csr_op_fifo_io_enq_bits_op_rw = io_csr_iss_exe_bits_fun_rw & ~dontWrite; // @[Csr.scala 64:39]
  assign csr_op_fifo_io_enq_bits_op_rs = io_csr_iss_exe_bits_fun_rs & _csr_op_fifo_io_enq_bits_op_rw_T; // @[Csr.scala 65:39]
  assign csr_op_fifo_io_enq_bits_op_rc = io_csr_iss_exe_bits_fun_rc & _csr_op_fifo_io_enq_bits_op_rw_T; // @[Csr.scala 66:39]
  assign csr_op_fifo_io_deq_ready = io_csr_cmm_op_ready; // @[Csr.scala 48:17]
endmodule
module NorMultiplier(
  output         io_enq_ready,
  input          io_enq_valid,
  input          io_enq_bits_fun_mul,
  input          io_enq_bits_fun_mulh,
  input          io_enq_bits_fun_mulhsu,
  input          io_enq_bits_fun_mulhu,
  input          io_enq_bits_fun_mulw,
  input  [5:0]   io_enq_bits_param_rd0,
  input          io_deq_ready,
  output         io_deq_valid,
  output         io_deq_bits_fun_mul,
  output         io_deq_bits_fun_mulh,
  output         io_deq_bits_fun_mulhsu,
  output         io_deq_bits_fun_mulhu,
  output         io_deq_bits_fun_mulw,
  output [5:0]   io_deq_bits_param_rd0,
  input  [64:0]  io_op1,
  input  [64:0]  io_op2,
  output [129:0] io_res
);
  assign io_enq_ready = io_deq_ready; // @[Mul.scala 418:10]
  assign io_deq_valid = io_enq_valid; // @[Mul.scala 418:10]
  assign io_deq_bits_fun_mul = io_enq_bits_fun_mul; // @[Mul.scala 418:10]
  assign io_deq_bits_fun_mulh = io_enq_bits_fun_mulh; // @[Mul.scala 418:10]
  assign io_deq_bits_fun_mulhsu = io_enq_bits_fun_mulhsu; // @[Mul.scala 418:10]
  assign io_deq_bits_fun_mulhu = io_enq_bits_fun_mulhu; // @[Mul.scala 418:10]
  assign io_deq_bits_fun_mulw = io_enq_bits_fun_mulw; // @[Mul.scala 418:10]
  assign io_deq_bits_param_rd0 = io_enq_bits_param_rd0; // @[Mul.scala 418:10]
  assign io_res = $signed(io_op1) * $signed(io_op2); // @[Mul.scala 419:45]
endmodule
module NorDivider(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input         io_enq_bits_fun_div,
  input         io_enq_bits_fun_divu,
  input         io_enq_bits_fun_rem,
  input         io_enq_bits_fun_remu,
  input         io_enq_bits_fun_divw,
  input         io_enq_bits_fun_divuw,
  input         io_enq_bits_fun_remw,
  input         io_enq_bits_fun_remuw,
  input  [5:0]  io_enq_bits_param_rd0,
  input  [63:0] io_enq_bits_param_dat_op1,
  input  [63:0] io_enq_bits_param_dat_op2,
  input         io_deq_ready,
  output        io_deq_valid,
  output        io_deq_bits_fun_div,
  output        io_deq_bits_fun_divu,
  output        io_deq_bits_fun_rem,
  output        io_deq_bits_fun_remu,
  output        io_deq_bits_fun_divw,
  output        io_deq_bits_fun_divuw,
  output        io_deq_bits_fun_remw,
  output        io_deq_bits_fun_remuw,
  output [5:0]  io_deq_bits_param_rd0,
  output [63:0] io_deq_bits_param_dat_op1,
  output [63:0] io_deq_bits_param_dat_op2,
  input  [63:0] io_op1,
  input  [63:0] io_op2,
  output [63:0] io_quo,
  output [63:0] io_rem,
  input         io_flush
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [127:0] _RAND_2;
  reg [63:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [63:0] _RAND_13;
  reg [63:0] _RAND_14;
`endif // RANDOMIZE_REG_INIT
  reg  isDivBusy; // @[Mul.scala 582:26]
  reg [6:0] cnt; // @[Mul.scala 584:20]
  wire  _T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire [6:0] _cnt_T_1 = cnt + 7'h1; // @[Mul.scala 588:16]
  wire  _T_4 = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_2 = _T | isDivBusy; // @[Mul.scala 598:30 599:15 582:26]
  reg [127:0] dividend; // @[Mul.scala 604:21]
  reg [63:0] divisor; // @[Mul.scala 605:20]
  wire [128:0] dividend_shift = {dividend, 1'h0}; // @[Mul.scala 607:33]
  wire  div_cmp = dividend_shift[127:64] >= divisor; // @[Mul.scala 608:41]
  wire [63:0] _divided_T_2 = dividend_shift[127:64] - divisor; // @[Mul.scala 612:35]
  wire [127:0] _divided_T_4 = {_divided_T_2,dividend_shift[63:1],1'h1}; // @[Cat.scala 33:92]
  wire [128:0] divided = div_cmp ? {{1'd0}, _divided_T_4} : dividend_shift; // @[Mul.scala 610:8]
  wire [128:0] _GEN_4 = _T ? {{65'd0}, io_op1} : divided; // @[Mul.scala 616:23 617:14 621:14]
  reg  pendingInfo_fun_div; // @[Reg.scala 19:16]
  reg  pendingInfo_fun_divu; // @[Reg.scala 19:16]
  reg  pendingInfo_fun_rem; // @[Reg.scala 19:16]
  reg  pendingInfo_fun_remu; // @[Reg.scala 19:16]
  reg  pendingInfo_fun_divw; // @[Reg.scala 19:16]
  reg  pendingInfo_fun_divuw; // @[Reg.scala 19:16]
  reg  pendingInfo_fun_remw; // @[Reg.scala 19:16]
  reg  pendingInfo_fun_remuw; // @[Reg.scala 19:16]
  reg [5:0] pendingInfo_param_rd0; // @[Reg.scala 19:16]
  reg [63:0] pendingInfo_param_dat_op1; // @[Reg.scala 19:16]
  reg [63:0] pendingInfo_param_dat_op2; // @[Reg.scala 19:16]
  assign io_enq_ready = ~isDivBusy; // @[Mul.scala 594:19]
  assign io_deq_valid = isDivBusy & cnt == 7'h40; // @[Mul.scala 626:29]
  assign io_deq_bits_fun_div = pendingInfo_fun_div; // @[Mul.scala 628:15]
  assign io_deq_bits_fun_divu = pendingInfo_fun_divu; // @[Mul.scala 628:15]
  assign io_deq_bits_fun_rem = pendingInfo_fun_rem; // @[Mul.scala 628:15]
  assign io_deq_bits_fun_remu = pendingInfo_fun_remu; // @[Mul.scala 628:15]
  assign io_deq_bits_fun_divw = pendingInfo_fun_divw; // @[Mul.scala 628:15]
  assign io_deq_bits_fun_divuw = pendingInfo_fun_divuw; // @[Mul.scala 628:15]
  assign io_deq_bits_fun_remw = pendingInfo_fun_remw; // @[Mul.scala 628:15]
  assign io_deq_bits_fun_remuw = pendingInfo_fun_remuw; // @[Mul.scala 628:15]
  assign io_deq_bits_param_rd0 = pendingInfo_param_rd0; // @[Mul.scala 628:15]
  assign io_deq_bits_param_dat_op1 = pendingInfo_param_dat_op1; // @[Mul.scala 628:15]
  assign io_deq_bits_param_dat_op2 = pendingInfo_param_dat_op2; // @[Mul.scala 628:15]
  assign io_quo = dividend[63:0]; // @[Mul.scala 629:21]
  assign io_rem = dividend[127:64]; // @[Mul.scala 630:21]
  always @(posedge clock) begin
    if (reset) begin // @[Mul.scala 582:26]
      isDivBusy <= 1'h0; // @[Mul.scala 582:26]
    end else if (_T_4 | io_flush) begin // @[Mul.scala 596:34]
      isDivBusy <= 1'h0; // @[Mul.scala 597:15]
    end else begin
      isDivBusy <= _GEN_2;
    end
    if (reset) begin // @[Mul.scala 584:20]
      cnt <= 7'h0; // @[Mul.scala 584:20]
    end else if (_T | io_flush) begin // @[Mul.scala 585:34]
      cnt <= 7'h0; // @[Mul.scala 586:9]
    end else if (isDivBusy & cnt != 7'h40) begin // @[Mul.scala 587:43]
      cnt <= _cnt_T_1; // @[Mul.scala 588:9]
    end
    dividend <= _GEN_4[127:0];
    if (_T) begin // @[Mul.scala 616:23]
      divisor <= io_op2; // @[Mul.scala 618:13]
    end
    if (_T) begin // @[Reg.scala 20:18]
      pendingInfo_fun_div <= io_enq_bits_fun_div; // @[Reg.scala 20:22]
    end
    if (_T) begin // @[Reg.scala 20:18]
      pendingInfo_fun_divu <= io_enq_bits_fun_divu; // @[Reg.scala 20:22]
    end
    if (_T) begin // @[Reg.scala 20:18]
      pendingInfo_fun_rem <= io_enq_bits_fun_rem; // @[Reg.scala 20:22]
    end
    if (_T) begin // @[Reg.scala 20:18]
      pendingInfo_fun_remu <= io_enq_bits_fun_remu; // @[Reg.scala 20:22]
    end
    if (_T) begin // @[Reg.scala 20:18]
      pendingInfo_fun_divw <= io_enq_bits_fun_divw; // @[Reg.scala 20:22]
    end
    if (_T) begin // @[Reg.scala 20:18]
      pendingInfo_fun_divuw <= io_enq_bits_fun_divuw; // @[Reg.scala 20:22]
    end
    if (_T) begin // @[Reg.scala 20:18]
      pendingInfo_fun_remw <= io_enq_bits_fun_remw; // @[Reg.scala 20:22]
    end
    if (_T) begin // @[Reg.scala 20:18]
      pendingInfo_fun_remuw <= io_enq_bits_fun_remuw; // @[Reg.scala 20:22]
    end
    if (_T) begin // @[Reg.scala 20:18]
      pendingInfo_param_rd0 <= io_enq_bits_param_rd0; // @[Reg.scala 20:22]
    end
    if (_T) begin // @[Reg.scala 20:18]
      pendingInfo_param_dat_op1 <= io_enq_bits_param_dat_op1; // @[Reg.scala 20:22]
    end
    if (_T) begin // @[Reg.scala 20:18]
      pendingInfo_param_dat_op2 <= io_enq_bits_param_dat_op2; // @[Reg.scala 20:22]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  isDivBusy = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  cnt = _RAND_1[6:0];
  _RAND_2 = {4{`RANDOM}};
  dividend = _RAND_2[127:0];
  _RAND_3 = {2{`RANDOM}};
  divisor = _RAND_3[63:0];
  _RAND_4 = {1{`RANDOM}};
  pendingInfo_fun_div = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  pendingInfo_fun_divu = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  pendingInfo_fun_rem = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  pendingInfo_fun_remu = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  pendingInfo_fun_divw = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  pendingInfo_fun_divuw = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  pendingInfo_fun_remw = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  pendingInfo_fun_remuw = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  pendingInfo_param_rd0 = _RAND_12[5:0];
  _RAND_13 = {2{`RANDOM}};
  pendingInfo_param_dat_op1 = _RAND_13[63:0];
  _RAND_14 = {2{`RANDOM}};
  pendingInfo_param_dat_op2 = _RAND_14[63:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Arbiter_8(
  output        io_in_0_ready,
  input         io_in_0_valid,
  input  [5:0]  io_in_0_bits_rd0,
  input  [63:0] io_in_0_bits_res,
  output        io_in_1_ready,
  input         io_in_1_valid,
  input  [5:0]  io_in_1_bits_rd0,
  input  [63:0] io_in_1_bits_res,
  input         io_out_ready,
  output        io_out_valid,
  output [5:0]  io_out_bits_rd0,
  output [63:0] io_out_bits_res
);
  wire  grant_1 = ~io_in_0_valid; // @[Arbiter.scala 45:78]
  assign io_in_0_ready = io_out_ready; // @[Arbiter.scala 146:19]
  assign io_in_1_ready = grant_1 & io_out_ready; // @[Arbiter.scala 146:19]
  assign io_out_valid = ~grant_1 | io_in_1_valid; // @[Arbiter.scala 147:31]
  assign io_out_bits_rd0 = io_in_0_valid ? io_in_0_bits_rd0 : io_in_1_bits_rd0; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_res = io_in_0_valid ? io_in_0_bits_res : io_in_1_bits_res; // @[Arbiter.scala 136:15 138:26 140:19]
endmodule
module Dividor(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input         io_enq_bits_fun_div,
  input         io_enq_bits_fun_divu,
  input         io_enq_bits_fun_rem,
  input         io_enq_bits_fun_remu,
  input         io_enq_bits_fun_divw,
  input         io_enq_bits_fun_divuw,
  input         io_enq_bits_fun_remw,
  input         io_enq_bits_fun_remuw,
  input  [5:0]  io_enq_bits_param_rd0,
  input  [63:0] io_enq_bits_param_dat_op1,
  input  [63:0] io_enq_bits_param_dat_op2,
  input         io_deq_ready,
  output        io_deq_valid,
  output [5:0]  io_deq_bits_rd0,
  output [63:0] io_deq_bits_res,
  input         io_flush
);
  wire  algDivider_clock; // @[Mul.scala 507:26]
  wire  algDivider_reset; // @[Mul.scala 507:26]
  wire  algDivider_io_enq_ready; // @[Mul.scala 507:26]
  wire  algDivider_io_enq_valid; // @[Mul.scala 507:26]
  wire  algDivider_io_enq_bits_fun_div; // @[Mul.scala 507:26]
  wire  algDivider_io_enq_bits_fun_divu; // @[Mul.scala 507:26]
  wire  algDivider_io_enq_bits_fun_rem; // @[Mul.scala 507:26]
  wire  algDivider_io_enq_bits_fun_remu; // @[Mul.scala 507:26]
  wire  algDivider_io_enq_bits_fun_divw; // @[Mul.scala 507:26]
  wire  algDivider_io_enq_bits_fun_divuw; // @[Mul.scala 507:26]
  wire  algDivider_io_enq_bits_fun_remw; // @[Mul.scala 507:26]
  wire  algDivider_io_enq_bits_fun_remuw; // @[Mul.scala 507:26]
  wire [5:0] algDivider_io_enq_bits_param_rd0; // @[Mul.scala 507:26]
  wire [63:0] algDivider_io_enq_bits_param_dat_op1; // @[Mul.scala 507:26]
  wire [63:0] algDivider_io_enq_bits_param_dat_op2; // @[Mul.scala 507:26]
  wire  algDivider_io_deq_ready; // @[Mul.scala 507:26]
  wire  algDivider_io_deq_valid; // @[Mul.scala 507:26]
  wire  algDivider_io_deq_bits_fun_div; // @[Mul.scala 507:26]
  wire  algDivider_io_deq_bits_fun_divu; // @[Mul.scala 507:26]
  wire  algDivider_io_deq_bits_fun_rem; // @[Mul.scala 507:26]
  wire  algDivider_io_deq_bits_fun_remu; // @[Mul.scala 507:26]
  wire  algDivider_io_deq_bits_fun_divw; // @[Mul.scala 507:26]
  wire  algDivider_io_deq_bits_fun_divuw; // @[Mul.scala 507:26]
  wire  algDivider_io_deq_bits_fun_remw; // @[Mul.scala 507:26]
  wire  algDivider_io_deq_bits_fun_remuw; // @[Mul.scala 507:26]
  wire [5:0] algDivider_io_deq_bits_param_rd0; // @[Mul.scala 507:26]
  wire [63:0] algDivider_io_deq_bits_param_dat_op1; // @[Mul.scala 507:26]
  wire [63:0] algDivider_io_deq_bits_param_dat_op2; // @[Mul.scala 507:26]
  wire [63:0] algDivider_io_op1; // @[Mul.scala 507:26]
  wire [63:0] algDivider_io_op2; // @[Mul.scala 507:26]
  wire [63:0] algDivider_io_quo; // @[Mul.scala 507:26]
  wire [63:0] algDivider_io_rem; // @[Mul.scala 507:26]
  wire  algDivider_io_flush; // @[Mul.scala 507:26]
  wire  divRtnArb_io_in_0_ready; // @[Mul.scala 548:25]
  wire  divRtnArb_io_in_0_valid; // @[Mul.scala 548:25]
  wire [5:0] divRtnArb_io_in_0_bits_rd0; // @[Mul.scala 548:25]
  wire [63:0] divRtnArb_io_in_0_bits_res; // @[Mul.scala 548:25]
  wire  divRtnArb_io_in_1_ready; // @[Mul.scala 548:25]
  wire  divRtnArb_io_in_1_valid; // @[Mul.scala 548:25]
  wire [5:0] divRtnArb_io_in_1_bits_rd0; // @[Mul.scala 548:25]
  wire [63:0] divRtnArb_io_in_1_bits_res; // @[Mul.scala 548:25]
  wire  divRtnArb_io_out_ready; // @[Mul.scala 548:25]
  wire  divRtnArb_io_out_valid; // @[Mul.scala 548:25]
  wire [5:0] divRtnArb_io_out_bits_rd0; // @[Mul.scala 548:25]
  wire [63:0] divRtnArb_io_out_bits_res; // @[Mul.scala 548:25]
  wire  _T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _T_7 = io_enq_bits_fun_div | io_enq_bits_fun_divu | io_enq_bits_fun_divw | io_enq_bits_fun_divuw |
    io_enq_bits_fun_rem | io_enq_bits_fun_remu | io_enq_bits_fun_remw | io_enq_bits_fun_remuw; // @[riscv_isa.scala 204:61]
  wire  is32wPre = io_enq_bits_fun_divw | io_enq_bits_fun_divuw | io_enq_bits_fun_remw | io_enq_bits_fun_remuw; // @[riscv_isa.scala 199:39]
  wire  isUsiPre = io_enq_bits_fun_divu | io_enq_bits_fun_remu | io_enq_bits_fun_divuw | io_enq_bits_fun_remuw; // @[riscv_isa.scala 200:39]
  wire [63:0] _dividend_load_T_1 = is32wPre ? {{32'd0}, io_enq_bits_param_dat_op1[31:0]} : io_enq_bits_param_dat_op1; // @[Mul.scala 449:12]
  wire [31:0] _dividend_load_T_4 = ~io_enq_bits_param_dat_op1[31:0]; // @[Mul.scala 452:44]
  wire [31:0] _dividend_load_T_6 = _dividend_load_T_4 + 32'h1; // @[Mul.scala 452:58]
  wire [31:0] _dividend_load_T_8 = io_enq_bits_param_dat_op1[31] ? _dividend_load_T_6 : io_enq_bits_param_dat_op1[31:0]; // @[Mul.scala 452:30]
  wire [63:0] _dividend_load_T_9 = {32'h0,_dividend_load_T_8}; // @[Cat.scala 33:92]
  wire [63:0] _dividend_load_T_11 = ~io_enq_bits_param_dat_op1; // @[Mul.scala 453:29]
  wire [63:0] _dividend_load_T_13 = _dividend_load_T_11 + 64'h1; // @[Mul.scala 453:37]
  wire [63:0] _dividend_load_T_14 = io_enq_bits_param_dat_op1[63] ? _dividend_load_T_13 : io_enq_bits_param_dat_op1; // @[Mul.scala 453:14]
  wire [63:0] _dividend_load_T_15 = is32wPre ? _dividend_load_T_9 : _dividend_load_T_14; // @[Mul.scala 450:12]
  wire [63:0] _divisor_load_T_1 = is32wPre ? {{32'd0}, io_enq_bits_param_dat_op2[31:0]} : io_enq_bits_param_dat_op2; // @[Mul.scala 461:10]
  wire [31:0] _divisor_load_T_5 = ~io_enq_bits_param_dat_op2[31:0]; // @[Mul.scala 464:46]
  wire [31:0] _divisor_load_T_7 = _divisor_load_T_5 + 32'h1; // @[Mul.scala 464:60]
  wire [31:0] _divisor_load_T_9 = io_enq_bits_param_dat_op2[31] ? _divisor_load_T_7 : io_enq_bits_param_dat_op2[31:0]; // @[Mul.scala 464:32]
  wire [63:0] _divisor_load_T_10 = {32'h0,_divisor_load_T_9}; // @[Cat.scala 33:92]
  wire [63:0] _divisor_load_T_12 = ~io_enq_bits_param_dat_op2; // @[Mul.scala 465:27]
  wire [63:0] _divisor_load_T_14 = _divisor_load_T_12 + 64'h1; // @[Mul.scala 465:35]
  wire [63:0] _divisor_load_T_15 = io_enq_bits_param_dat_op2[63] ? _divisor_load_T_14 : io_enq_bits_param_dat_op2; // @[Mul.scala 465:12]
  wire [63:0] _divisor_load_T_16 = is32wPre ? _divisor_load_T_10 : _divisor_load_T_15; // @[Mul.scala 462:10]
  wire  isDivByZero = io_enq_bits_param_dat_op2 == 64'h0; // @[Mul.scala 480:29]
  wire  _isDivOverflow_T_10 = is32wPre & (io_enq_bits_param_dat_op1[31] & io_enq_bits_param_dat_op1[30:0] == 31'h0) & &
    io_enq_bits_param_dat_op2[31:0]; // @[Mul.scala 483:76]
  wire  _isDivOverflow_T_21 = ~is32wPre & (io_enq_bits_param_dat_op1[63] & io_enq_bits_param_dat_op1[62:0] == 63'h0) & &
    io_enq_bits_param_dat_op2; // @[Mul.scala 485:76]
  wire  _isDivOverflow_T_22 = _isDivOverflow_T_10 | _isDivOverflow_T_21; // @[Mul.scala 484:17]
  wire  isDivOverflow = ~isUsiPre & _isDivOverflow_T_22; // @[Mul.scala 481:33]
  wire  divBypass = isDivByZero | isDivOverflow; // @[Mul.scala 487:31]
  wire [31:0] _remaDZRes_T_3 = io_enq_bits_param_dat_op1[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _remaDZRes_T_4 = {_remaDZRes_T_3,io_enq_bits_param_dat_op1[31:0]}; // @[Cat.scala 33:92]
  wire [63:0] remaDZRes = is32wPre ? _remaDZRes_T_4 : io_enq_bits_param_dat_op1; // @[Mul.scala 490:22]
  wire [63:0] quotOFRes = is32wPre ? 64'hffffffff80000000 : 64'h8000000000000000; // @[Mul.scala 491:22]
  wire [63:0] _byPassQuo_T = isDivByZero ? 64'hffffffffffffffff : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _byPassQuo_T_1 = isDivOverflow ? quotOFRes : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] byPassQuo = _byPassQuo_T | _byPassQuo_T_1; // @[Mux.scala 27:73]
  wire [63:0] byPassRem = isDivByZero ? remaDZRes : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _byPassRes_T = io_enq_bits_fun_div ? byPassQuo : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _byPassRes_T_1 = io_enq_bits_fun_divu ? byPassQuo : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _byPassRes_T_2 = io_enq_bits_fun_divw ? byPassQuo : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _byPassRes_T_3 = io_enq_bits_fun_divuw ? byPassQuo : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _byPassRes_T_4 = io_enq_bits_fun_remw ? byPassRem : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _byPassRes_T_5 = io_enq_bits_fun_remuw ? byPassRem : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _byPassRes_T_6 = io_enq_bits_fun_rem ? byPassRem : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _byPassRes_T_7 = io_enq_bits_fun_remu ? byPassRem : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _byPassRes_T_8 = _byPassRes_T | _byPassRes_T_1; // @[Mux.scala 27:73]
  wire [63:0] _byPassRes_T_9 = _byPassRes_T_8 | _byPassRes_T_2; // @[Mux.scala 27:73]
  wire [63:0] _byPassRes_T_10 = _byPassRes_T_9 | _byPassRes_T_3; // @[Mux.scala 27:73]
  wire [63:0] _byPassRes_T_11 = _byPassRes_T_10 | _byPassRes_T_4; // @[Mux.scala 27:73]
  wire [63:0] _byPassRes_T_12 = _byPassRes_T_11 | _byPassRes_T_5; // @[Mux.scala 27:73]
  wire [63:0] _byPassRes_T_13 = _byPassRes_T_12 | _byPassRes_T_6; // @[Mux.scala 27:73]
  wire  is32wPost = algDivider_io_deq_bits_fun_divw | algDivider_io_deq_bits_fun_divuw | algDivider_io_deq_bits_fun_remw
     | algDivider_io_deq_bits_fun_remuw; // @[riscv_isa.scala 199:39]
  wire  isUsiPost = algDivider_io_deq_bits_fun_divu | algDivider_io_deq_bits_fun_remu | algDivider_io_deq_bits_fun_divuw
     | algDivider_io_deq_bits_fun_remuw; // @[riscv_isa.scala 200:39]
  wire  _dividend_sign_T_4 = is32wPost ? algDivider_io_deq_bits_param_dat_op1[31] : algDivider_io_deq_bits_param_dat_op1
    [63]; // @[Mul.scala 525:50]
  wire  dividend_sign = isUsiPost ? 1'h0 : _dividend_sign_T_4; // @[Mul.scala 525:26]
  wire  _divisor_sign_T_4 = is32wPost ? algDivider_io_deq_bits_param_dat_op2[31] : algDivider_io_deq_bits_param_dat_op2[
    63]; // @[Mul.scala 526:50]
  wire  divisor_sign = isUsiPost ? 1'h0 : _divisor_sign_T_4; // @[Mul.scala 526:26]
  wire [63:0] _quot_sign_corrcet_T_1 = ~algDivider_io_quo; // @[Mul.scala 529:37]
  wire [63:0] _quot_sign_corrcet_T_3 = _quot_sign_corrcet_T_1 + 64'h1; // @[Mul.scala 529:56]
  wire [63:0] quot_sign_corrcet = dividend_sign ^ divisor_sign ? _quot_sign_corrcet_T_3 : algDivider_io_quo; // @[Mul.scala 529:8]
  wire [63:0] _rema_sign_corrcet_T = ~algDivider_io_rem; // @[Mul.scala 532:24]
  wire [63:0] _rema_sign_corrcet_T_2 = _rema_sign_corrcet_T + 64'h1; // @[Mul.scala 532:43]
  wire [63:0] rema_sign_corrcet = dividend_sign ? _rema_sign_corrcet_T_2 : algDivider_io_rem; // @[Mul.scala 532:8]
  wire [31:0] _divRes_T_3 = quot_sign_corrcet[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _divRes_T_4 = {_divRes_T_3,quot_sign_corrcet[31:0]}; // @[Cat.scala 33:92]
  wire [31:0] _divRes_T_13 = rema_sign_corrcet[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _divRes_T_14 = {_divRes_T_13,rema_sign_corrcet[31:0]}; // @[Cat.scala 33:92]
  wire [63:0] _divRes_T_20 = algDivider_io_deq_bits_fun_div ? quot_sign_corrcet : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _divRes_T_21 = algDivider_io_deq_bits_fun_divu ? quot_sign_corrcet : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _divRes_T_22 = algDivider_io_deq_bits_fun_rem ? rema_sign_corrcet : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _divRes_T_23 = algDivider_io_deq_bits_fun_remu ? rema_sign_corrcet : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _divRes_T_24 = algDivider_io_deq_bits_fun_divw ? _divRes_T_4 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _divRes_T_25 = algDivider_io_deq_bits_fun_divuw ? _divRes_T_4 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _divRes_T_26 = algDivider_io_deq_bits_fun_remw ? _divRes_T_14 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _divRes_T_27 = algDivider_io_deq_bits_fun_remuw ? _divRes_T_14 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _divRes_T_28 = _divRes_T_20 | _divRes_T_21; // @[Mux.scala 27:73]
  wire [63:0] _divRes_T_29 = _divRes_T_28 | _divRes_T_22; // @[Mux.scala 27:73]
  wire [63:0] _divRes_T_30 = _divRes_T_29 | _divRes_T_23; // @[Mux.scala 27:73]
  wire [63:0] _divRes_T_31 = _divRes_T_30 | _divRes_T_24; // @[Mux.scala 27:73]
  wire [63:0] _divRes_T_32 = _divRes_T_31 | _divRes_T_25; // @[Mux.scala 27:73]
  wire [63:0] _divRes_T_33 = _divRes_T_32 | _divRes_T_26; // @[Mux.scala 27:73]
  NorDivider algDivider ( // @[Mul.scala 507:26]
    .clock(algDivider_clock),
    .reset(algDivider_reset),
    .io_enq_ready(algDivider_io_enq_ready),
    .io_enq_valid(algDivider_io_enq_valid),
    .io_enq_bits_fun_div(algDivider_io_enq_bits_fun_div),
    .io_enq_bits_fun_divu(algDivider_io_enq_bits_fun_divu),
    .io_enq_bits_fun_rem(algDivider_io_enq_bits_fun_rem),
    .io_enq_bits_fun_remu(algDivider_io_enq_bits_fun_remu),
    .io_enq_bits_fun_divw(algDivider_io_enq_bits_fun_divw),
    .io_enq_bits_fun_divuw(algDivider_io_enq_bits_fun_divuw),
    .io_enq_bits_fun_remw(algDivider_io_enq_bits_fun_remw),
    .io_enq_bits_fun_remuw(algDivider_io_enq_bits_fun_remuw),
    .io_enq_bits_param_rd0(algDivider_io_enq_bits_param_rd0),
    .io_enq_bits_param_dat_op1(algDivider_io_enq_bits_param_dat_op1),
    .io_enq_bits_param_dat_op2(algDivider_io_enq_bits_param_dat_op2),
    .io_deq_ready(algDivider_io_deq_ready),
    .io_deq_valid(algDivider_io_deq_valid),
    .io_deq_bits_fun_div(algDivider_io_deq_bits_fun_div),
    .io_deq_bits_fun_divu(algDivider_io_deq_bits_fun_divu),
    .io_deq_bits_fun_rem(algDivider_io_deq_bits_fun_rem),
    .io_deq_bits_fun_remu(algDivider_io_deq_bits_fun_remu),
    .io_deq_bits_fun_divw(algDivider_io_deq_bits_fun_divw),
    .io_deq_bits_fun_divuw(algDivider_io_deq_bits_fun_divuw),
    .io_deq_bits_fun_remw(algDivider_io_deq_bits_fun_remw),
    .io_deq_bits_fun_remuw(algDivider_io_deq_bits_fun_remuw),
    .io_deq_bits_param_rd0(algDivider_io_deq_bits_param_rd0),
    .io_deq_bits_param_dat_op1(algDivider_io_deq_bits_param_dat_op1),
    .io_deq_bits_param_dat_op2(algDivider_io_deq_bits_param_dat_op2),
    .io_op1(algDivider_io_op1),
    .io_op2(algDivider_io_op2),
    .io_quo(algDivider_io_quo),
    .io_rem(algDivider_io_rem),
    .io_flush(algDivider_io_flush)
  );
  Arbiter_8 divRtnArb ( // @[Mul.scala 548:25]
    .io_in_0_ready(divRtnArb_io_in_0_ready),
    .io_in_0_valid(divRtnArb_io_in_0_valid),
    .io_in_0_bits_rd0(divRtnArb_io_in_0_bits_rd0),
    .io_in_0_bits_res(divRtnArb_io_in_0_bits_res),
    .io_in_1_ready(divRtnArb_io_in_1_ready),
    .io_in_1_valid(divRtnArb_io_in_1_valid),
    .io_in_1_bits_rd0(divRtnArb_io_in_1_bits_rd0),
    .io_in_1_bits_res(divRtnArb_io_in_1_bits_res),
    .io_out_ready(divRtnArb_io_out_ready),
    .io_out_valid(divRtnArb_io_out_valid),
    .io_out_bits_rd0(divRtnArb_io_out_bits_rd0),
    .io_out_bits_res(divRtnArb_io_out_bits_res)
  );
  assign io_enq_ready = divBypass ? divRtnArb_io_in_1_ready : algDivider_io_enq_ready; // @[Mul.scala 559:22]
  assign io_deq_valid = divRtnArb_io_out_valid; // @[Mul.scala 560:10]
  assign io_deq_bits_rd0 = divRtnArb_io_out_bits_rd0; // @[Mul.scala 560:10]
  assign io_deq_bits_res = divRtnArb_io_out_bits_res; // @[Mul.scala 560:10]
  assign algDivider_clock = clock;
  assign algDivider_reset = reset;
  assign algDivider_io_enq_valid = io_enq_valid & ~divBypass; // @[Mul.scala 509:45]
  assign algDivider_io_enq_bits_fun_div = io_enq_bits_fun_div; // @[Mul.scala 510:29]
  assign algDivider_io_enq_bits_fun_divu = io_enq_bits_fun_divu; // @[Mul.scala 510:29]
  assign algDivider_io_enq_bits_fun_rem = io_enq_bits_fun_rem; // @[Mul.scala 510:29]
  assign algDivider_io_enq_bits_fun_remu = io_enq_bits_fun_remu; // @[Mul.scala 510:29]
  assign algDivider_io_enq_bits_fun_divw = io_enq_bits_fun_divw; // @[Mul.scala 510:29]
  assign algDivider_io_enq_bits_fun_divuw = io_enq_bits_fun_divuw; // @[Mul.scala 510:29]
  assign algDivider_io_enq_bits_fun_remw = io_enq_bits_fun_remw; // @[Mul.scala 510:29]
  assign algDivider_io_enq_bits_fun_remuw = io_enq_bits_fun_remuw; // @[Mul.scala 510:29]
  assign algDivider_io_enq_bits_param_rd0 = io_enq_bits_param_rd0; // @[Mul.scala 510:29]
  assign algDivider_io_enq_bits_param_dat_op1 = io_enq_bits_param_dat_op1; // @[Mul.scala 510:29]
  assign algDivider_io_enq_bits_param_dat_op2 = io_enq_bits_param_dat_op2; // @[Mul.scala 510:29]
  assign algDivider_io_deq_ready = divRtnArb_io_in_0_ready; // @[Mul.scala 557:28]
  assign algDivider_io_op1 = isUsiPre ? _dividend_load_T_1 : _dividend_load_T_15; // @[Mul.scala 447:10]
  assign algDivider_io_op2 = isUsiPre ? _divisor_load_T_1 : _divisor_load_T_16; // @[Mul.scala 459:8]
  assign algDivider_io_flush = io_flush; // @[Mul.scala 515:25]
  assign divRtnArb_io_in_0_valid = algDivider_io_deq_valid; // @[Mul.scala 554:28]
  assign divRtnArb_io_in_0_bits_rd0 = algDivider_io_deq_bits_param_rd0; // @[Mul.scala 556:31]
  assign divRtnArb_io_in_0_bits_res = _divRes_T_33 | _divRes_T_27; // @[Mux.scala 27:73]
  assign divRtnArb_io_in_1_valid = io_enq_valid & divBypass; // @[Mul.scala 549:44]
  assign divRtnArb_io_in_1_bits_rd0 = io_enq_bits_param_rd0; // @[Mul.scala 551:31]
  assign divRtnArb_io_in_1_bits_res = _byPassRes_T_13 | _byPassRes_T_7; // @[Mux.scala 27:73]
  assign divRtnArb_io_out_ready = io_deq_ready; // @[Mul.scala 560:10]
  always @(posedge clock) begin
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T & ~reset & ~_T_7) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Mul.scala:430 when( io.enq.fire ) { assert( io.enq.bits.fun.isDiv ) }\n"); // @[Mul.scala 430:31]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_7 & (_T & ~reset)) begin
          $fatal; // @[Mul.scala 430:31]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
endmodule
module MulDiv(
  input         clock,
  input         reset,
  output        io_mul_iss_exe_ready,
  input         io_mul_iss_exe_valid,
  input         io_mul_iss_exe_bits_fun_mul,
  input         io_mul_iss_exe_bits_fun_mulh,
  input         io_mul_iss_exe_bits_fun_mulhsu,
  input         io_mul_iss_exe_bits_fun_mulhu,
  input         io_mul_iss_exe_bits_fun_div,
  input         io_mul_iss_exe_bits_fun_divu,
  input         io_mul_iss_exe_bits_fun_rem,
  input         io_mul_iss_exe_bits_fun_remu,
  input         io_mul_iss_exe_bits_fun_mulw,
  input         io_mul_iss_exe_bits_fun_divw,
  input         io_mul_iss_exe_bits_fun_divuw,
  input         io_mul_iss_exe_bits_fun_remw,
  input         io_mul_iss_exe_bits_fun_remuw,
  input  [5:0]  io_mul_iss_exe_bits_param_rd0,
  input  [63:0] io_mul_iss_exe_bits_param_dat_op1,
  input  [63:0] io_mul_iss_exe_bits_param_dat_op2,
  input         io_mul_exe_iwb_ready,
  output        io_mul_exe_iwb_valid,
  output [5:0]  io_mul_exe_iwb_bits_rd0,
  output [63:0] io_mul_exe_iwb_bits_res,
  input         io_flush
);
  wire  mul_exe_iwb_fifo_clock; // @[Mul.scala 40:32]
  wire  mul_exe_iwb_fifo_reset; // @[Mul.scala 40:32]
  wire  mul_exe_iwb_fifo_io_enq_ready; // @[Mul.scala 40:32]
  wire  mul_exe_iwb_fifo_io_enq_valid; // @[Mul.scala 40:32]
  wire [5:0] mul_exe_iwb_fifo_io_enq_bits_rd0; // @[Mul.scala 40:32]
  wire [63:0] mul_exe_iwb_fifo_io_enq_bits_res; // @[Mul.scala 40:32]
  wire  mul_exe_iwb_fifo_io_deq_ready; // @[Mul.scala 40:32]
  wire  mul_exe_iwb_fifo_io_deq_valid; // @[Mul.scala 40:32]
  wire [5:0] mul_exe_iwb_fifo_io_deq_bits_rd0; // @[Mul.scala 40:32]
  wire [63:0] mul_exe_iwb_fifo_io_deq_bits_res; // @[Mul.scala 40:32]
  wire  multiplier_io_enq_ready; // @[Mul.scala 80:26]
  wire  multiplier_io_enq_valid; // @[Mul.scala 80:26]
  wire  multiplier_io_enq_bits_fun_mul; // @[Mul.scala 80:26]
  wire  multiplier_io_enq_bits_fun_mulh; // @[Mul.scala 80:26]
  wire  multiplier_io_enq_bits_fun_mulhsu; // @[Mul.scala 80:26]
  wire  multiplier_io_enq_bits_fun_mulhu; // @[Mul.scala 80:26]
  wire  multiplier_io_enq_bits_fun_mulw; // @[Mul.scala 80:26]
  wire [5:0] multiplier_io_enq_bits_param_rd0; // @[Mul.scala 80:26]
  wire  multiplier_io_deq_ready; // @[Mul.scala 80:26]
  wire  multiplier_io_deq_valid; // @[Mul.scala 80:26]
  wire  multiplier_io_deq_bits_fun_mul; // @[Mul.scala 80:26]
  wire  multiplier_io_deq_bits_fun_mulh; // @[Mul.scala 80:26]
  wire  multiplier_io_deq_bits_fun_mulhsu; // @[Mul.scala 80:26]
  wire  multiplier_io_deq_bits_fun_mulhu; // @[Mul.scala 80:26]
  wire  multiplier_io_deq_bits_fun_mulw; // @[Mul.scala 80:26]
  wire [5:0] multiplier_io_deq_bits_param_rd0; // @[Mul.scala 80:26]
  wire [64:0] multiplier_io_op1; // @[Mul.scala 80:26]
  wire [64:0] multiplier_io_op2; // @[Mul.scala 80:26]
  wire [129:0] multiplier_io_res; // @[Mul.scala 80:26]
  wire  dividor_clock; // @[Mul.scala 104:23]
  wire  dividor_reset; // @[Mul.scala 104:23]
  wire  dividor_io_enq_ready; // @[Mul.scala 104:23]
  wire  dividor_io_enq_valid; // @[Mul.scala 104:23]
  wire  dividor_io_enq_bits_fun_div; // @[Mul.scala 104:23]
  wire  dividor_io_enq_bits_fun_divu; // @[Mul.scala 104:23]
  wire  dividor_io_enq_bits_fun_rem; // @[Mul.scala 104:23]
  wire  dividor_io_enq_bits_fun_remu; // @[Mul.scala 104:23]
  wire  dividor_io_enq_bits_fun_divw; // @[Mul.scala 104:23]
  wire  dividor_io_enq_bits_fun_divuw; // @[Mul.scala 104:23]
  wire  dividor_io_enq_bits_fun_remw; // @[Mul.scala 104:23]
  wire  dividor_io_enq_bits_fun_remuw; // @[Mul.scala 104:23]
  wire [5:0] dividor_io_enq_bits_param_rd0; // @[Mul.scala 104:23]
  wire [63:0] dividor_io_enq_bits_param_dat_op1; // @[Mul.scala 104:23]
  wire [63:0] dividor_io_enq_bits_param_dat_op2; // @[Mul.scala 104:23]
  wire  dividor_io_deq_ready; // @[Mul.scala 104:23]
  wire  dividor_io_deq_valid; // @[Mul.scala 104:23]
  wire [5:0] dividor_io_deq_bits_rd0; // @[Mul.scala 104:23]
  wire [63:0] dividor_io_deq_bits_res; // @[Mul.scala 104:23]
  wire  dividor_io_flush; // @[Mul.scala 104:23]
  wire  iwbArb_io_in_0_ready; // @[Mul.scala 127:22]
  wire  iwbArb_io_in_0_valid; // @[Mul.scala 127:22]
  wire [5:0] iwbArb_io_in_0_bits_rd0; // @[Mul.scala 127:22]
  wire [63:0] iwbArb_io_in_0_bits_res; // @[Mul.scala 127:22]
  wire  iwbArb_io_in_1_ready; // @[Mul.scala 127:22]
  wire  iwbArb_io_in_1_valid; // @[Mul.scala 127:22]
  wire [5:0] iwbArb_io_in_1_bits_rd0; // @[Mul.scala 127:22]
  wire [63:0] iwbArb_io_in_1_bits_res; // @[Mul.scala 127:22]
  wire  iwbArb_io_out_ready; // @[Mul.scala 127:22]
  wire  iwbArb_io_out_valid; // @[Mul.scala 127:22]
  wire [5:0] iwbArb_io_out_bits_rd0; // @[Mul.scala 127:22]
  wire [63:0] iwbArb_io_out_bits_res; // @[Mul.scala 127:22]
  wire  _mul_op1_sign_T = io_mul_iss_exe_bits_fun_mul | io_mul_iss_exe_bits_fun_mulh; // @[Mul.scala 52:37]
  wire  _mul_op1_sign_T_1 = io_mul_iss_exe_bits_fun_mul | io_mul_iss_exe_bits_fun_mulh | io_mul_iss_exe_bits_fun_mulhsu; // @[Mul.scala 52:68]
  wire  _mul_op1_sign_T_2 = io_mul_iss_exe_bits_fun_mul | io_mul_iss_exe_bits_fun_mulh | io_mul_iss_exe_bits_fun_mulhsu
     | io_mul_iss_exe_bits_fun_mulw; // @[Mul.scala 52:101]
  wire  _mul_op1_sign_T_5 = io_mul_iss_exe_bits_fun_mulw ? io_mul_iss_exe_bits_param_dat_op1[31] :
    io_mul_iss_exe_bits_param_dat_op1[63]; // @[Mul.scala 53:10]
  wire  mul_op1_sign = _mul_op1_sign_T_2 & _mul_op1_sign_T_5; // @[Mul.scala 51:8]
  wire  _mul_op2_sign_T_1 = _mul_op1_sign_T | io_mul_iss_exe_bits_fun_mulw; // @[Mul.scala 59:67]
  wire  _mul_op2_sign_T_4 = io_mul_iss_exe_bits_fun_mulw ? io_mul_iss_exe_bits_param_dat_op2[31] :
    io_mul_iss_exe_bits_param_dat_op2[63]; // @[Mul.scala 60:10]
  wire  mul_op2_sign = _mul_op2_sign_T_1 & _mul_op2_sign_T_4; // @[Mul.scala 58:8]
  wire [32:0] _mul_op1_T_1 = mul_op1_sign ? 33'h1ffffffff : 33'h0; // @[Bitwise.scala 77:12]
  wire [64:0] _mul_op1_T_3 = {_mul_op1_T_1,io_mul_iss_exe_bits_param_dat_op1[31:0]}; // @[Cat.scala 33:92]
  wire [64:0] _mul_op1_T_4 = {mul_op1_sign,io_mul_iss_exe_bits_param_dat_op1}; // @[Cat.scala 33:92]
  wire [32:0] _mul_op2_T_1 = mul_op2_sign ? 33'h1ffffffff : 33'h0; // @[Bitwise.scala 77:12]
  wire [64:0] _mul_op2_T_3 = {_mul_op2_T_1,io_mul_iss_exe_bits_param_dat_op2[31:0]}; // @[Cat.scala 33:92]
  wire [64:0] _mul_op2_T_4 = {mul_op2_sign,io_mul_iss_exe_bits_param_dat_op2}; // @[Cat.scala 33:92]
  wire  _multiplier_io_enq_valid_T_3 = _mul_op1_sign_T_1 | io_mul_iss_exe_bits_fun_mulhu | io_mul_iss_exe_bits_fun_mulw; // @[riscv_isa.scala 203:43]
  wire [31:0] _mulRes_T_7 = multiplier_io_res[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _mulRes_T_8 = {_mulRes_T_7,multiplier_io_res[31:0]}; // @[Cat.scala 33:92]
  wire [63:0] _mulRes_T_9 = multiplier_io_deq_bits_fun_mul ? multiplier_io_res[63:0] : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _mulRes_T_10 = multiplier_io_deq_bits_fun_mulh ? multiplier_io_res[127:64] : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _mulRes_T_11 = multiplier_io_deq_bits_fun_mulhsu ? multiplier_io_res[127:64] : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _mulRes_T_12 = multiplier_io_deq_bits_fun_mulhu ? multiplier_io_res[127:64] : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _mulRes_T_13 = multiplier_io_deq_bits_fun_mulw ? _mulRes_T_8 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _mulRes_T_14 = _mulRes_T_9 | _mulRes_T_10; // @[Mux.scala 27:73]
  wire [63:0] _mulRes_T_15 = _mulRes_T_14 | _mulRes_T_11; // @[Mux.scala 27:73]
  wire [63:0] _mulRes_T_16 = _mulRes_T_15 | _mulRes_T_12; // @[Mux.scala 27:73]
  wire  _dividor_io_enq_valid_T_6 = io_mul_iss_exe_bits_fun_div | io_mul_iss_exe_bits_fun_divu |
    io_mul_iss_exe_bits_fun_divw | io_mul_iss_exe_bits_fun_divuw | io_mul_iss_exe_bits_fun_rem |
    io_mul_iss_exe_bits_fun_remu | io_mul_iss_exe_bits_fun_remw | io_mul_iss_exe_bits_fun_remuw; // @[riscv_isa.scala 204:61]
  Queue_7 mul_exe_iwb_fifo ( // @[Mul.scala 40:32]
    .clock(mul_exe_iwb_fifo_clock),
    .reset(mul_exe_iwb_fifo_reset),
    .io_enq_ready(mul_exe_iwb_fifo_io_enq_ready),
    .io_enq_valid(mul_exe_iwb_fifo_io_enq_valid),
    .io_enq_bits_rd0(mul_exe_iwb_fifo_io_enq_bits_rd0),
    .io_enq_bits_res(mul_exe_iwb_fifo_io_enq_bits_res),
    .io_deq_ready(mul_exe_iwb_fifo_io_deq_ready),
    .io_deq_valid(mul_exe_iwb_fifo_io_deq_valid),
    .io_deq_bits_rd0(mul_exe_iwb_fifo_io_deq_bits_rd0),
    .io_deq_bits_res(mul_exe_iwb_fifo_io_deq_bits_res)
  );
  NorMultiplier multiplier ( // @[Mul.scala 80:26]
    .io_enq_ready(multiplier_io_enq_ready),
    .io_enq_valid(multiplier_io_enq_valid),
    .io_enq_bits_fun_mul(multiplier_io_enq_bits_fun_mul),
    .io_enq_bits_fun_mulh(multiplier_io_enq_bits_fun_mulh),
    .io_enq_bits_fun_mulhsu(multiplier_io_enq_bits_fun_mulhsu),
    .io_enq_bits_fun_mulhu(multiplier_io_enq_bits_fun_mulhu),
    .io_enq_bits_fun_mulw(multiplier_io_enq_bits_fun_mulw),
    .io_enq_bits_param_rd0(multiplier_io_enq_bits_param_rd0),
    .io_deq_ready(multiplier_io_deq_ready),
    .io_deq_valid(multiplier_io_deq_valid),
    .io_deq_bits_fun_mul(multiplier_io_deq_bits_fun_mul),
    .io_deq_bits_fun_mulh(multiplier_io_deq_bits_fun_mulh),
    .io_deq_bits_fun_mulhsu(multiplier_io_deq_bits_fun_mulhsu),
    .io_deq_bits_fun_mulhu(multiplier_io_deq_bits_fun_mulhu),
    .io_deq_bits_fun_mulw(multiplier_io_deq_bits_fun_mulw),
    .io_deq_bits_param_rd0(multiplier_io_deq_bits_param_rd0),
    .io_op1(multiplier_io_op1),
    .io_op2(multiplier_io_op2),
    .io_res(multiplier_io_res)
  );
  Dividor dividor ( // @[Mul.scala 104:23]
    .clock(dividor_clock),
    .reset(dividor_reset),
    .io_enq_ready(dividor_io_enq_ready),
    .io_enq_valid(dividor_io_enq_valid),
    .io_enq_bits_fun_div(dividor_io_enq_bits_fun_div),
    .io_enq_bits_fun_divu(dividor_io_enq_bits_fun_divu),
    .io_enq_bits_fun_rem(dividor_io_enq_bits_fun_rem),
    .io_enq_bits_fun_remu(dividor_io_enq_bits_fun_remu),
    .io_enq_bits_fun_divw(dividor_io_enq_bits_fun_divw),
    .io_enq_bits_fun_divuw(dividor_io_enq_bits_fun_divuw),
    .io_enq_bits_fun_remw(dividor_io_enq_bits_fun_remw),
    .io_enq_bits_fun_remuw(dividor_io_enq_bits_fun_remuw),
    .io_enq_bits_param_rd0(dividor_io_enq_bits_param_rd0),
    .io_enq_bits_param_dat_op1(dividor_io_enq_bits_param_dat_op1),
    .io_enq_bits_param_dat_op2(dividor_io_enq_bits_param_dat_op2),
    .io_deq_ready(dividor_io_deq_ready),
    .io_deq_valid(dividor_io_deq_valid),
    .io_deq_bits_rd0(dividor_io_deq_bits_rd0),
    .io_deq_bits_res(dividor_io_deq_bits_res),
    .io_flush(dividor_io_flush)
  );
  Arbiter_8 iwbArb ( // @[Mul.scala 127:22]
    .io_in_0_ready(iwbArb_io_in_0_ready),
    .io_in_0_valid(iwbArb_io_in_0_valid),
    .io_in_0_bits_rd0(iwbArb_io_in_0_bits_rd0),
    .io_in_0_bits_res(iwbArb_io_in_0_bits_res),
    .io_in_1_ready(iwbArb_io_in_1_ready),
    .io_in_1_valid(iwbArb_io_in_1_valid),
    .io_in_1_bits_rd0(iwbArb_io_in_1_bits_rd0),
    .io_in_1_bits_res(iwbArb_io_in_1_bits_res),
    .io_out_ready(iwbArb_io_out_ready),
    .io_out_valid(iwbArb_io_out_valid),
    .io_out_bits_rd0(iwbArb_io_out_bits_rd0),
    .io_out_bits_res(iwbArb_io_out_bits_res)
  );
  assign io_mul_iss_exe_ready = _multiplier_io_enq_valid_T_3 ? multiplier_io_enq_ready : dividor_io_enq_ready; // @[Mul.scala 123:8]
  assign io_mul_exe_iwb_valid = mul_exe_iwb_fifo_io_deq_valid; // @[Mul.scala 42:18]
  assign io_mul_exe_iwb_bits_rd0 = mul_exe_iwb_fifo_io_deq_bits_rd0; // @[Mul.scala 42:18]
  assign io_mul_exe_iwb_bits_res = mul_exe_iwb_fifo_io_deq_bits_res; // @[Mul.scala 42:18]
  assign mul_exe_iwb_fifo_clock = clock;
  assign mul_exe_iwb_fifo_reset = reset | io_flush; // @[Mul.scala 41:42]
  assign mul_exe_iwb_fifo_io_enq_valid = iwbArb_io_out_valid; // @[Mul.scala 139:27]
  assign mul_exe_iwb_fifo_io_enq_bits_rd0 = iwbArb_io_out_bits_rd0; // @[Mul.scala 139:27]
  assign mul_exe_iwb_fifo_io_enq_bits_res = iwbArb_io_out_bits_res; // @[Mul.scala 139:27]
  assign mul_exe_iwb_fifo_io_deq_ready = io_mul_exe_iwb_ready; // @[Mul.scala 42:18]
  assign multiplier_io_enq_valid = io_mul_iss_exe_valid & _multiplier_io_enq_valid_T_3; // @[Mul.scala 84:51]
  assign multiplier_io_enq_bits_fun_mul = io_mul_iss_exe_bits_fun_mul; // @[Mul.scala 87:26]
  assign multiplier_io_enq_bits_fun_mulh = io_mul_iss_exe_bits_fun_mulh; // @[Mul.scala 87:26]
  assign multiplier_io_enq_bits_fun_mulhsu = io_mul_iss_exe_bits_fun_mulhsu; // @[Mul.scala 87:26]
  assign multiplier_io_enq_bits_fun_mulhu = io_mul_iss_exe_bits_fun_mulhu; // @[Mul.scala 87:26]
  assign multiplier_io_enq_bits_fun_mulw = io_mul_iss_exe_bits_fun_mulw; // @[Mul.scala 87:26]
  assign multiplier_io_enq_bits_param_rd0 = io_mul_iss_exe_bits_param_rd0; // @[Mul.scala 87:26]
  assign multiplier_io_deq_ready = iwbArb_io_in_0_ready; // @[Mul.scala 130:27]
  assign multiplier_io_op1 = io_mul_iss_exe_bits_fun_mulw ? _mul_op1_T_3 : _mul_op1_T_4; // @[Mul.scala 65:8]
  assign multiplier_io_op2 = io_mul_iss_exe_bits_fun_mulw ? _mul_op2_T_3 : _mul_op2_T_4; // @[Mul.scala 72:8]
  assign dividor_clock = clock;
  assign dividor_reset = reset;
  assign dividor_io_enq_valid = _dividor_io_enq_valid_T_6 & io_mul_iss_exe_valid; // @[Mul.scala 107:57]
  assign dividor_io_enq_bits_fun_div = io_mul_iss_exe_bits_fun_div; // @[Mul.scala 106:24]
  assign dividor_io_enq_bits_fun_divu = io_mul_iss_exe_bits_fun_divu; // @[Mul.scala 106:24]
  assign dividor_io_enq_bits_fun_rem = io_mul_iss_exe_bits_fun_rem; // @[Mul.scala 106:24]
  assign dividor_io_enq_bits_fun_remu = io_mul_iss_exe_bits_fun_remu; // @[Mul.scala 106:24]
  assign dividor_io_enq_bits_fun_divw = io_mul_iss_exe_bits_fun_divw; // @[Mul.scala 106:24]
  assign dividor_io_enq_bits_fun_divuw = io_mul_iss_exe_bits_fun_divuw; // @[Mul.scala 106:24]
  assign dividor_io_enq_bits_fun_remw = io_mul_iss_exe_bits_fun_remw; // @[Mul.scala 106:24]
  assign dividor_io_enq_bits_fun_remuw = io_mul_iss_exe_bits_fun_remuw; // @[Mul.scala 106:24]
  assign dividor_io_enq_bits_param_rd0 = io_mul_iss_exe_bits_param_rd0; // @[Mul.scala 106:24]
  assign dividor_io_enq_bits_param_dat_op1 = io_mul_iss_exe_bits_param_dat_op1; // @[Mul.scala 106:24]
  assign dividor_io_enq_bits_param_dat_op2 = io_mul_iss_exe_bits_param_dat_op2; // @[Mul.scala 106:24]
  assign dividor_io_deq_ready = iwbArb_io_in_1_ready; // @[Mul.scala 135:19]
  assign dividor_io_flush = io_flush; // @[Mul.scala 109:20]
  assign iwbArb_io_in_0_valid = multiplier_io_deq_valid; // @[Mul.scala 131:25]
  assign iwbArb_io_in_0_bits_rd0 = multiplier_io_deq_bits_param_rd0; // @[Mul.scala 132:28]
  assign iwbArb_io_in_0_bits_res = _mulRes_T_16 | _mulRes_T_13; // @[Mux.scala 27:73]
  assign iwbArb_io_in_1_valid = dividor_io_deq_valid; // @[Mul.scala 135:19]
  assign iwbArb_io_in_1_bits_rd0 = dividor_io_deq_bits_rd0; // @[Mul.scala 135:19]
  assign iwbArb_io_in_1_bits_res = dividor_io_deq_bits_res; // @[Mul.scala 135:19]
  assign iwbArb_io_out_ready = mul_exe_iwb_fifo_io_enq_ready; // @[Mul.scala 139:27]
endmodule
module Execute(
  input         clock,
  input         reset,
  output        io_alu_iss_exe_0_ready,
  input         io_alu_iss_exe_0_valid,
  input         io_alu_iss_exe_0_bits_fun_add,
  input         io_alu_iss_exe_0_bits_fun_slt,
  input         io_alu_iss_exe_0_bits_fun_xor,
  input         io_alu_iss_exe_0_bits_fun_or,
  input         io_alu_iss_exe_0_bits_fun_and,
  input         io_alu_iss_exe_0_bits_fun_sll,
  input         io_alu_iss_exe_0_bits_fun_srl,
  input         io_alu_iss_exe_0_bits_fun_sra,
  input  [5:0]  io_alu_iss_exe_0_bits_param_rd0,
  input         io_alu_iss_exe_0_bits_param_is_32w,
  input         io_alu_iss_exe_0_bits_param_is_usi,
  input  [63:0] io_alu_iss_exe_0_bits_param_dat_op1,
  input  [63:0] io_alu_iss_exe_0_bits_param_dat_op2,
  input         io_alu_exe_iwb_0_ready,
  output        io_alu_exe_iwb_0_valid,
  output [5:0]  io_alu_exe_iwb_0_bits_rd0,
  output [63:0] io_alu_exe_iwb_0_bits_res,
  output        io_bru_iss_exe_ready,
  input         io_bru_iss_exe_valid,
  input         io_bru_iss_exe_bits_fun_jalr,
  input         io_bru_iss_exe_bits_fun_beq,
  input         io_bru_iss_exe_bits_fun_bne,
  input         io_bru_iss_exe_bits_fun_blt,
  input         io_bru_iss_exe_bits_fun_bge,
  input         io_bru_iss_exe_bits_fun_bltu,
  input         io_bru_iss_exe_bits_fun_bgeu,
  input  [5:0]  io_bru_iss_exe_bits_param_rd0,
  input         io_bru_iss_exe_bits_param_is_rvc,
  input  [63:0] io_bru_iss_exe_bits_param_pc,
  input  [63:0] io_bru_iss_exe_bits_param_imm,
  input  [63:0] io_bru_iss_exe_bits_param_dat_op1,
  input  [63:0] io_bru_iss_exe_bits_param_dat_op2,
  input         io_bru_exe_iwb_ready,
  output        io_bru_exe_iwb_valid,
  output [5:0]  io_bru_exe_iwb_bits_rd0,
  output [63:0] io_bru_exe_iwb_bits_res,
  output        io_csr_iss_exe_ready,
  input         io_csr_iss_exe_valid,
  input         io_csr_iss_exe_bits_fun_rw,
  input         io_csr_iss_exe_bits_fun_rs,
  input         io_csr_iss_exe_bits_fun_rc,
  input  [5:0]  io_csr_iss_exe_bits_param_rd0,
  input  [63:0] io_csr_iss_exe_bits_param_dat_op1,
  input  [63:0] io_csr_iss_exe_bits_param_dat_op2,
  input         io_csr_exe_iwb_ready,
  output        io_csr_exe_iwb_valid,
  output [5:0]  io_csr_exe_iwb_bits_rd0,
  output [63:0] io_csr_exe_iwb_bits_res,
  output        io_lsu_iss_exe_ready,
  input         io_lsu_iss_exe_valid,
  input         io_lsu_iss_exe_bits_fun_lb,
  input         io_lsu_iss_exe_bits_fun_lh,
  input         io_lsu_iss_exe_bits_fun_lw,
  input         io_lsu_iss_exe_bits_fun_ld,
  input         io_lsu_iss_exe_bits_fun_lbu,
  input         io_lsu_iss_exe_bits_fun_lhu,
  input         io_lsu_iss_exe_bits_fun_lwu,
  input         io_lsu_iss_exe_bits_fun_sb,
  input         io_lsu_iss_exe_bits_fun_sh,
  input         io_lsu_iss_exe_bits_fun_sw,
  input         io_lsu_iss_exe_bits_fun_sd,
  input         io_lsu_iss_exe_bits_fun_fence,
  input         io_lsu_iss_exe_bits_fun_fence_i,
  input         io_lsu_iss_exe_bits_fun_sfence_vma,
  input         io_lsu_iss_exe_bits_fun_lr_w,
  input         io_lsu_iss_exe_bits_fun_sc_w,
  input         io_lsu_iss_exe_bits_fun_amoswap_w,
  input         io_lsu_iss_exe_bits_fun_amoadd_w,
  input         io_lsu_iss_exe_bits_fun_amoxor_w,
  input         io_lsu_iss_exe_bits_fun_amoand_w,
  input         io_lsu_iss_exe_bits_fun_amoor_w,
  input         io_lsu_iss_exe_bits_fun_amomin_w,
  input         io_lsu_iss_exe_bits_fun_amomax_w,
  input         io_lsu_iss_exe_bits_fun_amominu_w,
  input         io_lsu_iss_exe_bits_fun_amomaxu_w,
  input         io_lsu_iss_exe_bits_fun_lr_d,
  input         io_lsu_iss_exe_bits_fun_sc_d,
  input         io_lsu_iss_exe_bits_fun_amoswap_d,
  input         io_lsu_iss_exe_bits_fun_amoadd_d,
  input         io_lsu_iss_exe_bits_fun_amoxor_d,
  input         io_lsu_iss_exe_bits_fun_amoand_d,
  input         io_lsu_iss_exe_bits_fun_amoor_d,
  input         io_lsu_iss_exe_bits_fun_amomin_d,
  input         io_lsu_iss_exe_bits_fun_amomax_d,
  input         io_lsu_iss_exe_bits_fun_amominu_d,
  input         io_lsu_iss_exe_bits_fun_amomaxu_d,
  input         io_lsu_iss_exe_bits_fun_flw,
  input         io_lsu_iss_exe_bits_fun_fsw,
  input         io_lsu_iss_exe_bits_fun_fld,
  input         io_lsu_iss_exe_bits_fun_fsd,
  input  [5:0]  io_lsu_iss_exe_bits_param_rd0,
  input  [63:0] io_lsu_iss_exe_bits_param_dat_op1,
  input  [63:0] io_lsu_iss_exe_bits_param_dat_op2,
  input         io_lsu_exe_iwb_ready,
  output        io_lsu_exe_iwb_valid,
  output [5:0]  io_lsu_exe_iwb_bits_rd0,
  output [63:0] io_lsu_exe_iwb_bits_res,
  output        io_lsu_exe_fwb_valid,
  output        io_mul_iss_exe_0_ready,
  input         io_mul_iss_exe_0_valid,
  input         io_mul_iss_exe_0_bits_fun_mul,
  input         io_mul_iss_exe_0_bits_fun_mulh,
  input         io_mul_iss_exe_0_bits_fun_mulhsu,
  input         io_mul_iss_exe_0_bits_fun_mulhu,
  input         io_mul_iss_exe_0_bits_fun_div,
  input         io_mul_iss_exe_0_bits_fun_divu,
  input         io_mul_iss_exe_0_bits_fun_rem,
  input         io_mul_iss_exe_0_bits_fun_remu,
  input         io_mul_iss_exe_0_bits_fun_mulw,
  input         io_mul_iss_exe_0_bits_fun_divw,
  input         io_mul_iss_exe_0_bits_fun_divuw,
  input         io_mul_iss_exe_0_bits_fun_remw,
  input         io_mul_iss_exe_0_bits_fun_remuw,
  input  [5:0]  io_mul_iss_exe_0_bits_param_rd0,
  input  [63:0] io_mul_iss_exe_0_bits_param_dat_op1,
  input  [63:0] io_mul_iss_exe_0_bits_param_dat_op2,
  input         io_mul_exe_iwb_0_ready,
  output        io_mul_exe_iwb_0_valid,
  output [5:0]  io_mul_exe_iwb_0_bits_rd0,
  output [63:0] io_mul_exe_iwb_0_bits_res,
  output        io_bftq_ready,
  input         io_bftq_valid,
  input  [38:0] io_bftq_bits_pc,
  input         io_bftq_bits_bimResp_bim_p,
  input         io_bftq_bits_bimResp_bim_h,
  input         io_bftq_bits_isPredictTaken,
  output        io_jftq_ready,
  input         io_jftq_valid,
  input  [38:0] io_jftq_bits_pc,
  input  [38:0] io_jftq_bits_btbResp_target,
  input  [38:0] io_jftq_bits_rasResp_target,
  input         io_jftq_bits_isRas,
  input         io_bctq_ready,
  output        io_bctq_valid,
  output        io_bctq_bits_isPredictTaken,
  output        io_bctq_bits_isFinalTaken,
  output [63:0] io_bctq_bits_finalTarget,
  input         io_jctq_ready,
  output        io_jctq_valid,
  output [38:0] io_jctq_bits_btbResp_target,
  output [38:0] io_jctq_bits_rasResp_target,
  output        io_jctq_bits_isRas,
  output [63:0] io_jctq_bits_finalTarget,
  output        io_bcmm_update_valid,
  output [38:0] io_bcmm_update_bits_pc,
  output        io_bcmm_update_bits_bimResp_bim_p,
  output        io_bcmm_update_bits_bimResp_bim_h,
  output        io_bcmm_update_bits_isFinalTaken,
  output        io_jcmm_update_valid,
  output [38:0] io_jcmm_update_bits_pc,
  output [63:0] io_jcmm_update_bits_finalTarget,
  output        io_csr_addr_valid,
  output [11:0] io_csr_addr_bits,
  input         io_csr_data_valid,
  input  [63:0] io_csr_data_bits,
  input         io_csr_cmm_op_ready,
  output        io_csr_cmm_op_valid,
  output [11:0] io_csr_cmm_op_bits_addr,
  output [63:0] io_csr_cmm_op_bits_dat_i,
  output        io_csr_cmm_op_bits_op_rw,
  output        io_csr_cmm_op_bits_op_rs,
  output        io_csr_cmm_op_bits_op_rc,
  input         io_lsu_mmu_ready,
  output        io_lsu_mmu_valid,
  output        io_lsu_mmu_bits_is_W,
  output        io_lsu_mmu_bits_is_R,
  output [63:0] io_lsu_mmu_bits_vaddr,
  output        io_mmu_lsu_ready,
  input         io_mmu_lsu_valid,
  input  [63:0] io_mmu_lsu_bits_paddr,
  input         io_mmu_lsu_bits_is_paging_fault,
  input         io_mmu_lsu_bits_is_access_fault,
  input         io_cmm_lsu_is_amo_pending,
  input         io_cmm_lsu_is_store_commit_0,
  output        io_lsu_cmm_is_access_fault,
  output        io_lsu_cmm_is_paging_fault,
  output        io_lsu_cmm_is_misAlign,
  output [63:0] io_lsu_cmm_trap_addr,
  input         io_missUnit_dcache_acquire_ready,
  output        io_missUnit_dcache_acquire_valid,
  output [31:0] io_missUnit_dcache_acquire_bits_address,
  output        io_missUnit_dcache_grant_ready,
  input         io_missUnit_dcache_grant_valid,
  input  [2:0]  io_missUnit_dcache_grant_bits_opcode,
  input  [2:0]  io_missUnit_dcache_grant_bits_size,
  input         io_missUnit_dcache_grant_bits_source,
  input  [4:0]  io_missUnit_dcache_grant_bits_sink,
  input  [63:0] io_missUnit_dcache_grant_bits_data,
  input         io_missUnit_dcache_grantAck_ready,
  output        io_missUnit_dcache_grantAck_valid,
  output [4:0]  io_missUnit_dcache_grantAck_bits_sink,
  output        io_probeUnit_dcache_probe_ready,
  input         io_probeUnit_dcache_probe_valid,
  input  [31:0] io_probeUnit_dcache_probe_bits_address,
  input         io_writeBackUnit_dcache_release_ready,
  output        io_writeBackUnit_dcache_release_valid,
  output [2:0]  io_writeBackUnit_dcache_release_bits_opcode,
  output [2:0]  io_writeBackUnit_dcache_release_bits_param,
  output [2:0]  io_writeBackUnit_dcache_release_bits_size,
  output [31:0] io_writeBackUnit_dcache_release_bits_address,
  output [63:0] io_writeBackUnit_dcache_release_bits_data,
  output        io_writeBackUnit_dcache_grant_ready,
  input         io_writeBackUnit_dcache_grant_valid,
  input         io_writeBackUnit_dcache_grant_bits_source,
  input         io_system_getPut_ready,
  output        io_system_getPut_valid,
  output [2:0]  io_system_getPut_bits_opcode,
  output [31:0] io_system_getPut_bits_address,
  output [7:0]  io_system_getPut_bits_mask,
  output [63:0] io_system_getPut_bits_data,
  output        io_system_access_ready,
  input         io_system_access_valid,
  input  [2:0]  io_system_access_bits_opcode,
  input  [63:0] io_system_access_bits_data,
  input         io_periph_getPut_ready,
  output        io_periph_getPut_valid,
  output [2:0]  io_periph_getPut_bits_opcode,
  output [31:0] io_periph_getPut_bits_address,
  output [7:0]  io_periph_getPut_bits_mask,
  output [63:0] io_periph_getPut_bits_data,
  output        io_periph_access_ready,
  input         io_periph_access_valid,
  input  [2:0]  io_periph_access_bits_opcode,
  input  [63:0] io_periph_access_bits_data,
  input         io_flush
);
  wire  alu_0_clock; // @[Execute.scala 98:52]
  wire  alu_0_reset; // @[Execute.scala 98:52]
  wire  alu_0_io_alu_iss_exe_ready; // @[Execute.scala 98:52]
  wire  alu_0_io_alu_iss_exe_valid; // @[Execute.scala 98:52]
  wire  alu_0_io_alu_iss_exe_bits_fun_add; // @[Execute.scala 98:52]
  wire  alu_0_io_alu_iss_exe_bits_fun_slt; // @[Execute.scala 98:52]
  wire  alu_0_io_alu_iss_exe_bits_fun_xor; // @[Execute.scala 98:52]
  wire  alu_0_io_alu_iss_exe_bits_fun_or; // @[Execute.scala 98:52]
  wire  alu_0_io_alu_iss_exe_bits_fun_and; // @[Execute.scala 98:52]
  wire  alu_0_io_alu_iss_exe_bits_fun_sll; // @[Execute.scala 98:52]
  wire  alu_0_io_alu_iss_exe_bits_fun_srl; // @[Execute.scala 98:52]
  wire  alu_0_io_alu_iss_exe_bits_fun_sra; // @[Execute.scala 98:52]
  wire [5:0] alu_0_io_alu_iss_exe_bits_param_rd0; // @[Execute.scala 98:52]
  wire  alu_0_io_alu_iss_exe_bits_param_is_32w; // @[Execute.scala 98:52]
  wire  alu_0_io_alu_iss_exe_bits_param_is_usi; // @[Execute.scala 98:52]
  wire [63:0] alu_0_io_alu_iss_exe_bits_param_dat_op1; // @[Execute.scala 98:52]
  wire [63:0] alu_0_io_alu_iss_exe_bits_param_dat_op2; // @[Execute.scala 98:52]
  wire  alu_0_io_alu_exe_iwb_ready; // @[Execute.scala 98:52]
  wire  alu_0_io_alu_exe_iwb_valid; // @[Execute.scala 98:52]
  wire [5:0] alu_0_io_alu_exe_iwb_bits_rd0; // @[Execute.scala 98:52]
  wire [63:0] alu_0_io_alu_exe_iwb_bits_res; // @[Execute.scala 98:52]
  wire  alu_0_io_flush; // @[Execute.scala 98:52]
  wire  bru_clock; // @[Execute.scala 99:19]
  wire  bru_reset; // @[Execute.scala 99:19]
  wire  bru_io_bru_iss_exe_ready; // @[Execute.scala 99:19]
  wire  bru_io_bru_iss_exe_valid; // @[Execute.scala 99:19]
  wire  bru_io_bru_iss_exe_bits_fun_jalr; // @[Execute.scala 99:19]
  wire  bru_io_bru_iss_exe_bits_fun_beq; // @[Execute.scala 99:19]
  wire  bru_io_bru_iss_exe_bits_fun_bne; // @[Execute.scala 99:19]
  wire  bru_io_bru_iss_exe_bits_fun_blt; // @[Execute.scala 99:19]
  wire  bru_io_bru_iss_exe_bits_fun_bge; // @[Execute.scala 99:19]
  wire  bru_io_bru_iss_exe_bits_fun_bltu; // @[Execute.scala 99:19]
  wire  bru_io_bru_iss_exe_bits_fun_bgeu; // @[Execute.scala 99:19]
  wire [5:0] bru_io_bru_iss_exe_bits_param_rd0; // @[Execute.scala 99:19]
  wire  bru_io_bru_iss_exe_bits_param_is_rvc; // @[Execute.scala 99:19]
  wire [63:0] bru_io_bru_iss_exe_bits_param_pc; // @[Execute.scala 99:19]
  wire [63:0] bru_io_bru_iss_exe_bits_param_imm; // @[Execute.scala 99:19]
  wire [63:0] bru_io_bru_iss_exe_bits_param_dat_op1; // @[Execute.scala 99:19]
  wire [63:0] bru_io_bru_iss_exe_bits_param_dat_op2; // @[Execute.scala 99:19]
  wire  bru_io_bru_exe_iwb_ready; // @[Execute.scala 99:19]
  wire  bru_io_bru_exe_iwb_valid; // @[Execute.scala 99:19]
  wire [5:0] bru_io_bru_exe_iwb_bits_rd0; // @[Execute.scala 99:19]
  wire [63:0] bru_io_bru_exe_iwb_bits_res; // @[Execute.scala 99:19]
  wire  bru_io_bftq_ready; // @[Execute.scala 99:19]
  wire  bru_io_bftq_valid; // @[Execute.scala 99:19]
  wire [38:0] bru_io_bftq_bits_pc; // @[Execute.scala 99:19]
  wire  bru_io_bftq_bits_bimResp_bim_p; // @[Execute.scala 99:19]
  wire  bru_io_bftq_bits_bimResp_bim_h; // @[Execute.scala 99:19]
  wire  bru_io_bftq_bits_isPredictTaken; // @[Execute.scala 99:19]
  wire  bru_io_jftq_ready; // @[Execute.scala 99:19]
  wire  bru_io_jftq_valid; // @[Execute.scala 99:19]
  wire [38:0] bru_io_jftq_bits_pc; // @[Execute.scala 99:19]
  wire [38:0] bru_io_jftq_bits_btbResp_target; // @[Execute.scala 99:19]
  wire [38:0] bru_io_jftq_bits_rasResp_target; // @[Execute.scala 99:19]
  wire  bru_io_jftq_bits_isRas; // @[Execute.scala 99:19]
  wire  bru_io_bctq_ready; // @[Execute.scala 99:19]
  wire  bru_io_bctq_valid; // @[Execute.scala 99:19]
  wire [38:0] bru_io_bctq_bits_pc; // @[Execute.scala 99:19]
  wire  bru_io_bctq_bits_bimResp_bim_p; // @[Execute.scala 99:19]
  wire  bru_io_bctq_bits_bimResp_bim_h; // @[Execute.scala 99:19]
  wire  bru_io_bctq_bits_isPredictTaken; // @[Execute.scala 99:19]
  wire  bru_io_bctq_bits_isFinalTaken; // @[Execute.scala 99:19]
  wire [63:0] bru_io_bctq_bits_finalTarget; // @[Execute.scala 99:19]
  wire  bru_io_jctq_ready; // @[Execute.scala 99:19]
  wire  bru_io_jctq_valid; // @[Execute.scala 99:19]
  wire [38:0] bru_io_jctq_bits_pc; // @[Execute.scala 99:19]
  wire [38:0] bru_io_jctq_bits_btbResp_target; // @[Execute.scala 99:19]
  wire [38:0] bru_io_jctq_bits_rasResp_target; // @[Execute.scala 99:19]
  wire  bru_io_jctq_bits_isRas; // @[Execute.scala 99:19]
  wire [63:0] bru_io_jctq_bits_finalTarget; // @[Execute.scala 99:19]
  wire  bru_io_bcmm_update_valid; // @[Execute.scala 99:19]
  wire [38:0] bru_io_bcmm_update_bits_pc; // @[Execute.scala 99:19]
  wire  bru_io_bcmm_update_bits_bimResp_bim_p; // @[Execute.scala 99:19]
  wire  bru_io_bcmm_update_bits_bimResp_bim_h; // @[Execute.scala 99:19]
  wire  bru_io_bcmm_update_bits_isFinalTaken; // @[Execute.scala 99:19]
  wire  bru_io_jcmm_update_valid; // @[Execute.scala 99:19]
  wire [38:0] bru_io_jcmm_update_bits_pc; // @[Execute.scala 99:19]
  wire [63:0] bru_io_jcmm_update_bits_finalTarget; // @[Execute.scala 99:19]
  wire  bru_io_flush; // @[Execute.scala 99:19]
  wire  lsu_clock; // @[Execute.scala 101:21]
  wire  lsu_reset; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_ready; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_valid; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_lb; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_lh; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_lw; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_ld; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_lbu; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_lhu; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_lwu; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_sb; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_sh; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_sw; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_sd; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_fence; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_fence_i; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_sfence_vma; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_lr_w; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_sc_w; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_amoswap_w; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_amoadd_w; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_amoxor_w; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_amoand_w; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_amoor_w; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_amomin_w; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_amomax_w; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_amominu_w; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_amomaxu_w; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_lr_d; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_sc_d; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_amoswap_d; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_amoadd_d; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_amoxor_d; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_amoand_d; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_amoor_d; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_amomin_d; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_amomax_d; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_amominu_d; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_amomaxu_d; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_flw; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_fsw; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_fld; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_iss_exe_bits_fun_fsd; // @[Execute.scala 101:21]
  wire [5:0] lsu_io_lsu_iss_exe_bits_param_rd0; // @[Execute.scala 101:21]
  wire [63:0] lsu_io_lsu_iss_exe_bits_param_dat_op1; // @[Execute.scala 101:21]
  wire [63:0] lsu_io_lsu_iss_exe_bits_param_dat_op2; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_exe_iwb_ready; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_exe_iwb_valid; // @[Execute.scala 101:21]
  wire [5:0] lsu_io_lsu_exe_iwb_bits_rd0; // @[Execute.scala 101:21]
  wire [63:0] lsu_io_lsu_exe_iwb_bits_res; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_exe_fwb_valid; // @[Execute.scala 101:21]
  wire  lsu_io_cmm_lsu_is_amo_pending; // @[Execute.scala 101:21]
  wire  lsu_io_cmm_lsu_is_store_commit_0; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_cmm_is_access_fault; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_cmm_is_paging_fault; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_cmm_is_misAlign; // @[Execute.scala 101:21]
  wire [63:0] lsu_io_lsu_cmm_trap_addr; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_mmu_ready; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_mmu_valid; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_mmu_bits_is_W; // @[Execute.scala 101:21]
  wire  lsu_io_lsu_mmu_bits_is_R; // @[Execute.scala 101:21]
  wire [63:0] lsu_io_lsu_mmu_bits_vaddr; // @[Execute.scala 101:21]
  wire  lsu_io_mmu_lsu_ready; // @[Execute.scala 101:21]
  wire  lsu_io_mmu_lsu_valid; // @[Execute.scala 101:21]
  wire [63:0] lsu_io_mmu_lsu_bits_paddr; // @[Execute.scala 101:21]
  wire  lsu_io_mmu_lsu_bits_is_paging_fault; // @[Execute.scala 101:21]
  wire  lsu_io_mmu_lsu_bits_is_access_fault; // @[Execute.scala 101:21]
  wire  lsu_io_missUnit_dcache_acquire_ready; // @[Execute.scala 101:21]
  wire  lsu_io_missUnit_dcache_acquire_valid; // @[Execute.scala 101:21]
  wire [31:0] lsu_io_missUnit_dcache_acquire_bits_address; // @[Execute.scala 101:21]
  wire  lsu_io_missUnit_dcache_grant_ready; // @[Execute.scala 101:21]
  wire  lsu_io_missUnit_dcache_grant_valid; // @[Execute.scala 101:21]
  wire [2:0] lsu_io_missUnit_dcache_grant_bits_opcode; // @[Execute.scala 101:21]
  wire [2:0] lsu_io_missUnit_dcache_grant_bits_size; // @[Execute.scala 101:21]
  wire  lsu_io_missUnit_dcache_grant_bits_source; // @[Execute.scala 101:21]
  wire [4:0] lsu_io_missUnit_dcache_grant_bits_sink; // @[Execute.scala 101:21]
  wire [63:0] lsu_io_missUnit_dcache_grant_bits_data; // @[Execute.scala 101:21]
  wire  lsu_io_missUnit_dcache_grantAck_ready; // @[Execute.scala 101:21]
  wire  lsu_io_missUnit_dcache_grantAck_valid; // @[Execute.scala 101:21]
  wire [4:0] lsu_io_missUnit_dcache_grantAck_bits_sink; // @[Execute.scala 101:21]
  wire  lsu_io_probeUnit_dcache_probe_ready; // @[Execute.scala 101:21]
  wire  lsu_io_probeUnit_dcache_probe_valid; // @[Execute.scala 101:21]
  wire [31:0] lsu_io_probeUnit_dcache_probe_bits_address; // @[Execute.scala 101:21]
  wire  lsu_io_writeBackUnit_dcache_release_ready; // @[Execute.scala 101:21]
  wire  lsu_io_writeBackUnit_dcache_release_valid; // @[Execute.scala 101:21]
  wire [2:0] lsu_io_writeBackUnit_dcache_release_bits_opcode; // @[Execute.scala 101:21]
  wire [2:0] lsu_io_writeBackUnit_dcache_release_bits_param; // @[Execute.scala 101:21]
  wire [2:0] lsu_io_writeBackUnit_dcache_release_bits_size; // @[Execute.scala 101:21]
  wire [31:0] lsu_io_writeBackUnit_dcache_release_bits_address; // @[Execute.scala 101:21]
  wire [63:0] lsu_io_writeBackUnit_dcache_release_bits_data; // @[Execute.scala 101:21]
  wire  lsu_io_writeBackUnit_dcache_grant_ready; // @[Execute.scala 101:21]
  wire  lsu_io_writeBackUnit_dcache_grant_valid; // @[Execute.scala 101:21]
  wire  lsu_io_writeBackUnit_dcache_grant_bits_source; // @[Execute.scala 101:21]
  wire  lsu_io_system_getPut_ready; // @[Execute.scala 101:21]
  wire  lsu_io_system_getPut_valid; // @[Execute.scala 101:21]
  wire [2:0] lsu_io_system_getPut_bits_opcode; // @[Execute.scala 101:21]
  wire [31:0] lsu_io_system_getPut_bits_address; // @[Execute.scala 101:21]
  wire [7:0] lsu_io_system_getPut_bits_mask; // @[Execute.scala 101:21]
  wire [63:0] lsu_io_system_getPut_bits_data; // @[Execute.scala 101:21]
  wire  lsu_io_system_access_ready; // @[Execute.scala 101:21]
  wire  lsu_io_system_access_valid; // @[Execute.scala 101:21]
  wire [2:0] lsu_io_system_access_bits_opcode; // @[Execute.scala 101:21]
  wire [63:0] lsu_io_system_access_bits_data; // @[Execute.scala 101:21]
  wire  lsu_io_periph_getPut_ready; // @[Execute.scala 101:21]
  wire  lsu_io_periph_getPut_valid; // @[Execute.scala 101:21]
  wire [2:0] lsu_io_periph_getPut_bits_opcode; // @[Execute.scala 101:21]
  wire [31:0] lsu_io_periph_getPut_bits_address; // @[Execute.scala 101:21]
  wire [7:0] lsu_io_periph_getPut_bits_mask; // @[Execute.scala 101:21]
  wire [63:0] lsu_io_periph_getPut_bits_data; // @[Execute.scala 101:21]
  wire  lsu_io_periph_access_ready; // @[Execute.scala 101:21]
  wire  lsu_io_periph_access_valid; // @[Execute.scala 101:21]
  wire [2:0] lsu_io_periph_access_bits_opcode; // @[Execute.scala 101:21]
  wire [63:0] lsu_io_periph_access_bits_data; // @[Execute.scala 101:21]
  wire  lsu_io_flush; // @[Execute.scala 101:21]
  wire  csr_clock; // @[Execute.scala 169:19]
  wire  csr_reset; // @[Execute.scala 169:19]
  wire  csr_io_csr_iss_exe_ready; // @[Execute.scala 169:19]
  wire  csr_io_csr_iss_exe_valid; // @[Execute.scala 169:19]
  wire  csr_io_csr_iss_exe_bits_fun_rw; // @[Execute.scala 169:19]
  wire  csr_io_csr_iss_exe_bits_fun_rs; // @[Execute.scala 169:19]
  wire  csr_io_csr_iss_exe_bits_fun_rc; // @[Execute.scala 169:19]
  wire [5:0] csr_io_csr_iss_exe_bits_param_rd0; // @[Execute.scala 169:19]
  wire [63:0] csr_io_csr_iss_exe_bits_param_dat_op1; // @[Execute.scala 169:19]
  wire [63:0] csr_io_csr_iss_exe_bits_param_dat_op2; // @[Execute.scala 169:19]
  wire  csr_io_csr_exe_iwb_ready; // @[Execute.scala 169:19]
  wire  csr_io_csr_exe_iwb_valid; // @[Execute.scala 169:19]
  wire [5:0] csr_io_csr_exe_iwb_bits_rd0; // @[Execute.scala 169:19]
  wire [63:0] csr_io_csr_exe_iwb_bits_res; // @[Execute.scala 169:19]
  wire  csr_io_csr_addr_valid; // @[Execute.scala 169:19]
  wire [11:0] csr_io_csr_addr_bits; // @[Execute.scala 169:19]
  wire  csr_io_csr_data_valid; // @[Execute.scala 169:19]
  wire [63:0] csr_io_csr_data_bits; // @[Execute.scala 169:19]
  wire  csr_io_csr_cmm_op_ready; // @[Execute.scala 169:19]
  wire  csr_io_csr_cmm_op_valid; // @[Execute.scala 169:19]
  wire [11:0] csr_io_csr_cmm_op_bits_addr; // @[Execute.scala 169:19]
  wire [63:0] csr_io_csr_cmm_op_bits_dat_i; // @[Execute.scala 169:19]
  wire  csr_io_csr_cmm_op_bits_op_rw; // @[Execute.scala 169:19]
  wire  csr_io_csr_cmm_op_bits_op_rs; // @[Execute.scala 169:19]
  wire  csr_io_csr_cmm_op_bits_op_rc; // @[Execute.scala 169:19]
  wire  csr_io_flush; // @[Execute.scala 169:19]
  wire  mulDiv_0_clock; // @[Execute.scala 170:76]
  wire  mulDiv_0_reset; // @[Execute.scala 170:76]
  wire  mulDiv_0_io_mul_iss_exe_ready; // @[Execute.scala 170:76]
  wire  mulDiv_0_io_mul_iss_exe_valid; // @[Execute.scala 170:76]
  wire  mulDiv_0_io_mul_iss_exe_bits_fun_mul; // @[Execute.scala 170:76]
  wire  mulDiv_0_io_mul_iss_exe_bits_fun_mulh; // @[Execute.scala 170:76]
  wire  mulDiv_0_io_mul_iss_exe_bits_fun_mulhsu; // @[Execute.scala 170:76]
  wire  mulDiv_0_io_mul_iss_exe_bits_fun_mulhu; // @[Execute.scala 170:76]
  wire  mulDiv_0_io_mul_iss_exe_bits_fun_div; // @[Execute.scala 170:76]
  wire  mulDiv_0_io_mul_iss_exe_bits_fun_divu; // @[Execute.scala 170:76]
  wire  mulDiv_0_io_mul_iss_exe_bits_fun_rem; // @[Execute.scala 170:76]
  wire  mulDiv_0_io_mul_iss_exe_bits_fun_remu; // @[Execute.scala 170:76]
  wire  mulDiv_0_io_mul_iss_exe_bits_fun_mulw; // @[Execute.scala 170:76]
  wire  mulDiv_0_io_mul_iss_exe_bits_fun_divw; // @[Execute.scala 170:76]
  wire  mulDiv_0_io_mul_iss_exe_bits_fun_divuw; // @[Execute.scala 170:76]
  wire  mulDiv_0_io_mul_iss_exe_bits_fun_remw; // @[Execute.scala 170:76]
  wire  mulDiv_0_io_mul_iss_exe_bits_fun_remuw; // @[Execute.scala 170:76]
  wire [5:0] mulDiv_0_io_mul_iss_exe_bits_param_rd0; // @[Execute.scala 170:76]
  wire [63:0] mulDiv_0_io_mul_iss_exe_bits_param_dat_op1; // @[Execute.scala 170:76]
  wire [63:0] mulDiv_0_io_mul_iss_exe_bits_param_dat_op2; // @[Execute.scala 170:76]
  wire  mulDiv_0_io_mul_exe_iwb_ready; // @[Execute.scala 170:76]
  wire  mulDiv_0_io_mul_exe_iwb_valid; // @[Execute.scala 170:76]
  wire [5:0] mulDiv_0_io_mul_exe_iwb_bits_rd0; // @[Execute.scala 170:76]
  wire [63:0] mulDiv_0_io_mul_exe_iwb_bits_res; // @[Execute.scala 170:76]
  wire  mulDiv_0_io_flush; // @[Execute.scala 170:76]
  Alu alu_0 ( // @[Execute.scala 98:52]
    .clock(alu_0_clock),
    .reset(alu_0_reset),
    .io_alu_iss_exe_ready(alu_0_io_alu_iss_exe_ready),
    .io_alu_iss_exe_valid(alu_0_io_alu_iss_exe_valid),
    .io_alu_iss_exe_bits_fun_add(alu_0_io_alu_iss_exe_bits_fun_add),
    .io_alu_iss_exe_bits_fun_slt(alu_0_io_alu_iss_exe_bits_fun_slt),
    .io_alu_iss_exe_bits_fun_xor(alu_0_io_alu_iss_exe_bits_fun_xor),
    .io_alu_iss_exe_bits_fun_or(alu_0_io_alu_iss_exe_bits_fun_or),
    .io_alu_iss_exe_bits_fun_and(alu_0_io_alu_iss_exe_bits_fun_and),
    .io_alu_iss_exe_bits_fun_sll(alu_0_io_alu_iss_exe_bits_fun_sll),
    .io_alu_iss_exe_bits_fun_srl(alu_0_io_alu_iss_exe_bits_fun_srl),
    .io_alu_iss_exe_bits_fun_sra(alu_0_io_alu_iss_exe_bits_fun_sra),
    .io_alu_iss_exe_bits_param_rd0(alu_0_io_alu_iss_exe_bits_param_rd0),
    .io_alu_iss_exe_bits_param_is_32w(alu_0_io_alu_iss_exe_bits_param_is_32w),
    .io_alu_iss_exe_bits_param_is_usi(alu_0_io_alu_iss_exe_bits_param_is_usi),
    .io_alu_iss_exe_bits_param_dat_op1(alu_0_io_alu_iss_exe_bits_param_dat_op1),
    .io_alu_iss_exe_bits_param_dat_op2(alu_0_io_alu_iss_exe_bits_param_dat_op2),
    .io_alu_exe_iwb_ready(alu_0_io_alu_exe_iwb_ready),
    .io_alu_exe_iwb_valid(alu_0_io_alu_exe_iwb_valid),
    .io_alu_exe_iwb_bits_rd0(alu_0_io_alu_exe_iwb_bits_rd0),
    .io_alu_exe_iwb_bits_res(alu_0_io_alu_exe_iwb_bits_res),
    .io_flush(alu_0_io_flush)
  );
  Bru bru ( // @[Execute.scala 99:19]
    .clock(bru_clock),
    .reset(bru_reset),
    .io_bru_iss_exe_ready(bru_io_bru_iss_exe_ready),
    .io_bru_iss_exe_valid(bru_io_bru_iss_exe_valid),
    .io_bru_iss_exe_bits_fun_jalr(bru_io_bru_iss_exe_bits_fun_jalr),
    .io_bru_iss_exe_bits_fun_beq(bru_io_bru_iss_exe_bits_fun_beq),
    .io_bru_iss_exe_bits_fun_bne(bru_io_bru_iss_exe_bits_fun_bne),
    .io_bru_iss_exe_bits_fun_blt(bru_io_bru_iss_exe_bits_fun_blt),
    .io_bru_iss_exe_bits_fun_bge(bru_io_bru_iss_exe_bits_fun_bge),
    .io_bru_iss_exe_bits_fun_bltu(bru_io_bru_iss_exe_bits_fun_bltu),
    .io_bru_iss_exe_bits_fun_bgeu(bru_io_bru_iss_exe_bits_fun_bgeu),
    .io_bru_iss_exe_bits_param_rd0(bru_io_bru_iss_exe_bits_param_rd0),
    .io_bru_iss_exe_bits_param_is_rvc(bru_io_bru_iss_exe_bits_param_is_rvc),
    .io_bru_iss_exe_bits_param_pc(bru_io_bru_iss_exe_bits_param_pc),
    .io_bru_iss_exe_bits_param_imm(bru_io_bru_iss_exe_bits_param_imm),
    .io_bru_iss_exe_bits_param_dat_op1(bru_io_bru_iss_exe_bits_param_dat_op1),
    .io_bru_iss_exe_bits_param_dat_op2(bru_io_bru_iss_exe_bits_param_dat_op2),
    .io_bru_exe_iwb_ready(bru_io_bru_exe_iwb_ready),
    .io_bru_exe_iwb_valid(bru_io_bru_exe_iwb_valid),
    .io_bru_exe_iwb_bits_rd0(bru_io_bru_exe_iwb_bits_rd0),
    .io_bru_exe_iwb_bits_res(bru_io_bru_exe_iwb_bits_res),
    .io_bftq_ready(bru_io_bftq_ready),
    .io_bftq_valid(bru_io_bftq_valid),
    .io_bftq_bits_pc(bru_io_bftq_bits_pc),
    .io_bftq_bits_bimResp_bim_p(bru_io_bftq_bits_bimResp_bim_p),
    .io_bftq_bits_bimResp_bim_h(bru_io_bftq_bits_bimResp_bim_h),
    .io_bftq_bits_isPredictTaken(bru_io_bftq_bits_isPredictTaken),
    .io_jftq_ready(bru_io_jftq_ready),
    .io_jftq_valid(bru_io_jftq_valid),
    .io_jftq_bits_pc(bru_io_jftq_bits_pc),
    .io_jftq_bits_btbResp_target(bru_io_jftq_bits_btbResp_target),
    .io_jftq_bits_rasResp_target(bru_io_jftq_bits_rasResp_target),
    .io_jftq_bits_isRas(bru_io_jftq_bits_isRas),
    .io_bctq_ready(bru_io_bctq_ready),
    .io_bctq_valid(bru_io_bctq_valid),
    .io_bctq_bits_pc(bru_io_bctq_bits_pc),
    .io_bctq_bits_bimResp_bim_p(bru_io_bctq_bits_bimResp_bim_p),
    .io_bctq_bits_bimResp_bim_h(bru_io_bctq_bits_bimResp_bim_h),
    .io_bctq_bits_isPredictTaken(bru_io_bctq_bits_isPredictTaken),
    .io_bctq_bits_isFinalTaken(bru_io_bctq_bits_isFinalTaken),
    .io_bctq_bits_finalTarget(bru_io_bctq_bits_finalTarget),
    .io_jctq_ready(bru_io_jctq_ready),
    .io_jctq_valid(bru_io_jctq_valid),
    .io_jctq_bits_pc(bru_io_jctq_bits_pc),
    .io_jctq_bits_btbResp_target(bru_io_jctq_bits_btbResp_target),
    .io_jctq_bits_rasResp_target(bru_io_jctq_bits_rasResp_target),
    .io_jctq_bits_isRas(bru_io_jctq_bits_isRas),
    .io_jctq_bits_finalTarget(bru_io_jctq_bits_finalTarget),
    .io_bcmm_update_valid(bru_io_bcmm_update_valid),
    .io_bcmm_update_bits_pc(bru_io_bcmm_update_bits_pc),
    .io_bcmm_update_bits_bimResp_bim_p(bru_io_bcmm_update_bits_bimResp_bim_p),
    .io_bcmm_update_bits_bimResp_bim_h(bru_io_bcmm_update_bits_bimResp_bim_h),
    .io_bcmm_update_bits_isFinalTaken(bru_io_bcmm_update_bits_isFinalTaken),
    .io_jcmm_update_valid(bru_io_jcmm_update_valid),
    .io_jcmm_update_bits_pc(bru_io_jcmm_update_bits_pc),
    .io_jcmm_update_bits_finalTarget(bru_io_jcmm_update_bits_finalTarget),
    .io_flush(bru_io_flush)
  );
  Lsu lsu ( // @[Execute.scala 101:21]
    .clock(lsu_clock),
    .reset(lsu_reset),
    .io_lsu_iss_exe_ready(lsu_io_lsu_iss_exe_ready),
    .io_lsu_iss_exe_valid(lsu_io_lsu_iss_exe_valid),
    .io_lsu_iss_exe_bits_fun_lb(lsu_io_lsu_iss_exe_bits_fun_lb),
    .io_lsu_iss_exe_bits_fun_lh(lsu_io_lsu_iss_exe_bits_fun_lh),
    .io_lsu_iss_exe_bits_fun_lw(lsu_io_lsu_iss_exe_bits_fun_lw),
    .io_lsu_iss_exe_bits_fun_ld(lsu_io_lsu_iss_exe_bits_fun_ld),
    .io_lsu_iss_exe_bits_fun_lbu(lsu_io_lsu_iss_exe_bits_fun_lbu),
    .io_lsu_iss_exe_bits_fun_lhu(lsu_io_lsu_iss_exe_bits_fun_lhu),
    .io_lsu_iss_exe_bits_fun_lwu(lsu_io_lsu_iss_exe_bits_fun_lwu),
    .io_lsu_iss_exe_bits_fun_sb(lsu_io_lsu_iss_exe_bits_fun_sb),
    .io_lsu_iss_exe_bits_fun_sh(lsu_io_lsu_iss_exe_bits_fun_sh),
    .io_lsu_iss_exe_bits_fun_sw(lsu_io_lsu_iss_exe_bits_fun_sw),
    .io_lsu_iss_exe_bits_fun_sd(lsu_io_lsu_iss_exe_bits_fun_sd),
    .io_lsu_iss_exe_bits_fun_fence(lsu_io_lsu_iss_exe_bits_fun_fence),
    .io_lsu_iss_exe_bits_fun_fence_i(lsu_io_lsu_iss_exe_bits_fun_fence_i),
    .io_lsu_iss_exe_bits_fun_sfence_vma(lsu_io_lsu_iss_exe_bits_fun_sfence_vma),
    .io_lsu_iss_exe_bits_fun_lr_w(lsu_io_lsu_iss_exe_bits_fun_lr_w),
    .io_lsu_iss_exe_bits_fun_sc_w(lsu_io_lsu_iss_exe_bits_fun_sc_w),
    .io_lsu_iss_exe_bits_fun_amoswap_w(lsu_io_lsu_iss_exe_bits_fun_amoswap_w),
    .io_lsu_iss_exe_bits_fun_amoadd_w(lsu_io_lsu_iss_exe_bits_fun_amoadd_w),
    .io_lsu_iss_exe_bits_fun_amoxor_w(lsu_io_lsu_iss_exe_bits_fun_amoxor_w),
    .io_lsu_iss_exe_bits_fun_amoand_w(lsu_io_lsu_iss_exe_bits_fun_amoand_w),
    .io_lsu_iss_exe_bits_fun_amoor_w(lsu_io_lsu_iss_exe_bits_fun_amoor_w),
    .io_lsu_iss_exe_bits_fun_amomin_w(lsu_io_lsu_iss_exe_bits_fun_amomin_w),
    .io_lsu_iss_exe_bits_fun_amomax_w(lsu_io_lsu_iss_exe_bits_fun_amomax_w),
    .io_lsu_iss_exe_bits_fun_amominu_w(lsu_io_lsu_iss_exe_bits_fun_amominu_w),
    .io_lsu_iss_exe_bits_fun_amomaxu_w(lsu_io_lsu_iss_exe_bits_fun_amomaxu_w),
    .io_lsu_iss_exe_bits_fun_lr_d(lsu_io_lsu_iss_exe_bits_fun_lr_d),
    .io_lsu_iss_exe_bits_fun_sc_d(lsu_io_lsu_iss_exe_bits_fun_sc_d),
    .io_lsu_iss_exe_bits_fun_amoswap_d(lsu_io_lsu_iss_exe_bits_fun_amoswap_d),
    .io_lsu_iss_exe_bits_fun_amoadd_d(lsu_io_lsu_iss_exe_bits_fun_amoadd_d),
    .io_lsu_iss_exe_bits_fun_amoxor_d(lsu_io_lsu_iss_exe_bits_fun_amoxor_d),
    .io_lsu_iss_exe_bits_fun_amoand_d(lsu_io_lsu_iss_exe_bits_fun_amoand_d),
    .io_lsu_iss_exe_bits_fun_amoor_d(lsu_io_lsu_iss_exe_bits_fun_amoor_d),
    .io_lsu_iss_exe_bits_fun_amomin_d(lsu_io_lsu_iss_exe_bits_fun_amomin_d),
    .io_lsu_iss_exe_bits_fun_amomax_d(lsu_io_lsu_iss_exe_bits_fun_amomax_d),
    .io_lsu_iss_exe_bits_fun_amominu_d(lsu_io_lsu_iss_exe_bits_fun_amominu_d),
    .io_lsu_iss_exe_bits_fun_amomaxu_d(lsu_io_lsu_iss_exe_bits_fun_amomaxu_d),
    .io_lsu_iss_exe_bits_fun_flw(lsu_io_lsu_iss_exe_bits_fun_flw),
    .io_lsu_iss_exe_bits_fun_fsw(lsu_io_lsu_iss_exe_bits_fun_fsw),
    .io_lsu_iss_exe_bits_fun_fld(lsu_io_lsu_iss_exe_bits_fun_fld),
    .io_lsu_iss_exe_bits_fun_fsd(lsu_io_lsu_iss_exe_bits_fun_fsd),
    .io_lsu_iss_exe_bits_param_rd0(lsu_io_lsu_iss_exe_bits_param_rd0),
    .io_lsu_iss_exe_bits_param_dat_op1(lsu_io_lsu_iss_exe_bits_param_dat_op1),
    .io_lsu_iss_exe_bits_param_dat_op2(lsu_io_lsu_iss_exe_bits_param_dat_op2),
    .io_lsu_exe_iwb_ready(lsu_io_lsu_exe_iwb_ready),
    .io_lsu_exe_iwb_valid(lsu_io_lsu_exe_iwb_valid),
    .io_lsu_exe_iwb_bits_rd0(lsu_io_lsu_exe_iwb_bits_rd0),
    .io_lsu_exe_iwb_bits_res(lsu_io_lsu_exe_iwb_bits_res),
    .io_lsu_exe_fwb_valid(lsu_io_lsu_exe_fwb_valid),
    .io_cmm_lsu_is_amo_pending(lsu_io_cmm_lsu_is_amo_pending),
    .io_cmm_lsu_is_store_commit_0(lsu_io_cmm_lsu_is_store_commit_0),
    .io_lsu_cmm_is_access_fault(lsu_io_lsu_cmm_is_access_fault),
    .io_lsu_cmm_is_paging_fault(lsu_io_lsu_cmm_is_paging_fault),
    .io_lsu_cmm_is_misAlign(lsu_io_lsu_cmm_is_misAlign),
    .io_lsu_cmm_trap_addr(lsu_io_lsu_cmm_trap_addr),
    .io_lsu_mmu_ready(lsu_io_lsu_mmu_ready),
    .io_lsu_mmu_valid(lsu_io_lsu_mmu_valid),
    .io_lsu_mmu_bits_is_W(lsu_io_lsu_mmu_bits_is_W),
    .io_lsu_mmu_bits_is_R(lsu_io_lsu_mmu_bits_is_R),
    .io_lsu_mmu_bits_vaddr(lsu_io_lsu_mmu_bits_vaddr),
    .io_mmu_lsu_ready(lsu_io_mmu_lsu_ready),
    .io_mmu_lsu_valid(lsu_io_mmu_lsu_valid),
    .io_mmu_lsu_bits_paddr(lsu_io_mmu_lsu_bits_paddr),
    .io_mmu_lsu_bits_is_paging_fault(lsu_io_mmu_lsu_bits_is_paging_fault),
    .io_mmu_lsu_bits_is_access_fault(lsu_io_mmu_lsu_bits_is_access_fault),
    .io_missUnit_dcache_acquire_ready(lsu_io_missUnit_dcache_acquire_ready),
    .io_missUnit_dcache_acquire_valid(lsu_io_missUnit_dcache_acquire_valid),
    .io_missUnit_dcache_acquire_bits_address(lsu_io_missUnit_dcache_acquire_bits_address),
    .io_missUnit_dcache_grant_ready(lsu_io_missUnit_dcache_grant_ready),
    .io_missUnit_dcache_grant_valid(lsu_io_missUnit_dcache_grant_valid),
    .io_missUnit_dcache_grant_bits_opcode(lsu_io_missUnit_dcache_grant_bits_opcode),
    .io_missUnit_dcache_grant_bits_size(lsu_io_missUnit_dcache_grant_bits_size),
    .io_missUnit_dcache_grant_bits_source(lsu_io_missUnit_dcache_grant_bits_source),
    .io_missUnit_dcache_grant_bits_sink(lsu_io_missUnit_dcache_grant_bits_sink),
    .io_missUnit_dcache_grant_bits_data(lsu_io_missUnit_dcache_grant_bits_data),
    .io_missUnit_dcache_grantAck_ready(lsu_io_missUnit_dcache_grantAck_ready),
    .io_missUnit_dcache_grantAck_valid(lsu_io_missUnit_dcache_grantAck_valid),
    .io_missUnit_dcache_grantAck_bits_sink(lsu_io_missUnit_dcache_grantAck_bits_sink),
    .io_probeUnit_dcache_probe_ready(lsu_io_probeUnit_dcache_probe_ready),
    .io_probeUnit_dcache_probe_valid(lsu_io_probeUnit_dcache_probe_valid),
    .io_probeUnit_dcache_probe_bits_address(lsu_io_probeUnit_dcache_probe_bits_address),
    .io_writeBackUnit_dcache_release_ready(lsu_io_writeBackUnit_dcache_release_ready),
    .io_writeBackUnit_dcache_release_valid(lsu_io_writeBackUnit_dcache_release_valid),
    .io_writeBackUnit_dcache_release_bits_opcode(lsu_io_writeBackUnit_dcache_release_bits_opcode),
    .io_writeBackUnit_dcache_release_bits_param(lsu_io_writeBackUnit_dcache_release_bits_param),
    .io_writeBackUnit_dcache_release_bits_size(lsu_io_writeBackUnit_dcache_release_bits_size),
    .io_writeBackUnit_dcache_release_bits_address(lsu_io_writeBackUnit_dcache_release_bits_address),
    .io_writeBackUnit_dcache_release_bits_data(lsu_io_writeBackUnit_dcache_release_bits_data),
    .io_writeBackUnit_dcache_grant_ready(lsu_io_writeBackUnit_dcache_grant_ready),
    .io_writeBackUnit_dcache_grant_valid(lsu_io_writeBackUnit_dcache_grant_valid),
    .io_writeBackUnit_dcache_grant_bits_source(lsu_io_writeBackUnit_dcache_grant_bits_source),
    .io_system_getPut_ready(lsu_io_system_getPut_ready),
    .io_system_getPut_valid(lsu_io_system_getPut_valid),
    .io_system_getPut_bits_opcode(lsu_io_system_getPut_bits_opcode),
    .io_system_getPut_bits_address(lsu_io_system_getPut_bits_address),
    .io_system_getPut_bits_mask(lsu_io_system_getPut_bits_mask),
    .io_system_getPut_bits_data(lsu_io_system_getPut_bits_data),
    .io_system_access_ready(lsu_io_system_access_ready),
    .io_system_access_valid(lsu_io_system_access_valid),
    .io_system_access_bits_opcode(lsu_io_system_access_bits_opcode),
    .io_system_access_bits_data(lsu_io_system_access_bits_data),
    .io_periph_getPut_ready(lsu_io_periph_getPut_ready),
    .io_periph_getPut_valid(lsu_io_periph_getPut_valid),
    .io_periph_getPut_bits_opcode(lsu_io_periph_getPut_bits_opcode),
    .io_periph_getPut_bits_address(lsu_io_periph_getPut_bits_address),
    .io_periph_getPut_bits_mask(lsu_io_periph_getPut_bits_mask),
    .io_periph_getPut_bits_data(lsu_io_periph_getPut_bits_data),
    .io_periph_access_ready(lsu_io_periph_access_ready),
    .io_periph_access_valid(lsu_io_periph_access_valid),
    .io_periph_access_bits_opcode(lsu_io_periph_access_bits_opcode),
    .io_periph_access_bits_data(lsu_io_periph_access_bits_data),
    .io_flush(lsu_io_flush)
  );
  Csr csr ( // @[Execute.scala 169:19]
    .clock(csr_clock),
    .reset(csr_reset),
    .io_csr_iss_exe_ready(csr_io_csr_iss_exe_ready),
    .io_csr_iss_exe_valid(csr_io_csr_iss_exe_valid),
    .io_csr_iss_exe_bits_fun_rw(csr_io_csr_iss_exe_bits_fun_rw),
    .io_csr_iss_exe_bits_fun_rs(csr_io_csr_iss_exe_bits_fun_rs),
    .io_csr_iss_exe_bits_fun_rc(csr_io_csr_iss_exe_bits_fun_rc),
    .io_csr_iss_exe_bits_param_rd0(csr_io_csr_iss_exe_bits_param_rd0),
    .io_csr_iss_exe_bits_param_dat_op1(csr_io_csr_iss_exe_bits_param_dat_op1),
    .io_csr_iss_exe_bits_param_dat_op2(csr_io_csr_iss_exe_bits_param_dat_op2),
    .io_csr_exe_iwb_ready(csr_io_csr_exe_iwb_ready),
    .io_csr_exe_iwb_valid(csr_io_csr_exe_iwb_valid),
    .io_csr_exe_iwb_bits_rd0(csr_io_csr_exe_iwb_bits_rd0),
    .io_csr_exe_iwb_bits_res(csr_io_csr_exe_iwb_bits_res),
    .io_csr_addr_valid(csr_io_csr_addr_valid),
    .io_csr_addr_bits(csr_io_csr_addr_bits),
    .io_csr_data_valid(csr_io_csr_data_valid),
    .io_csr_data_bits(csr_io_csr_data_bits),
    .io_csr_cmm_op_ready(csr_io_csr_cmm_op_ready),
    .io_csr_cmm_op_valid(csr_io_csr_cmm_op_valid),
    .io_csr_cmm_op_bits_addr(csr_io_csr_cmm_op_bits_addr),
    .io_csr_cmm_op_bits_dat_i(csr_io_csr_cmm_op_bits_dat_i),
    .io_csr_cmm_op_bits_op_rw(csr_io_csr_cmm_op_bits_op_rw),
    .io_csr_cmm_op_bits_op_rs(csr_io_csr_cmm_op_bits_op_rs),
    .io_csr_cmm_op_bits_op_rc(csr_io_csr_cmm_op_bits_op_rc),
    .io_flush(csr_io_flush)
  );
  MulDiv mulDiv_0 ( // @[Execute.scala 170:76]
    .clock(mulDiv_0_clock),
    .reset(mulDiv_0_reset),
    .io_mul_iss_exe_ready(mulDiv_0_io_mul_iss_exe_ready),
    .io_mul_iss_exe_valid(mulDiv_0_io_mul_iss_exe_valid),
    .io_mul_iss_exe_bits_fun_mul(mulDiv_0_io_mul_iss_exe_bits_fun_mul),
    .io_mul_iss_exe_bits_fun_mulh(mulDiv_0_io_mul_iss_exe_bits_fun_mulh),
    .io_mul_iss_exe_bits_fun_mulhsu(mulDiv_0_io_mul_iss_exe_bits_fun_mulhsu),
    .io_mul_iss_exe_bits_fun_mulhu(mulDiv_0_io_mul_iss_exe_bits_fun_mulhu),
    .io_mul_iss_exe_bits_fun_div(mulDiv_0_io_mul_iss_exe_bits_fun_div),
    .io_mul_iss_exe_bits_fun_divu(mulDiv_0_io_mul_iss_exe_bits_fun_divu),
    .io_mul_iss_exe_bits_fun_rem(mulDiv_0_io_mul_iss_exe_bits_fun_rem),
    .io_mul_iss_exe_bits_fun_remu(mulDiv_0_io_mul_iss_exe_bits_fun_remu),
    .io_mul_iss_exe_bits_fun_mulw(mulDiv_0_io_mul_iss_exe_bits_fun_mulw),
    .io_mul_iss_exe_bits_fun_divw(mulDiv_0_io_mul_iss_exe_bits_fun_divw),
    .io_mul_iss_exe_bits_fun_divuw(mulDiv_0_io_mul_iss_exe_bits_fun_divuw),
    .io_mul_iss_exe_bits_fun_remw(mulDiv_0_io_mul_iss_exe_bits_fun_remw),
    .io_mul_iss_exe_bits_fun_remuw(mulDiv_0_io_mul_iss_exe_bits_fun_remuw),
    .io_mul_iss_exe_bits_param_rd0(mulDiv_0_io_mul_iss_exe_bits_param_rd0),
    .io_mul_iss_exe_bits_param_dat_op1(mulDiv_0_io_mul_iss_exe_bits_param_dat_op1),
    .io_mul_iss_exe_bits_param_dat_op2(mulDiv_0_io_mul_iss_exe_bits_param_dat_op2),
    .io_mul_exe_iwb_ready(mulDiv_0_io_mul_exe_iwb_ready),
    .io_mul_exe_iwb_valid(mulDiv_0_io_mul_exe_iwb_valid),
    .io_mul_exe_iwb_bits_rd0(mulDiv_0_io_mul_exe_iwb_bits_rd0),
    .io_mul_exe_iwb_bits_res(mulDiv_0_io_mul_exe_iwb_bits_res),
    .io_flush(mulDiv_0_io_flush)
  );
  assign io_alu_iss_exe_0_ready = alu_0_io_alu_iss_exe_ready; // @[Execute.scala 185:27]
  assign io_alu_exe_iwb_0_valid = alu_0_io_alu_exe_iwb_valid; // @[Execute.scala 186:27]
  assign io_alu_exe_iwb_0_bits_rd0 = alu_0_io_alu_exe_iwb_bits_rd0; // @[Execute.scala 186:27]
  assign io_alu_exe_iwb_0_bits_res = alu_0_io_alu_exe_iwb_bits_res; // @[Execute.scala 186:27]
  assign io_bru_iss_exe_ready = bru_io_bru_iss_exe_ready; // @[Execute.scala 191:22]
  assign io_bru_exe_iwb_valid = bru_io_bru_exe_iwb_valid; // @[Execute.scala 192:22]
  assign io_bru_exe_iwb_bits_rd0 = bru_io_bru_exe_iwb_bits_rd0; // @[Execute.scala 192:22]
  assign io_bru_exe_iwb_bits_res = bru_io_bru_exe_iwb_bits_res; // @[Execute.scala 192:22]
  assign io_csr_iss_exe_ready = csr_io_csr_iss_exe_ready; // @[Execute.scala 204:22]
  assign io_csr_exe_iwb_valid = csr_io_csr_exe_iwb_valid; // @[Execute.scala 205:22]
  assign io_csr_exe_iwb_bits_rd0 = csr_io_csr_exe_iwb_bits_rd0; // @[Execute.scala 205:22]
  assign io_csr_exe_iwb_bits_res = csr_io_csr_exe_iwb_bits_res; // @[Execute.scala 205:22]
  assign io_lsu_iss_exe_ready = lsu_io_lsu_iss_exe_ready; // @[Execute.scala 103:24]
  assign io_lsu_exe_iwb_valid = lsu_io_lsu_exe_iwb_valid; // @[Execute.scala 104:24]
  assign io_lsu_exe_iwb_bits_rd0 = lsu_io_lsu_exe_iwb_bits_rd0; // @[Execute.scala 104:24]
  assign io_lsu_exe_iwb_bits_res = lsu_io_lsu_exe_iwb_bits_res; // @[Execute.scala 104:24]
  assign io_lsu_exe_fwb_valid = lsu_io_lsu_exe_fwb_valid; // @[Execute.scala 105:24]
  assign io_mul_iss_exe_0_ready = mulDiv_0_io_mul_iss_exe_ready; // @[Execute.scala 212:30]
  assign io_mul_exe_iwb_0_valid = mulDiv_0_io_mul_exe_iwb_valid; // @[Execute.scala 213:30]
  assign io_mul_exe_iwb_0_bits_rd0 = mulDiv_0_io_mul_exe_iwb_bits_rd0; // @[Execute.scala 213:30]
  assign io_mul_exe_iwb_0_bits_res = mulDiv_0_io_mul_exe_iwb_bits_res; // @[Execute.scala 213:30]
  assign io_bftq_ready = bru_io_bftq_ready; // @[Execute.scala 195:15]
  assign io_jftq_ready = bru_io_jftq_ready; // @[Execute.scala 196:15]
  assign io_bctq_valid = bru_io_bctq_valid; // @[Execute.scala 198:11]
  assign io_bctq_bits_isPredictTaken = bru_io_bctq_bits_isPredictTaken; // @[Execute.scala 198:11]
  assign io_bctq_bits_isFinalTaken = bru_io_bctq_bits_isFinalTaken; // @[Execute.scala 198:11]
  assign io_bctq_bits_finalTarget = bru_io_bctq_bits_finalTarget; // @[Execute.scala 198:11]
  assign io_jctq_valid = bru_io_jctq_valid; // @[Execute.scala 199:11]
  assign io_jctq_bits_btbResp_target = bru_io_jctq_bits_btbResp_target; // @[Execute.scala 199:11]
  assign io_jctq_bits_rasResp_target = bru_io_jctq_bits_rasResp_target; // @[Execute.scala 199:11]
  assign io_jctq_bits_isRas = bru_io_jctq_bits_isRas; // @[Execute.scala 199:11]
  assign io_jctq_bits_finalTarget = bru_io_jctq_bits_finalTarget; // @[Execute.scala 199:11]
  assign io_bcmm_update_valid = bru_io_bcmm_update_valid; // @[Execute.scala 201:18]
  assign io_bcmm_update_bits_pc = bru_io_bcmm_update_bits_pc; // @[Execute.scala 201:18]
  assign io_bcmm_update_bits_bimResp_bim_p = bru_io_bcmm_update_bits_bimResp_bim_p; // @[Execute.scala 201:18]
  assign io_bcmm_update_bits_bimResp_bim_h = bru_io_bcmm_update_bits_bimResp_bim_h; // @[Execute.scala 201:18]
  assign io_bcmm_update_bits_isFinalTaken = bru_io_bcmm_update_bits_isFinalTaken; // @[Execute.scala 201:18]
  assign io_jcmm_update_valid = bru_io_jcmm_update_valid; // @[Execute.scala 202:18]
  assign io_jcmm_update_bits_pc = bru_io_jcmm_update_bits_pc; // @[Execute.scala 202:18]
  assign io_jcmm_update_bits_finalTarget = bru_io_jcmm_update_bits_finalTarget; // @[Execute.scala 202:18]
  assign io_csr_addr_valid = csr_io_csr_addr_valid; // @[Execute.scala 206:19]
  assign io_csr_addr_bits = csr_io_csr_addr_bits; // @[Execute.scala 206:19]
  assign io_csr_cmm_op_valid = csr_io_csr_cmm_op_valid; // @[Execute.scala 208:21]
  assign io_csr_cmm_op_bits_addr = csr_io_csr_cmm_op_bits_addr; // @[Execute.scala 208:21]
  assign io_csr_cmm_op_bits_dat_i = csr_io_csr_cmm_op_bits_dat_i; // @[Execute.scala 208:21]
  assign io_csr_cmm_op_bits_op_rw = csr_io_csr_cmm_op_bits_op_rw; // @[Execute.scala 208:21]
  assign io_csr_cmm_op_bits_op_rs = csr_io_csr_cmm_op_bits_op_rs; // @[Execute.scala 208:21]
  assign io_csr_cmm_op_bits_op_rc = csr_io_csr_cmm_op_bits_op_rc; // @[Execute.scala 208:21]
  assign io_lsu_mmu_valid = lsu_io_lsu_mmu_valid; // @[Execute.scala 107:20]
  assign io_lsu_mmu_bits_is_W = lsu_io_lsu_mmu_bits_is_W; // @[Execute.scala 107:20]
  assign io_lsu_mmu_bits_is_R = lsu_io_lsu_mmu_bits_is_R; // @[Execute.scala 107:20]
  assign io_lsu_mmu_bits_vaddr = lsu_io_lsu_mmu_bits_vaddr; // @[Execute.scala 107:20]
  assign io_mmu_lsu_ready = lsu_io_mmu_lsu_ready; // @[Execute.scala 108:20]
  assign io_lsu_cmm_is_access_fault = lsu_io_lsu_cmm_is_access_fault; // @[Execute.scala 111:20]
  assign io_lsu_cmm_is_paging_fault = lsu_io_lsu_cmm_is_paging_fault; // @[Execute.scala 111:20]
  assign io_lsu_cmm_is_misAlign = lsu_io_lsu_cmm_is_misAlign; // @[Execute.scala 111:20]
  assign io_lsu_cmm_trap_addr = lsu_io_lsu_cmm_trap_addr; // @[Execute.scala 111:20]
  assign io_missUnit_dcache_acquire_valid = lsu_io_missUnit_dcache_acquire_valid; // @[Execute.scala 114:42]
  assign io_missUnit_dcache_acquire_bits_address = lsu_io_missUnit_dcache_acquire_bits_address; // @[Execute.scala 115:42]
  assign io_missUnit_dcache_grant_ready = lsu_io_missUnit_dcache_grant_ready; // @[Execute.scala 120:40]
  assign io_missUnit_dcache_grantAck_valid = lsu_io_missUnit_dcache_grantAck_valid; // @[Execute.scala 122:43]
  assign io_missUnit_dcache_grantAck_bits_sink = lsu_io_missUnit_dcache_grantAck_bits_sink; // @[Execute.scala 123:42]
  assign io_probeUnit_dcache_probe_ready = lsu_io_probeUnit_dcache_probe_ready; // @[Execute.scala 128:41]
  assign io_writeBackUnit_dcache_release_valid = lsu_io_writeBackUnit_dcache_release_valid; // @[Execute.scala 130:47]
  assign io_writeBackUnit_dcache_release_bits_opcode = lsu_io_writeBackUnit_dcache_release_bits_opcode; // @[Execute.scala 131:46]
  assign io_writeBackUnit_dcache_release_bits_param = lsu_io_writeBackUnit_dcache_release_bits_param; // @[Execute.scala 131:46]
  assign io_writeBackUnit_dcache_release_bits_size = lsu_io_writeBackUnit_dcache_release_bits_size; // @[Execute.scala 131:46]
  assign io_writeBackUnit_dcache_release_bits_address = lsu_io_writeBackUnit_dcache_release_bits_address; // @[Execute.scala 131:46]
  assign io_writeBackUnit_dcache_release_bits_data = lsu_io_writeBackUnit_dcache_release_bits_data; // @[Execute.scala 131:46]
  assign io_writeBackUnit_dcache_grant_ready = lsu_io_writeBackUnit_dcache_grant_ready; // @[Execute.scala 136:45]
  assign io_system_getPut_valid = lsu_io_system_getPut_valid; // @[Execute.scala 149:28]
  assign io_system_getPut_bits_opcode = lsu_io_system_getPut_bits_opcode; // @[Execute.scala 150:27]
  assign io_system_getPut_bits_address = lsu_io_system_getPut_bits_address; // @[Execute.scala 150:27]
  assign io_system_getPut_bits_mask = lsu_io_system_getPut_bits_mask; // @[Execute.scala 150:27]
  assign io_system_getPut_bits_data = lsu_io_system_getPut_bits_data; // @[Execute.scala 150:27]
  assign io_system_access_ready = lsu_io_system_access_ready; // @[Execute.scala 154:28]
  assign io_periph_getPut_valid = lsu_io_periph_getPut_valid; // @[Execute.scala 156:28]
  assign io_periph_getPut_bits_opcode = lsu_io_periph_getPut_bits_opcode; // @[Execute.scala 157:27]
  assign io_periph_getPut_bits_address = lsu_io_periph_getPut_bits_address; // @[Execute.scala 157:27]
  assign io_periph_getPut_bits_mask = lsu_io_periph_getPut_bits_mask; // @[Execute.scala 157:27]
  assign io_periph_getPut_bits_data = lsu_io_periph_getPut_bits_data; // @[Execute.scala 157:27]
  assign io_periph_access_ready = lsu_io_periph_access_ready; // @[Execute.scala 161:28]
  assign alu_0_clock = clock;
  assign alu_0_reset = reset;
  assign alu_0_io_alu_iss_exe_valid = io_alu_iss_exe_0_valid; // @[Execute.scala 185:27]
  assign alu_0_io_alu_iss_exe_bits_fun_add = io_alu_iss_exe_0_bits_fun_add; // @[Execute.scala 185:27]
  assign alu_0_io_alu_iss_exe_bits_fun_slt = io_alu_iss_exe_0_bits_fun_slt; // @[Execute.scala 185:27]
  assign alu_0_io_alu_iss_exe_bits_fun_xor = io_alu_iss_exe_0_bits_fun_xor; // @[Execute.scala 185:27]
  assign alu_0_io_alu_iss_exe_bits_fun_or = io_alu_iss_exe_0_bits_fun_or; // @[Execute.scala 185:27]
  assign alu_0_io_alu_iss_exe_bits_fun_and = io_alu_iss_exe_0_bits_fun_and; // @[Execute.scala 185:27]
  assign alu_0_io_alu_iss_exe_bits_fun_sll = io_alu_iss_exe_0_bits_fun_sll; // @[Execute.scala 185:27]
  assign alu_0_io_alu_iss_exe_bits_fun_srl = io_alu_iss_exe_0_bits_fun_srl; // @[Execute.scala 185:27]
  assign alu_0_io_alu_iss_exe_bits_fun_sra = io_alu_iss_exe_0_bits_fun_sra; // @[Execute.scala 185:27]
  assign alu_0_io_alu_iss_exe_bits_param_rd0 = io_alu_iss_exe_0_bits_param_rd0; // @[Execute.scala 185:27]
  assign alu_0_io_alu_iss_exe_bits_param_is_32w = io_alu_iss_exe_0_bits_param_is_32w; // @[Execute.scala 185:27]
  assign alu_0_io_alu_iss_exe_bits_param_is_usi = io_alu_iss_exe_0_bits_param_is_usi; // @[Execute.scala 185:27]
  assign alu_0_io_alu_iss_exe_bits_param_dat_op1 = io_alu_iss_exe_0_bits_param_dat_op1; // @[Execute.scala 185:27]
  assign alu_0_io_alu_iss_exe_bits_param_dat_op2 = io_alu_iss_exe_0_bits_param_dat_op2; // @[Execute.scala 185:27]
  assign alu_0_io_alu_exe_iwb_ready = io_alu_exe_iwb_0_ready; // @[Execute.scala 186:27]
  assign alu_0_io_flush = io_flush; // @[Execute.scala 187:21]
  assign bru_clock = clock;
  assign bru_reset = reset;
  assign bru_io_bru_iss_exe_valid = io_bru_iss_exe_valid; // @[Execute.scala 191:22]
  assign bru_io_bru_iss_exe_bits_fun_jalr = io_bru_iss_exe_bits_fun_jalr; // @[Execute.scala 191:22]
  assign bru_io_bru_iss_exe_bits_fun_beq = io_bru_iss_exe_bits_fun_beq; // @[Execute.scala 191:22]
  assign bru_io_bru_iss_exe_bits_fun_bne = io_bru_iss_exe_bits_fun_bne; // @[Execute.scala 191:22]
  assign bru_io_bru_iss_exe_bits_fun_blt = io_bru_iss_exe_bits_fun_blt; // @[Execute.scala 191:22]
  assign bru_io_bru_iss_exe_bits_fun_bge = io_bru_iss_exe_bits_fun_bge; // @[Execute.scala 191:22]
  assign bru_io_bru_iss_exe_bits_fun_bltu = io_bru_iss_exe_bits_fun_bltu; // @[Execute.scala 191:22]
  assign bru_io_bru_iss_exe_bits_fun_bgeu = io_bru_iss_exe_bits_fun_bgeu; // @[Execute.scala 191:22]
  assign bru_io_bru_iss_exe_bits_param_rd0 = io_bru_iss_exe_bits_param_rd0; // @[Execute.scala 191:22]
  assign bru_io_bru_iss_exe_bits_param_is_rvc = io_bru_iss_exe_bits_param_is_rvc; // @[Execute.scala 191:22]
  assign bru_io_bru_iss_exe_bits_param_pc = io_bru_iss_exe_bits_param_pc; // @[Execute.scala 191:22]
  assign bru_io_bru_iss_exe_bits_param_imm = io_bru_iss_exe_bits_param_imm; // @[Execute.scala 191:22]
  assign bru_io_bru_iss_exe_bits_param_dat_op1 = io_bru_iss_exe_bits_param_dat_op1; // @[Execute.scala 191:22]
  assign bru_io_bru_iss_exe_bits_param_dat_op2 = io_bru_iss_exe_bits_param_dat_op2; // @[Execute.scala 191:22]
  assign bru_io_bru_exe_iwb_ready = io_bru_exe_iwb_ready; // @[Execute.scala 192:22]
  assign bru_io_bftq_valid = io_bftq_valid; // @[Execute.scala 195:15]
  assign bru_io_bftq_bits_pc = io_bftq_bits_pc; // @[Execute.scala 195:15]
  assign bru_io_bftq_bits_bimResp_bim_p = io_bftq_bits_bimResp_bim_p; // @[Execute.scala 195:15]
  assign bru_io_bftq_bits_bimResp_bim_h = io_bftq_bits_bimResp_bim_h; // @[Execute.scala 195:15]
  assign bru_io_bftq_bits_isPredictTaken = io_bftq_bits_isPredictTaken; // @[Execute.scala 195:15]
  assign bru_io_jftq_valid = io_jftq_valid; // @[Execute.scala 196:15]
  assign bru_io_jftq_bits_pc = io_jftq_bits_pc; // @[Execute.scala 196:15]
  assign bru_io_jftq_bits_btbResp_target = io_jftq_bits_btbResp_target; // @[Execute.scala 196:15]
  assign bru_io_jftq_bits_rasResp_target = io_jftq_bits_rasResp_target; // @[Execute.scala 196:15]
  assign bru_io_jftq_bits_isRas = io_jftq_bits_isRas; // @[Execute.scala 196:15]
  assign bru_io_bctq_ready = io_bctq_ready; // @[Execute.scala 198:11]
  assign bru_io_jctq_ready = io_jctq_ready; // @[Execute.scala 199:11]
  assign bru_io_flush = io_flush; // @[Execute.scala 193:16]
  assign lsu_clock = clock;
  assign lsu_reset = reset;
  assign lsu_io_lsu_iss_exe_valid = io_lsu_iss_exe_valid; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_lb = io_lsu_iss_exe_bits_fun_lb; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_lh = io_lsu_iss_exe_bits_fun_lh; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_lw = io_lsu_iss_exe_bits_fun_lw; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_ld = io_lsu_iss_exe_bits_fun_ld; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_lbu = io_lsu_iss_exe_bits_fun_lbu; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_lhu = io_lsu_iss_exe_bits_fun_lhu; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_lwu = io_lsu_iss_exe_bits_fun_lwu; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_sb = io_lsu_iss_exe_bits_fun_sb; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_sh = io_lsu_iss_exe_bits_fun_sh; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_sw = io_lsu_iss_exe_bits_fun_sw; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_sd = io_lsu_iss_exe_bits_fun_sd; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_fence = io_lsu_iss_exe_bits_fun_fence; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_fence_i = io_lsu_iss_exe_bits_fun_fence_i; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_sfence_vma = io_lsu_iss_exe_bits_fun_sfence_vma; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_lr_w = io_lsu_iss_exe_bits_fun_lr_w; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_sc_w = io_lsu_iss_exe_bits_fun_sc_w; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_amoswap_w = io_lsu_iss_exe_bits_fun_amoswap_w; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_amoadd_w = io_lsu_iss_exe_bits_fun_amoadd_w; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_amoxor_w = io_lsu_iss_exe_bits_fun_amoxor_w; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_amoand_w = io_lsu_iss_exe_bits_fun_amoand_w; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_amoor_w = io_lsu_iss_exe_bits_fun_amoor_w; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_amomin_w = io_lsu_iss_exe_bits_fun_amomin_w; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_amomax_w = io_lsu_iss_exe_bits_fun_amomax_w; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_amominu_w = io_lsu_iss_exe_bits_fun_amominu_w; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_amomaxu_w = io_lsu_iss_exe_bits_fun_amomaxu_w; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_lr_d = io_lsu_iss_exe_bits_fun_lr_d; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_sc_d = io_lsu_iss_exe_bits_fun_sc_d; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_amoswap_d = io_lsu_iss_exe_bits_fun_amoswap_d; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_amoadd_d = io_lsu_iss_exe_bits_fun_amoadd_d; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_amoxor_d = io_lsu_iss_exe_bits_fun_amoxor_d; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_amoand_d = io_lsu_iss_exe_bits_fun_amoand_d; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_amoor_d = io_lsu_iss_exe_bits_fun_amoor_d; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_amomin_d = io_lsu_iss_exe_bits_fun_amomin_d; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_amomax_d = io_lsu_iss_exe_bits_fun_amomax_d; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_amominu_d = io_lsu_iss_exe_bits_fun_amominu_d; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_amomaxu_d = io_lsu_iss_exe_bits_fun_amomaxu_d; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_flw = io_lsu_iss_exe_bits_fun_flw; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_fsw = io_lsu_iss_exe_bits_fun_fsw; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_fld = io_lsu_iss_exe_bits_fun_fld; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_fun_fsd = io_lsu_iss_exe_bits_fun_fsd; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_param_rd0 = io_lsu_iss_exe_bits_param_rd0; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_param_dat_op1 = io_lsu_iss_exe_bits_param_dat_op1; // @[Execute.scala 103:24]
  assign lsu_io_lsu_iss_exe_bits_param_dat_op2 = io_lsu_iss_exe_bits_param_dat_op2; // @[Execute.scala 103:24]
  assign lsu_io_lsu_exe_iwb_ready = io_lsu_exe_iwb_ready; // @[Execute.scala 104:24]
  assign lsu_io_cmm_lsu_is_amo_pending = io_cmm_lsu_is_amo_pending; // @[Execute.scala 110:20]
  assign lsu_io_cmm_lsu_is_store_commit_0 = io_cmm_lsu_is_store_commit_0; // @[Execute.scala 110:20]
  assign lsu_io_lsu_mmu_ready = io_lsu_mmu_ready; // @[Execute.scala 107:20]
  assign lsu_io_mmu_lsu_valid = io_mmu_lsu_valid; // @[Execute.scala 108:20]
  assign lsu_io_mmu_lsu_bits_paddr = io_mmu_lsu_bits_paddr; // @[Execute.scala 108:20]
  assign lsu_io_mmu_lsu_bits_is_paging_fault = io_mmu_lsu_bits_is_paging_fault; // @[Execute.scala 108:20]
  assign lsu_io_mmu_lsu_bits_is_access_fault = io_mmu_lsu_bits_is_access_fault; // @[Execute.scala 108:20]
  assign lsu_io_missUnit_dcache_acquire_ready = io_missUnit_dcache_acquire_ready; // @[Execute.scala 116:46]
  assign lsu_io_missUnit_dcache_grant_valid = io_missUnit_dcache_grant_valid; // @[Execute.scala 118:44]
  assign lsu_io_missUnit_dcache_grant_bits_opcode = io_missUnit_dcache_grant_bits_opcode; // @[Execute.scala 119:44]
  assign lsu_io_missUnit_dcache_grant_bits_size = io_missUnit_dcache_grant_bits_size; // @[Execute.scala 119:44]
  assign lsu_io_missUnit_dcache_grant_bits_source = io_missUnit_dcache_grant_bits_source; // @[Execute.scala 119:44]
  assign lsu_io_missUnit_dcache_grant_bits_sink = io_missUnit_dcache_grant_bits_sink; // @[Execute.scala 119:44]
  assign lsu_io_missUnit_dcache_grant_bits_data = io_missUnit_dcache_grant_bits_data; // @[Execute.scala 119:44]
  assign lsu_io_missUnit_dcache_grantAck_ready = io_missUnit_dcache_grantAck_ready; // @[Execute.scala 124:47]
  assign lsu_io_probeUnit_dcache_probe_valid = io_probeUnit_dcache_probe_valid; // @[Execute.scala 126:45]
  assign lsu_io_probeUnit_dcache_probe_bits_address = io_probeUnit_dcache_probe_bits_address; // @[Execute.scala 127:44]
  assign lsu_io_writeBackUnit_dcache_release_ready = io_writeBackUnit_dcache_release_ready; // @[Execute.scala 132:51]
  assign lsu_io_writeBackUnit_dcache_grant_valid = io_writeBackUnit_dcache_grant_valid; // @[Execute.scala 134:49]
  assign lsu_io_writeBackUnit_dcache_grant_bits_source = io_writeBackUnit_dcache_grant_bits_source; // @[Execute.scala 135:48]
  assign lsu_io_system_getPut_ready = io_system_getPut_ready; // @[Execute.scala 151:32]
  assign lsu_io_system_access_valid = io_system_access_valid; // @[Execute.scala 152:32]
  assign lsu_io_system_access_bits_opcode = io_system_access_bits_opcode; // @[Execute.scala 153:31]
  assign lsu_io_system_access_bits_data = io_system_access_bits_data; // @[Execute.scala 153:31]
  assign lsu_io_periph_getPut_ready = io_periph_getPut_ready; // @[Execute.scala 158:32]
  assign lsu_io_periph_access_valid = io_periph_access_valid; // @[Execute.scala 159:32]
  assign lsu_io_periph_access_bits_opcode = io_periph_access_bits_opcode; // @[Execute.scala 160:31]
  assign lsu_io_periph_access_bits_data = io_periph_access_bits_data; // @[Execute.scala 160:31]
  assign lsu_io_flush = io_flush; // @[Execute.scala 165:18]
  assign csr_clock = clock;
  assign csr_reset = reset;
  assign csr_io_csr_iss_exe_valid = io_csr_iss_exe_valid; // @[Execute.scala 204:22]
  assign csr_io_csr_iss_exe_bits_fun_rw = io_csr_iss_exe_bits_fun_rw; // @[Execute.scala 204:22]
  assign csr_io_csr_iss_exe_bits_fun_rs = io_csr_iss_exe_bits_fun_rs; // @[Execute.scala 204:22]
  assign csr_io_csr_iss_exe_bits_fun_rc = io_csr_iss_exe_bits_fun_rc; // @[Execute.scala 204:22]
  assign csr_io_csr_iss_exe_bits_param_rd0 = io_csr_iss_exe_bits_param_rd0; // @[Execute.scala 204:22]
  assign csr_io_csr_iss_exe_bits_param_dat_op1 = io_csr_iss_exe_bits_param_dat_op1; // @[Execute.scala 204:22]
  assign csr_io_csr_iss_exe_bits_param_dat_op2 = io_csr_iss_exe_bits_param_dat_op2; // @[Execute.scala 204:22]
  assign csr_io_csr_exe_iwb_ready = io_csr_exe_iwb_ready; // @[Execute.scala 205:22]
  assign csr_io_csr_data_valid = io_csr_data_valid; // @[Execute.scala 207:19]
  assign csr_io_csr_data_bits = io_csr_data_bits; // @[Execute.scala 207:19]
  assign csr_io_csr_cmm_op_ready = io_csr_cmm_op_ready; // @[Execute.scala 208:21]
  assign csr_io_flush = io_flush; // @[Execute.scala 209:16]
  assign mulDiv_0_clock = clock;
  assign mulDiv_0_reset = reset;
  assign mulDiv_0_io_mul_iss_exe_valid = io_mul_iss_exe_0_valid; // @[Execute.scala 212:30]
  assign mulDiv_0_io_mul_iss_exe_bits_fun_mul = io_mul_iss_exe_0_bits_fun_mul; // @[Execute.scala 212:30]
  assign mulDiv_0_io_mul_iss_exe_bits_fun_mulh = io_mul_iss_exe_0_bits_fun_mulh; // @[Execute.scala 212:30]
  assign mulDiv_0_io_mul_iss_exe_bits_fun_mulhsu = io_mul_iss_exe_0_bits_fun_mulhsu; // @[Execute.scala 212:30]
  assign mulDiv_0_io_mul_iss_exe_bits_fun_mulhu = io_mul_iss_exe_0_bits_fun_mulhu; // @[Execute.scala 212:30]
  assign mulDiv_0_io_mul_iss_exe_bits_fun_div = io_mul_iss_exe_0_bits_fun_div; // @[Execute.scala 212:30]
  assign mulDiv_0_io_mul_iss_exe_bits_fun_divu = io_mul_iss_exe_0_bits_fun_divu; // @[Execute.scala 212:30]
  assign mulDiv_0_io_mul_iss_exe_bits_fun_rem = io_mul_iss_exe_0_bits_fun_rem; // @[Execute.scala 212:30]
  assign mulDiv_0_io_mul_iss_exe_bits_fun_remu = io_mul_iss_exe_0_bits_fun_remu; // @[Execute.scala 212:30]
  assign mulDiv_0_io_mul_iss_exe_bits_fun_mulw = io_mul_iss_exe_0_bits_fun_mulw; // @[Execute.scala 212:30]
  assign mulDiv_0_io_mul_iss_exe_bits_fun_divw = io_mul_iss_exe_0_bits_fun_divw; // @[Execute.scala 212:30]
  assign mulDiv_0_io_mul_iss_exe_bits_fun_divuw = io_mul_iss_exe_0_bits_fun_divuw; // @[Execute.scala 212:30]
  assign mulDiv_0_io_mul_iss_exe_bits_fun_remw = io_mul_iss_exe_0_bits_fun_remw; // @[Execute.scala 212:30]
  assign mulDiv_0_io_mul_iss_exe_bits_fun_remuw = io_mul_iss_exe_0_bits_fun_remuw; // @[Execute.scala 212:30]
  assign mulDiv_0_io_mul_iss_exe_bits_param_rd0 = io_mul_iss_exe_0_bits_param_rd0; // @[Execute.scala 212:30]
  assign mulDiv_0_io_mul_iss_exe_bits_param_dat_op1 = io_mul_iss_exe_0_bits_param_dat_op1; // @[Execute.scala 212:30]
  assign mulDiv_0_io_mul_iss_exe_bits_param_dat_op2 = io_mul_iss_exe_0_bits_param_dat_op2; // @[Execute.scala 212:30]
  assign mulDiv_0_io_mul_exe_iwb_ready = io_mul_exe_iwb_0_ready; // @[Execute.scala 213:30]
  assign mulDiv_0_io_flush = io_flush; // @[Execute.scala 214:24]
endmodule
module XRegFiles(
  input         clock,
  input         reset,
  output [5:0]  io_lookup_0_rsp_rs1,
  output [5:0]  io_lookup_0_rsp_rs2,
  input  [4:0]  io_lookup_0_req_rs1,
  input  [4:0]  io_lookup_0_req_rs2,
  output [5:0]  io_rename_0_rsp_rd0,
  output        io_rename_0_req_ready,
  input         io_rename_0_req_valid,
  input  [4:0]  io_rename_0_req_bits_rd0,
  output [1:0]  io_rgLog_0,
  output [1:0]  io_rgLog_1,
  output [1:0]  io_rgLog_2,
  output [1:0]  io_rgLog_3,
  output [1:0]  io_rgLog_4,
  output [1:0]  io_rgLog_5,
  output [1:0]  io_rgLog_6,
  output [1:0]  io_rgLog_7,
  output [1:0]  io_rgLog_8,
  output [1:0]  io_rgLog_9,
  output [1:0]  io_rgLog_10,
  output [1:0]  io_rgLog_11,
  output [1:0]  io_rgLog_12,
  output [1:0]  io_rgLog_13,
  output [1:0]  io_rgLog_14,
  output [1:0]  io_rgLog_15,
  output [1:0]  io_rgLog_16,
  output [1:0]  io_rgLog_17,
  output [1:0]  io_rgLog_18,
  output [1:0]  io_rgLog_19,
  output [1:0]  io_rgLog_20,
  output [1:0]  io_rgLog_21,
  output [1:0]  io_rgLog_22,
  output [1:0]  io_rgLog_23,
  output [1:0]  io_rgLog_24,
  output [1:0]  io_rgLog_25,
  output [1:0]  io_rgLog_26,
  output [1:0]  io_rgLog_27,
  output [1:0]  io_rgLog_28,
  output [1:0]  io_rgLog_29,
  output [1:0]  io_rgLog_30,
  output [1:0]  io_rgLog_31,
  output [1:0]  io_rgLog_32,
  input         io_rgReq_0_valid,
  input  [5:0]  io_rgReq_0_bits,
  input         io_rgReq_1_valid,
  input  [5:0]  io_rgReq_1_bits,
  output        io_rgRsp_0_valid,
  output [5:0]  io_rgRsp_0_bits_phy,
  output [63:0] io_rgRsp_0_bits_op,
  output        io_rgRsp_1_valid,
  output [5:0]  io_rgRsp_1_bits_phy,
  output [63:0] io_rgRsp_1_bits_op,
  output        io_exe_writeBack_0_ready,
  input         io_exe_writeBack_0_valid,
  input  [5:0]  io_exe_writeBack_0_bits_rd0,
  input  [63:0] io_exe_writeBack_0_bits_res,
  input         io_commit_0_is_comfirm,
  input         io_commit_0_is_MisPredict,
  input         io_commit_0_is_abort,
  input  [4:0]  io_commit_0_raw,
  input  [5:0]  io_commit_0_phy,
  output        io_commit_0_is_writeback,
  output [63:0] io_diffReg_0,
  output [63:0] io_diffReg_1,
  output [63:0] io_diffReg_2,
  output [63:0] io_diffReg_3,
  output [63:0] io_diffReg_4,
  output [63:0] io_diffReg_5,
  output [63:0] io_diffReg_6,
  output [63:0] io_diffReg_7,
  output [63:0] io_diffReg_8,
  output [63:0] io_diffReg_9,
  output [63:0] io_diffReg_10,
  output [63:0] io_diffReg_11,
  output [63:0] io_diffReg_12,
  output [63:0] io_diffReg_13,
  output [63:0] io_diffReg_14,
  output [63:0] io_diffReg_15,
  output [63:0] io_diffReg_16,
  output [63:0] io_diffReg_17,
  output [63:0] io_diffReg_18,
  output [63:0] io_diffReg_19,
  output [63:0] io_diffReg_20,
  output [63:0] io_diffReg_21,
  output [63:0] io_diffReg_22,
  output [63:0] io_diffReg_23,
  output [63:0] io_diffReg_24,
  output [63:0] io_diffReg_25,
  output [63:0] io_diffReg_26,
  output [63:0] io_diffReg_27,
  output [63:0] io_diffReg_28,
  output [63:0] io_diffReg_29,
  output [63:0] io_diffReg_30,
  output [63:0] io_diffReg_31
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
  reg [63:0] _RAND_33;
  reg [63:0] _RAND_34;
  reg [63:0] _RAND_35;
  reg [63:0] _RAND_36;
  reg [63:0] _RAND_37;
  reg [63:0] _RAND_38;
  reg [63:0] _RAND_39;
  reg [63:0] _RAND_40;
  reg [63:0] _RAND_41;
  reg [63:0] _RAND_42;
  reg [63:0] _RAND_43;
  reg [63:0] _RAND_44;
  reg [63:0] _RAND_45;
  reg [63:0] _RAND_46;
  reg [63:0] _RAND_47;
  reg [63:0] _RAND_48;
  reg [63:0] _RAND_49;
  reg [63:0] _RAND_50;
  reg [63:0] _RAND_51;
  reg [63:0] _RAND_52;
  reg [63:0] _RAND_53;
  reg [63:0] _RAND_54;
  reg [63:0] _RAND_55;
  reg [63:0] _RAND_56;
  reg [63:0] _RAND_57;
  reg [63:0] _RAND_58;
  reg [63:0] _RAND_59;
  reg [63:0] _RAND_60;
  reg [63:0] _RAND_61;
  reg [63:0] _RAND_62;
  reg [63:0] _RAND_63;
  reg [63:0] _RAND_64;
  reg [63:0] _RAND_65;
  reg [31:0] _RAND_66;
  reg [31:0] _RAND_67;
  reg [31:0] _RAND_68;
  reg [31:0] _RAND_69;
  reg [31:0] _RAND_70;
  reg [31:0] _RAND_71;
  reg [31:0] _RAND_72;
  reg [31:0] _RAND_73;
  reg [31:0] _RAND_74;
  reg [31:0] _RAND_75;
  reg [31:0] _RAND_76;
  reg [31:0] _RAND_77;
  reg [31:0] _RAND_78;
  reg [31:0] _RAND_79;
  reg [31:0] _RAND_80;
  reg [31:0] _RAND_81;
  reg [31:0] _RAND_82;
  reg [31:0] _RAND_83;
  reg [31:0] _RAND_84;
  reg [31:0] _RAND_85;
  reg [31:0] _RAND_86;
  reg [31:0] _RAND_87;
  reg [31:0] _RAND_88;
  reg [31:0] _RAND_89;
  reg [31:0] _RAND_90;
  reg [31:0] _RAND_91;
  reg [31:0] _RAND_92;
  reg [31:0] _RAND_93;
  reg [31:0] _RAND_94;
  reg [31:0] _RAND_95;
  reg [31:0] _RAND_96;
  reg [31:0] _RAND_97;
  reg [31:0] _RAND_98;
  reg [31:0] _RAND_99;
  reg [31:0] _RAND_100;
  reg [31:0] _RAND_101;
  reg [31:0] _RAND_102;
  reg [31:0] _RAND_103;
  reg [31:0] _RAND_104;
  reg [31:0] _RAND_105;
  reg [31:0] _RAND_106;
  reg [31:0] _RAND_107;
  reg [31:0] _RAND_108;
  reg [31:0] _RAND_109;
  reg [31:0] _RAND_110;
  reg [31:0] _RAND_111;
  reg [31:0] _RAND_112;
  reg [31:0] _RAND_113;
  reg [31:0] _RAND_114;
  reg [31:0] _RAND_115;
  reg [31:0] _RAND_116;
  reg [31:0] _RAND_117;
  reg [31:0] _RAND_118;
  reg [31:0] _RAND_119;
  reg [31:0] _RAND_120;
  reg [31:0] _RAND_121;
  reg [31:0] _RAND_122;
  reg [31:0] _RAND_123;
  reg [31:0] _RAND_124;
  reg [31:0] _RAND_125;
  reg [31:0] _RAND_126;
  reg [31:0] _RAND_127;
  reg [31:0] _RAND_128;
  reg [31:0] _RAND_129;
  reg [31:0] _RAND_130;
  reg [31:0] _RAND_131;
  reg [63:0] _RAND_132;
  reg [31:0] _RAND_133;
  reg [31:0] _RAND_134;
  reg [63:0] _RAND_135;
`endif // RANDOMIZE_REG_INIT
  reg [1:0] log_reg_0; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_1; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_2; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_3; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_4; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_5; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_6; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_7; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_8; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_9; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_10; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_11; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_12; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_13; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_14; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_15; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_16; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_17; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_18; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_19; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_20; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_21; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_22; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_23; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_24; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_25; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_26; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_27; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_28; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_29; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_30; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_31; // @[Regfiles.scala 101:12]
  reg [1:0] log_reg_32; // @[Regfiles.scala 101:12]
  reg [63:0] files_reg_0; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_1; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_2; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_3; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_4; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_5; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_6; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_7; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_8; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_9; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_10; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_11; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_12; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_13; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_14; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_15; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_16; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_17; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_18; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_19; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_20; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_21; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_22; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_23; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_24; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_25; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_26; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_27; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_28; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_29; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_30; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_31; // @[Regfiles.scala 114:26]
  reg [63:0] files_reg_32; // @[Regfiles.scala 114:26]
  reg [5:0] rename_ptr_0; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_1; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_2; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_3; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_4; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_5; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_6; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_7; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_8; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_9; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_10; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_11; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_12; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_13; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_14; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_15; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_16; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_17; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_18; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_19; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_20; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_21; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_22; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_23; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_24; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_25; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_26; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_27; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_28; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_29; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_30; // @[Regfiles.scala 125:27]
  reg [5:0] rename_ptr_31; // @[Regfiles.scala 125:27]
  reg [5:0] archit_ptr_0; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_1; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_2; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_3; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_4; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_5; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_6; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_7; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_8; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_9; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_10; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_11; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_12; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_13; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_14; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_15; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_16; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_17; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_18; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_19; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_20; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_21; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_22; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_23; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_24; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_25; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_26; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_27; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_28; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_29; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_30; // @[Regfiles.scala 130:27]
  reg [5:0] archit_ptr_31; // @[Regfiles.scala 130:27]
  wire [63:0] _GEN_1 = 6'h1 == archit_ptr_0 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_2 = 6'h2 == archit_ptr_0 ? files_reg_2 : _GEN_1; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_3 = 6'h3 == archit_ptr_0 ? files_reg_3 : _GEN_2; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_4 = 6'h4 == archit_ptr_0 ? files_reg_4 : _GEN_3; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_5 = 6'h5 == archit_ptr_0 ? files_reg_5 : _GEN_4; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_6 = 6'h6 == archit_ptr_0 ? files_reg_6 : _GEN_5; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_7 = 6'h7 == archit_ptr_0 ? files_reg_7 : _GEN_6; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_8 = 6'h8 == archit_ptr_0 ? files_reg_8 : _GEN_7; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_9 = 6'h9 == archit_ptr_0 ? files_reg_9 : _GEN_8; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_10 = 6'ha == archit_ptr_0 ? files_reg_10 : _GEN_9; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_11 = 6'hb == archit_ptr_0 ? files_reg_11 : _GEN_10; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_12 = 6'hc == archit_ptr_0 ? files_reg_12 : _GEN_11; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_13 = 6'hd == archit_ptr_0 ? files_reg_13 : _GEN_12; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_14 = 6'he == archit_ptr_0 ? files_reg_14 : _GEN_13; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_15 = 6'hf == archit_ptr_0 ? files_reg_15 : _GEN_14; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_16 = 6'h10 == archit_ptr_0 ? files_reg_16 : _GEN_15; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_17 = 6'h11 == archit_ptr_0 ? files_reg_17 : _GEN_16; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_18 = 6'h12 == archit_ptr_0 ? files_reg_18 : _GEN_17; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_19 = 6'h13 == archit_ptr_0 ? files_reg_19 : _GEN_18; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_20 = 6'h14 == archit_ptr_0 ? files_reg_20 : _GEN_19; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_21 = 6'h15 == archit_ptr_0 ? files_reg_21 : _GEN_20; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_22 = 6'h16 == archit_ptr_0 ? files_reg_22 : _GEN_21; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_23 = 6'h17 == archit_ptr_0 ? files_reg_23 : _GEN_22; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_24 = 6'h18 == archit_ptr_0 ? files_reg_24 : _GEN_23; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_25 = 6'h19 == archit_ptr_0 ? files_reg_25 : _GEN_24; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_26 = 6'h1a == archit_ptr_0 ? files_reg_26 : _GEN_25; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_27 = 6'h1b == archit_ptr_0 ? files_reg_27 : _GEN_26; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_28 = 6'h1c == archit_ptr_0 ? files_reg_28 : _GEN_27; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_29 = 6'h1d == archit_ptr_0 ? files_reg_29 : _GEN_28; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_30 = 6'h1e == archit_ptr_0 ? files_reg_30 : _GEN_29; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_31 = 6'h1f == archit_ptr_0 ? files_reg_31 : _GEN_30; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_32 = 6'h20 == archit_ptr_0 ? files_reg_32 : _GEN_31; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_35 = 6'h1 == archit_ptr_1 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_36 = 6'h2 == archit_ptr_1 ? files_reg_2 : _GEN_35; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_37 = 6'h3 == archit_ptr_1 ? files_reg_3 : _GEN_36; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_38 = 6'h4 == archit_ptr_1 ? files_reg_4 : _GEN_37; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_39 = 6'h5 == archit_ptr_1 ? files_reg_5 : _GEN_38; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_40 = 6'h6 == archit_ptr_1 ? files_reg_6 : _GEN_39; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_41 = 6'h7 == archit_ptr_1 ? files_reg_7 : _GEN_40; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_42 = 6'h8 == archit_ptr_1 ? files_reg_8 : _GEN_41; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_43 = 6'h9 == archit_ptr_1 ? files_reg_9 : _GEN_42; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_44 = 6'ha == archit_ptr_1 ? files_reg_10 : _GEN_43; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_45 = 6'hb == archit_ptr_1 ? files_reg_11 : _GEN_44; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_46 = 6'hc == archit_ptr_1 ? files_reg_12 : _GEN_45; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_47 = 6'hd == archit_ptr_1 ? files_reg_13 : _GEN_46; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_48 = 6'he == archit_ptr_1 ? files_reg_14 : _GEN_47; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_49 = 6'hf == archit_ptr_1 ? files_reg_15 : _GEN_48; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_50 = 6'h10 == archit_ptr_1 ? files_reg_16 : _GEN_49; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_51 = 6'h11 == archit_ptr_1 ? files_reg_17 : _GEN_50; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_52 = 6'h12 == archit_ptr_1 ? files_reg_18 : _GEN_51; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_53 = 6'h13 == archit_ptr_1 ? files_reg_19 : _GEN_52; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_54 = 6'h14 == archit_ptr_1 ? files_reg_20 : _GEN_53; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_55 = 6'h15 == archit_ptr_1 ? files_reg_21 : _GEN_54; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_56 = 6'h16 == archit_ptr_1 ? files_reg_22 : _GEN_55; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_57 = 6'h17 == archit_ptr_1 ? files_reg_23 : _GEN_56; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_58 = 6'h18 == archit_ptr_1 ? files_reg_24 : _GEN_57; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_59 = 6'h19 == archit_ptr_1 ? files_reg_25 : _GEN_58; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_60 = 6'h1a == archit_ptr_1 ? files_reg_26 : _GEN_59; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_61 = 6'h1b == archit_ptr_1 ? files_reg_27 : _GEN_60; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_62 = 6'h1c == archit_ptr_1 ? files_reg_28 : _GEN_61; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_63 = 6'h1d == archit_ptr_1 ? files_reg_29 : _GEN_62; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_64 = 6'h1e == archit_ptr_1 ? files_reg_30 : _GEN_63; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_65 = 6'h1f == archit_ptr_1 ? files_reg_31 : _GEN_64; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_66 = 6'h20 == archit_ptr_1 ? files_reg_32 : _GEN_65; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_69 = 6'h1 == archit_ptr_2 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_70 = 6'h2 == archit_ptr_2 ? files_reg_2 : _GEN_69; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_71 = 6'h3 == archit_ptr_2 ? files_reg_3 : _GEN_70; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_72 = 6'h4 == archit_ptr_2 ? files_reg_4 : _GEN_71; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_73 = 6'h5 == archit_ptr_2 ? files_reg_5 : _GEN_72; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_74 = 6'h6 == archit_ptr_2 ? files_reg_6 : _GEN_73; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_75 = 6'h7 == archit_ptr_2 ? files_reg_7 : _GEN_74; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_76 = 6'h8 == archit_ptr_2 ? files_reg_8 : _GEN_75; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_77 = 6'h9 == archit_ptr_2 ? files_reg_9 : _GEN_76; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_78 = 6'ha == archit_ptr_2 ? files_reg_10 : _GEN_77; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_79 = 6'hb == archit_ptr_2 ? files_reg_11 : _GEN_78; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_80 = 6'hc == archit_ptr_2 ? files_reg_12 : _GEN_79; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_81 = 6'hd == archit_ptr_2 ? files_reg_13 : _GEN_80; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_82 = 6'he == archit_ptr_2 ? files_reg_14 : _GEN_81; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_83 = 6'hf == archit_ptr_2 ? files_reg_15 : _GEN_82; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_84 = 6'h10 == archit_ptr_2 ? files_reg_16 : _GEN_83; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_85 = 6'h11 == archit_ptr_2 ? files_reg_17 : _GEN_84; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_86 = 6'h12 == archit_ptr_2 ? files_reg_18 : _GEN_85; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_87 = 6'h13 == archit_ptr_2 ? files_reg_19 : _GEN_86; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_88 = 6'h14 == archit_ptr_2 ? files_reg_20 : _GEN_87; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_89 = 6'h15 == archit_ptr_2 ? files_reg_21 : _GEN_88; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_90 = 6'h16 == archit_ptr_2 ? files_reg_22 : _GEN_89; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_91 = 6'h17 == archit_ptr_2 ? files_reg_23 : _GEN_90; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_92 = 6'h18 == archit_ptr_2 ? files_reg_24 : _GEN_91; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_93 = 6'h19 == archit_ptr_2 ? files_reg_25 : _GEN_92; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_94 = 6'h1a == archit_ptr_2 ? files_reg_26 : _GEN_93; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_95 = 6'h1b == archit_ptr_2 ? files_reg_27 : _GEN_94; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_96 = 6'h1c == archit_ptr_2 ? files_reg_28 : _GEN_95; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_97 = 6'h1d == archit_ptr_2 ? files_reg_29 : _GEN_96; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_98 = 6'h1e == archit_ptr_2 ? files_reg_30 : _GEN_97; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_99 = 6'h1f == archit_ptr_2 ? files_reg_31 : _GEN_98; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_100 = 6'h20 == archit_ptr_2 ? files_reg_32 : _GEN_99; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_103 = 6'h1 == archit_ptr_3 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_104 = 6'h2 == archit_ptr_3 ? files_reg_2 : _GEN_103; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_105 = 6'h3 == archit_ptr_3 ? files_reg_3 : _GEN_104; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_106 = 6'h4 == archit_ptr_3 ? files_reg_4 : _GEN_105; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_107 = 6'h5 == archit_ptr_3 ? files_reg_5 : _GEN_106; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_108 = 6'h6 == archit_ptr_3 ? files_reg_6 : _GEN_107; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_109 = 6'h7 == archit_ptr_3 ? files_reg_7 : _GEN_108; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_110 = 6'h8 == archit_ptr_3 ? files_reg_8 : _GEN_109; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_111 = 6'h9 == archit_ptr_3 ? files_reg_9 : _GEN_110; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_112 = 6'ha == archit_ptr_3 ? files_reg_10 : _GEN_111; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_113 = 6'hb == archit_ptr_3 ? files_reg_11 : _GEN_112; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_114 = 6'hc == archit_ptr_3 ? files_reg_12 : _GEN_113; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_115 = 6'hd == archit_ptr_3 ? files_reg_13 : _GEN_114; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_116 = 6'he == archit_ptr_3 ? files_reg_14 : _GEN_115; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_117 = 6'hf == archit_ptr_3 ? files_reg_15 : _GEN_116; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_118 = 6'h10 == archit_ptr_3 ? files_reg_16 : _GEN_117; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_119 = 6'h11 == archit_ptr_3 ? files_reg_17 : _GEN_118; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_120 = 6'h12 == archit_ptr_3 ? files_reg_18 : _GEN_119; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_121 = 6'h13 == archit_ptr_3 ? files_reg_19 : _GEN_120; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_122 = 6'h14 == archit_ptr_3 ? files_reg_20 : _GEN_121; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_123 = 6'h15 == archit_ptr_3 ? files_reg_21 : _GEN_122; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_124 = 6'h16 == archit_ptr_3 ? files_reg_22 : _GEN_123; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_125 = 6'h17 == archit_ptr_3 ? files_reg_23 : _GEN_124; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_126 = 6'h18 == archit_ptr_3 ? files_reg_24 : _GEN_125; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_127 = 6'h19 == archit_ptr_3 ? files_reg_25 : _GEN_126; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_128 = 6'h1a == archit_ptr_3 ? files_reg_26 : _GEN_127; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_129 = 6'h1b == archit_ptr_3 ? files_reg_27 : _GEN_128; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_130 = 6'h1c == archit_ptr_3 ? files_reg_28 : _GEN_129; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_131 = 6'h1d == archit_ptr_3 ? files_reg_29 : _GEN_130; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_132 = 6'h1e == archit_ptr_3 ? files_reg_30 : _GEN_131; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_133 = 6'h1f == archit_ptr_3 ? files_reg_31 : _GEN_132; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_134 = 6'h20 == archit_ptr_3 ? files_reg_32 : _GEN_133; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_137 = 6'h1 == archit_ptr_4 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_138 = 6'h2 == archit_ptr_4 ? files_reg_2 : _GEN_137; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_139 = 6'h3 == archit_ptr_4 ? files_reg_3 : _GEN_138; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_140 = 6'h4 == archit_ptr_4 ? files_reg_4 : _GEN_139; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_141 = 6'h5 == archit_ptr_4 ? files_reg_5 : _GEN_140; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_142 = 6'h6 == archit_ptr_4 ? files_reg_6 : _GEN_141; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_143 = 6'h7 == archit_ptr_4 ? files_reg_7 : _GEN_142; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_144 = 6'h8 == archit_ptr_4 ? files_reg_8 : _GEN_143; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_145 = 6'h9 == archit_ptr_4 ? files_reg_9 : _GEN_144; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_146 = 6'ha == archit_ptr_4 ? files_reg_10 : _GEN_145; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_147 = 6'hb == archit_ptr_4 ? files_reg_11 : _GEN_146; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_148 = 6'hc == archit_ptr_4 ? files_reg_12 : _GEN_147; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_149 = 6'hd == archit_ptr_4 ? files_reg_13 : _GEN_148; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_150 = 6'he == archit_ptr_4 ? files_reg_14 : _GEN_149; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_151 = 6'hf == archit_ptr_4 ? files_reg_15 : _GEN_150; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_152 = 6'h10 == archit_ptr_4 ? files_reg_16 : _GEN_151; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_153 = 6'h11 == archit_ptr_4 ? files_reg_17 : _GEN_152; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_154 = 6'h12 == archit_ptr_4 ? files_reg_18 : _GEN_153; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_155 = 6'h13 == archit_ptr_4 ? files_reg_19 : _GEN_154; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_156 = 6'h14 == archit_ptr_4 ? files_reg_20 : _GEN_155; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_157 = 6'h15 == archit_ptr_4 ? files_reg_21 : _GEN_156; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_158 = 6'h16 == archit_ptr_4 ? files_reg_22 : _GEN_157; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_159 = 6'h17 == archit_ptr_4 ? files_reg_23 : _GEN_158; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_160 = 6'h18 == archit_ptr_4 ? files_reg_24 : _GEN_159; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_161 = 6'h19 == archit_ptr_4 ? files_reg_25 : _GEN_160; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_162 = 6'h1a == archit_ptr_4 ? files_reg_26 : _GEN_161; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_163 = 6'h1b == archit_ptr_4 ? files_reg_27 : _GEN_162; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_164 = 6'h1c == archit_ptr_4 ? files_reg_28 : _GEN_163; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_165 = 6'h1d == archit_ptr_4 ? files_reg_29 : _GEN_164; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_166 = 6'h1e == archit_ptr_4 ? files_reg_30 : _GEN_165; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_167 = 6'h1f == archit_ptr_4 ? files_reg_31 : _GEN_166; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_168 = 6'h20 == archit_ptr_4 ? files_reg_32 : _GEN_167; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_171 = 6'h1 == archit_ptr_5 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_172 = 6'h2 == archit_ptr_5 ? files_reg_2 : _GEN_171; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_173 = 6'h3 == archit_ptr_5 ? files_reg_3 : _GEN_172; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_174 = 6'h4 == archit_ptr_5 ? files_reg_4 : _GEN_173; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_175 = 6'h5 == archit_ptr_5 ? files_reg_5 : _GEN_174; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_176 = 6'h6 == archit_ptr_5 ? files_reg_6 : _GEN_175; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_177 = 6'h7 == archit_ptr_5 ? files_reg_7 : _GEN_176; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_178 = 6'h8 == archit_ptr_5 ? files_reg_8 : _GEN_177; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_179 = 6'h9 == archit_ptr_5 ? files_reg_9 : _GEN_178; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_180 = 6'ha == archit_ptr_5 ? files_reg_10 : _GEN_179; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_181 = 6'hb == archit_ptr_5 ? files_reg_11 : _GEN_180; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_182 = 6'hc == archit_ptr_5 ? files_reg_12 : _GEN_181; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_183 = 6'hd == archit_ptr_5 ? files_reg_13 : _GEN_182; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_184 = 6'he == archit_ptr_5 ? files_reg_14 : _GEN_183; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_185 = 6'hf == archit_ptr_5 ? files_reg_15 : _GEN_184; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_186 = 6'h10 == archit_ptr_5 ? files_reg_16 : _GEN_185; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_187 = 6'h11 == archit_ptr_5 ? files_reg_17 : _GEN_186; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_188 = 6'h12 == archit_ptr_5 ? files_reg_18 : _GEN_187; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_189 = 6'h13 == archit_ptr_5 ? files_reg_19 : _GEN_188; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_190 = 6'h14 == archit_ptr_5 ? files_reg_20 : _GEN_189; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_191 = 6'h15 == archit_ptr_5 ? files_reg_21 : _GEN_190; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_192 = 6'h16 == archit_ptr_5 ? files_reg_22 : _GEN_191; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_193 = 6'h17 == archit_ptr_5 ? files_reg_23 : _GEN_192; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_194 = 6'h18 == archit_ptr_5 ? files_reg_24 : _GEN_193; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_195 = 6'h19 == archit_ptr_5 ? files_reg_25 : _GEN_194; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_196 = 6'h1a == archit_ptr_5 ? files_reg_26 : _GEN_195; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_197 = 6'h1b == archit_ptr_5 ? files_reg_27 : _GEN_196; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_198 = 6'h1c == archit_ptr_5 ? files_reg_28 : _GEN_197; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_199 = 6'h1d == archit_ptr_5 ? files_reg_29 : _GEN_198; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_200 = 6'h1e == archit_ptr_5 ? files_reg_30 : _GEN_199; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_201 = 6'h1f == archit_ptr_5 ? files_reg_31 : _GEN_200; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_202 = 6'h20 == archit_ptr_5 ? files_reg_32 : _GEN_201; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_205 = 6'h1 == archit_ptr_6 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_206 = 6'h2 == archit_ptr_6 ? files_reg_2 : _GEN_205; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_207 = 6'h3 == archit_ptr_6 ? files_reg_3 : _GEN_206; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_208 = 6'h4 == archit_ptr_6 ? files_reg_4 : _GEN_207; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_209 = 6'h5 == archit_ptr_6 ? files_reg_5 : _GEN_208; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_210 = 6'h6 == archit_ptr_6 ? files_reg_6 : _GEN_209; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_211 = 6'h7 == archit_ptr_6 ? files_reg_7 : _GEN_210; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_212 = 6'h8 == archit_ptr_6 ? files_reg_8 : _GEN_211; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_213 = 6'h9 == archit_ptr_6 ? files_reg_9 : _GEN_212; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_214 = 6'ha == archit_ptr_6 ? files_reg_10 : _GEN_213; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_215 = 6'hb == archit_ptr_6 ? files_reg_11 : _GEN_214; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_216 = 6'hc == archit_ptr_6 ? files_reg_12 : _GEN_215; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_217 = 6'hd == archit_ptr_6 ? files_reg_13 : _GEN_216; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_218 = 6'he == archit_ptr_6 ? files_reg_14 : _GEN_217; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_219 = 6'hf == archit_ptr_6 ? files_reg_15 : _GEN_218; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_220 = 6'h10 == archit_ptr_6 ? files_reg_16 : _GEN_219; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_221 = 6'h11 == archit_ptr_6 ? files_reg_17 : _GEN_220; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_222 = 6'h12 == archit_ptr_6 ? files_reg_18 : _GEN_221; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_223 = 6'h13 == archit_ptr_6 ? files_reg_19 : _GEN_222; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_224 = 6'h14 == archit_ptr_6 ? files_reg_20 : _GEN_223; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_225 = 6'h15 == archit_ptr_6 ? files_reg_21 : _GEN_224; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_226 = 6'h16 == archit_ptr_6 ? files_reg_22 : _GEN_225; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_227 = 6'h17 == archit_ptr_6 ? files_reg_23 : _GEN_226; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_228 = 6'h18 == archit_ptr_6 ? files_reg_24 : _GEN_227; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_229 = 6'h19 == archit_ptr_6 ? files_reg_25 : _GEN_228; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_230 = 6'h1a == archit_ptr_6 ? files_reg_26 : _GEN_229; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_231 = 6'h1b == archit_ptr_6 ? files_reg_27 : _GEN_230; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_232 = 6'h1c == archit_ptr_6 ? files_reg_28 : _GEN_231; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_233 = 6'h1d == archit_ptr_6 ? files_reg_29 : _GEN_232; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_234 = 6'h1e == archit_ptr_6 ? files_reg_30 : _GEN_233; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_235 = 6'h1f == archit_ptr_6 ? files_reg_31 : _GEN_234; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_236 = 6'h20 == archit_ptr_6 ? files_reg_32 : _GEN_235; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_239 = 6'h1 == archit_ptr_7 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_240 = 6'h2 == archit_ptr_7 ? files_reg_2 : _GEN_239; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_241 = 6'h3 == archit_ptr_7 ? files_reg_3 : _GEN_240; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_242 = 6'h4 == archit_ptr_7 ? files_reg_4 : _GEN_241; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_243 = 6'h5 == archit_ptr_7 ? files_reg_5 : _GEN_242; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_244 = 6'h6 == archit_ptr_7 ? files_reg_6 : _GEN_243; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_245 = 6'h7 == archit_ptr_7 ? files_reg_7 : _GEN_244; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_246 = 6'h8 == archit_ptr_7 ? files_reg_8 : _GEN_245; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_247 = 6'h9 == archit_ptr_7 ? files_reg_9 : _GEN_246; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_248 = 6'ha == archit_ptr_7 ? files_reg_10 : _GEN_247; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_249 = 6'hb == archit_ptr_7 ? files_reg_11 : _GEN_248; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_250 = 6'hc == archit_ptr_7 ? files_reg_12 : _GEN_249; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_251 = 6'hd == archit_ptr_7 ? files_reg_13 : _GEN_250; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_252 = 6'he == archit_ptr_7 ? files_reg_14 : _GEN_251; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_253 = 6'hf == archit_ptr_7 ? files_reg_15 : _GEN_252; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_254 = 6'h10 == archit_ptr_7 ? files_reg_16 : _GEN_253; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_255 = 6'h11 == archit_ptr_7 ? files_reg_17 : _GEN_254; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_256 = 6'h12 == archit_ptr_7 ? files_reg_18 : _GEN_255; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_257 = 6'h13 == archit_ptr_7 ? files_reg_19 : _GEN_256; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_258 = 6'h14 == archit_ptr_7 ? files_reg_20 : _GEN_257; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_259 = 6'h15 == archit_ptr_7 ? files_reg_21 : _GEN_258; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_260 = 6'h16 == archit_ptr_7 ? files_reg_22 : _GEN_259; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_261 = 6'h17 == archit_ptr_7 ? files_reg_23 : _GEN_260; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_262 = 6'h18 == archit_ptr_7 ? files_reg_24 : _GEN_261; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_263 = 6'h19 == archit_ptr_7 ? files_reg_25 : _GEN_262; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_264 = 6'h1a == archit_ptr_7 ? files_reg_26 : _GEN_263; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_265 = 6'h1b == archit_ptr_7 ? files_reg_27 : _GEN_264; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_266 = 6'h1c == archit_ptr_7 ? files_reg_28 : _GEN_265; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_267 = 6'h1d == archit_ptr_7 ? files_reg_29 : _GEN_266; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_268 = 6'h1e == archit_ptr_7 ? files_reg_30 : _GEN_267; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_269 = 6'h1f == archit_ptr_7 ? files_reg_31 : _GEN_268; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_270 = 6'h20 == archit_ptr_7 ? files_reg_32 : _GEN_269; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_273 = 6'h1 == archit_ptr_8 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_274 = 6'h2 == archit_ptr_8 ? files_reg_2 : _GEN_273; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_275 = 6'h3 == archit_ptr_8 ? files_reg_3 : _GEN_274; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_276 = 6'h4 == archit_ptr_8 ? files_reg_4 : _GEN_275; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_277 = 6'h5 == archit_ptr_8 ? files_reg_5 : _GEN_276; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_278 = 6'h6 == archit_ptr_8 ? files_reg_6 : _GEN_277; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_279 = 6'h7 == archit_ptr_8 ? files_reg_7 : _GEN_278; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_280 = 6'h8 == archit_ptr_8 ? files_reg_8 : _GEN_279; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_281 = 6'h9 == archit_ptr_8 ? files_reg_9 : _GEN_280; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_282 = 6'ha == archit_ptr_8 ? files_reg_10 : _GEN_281; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_283 = 6'hb == archit_ptr_8 ? files_reg_11 : _GEN_282; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_284 = 6'hc == archit_ptr_8 ? files_reg_12 : _GEN_283; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_285 = 6'hd == archit_ptr_8 ? files_reg_13 : _GEN_284; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_286 = 6'he == archit_ptr_8 ? files_reg_14 : _GEN_285; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_287 = 6'hf == archit_ptr_8 ? files_reg_15 : _GEN_286; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_288 = 6'h10 == archit_ptr_8 ? files_reg_16 : _GEN_287; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_289 = 6'h11 == archit_ptr_8 ? files_reg_17 : _GEN_288; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_290 = 6'h12 == archit_ptr_8 ? files_reg_18 : _GEN_289; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_291 = 6'h13 == archit_ptr_8 ? files_reg_19 : _GEN_290; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_292 = 6'h14 == archit_ptr_8 ? files_reg_20 : _GEN_291; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_293 = 6'h15 == archit_ptr_8 ? files_reg_21 : _GEN_292; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_294 = 6'h16 == archit_ptr_8 ? files_reg_22 : _GEN_293; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_295 = 6'h17 == archit_ptr_8 ? files_reg_23 : _GEN_294; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_296 = 6'h18 == archit_ptr_8 ? files_reg_24 : _GEN_295; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_297 = 6'h19 == archit_ptr_8 ? files_reg_25 : _GEN_296; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_298 = 6'h1a == archit_ptr_8 ? files_reg_26 : _GEN_297; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_299 = 6'h1b == archit_ptr_8 ? files_reg_27 : _GEN_298; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_300 = 6'h1c == archit_ptr_8 ? files_reg_28 : _GEN_299; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_301 = 6'h1d == archit_ptr_8 ? files_reg_29 : _GEN_300; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_302 = 6'h1e == archit_ptr_8 ? files_reg_30 : _GEN_301; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_303 = 6'h1f == archit_ptr_8 ? files_reg_31 : _GEN_302; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_304 = 6'h20 == archit_ptr_8 ? files_reg_32 : _GEN_303; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_307 = 6'h1 == archit_ptr_9 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_308 = 6'h2 == archit_ptr_9 ? files_reg_2 : _GEN_307; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_309 = 6'h3 == archit_ptr_9 ? files_reg_3 : _GEN_308; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_310 = 6'h4 == archit_ptr_9 ? files_reg_4 : _GEN_309; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_311 = 6'h5 == archit_ptr_9 ? files_reg_5 : _GEN_310; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_312 = 6'h6 == archit_ptr_9 ? files_reg_6 : _GEN_311; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_313 = 6'h7 == archit_ptr_9 ? files_reg_7 : _GEN_312; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_314 = 6'h8 == archit_ptr_9 ? files_reg_8 : _GEN_313; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_315 = 6'h9 == archit_ptr_9 ? files_reg_9 : _GEN_314; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_316 = 6'ha == archit_ptr_9 ? files_reg_10 : _GEN_315; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_317 = 6'hb == archit_ptr_9 ? files_reg_11 : _GEN_316; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_318 = 6'hc == archit_ptr_9 ? files_reg_12 : _GEN_317; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_319 = 6'hd == archit_ptr_9 ? files_reg_13 : _GEN_318; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_320 = 6'he == archit_ptr_9 ? files_reg_14 : _GEN_319; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_321 = 6'hf == archit_ptr_9 ? files_reg_15 : _GEN_320; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_322 = 6'h10 == archit_ptr_9 ? files_reg_16 : _GEN_321; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_323 = 6'h11 == archit_ptr_9 ? files_reg_17 : _GEN_322; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_324 = 6'h12 == archit_ptr_9 ? files_reg_18 : _GEN_323; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_325 = 6'h13 == archit_ptr_9 ? files_reg_19 : _GEN_324; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_326 = 6'h14 == archit_ptr_9 ? files_reg_20 : _GEN_325; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_327 = 6'h15 == archit_ptr_9 ? files_reg_21 : _GEN_326; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_328 = 6'h16 == archit_ptr_9 ? files_reg_22 : _GEN_327; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_329 = 6'h17 == archit_ptr_9 ? files_reg_23 : _GEN_328; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_330 = 6'h18 == archit_ptr_9 ? files_reg_24 : _GEN_329; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_331 = 6'h19 == archit_ptr_9 ? files_reg_25 : _GEN_330; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_332 = 6'h1a == archit_ptr_9 ? files_reg_26 : _GEN_331; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_333 = 6'h1b == archit_ptr_9 ? files_reg_27 : _GEN_332; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_334 = 6'h1c == archit_ptr_9 ? files_reg_28 : _GEN_333; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_335 = 6'h1d == archit_ptr_9 ? files_reg_29 : _GEN_334; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_336 = 6'h1e == archit_ptr_9 ? files_reg_30 : _GEN_335; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_337 = 6'h1f == archit_ptr_9 ? files_reg_31 : _GEN_336; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_338 = 6'h20 == archit_ptr_9 ? files_reg_32 : _GEN_337; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_341 = 6'h1 == archit_ptr_10 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_342 = 6'h2 == archit_ptr_10 ? files_reg_2 : _GEN_341; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_343 = 6'h3 == archit_ptr_10 ? files_reg_3 : _GEN_342; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_344 = 6'h4 == archit_ptr_10 ? files_reg_4 : _GEN_343; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_345 = 6'h5 == archit_ptr_10 ? files_reg_5 : _GEN_344; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_346 = 6'h6 == archit_ptr_10 ? files_reg_6 : _GEN_345; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_347 = 6'h7 == archit_ptr_10 ? files_reg_7 : _GEN_346; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_348 = 6'h8 == archit_ptr_10 ? files_reg_8 : _GEN_347; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_349 = 6'h9 == archit_ptr_10 ? files_reg_9 : _GEN_348; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_350 = 6'ha == archit_ptr_10 ? files_reg_10 : _GEN_349; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_351 = 6'hb == archit_ptr_10 ? files_reg_11 : _GEN_350; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_352 = 6'hc == archit_ptr_10 ? files_reg_12 : _GEN_351; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_353 = 6'hd == archit_ptr_10 ? files_reg_13 : _GEN_352; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_354 = 6'he == archit_ptr_10 ? files_reg_14 : _GEN_353; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_355 = 6'hf == archit_ptr_10 ? files_reg_15 : _GEN_354; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_356 = 6'h10 == archit_ptr_10 ? files_reg_16 : _GEN_355; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_357 = 6'h11 == archit_ptr_10 ? files_reg_17 : _GEN_356; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_358 = 6'h12 == archit_ptr_10 ? files_reg_18 : _GEN_357; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_359 = 6'h13 == archit_ptr_10 ? files_reg_19 : _GEN_358; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_360 = 6'h14 == archit_ptr_10 ? files_reg_20 : _GEN_359; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_361 = 6'h15 == archit_ptr_10 ? files_reg_21 : _GEN_360; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_362 = 6'h16 == archit_ptr_10 ? files_reg_22 : _GEN_361; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_363 = 6'h17 == archit_ptr_10 ? files_reg_23 : _GEN_362; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_364 = 6'h18 == archit_ptr_10 ? files_reg_24 : _GEN_363; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_365 = 6'h19 == archit_ptr_10 ? files_reg_25 : _GEN_364; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_366 = 6'h1a == archit_ptr_10 ? files_reg_26 : _GEN_365; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_367 = 6'h1b == archit_ptr_10 ? files_reg_27 : _GEN_366; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_368 = 6'h1c == archit_ptr_10 ? files_reg_28 : _GEN_367; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_369 = 6'h1d == archit_ptr_10 ? files_reg_29 : _GEN_368; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_370 = 6'h1e == archit_ptr_10 ? files_reg_30 : _GEN_369; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_371 = 6'h1f == archit_ptr_10 ? files_reg_31 : _GEN_370; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_372 = 6'h20 == archit_ptr_10 ? files_reg_32 : _GEN_371; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_375 = 6'h1 == archit_ptr_11 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_376 = 6'h2 == archit_ptr_11 ? files_reg_2 : _GEN_375; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_377 = 6'h3 == archit_ptr_11 ? files_reg_3 : _GEN_376; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_378 = 6'h4 == archit_ptr_11 ? files_reg_4 : _GEN_377; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_379 = 6'h5 == archit_ptr_11 ? files_reg_5 : _GEN_378; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_380 = 6'h6 == archit_ptr_11 ? files_reg_6 : _GEN_379; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_381 = 6'h7 == archit_ptr_11 ? files_reg_7 : _GEN_380; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_382 = 6'h8 == archit_ptr_11 ? files_reg_8 : _GEN_381; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_383 = 6'h9 == archit_ptr_11 ? files_reg_9 : _GEN_382; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_384 = 6'ha == archit_ptr_11 ? files_reg_10 : _GEN_383; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_385 = 6'hb == archit_ptr_11 ? files_reg_11 : _GEN_384; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_386 = 6'hc == archit_ptr_11 ? files_reg_12 : _GEN_385; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_387 = 6'hd == archit_ptr_11 ? files_reg_13 : _GEN_386; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_388 = 6'he == archit_ptr_11 ? files_reg_14 : _GEN_387; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_389 = 6'hf == archit_ptr_11 ? files_reg_15 : _GEN_388; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_390 = 6'h10 == archit_ptr_11 ? files_reg_16 : _GEN_389; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_391 = 6'h11 == archit_ptr_11 ? files_reg_17 : _GEN_390; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_392 = 6'h12 == archit_ptr_11 ? files_reg_18 : _GEN_391; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_393 = 6'h13 == archit_ptr_11 ? files_reg_19 : _GEN_392; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_394 = 6'h14 == archit_ptr_11 ? files_reg_20 : _GEN_393; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_395 = 6'h15 == archit_ptr_11 ? files_reg_21 : _GEN_394; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_396 = 6'h16 == archit_ptr_11 ? files_reg_22 : _GEN_395; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_397 = 6'h17 == archit_ptr_11 ? files_reg_23 : _GEN_396; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_398 = 6'h18 == archit_ptr_11 ? files_reg_24 : _GEN_397; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_399 = 6'h19 == archit_ptr_11 ? files_reg_25 : _GEN_398; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_400 = 6'h1a == archit_ptr_11 ? files_reg_26 : _GEN_399; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_401 = 6'h1b == archit_ptr_11 ? files_reg_27 : _GEN_400; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_402 = 6'h1c == archit_ptr_11 ? files_reg_28 : _GEN_401; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_403 = 6'h1d == archit_ptr_11 ? files_reg_29 : _GEN_402; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_404 = 6'h1e == archit_ptr_11 ? files_reg_30 : _GEN_403; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_405 = 6'h1f == archit_ptr_11 ? files_reg_31 : _GEN_404; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_406 = 6'h20 == archit_ptr_11 ? files_reg_32 : _GEN_405; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_409 = 6'h1 == archit_ptr_12 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_410 = 6'h2 == archit_ptr_12 ? files_reg_2 : _GEN_409; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_411 = 6'h3 == archit_ptr_12 ? files_reg_3 : _GEN_410; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_412 = 6'h4 == archit_ptr_12 ? files_reg_4 : _GEN_411; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_413 = 6'h5 == archit_ptr_12 ? files_reg_5 : _GEN_412; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_414 = 6'h6 == archit_ptr_12 ? files_reg_6 : _GEN_413; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_415 = 6'h7 == archit_ptr_12 ? files_reg_7 : _GEN_414; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_416 = 6'h8 == archit_ptr_12 ? files_reg_8 : _GEN_415; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_417 = 6'h9 == archit_ptr_12 ? files_reg_9 : _GEN_416; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_418 = 6'ha == archit_ptr_12 ? files_reg_10 : _GEN_417; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_419 = 6'hb == archit_ptr_12 ? files_reg_11 : _GEN_418; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_420 = 6'hc == archit_ptr_12 ? files_reg_12 : _GEN_419; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_421 = 6'hd == archit_ptr_12 ? files_reg_13 : _GEN_420; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_422 = 6'he == archit_ptr_12 ? files_reg_14 : _GEN_421; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_423 = 6'hf == archit_ptr_12 ? files_reg_15 : _GEN_422; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_424 = 6'h10 == archit_ptr_12 ? files_reg_16 : _GEN_423; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_425 = 6'h11 == archit_ptr_12 ? files_reg_17 : _GEN_424; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_426 = 6'h12 == archit_ptr_12 ? files_reg_18 : _GEN_425; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_427 = 6'h13 == archit_ptr_12 ? files_reg_19 : _GEN_426; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_428 = 6'h14 == archit_ptr_12 ? files_reg_20 : _GEN_427; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_429 = 6'h15 == archit_ptr_12 ? files_reg_21 : _GEN_428; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_430 = 6'h16 == archit_ptr_12 ? files_reg_22 : _GEN_429; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_431 = 6'h17 == archit_ptr_12 ? files_reg_23 : _GEN_430; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_432 = 6'h18 == archit_ptr_12 ? files_reg_24 : _GEN_431; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_433 = 6'h19 == archit_ptr_12 ? files_reg_25 : _GEN_432; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_434 = 6'h1a == archit_ptr_12 ? files_reg_26 : _GEN_433; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_435 = 6'h1b == archit_ptr_12 ? files_reg_27 : _GEN_434; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_436 = 6'h1c == archit_ptr_12 ? files_reg_28 : _GEN_435; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_437 = 6'h1d == archit_ptr_12 ? files_reg_29 : _GEN_436; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_438 = 6'h1e == archit_ptr_12 ? files_reg_30 : _GEN_437; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_439 = 6'h1f == archit_ptr_12 ? files_reg_31 : _GEN_438; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_440 = 6'h20 == archit_ptr_12 ? files_reg_32 : _GEN_439; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_443 = 6'h1 == archit_ptr_13 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_444 = 6'h2 == archit_ptr_13 ? files_reg_2 : _GEN_443; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_445 = 6'h3 == archit_ptr_13 ? files_reg_3 : _GEN_444; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_446 = 6'h4 == archit_ptr_13 ? files_reg_4 : _GEN_445; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_447 = 6'h5 == archit_ptr_13 ? files_reg_5 : _GEN_446; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_448 = 6'h6 == archit_ptr_13 ? files_reg_6 : _GEN_447; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_449 = 6'h7 == archit_ptr_13 ? files_reg_7 : _GEN_448; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_450 = 6'h8 == archit_ptr_13 ? files_reg_8 : _GEN_449; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_451 = 6'h9 == archit_ptr_13 ? files_reg_9 : _GEN_450; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_452 = 6'ha == archit_ptr_13 ? files_reg_10 : _GEN_451; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_453 = 6'hb == archit_ptr_13 ? files_reg_11 : _GEN_452; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_454 = 6'hc == archit_ptr_13 ? files_reg_12 : _GEN_453; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_455 = 6'hd == archit_ptr_13 ? files_reg_13 : _GEN_454; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_456 = 6'he == archit_ptr_13 ? files_reg_14 : _GEN_455; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_457 = 6'hf == archit_ptr_13 ? files_reg_15 : _GEN_456; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_458 = 6'h10 == archit_ptr_13 ? files_reg_16 : _GEN_457; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_459 = 6'h11 == archit_ptr_13 ? files_reg_17 : _GEN_458; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_460 = 6'h12 == archit_ptr_13 ? files_reg_18 : _GEN_459; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_461 = 6'h13 == archit_ptr_13 ? files_reg_19 : _GEN_460; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_462 = 6'h14 == archit_ptr_13 ? files_reg_20 : _GEN_461; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_463 = 6'h15 == archit_ptr_13 ? files_reg_21 : _GEN_462; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_464 = 6'h16 == archit_ptr_13 ? files_reg_22 : _GEN_463; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_465 = 6'h17 == archit_ptr_13 ? files_reg_23 : _GEN_464; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_466 = 6'h18 == archit_ptr_13 ? files_reg_24 : _GEN_465; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_467 = 6'h19 == archit_ptr_13 ? files_reg_25 : _GEN_466; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_468 = 6'h1a == archit_ptr_13 ? files_reg_26 : _GEN_467; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_469 = 6'h1b == archit_ptr_13 ? files_reg_27 : _GEN_468; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_470 = 6'h1c == archit_ptr_13 ? files_reg_28 : _GEN_469; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_471 = 6'h1d == archit_ptr_13 ? files_reg_29 : _GEN_470; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_472 = 6'h1e == archit_ptr_13 ? files_reg_30 : _GEN_471; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_473 = 6'h1f == archit_ptr_13 ? files_reg_31 : _GEN_472; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_474 = 6'h20 == archit_ptr_13 ? files_reg_32 : _GEN_473; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_477 = 6'h1 == archit_ptr_14 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_478 = 6'h2 == archit_ptr_14 ? files_reg_2 : _GEN_477; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_479 = 6'h3 == archit_ptr_14 ? files_reg_3 : _GEN_478; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_480 = 6'h4 == archit_ptr_14 ? files_reg_4 : _GEN_479; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_481 = 6'h5 == archit_ptr_14 ? files_reg_5 : _GEN_480; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_482 = 6'h6 == archit_ptr_14 ? files_reg_6 : _GEN_481; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_483 = 6'h7 == archit_ptr_14 ? files_reg_7 : _GEN_482; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_484 = 6'h8 == archit_ptr_14 ? files_reg_8 : _GEN_483; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_485 = 6'h9 == archit_ptr_14 ? files_reg_9 : _GEN_484; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_486 = 6'ha == archit_ptr_14 ? files_reg_10 : _GEN_485; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_487 = 6'hb == archit_ptr_14 ? files_reg_11 : _GEN_486; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_488 = 6'hc == archit_ptr_14 ? files_reg_12 : _GEN_487; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_489 = 6'hd == archit_ptr_14 ? files_reg_13 : _GEN_488; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_490 = 6'he == archit_ptr_14 ? files_reg_14 : _GEN_489; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_491 = 6'hf == archit_ptr_14 ? files_reg_15 : _GEN_490; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_492 = 6'h10 == archit_ptr_14 ? files_reg_16 : _GEN_491; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_493 = 6'h11 == archit_ptr_14 ? files_reg_17 : _GEN_492; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_494 = 6'h12 == archit_ptr_14 ? files_reg_18 : _GEN_493; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_495 = 6'h13 == archit_ptr_14 ? files_reg_19 : _GEN_494; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_496 = 6'h14 == archit_ptr_14 ? files_reg_20 : _GEN_495; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_497 = 6'h15 == archit_ptr_14 ? files_reg_21 : _GEN_496; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_498 = 6'h16 == archit_ptr_14 ? files_reg_22 : _GEN_497; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_499 = 6'h17 == archit_ptr_14 ? files_reg_23 : _GEN_498; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_500 = 6'h18 == archit_ptr_14 ? files_reg_24 : _GEN_499; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_501 = 6'h19 == archit_ptr_14 ? files_reg_25 : _GEN_500; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_502 = 6'h1a == archit_ptr_14 ? files_reg_26 : _GEN_501; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_503 = 6'h1b == archit_ptr_14 ? files_reg_27 : _GEN_502; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_504 = 6'h1c == archit_ptr_14 ? files_reg_28 : _GEN_503; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_505 = 6'h1d == archit_ptr_14 ? files_reg_29 : _GEN_504; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_506 = 6'h1e == archit_ptr_14 ? files_reg_30 : _GEN_505; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_507 = 6'h1f == archit_ptr_14 ? files_reg_31 : _GEN_506; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_508 = 6'h20 == archit_ptr_14 ? files_reg_32 : _GEN_507; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_511 = 6'h1 == archit_ptr_15 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_512 = 6'h2 == archit_ptr_15 ? files_reg_2 : _GEN_511; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_513 = 6'h3 == archit_ptr_15 ? files_reg_3 : _GEN_512; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_514 = 6'h4 == archit_ptr_15 ? files_reg_4 : _GEN_513; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_515 = 6'h5 == archit_ptr_15 ? files_reg_5 : _GEN_514; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_516 = 6'h6 == archit_ptr_15 ? files_reg_6 : _GEN_515; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_517 = 6'h7 == archit_ptr_15 ? files_reg_7 : _GEN_516; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_518 = 6'h8 == archit_ptr_15 ? files_reg_8 : _GEN_517; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_519 = 6'h9 == archit_ptr_15 ? files_reg_9 : _GEN_518; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_520 = 6'ha == archit_ptr_15 ? files_reg_10 : _GEN_519; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_521 = 6'hb == archit_ptr_15 ? files_reg_11 : _GEN_520; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_522 = 6'hc == archit_ptr_15 ? files_reg_12 : _GEN_521; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_523 = 6'hd == archit_ptr_15 ? files_reg_13 : _GEN_522; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_524 = 6'he == archit_ptr_15 ? files_reg_14 : _GEN_523; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_525 = 6'hf == archit_ptr_15 ? files_reg_15 : _GEN_524; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_526 = 6'h10 == archit_ptr_15 ? files_reg_16 : _GEN_525; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_527 = 6'h11 == archit_ptr_15 ? files_reg_17 : _GEN_526; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_528 = 6'h12 == archit_ptr_15 ? files_reg_18 : _GEN_527; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_529 = 6'h13 == archit_ptr_15 ? files_reg_19 : _GEN_528; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_530 = 6'h14 == archit_ptr_15 ? files_reg_20 : _GEN_529; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_531 = 6'h15 == archit_ptr_15 ? files_reg_21 : _GEN_530; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_532 = 6'h16 == archit_ptr_15 ? files_reg_22 : _GEN_531; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_533 = 6'h17 == archit_ptr_15 ? files_reg_23 : _GEN_532; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_534 = 6'h18 == archit_ptr_15 ? files_reg_24 : _GEN_533; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_535 = 6'h19 == archit_ptr_15 ? files_reg_25 : _GEN_534; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_536 = 6'h1a == archit_ptr_15 ? files_reg_26 : _GEN_535; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_537 = 6'h1b == archit_ptr_15 ? files_reg_27 : _GEN_536; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_538 = 6'h1c == archit_ptr_15 ? files_reg_28 : _GEN_537; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_539 = 6'h1d == archit_ptr_15 ? files_reg_29 : _GEN_538; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_540 = 6'h1e == archit_ptr_15 ? files_reg_30 : _GEN_539; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_541 = 6'h1f == archit_ptr_15 ? files_reg_31 : _GEN_540; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_542 = 6'h20 == archit_ptr_15 ? files_reg_32 : _GEN_541; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_545 = 6'h1 == archit_ptr_16 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_546 = 6'h2 == archit_ptr_16 ? files_reg_2 : _GEN_545; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_547 = 6'h3 == archit_ptr_16 ? files_reg_3 : _GEN_546; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_548 = 6'h4 == archit_ptr_16 ? files_reg_4 : _GEN_547; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_549 = 6'h5 == archit_ptr_16 ? files_reg_5 : _GEN_548; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_550 = 6'h6 == archit_ptr_16 ? files_reg_6 : _GEN_549; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_551 = 6'h7 == archit_ptr_16 ? files_reg_7 : _GEN_550; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_552 = 6'h8 == archit_ptr_16 ? files_reg_8 : _GEN_551; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_553 = 6'h9 == archit_ptr_16 ? files_reg_9 : _GEN_552; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_554 = 6'ha == archit_ptr_16 ? files_reg_10 : _GEN_553; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_555 = 6'hb == archit_ptr_16 ? files_reg_11 : _GEN_554; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_556 = 6'hc == archit_ptr_16 ? files_reg_12 : _GEN_555; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_557 = 6'hd == archit_ptr_16 ? files_reg_13 : _GEN_556; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_558 = 6'he == archit_ptr_16 ? files_reg_14 : _GEN_557; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_559 = 6'hf == archit_ptr_16 ? files_reg_15 : _GEN_558; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_560 = 6'h10 == archit_ptr_16 ? files_reg_16 : _GEN_559; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_561 = 6'h11 == archit_ptr_16 ? files_reg_17 : _GEN_560; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_562 = 6'h12 == archit_ptr_16 ? files_reg_18 : _GEN_561; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_563 = 6'h13 == archit_ptr_16 ? files_reg_19 : _GEN_562; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_564 = 6'h14 == archit_ptr_16 ? files_reg_20 : _GEN_563; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_565 = 6'h15 == archit_ptr_16 ? files_reg_21 : _GEN_564; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_566 = 6'h16 == archit_ptr_16 ? files_reg_22 : _GEN_565; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_567 = 6'h17 == archit_ptr_16 ? files_reg_23 : _GEN_566; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_568 = 6'h18 == archit_ptr_16 ? files_reg_24 : _GEN_567; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_569 = 6'h19 == archit_ptr_16 ? files_reg_25 : _GEN_568; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_570 = 6'h1a == archit_ptr_16 ? files_reg_26 : _GEN_569; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_571 = 6'h1b == archit_ptr_16 ? files_reg_27 : _GEN_570; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_572 = 6'h1c == archit_ptr_16 ? files_reg_28 : _GEN_571; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_573 = 6'h1d == archit_ptr_16 ? files_reg_29 : _GEN_572; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_574 = 6'h1e == archit_ptr_16 ? files_reg_30 : _GEN_573; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_575 = 6'h1f == archit_ptr_16 ? files_reg_31 : _GEN_574; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_576 = 6'h20 == archit_ptr_16 ? files_reg_32 : _GEN_575; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_579 = 6'h1 == archit_ptr_17 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_580 = 6'h2 == archit_ptr_17 ? files_reg_2 : _GEN_579; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_581 = 6'h3 == archit_ptr_17 ? files_reg_3 : _GEN_580; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_582 = 6'h4 == archit_ptr_17 ? files_reg_4 : _GEN_581; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_583 = 6'h5 == archit_ptr_17 ? files_reg_5 : _GEN_582; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_584 = 6'h6 == archit_ptr_17 ? files_reg_6 : _GEN_583; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_585 = 6'h7 == archit_ptr_17 ? files_reg_7 : _GEN_584; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_586 = 6'h8 == archit_ptr_17 ? files_reg_8 : _GEN_585; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_587 = 6'h9 == archit_ptr_17 ? files_reg_9 : _GEN_586; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_588 = 6'ha == archit_ptr_17 ? files_reg_10 : _GEN_587; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_589 = 6'hb == archit_ptr_17 ? files_reg_11 : _GEN_588; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_590 = 6'hc == archit_ptr_17 ? files_reg_12 : _GEN_589; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_591 = 6'hd == archit_ptr_17 ? files_reg_13 : _GEN_590; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_592 = 6'he == archit_ptr_17 ? files_reg_14 : _GEN_591; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_593 = 6'hf == archit_ptr_17 ? files_reg_15 : _GEN_592; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_594 = 6'h10 == archit_ptr_17 ? files_reg_16 : _GEN_593; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_595 = 6'h11 == archit_ptr_17 ? files_reg_17 : _GEN_594; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_596 = 6'h12 == archit_ptr_17 ? files_reg_18 : _GEN_595; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_597 = 6'h13 == archit_ptr_17 ? files_reg_19 : _GEN_596; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_598 = 6'h14 == archit_ptr_17 ? files_reg_20 : _GEN_597; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_599 = 6'h15 == archit_ptr_17 ? files_reg_21 : _GEN_598; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_600 = 6'h16 == archit_ptr_17 ? files_reg_22 : _GEN_599; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_601 = 6'h17 == archit_ptr_17 ? files_reg_23 : _GEN_600; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_602 = 6'h18 == archit_ptr_17 ? files_reg_24 : _GEN_601; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_603 = 6'h19 == archit_ptr_17 ? files_reg_25 : _GEN_602; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_604 = 6'h1a == archit_ptr_17 ? files_reg_26 : _GEN_603; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_605 = 6'h1b == archit_ptr_17 ? files_reg_27 : _GEN_604; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_606 = 6'h1c == archit_ptr_17 ? files_reg_28 : _GEN_605; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_607 = 6'h1d == archit_ptr_17 ? files_reg_29 : _GEN_606; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_608 = 6'h1e == archit_ptr_17 ? files_reg_30 : _GEN_607; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_609 = 6'h1f == archit_ptr_17 ? files_reg_31 : _GEN_608; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_610 = 6'h20 == archit_ptr_17 ? files_reg_32 : _GEN_609; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_613 = 6'h1 == archit_ptr_18 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_614 = 6'h2 == archit_ptr_18 ? files_reg_2 : _GEN_613; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_615 = 6'h3 == archit_ptr_18 ? files_reg_3 : _GEN_614; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_616 = 6'h4 == archit_ptr_18 ? files_reg_4 : _GEN_615; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_617 = 6'h5 == archit_ptr_18 ? files_reg_5 : _GEN_616; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_618 = 6'h6 == archit_ptr_18 ? files_reg_6 : _GEN_617; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_619 = 6'h7 == archit_ptr_18 ? files_reg_7 : _GEN_618; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_620 = 6'h8 == archit_ptr_18 ? files_reg_8 : _GEN_619; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_621 = 6'h9 == archit_ptr_18 ? files_reg_9 : _GEN_620; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_622 = 6'ha == archit_ptr_18 ? files_reg_10 : _GEN_621; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_623 = 6'hb == archit_ptr_18 ? files_reg_11 : _GEN_622; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_624 = 6'hc == archit_ptr_18 ? files_reg_12 : _GEN_623; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_625 = 6'hd == archit_ptr_18 ? files_reg_13 : _GEN_624; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_626 = 6'he == archit_ptr_18 ? files_reg_14 : _GEN_625; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_627 = 6'hf == archit_ptr_18 ? files_reg_15 : _GEN_626; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_628 = 6'h10 == archit_ptr_18 ? files_reg_16 : _GEN_627; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_629 = 6'h11 == archit_ptr_18 ? files_reg_17 : _GEN_628; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_630 = 6'h12 == archit_ptr_18 ? files_reg_18 : _GEN_629; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_631 = 6'h13 == archit_ptr_18 ? files_reg_19 : _GEN_630; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_632 = 6'h14 == archit_ptr_18 ? files_reg_20 : _GEN_631; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_633 = 6'h15 == archit_ptr_18 ? files_reg_21 : _GEN_632; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_634 = 6'h16 == archit_ptr_18 ? files_reg_22 : _GEN_633; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_635 = 6'h17 == archit_ptr_18 ? files_reg_23 : _GEN_634; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_636 = 6'h18 == archit_ptr_18 ? files_reg_24 : _GEN_635; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_637 = 6'h19 == archit_ptr_18 ? files_reg_25 : _GEN_636; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_638 = 6'h1a == archit_ptr_18 ? files_reg_26 : _GEN_637; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_639 = 6'h1b == archit_ptr_18 ? files_reg_27 : _GEN_638; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_640 = 6'h1c == archit_ptr_18 ? files_reg_28 : _GEN_639; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_641 = 6'h1d == archit_ptr_18 ? files_reg_29 : _GEN_640; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_642 = 6'h1e == archit_ptr_18 ? files_reg_30 : _GEN_641; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_643 = 6'h1f == archit_ptr_18 ? files_reg_31 : _GEN_642; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_644 = 6'h20 == archit_ptr_18 ? files_reg_32 : _GEN_643; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_647 = 6'h1 == archit_ptr_19 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_648 = 6'h2 == archit_ptr_19 ? files_reg_2 : _GEN_647; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_649 = 6'h3 == archit_ptr_19 ? files_reg_3 : _GEN_648; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_650 = 6'h4 == archit_ptr_19 ? files_reg_4 : _GEN_649; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_651 = 6'h5 == archit_ptr_19 ? files_reg_5 : _GEN_650; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_652 = 6'h6 == archit_ptr_19 ? files_reg_6 : _GEN_651; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_653 = 6'h7 == archit_ptr_19 ? files_reg_7 : _GEN_652; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_654 = 6'h8 == archit_ptr_19 ? files_reg_8 : _GEN_653; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_655 = 6'h9 == archit_ptr_19 ? files_reg_9 : _GEN_654; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_656 = 6'ha == archit_ptr_19 ? files_reg_10 : _GEN_655; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_657 = 6'hb == archit_ptr_19 ? files_reg_11 : _GEN_656; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_658 = 6'hc == archit_ptr_19 ? files_reg_12 : _GEN_657; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_659 = 6'hd == archit_ptr_19 ? files_reg_13 : _GEN_658; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_660 = 6'he == archit_ptr_19 ? files_reg_14 : _GEN_659; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_661 = 6'hf == archit_ptr_19 ? files_reg_15 : _GEN_660; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_662 = 6'h10 == archit_ptr_19 ? files_reg_16 : _GEN_661; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_663 = 6'h11 == archit_ptr_19 ? files_reg_17 : _GEN_662; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_664 = 6'h12 == archit_ptr_19 ? files_reg_18 : _GEN_663; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_665 = 6'h13 == archit_ptr_19 ? files_reg_19 : _GEN_664; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_666 = 6'h14 == archit_ptr_19 ? files_reg_20 : _GEN_665; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_667 = 6'h15 == archit_ptr_19 ? files_reg_21 : _GEN_666; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_668 = 6'h16 == archit_ptr_19 ? files_reg_22 : _GEN_667; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_669 = 6'h17 == archit_ptr_19 ? files_reg_23 : _GEN_668; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_670 = 6'h18 == archit_ptr_19 ? files_reg_24 : _GEN_669; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_671 = 6'h19 == archit_ptr_19 ? files_reg_25 : _GEN_670; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_672 = 6'h1a == archit_ptr_19 ? files_reg_26 : _GEN_671; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_673 = 6'h1b == archit_ptr_19 ? files_reg_27 : _GEN_672; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_674 = 6'h1c == archit_ptr_19 ? files_reg_28 : _GEN_673; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_675 = 6'h1d == archit_ptr_19 ? files_reg_29 : _GEN_674; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_676 = 6'h1e == archit_ptr_19 ? files_reg_30 : _GEN_675; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_677 = 6'h1f == archit_ptr_19 ? files_reg_31 : _GEN_676; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_678 = 6'h20 == archit_ptr_19 ? files_reg_32 : _GEN_677; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_681 = 6'h1 == archit_ptr_20 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_682 = 6'h2 == archit_ptr_20 ? files_reg_2 : _GEN_681; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_683 = 6'h3 == archit_ptr_20 ? files_reg_3 : _GEN_682; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_684 = 6'h4 == archit_ptr_20 ? files_reg_4 : _GEN_683; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_685 = 6'h5 == archit_ptr_20 ? files_reg_5 : _GEN_684; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_686 = 6'h6 == archit_ptr_20 ? files_reg_6 : _GEN_685; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_687 = 6'h7 == archit_ptr_20 ? files_reg_7 : _GEN_686; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_688 = 6'h8 == archit_ptr_20 ? files_reg_8 : _GEN_687; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_689 = 6'h9 == archit_ptr_20 ? files_reg_9 : _GEN_688; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_690 = 6'ha == archit_ptr_20 ? files_reg_10 : _GEN_689; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_691 = 6'hb == archit_ptr_20 ? files_reg_11 : _GEN_690; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_692 = 6'hc == archit_ptr_20 ? files_reg_12 : _GEN_691; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_693 = 6'hd == archit_ptr_20 ? files_reg_13 : _GEN_692; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_694 = 6'he == archit_ptr_20 ? files_reg_14 : _GEN_693; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_695 = 6'hf == archit_ptr_20 ? files_reg_15 : _GEN_694; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_696 = 6'h10 == archit_ptr_20 ? files_reg_16 : _GEN_695; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_697 = 6'h11 == archit_ptr_20 ? files_reg_17 : _GEN_696; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_698 = 6'h12 == archit_ptr_20 ? files_reg_18 : _GEN_697; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_699 = 6'h13 == archit_ptr_20 ? files_reg_19 : _GEN_698; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_700 = 6'h14 == archit_ptr_20 ? files_reg_20 : _GEN_699; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_701 = 6'h15 == archit_ptr_20 ? files_reg_21 : _GEN_700; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_702 = 6'h16 == archit_ptr_20 ? files_reg_22 : _GEN_701; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_703 = 6'h17 == archit_ptr_20 ? files_reg_23 : _GEN_702; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_704 = 6'h18 == archit_ptr_20 ? files_reg_24 : _GEN_703; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_705 = 6'h19 == archit_ptr_20 ? files_reg_25 : _GEN_704; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_706 = 6'h1a == archit_ptr_20 ? files_reg_26 : _GEN_705; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_707 = 6'h1b == archit_ptr_20 ? files_reg_27 : _GEN_706; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_708 = 6'h1c == archit_ptr_20 ? files_reg_28 : _GEN_707; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_709 = 6'h1d == archit_ptr_20 ? files_reg_29 : _GEN_708; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_710 = 6'h1e == archit_ptr_20 ? files_reg_30 : _GEN_709; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_711 = 6'h1f == archit_ptr_20 ? files_reg_31 : _GEN_710; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_712 = 6'h20 == archit_ptr_20 ? files_reg_32 : _GEN_711; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_715 = 6'h1 == archit_ptr_21 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_716 = 6'h2 == archit_ptr_21 ? files_reg_2 : _GEN_715; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_717 = 6'h3 == archit_ptr_21 ? files_reg_3 : _GEN_716; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_718 = 6'h4 == archit_ptr_21 ? files_reg_4 : _GEN_717; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_719 = 6'h5 == archit_ptr_21 ? files_reg_5 : _GEN_718; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_720 = 6'h6 == archit_ptr_21 ? files_reg_6 : _GEN_719; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_721 = 6'h7 == archit_ptr_21 ? files_reg_7 : _GEN_720; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_722 = 6'h8 == archit_ptr_21 ? files_reg_8 : _GEN_721; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_723 = 6'h9 == archit_ptr_21 ? files_reg_9 : _GEN_722; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_724 = 6'ha == archit_ptr_21 ? files_reg_10 : _GEN_723; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_725 = 6'hb == archit_ptr_21 ? files_reg_11 : _GEN_724; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_726 = 6'hc == archit_ptr_21 ? files_reg_12 : _GEN_725; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_727 = 6'hd == archit_ptr_21 ? files_reg_13 : _GEN_726; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_728 = 6'he == archit_ptr_21 ? files_reg_14 : _GEN_727; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_729 = 6'hf == archit_ptr_21 ? files_reg_15 : _GEN_728; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_730 = 6'h10 == archit_ptr_21 ? files_reg_16 : _GEN_729; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_731 = 6'h11 == archit_ptr_21 ? files_reg_17 : _GEN_730; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_732 = 6'h12 == archit_ptr_21 ? files_reg_18 : _GEN_731; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_733 = 6'h13 == archit_ptr_21 ? files_reg_19 : _GEN_732; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_734 = 6'h14 == archit_ptr_21 ? files_reg_20 : _GEN_733; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_735 = 6'h15 == archit_ptr_21 ? files_reg_21 : _GEN_734; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_736 = 6'h16 == archit_ptr_21 ? files_reg_22 : _GEN_735; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_737 = 6'h17 == archit_ptr_21 ? files_reg_23 : _GEN_736; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_738 = 6'h18 == archit_ptr_21 ? files_reg_24 : _GEN_737; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_739 = 6'h19 == archit_ptr_21 ? files_reg_25 : _GEN_738; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_740 = 6'h1a == archit_ptr_21 ? files_reg_26 : _GEN_739; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_741 = 6'h1b == archit_ptr_21 ? files_reg_27 : _GEN_740; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_742 = 6'h1c == archit_ptr_21 ? files_reg_28 : _GEN_741; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_743 = 6'h1d == archit_ptr_21 ? files_reg_29 : _GEN_742; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_744 = 6'h1e == archit_ptr_21 ? files_reg_30 : _GEN_743; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_745 = 6'h1f == archit_ptr_21 ? files_reg_31 : _GEN_744; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_746 = 6'h20 == archit_ptr_21 ? files_reg_32 : _GEN_745; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_749 = 6'h1 == archit_ptr_22 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_750 = 6'h2 == archit_ptr_22 ? files_reg_2 : _GEN_749; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_751 = 6'h3 == archit_ptr_22 ? files_reg_3 : _GEN_750; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_752 = 6'h4 == archit_ptr_22 ? files_reg_4 : _GEN_751; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_753 = 6'h5 == archit_ptr_22 ? files_reg_5 : _GEN_752; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_754 = 6'h6 == archit_ptr_22 ? files_reg_6 : _GEN_753; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_755 = 6'h7 == archit_ptr_22 ? files_reg_7 : _GEN_754; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_756 = 6'h8 == archit_ptr_22 ? files_reg_8 : _GEN_755; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_757 = 6'h9 == archit_ptr_22 ? files_reg_9 : _GEN_756; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_758 = 6'ha == archit_ptr_22 ? files_reg_10 : _GEN_757; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_759 = 6'hb == archit_ptr_22 ? files_reg_11 : _GEN_758; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_760 = 6'hc == archit_ptr_22 ? files_reg_12 : _GEN_759; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_761 = 6'hd == archit_ptr_22 ? files_reg_13 : _GEN_760; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_762 = 6'he == archit_ptr_22 ? files_reg_14 : _GEN_761; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_763 = 6'hf == archit_ptr_22 ? files_reg_15 : _GEN_762; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_764 = 6'h10 == archit_ptr_22 ? files_reg_16 : _GEN_763; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_765 = 6'h11 == archit_ptr_22 ? files_reg_17 : _GEN_764; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_766 = 6'h12 == archit_ptr_22 ? files_reg_18 : _GEN_765; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_767 = 6'h13 == archit_ptr_22 ? files_reg_19 : _GEN_766; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_768 = 6'h14 == archit_ptr_22 ? files_reg_20 : _GEN_767; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_769 = 6'h15 == archit_ptr_22 ? files_reg_21 : _GEN_768; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_770 = 6'h16 == archit_ptr_22 ? files_reg_22 : _GEN_769; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_771 = 6'h17 == archit_ptr_22 ? files_reg_23 : _GEN_770; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_772 = 6'h18 == archit_ptr_22 ? files_reg_24 : _GEN_771; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_773 = 6'h19 == archit_ptr_22 ? files_reg_25 : _GEN_772; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_774 = 6'h1a == archit_ptr_22 ? files_reg_26 : _GEN_773; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_775 = 6'h1b == archit_ptr_22 ? files_reg_27 : _GEN_774; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_776 = 6'h1c == archit_ptr_22 ? files_reg_28 : _GEN_775; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_777 = 6'h1d == archit_ptr_22 ? files_reg_29 : _GEN_776; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_778 = 6'h1e == archit_ptr_22 ? files_reg_30 : _GEN_777; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_779 = 6'h1f == archit_ptr_22 ? files_reg_31 : _GEN_778; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_780 = 6'h20 == archit_ptr_22 ? files_reg_32 : _GEN_779; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_783 = 6'h1 == archit_ptr_23 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_784 = 6'h2 == archit_ptr_23 ? files_reg_2 : _GEN_783; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_785 = 6'h3 == archit_ptr_23 ? files_reg_3 : _GEN_784; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_786 = 6'h4 == archit_ptr_23 ? files_reg_4 : _GEN_785; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_787 = 6'h5 == archit_ptr_23 ? files_reg_5 : _GEN_786; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_788 = 6'h6 == archit_ptr_23 ? files_reg_6 : _GEN_787; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_789 = 6'h7 == archit_ptr_23 ? files_reg_7 : _GEN_788; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_790 = 6'h8 == archit_ptr_23 ? files_reg_8 : _GEN_789; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_791 = 6'h9 == archit_ptr_23 ? files_reg_9 : _GEN_790; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_792 = 6'ha == archit_ptr_23 ? files_reg_10 : _GEN_791; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_793 = 6'hb == archit_ptr_23 ? files_reg_11 : _GEN_792; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_794 = 6'hc == archit_ptr_23 ? files_reg_12 : _GEN_793; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_795 = 6'hd == archit_ptr_23 ? files_reg_13 : _GEN_794; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_796 = 6'he == archit_ptr_23 ? files_reg_14 : _GEN_795; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_797 = 6'hf == archit_ptr_23 ? files_reg_15 : _GEN_796; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_798 = 6'h10 == archit_ptr_23 ? files_reg_16 : _GEN_797; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_799 = 6'h11 == archit_ptr_23 ? files_reg_17 : _GEN_798; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_800 = 6'h12 == archit_ptr_23 ? files_reg_18 : _GEN_799; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_801 = 6'h13 == archit_ptr_23 ? files_reg_19 : _GEN_800; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_802 = 6'h14 == archit_ptr_23 ? files_reg_20 : _GEN_801; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_803 = 6'h15 == archit_ptr_23 ? files_reg_21 : _GEN_802; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_804 = 6'h16 == archit_ptr_23 ? files_reg_22 : _GEN_803; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_805 = 6'h17 == archit_ptr_23 ? files_reg_23 : _GEN_804; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_806 = 6'h18 == archit_ptr_23 ? files_reg_24 : _GEN_805; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_807 = 6'h19 == archit_ptr_23 ? files_reg_25 : _GEN_806; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_808 = 6'h1a == archit_ptr_23 ? files_reg_26 : _GEN_807; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_809 = 6'h1b == archit_ptr_23 ? files_reg_27 : _GEN_808; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_810 = 6'h1c == archit_ptr_23 ? files_reg_28 : _GEN_809; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_811 = 6'h1d == archit_ptr_23 ? files_reg_29 : _GEN_810; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_812 = 6'h1e == archit_ptr_23 ? files_reg_30 : _GEN_811; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_813 = 6'h1f == archit_ptr_23 ? files_reg_31 : _GEN_812; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_814 = 6'h20 == archit_ptr_23 ? files_reg_32 : _GEN_813; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_817 = 6'h1 == archit_ptr_24 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_818 = 6'h2 == archit_ptr_24 ? files_reg_2 : _GEN_817; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_819 = 6'h3 == archit_ptr_24 ? files_reg_3 : _GEN_818; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_820 = 6'h4 == archit_ptr_24 ? files_reg_4 : _GEN_819; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_821 = 6'h5 == archit_ptr_24 ? files_reg_5 : _GEN_820; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_822 = 6'h6 == archit_ptr_24 ? files_reg_6 : _GEN_821; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_823 = 6'h7 == archit_ptr_24 ? files_reg_7 : _GEN_822; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_824 = 6'h8 == archit_ptr_24 ? files_reg_8 : _GEN_823; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_825 = 6'h9 == archit_ptr_24 ? files_reg_9 : _GEN_824; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_826 = 6'ha == archit_ptr_24 ? files_reg_10 : _GEN_825; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_827 = 6'hb == archit_ptr_24 ? files_reg_11 : _GEN_826; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_828 = 6'hc == archit_ptr_24 ? files_reg_12 : _GEN_827; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_829 = 6'hd == archit_ptr_24 ? files_reg_13 : _GEN_828; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_830 = 6'he == archit_ptr_24 ? files_reg_14 : _GEN_829; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_831 = 6'hf == archit_ptr_24 ? files_reg_15 : _GEN_830; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_832 = 6'h10 == archit_ptr_24 ? files_reg_16 : _GEN_831; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_833 = 6'h11 == archit_ptr_24 ? files_reg_17 : _GEN_832; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_834 = 6'h12 == archit_ptr_24 ? files_reg_18 : _GEN_833; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_835 = 6'h13 == archit_ptr_24 ? files_reg_19 : _GEN_834; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_836 = 6'h14 == archit_ptr_24 ? files_reg_20 : _GEN_835; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_837 = 6'h15 == archit_ptr_24 ? files_reg_21 : _GEN_836; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_838 = 6'h16 == archit_ptr_24 ? files_reg_22 : _GEN_837; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_839 = 6'h17 == archit_ptr_24 ? files_reg_23 : _GEN_838; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_840 = 6'h18 == archit_ptr_24 ? files_reg_24 : _GEN_839; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_841 = 6'h19 == archit_ptr_24 ? files_reg_25 : _GEN_840; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_842 = 6'h1a == archit_ptr_24 ? files_reg_26 : _GEN_841; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_843 = 6'h1b == archit_ptr_24 ? files_reg_27 : _GEN_842; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_844 = 6'h1c == archit_ptr_24 ? files_reg_28 : _GEN_843; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_845 = 6'h1d == archit_ptr_24 ? files_reg_29 : _GEN_844; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_846 = 6'h1e == archit_ptr_24 ? files_reg_30 : _GEN_845; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_847 = 6'h1f == archit_ptr_24 ? files_reg_31 : _GEN_846; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_848 = 6'h20 == archit_ptr_24 ? files_reg_32 : _GEN_847; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_851 = 6'h1 == archit_ptr_25 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_852 = 6'h2 == archit_ptr_25 ? files_reg_2 : _GEN_851; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_853 = 6'h3 == archit_ptr_25 ? files_reg_3 : _GEN_852; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_854 = 6'h4 == archit_ptr_25 ? files_reg_4 : _GEN_853; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_855 = 6'h5 == archit_ptr_25 ? files_reg_5 : _GEN_854; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_856 = 6'h6 == archit_ptr_25 ? files_reg_6 : _GEN_855; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_857 = 6'h7 == archit_ptr_25 ? files_reg_7 : _GEN_856; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_858 = 6'h8 == archit_ptr_25 ? files_reg_8 : _GEN_857; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_859 = 6'h9 == archit_ptr_25 ? files_reg_9 : _GEN_858; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_860 = 6'ha == archit_ptr_25 ? files_reg_10 : _GEN_859; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_861 = 6'hb == archit_ptr_25 ? files_reg_11 : _GEN_860; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_862 = 6'hc == archit_ptr_25 ? files_reg_12 : _GEN_861; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_863 = 6'hd == archit_ptr_25 ? files_reg_13 : _GEN_862; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_864 = 6'he == archit_ptr_25 ? files_reg_14 : _GEN_863; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_865 = 6'hf == archit_ptr_25 ? files_reg_15 : _GEN_864; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_866 = 6'h10 == archit_ptr_25 ? files_reg_16 : _GEN_865; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_867 = 6'h11 == archit_ptr_25 ? files_reg_17 : _GEN_866; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_868 = 6'h12 == archit_ptr_25 ? files_reg_18 : _GEN_867; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_869 = 6'h13 == archit_ptr_25 ? files_reg_19 : _GEN_868; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_870 = 6'h14 == archit_ptr_25 ? files_reg_20 : _GEN_869; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_871 = 6'h15 == archit_ptr_25 ? files_reg_21 : _GEN_870; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_872 = 6'h16 == archit_ptr_25 ? files_reg_22 : _GEN_871; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_873 = 6'h17 == archit_ptr_25 ? files_reg_23 : _GEN_872; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_874 = 6'h18 == archit_ptr_25 ? files_reg_24 : _GEN_873; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_875 = 6'h19 == archit_ptr_25 ? files_reg_25 : _GEN_874; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_876 = 6'h1a == archit_ptr_25 ? files_reg_26 : _GEN_875; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_877 = 6'h1b == archit_ptr_25 ? files_reg_27 : _GEN_876; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_878 = 6'h1c == archit_ptr_25 ? files_reg_28 : _GEN_877; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_879 = 6'h1d == archit_ptr_25 ? files_reg_29 : _GEN_878; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_880 = 6'h1e == archit_ptr_25 ? files_reg_30 : _GEN_879; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_881 = 6'h1f == archit_ptr_25 ? files_reg_31 : _GEN_880; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_882 = 6'h20 == archit_ptr_25 ? files_reg_32 : _GEN_881; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_885 = 6'h1 == archit_ptr_26 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_886 = 6'h2 == archit_ptr_26 ? files_reg_2 : _GEN_885; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_887 = 6'h3 == archit_ptr_26 ? files_reg_3 : _GEN_886; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_888 = 6'h4 == archit_ptr_26 ? files_reg_4 : _GEN_887; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_889 = 6'h5 == archit_ptr_26 ? files_reg_5 : _GEN_888; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_890 = 6'h6 == archit_ptr_26 ? files_reg_6 : _GEN_889; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_891 = 6'h7 == archit_ptr_26 ? files_reg_7 : _GEN_890; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_892 = 6'h8 == archit_ptr_26 ? files_reg_8 : _GEN_891; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_893 = 6'h9 == archit_ptr_26 ? files_reg_9 : _GEN_892; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_894 = 6'ha == archit_ptr_26 ? files_reg_10 : _GEN_893; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_895 = 6'hb == archit_ptr_26 ? files_reg_11 : _GEN_894; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_896 = 6'hc == archit_ptr_26 ? files_reg_12 : _GEN_895; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_897 = 6'hd == archit_ptr_26 ? files_reg_13 : _GEN_896; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_898 = 6'he == archit_ptr_26 ? files_reg_14 : _GEN_897; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_899 = 6'hf == archit_ptr_26 ? files_reg_15 : _GEN_898; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_900 = 6'h10 == archit_ptr_26 ? files_reg_16 : _GEN_899; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_901 = 6'h11 == archit_ptr_26 ? files_reg_17 : _GEN_900; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_902 = 6'h12 == archit_ptr_26 ? files_reg_18 : _GEN_901; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_903 = 6'h13 == archit_ptr_26 ? files_reg_19 : _GEN_902; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_904 = 6'h14 == archit_ptr_26 ? files_reg_20 : _GEN_903; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_905 = 6'h15 == archit_ptr_26 ? files_reg_21 : _GEN_904; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_906 = 6'h16 == archit_ptr_26 ? files_reg_22 : _GEN_905; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_907 = 6'h17 == archit_ptr_26 ? files_reg_23 : _GEN_906; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_908 = 6'h18 == archit_ptr_26 ? files_reg_24 : _GEN_907; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_909 = 6'h19 == archit_ptr_26 ? files_reg_25 : _GEN_908; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_910 = 6'h1a == archit_ptr_26 ? files_reg_26 : _GEN_909; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_911 = 6'h1b == archit_ptr_26 ? files_reg_27 : _GEN_910; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_912 = 6'h1c == archit_ptr_26 ? files_reg_28 : _GEN_911; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_913 = 6'h1d == archit_ptr_26 ? files_reg_29 : _GEN_912; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_914 = 6'h1e == archit_ptr_26 ? files_reg_30 : _GEN_913; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_915 = 6'h1f == archit_ptr_26 ? files_reg_31 : _GEN_914; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_916 = 6'h20 == archit_ptr_26 ? files_reg_32 : _GEN_915; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_919 = 6'h1 == archit_ptr_27 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_920 = 6'h2 == archit_ptr_27 ? files_reg_2 : _GEN_919; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_921 = 6'h3 == archit_ptr_27 ? files_reg_3 : _GEN_920; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_922 = 6'h4 == archit_ptr_27 ? files_reg_4 : _GEN_921; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_923 = 6'h5 == archit_ptr_27 ? files_reg_5 : _GEN_922; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_924 = 6'h6 == archit_ptr_27 ? files_reg_6 : _GEN_923; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_925 = 6'h7 == archit_ptr_27 ? files_reg_7 : _GEN_924; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_926 = 6'h8 == archit_ptr_27 ? files_reg_8 : _GEN_925; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_927 = 6'h9 == archit_ptr_27 ? files_reg_9 : _GEN_926; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_928 = 6'ha == archit_ptr_27 ? files_reg_10 : _GEN_927; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_929 = 6'hb == archit_ptr_27 ? files_reg_11 : _GEN_928; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_930 = 6'hc == archit_ptr_27 ? files_reg_12 : _GEN_929; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_931 = 6'hd == archit_ptr_27 ? files_reg_13 : _GEN_930; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_932 = 6'he == archit_ptr_27 ? files_reg_14 : _GEN_931; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_933 = 6'hf == archit_ptr_27 ? files_reg_15 : _GEN_932; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_934 = 6'h10 == archit_ptr_27 ? files_reg_16 : _GEN_933; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_935 = 6'h11 == archit_ptr_27 ? files_reg_17 : _GEN_934; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_936 = 6'h12 == archit_ptr_27 ? files_reg_18 : _GEN_935; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_937 = 6'h13 == archit_ptr_27 ? files_reg_19 : _GEN_936; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_938 = 6'h14 == archit_ptr_27 ? files_reg_20 : _GEN_937; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_939 = 6'h15 == archit_ptr_27 ? files_reg_21 : _GEN_938; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_940 = 6'h16 == archit_ptr_27 ? files_reg_22 : _GEN_939; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_941 = 6'h17 == archit_ptr_27 ? files_reg_23 : _GEN_940; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_942 = 6'h18 == archit_ptr_27 ? files_reg_24 : _GEN_941; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_943 = 6'h19 == archit_ptr_27 ? files_reg_25 : _GEN_942; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_944 = 6'h1a == archit_ptr_27 ? files_reg_26 : _GEN_943; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_945 = 6'h1b == archit_ptr_27 ? files_reg_27 : _GEN_944; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_946 = 6'h1c == archit_ptr_27 ? files_reg_28 : _GEN_945; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_947 = 6'h1d == archit_ptr_27 ? files_reg_29 : _GEN_946; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_948 = 6'h1e == archit_ptr_27 ? files_reg_30 : _GEN_947; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_949 = 6'h1f == archit_ptr_27 ? files_reg_31 : _GEN_948; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_950 = 6'h20 == archit_ptr_27 ? files_reg_32 : _GEN_949; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_953 = 6'h1 == archit_ptr_28 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_954 = 6'h2 == archit_ptr_28 ? files_reg_2 : _GEN_953; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_955 = 6'h3 == archit_ptr_28 ? files_reg_3 : _GEN_954; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_956 = 6'h4 == archit_ptr_28 ? files_reg_4 : _GEN_955; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_957 = 6'h5 == archit_ptr_28 ? files_reg_5 : _GEN_956; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_958 = 6'h6 == archit_ptr_28 ? files_reg_6 : _GEN_957; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_959 = 6'h7 == archit_ptr_28 ? files_reg_7 : _GEN_958; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_960 = 6'h8 == archit_ptr_28 ? files_reg_8 : _GEN_959; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_961 = 6'h9 == archit_ptr_28 ? files_reg_9 : _GEN_960; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_962 = 6'ha == archit_ptr_28 ? files_reg_10 : _GEN_961; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_963 = 6'hb == archit_ptr_28 ? files_reg_11 : _GEN_962; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_964 = 6'hc == archit_ptr_28 ? files_reg_12 : _GEN_963; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_965 = 6'hd == archit_ptr_28 ? files_reg_13 : _GEN_964; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_966 = 6'he == archit_ptr_28 ? files_reg_14 : _GEN_965; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_967 = 6'hf == archit_ptr_28 ? files_reg_15 : _GEN_966; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_968 = 6'h10 == archit_ptr_28 ? files_reg_16 : _GEN_967; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_969 = 6'h11 == archit_ptr_28 ? files_reg_17 : _GEN_968; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_970 = 6'h12 == archit_ptr_28 ? files_reg_18 : _GEN_969; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_971 = 6'h13 == archit_ptr_28 ? files_reg_19 : _GEN_970; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_972 = 6'h14 == archit_ptr_28 ? files_reg_20 : _GEN_971; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_973 = 6'h15 == archit_ptr_28 ? files_reg_21 : _GEN_972; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_974 = 6'h16 == archit_ptr_28 ? files_reg_22 : _GEN_973; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_975 = 6'h17 == archit_ptr_28 ? files_reg_23 : _GEN_974; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_976 = 6'h18 == archit_ptr_28 ? files_reg_24 : _GEN_975; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_977 = 6'h19 == archit_ptr_28 ? files_reg_25 : _GEN_976; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_978 = 6'h1a == archit_ptr_28 ? files_reg_26 : _GEN_977; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_979 = 6'h1b == archit_ptr_28 ? files_reg_27 : _GEN_978; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_980 = 6'h1c == archit_ptr_28 ? files_reg_28 : _GEN_979; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_981 = 6'h1d == archit_ptr_28 ? files_reg_29 : _GEN_980; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_982 = 6'h1e == archit_ptr_28 ? files_reg_30 : _GEN_981; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_983 = 6'h1f == archit_ptr_28 ? files_reg_31 : _GEN_982; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_984 = 6'h20 == archit_ptr_28 ? files_reg_32 : _GEN_983; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_987 = 6'h1 == archit_ptr_29 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_988 = 6'h2 == archit_ptr_29 ? files_reg_2 : _GEN_987; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_989 = 6'h3 == archit_ptr_29 ? files_reg_3 : _GEN_988; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_990 = 6'h4 == archit_ptr_29 ? files_reg_4 : _GEN_989; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_991 = 6'h5 == archit_ptr_29 ? files_reg_5 : _GEN_990; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_992 = 6'h6 == archit_ptr_29 ? files_reg_6 : _GEN_991; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_993 = 6'h7 == archit_ptr_29 ? files_reg_7 : _GEN_992; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_994 = 6'h8 == archit_ptr_29 ? files_reg_8 : _GEN_993; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_995 = 6'h9 == archit_ptr_29 ? files_reg_9 : _GEN_994; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_996 = 6'ha == archit_ptr_29 ? files_reg_10 : _GEN_995; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_997 = 6'hb == archit_ptr_29 ? files_reg_11 : _GEN_996; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_998 = 6'hc == archit_ptr_29 ? files_reg_12 : _GEN_997; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_999 = 6'hd == archit_ptr_29 ? files_reg_13 : _GEN_998; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1000 = 6'he == archit_ptr_29 ? files_reg_14 : _GEN_999; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1001 = 6'hf == archit_ptr_29 ? files_reg_15 : _GEN_1000; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1002 = 6'h10 == archit_ptr_29 ? files_reg_16 : _GEN_1001; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1003 = 6'h11 == archit_ptr_29 ? files_reg_17 : _GEN_1002; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1004 = 6'h12 == archit_ptr_29 ? files_reg_18 : _GEN_1003; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1005 = 6'h13 == archit_ptr_29 ? files_reg_19 : _GEN_1004; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1006 = 6'h14 == archit_ptr_29 ? files_reg_20 : _GEN_1005; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1007 = 6'h15 == archit_ptr_29 ? files_reg_21 : _GEN_1006; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1008 = 6'h16 == archit_ptr_29 ? files_reg_22 : _GEN_1007; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1009 = 6'h17 == archit_ptr_29 ? files_reg_23 : _GEN_1008; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1010 = 6'h18 == archit_ptr_29 ? files_reg_24 : _GEN_1009; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1011 = 6'h19 == archit_ptr_29 ? files_reg_25 : _GEN_1010; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1012 = 6'h1a == archit_ptr_29 ? files_reg_26 : _GEN_1011; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1013 = 6'h1b == archit_ptr_29 ? files_reg_27 : _GEN_1012; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1014 = 6'h1c == archit_ptr_29 ? files_reg_28 : _GEN_1013; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1015 = 6'h1d == archit_ptr_29 ? files_reg_29 : _GEN_1014; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1016 = 6'h1e == archit_ptr_29 ? files_reg_30 : _GEN_1015; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1017 = 6'h1f == archit_ptr_29 ? files_reg_31 : _GEN_1016; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1018 = 6'h20 == archit_ptr_29 ? files_reg_32 : _GEN_1017; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1021 = 6'h1 == archit_ptr_30 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1022 = 6'h2 == archit_ptr_30 ? files_reg_2 : _GEN_1021; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1023 = 6'h3 == archit_ptr_30 ? files_reg_3 : _GEN_1022; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1024 = 6'h4 == archit_ptr_30 ? files_reg_4 : _GEN_1023; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1025 = 6'h5 == archit_ptr_30 ? files_reg_5 : _GEN_1024; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1026 = 6'h6 == archit_ptr_30 ? files_reg_6 : _GEN_1025; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1027 = 6'h7 == archit_ptr_30 ? files_reg_7 : _GEN_1026; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1028 = 6'h8 == archit_ptr_30 ? files_reg_8 : _GEN_1027; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1029 = 6'h9 == archit_ptr_30 ? files_reg_9 : _GEN_1028; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1030 = 6'ha == archit_ptr_30 ? files_reg_10 : _GEN_1029; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1031 = 6'hb == archit_ptr_30 ? files_reg_11 : _GEN_1030; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1032 = 6'hc == archit_ptr_30 ? files_reg_12 : _GEN_1031; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1033 = 6'hd == archit_ptr_30 ? files_reg_13 : _GEN_1032; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1034 = 6'he == archit_ptr_30 ? files_reg_14 : _GEN_1033; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1035 = 6'hf == archit_ptr_30 ? files_reg_15 : _GEN_1034; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1036 = 6'h10 == archit_ptr_30 ? files_reg_16 : _GEN_1035; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1037 = 6'h11 == archit_ptr_30 ? files_reg_17 : _GEN_1036; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1038 = 6'h12 == archit_ptr_30 ? files_reg_18 : _GEN_1037; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1039 = 6'h13 == archit_ptr_30 ? files_reg_19 : _GEN_1038; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1040 = 6'h14 == archit_ptr_30 ? files_reg_20 : _GEN_1039; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1041 = 6'h15 == archit_ptr_30 ? files_reg_21 : _GEN_1040; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1042 = 6'h16 == archit_ptr_30 ? files_reg_22 : _GEN_1041; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1043 = 6'h17 == archit_ptr_30 ? files_reg_23 : _GEN_1042; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1044 = 6'h18 == archit_ptr_30 ? files_reg_24 : _GEN_1043; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1045 = 6'h19 == archit_ptr_30 ? files_reg_25 : _GEN_1044; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1046 = 6'h1a == archit_ptr_30 ? files_reg_26 : _GEN_1045; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1047 = 6'h1b == archit_ptr_30 ? files_reg_27 : _GEN_1046; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1048 = 6'h1c == archit_ptr_30 ? files_reg_28 : _GEN_1047; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1049 = 6'h1d == archit_ptr_30 ? files_reg_29 : _GEN_1048; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1050 = 6'h1e == archit_ptr_30 ? files_reg_30 : _GEN_1049; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1051 = 6'h1f == archit_ptr_30 ? files_reg_31 : _GEN_1050; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1052 = 6'h20 == archit_ptr_30 ? files_reg_32 : _GEN_1051; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1055 = 6'h1 == archit_ptr_31 ? files_reg_1 : files_reg_0; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1056 = 6'h2 == archit_ptr_31 ? files_reg_2 : _GEN_1055; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1057 = 6'h3 == archit_ptr_31 ? files_reg_3 : _GEN_1056; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1058 = 6'h4 == archit_ptr_31 ? files_reg_4 : _GEN_1057; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1059 = 6'h5 == archit_ptr_31 ? files_reg_5 : _GEN_1058; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1060 = 6'h6 == archit_ptr_31 ? files_reg_6 : _GEN_1059; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1061 = 6'h7 == archit_ptr_31 ? files_reg_7 : _GEN_1060; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1062 = 6'h8 == archit_ptr_31 ? files_reg_8 : _GEN_1061; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1063 = 6'h9 == archit_ptr_31 ? files_reg_9 : _GEN_1062; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1064 = 6'ha == archit_ptr_31 ? files_reg_10 : _GEN_1063; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1065 = 6'hb == archit_ptr_31 ? files_reg_11 : _GEN_1064; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1066 = 6'hc == archit_ptr_31 ? files_reg_12 : _GEN_1065; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1067 = 6'hd == archit_ptr_31 ? files_reg_13 : _GEN_1066; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1068 = 6'he == archit_ptr_31 ? files_reg_14 : _GEN_1067; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1069 = 6'hf == archit_ptr_31 ? files_reg_15 : _GEN_1068; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1070 = 6'h10 == archit_ptr_31 ? files_reg_16 : _GEN_1069; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1071 = 6'h11 == archit_ptr_31 ? files_reg_17 : _GEN_1070; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1072 = 6'h12 == archit_ptr_31 ? files_reg_18 : _GEN_1071; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1073 = 6'h13 == archit_ptr_31 ? files_reg_19 : _GEN_1072; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1074 = 6'h14 == archit_ptr_31 ? files_reg_20 : _GEN_1073; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1075 = 6'h15 == archit_ptr_31 ? files_reg_21 : _GEN_1074; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1076 = 6'h16 == archit_ptr_31 ? files_reg_22 : _GEN_1075; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1077 = 6'h17 == archit_ptr_31 ? files_reg_23 : _GEN_1076; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1078 = 6'h18 == archit_ptr_31 ? files_reg_24 : _GEN_1077; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1079 = 6'h19 == archit_ptr_31 ? files_reg_25 : _GEN_1078; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1080 = 6'h1a == archit_ptr_31 ? files_reg_26 : _GEN_1079; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1081 = 6'h1b == archit_ptr_31 ? files_reg_27 : _GEN_1080; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1082 = 6'h1c == archit_ptr_31 ? files_reg_28 : _GEN_1081; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1083 = 6'h1d == archit_ptr_31 ? files_reg_29 : _GEN_1082; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1084 = 6'h1e == archit_ptr_31 ? files_reg_30 : _GEN_1083; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1085 = 6'h1f == archit_ptr_31 ? files_reg_31 : _GEN_1084; // @[Regfiles.scala 133:{19,19}]
  wire [63:0] _GEN_1086 = 6'h20 == archit_ptr_31 ? files_reg_32 : _GEN_1085; // @[Regfiles.scala 133:{19,19}]
  wire  _T_1 = log_reg_32 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1089 = log_reg_32 == 2'h0 ? 6'h20 : 6'h0; // @[Regfiles.scala 150:{46,62}]
  wire  _T_2 = log_reg_31 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1090 = log_reg_31 == 2'h0 ? 6'h1f : _GEN_1089; // @[Regfiles.scala 150:{46,62}]
  wire  _T_3 = log_reg_30 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1091 = log_reg_30 == 2'h0 ? 6'h1e : _GEN_1090; // @[Regfiles.scala 150:{46,62}]
  wire  _T_4 = log_reg_29 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1092 = log_reg_29 == 2'h0 ? 6'h1d : _GEN_1091; // @[Regfiles.scala 150:{46,62}]
  wire  _T_5 = log_reg_28 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1093 = log_reg_28 == 2'h0 ? 6'h1c : _GEN_1092; // @[Regfiles.scala 150:{46,62}]
  wire  _T_6 = log_reg_27 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1094 = log_reg_27 == 2'h0 ? 6'h1b : _GEN_1093; // @[Regfiles.scala 150:{46,62}]
  wire  _T_7 = log_reg_26 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1095 = log_reg_26 == 2'h0 ? 6'h1a : _GEN_1094; // @[Regfiles.scala 150:{46,62}]
  wire  _T_8 = log_reg_25 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1096 = log_reg_25 == 2'h0 ? 6'h19 : _GEN_1095; // @[Regfiles.scala 150:{46,62}]
  wire  _T_9 = log_reg_24 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1097 = log_reg_24 == 2'h0 ? 6'h18 : _GEN_1096; // @[Regfiles.scala 150:{46,62}]
  wire  _T_10 = log_reg_23 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1098 = log_reg_23 == 2'h0 ? 6'h17 : _GEN_1097; // @[Regfiles.scala 150:{46,62}]
  wire  _T_11 = log_reg_22 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1099 = log_reg_22 == 2'h0 ? 6'h16 : _GEN_1098; // @[Regfiles.scala 150:{46,62}]
  wire  _T_12 = log_reg_21 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1100 = log_reg_21 == 2'h0 ? 6'h15 : _GEN_1099; // @[Regfiles.scala 150:{46,62}]
  wire  _T_13 = log_reg_20 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1101 = log_reg_20 == 2'h0 ? 6'h14 : _GEN_1100; // @[Regfiles.scala 150:{46,62}]
  wire  _T_14 = log_reg_19 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1102 = log_reg_19 == 2'h0 ? 6'h13 : _GEN_1101; // @[Regfiles.scala 150:{46,62}]
  wire  _T_15 = log_reg_18 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1103 = log_reg_18 == 2'h0 ? 6'h12 : _GEN_1102; // @[Regfiles.scala 150:{46,62}]
  wire  _T_16 = log_reg_17 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1104 = log_reg_17 == 2'h0 ? 6'h11 : _GEN_1103; // @[Regfiles.scala 150:{46,62}]
  wire  _T_17 = log_reg_16 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1105 = log_reg_16 == 2'h0 ? 6'h10 : _GEN_1104; // @[Regfiles.scala 150:{46,62}]
  wire  _T_18 = log_reg_15 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1106 = log_reg_15 == 2'h0 ? 6'hf : _GEN_1105; // @[Regfiles.scala 150:{46,62}]
  wire  _T_19 = log_reg_14 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1107 = log_reg_14 == 2'h0 ? 6'he : _GEN_1106; // @[Regfiles.scala 150:{46,62}]
  wire  _T_20 = log_reg_13 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1108 = log_reg_13 == 2'h0 ? 6'hd : _GEN_1107; // @[Regfiles.scala 150:{46,62}]
  wire  _T_21 = log_reg_12 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1109 = log_reg_12 == 2'h0 ? 6'hc : _GEN_1108; // @[Regfiles.scala 150:{46,62}]
  wire  _T_22 = log_reg_11 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1110 = log_reg_11 == 2'h0 ? 6'hb : _GEN_1109; // @[Regfiles.scala 150:{46,62}]
  wire  _T_23 = log_reg_10 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1111 = log_reg_10 == 2'h0 ? 6'ha : _GEN_1110; // @[Regfiles.scala 150:{46,62}]
  wire  _T_24 = log_reg_9 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1112 = log_reg_9 == 2'h0 ? 6'h9 : _GEN_1111; // @[Regfiles.scala 150:{46,62}]
  wire  _T_25 = log_reg_8 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1113 = log_reg_8 == 2'h0 ? 6'h8 : _GEN_1112; // @[Regfiles.scala 150:{46,62}]
  wire  _T_26 = log_reg_7 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1114 = log_reg_7 == 2'h0 ? 6'h7 : _GEN_1113; // @[Regfiles.scala 150:{46,62}]
  wire  _T_27 = log_reg_6 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1115 = log_reg_6 == 2'h0 ? 6'h6 : _GEN_1114; // @[Regfiles.scala 150:{46,62}]
  wire  _T_28 = log_reg_5 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1116 = log_reg_5 == 2'h0 ? 6'h5 : _GEN_1115; // @[Regfiles.scala 150:{46,62}]
  wire  _T_29 = log_reg_4 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1117 = log_reg_4 == 2'h0 ? 6'h4 : _GEN_1116; // @[Regfiles.scala 150:{46,62}]
  wire  _T_30 = log_reg_3 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1118 = log_reg_3 == 2'h0 ? 6'h3 : _GEN_1117; // @[Regfiles.scala 150:{46,62}]
  wire  _T_31 = log_reg_2 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1119 = log_reg_2 == 2'h0 ? 6'h2 : _GEN_1118; // @[Regfiles.scala 150:{46,62}]
  wire  _T_32 = log_reg_1 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] _GEN_1120 = log_reg_1 == 2'h0 ? 6'h1 : _GEN_1119; // @[Regfiles.scala 150:{46,62}]
  wire  _T_33 = log_reg_0 == 2'h0; // @[Regfiles.scala 150:36]
  wire [5:0] molloc_idx_0 = log_reg_0 == 2'h0 ? 6'h0 : _GEN_1120; // @[Regfiles.scala 150:{46,62}]
  wire  _T_34 = io_rename_0_req_ready & io_rename_0_req_valid; // @[Decoupled.scala 52:35]
  wire [1:0] _GEN_1123 = 6'h1 == molloc_idx_0 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1124 = 6'h2 == molloc_idx_0 ? log_reg_2 : _GEN_1123; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1125 = 6'h3 == molloc_idx_0 ? log_reg_3 : _GEN_1124; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1126 = 6'h4 == molloc_idx_0 ? log_reg_4 : _GEN_1125; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1127 = 6'h5 == molloc_idx_0 ? log_reg_5 : _GEN_1126; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1128 = 6'h6 == molloc_idx_0 ? log_reg_6 : _GEN_1127; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1129 = 6'h7 == molloc_idx_0 ? log_reg_7 : _GEN_1128; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1130 = 6'h8 == molloc_idx_0 ? log_reg_8 : _GEN_1129; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1131 = 6'h9 == molloc_idx_0 ? log_reg_9 : _GEN_1130; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1132 = 6'ha == molloc_idx_0 ? log_reg_10 : _GEN_1131; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1133 = 6'hb == molloc_idx_0 ? log_reg_11 : _GEN_1132; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1134 = 6'hc == molloc_idx_0 ? log_reg_12 : _GEN_1133; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1135 = 6'hd == molloc_idx_0 ? log_reg_13 : _GEN_1134; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1136 = 6'he == molloc_idx_0 ? log_reg_14 : _GEN_1135; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1137 = 6'hf == molloc_idx_0 ? log_reg_15 : _GEN_1136; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1138 = 6'h10 == molloc_idx_0 ? log_reg_16 : _GEN_1137; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1139 = 6'h11 == molloc_idx_0 ? log_reg_17 : _GEN_1138; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1140 = 6'h12 == molloc_idx_0 ? log_reg_18 : _GEN_1139; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1141 = 6'h13 == molloc_idx_0 ? log_reg_19 : _GEN_1140; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1142 = 6'h14 == molloc_idx_0 ? log_reg_20 : _GEN_1141; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1143 = 6'h15 == molloc_idx_0 ? log_reg_21 : _GEN_1142; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1144 = 6'h16 == molloc_idx_0 ? log_reg_22 : _GEN_1143; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1145 = 6'h17 == molloc_idx_0 ? log_reg_23 : _GEN_1144; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1146 = 6'h18 == molloc_idx_0 ? log_reg_24 : _GEN_1145; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1147 = 6'h19 == molloc_idx_0 ? log_reg_25 : _GEN_1146; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1148 = 6'h1a == molloc_idx_0 ? log_reg_26 : _GEN_1147; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1149 = 6'h1b == molloc_idx_0 ? log_reg_27 : _GEN_1148; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1150 = 6'h1c == molloc_idx_0 ? log_reg_28 : _GEN_1149; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1151 = 6'h1d == molloc_idx_0 ? log_reg_29 : _GEN_1150; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1152 = 6'h1e == molloc_idx_0 ? log_reg_30 : _GEN_1151; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1153 = 6'h1f == molloc_idx_0 ? log_reg_31 : _GEN_1152; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1154 = 6'h20 == molloc_idx_0 ? log_reg_32 : _GEN_1153; // @[Regfiles.scala 160:{34,34}]
  wire [1:0] _GEN_1155 = 6'h21 == molloc_idx_0 ? 2'h3 : _GEN_1154; // @[Regfiles.scala 160:{34,34}]
  wire  _T_37 = ~reset; // @[Regfiles.scala 160:13]
  wire [1:0] _GEN_1156 = 6'h0 == molloc_idx_0 ? 2'h1 : log_reg_0; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1157 = 6'h1 == molloc_idx_0 ? 2'h1 : log_reg_1; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1158 = 6'h2 == molloc_idx_0 ? 2'h1 : log_reg_2; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1159 = 6'h3 == molloc_idx_0 ? 2'h1 : log_reg_3; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1160 = 6'h4 == molloc_idx_0 ? 2'h1 : log_reg_4; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1161 = 6'h5 == molloc_idx_0 ? 2'h1 : log_reg_5; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1162 = 6'h6 == molloc_idx_0 ? 2'h1 : log_reg_6; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1163 = 6'h7 == molloc_idx_0 ? 2'h1 : log_reg_7; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1164 = 6'h8 == molloc_idx_0 ? 2'h1 : log_reg_8; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1165 = 6'h9 == molloc_idx_0 ? 2'h1 : log_reg_9; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1166 = 6'ha == molloc_idx_0 ? 2'h1 : log_reg_10; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1167 = 6'hb == molloc_idx_0 ? 2'h1 : log_reg_11; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1168 = 6'hc == molloc_idx_0 ? 2'h1 : log_reg_12; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1169 = 6'hd == molloc_idx_0 ? 2'h1 : log_reg_13; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1170 = 6'he == molloc_idx_0 ? 2'h1 : log_reg_14; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1171 = 6'hf == molloc_idx_0 ? 2'h1 : log_reg_15; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1172 = 6'h10 == molloc_idx_0 ? 2'h1 : log_reg_16; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1173 = 6'h11 == molloc_idx_0 ? 2'h1 : log_reg_17; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1174 = 6'h12 == molloc_idx_0 ? 2'h1 : log_reg_18; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1175 = 6'h13 == molloc_idx_0 ? 2'h1 : log_reg_19; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1176 = 6'h14 == molloc_idx_0 ? 2'h1 : log_reg_20; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1177 = 6'h15 == molloc_idx_0 ? 2'h1 : log_reg_21; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1178 = 6'h16 == molloc_idx_0 ? 2'h1 : log_reg_22; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1179 = 6'h17 == molloc_idx_0 ? 2'h1 : log_reg_23; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1180 = 6'h18 == molloc_idx_0 ? 2'h1 : log_reg_24; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1181 = 6'h19 == molloc_idx_0 ? 2'h1 : log_reg_25; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1182 = 6'h1a == molloc_idx_0 ? 2'h1 : log_reg_26; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1183 = 6'h1b == molloc_idx_0 ? 2'h1 : log_reg_27; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1184 = 6'h1c == molloc_idx_0 ? 2'h1 : log_reg_28; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1185 = 6'h1d == molloc_idx_0 ? 2'h1 : log_reg_29; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1186 = 6'h1e == molloc_idx_0 ? 2'h1 : log_reg_30; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1187 = 6'h1f == molloc_idx_0 ? 2'h1 : log_reg_31; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1188 = 6'h20 == molloc_idx_0 ? 2'h1 : log_reg_32; // @[Regfiles.scala 101:12 161:{30,30}]
  wire [1:0] _GEN_1221 = _T_34 ? _GEN_1156 : log_reg_0; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1222 = _T_34 ? _GEN_1157 : log_reg_1; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1223 = _T_34 ? _GEN_1158 : log_reg_2; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1224 = _T_34 ? _GEN_1159 : log_reg_3; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1225 = _T_34 ? _GEN_1160 : log_reg_4; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1226 = _T_34 ? _GEN_1161 : log_reg_5; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1227 = _T_34 ? _GEN_1162 : log_reg_6; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1228 = _T_34 ? _GEN_1163 : log_reg_7; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1229 = _T_34 ? _GEN_1164 : log_reg_8; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1230 = _T_34 ? _GEN_1165 : log_reg_9; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1231 = _T_34 ? _GEN_1166 : log_reg_10; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1232 = _T_34 ? _GEN_1167 : log_reg_11; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1233 = _T_34 ? _GEN_1168 : log_reg_12; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1234 = _T_34 ? _GEN_1169 : log_reg_13; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1235 = _T_34 ? _GEN_1170 : log_reg_14; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1236 = _T_34 ? _GEN_1171 : log_reg_15; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1237 = _T_34 ? _GEN_1172 : log_reg_16; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1238 = _T_34 ? _GEN_1173 : log_reg_17; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1239 = _T_34 ? _GEN_1174 : log_reg_18; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1240 = _T_34 ? _GEN_1175 : log_reg_19; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1241 = _T_34 ? _GEN_1176 : log_reg_20; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1242 = _T_34 ? _GEN_1177 : log_reg_21; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1243 = _T_34 ? _GEN_1178 : log_reg_22; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1244 = _T_34 ? _GEN_1179 : log_reg_23; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1245 = _T_34 ? _GEN_1180 : log_reg_24; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1246 = _T_34 ? _GEN_1181 : log_reg_25; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1247 = _T_34 ? _GEN_1182 : log_reg_26; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1248 = _T_34 ? _GEN_1183 : log_reg_27; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1249 = _T_34 ? _GEN_1184 : log_reg_28; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1250 = _T_34 ? _GEN_1185 : log_reg_29; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1251 = _T_34 ? _GEN_1186 : log_reg_30; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1252 = _T_34 ? _GEN_1187 : log_reg_31; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _GEN_1253 = _T_34 ? _GEN_1188 : log_reg_32; // @[Regfiles.scala 101:12 158:35]
  wire [1:0] _io_rename_0_req_ready_T_34 = _T_33 + _T_32; // @[Regfiles.scala 165:40]
  wire [1:0] _io_rename_0_req_ready_T_36 = _T_31 + _T_30; // @[Regfiles.scala 165:40]
  wire [2:0] _io_rename_0_req_ready_T_38 = _io_rename_0_req_ready_T_34 + _io_rename_0_req_ready_T_36; // @[Regfiles.scala 165:40]
  wire [1:0] _io_rename_0_req_ready_T_40 = _T_29 + _T_28; // @[Regfiles.scala 165:40]
  wire [1:0] _io_rename_0_req_ready_T_42 = _T_27 + _T_26; // @[Regfiles.scala 165:40]
  wire [2:0] _io_rename_0_req_ready_T_44 = _io_rename_0_req_ready_T_40 + _io_rename_0_req_ready_T_42; // @[Regfiles.scala 165:40]
  wire [3:0] _io_rename_0_req_ready_T_46 = _io_rename_0_req_ready_T_38 + _io_rename_0_req_ready_T_44; // @[Regfiles.scala 165:40]
  wire [1:0] _io_rename_0_req_ready_T_48 = _T_25 + _T_24; // @[Regfiles.scala 165:40]
  wire [1:0] _io_rename_0_req_ready_T_50 = _T_23 + _T_22; // @[Regfiles.scala 165:40]
  wire [2:0] _io_rename_0_req_ready_T_52 = _io_rename_0_req_ready_T_48 + _io_rename_0_req_ready_T_50; // @[Regfiles.scala 165:40]
  wire [1:0] _io_rename_0_req_ready_T_54 = _T_21 + _T_20; // @[Regfiles.scala 165:40]
  wire [1:0] _io_rename_0_req_ready_T_56 = _T_18 + _T_17; // @[Regfiles.scala 165:40]
  wire [1:0] _GEN_3103 = {{1'd0}, _T_19}; // @[Regfiles.scala 165:40]
  wire [2:0] _io_rename_0_req_ready_T_58 = _GEN_3103 + _io_rename_0_req_ready_T_56; // @[Regfiles.scala 165:40]
  wire [2:0] _io_rename_0_req_ready_T_60 = _io_rename_0_req_ready_T_54 + _io_rename_0_req_ready_T_58[1:0]; // @[Regfiles.scala 165:40]
  wire [3:0] _io_rename_0_req_ready_T_62 = _io_rename_0_req_ready_T_52 + _io_rename_0_req_ready_T_60; // @[Regfiles.scala 165:40]
  wire [4:0] _io_rename_0_req_ready_T_64 = _io_rename_0_req_ready_T_46 + _io_rename_0_req_ready_T_62; // @[Regfiles.scala 165:40]
  wire [1:0] _io_rename_0_req_ready_T_66 = _T_16 + _T_15; // @[Regfiles.scala 165:40]
  wire [1:0] _io_rename_0_req_ready_T_68 = _T_14 + _T_13; // @[Regfiles.scala 165:40]
  wire [2:0] _io_rename_0_req_ready_T_70 = _io_rename_0_req_ready_T_66 + _io_rename_0_req_ready_T_68; // @[Regfiles.scala 165:40]
  wire [1:0] _io_rename_0_req_ready_T_72 = _T_12 + _T_11; // @[Regfiles.scala 165:40]
  wire [1:0] _io_rename_0_req_ready_T_74 = _T_10 + _T_9; // @[Regfiles.scala 165:40]
  wire [2:0] _io_rename_0_req_ready_T_76 = _io_rename_0_req_ready_T_72 + _io_rename_0_req_ready_T_74; // @[Regfiles.scala 165:40]
  wire [3:0] _io_rename_0_req_ready_T_78 = _io_rename_0_req_ready_T_70 + _io_rename_0_req_ready_T_76; // @[Regfiles.scala 165:40]
  wire [1:0] _io_rename_0_req_ready_T_80 = _T_8 + _T_7; // @[Regfiles.scala 165:40]
  wire [1:0] _io_rename_0_req_ready_T_82 = _T_6 + _T_5; // @[Regfiles.scala 165:40]
  wire [2:0] _io_rename_0_req_ready_T_84 = _io_rename_0_req_ready_T_80 + _io_rename_0_req_ready_T_82; // @[Regfiles.scala 165:40]
  wire [1:0] _io_rename_0_req_ready_T_86 = _T_4 + _T_3; // @[Regfiles.scala 165:40]
  wire [1:0] _io_rename_0_req_ready_T_88 = {{1'd0}, _T_1}; // @[Regfiles.scala 165:40]
  wire [1:0] _GEN_3104 = {{1'd0}, _T_2}; // @[Regfiles.scala 165:40]
  wire [2:0] _io_rename_0_req_ready_T_90 = _GEN_3104 + _io_rename_0_req_ready_T_88; // @[Regfiles.scala 165:40]
  wire [2:0] _io_rename_0_req_ready_T_92 = _io_rename_0_req_ready_T_86 + _io_rename_0_req_ready_T_90[1:0]; // @[Regfiles.scala 165:40]
  wire [3:0] _io_rename_0_req_ready_T_94 = _io_rename_0_req_ready_T_84 + _io_rename_0_req_ready_T_92; // @[Regfiles.scala 165:40]
  wire [4:0] _io_rename_0_req_ready_T_96 = _io_rename_0_req_ready_T_78 + _io_rename_0_req_ready_T_94; // @[Regfiles.scala 165:40]
  wire [5:0] _io_rename_0_req_ready_T_98 = _io_rename_0_req_ready_T_64 + _io_rename_0_req_ready_T_96; // @[Regfiles.scala 165:40]
  wire  _T_39 = io_commit_0_is_MisPredict | io_commit_0_is_abort; // @[Regfiles.scala 172:39]
  reg  io_rgRsp_0_valid_REG; // @[Regfiles.scala 191:36]
  reg [5:0] io_rgRsp_0_bits_phy_r; // @[Reg.scala 19:16]
  reg [63:0] io_rgRsp_0_bits_op_r; // @[Reg.scala 19:16]
  wire [63:0] _GEN_1352 = 6'h1 == io_rgReq_0_bits ? files_reg_1 : files_reg_0; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1353 = 6'h2 == io_rgReq_0_bits ? files_reg_2 : _GEN_1352; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1354 = 6'h3 == io_rgReq_0_bits ? files_reg_3 : _GEN_1353; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1355 = 6'h4 == io_rgReq_0_bits ? files_reg_4 : _GEN_1354; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1356 = 6'h5 == io_rgReq_0_bits ? files_reg_5 : _GEN_1355; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1357 = 6'h6 == io_rgReq_0_bits ? files_reg_6 : _GEN_1356; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1358 = 6'h7 == io_rgReq_0_bits ? files_reg_7 : _GEN_1357; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1359 = 6'h8 == io_rgReq_0_bits ? files_reg_8 : _GEN_1358; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1360 = 6'h9 == io_rgReq_0_bits ? files_reg_9 : _GEN_1359; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1361 = 6'ha == io_rgReq_0_bits ? files_reg_10 : _GEN_1360; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1362 = 6'hb == io_rgReq_0_bits ? files_reg_11 : _GEN_1361; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1363 = 6'hc == io_rgReq_0_bits ? files_reg_12 : _GEN_1362; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1364 = 6'hd == io_rgReq_0_bits ? files_reg_13 : _GEN_1363; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1365 = 6'he == io_rgReq_0_bits ? files_reg_14 : _GEN_1364; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1366 = 6'hf == io_rgReq_0_bits ? files_reg_15 : _GEN_1365; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1367 = 6'h10 == io_rgReq_0_bits ? files_reg_16 : _GEN_1366; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1368 = 6'h11 == io_rgReq_0_bits ? files_reg_17 : _GEN_1367; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1369 = 6'h12 == io_rgReq_0_bits ? files_reg_18 : _GEN_1368; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1370 = 6'h13 == io_rgReq_0_bits ? files_reg_19 : _GEN_1369; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1371 = 6'h14 == io_rgReq_0_bits ? files_reg_20 : _GEN_1370; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1372 = 6'h15 == io_rgReq_0_bits ? files_reg_21 : _GEN_1371; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1373 = 6'h16 == io_rgReq_0_bits ? files_reg_22 : _GEN_1372; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1374 = 6'h17 == io_rgReq_0_bits ? files_reg_23 : _GEN_1373; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1375 = 6'h18 == io_rgReq_0_bits ? files_reg_24 : _GEN_1374; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1376 = 6'h19 == io_rgReq_0_bits ? files_reg_25 : _GEN_1375; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1377 = 6'h1a == io_rgReq_0_bits ? files_reg_26 : _GEN_1376; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1378 = 6'h1b == io_rgReq_0_bits ? files_reg_27 : _GEN_1377; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1379 = 6'h1c == io_rgReq_0_bits ? files_reg_28 : _GEN_1378; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1380 = 6'h1d == io_rgReq_0_bits ? files_reg_29 : _GEN_1379; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1381 = 6'h1e == io_rgReq_0_bits ? files_reg_30 : _GEN_1380; // @[Reg.scala 20:{22,22}]
  wire [1:0] _GEN_1387 = 6'h1 == io_rgReq_0_bits ? log_reg_1 : log_reg_0; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1388 = 6'h2 == io_rgReq_0_bits ? log_reg_2 : _GEN_1387; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1389 = 6'h3 == io_rgReq_0_bits ? log_reg_3 : _GEN_1388; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1390 = 6'h4 == io_rgReq_0_bits ? log_reg_4 : _GEN_1389; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1391 = 6'h5 == io_rgReq_0_bits ? log_reg_5 : _GEN_1390; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1392 = 6'h6 == io_rgReq_0_bits ? log_reg_6 : _GEN_1391; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1393 = 6'h7 == io_rgReq_0_bits ? log_reg_7 : _GEN_1392; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1394 = 6'h8 == io_rgReq_0_bits ? log_reg_8 : _GEN_1393; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1395 = 6'h9 == io_rgReq_0_bits ? log_reg_9 : _GEN_1394; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1396 = 6'ha == io_rgReq_0_bits ? log_reg_10 : _GEN_1395; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1397 = 6'hb == io_rgReq_0_bits ? log_reg_11 : _GEN_1396; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1398 = 6'hc == io_rgReq_0_bits ? log_reg_12 : _GEN_1397; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1399 = 6'hd == io_rgReq_0_bits ? log_reg_13 : _GEN_1398; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1400 = 6'he == io_rgReq_0_bits ? log_reg_14 : _GEN_1399; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1401 = 6'hf == io_rgReq_0_bits ? log_reg_15 : _GEN_1400; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1402 = 6'h10 == io_rgReq_0_bits ? log_reg_16 : _GEN_1401; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1403 = 6'h11 == io_rgReq_0_bits ? log_reg_17 : _GEN_1402; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1404 = 6'h12 == io_rgReq_0_bits ? log_reg_18 : _GEN_1403; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1405 = 6'h13 == io_rgReq_0_bits ? log_reg_19 : _GEN_1404; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1406 = 6'h14 == io_rgReq_0_bits ? log_reg_20 : _GEN_1405; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1407 = 6'h15 == io_rgReq_0_bits ? log_reg_21 : _GEN_1406; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1408 = 6'h16 == io_rgReq_0_bits ? log_reg_22 : _GEN_1407; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1409 = 6'h17 == io_rgReq_0_bits ? log_reg_23 : _GEN_1408; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1410 = 6'h18 == io_rgReq_0_bits ? log_reg_24 : _GEN_1409; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1411 = 6'h19 == io_rgReq_0_bits ? log_reg_25 : _GEN_1410; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1412 = 6'h1a == io_rgReq_0_bits ? log_reg_26 : _GEN_1411; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1413 = 6'h1b == io_rgReq_0_bits ? log_reg_27 : _GEN_1412; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1414 = 6'h1c == io_rgReq_0_bits ? log_reg_28 : _GEN_1413; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1415 = 6'h1d == io_rgReq_0_bits ? log_reg_29 : _GEN_1414; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1416 = 6'h1e == io_rgReq_0_bits ? log_reg_30 : _GEN_1415; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1417 = 6'h1f == io_rgReq_0_bits ? log_reg_31 : _GEN_1416; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1418 = 6'h20 == io_rgReq_0_bits ? log_reg_32 : _GEN_1417; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1419 = 6'h21 == io_rgReq_0_bits ? 2'h3 : _GEN_1418; // @[Regfiles.scala 194:{64,64}]
  reg  io_rgRsp_1_valid_REG; // @[Regfiles.scala 191:36]
  reg [5:0] io_rgRsp_1_bits_phy_r; // @[Reg.scala 19:16]
  reg [63:0] io_rgRsp_1_bits_op_r; // @[Reg.scala 19:16]
  wire [63:0] _GEN_1422 = 6'h1 == io_rgReq_1_bits ? files_reg_1 : files_reg_0; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1423 = 6'h2 == io_rgReq_1_bits ? files_reg_2 : _GEN_1422; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1424 = 6'h3 == io_rgReq_1_bits ? files_reg_3 : _GEN_1423; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1425 = 6'h4 == io_rgReq_1_bits ? files_reg_4 : _GEN_1424; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1426 = 6'h5 == io_rgReq_1_bits ? files_reg_5 : _GEN_1425; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1427 = 6'h6 == io_rgReq_1_bits ? files_reg_6 : _GEN_1426; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1428 = 6'h7 == io_rgReq_1_bits ? files_reg_7 : _GEN_1427; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1429 = 6'h8 == io_rgReq_1_bits ? files_reg_8 : _GEN_1428; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1430 = 6'h9 == io_rgReq_1_bits ? files_reg_9 : _GEN_1429; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1431 = 6'ha == io_rgReq_1_bits ? files_reg_10 : _GEN_1430; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1432 = 6'hb == io_rgReq_1_bits ? files_reg_11 : _GEN_1431; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1433 = 6'hc == io_rgReq_1_bits ? files_reg_12 : _GEN_1432; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1434 = 6'hd == io_rgReq_1_bits ? files_reg_13 : _GEN_1433; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1435 = 6'he == io_rgReq_1_bits ? files_reg_14 : _GEN_1434; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1436 = 6'hf == io_rgReq_1_bits ? files_reg_15 : _GEN_1435; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1437 = 6'h10 == io_rgReq_1_bits ? files_reg_16 : _GEN_1436; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1438 = 6'h11 == io_rgReq_1_bits ? files_reg_17 : _GEN_1437; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1439 = 6'h12 == io_rgReq_1_bits ? files_reg_18 : _GEN_1438; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1440 = 6'h13 == io_rgReq_1_bits ? files_reg_19 : _GEN_1439; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1441 = 6'h14 == io_rgReq_1_bits ? files_reg_20 : _GEN_1440; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1442 = 6'h15 == io_rgReq_1_bits ? files_reg_21 : _GEN_1441; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1443 = 6'h16 == io_rgReq_1_bits ? files_reg_22 : _GEN_1442; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1444 = 6'h17 == io_rgReq_1_bits ? files_reg_23 : _GEN_1443; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1445 = 6'h18 == io_rgReq_1_bits ? files_reg_24 : _GEN_1444; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1446 = 6'h19 == io_rgReq_1_bits ? files_reg_25 : _GEN_1445; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1447 = 6'h1a == io_rgReq_1_bits ? files_reg_26 : _GEN_1446; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1448 = 6'h1b == io_rgReq_1_bits ? files_reg_27 : _GEN_1447; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1449 = 6'h1c == io_rgReq_1_bits ? files_reg_28 : _GEN_1448; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1450 = 6'h1d == io_rgReq_1_bits ? files_reg_29 : _GEN_1449; // @[Reg.scala 20:{22,22}]
  wire [63:0] _GEN_1451 = 6'h1e == io_rgReq_1_bits ? files_reg_30 : _GEN_1450; // @[Reg.scala 20:{22,22}]
  wire [1:0] _GEN_1457 = 6'h1 == io_rgReq_1_bits ? log_reg_1 : log_reg_0; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1458 = 6'h2 == io_rgReq_1_bits ? log_reg_2 : _GEN_1457; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1459 = 6'h3 == io_rgReq_1_bits ? log_reg_3 : _GEN_1458; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1460 = 6'h4 == io_rgReq_1_bits ? log_reg_4 : _GEN_1459; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1461 = 6'h5 == io_rgReq_1_bits ? log_reg_5 : _GEN_1460; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1462 = 6'h6 == io_rgReq_1_bits ? log_reg_6 : _GEN_1461; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1463 = 6'h7 == io_rgReq_1_bits ? log_reg_7 : _GEN_1462; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1464 = 6'h8 == io_rgReq_1_bits ? log_reg_8 : _GEN_1463; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1465 = 6'h9 == io_rgReq_1_bits ? log_reg_9 : _GEN_1464; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1466 = 6'ha == io_rgReq_1_bits ? log_reg_10 : _GEN_1465; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1467 = 6'hb == io_rgReq_1_bits ? log_reg_11 : _GEN_1466; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1468 = 6'hc == io_rgReq_1_bits ? log_reg_12 : _GEN_1467; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1469 = 6'hd == io_rgReq_1_bits ? log_reg_13 : _GEN_1468; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1470 = 6'he == io_rgReq_1_bits ? log_reg_14 : _GEN_1469; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1471 = 6'hf == io_rgReq_1_bits ? log_reg_15 : _GEN_1470; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1472 = 6'h10 == io_rgReq_1_bits ? log_reg_16 : _GEN_1471; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1473 = 6'h11 == io_rgReq_1_bits ? log_reg_17 : _GEN_1472; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1474 = 6'h12 == io_rgReq_1_bits ? log_reg_18 : _GEN_1473; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1475 = 6'h13 == io_rgReq_1_bits ? log_reg_19 : _GEN_1474; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1476 = 6'h14 == io_rgReq_1_bits ? log_reg_20 : _GEN_1475; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1477 = 6'h15 == io_rgReq_1_bits ? log_reg_21 : _GEN_1476; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1478 = 6'h16 == io_rgReq_1_bits ? log_reg_22 : _GEN_1477; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1479 = 6'h17 == io_rgReq_1_bits ? log_reg_23 : _GEN_1478; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1480 = 6'h18 == io_rgReq_1_bits ? log_reg_24 : _GEN_1479; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1481 = 6'h19 == io_rgReq_1_bits ? log_reg_25 : _GEN_1480; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1482 = 6'h1a == io_rgReq_1_bits ? log_reg_26 : _GEN_1481; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1483 = 6'h1b == io_rgReq_1_bits ? log_reg_27 : _GEN_1482; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1484 = 6'h1c == io_rgReq_1_bits ? log_reg_28 : _GEN_1483; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1485 = 6'h1d == io_rgReq_1_bits ? log_reg_29 : _GEN_1484; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1486 = 6'h1e == io_rgReq_1_bits ? log_reg_30 : _GEN_1485; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1487 = 6'h1f == io_rgReq_1_bits ? log_reg_31 : _GEN_1486; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1488 = 6'h20 == io_rgReq_1_bits ? log_reg_32 : _GEN_1487; // @[Regfiles.scala 194:{64,64}]
  wire [1:0] _GEN_1489 = 6'h21 == io_rgReq_1_bits ? 2'h3 : _GEN_1488; // @[Regfiles.scala 194:{64,64}]
  wire  _T_112 = io_exe_writeBack_0_ready & io_exe_writeBack_0_valid; // @[Decoupled.scala 52:35]
  wire [1:0] _GEN_1491 = 6'h1 == io_exe_writeBack_0_bits_rd0 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1492 = 6'h2 == io_exe_writeBack_0_bits_rd0 ? log_reg_2 : _GEN_1491; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1493 = 6'h3 == io_exe_writeBack_0_bits_rd0 ? log_reg_3 : _GEN_1492; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1494 = 6'h4 == io_exe_writeBack_0_bits_rd0 ? log_reg_4 : _GEN_1493; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1495 = 6'h5 == io_exe_writeBack_0_bits_rd0 ? log_reg_5 : _GEN_1494; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1496 = 6'h6 == io_exe_writeBack_0_bits_rd0 ? log_reg_6 : _GEN_1495; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1497 = 6'h7 == io_exe_writeBack_0_bits_rd0 ? log_reg_7 : _GEN_1496; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1498 = 6'h8 == io_exe_writeBack_0_bits_rd0 ? log_reg_8 : _GEN_1497; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1499 = 6'h9 == io_exe_writeBack_0_bits_rd0 ? log_reg_9 : _GEN_1498; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1500 = 6'ha == io_exe_writeBack_0_bits_rd0 ? log_reg_10 : _GEN_1499; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1501 = 6'hb == io_exe_writeBack_0_bits_rd0 ? log_reg_11 : _GEN_1500; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1502 = 6'hc == io_exe_writeBack_0_bits_rd0 ? log_reg_12 : _GEN_1501; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1503 = 6'hd == io_exe_writeBack_0_bits_rd0 ? log_reg_13 : _GEN_1502; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1504 = 6'he == io_exe_writeBack_0_bits_rd0 ? log_reg_14 : _GEN_1503; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1505 = 6'hf == io_exe_writeBack_0_bits_rd0 ? log_reg_15 : _GEN_1504; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1506 = 6'h10 == io_exe_writeBack_0_bits_rd0 ? log_reg_16 : _GEN_1505; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1507 = 6'h11 == io_exe_writeBack_0_bits_rd0 ? log_reg_17 : _GEN_1506; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1508 = 6'h12 == io_exe_writeBack_0_bits_rd0 ? log_reg_18 : _GEN_1507; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1509 = 6'h13 == io_exe_writeBack_0_bits_rd0 ? log_reg_19 : _GEN_1508; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1510 = 6'h14 == io_exe_writeBack_0_bits_rd0 ? log_reg_20 : _GEN_1509; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1511 = 6'h15 == io_exe_writeBack_0_bits_rd0 ? log_reg_21 : _GEN_1510; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1512 = 6'h16 == io_exe_writeBack_0_bits_rd0 ? log_reg_22 : _GEN_1511; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1513 = 6'h17 == io_exe_writeBack_0_bits_rd0 ? log_reg_23 : _GEN_1512; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1514 = 6'h18 == io_exe_writeBack_0_bits_rd0 ? log_reg_24 : _GEN_1513; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1515 = 6'h19 == io_exe_writeBack_0_bits_rd0 ? log_reg_25 : _GEN_1514; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1516 = 6'h1a == io_exe_writeBack_0_bits_rd0 ? log_reg_26 : _GEN_1515; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1517 = 6'h1b == io_exe_writeBack_0_bits_rd0 ? log_reg_27 : _GEN_1516; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1518 = 6'h1c == io_exe_writeBack_0_bits_rd0 ? log_reg_28 : _GEN_1517; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1519 = 6'h1d == io_exe_writeBack_0_bits_rd0 ? log_reg_29 : _GEN_1518; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1520 = 6'h1e == io_exe_writeBack_0_bits_rd0 ? log_reg_30 : _GEN_1519; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1521 = 6'h1f == io_exe_writeBack_0_bits_rd0 ? log_reg_31 : _GEN_1520; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1522 = 6'h20 == io_exe_writeBack_0_bits_rd0 ? log_reg_32 : _GEN_1521; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1523 = 6'h21 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1522; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1524 = 6'h0 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1221; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1525 = 6'h1 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1222; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1526 = 6'h2 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1223; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1527 = 6'h3 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1224; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1528 = 6'h4 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1225; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1529 = 6'h5 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1226; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1530 = 6'h6 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1227; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1531 = 6'h7 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1228; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1532 = 6'h8 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1229; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1533 = 6'h9 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1230; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1534 = 6'ha == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1231; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1535 = 6'hb == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1232; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1536 = 6'hc == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1233; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1537 = 6'hd == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1234; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1538 = 6'he == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1235; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1539 = 6'hf == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1236; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1540 = 6'h10 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1237; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1541 = 6'h11 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1238; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1542 = 6'h12 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1239; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1543 = 6'h13 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1240; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1544 = 6'h14 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1241; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1545 = 6'h15 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1242; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1546 = 6'h16 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1243; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1547 = 6'h17 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1244; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1548 = 6'h18 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1245; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1549 = 6'h19 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1246; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1550 = 6'h1a == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1247; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1551 = 6'h1b == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1248; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1552 = 6'h1c == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1249; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1553 = 6'h1d == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1250; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1554 = 6'h1e == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1251; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1555 = 6'h1f == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1252; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1556 = 6'h20 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1253; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1590 = _T_112 ? _GEN_1524 : _GEN_1221; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1591 = _T_112 ? _GEN_1525 : _GEN_1222; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1592 = _T_112 ? _GEN_1526 : _GEN_1223; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1593 = _T_112 ? _GEN_1527 : _GEN_1224; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1594 = _T_112 ? _GEN_1528 : _GEN_1225; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1595 = _T_112 ? _GEN_1529 : _GEN_1226; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1596 = _T_112 ? _GEN_1530 : _GEN_1227; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1597 = _T_112 ? _GEN_1531 : _GEN_1228; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1598 = _T_112 ? _GEN_1532 : _GEN_1229; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1599 = _T_112 ? _GEN_1533 : _GEN_1230; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1600 = _T_112 ? _GEN_1534 : _GEN_1231; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1601 = _T_112 ? _GEN_1535 : _GEN_1232; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1602 = _T_112 ? _GEN_1536 : _GEN_1233; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1603 = _T_112 ? _GEN_1537 : _GEN_1234; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1604 = _T_112 ? _GEN_1538 : _GEN_1235; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1605 = _T_112 ? _GEN_1539 : _GEN_1236; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1606 = _T_112 ? _GEN_1540 : _GEN_1237; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1607 = _T_112 ? _GEN_1541 : _GEN_1238; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1608 = _T_112 ? _GEN_1542 : _GEN_1239; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1609 = _T_112 ? _GEN_1543 : _GEN_1240; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1610 = _T_112 ? _GEN_1544 : _GEN_1241; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1611 = _T_112 ? _GEN_1545 : _GEN_1242; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1612 = _T_112 ? _GEN_1546 : _GEN_1243; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1613 = _T_112 ? _GEN_1547 : _GEN_1244; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1614 = _T_112 ? _GEN_1548 : _GEN_1245; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1615 = _T_112 ? _GEN_1549 : _GEN_1246; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1616 = _T_112 ? _GEN_1550 : _GEN_1247; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1617 = _T_112 ? _GEN_1551 : _GEN_1248; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1618 = _T_112 ? _GEN_1552 : _GEN_1249; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1619 = _T_112 ? _GEN_1553 : _GEN_1250; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1620 = _T_112 ? _GEN_1554 : _GEN_1251; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1621 = _T_112 ? _GEN_1555 : _GEN_1252; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1622 = _T_112 ? _GEN_1556 : _GEN_1253; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1657 = 6'h1 == io_commit_0_phy ? log_reg_1 : log_reg_0; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1658 = 6'h2 == io_commit_0_phy ? log_reg_2 : _GEN_1657; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1659 = 6'h3 == io_commit_0_phy ? log_reg_3 : _GEN_1658; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1660 = 6'h4 == io_commit_0_phy ? log_reg_4 : _GEN_1659; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1661 = 6'h5 == io_commit_0_phy ? log_reg_5 : _GEN_1660; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1662 = 6'h6 == io_commit_0_phy ? log_reg_6 : _GEN_1661; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1663 = 6'h7 == io_commit_0_phy ? log_reg_7 : _GEN_1662; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1664 = 6'h8 == io_commit_0_phy ? log_reg_8 : _GEN_1663; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1665 = 6'h9 == io_commit_0_phy ? log_reg_9 : _GEN_1664; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1666 = 6'ha == io_commit_0_phy ? log_reg_10 : _GEN_1665; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1667 = 6'hb == io_commit_0_phy ? log_reg_11 : _GEN_1666; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1668 = 6'hc == io_commit_0_phy ? log_reg_12 : _GEN_1667; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1669 = 6'hd == io_commit_0_phy ? log_reg_13 : _GEN_1668; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1670 = 6'he == io_commit_0_phy ? log_reg_14 : _GEN_1669; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1671 = 6'hf == io_commit_0_phy ? log_reg_15 : _GEN_1670; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1672 = 6'h10 == io_commit_0_phy ? log_reg_16 : _GEN_1671; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1673 = 6'h11 == io_commit_0_phy ? log_reg_17 : _GEN_1672; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1674 = 6'h12 == io_commit_0_phy ? log_reg_18 : _GEN_1673; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1675 = 6'h13 == io_commit_0_phy ? log_reg_19 : _GEN_1674; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1676 = 6'h14 == io_commit_0_phy ? log_reg_20 : _GEN_1675; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1677 = 6'h15 == io_commit_0_phy ? log_reg_21 : _GEN_1676; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1678 = 6'h16 == io_commit_0_phy ? log_reg_22 : _GEN_1677; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1679 = 6'h17 == io_commit_0_phy ? log_reg_23 : _GEN_1678; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1680 = 6'h18 == io_commit_0_phy ? log_reg_24 : _GEN_1679; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1681 = 6'h19 == io_commit_0_phy ? log_reg_25 : _GEN_1680; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1682 = 6'h1a == io_commit_0_phy ? log_reg_26 : _GEN_1681; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1683 = 6'h1b == io_commit_0_phy ? log_reg_27 : _GEN_1682; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1684 = 6'h1c == io_commit_0_phy ? log_reg_28 : _GEN_1683; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1685 = 6'h1d == io_commit_0_phy ? log_reg_29 : _GEN_1684; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1686 = 6'h1e == io_commit_0_phy ? log_reg_30 : _GEN_1685; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1687 = 6'h1f == io_commit_0_phy ? log_reg_31 : _GEN_1686; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1688 = 6'h20 == io_commit_0_phy ? log_reg_32 : _GEN_1687; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1689 = 6'h21 == io_commit_0_phy ? 2'h3 : _GEN_1688; // @[Regfiles.scala 219:{46,46}]
  wire  _log_reg_0_T_15 = archit_ptr_15 == 6'h0; // @[Regfiles.scala 223:99]
  wire  _log_reg_0_T_47 = archit_ptr_0 == 6'h0 | archit_ptr_1 == 6'h0 | archit_ptr_2 == 6'h0 | archit_ptr_3 == 6'h0 |
    archit_ptr_4 == 6'h0 | archit_ptr_5 == 6'h0 | archit_ptr_6 == 6'h0 | archit_ptr_7 == 6'h0 | archit_ptr_8 == 6'h0 |
    archit_ptr_9 == 6'h0 | archit_ptr_10 == 6'h0 | archit_ptr_11 == 6'h0 | archit_ptr_12 == 6'h0 | archit_ptr_13 == 6'h0
     | archit_ptr_14 == 6'h0 | _log_reg_0_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_0_T_62 = _log_reg_0_T_47 | archit_ptr_16 == 6'h0 | archit_ptr_17 == 6'h0 | archit_ptr_18 == 6'h0 |
    archit_ptr_19 == 6'h0 | archit_ptr_20 == 6'h0 | archit_ptr_21 == 6'h0 | archit_ptr_22 == 6'h0 | archit_ptr_23 == 6'h0
     | archit_ptr_24 == 6'h0 | archit_ptr_25 == 6'h0 | archit_ptr_26 == 6'h0 | archit_ptr_27 == 6'h0 | archit_ptr_28 == 6'h0
     | archit_ptr_29 == 6'h0 | archit_ptr_30 == 6'h0; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_0_T_64 = _log_reg_0_T_62 | archit_ptr_31 == 6'h0 ? log_reg_0 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_1_T_15 = archit_ptr_15 == 6'h1; // @[Regfiles.scala 223:99]
  wire  _log_reg_1_T_47 = archit_ptr_0 == 6'h1 | archit_ptr_1 == 6'h1 | archit_ptr_2 == 6'h1 | archit_ptr_3 == 6'h1 |
    archit_ptr_4 == 6'h1 | archit_ptr_5 == 6'h1 | archit_ptr_6 == 6'h1 | archit_ptr_7 == 6'h1 | archit_ptr_8 == 6'h1 |
    archit_ptr_9 == 6'h1 | archit_ptr_10 == 6'h1 | archit_ptr_11 == 6'h1 | archit_ptr_12 == 6'h1 | archit_ptr_13 == 6'h1
     | archit_ptr_14 == 6'h1 | _log_reg_1_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_1_T_62 = _log_reg_1_T_47 | archit_ptr_16 == 6'h1 | archit_ptr_17 == 6'h1 | archit_ptr_18 == 6'h1 |
    archit_ptr_19 == 6'h1 | archit_ptr_20 == 6'h1 | archit_ptr_21 == 6'h1 | archit_ptr_22 == 6'h1 | archit_ptr_23 == 6'h1
     | archit_ptr_24 == 6'h1 | archit_ptr_25 == 6'h1 | archit_ptr_26 == 6'h1 | archit_ptr_27 == 6'h1 | archit_ptr_28 == 6'h1
     | archit_ptr_29 == 6'h1 | archit_ptr_30 == 6'h1; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_1_T_64 = _log_reg_1_T_62 | archit_ptr_31 == 6'h1 ? log_reg_1 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_2_T_15 = archit_ptr_15 == 6'h2; // @[Regfiles.scala 223:99]
  wire  _log_reg_2_T_47 = archit_ptr_0 == 6'h2 | archit_ptr_1 == 6'h2 | archit_ptr_2 == 6'h2 | archit_ptr_3 == 6'h2 |
    archit_ptr_4 == 6'h2 | archit_ptr_5 == 6'h2 | archit_ptr_6 == 6'h2 | archit_ptr_7 == 6'h2 | archit_ptr_8 == 6'h2 |
    archit_ptr_9 == 6'h2 | archit_ptr_10 == 6'h2 | archit_ptr_11 == 6'h2 | archit_ptr_12 == 6'h2 | archit_ptr_13 == 6'h2
     | archit_ptr_14 == 6'h2 | _log_reg_2_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_2_T_62 = _log_reg_2_T_47 | archit_ptr_16 == 6'h2 | archit_ptr_17 == 6'h2 | archit_ptr_18 == 6'h2 |
    archit_ptr_19 == 6'h2 | archit_ptr_20 == 6'h2 | archit_ptr_21 == 6'h2 | archit_ptr_22 == 6'h2 | archit_ptr_23 == 6'h2
     | archit_ptr_24 == 6'h2 | archit_ptr_25 == 6'h2 | archit_ptr_26 == 6'h2 | archit_ptr_27 == 6'h2 | archit_ptr_28 == 6'h2
     | archit_ptr_29 == 6'h2 | archit_ptr_30 == 6'h2; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_2_T_64 = _log_reg_2_T_62 | archit_ptr_31 == 6'h2 ? log_reg_2 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_3_T_15 = archit_ptr_15 == 6'h3; // @[Regfiles.scala 223:99]
  wire  _log_reg_3_T_47 = archit_ptr_0 == 6'h3 | archit_ptr_1 == 6'h3 | archit_ptr_2 == 6'h3 | archit_ptr_3 == 6'h3 |
    archit_ptr_4 == 6'h3 | archit_ptr_5 == 6'h3 | archit_ptr_6 == 6'h3 | archit_ptr_7 == 6'h3 | archit_ptr_8 == 6'h3 |
    archit_ptr_9 == 6'h3 | archit_ptr_10 == 6'h3 | archit_ptr_11 == 6'h3 | archit_ptr_12 == 6'h3 | archit_ptr_13 == 6'h3
     | archit_ptr_14 == 6'h3 | _log_reg_3_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_3_T_62 = _log_reg_3_T_47 | archit_ptr_16 == 6'h3 | archit_ptr_17 == 6'h3 | archit_ptr_18 == 6'h3 |
    archit_ptr_19 == 6'h3 | archit_ptr_20 == 6'h3 | archit_ptr_21 == 6'h3 | archit_ptr_22 == 6'h3 | archit_ptr_23 == 6'h3
     | archit_ptr_24 == 6'h3 | archit_ptr_25 == 6'h3 | archit_ptr_26 == 6'h3 | archit_ptr_27 == 6'h3 | archit_ptr_28 == 6'h3
     | archit_ptr_29 == 6'h3 | archit_ptr_30 == 6'h3; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_3_T_64 = _log_reg_3_T_62 | archit_ptr_31 == 6'h3 ? log_reg_3 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_4_T_15 = archit_ptr_15 == 6'h4; // @[Regfiles.scala 223:99]
  wire  _log_reg_4_T_47 = archit_ptr_0 == 6'h4 | archit_ptr_1 == 6'h4 | archit_ptr_2 == 6'h4 | archit_ptr_3 == 6'h4 |
    archit_ptr_4 == 6'h4 | archit_ptr_5 == 6'h4 | archit_ptr_6 == 6'h4 | archit_ptr_7 == 6'h4 | archit_ptr_8 == 6'h4 |
    archit_ptr_9 == 6'h4 | archit_ptr_10 == 6'h4 | archit_ptr_11 == 6'h4 | archit_ptr_12 == 6'h4 | archit_ptr_13 == 6'h4
     | archit_ptr_14 == 6'h4 | _log_reg_4_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_4_T_62 = _log_reg_4_T_47 | archit_ptr_16 == 6'h4 | archit_ptr_17 == 6'h4 | archit_ptr_18 == 6'h4 |
    archit_ptr_19 == 6'h4 | archit_ptr_20 == 6'h4 | archit_ptr_21 == 6'h4 | archit_ptr_22 == 6'h4 | archit_ptr_23 == 6'h4
     | archit_ptr_24 == 6'h4 | archit_ptr_25 == 6'h4 | archit_ptr_26 == 6'h4 | archit_ptr_27 == 6'h4 | archit_ptr_28 == 6'h4
     | archit_ptr_29 == 6'h4 | archit_ptr_30 == 6'h4; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_4_T_64 = _log_reg_4_T_62 | archit_ptr_31 == 6'h4 ? log_reg_4 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_5_T_15 = archit_ptr_15 == 6'h5; // @[Regfiles.scala 223:99]
  wire  _log_reg_5_T_47 = archit_ptr_0 == 6'h5 | archit_ptr_1 == 6'h5 | archit_ptr_2 == 6'h5 | archit_ptr_3 == 6'h5 |
    archit_ptr_4 == 6'h5 | archit_ptr_5 == 6'h5 | archit_ptr_6 == 6'h5 | archit_ptr_7 == 6'h5 | archit_ptr_8 == 6'h5 |
    archit_ptr_9 == 6'h5 | archit_ptr_10 == 6'h5 | archit_ptr_11 == 6'h5 | archit_ptr_12 == 6'h5 | archit_ptr_13 == 6'h5
     | archit_ptr_14 == 6'h5 | _log_reg_5_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_5_T_62 = _log_reg_5_T_47 | archit_ptr_16 == 6'h5 | archit_ptr_17 == 6'h5 | archit_ptr_18 == 6'h5 |
    archit_ptr_19 == 6'h5 | archit_ptr_20 == 6'h5 | archit_ptr_21 == 6'h5 | archit_ptr_22 == 6'h5 | archit_ptr_23 == 6'h5
     | archit_ptr_24 == 6'h5 | archit_ptr_25 == 6'h5 | archit_ptr_26 == 6'h5 | archit_ptr_27 == 6'h5 | archit_ptr_28 == 6'h5
     | archit_ptr_29 == 6'h5 | archit_ptr_30 == 6'h5; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_5_T_64 = _log_reg_5_T_62 | archit_ptr_31 == 6'h5 ? log_reg_5 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_6_T_15 = archit_ptr_15 == 6'h6; // @[Regfiles.scala 223:99]
  wire  _log_reg_6_T_47 = archit_ptr_0 == 6'h6 | archit_ptr_1 == 6'h6 | archit_ptr_2 == 6'h6 | archit_ptr_3 == 6'h6 |
    archit_ptr_4 == 6'h6 | archit_ptr_5 == 6'h6 | archit_ptr_6 == 6'h6 | archit_ptr_7 == 6'h6 | archit_ptr_8 == 6'h6 |
    archit_ptr_9 == 6'h6 | archit_ptr_10 == 6'h6 | archit_ptr_11 == 6'h6 | archit_ptr_12 == 6'h6 | archit_ptr_13 == 6'h6
     | archit_ptr_14 == 6'h6 | _log_reg_6_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_6_T_62 = _log_reg_6_T_47 | archit_ptr_16 == 6'h6 | archit_ptr_17 == 6'h6 | archit_ptr_18 == 6'h6 |
    archit_ptr_19 == 6'h6 | archit_ptr_20 == 6'h6 | archit_ptr_21 == 6'h6 | archit_ptr_22 == 6'h6 | archit_ptr_23 == 6'h6
     | archit_ptr_24 == 6'h6 | archit_ptr_25 == 6'h6 | archit_ptr_26 == 6'h6 | archit_ptr_27 == 6'h6 | archit_ptr_28 == 6'h6
     | archit_ptr_29 == 6'h6 | archit_ptr_30 == 6'h6; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_6_T_64 = _log_reg_6_T_62 | archit_ptr_31 == 6'h6 ? log_reg_6 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_7_T_15 = archit_ptr_15 == 6'h7; // @[Regfiles.scala 223:99]
  wire  _log_reg_7_T_47 = archit_ptr_0 == 6'h7 | archit_ptr_1 == 6'h7 | archit_ptr_2 == 6'h7 | archit_ptr_3 == 6'h7 |
    archit_ptr_4 == 6'h7 | archit_ptr_5 == 6'h7 | archit_ptr_6 == 6'h7 | archit_ptr_7 == 6'h7 | archit_ptr_8 == 6'h7 |
    archit_ptr_9 == 6'h7 | archit_ptr_10 == 6'h7 | archit_ptr_11 == 6'h7 | archit_ptr_12 == 6'h7 | archit_ptr_13 == 6'h7
     | archit_ptr_14 == 6'h7 | _log_reg_7_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_7_T_62 = _log_reg_7_T_47 | archit_ptr_16 == 6'h7 | archit_ptr_17 == 6'h7 | archit_ptr_18 == 6'h7 |
    archit_ptr_19 == 6'h7 | archit_ptr_20 == 6'h7 | archit_ptr_21 == 6'h7 | archit_ptr_22 == 6'h7 | archit_ptr_23 == 6'h7
     | archit_ptr_24 == 6'h7 | archit_ptr_25 == 6'h7 | archit_ptr_26 == 6'h7 | archit_ptr_27 == 6'h7 | archit_ptr_28 == 6'h7
     | archit_ptr_29 == 6'h7 | archit_ptr_30 == 6'h7; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_7_T_64 = _log_reg_7_T_62 | archit_ptr_31 == 6'h7 ? log_reg_7 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_8_T_15 = archit_ptr_15 == 6'h8; // @[Regfiles.scala 223:99]
  wire  _log_reg_8_T_47 = archit_ptr_0 == 6'h8 | archit_ptr_1 == 6'h8 | archit_ptr_2 == 6'h8 | archit_ptr_3 == 6'h8 |
    archit_ptr_4 == 6'h8 | archit_ptr_5 == 6'h8 | archit_ptr_6 == 6'h8 | archit_ptr_7 == 6'h8 | archit_ptr_8 == 6'h8 |
    archit_ptr_9 == 6'h8 | archit_ptr_10 == 6'h8 | archit_ptr_11 == 6'h8 | archit_ptr_12 == 6'h8 | archit_ptr_13 == 6'h8
     | archit_ptr_14 == 6'h8 | _log_reg_8_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_8_T_62 = _log_reg_8_T_47 | archit_ptr_16 == 6'h8 | archit_ptr_17 == 6'h8 | archit_ptr_18 == 6'h8 |
    archit_ptr_19 == 6'h8 | archit_ptr_20 == 6'h8 | archit_ptr_21 == 6'h8 | archit_ptr_22 == 6'h8 | archit_ptr_23 == 6'h8
     | archit_ptr_24 == 6'h8 | archit_ptr_25 == 6'h8 | archit_ptr_26 == 6'h8 | archit_ptr_27 == 6'h8 | archit_ptr_28 == 6'h8
     | archit_ptr_29 == 6'h8 | archit_ptr_30 == 6'h8; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_8_T_64 = _log_reg_8_T_62 | archit_ptr_31 == 6'h8 ? log_reg_8 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_9_T_15 = archit_ptr_15 == 6'h9; // @[Regfiles.scala 223:99]
  wire  _log_reg_9_T_47 = archit_ptr_0 == 6'h9 | archit_ptr_1 == 6'h9 | archit_ptr_2 == 6'h9 | archit_ptr_3 == 6'h9 |
    archit_ptr_4 == 6'h9 | archit_ptr_5 == 6'h9 | archit_ptr_6 == 6'h9 | archit_ptr_7 == 6'h9 | archit_ptr_8 == 6'h9 |
    archit_ptr_9 == 6'h9 | archit_ptr_10 == 6'h9 | archit_ptr_11 == 6'h9 | archit_ptr_12 == 6'h9 | archit_ptr_13 == 6'h9
     | archit_ptr_14 == 6'h9 | _log_reg_9_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_9_T_62 = _log_reg_9_T_47 | archit_ptr_16 == 6'h9 | archit_ptr_17 == 6'h9 | archit_ptr_18 == 6'h9 |
    archit_ptr_19 == 6'h9 | archit_ptr_20 == 6'h9 | archit_ptr_21 == 6'h9 | archit_ptr_22 == 6'h9 | archit_ptr_23 == 6'h9
     | archit_ptr_24 == 6'h9 | archit_ptr_25 == 6'h9 | archit_ptr_26 == 6'h9 | archit_ptr_27 == 6'h9 | archit_ptr_28 == 6'h9
     | archit_ptr_29 == 6'h9 | archit_ptr_30 == 6'h9; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_9_T_64 = _log_reg_9_T_62 | archit_ptr_31 == 6'h9 ? log_reg_9 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_10_T_15 = archit_ptr_15 == 6'ha; // @[Regfiles.scala 223:99]
  wire  _log_reg_10_T_47 = archit_ptr_0 == 6'ha | archit_ptr_1 == 6'ha | archit_ptr_2 == 6'ha | archit_ptr_3 == 6'ha |
    archit_ptr_4 == 6'ha | archit_ptr_5 == 6'ha | archit_ptr_6 == 6'ha | archit_ptr_7 == 6'ha | archit_ptr_8 == 6'ha |
    archit_ptr_9 == 6'ha | archit_ptr_10 == 6'ha | archit_ptr_11 == 6'ha | archit_ptr_12 == 6'ha | archit_ptr_13 == 6'ha
     | archit_ptr_14 == 6'ha | _log_reg_10_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_10_T_62 = _log_reg_10_T_47 | archit_ptr_16 == 6'ha | archit_ptr_17 == 6'ha | archit_ptr_18 == 6'ha |
    archit_ptr_19 == 6'ha | archit_ptr_20 == 6'ha | archit_ptr_21 == 6'ha | archit_ptr_22 == 6'ha | archit_ptr_23 == 6'ha
     | archit_ptr_24 == 6'ha | archit_ptr_25 == 6'ha | archit_ptr_26 == 6'ha | archit_ptr_27 == 6'ha | archit_ptr_28 == 6'ha
     | archit_ptr_29 == 6'ha | archit_ptr_30 == 6'ha; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_10_T_64 = _log_reg_10_T_62 | archit_ptr_31 == 6'ha ? log_reg_10 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_11_T_15 = archit_ptr_15 == 6'hb; // @[Regfiles.scala 223:99]
  wire  _log_reg_11_T_47 = archit_ptr_0 == 6'hb | archit_ptr_1 == 6'hb | archit_ptr_2 == 6'hb | archit_ptr_3 == 6'hb |
    archit_ptr_4 == 6'hb | archit_ptr_5 == 6'hb | archit_ptr_6 == 6'hb | archit_ptr_7 == 6'hb | archit_ptr_8 == 6'hb |
    archit_ptr_9 == 6'hb | archit_ptr_10 == 6'hb | archit_ptr_11 == 6'hb | archit_ptr_12 == 6'hb | archit_ptr_13 == 6'hb
     | archit_ptr_14 == 6'hb | _log_reg_11_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_11_T_62 = _log_reg_11_T_47 | archit_ptr_16 == 6'hb | archit_ptr_17 == 6'hb | archit_ptr_18 == 6'hb |
    archit_ptr_19 == 6'hb | archit_ptr_20 == 6'hb | archit_ptr_21 == 6'hb | archit_ptr_22 == 6'hb | archit_ptr_23 == 6'hb
     | archit_ptr_24 == 6'hb | archit_ptr_25 == 6'hb | archit_ptr_26 == 6'hb | archit_ptr_27 == 6'hb | archit_ptr_28 == 6'hb
     | archit_ptr_29 == 6'hb | archit_ptr_30 == 6'hb; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_11_T_64 = _log_reg_11_T_62 | archit_ptr_31 == 6'hb ? log_reg_11 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_12_T_15 = archit_ptr_15 == 6'hc; // @[Regfiles.scala 223:99]
  wire  _log_reg_12_T_47 = archit_ptr_0 == 6'hc | archit_ptr_1 == 6'hc | archit_ptr_2 == 6'hc | archit_ptr_3 == 6'hc |
    archit_ptr_4 == 6'hc | archit_ptr_5 == 6'hc | archit_ptr_6 == 6'hc | archit_ptr_7 == 6'hc | archit_ptr_8 == 6'hc |
    archit_ptr_9 == 6'hc | archit_ptr_10 == 6'hc | archit_ptr_11 == 6'hc | archit_ptr_12 == 6'hc | archit_ptr_13 == 6'hc
     | archit_ptr_14 == 6'hc | _log_reg_12_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_12_T_62 = _log_reg_12_T_47 | archit_ptr_16 == 6'hc | archit_ptr_17 == 6'hc | archit_ptr_18 == 6'hc |
    archit_ptr_19 == 6'hc | archit_ptr_20 == 6'hc | archit_ptr_21 == 6'hc | archit_ptr_22 == 6'hc | archit_ptr_23 == 6'hc
     | archit_ptr_24 == 6'hc | archit_ptr_25 == 6'hc | archit_ptr_26 == 6'hc | archit_ptr_27 == 6'hc | archit_ptr_28 == 6'hc
     | archit_ptr_29 == 6'hc | archit_ptr_30 == 6'hc; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_12_T_64 = _log_reg_12_T_62 | archit_ptr_31 == 6'hc ? log_reg_12 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_13_T_15 = archit_ptr_15 == 6'hd; // @[Regfiles.scala 223:99]
  wire  _log_reg_13_T_47 = archit_ptr_0 == 6'hd | archit_ptr_1 == 6'hd | archit_ptr_2 == 6'hd | archit_ptr_3 == 6'hd |
    archit_ptr_4 == 6'hd | archit_ptr_5 == 6'hd | archit_ptr_6 == 6'hd | archit_ptr_7 == 6'hd | archit_ptr_8 == 6'hd |
    archit_ptr_9 == 6'hd | archit_ptr_10 == 6'hd | archit_ptr_11 == 6'hd | archit_ptr_12 == 6'hd | archit_ptr_13 == 6'hd
     | archit_ptr_14 == 6'hd | _log_reg_13_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_13_T_62 = _log_reg_13_T_47 | archit_ptr_16 == 6'hd | archit_ptr_17 == 6'hd | archit_ptr_18 == 6'hd |
    archit_ptr_19 == 6'hd | archit_ptr_20 == 6'hd | archit_ptr_21 == 6'hd | archit_ptr_22 == 6'hd | archit_ptr_23 == 6'hd
     | archit_ptr_24 == 6'hd | archit_ptr_25 == 6'hd | archit_ptr_26 == 6'hd | archit_ptr_27 == 6'hd | archit_ptr_28 == 6'hd
     | archit_ptr_29 == 6'hd | archit_ptr_30 == 6'hd; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_13_T_64 = _log_reg_13_T_62 | archit_ptr_31 == 6'hd ? log_reg_13 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_14_T_15 = archit_ptr_15 == 6'he; // @[Regfiles.scala 223:99]
  wire  _log_reg_14_T_47 = archit_ptr_0 == 6'he | archit_ptr_1 == 6'he | archit_ptr_2 == 6'he | archit_ptr_3 == 6'he |
    archit_ptr_4 == 6'he | archit_ptr_5 == 6'he | archit_ptr_6 == 6'he | archit_ptr_7 == 6'he | archit_ptr_8 == 6'he |
    archit_ptr_9 == 6'he | archit_ptr_10 == 6'he | archit_ptr_11 == 6'he | archit_ptr_12 == 6'he | archit_ptr_13 == 6'he
     | archit_ptr_14 == 6'he | _log_reg_14_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_14_T_62 = _log_reg_14_T_47 | archit_ptr_16 == 6'he | archit_ptr_17 == 6'he | archit_ptr_18 == 6'he |
    archit_ptr_19 == 6'he | archit_ptr_20 == 6'he | archit_ptr_21 == 6'he | archit_ptr_22 == 6'he | archit_ptr_23 == 6'he
     | archit_ptr_24 == 6'he | archit_ptr_25 == 6'he | archit_ptr_26 == 6'he | archit_ptr_27 == 6'he | archit_ptr_28 == 6'he
     | archit_ptr_29 == 6'he | archit_ptr_30 == 6'he; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_14_T_64 = _log_reg_14_T_62 | archit_ptr_31 == 6'he ? log_reg_14 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_15_T_15 = archit_ptr_15 == 6'hf; // @[Regfiles.scala 223:99]
  wire  _log_reg_15_T_47 = archit_ptr_0 == 6'hf | archit_ptr_1 == 6'hf | archit_ptr_2 == 6'hf | archit_ptr_3 == 6'hf |
    archit_ptr_4 == 6'hf | archit_ptr_5 == 6'hf | archit_ptr_6 == 6'hf | archit_ptr_7 == 6'hf | archit_ptr_8 == 6'hf |
    archit_ptr_9 == 6'hf | archit_ptr_10 == 6'hf | archit_ptr_11 == 6'hf | archit_ptr_12 == 6'hf | archit_ptr_13 == 6'hf
     | archit_ptr_14 == 6'hf | _log_reg_15_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_15_T_62 = _log_reg_15_T_47 | archit_ptr_16 == 6'hf | archit_ptr_17 == 6'hf | archit_ptr_18 == 6'hf |
    archit_ptr_19 == 6'hf | archit_ptr_20 == 6'hf | archit_ptr_21 == 6'hf | archit_ptr_22 == 6'hf | archit_ptr_23 == 6'hf
     | archit_ptr_24 == 6'hf | archit_ptr_25 == 6'hf | archit_ptr_26 == 6'hf | archit_ptr_27 == 6'hf | archit_ptr_28 == 6'hf
     | archit_ptr_29 == 6'hf | archit_ptr_30 == 6'hf; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_15_T_64 = _log_reg_15_T_62 | archit_ptr_31 == 6'hf ? log_reg_15 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_16_T_15 = archit_ptr_15 == 6'h10; // @[Regfiles.scala 223:99]
  wire  _log_reg_16_T_47 = archit_ptr_0 == 6'h10 | archit_ptr_1 == 6'h10 | archit_ptr_2 == 6'h10 | archit_ptr_3 == 6'h10
     | archit_ptr_4 == 6'h10 | archit_ptr_5 == 6'h10 | archit_ptr_6 == 6'h10 | archit_ptr_7 == 6'h10 | archit_ptr_8 == 6'h10
     | archit_ptr_9 == 6'h10 | archit_ptr_10 == 6'h10 | archit_ptr_11 == 6'h10 | archit_ptr_12 == 6'h10 | archit_ptr_13
     == 6'h10 | archit_ptr_14 == 6'h10 | _log_reg_16_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_16_T_62 = _log_reg_16_T_47 | archit_ptr_16 == 6'h10 | archit_ptr_17 == 6'h10 | archit_ptr_18 == 6'h10
     | archit_ptr_19 == 6'h10 | archit_ptr_20 == 6'h10 | archit_ptr_21 == 6'h10 | archit_ptr_22 == 6'h10 | archit_ptr_23
     == 6'h10 | archit_ptr_24 == 6'h10 | archit_ptr_25 == 6'h10 | archit_ptr_26 == 6'h10 | archit_ptr_27 == 6'h10 |
    archit_ptr_28 == 6'h10 | archit_ptr_29 == 6'h10 | archit_ptr_30 == 6'h10; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_16_T_64 = _log_reg_16_T_62 | archit_ptr_31 == 6'h10 ? log_reg_16 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_17_T_15 = archit_ptr_15 == 6'h11; // @[Regfiles.scala 223:99]
  wire  _log_reg_17_T_47 = archit_ptr_0 == 6'h11 | archit_ptr_1 == 6'h11 | archit_ptr_2 == 6'h11 | archit_ptr_3 == 6'h11
     | archit_ptr_4 == 6'h11 | archit_ptr_5 == 6'h11 | archit_ptr_6 == 6'h11 | archit_ptr_7 == 6'h11 | archit_ptr_8 == 6'h11
     | archit_ptr_9 == 6'h11 | archit_ptr_10 == 6'h11 | archit_ptr_11 == 6'h11 | archit_ptr_12 == 6'h11 | archit_ptr_13
     == 6'h11 | archit_ptr_14 == 6'h11 | _log_reg_17_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_17_T_62 = _log_reg_17_T_47 | archit_ptr_16 == 6'h11 | archit_ptr_17 == 6'h11 | archit_ptr_18 == 6'h11
     | archit_ptr_19 == 6'h11 | archit_ptr_20 == 6'h11 | archit_ptr_21 == 6'h11 | archit_ptr_22 == 6'h11 | archit_ptr_23
     == 6'h11 | archit_ptr_24 == 6'h11 | archit_ptr_25 == 6'h11 | archit_ptr_26 == 6'h11 | archit_ptr_27 == 6'h11 |
    archit_ptr_28 == 6'h11 | archit_ptr_29 == 6'h11 | archit_ptr_30 == 6'h11; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_17_T_64 = _log_reg_17_T_62 | archit_ptr_31 == 6'h11 ? log_reg_17 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_18_T_15 = archit_ptr_15 == 6'h12; // @[Regfiles.scala 223:99]
  wire  _log_reg_18_T_47 = archit_ptr_0 == 6'h12 | archit_ptr_1 == 6'h12 | archit_ptr_2 == 6'h12 | archit_ptr_3 == 6'h12
     | archit_ptr_4 == 6'h12 | archit_ptr_5 == 6'h12 | archit_ptr_6 == 6'h12 | archit_ptr_7 == 6'h12 | archit_ptr_8 == 6'h12
     | archit_ptr_9 == 6'h12 | archit_ptr_10 == 6'h12 | archit_ptr_11 == 6'h12 | archit_ptr_12 == 6'h12 | archit_ptr_13
     == 6'h12 | archit_ptr_14 == 6'h12 | _log_reg_18_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_18_T_62 = _log_reg_18_T_47 | archit_ptr_16 == 6'h12 | archit_ptr_17 == 6'h12 | archit_ptr_18 == 6'h12
     | archit_ptr_19 == 6'h12 | archit_ptr_20 == 6'h12 | archit_ptr_21 == 6'h12 | archit_ptr_22 == 6'h12 | archit_ptr_23
     == 6'h12 | archit_ptr_24 == 6'h12 | archit_ptr_25 == 6'h12 | archit_ptr_26 == 6'h12 | archit_ptr_27 == 6'h12 |
    archit_ptr_28 == 6'h12 | archit_ptr_29 == 6'h12 | archit_ptr_30 == 6'h12; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_18_T_64 = _log_reg_18_T_62 | archit_ptr_31 == 6'h12 ? log_reg_18 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_19_T_15 = archit_ptr_15 == 6'h13; // @[Regfiles.scala 223:99]
  wire  _log_reg_19_T_47 = archit_ptr_0 == 6'h13 | archit_ptr_1 == 6'h13 | archit_ptr_2 == 6'h13 | archit_ptr_3 == 6'h13
     | archit_ptr_4 == 6'h13 | archit_ptr_5 == 6'h13 | archit_ptr_6 == 6'h13 | archit_ptr_7 == 6'h13 | archit_ptr_8 == 6'h13
     | archit_ptr_9 == 6'h13 | archit_ptr_10 == 6'h13 | archit_ptr_11 == 6'h13 | archit_ptr_12 == 6'h13 | archit_ptr_13
     == 6'h13 | archit_ptr_14 == 6'h13 | _log_reg_19_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_19_T_62 = _log_reg_19_T_47 | archit_ptr_16 == 6'h13 | archit_ptr_17 == 6'h13 | archit_ptr_18 == 6'h13
     | archit_ptr_19 == 6'h13 | archit_ptr_20 == 6'h13 | archit_ptr_21 == 6'h13 | archit_ptr_22 == 6'h13 | archit_ptr_23
     == 6'h13 | archit_ptr_24 == 6'h13 | archit_ptr_25 == 6'h13 | archit_ptr_26 == 6'h13 | archit_ptr_27 == 6'h13 |
    archit_ptr_28 == 6'h13 | archit_ptr_29 == 6'h13 | archit_ptr_30 == 6'h13; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_19_T_64 = _log_reg_19_T_62 | archit_ptr_31 == 6'h13 ? log_reg_19 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_20_T_15 = archit_ptr_15 == 6'h14; // @[Regfiles.scala 223:99]
  wire  _log_reg_20_T_47 = archit_ptr_0 == 6'h14 | archit_ptr_1 == 6'h14 | archit_ptr_2 == 6'h14 | archit_ptr_3 == 6'h14
     | archit_ptr_4 == 6'h14 | archit_ptr_5 == 6'h14 | archit_ptr_6 == 6'h14 | archit_ptr_7 == 6'h14 | archit_ptr_8 == 6'h14
     | archit_ptr_9 == 6'h14 | archit_ptr_10 == 6'h14 | archit_ptr_11 == 6'h14 | archit_ptr_12 == 6'h14 | archit_ptr_13
     == 6'h14 | archit_ptr_14 == 6'h14 | _log_reg_20_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_20_T_62 = _log_reg_20_T_47 | archit_ptr_16 == 6'h14 | archit_ptr_17 == 6'h14 | archit_ptr_18 == 6'h14
     | archit_ptr_19 == 6'h14 | archit_ptr_20 == 6'h14 | archit_ptr_21 == 6'h14 | archit_ptr_22 == 6'h14 | archit_ptr_23
     == 6'h14 | archit_ptr_24 == 6'h14 | archit_ptr_25 == 6'h14 | archit_ptr_26 == 6'h14 | archit_ptr_27 == 6'h14 |
    archit_ptr_28 == 6'h14 | archit_ptr_29 == 6'h14 | archit_ptr_30 == 6'h14; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_20_T_64 = _log_reg_20_T_62 | archit_ptr_31 == 6'h14 ? log_reg_20 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_21_T_15 = archit_ptr_15 == 6'h15; // @[Regfiles.scala 223:99]
  wire  _log_reg_21_T_47 = archit_ptr_0 == 6'h15 | archit_ptr_1 == 6'h15 | archit_ptr_2 == 6'h15 | archit_ptr_3 == 6'h15
     | archit_ptr_4 == 6'h15 | archit_ptr_5 == 6'h15 | archit_ptr_6 == 6'h15 | archit_ptr_7 == 6'h15 | archit_ptr_8 == 6'h15
     | archit_ptr_9 == 6'h15 | archit_ptr_10 == 6'h15 | archit_ptr_11 == 6'h15 | archit_ptr_12 == 6'h15 | archit_ptr_13
     == 6'h15 | archit_ptr_14 == 6'h15 | _log_reg_21_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_21_T_62 = _log_reg_21_T_47 | archit_ptr_16 == 6'h15 | archit_ptr_17 == 6'h15 | archit_ptr_18 == 6'h15
     | archit_ptr_19 == 6'h15 | archit_ptr_20 == 6'h15 | archit_ptr_21 == 6'h15 | archit_ptr_22 == 6'h15 | archit_ptr_23
     == 6'h15 | archit_ptr_24 == 6'h15 | archit_ptr_25 == 6'h15 | archit_ptr_26 == 6'h15 | archit_ptr_27 == 6'h15 |
    archit_ptr_28 == 6'h15 | archit_ptr_29 == 6'h15 | archit_ptr_30 == 6'h15; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_21_T_64 = _log_reg_21_T_62 | archit_ptr_31 == 6'h15 ? log_reg_21 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_22_T_15 = archit_ptr_15 == 6'h16; // @[Regfiles.scala 223:99]
  wire  _log_reg_22_T_47 = archit_ptr_0 == 6'h16 | archit_ptr_1 == 6'h16 | archit_ptr_2 == 6'h16 | archit_ptr_3 == 6'h16
     | archit_ptr_4 == 6'h16 | archit_ptr_5 == 6'h16 | archit_ptr_6 == 6'h16 | archit_ptr_7 == 6'h16 | archit_ptr_8 == 6'h16
     | archit_ptr_9 == 6'h16 | archit_ptr_10 == 6'h16 | archit_ptr_11 == 6'h16 | archit_ptr_12 == 6'h16 | archit_ptr_13
     == 6'h16 | archit_ptr_14 == 6'h16 | _log_reg_22_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_22_T_62 = _log_reg_22_T_47 | archit_ptr_16 == 6'h16 | archit_ptr_17 == 6'h16 | archit_ptr_18 == 6'h16
     | archit_ptr_19 == 6'h16 | archit_ptr_20 == 6'h16 | archit_ptr_21 == 6'h16 | archit_ptr_22 == 6'h16 | archit_ptr_23
     == 6'h16 | archit_ptr_24 == 6'h16 | archit_ptr_25 == 6'h16 | archit_ptr_26 == 6'h16 | archit_ptr_27 == 6'h16 |
    archit_ptr_28 == 6'h16 | archit_ptr_29 == 6'h16 | archit_ptr_30 == 6'h16; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_22_T_64 = _log_reg_22_T_62 | archit_ptr_31 == 6'h16 ? log_reg_22 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_23_T_15 = archit_ptr_15 == 6'h17; // @[Regfiles.scala 223:99]
  wire  _log_reg_23_T_47 = archit_ptr_0 == 6'h17 | archit_ptr_1 == 6'h17 | archit_ptr_2 == 6'h17 | archit_ptr_3 == 6'h17
     | archit_ptr_4 == 6'h17 | archit_ptr_5 == 6'h17 | archit_ptr_6 == 6'h17 | archit_ptr_7 == 6'h17 | archit_ptr_8 == 6'h17
     | archit_ptr_9 == 6'h17 | archit_ptr_10 == 6'h17 | archit_ptr_11 == 6'h17 | archit_ptr_12 == 6'h17 | archit_ptr_13
     == 6'h17 | archit_ptr_14 == 6'h17 | _log_reg_23_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_23_T_62 = _log_reg_23_T_47 | archit_ptr_16 == 6'h17 | archit_ptr_17 == 6'h17 | archit_ptr_18 == 6'h17
     | archit_ptr_19 == 6'h17 | archit_ptr_20 == 6'h17 | archit_ptr_21 == 6'h17 | archit_ptr_22 == 6'h17 | archit_ptr_23
     == 6'h17 | archit_ptr_24 == 6'h17 | archit_ptr_25 == 6'h17 | archit_ptr_26 == 6'h17 | archit_ptr_27 == 6'h17 |
    archit_ptr_28 == 6'h17 | archit_ptr_29 == 6'h17 | archit_ptr_30 == 6'h17; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_23_T_64 = _log_reg_23_T_62 | archit_ptr_31 == 6'h17 ? log_reg_23 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_24_T_15 = archit_ptr_15 == 6'h18; // @[Regfiles.scala 223:99]
  wire  _log_reg_24_T_47 = archit_ptr_0 == 6'h18 | archit_ptr_1 == 6'h18 | archit_ptr_2 == 6'h18 | archit_ptr_3 == 6'h18
     | archit_ptr_4 == 6'h18 | archit_ptr_5 == 6'h18 | archit_ptr_6 == 6'h18 | archit_ptr_7 == 6'h18 | archit_ptr_8 == 6'h18
     | archit_ptr_9 == 6'h18 | archit_ptr_10 == 6'h18 | archit_ptr_11 == 6'h18 | archit_ptr_12 == 6'h18 | archit_ptr_13
     == 6'h18 | archit_ptr_14 == 6'h18 | _log_reg_24_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_24_T_62 = _log_reg_24_T_47 | archit_ptr_16 == 6'h18 | archit_ptr_17 == 6'h18 | archit_ptr_18 == 6'h18
     | archit_ptr_19 == 6'h18 | archit_ptr_20 == 6'h18 | archit_ptr_21 == 6'h18 | archit_ptr_22 == 6'h18 | archit_ptr_23
     == 6'h18 | archit_ptr_24 == 6'h18 | archit_ptr_25 == 6'h18 | archit_ptr_26 == 6'h18 | archit_ptr_27 == 6'h18 |
    archit_ptr_28 == 6'h18 | archit_ptr_29 == 6'h18 | archit_ptr_30 == 6'h18; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_24_T_64 = _log_reg_24_T_62 | archit_ptr_31 == 6'h18 ? log_reg_24 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_25_T_15 = archit_ptr_15 == 6'h19; // @[Regfiles.scala 223:99]
  wire  _log_reg_25_T_47 = archit_ptr_0 == 6'h19 | archit_ptr_1 == 6'h19 | archit_ptr_2 == 6'h19 | archit_ptr_3 == 6'h19
     | archit_ptr_4 == 6'h19 | archit_ptr_5 == 6'h19 | archit_ptr_6 == 6'h19 | archit_ptr_7 == 6'h19 | archit_ptr_8 == 6'h19
     | archit_ptr_9 == 6'h19 | archit_ptr_10 == 6'h19 | archit_ptr_11 == 6'h19 | archit_ptr_12 == 6'h19 | archit_ptr_13
     == 6'h19 | archit_ptr_14 == 6'h19 | _log_reg_25_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_25_T_62 = _log_reg_25_T_47 | archit_ptr_16 == 6'h19 | archit_ptr_17 == 6'h19 | archit_ptr_18 == 6'h19
     | archit_ptr_19 == 6'h19 | archit_ptr_20 == 6'h19 | archit_ptr_21 == 6'h19 | archit_ptr_22 == 6'h19 | archit_ptr_23
     == 6'h19 | archit_ptr_24 == 6'h19 | archit_ptr_25 == 6'h19 | archit_ptr_26 == 6'h19 | archit_ptr_27 == 6'h19 |
    archit_ptr_28 == 6'h19 | archit_ptr_29 == 6'h19 | archit_ptr_30 == 6'h19; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_25_T_64 = _log_reg_25_T_62 | archit_ptr_31 == 6'h19 ? log_reg_25 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_26_T_15 = archit_ptr_15 == 6'h1a; // @[Regfiles.scala 223:99]
  wire  _log_reg_26_T_47 = archit_ptr_0 == 6'h1a | archit_ptr_1 == 6'h1a | archit_ptr_2 == 6'h1a | archit_ptr_3 == 6'h1a
     | archit_ptr_4 == 6'h1a | archit_ptr_5 == 6'h1a | archit_ptr_6 == 6'h1a | archit_ptr_7 == 6'h1a | archit_ptr_8 == 6'h1a
     | archit_ptr_9 == 6'h1a | archit_ptr_10 == 6'h1a | archit_ptr_11 == 6'h1a | archit_ptr_12 == 6'h1a | archit_ptr_13
     == 6'h1a | archit_ptr_14 == 6'h1a | _log_reg_26_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_26_T_62 = _log_reg_26_T_47 | archit_ptr_16 == 6'h1a | archit_ptr_17 == 6'h1a | archit_ptr_18 == 6'h1a
     | archit_ptr_19 == 6'h1a | archit_ptr_20 == 6'h1a | archit_ptr_21 == 6'h1a | archit_ptr_22 == 6'h1a | archit_ptr_23
     == 6'h1a | archit_ptr_24 == 6'h1a | archit_ptr_25 == 6'h1a | archit_ptr_26 == 6'h1a | archit_ptr_27 == 6'h1a |
    archit_ptr_28 == 6'h1a | archit_ptr_29 == 6'h1a | archit_ptr_30 == 6'h1a; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_26_T_64 = _log_reg_26_T_62 | archit_ptr_31 == 6'h1a ? log_reg_26 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_27_T_15 = archit_ptr_15 == 6'h1b; // @[Regfiles.scala 223:99]
  wire  _log_reg_27_T_47 = archit_ptr_0 == 6'h1b | archit_ptr_1 == 6'h1b | archit_ptr_2 == 6'h1b | archit_ptr_3 == 6'h1b
     | archit_ptr_4 == 6'h1b | archit_ptr_5 == 6'h1b | archit_ptr_6 == 6'h1b | archit_ptr_7 == 6'h1b | archit_ptr_8 == 6'h1b
     | archit_ptr_9 == 6'h1b | archit_ptr_10 == 6'h1b | archit_ptr_11 == 6'h1b | archit_ptr_12 == 6'h1b | archit_ptr_13
     == 6'h1b | archit_ptr_14 == 6'h1b | _log_reg_27_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_27_T_62 = _log_reg_27_T_47 | archit_ptr_16 == 6'h1b | archit_ptr_17 == 6'h1b | archit_ptr_18 == 6'h1b
     | archit_ptr_19 == 6'h1b | archit_ptr_20 == 6'h1b | archit_ptr_21 == 6'h1b | archit_ptr_22 == 6'h1b | archit_ptr_23
     == 6'h1b | archit_ptr_24 == 6'h1b | archit_ptr_25 == 6'h1b | archit_ptr_26 == 6'h1b | archit_ptr_27 == 6'h1b |
    archit_ptr_28 == 6'h1b | archit_ptr_29 == 6'h1b | archit_ptr_30 == 6'h1b; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_27_T_64 = _log_reg_27_T_62 | archit_ptr_31 == 6'h1b ? log_reg_27 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_28_T_15 = archit_ptr_15 == 6'h1c; // @[Regfiles.scala 223:99]
  wire  _log_reg_28_T_47 = archit_ptr_0 == 6'h1c | archit_ptr_1 == 6'h1c | archit_ptr_2 == 6'h1c | archit_ptr_3 == 6'h1c
     | archit_ptr_4 == 6'h1c | archit_ptr_5 == 6'h1c | archit_ptr_6 == 6'h1c | archit_ptr_7 == 6'h1c | archit_ptr_8 == 6'h1c
     | archit_ptr_9 == 6'h1c | archit_ptr_10 == 6'h1c | archit_ptr_11 == 6'h1c | archit_ptr_12 == 6'h1c | archit_ptr_13
     == 6'h1c | archit_ptr_14 == 6'h1c | _log_reg_28_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_28_T_62 = _log_reg_28_T_47 | archit_ptr_16 == 6'h1c | archit_ptr_17 == 6'h1c | archit_ptr_18 == 6'h1c
     | archit_ptr_19 == 6'h1c | archit_ptr_20 == 6'h1c | archit_ptr_21 == 6'h1c | archit_ptr_22 == 6'h1c | archit_ptr_23
     == 6'h1c | archit_ptr_24 == 6'h1c | archit_ptr_25 == 6'h1c | archit_ptr_26 == 6'h1c | archit_ptr_27 == 6'h1c |
    archit_ptr_28 == 6'h1c | archit_ptr_29 == 6'h1c | archit_ptr_30 == 6'h1c; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_28_T_64 = _log_reg_28_T_62 | archit_ptr_31 == 6'h1c ? log_reg_28 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_29_T_15 = archit_ptr_15 == 6'h1d; // @[Regfiles.scala 223:99]
  wire  _log_reg_29_T_47 = archit_ptr_0 == 6'h1d | archit_ptr_1 == 6'h1d | archit_ptr_2 == 6'h1d | archit_ptr_3 == 6'h1d
     | archit_ptr_4 == 6'h1d | archit_ptr_5 == 6'h1d | archit_ptr_6 == 6'h1d | archit_ptr_7 == 6'h1d | archit_ptr_8 == 6'h1d
     | archit_ptr_9 == 6'h1d | archit_ptr_10 == 6'h1d | archit_ptr_11 == 6'h1d | archit_ptr_12 == 6'h1d | archit_ptr_13
     == 6'h1d | archit_ptr_14 == 6'h1d | _log_reg_29_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_29_T_62 = _log_reg_29_T_47 | archit_ptr_16 == 6'h1d | archit_ptr_17 == 6'h1d | archit_ptr_18 == 6'h1d
     | archit_ptr_19 == 6'h1d | archit_ptr_20 == 6'h1d | archit_ptr_21 == 6'h1d | archit_ptr_22 == 6'h1d | archit_ptr_23
     == 6'h1d | archit_ptr_24 == 6'h1d | archit_ptr_25 == 6'h1d | archit_ptr_26 == 6'h1d | archit_ptr_27 == 6'h1d |
    archit_ptr_28 == 6'h1d | archit_ptr_29 == 6'h1d | archit_ptr_30 == 6'h1d; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_29_T_64 = _log_reg_29_T_62 | archit_ptr_31 == 6'h1d ? log_reg_29 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_30_T_15 = archit_ptr_15 == 6'h1e; // @[Regfiles.scala 223:99]
  wire  _log_reg_30_T_47 = archit_ptr_0 == 6'h1e | archit_ptr_1 == 6'h1e | archit_ptr_2 == 6'h1e | archit_ptr_3 == 6'h1e
     | archit_ptr_4 == 6'h1e | archit_ptr_5 == 6'h1e | archit_ptr_6 == 6'h1e | archit_ptr_7 == 6'h1e | archit_ptr_8 == 6'h1e
     | archit_ptr_9 == 6'h1e | archit_ptr_10 == 6'h1e | archit_ptr_11 == 6'h1e | archit_ptr_12 == 6'h1e | archit_ptr_13
     == 6'h1e | archit_ptr_14 == 6'h1e | _log_reg_30_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_30_T_62 = _log_reg_30_T_47 | archit_ptr_16 == 6'h1e | archit_ptr_17 == 6'h1e | archit_ptr_18 == 6'h1e
     | archit_ptr_19 == 6'h1e | archit_ptr_20 == 6'h1e | archit_ptr_21 == 6'h1e | archit_ptr_22 == 6'h1e | archit_ptr_23
     == 6'h1e | archit_ptr_24 == 6'h1e | archit_ptr_25 == 6'h1e | archit_ptr_26 == 6'h1e | archit_ptr_27 == 6'h1e |
    archit_ptr_28 == 6'h1e | archit_ptr_29 == 6'h1e | archit_ptr_30 == 6'h1e; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_30_T_64 = _log_reg_30_T_62 | archit_ptr_31 == 6'h1e ? log_reg_30 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_31_T_15 = archit_ptr_15 == 6'h1f; // @[Regfiles.scala 223:99]
  wire  _log_reg_31_T_47 = archit_ptr_0 == 6'h1f | archit_ptr_1 == 6'h1f | archit_ptr_2 == 6'h1f | archit_ptr_3 == 6'h1f
     | archit_ptr_4 == 6'h1f | archit_ptr_5 == 6'h1f | archit_ptr_6 == 6'h1f | archit_ptr_7 == 6'h1f | archit_ptr_8 == 6'h1f
     | archit_ptr_9 == 6'h1f | archit_ptr_10 == 6'h1f | archit_ptr_11 == 6'h1f | archit_ptr_12 == 6'h1f | archit_ptr_13
     == 6'h1f | archit_ptr_14 == 6'h1f | _log_reg_31_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_31_T_62 = _log_reg_31_T_47 | archit_ptr_16 == 6'h1f | archit_ptr_17 == 6'h1f | archit_ptr_18 == 6'h1f
     | archit_ptr_19 == 6'h1f | archit_ptr_20 == 6'h1f | archit_ptr_21 == 6'h1f | archit_ptr_22 == 6'h1f | archit_ptr_23
     == 6'h1f | archit_ptr_24 == 6'h1f | archit_ptr_25 == 6'h1f | archit_ptr_26 == 6'h1f | archit_ptr_27 == 6'h1f |
    archit_ptr_28 == 6'h1f | archit_ptr_29 == 6'h1f | archit_ptr_30 == 6'h1f; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_31_T_64 = _log_reg_31_T_62 | archit_ptr_31 == 6'h1f ? log_reg_31 : 2'h0; // @[Regfiles.scala 223:63]
  wire  _log_reg_32_T_15 = archit_ptr_15 == 6'h20; // @[Regfiles.scala 223:99]
  wire  _log_reg_32_T_47 = archit_ptr_0 == 6'h20 | archit_ptr_1 == 6'h20 | archit_ptr_2 == 6'h20 | archit_ptr_3 == 6'h20
     | archit_ptr_4 == 6'h20 | archit_ptr_5 == 6'h20 | archit_ptr_6 == 6'h20 | archit_ptr_7 == 6'h20 | archit_ptr_8 == 6'h20
     | archit_ptr_9 == 6'h20 | archit_ptr_10 == 6'h20 | archit_ptr_11 == 6'h20 | archit_ptr_12 == 6'h20 | archit_ptr_13
     == 6'h20 | archit_ptr_14 == 6'h20 | _log_reg_32_T_15; // @[Regfiles.scala 223:82]
  wire  _log_reg_32_T_62 = _log_reg_32_T_47 | archit_ptr_16 == 6'h20 | archit_ptr_17 == 6'h20 | archit_ptr_18 == 6'h20
     | archit_ptr_19 == 6'h20 | archit_ptr_20 == 6'h20 | archit_ptr_21 == 6'h20 | archit_ptr_22 == 6'h20 | archit_ptr_23
     == 6'h20 | archit_ptr_24 == 6'h20 | archit_ptr_25 == 6'h20 | archit_ptr_26 == 6'h20 | archit_ptr_27 == 6'h20 |
    archit_ptr_28 == 6'h20 | archit_ptr_29 == 6'h20 | archit_ptr_30 == 6'h20; // @[Regfiles.scala 223:82]
  wire [1:0] _log_reg_32_T_64 = _log_reg_32_T_62 | archit_ptr_31 == 6'h20 ? log_reg_32 : 2'h0; // @[Regfiles.scala 223:63]
  wire [1:0] _GEN_1690 = _T_39 ? _log_reg_0_T_64 : _GEN_1590; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1691 = _T_39 ? _log_reg_1_T_64 : _GEN_1591; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1692 = _T_39 ? _log_reg_2_T_64 : _GEN_1592; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1693 = _T_39 ? _log_reg_3_T_64 : _GEN_1593; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1694 = _T_39 ? _log_reg_4_T_64 : _GEN_1594; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1695 = _T_39 ? _log_reg_5_T_64 : _GEN_1595; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1696 = _T_39 ? _log_reg_6_T_64 : _GEN_1596; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1697 = _T_39 ? _log_reg_7_T_64 : _GEN_1597; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1698 = _T_39 ? _log_reg_8_T_64 : _GEN_1598; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1699 = _T_39 ? _log_reg_9_T_64 : _GEN_1599; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1700 = _T_39 ? _log_reg_10_T_64 : _GEN_1600; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1701 = _T_39 ? _log_reg_11_T_64 : _GEN_1601; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1702 = _T_39 ? _log_reg_12_T_64 : _GEN_1602; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1703 = _T_39 ? _log_reg_13_T_64 : _GEN_1603; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1704 = _T_39 ? _log_reg_14_T_64 : _GEN_1604; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1705 = _T_39 ? _log_reg_15_T_64 : _GEN_1605; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1706 = _T_39 ? _log_reg_16_T_64 : _GEN_1606; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1707 = _T_39 ? _log_reg_17_T_64 : _GEN_1607; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1708 = _T_39 ? _log_reg_18_T_64 : _GEN_1608; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1709 = _T_39 ? _log_reg_19_T_64 : _GEN_1609; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1710 = _T_39 ? _log_reg_20_T_64 : _GEN_1610; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1711 = _T_39 ? _log_reg_21_T_64 : _GEN_1611; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1712 = _T_39 ? _log_reg_22_T_64 : _GEN_1612; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1713 = _T_39 ? _log_reg_23_T_64 : _GEN_1613; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1714 = _T_39 ? _log_reg_24_T_64 : _GEN_1614; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1715 = _T_39 ? _log_reg_25_T_64 : _GEN_1615; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1716 = _T_39 ? _log_reg_26_T_64 : _GEN_1616; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1717 = _T_39 ? _log_reg_27_T_64 : _GEN_1617; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1718 = _T_39 ? _log_reg_28_T_64 : _GEN_1618; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1719 = _T_39 ? _log_reg_29_T_64 : _GEN_1619; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1720 = _T_39 ? _log_reg_30_T_64 : _GEN_1620; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1721 = _T_39 ? _log_reg_31_T_64 : _GEN_1621; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1722 = _T_39 ? _log_reg_32_T_64 : _GEN_1622; // @[Regfiles.scala 221:64 223:57]
  wire  _T_118 = io_commit_0_is_MisPredict | io_commit_0_is_comfirm; // @[Regfiles.scala 225:38]
  wire [5:0] _GEN_1724 = 5'h1 == io_commit_0_raw ? archit_ptr_1 : archit_ptr_0; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1725 = 5'h2 == io_commit_0_raw ? archit_ptr_2 : _GEN_1724; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1726 = 5'h3 == io_commit_0_raw ? archit_ptr_3 : _GEN_1725; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1727 = 5'h4 == io_commit_0_raw ? archit_ptr_4 : _GEN_1726; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1728 = 5'h5 == io_commit_0_raw ? archit_ptr_5 : _GEN_1727; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1729 = 5'h6 == io_commit_0_raw ? archit_ptr_6 : _GEN_1728; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1730 = 5'h7 == io_commit_0_raw ? archit_ptr_7 : _GEN_1729; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1731 = 5'h8 == io_commit_0_raw ? archit_ptr_8 : _GEN_1730; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1732 = 5'h9 == io_commit_0_raw ? archit_ptr_9 : _GEN_1731; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1733 = 5'ha == io_commit_0_raw ? archit_ptr_10 : _GEN_1732; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1734 = 5'hb == io_commit_0_raw ? archit_ptr_11 : _GEN_1733; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1735 = 5'hc == io_commit_0_raw ? archit_ptr_12 : _GEN_1734; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1736 = 5'hd == io_commit_0_raw ? archit_ptr_13 : _GEN_1735; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1737 = 5'he == io_commit_0_raw ? archit_ptr_14 : _GEN_1736; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1738 = 5'hf == io_commit_0_raw ? archit_ptr_15 : _GEN_1737; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1739 = 5'h10 == io_commit_0_raw ? archit_ptr_16 : _GEN_1738; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1740 = 5'h11 == io_commit_0_raw ? archit_ptr_17 : _GEN_1739; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1741 = 5'h12 == io_commit_0_raw ? archit_ptr_18 : _GEN_1740; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1742 = 5'h13 == io_commit_0_raw ? archit_ptr_19 : _GEN_1741; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1743 = 5'h14 == io_commit_0_raw ? archit_ptr_20 : _GEN_1742; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1744 = 5'h15 == io_commit_0_raw ? archit_ptr_21 : _GEN_1743; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1745 = 5'h16 == io_commit_0_raw ? archit_ptr_22 : _GEN_1744; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1746 = 5'h17 == io_commit_0_raw ? archit_ptr_23 : _GEN_1745; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1747 = 5'h18 == io_commit_0_raw ? archit_ptr_24 : _GEN_1746; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1748 = 5'h19 == io_commit_0_raw ? archit_ptr_25 : _GEN_1747; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1749 = 5'h1a == io_commit_0_raw ? archit_ptr_26 : _GEN_1748; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1750 = 5'h1b == io_commit_0_raw ? archit_ptr_27 : _GEN_1749; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1751 = 5'h1c == io_commit_0_raw ? archit_ptr_28 : _GEN_1750; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1752 = 5'h1d == io_commit_0_raw ? archit_ptr_29 : _GEN_1751; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1753 = 5'h1e == io_commit_0_raw ? archit_ptr_30 : _GEN_1752; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1754 = 5'h1f == io_commit_0_raw ? archit_ptr_31 : _GEN_1753; // @[Regfiles.scala 229:{18,18}]
  wire [1:0] _GEN_1952 = 6'h1 == archit_ptr_0 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1953 = 6'h2 == archit_ptr_0 ? log_reg_2 : _GEN_1952; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1954 = 6'h3 == archit_ptr_0 ? log_reg_3 : _GEN_1953; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1955 = 6'h4 == archit_ptr_0 ? log_reg_4 : _GEN_1954; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1956 = 6'h5 == archit_ptr_0 ? log_reg_5 : _GEN_1955; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1957 = 6'h6 == archit_ptr_0 ? log_reg_6 : _GEN_1956; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1958 = 6'h7 == archit_ptr_0 ? log_reg_7 : _GEN_1957; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1959 = 6'h8 == archit_ptr_0 ? log_reg_8 : _GEN_1958; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1960 = 6'h9 == archit_ptr_0 ? log_reg_9 : _GEN_1959; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1961 = 6'ha == archit_ptr_0 ? log_reg_10 : _GEN_1960; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1962 = 6'hb == archit_ptr_0 ? log_reg_11 : _GEN_1961; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1963 = 6'hc == archit_ptr_0 ? log_reg_12 : _GEN_1962; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1964 = 6'hd == archit_ptr_0 ? log_reg_13 : _GEN_1963; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1965 = 6'he == archit_ptr_0 ? log_reg_14 : _GEN_1964; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1966 = 6'hf == archit_ptr_0 ? log_reg_15 : _GEN_1965; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1967 = 6'h10 == archit_ptr_0 ? log_reg_16 : _GEN_1966; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1968 = 6'h11 == archit_ptr_0 ? log_reg_17 : _GEN_1967; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1969 = 6'h12 == archit_ptr_0 ? log_reg_18 : _GEN_1968; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1970 = 6'h13 == archit_ptr_0 ? log_reg_19 : _GEN_1969; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1971 = 6'h14 == archit_ptr_0 ? log_reg_20 : _GEN_1970; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1972 = 6'h15 == archit_ptr_0 ? log_reg_21 : _GEN_1971; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1973 = 6'h16 == archit_ptr_0 ? log_reg_22 : _GEN_1972; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1974 = 6'h17 == archit_ptr_0 ? log_reg_23 : _GEN_1973; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1975 = 6'h18 == archit_ptr_0 ? log_reg_24 : _GEN_1974; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1976 = 6'h19 == archit_ptr_0 ? log_reg_25 : _GEN_1975; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1977 = 6'h1a == archit_ptr_0 ? log_reg_26 : _GEN_1976; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1978 = 6'h1b == archit_ptr_0 ? log_reg_27 : _GEN_1977; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1979 = 6'h1c == archit_ptr_0 ? log_reg_28 : _GEN_1978; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1980 = 6'h1d == archit_ptr_0 ? log_reg_29 : _GEN_1979; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1981 = 6'h1e == archit_ptr_0 ? log_reg_30 : _GEN_1980; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1982 = 6'h1f == archit_ptr_0 ? log_reg_31 : _GEN_1981; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1983 = 6'h20 == archit_ptr_0 ? log_reg_32 : _GEN_1982; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1984 = 6'h21 == archit_ptr_0 ? 2'h3 : _GEN_1983; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1986 = 6'h1 == archit_ptr_1 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1987 = 6'h2 == archit_ptr_1 ? log_reg_2 : _GEN_1986; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1988 = 6'h3 == archit_ptr_1 ? log_reg_3 : _GEN_1987; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1989 = 6'h4 == archit_ptr_1 ? log_reg_4 : _GEN_1988; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1990 = 6'h5 == archit_ptr_1 ? log_reg_5 : _GEN_1989; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1991 = 6'h6 == archit_ptr_1 ? log_reg_6 : _GEN_1990; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1992 = 6'h7 == archit_ptr_1 ? log_reg_7 : _GEN_1991; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1993 = 6'h8 == archit_ptr_1 ? log_reg_8 : _GEN_1992; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1994 = 6'h9 == archit_ptr_1 ? log_reg_9 : _GEN_1993; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1995 = 6'ha == archit_ptr_1 ? log_reg_10 : _GEN_1994; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1996 = 6'hb == archit_ptr_1 ? log_reg_11 : _GEN_1995; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1997 = 6'hc == archit_ptr_1 ? log_reg_12 : _GEN_1996; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1998 = 6'hd == archit_ptr_1 ? log_reg_13 : _GEN_1997; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1999 = 6'he == archit_ptr_1 ? log_reg_14 : _GEN_1998; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2000 = 6'hf == archit_ptr_1 ? log_reg_15 : _GEN_1999; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2001 = 6'h10 == archit_ptr_1 ? log_reg_16 : _GEN_2000; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2002 = 6'h11 == archit_ptr_1 ? log_reg_17 : _GEN_2001; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2003 = 6'h12 == archit_ptr_1 ? log_reg_18 : _GEN_2002; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2004 = 6'h13 == archit_ptr_1 ? log_reg_19 : _GEN_2003; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2005 = 6'h14 == archit_ptr_1 ? log_reg_20 : _GEN_2004; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2006 = 6'h15 == archit_ptr_1 ? log_reg_21 : _GEN_2005; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2007 = 6'h16 == archit_ptr_1 ? log_reg_22 : _GEN_2006; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2008 = 6'h17 == archit_ptr_1 ? log_reg_23 : _GEN_2007; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2009 = 6'h18 == archit_ptr_1 ? log_reg_24 : _GEN_2008; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2010 = 6'h19 == archit_ptr_1 ? log_reg_25 : _GEN_2009; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2011 = 6'h1a == archit_ptr_1 ? log_reg_26 : _GEN_2010; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2012 = 6'h1b == archit_ptr_1 ? log_reg_27 : _GEN_2011; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2013 = 6'h1c == archit_ptr_1 ? log_reg_28 : _GEN_2012; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2014 = 6'h1d == archit_ptr_1 ? log_reg_29 : _GEN_2013; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2015 = 6'h1e == archit_ptr_1 ? log_reg_30 : _GEN_2014; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2016 = 6'h1f == archit_ptr_1 ? log_reg_31 : _GEN_2015; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2017 = 6'h20 == archit_ptr_1 ? log_reg_32 : _GEN_2016; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2018 = 6'h21 == archit_ptr_1 ? 2'h3 : _GEN_2017; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2020 = 6'h1 == archit_ptr_2 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2021 = 6'h2 == archit_ptr_2 ? log_reg_2 : _GEN_2020; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2022 = 6'h3 == archit_ptr_2 ? log_reg_3 : _GEN_2021; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2023 = 6'h4 == archit_ptr_2 ? log_reg_4 : _GEN_2022; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2024 = 6'h5 == archit_ptr_2 ? log_reg_5 : _GEN_2023; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2025 = 6'h6 == archit_ptr_2 ? log_reg_6 : _GEN_2024; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2026 = 6'h7 == archit_ptr_2 ? log_reg_7 : _GEN_2025; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2027 = 6'h8 == archit_ptr_2 ? log_reg_8 : _GEN_2026; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2028 = 6'h9 == archit_ptr_2 ? log_reg_9 : _GEN_2027; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2029 = 6'ha == archit_ptr_2 ? log_reg_10 : _GEN_2028; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2030 = 6'hb == archit_ptr_2 ? log_reg_11 : _GEN_2029; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2031 = 6'hc == archit_ptr_2 ? log_reg_12 : _GEN_2030; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2032 = 6'hd == archit_ptr_2 ? log_reg_13 : _GEN_2031; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2033 = 6'he == archit_ptr_2 ? log_reg_14 : _GEN_2032; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2034 = 6'hf == archit_ptr_2 ? log_reg_15 : _GEN_2033; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2035 = 6'h10 == archit_ptr_2 ? log_reg_16 : _GEN_2034; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2036 = 6'h11 == archit_ptr_2 ? log_reg_17 : _GEN_2035; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2037 = 6'h12 == archit_ptr_2 ? log_reg_18 : _GEN_2036; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2038 = 6'h13 == archit_ptr_2 ? log_reg_19 : _GEN_2037; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2039 = 6'h14 == archit_ptr_2 ? log_reg_20 : _GEN_2038; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2040 = 6'h15 == archit_ptr_2 ? log_reg_21 : _GEN_2039; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2041 = 6'h16 == archit_ptr_2 ? log_reg_22 : _GEN_2040; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2042 = 6'h17 == archit_ptr_2 ? log_reg_23 : _GEN_2041; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2043 = 6'h18 == archit_ptr_2 ? log_reg_24 : _GEN_2042; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2044 = 6'h19 == archit_ptr_2 ? log_reg_25 : _GEN_2043; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2045 = 6'h1a == archit_ptr_2 ? log_reg_26 : _GEN_2044; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2046 = 6'h1b == archit_ptr_2 ? log_reg_27 : _GEN_2045; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2047 = 6'h1c == archit_ptr_2 ? log_reg_28 : _GEN_2046; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2048 = 6'h1d == archit_ptr_2 ? log_reg_29 : _GEN_2047; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2049 = 6'h1e == archit_ptr_2 ? log_reg_30 : _GEN_2048; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2050 = 6'h1f == archit_ptr_2 ? log_reg_31 : _GEN_2049; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2051 = 6'h20 == archit_ptr_2 ? log_reg_32 : _GEN_2050; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2052 = 6'h21 == archit_ptr_2 ? 2'h3 : _GEN_2051; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2054 = 6'h1 == archit_ptr_3 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2055 = 6'h2 == archit_ptr_3 ? log_reg_2 : _GEN_2054; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2056 = 6'h3 == archit_ptr_3 ? log_reg_3 : _GEN_2055; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2057 = 6'h4 == archit_ptr_3 ? log_reg_4 : _GEN_2056; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2058 = 6'h5 == archit_ptr_3 ? log_reg_5 : _GEN_2057; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2059 = 6'h6 == archit_ptr_3 ? log_reg_6 : _GEN_2058; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2060 = 6'h7 == archit_ptr_3 ? log_reg_7 : _GEN_2059; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2061 = 6'h8 == archit_ptr_3 ? log_reg_8 : _GEN_2060; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2062 = 6'h9 == archit_ptr_3 ? log_reg_9 : _GEN_2061; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2063 = 6'ha == archit_ptr_3 ? log_reg_10 : _GEN_2062; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2064 = 6'hb == archit_ptr_3 ? log_reg_11 : _GEN_2063; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2065 = 6'hc == archit_ptr_3 ? log_reg_12 : _GEN_2064; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2066 = 6'hd == archit_ptr_3 ? log_reg_13 : _GEN_2065; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2067 = 6'he == archit_ptr_3 ? log_reg_14 : _GEN_2066; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2068 = 6'hf == archit_ptr_3 ? log_reg_15 : _GEN_2067; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2069 = 6'h10 == archit_ptr_3 ? log_reg_16 : _GEN_2068; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2070 = 6'h11 == archit_ptr_3 ? log_reg_17 : _GEN_2069; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2071 = 6'h12 == archit_ptr_3 ? log_reg_18 : _GEN_2070; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2072 = 6'h13 == archit_ptr_3 ? log_reg_19 : _GEN_2071; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2073 = 6'h14 == archit_ptr_3 ? log_reg_20 : _GEN_2072; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2074 = 6'h15 == archit_ptr_3 ? log_reg_21 : _GEN_2073; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2075 = 6'h16 == archit_ptr_3 ? log_reg_22 : _GEN_2074; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2076 = 6'h17 == archit_ptr_3 ? log_reg_23 : _GEN_2075; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2077 = 6'h18 == archit_ptr_3 ? log_reg_24 : _GEN_2076; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2078 = 6'h19 == archit_ptr_3 ? log_reg_25 : _GEN_2077; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2079 = 6'h1a == archit_ptr_3 ? log_reg_26 : _GEN_2078; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2080 = 6'h1b == archit_ptr_3 ? log_reg_27 : _GEN_2079; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2081 = 6'h1c == archit_ptr_3 ? log_reg_28 : _GEN_2080; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2082 = 6'h1d == archit_ptr_3 ? log_reg_29 : _GEN_2081; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2083 = 6'h1e == archit_ptr_3 ? log_reg_30 : _GEN_2082; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2084 = 6'h1f == archit_ptr_3 ? log_reg_31 : _GEN_2083; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2085 = 6'h20 == archit_ptr_3 ? log_reg_32 : _GEN_2084; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2086 = 6'h21 == archit_ptr_3 ? 2'h3 : _GEN_2085; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2088 = 6'h1 == archit_ptr_4 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2089 = 6'h2 == archit_ptr_4 ? log_reg_2 : _GEN_2088; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2090 = 6'h3 == archit_ptr_4 ? log_reg_3 : _GEN_2089; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2091 = 6'h4 == archit_ptr_4 ? log_reg_4 : _GEN_2090; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2092 = 6'h5 == archit_ptr_4 ? log_reg_5 : _GEN_2091; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2093 = 6'h6 == archit_ptr_4 ? log_reg_6 : _GEN_2092; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2094 = 6'h7 == archit_ptr_4 ? log_reg_7 : _GEN_2093; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2095 = 6'h8 == archit_ptr_4 ? log_reg_8 : _GEN_2094; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2096 = 6'h9 == archit_ptr_4 ? log_reg_9 : _GEN_2095; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2097 = 6'ha == archit_ptr_4 ? log_reg_10 : _GEN_2096; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2098 = 6'hb == archit_ptr_4 ? log_reg_11 : _GEN_2097; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2099 = 6'hc == archit_ptr_4 ? log_reg_12 : _GEN_2098; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2100 = 6'hd == archit_ptr_4 ? log_reg_13 : _GEN_2099; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2101 = 6'he == archit_ptr_4 ? log_reg_14 : _GEN_2100; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2102 = 6'hf == archit_ptr_4 ? log_reg_15 : _GEN_2101; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2103 = 6'h10 == archit_ptr_4 ? log_reg_16 : _GEN_2102; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2104 = 6'h11 == archit_ptr_4 ? log_reg_17 : _GEN_2103; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2105 = 6'h12 == archit_ptr_4 ? log_reg_18 : _GEN_2104; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2106 = 6'h13 == archit_ptr_4 ? log_reg_19 : _GEN_2105; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2107 = 6'h14 == archit_ptr_4 ? log_reg_20 : _GEN_2106; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2108 = 6'h15 == archit_ptr_4 ? log_reg_21 : _GEN_2107; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2109 = 6'h16 == archit_ptr_4 ? log_reg_22 : _GEN_2108; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2110 = 6'h17 == archit_ptr_4 ? log_reg_23 : _GEN_2109; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2111 = 6'h18 == archit_ptr_4 ? log_reg_24 : _GEN_2110; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2112 = 6'h19 == archit_ptr_4 ? log_reg_25 : _GEN_2111; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2113 = 6'h1a == archit_ptr_4 ? log_reg_26 : _GEN_2112; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2114 = 6'h1b == archit_ptr_4 ? log_reg_27 : _GEN_2113; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2115 = 6'h1c == archit_ptr_4 ? log_reg_28 : _GEN_2114; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2116 = 6'h1d == archit_ptr_4 ? log_reg_29 : _GEN_2115; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2117 = 6'h1e == archit_ptr_4 ? log_reg_30 : _GEN_2116; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2118 = 6'h1f == archit_ptr_4 ? log_reg_31 : _GEN_2117; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2119 = 6'h20 == archit_ptr_4 ? log_reg_32 : _GEN_2118; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2120 = 6'h21 == archit_ptr_4 ? 2'h3 : _GEN_2119; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2122 = 6'h1 == archit_ptr_5 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2123 = 6'h2 == archit_ptr_5 ? log_reg_2 : _GEN_2122; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2124 = 6'h3 == archit_ptr_5 ? log_reg_3 : _GEN_2123; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2125 = 6'h4 == archit_ptr_5 ? log_reg_4 : _GEN_2124; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2126 = 6'h5 == archit_ptr_5 ? log_reg_5 : _GEN_2125; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2127 = 6'h6 == archit_ptr_5 ? log_reg_6 : _GEN_2126; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2128 = 6'h7 == archit_ptr_5 ? log_reg_7 : _GEN_2127; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2129 = 6'h8 == archit_ptr_5 ? log_reg_8 : _GEN_2128; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2130 = 6'h9 == archit_ptr_5 ? log_reg_9 : _GEN_2129; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2131 = 6'ha == archit_ptr_5 ? log_reg_10 : _GEN_2130; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2132 = 6'hb == archit_ptr_5 ? log_reg_11 : _GEN_2131; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2133 = 6'hc == archit_ptr_5 ? log_reg_12 : _GEN_2132; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2134 = 6'hd == archit_ptr_5 ? log_reg_13 : _GEN_2133; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2135 = 6'he == archit_ptr_5 ? log_reg_14 : _GEN_2134; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2136 = 6'hf == archit_ptr_5 ? log_reg_15 : _GEN_2135; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2137 = 6'h10 == archit_ptr_5 ? log_reg_16 : _GEN_2136; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2138 = 6'h11 == archit_ptr_5 ? log_reg_17 : _GEN_2137; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2139 = 6'h12 == archit_ptr_5 ? log_reg_18 : _GEN_2138; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2140 = 6'h13 == archit_ptr_5 ? log_reg_19 : _GEN_2139; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2141 = 6'h14 == archit_ptr_5 ? log_reg_20 : _GEN_2140; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2142 = 6'h15 == archit_ptr_5 ? log_reg_21 : _GEN_2141; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2143 = 6'h16 == archit_ptr_5 ? log_reg_22 : _GEN_2142; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2144 = 6'h17 == archit_ptr_5 ? log_reg_23 : _GEN_2143; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2145 = 6'h18 == archit_ptr_5 ? log_reg_24 : _GEN_2144; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2146 = 6'h19 == archit_ptr_5 ? log_reg_25 : _GEN_2145; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2147 = 6'h1a == archit_ptr_5 ? log_reg_26 : _GEN_2146; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2148 = 6'h1b == archit_ptr_5 ? log_reg_27 : _GEN_2147; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2149 = 6'h1c == archit_ptr_5 ? log_reg_28 : _GEN_2148; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2150 = 6'h1d == archit_ptr_5 ? log_reg_29 : _GEN_2149; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2151 = 6'h1e == archit_ptr_5 ? log_reg_30 : _GEN_2150; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2152 = 6'h1f == archit_ptr_5 ? log_reg_31 : _GEN_2151; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2153 = 6'h20 == archit_ptr_5 ? log_reg_32 : _GEN_2152; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2154 = 6'h21 == archit_ptr_5 ? 2'h3 : _GEN_2153; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2156 = 6'h1 == archit_ptr_6 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2157 = 6'h2 == archit_ptr_6 ? log_reg_2 : _GEN_2156; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2158 = 6'h3 == archit_ptr_6 ? log_reg_3 : _GEN_2157; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2159 = 6'h4 == archit_ptr_6 ? log_reg_4 : _GEN_2158; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2160 = 6'h5 == archit_ptr_6 ? log_reg_5 : _GEN_2159; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2161 = 6'h6 == archit_ptr_6 ? log_reg_6 : _GEN_2160; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2162 = 6'h7 == archit_ptr_6 ? log_reg_7 : _GEN_2161; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2163 = 6'h8 == archit_ptr_6 ? log_reg_8 : _GEN_2162; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2164 = 6'h9 == archit_ptr_6 ? log_reg_9 : _GEN_2163; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2165 = 6'ha == archit_ptr_6 ? log_reg_10 : _GEN_2164; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2166 = 6'hb == archit_ptr_6 ? log_reg_11 : _GEN_2165; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2167 = 6'hc == archit_ptr_6 ? log_reg_12 : _GEN_2166; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2168 = 6'hd == archit_ptr_6 ? log_reg_13 : _GEN_2167; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2169 = 6'he == archit_ptr_6 ? log_reg_14 : _GEN_2168; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2170 = 6'hf == archit_ptr_6 ? log_reg_15 : _GEN_2169; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2171 = 6'h10 == archit_ptr_6 ? log_reg_16 : _GEN_2170; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2172 = 6'h11 == archit_ptr_6 ? log_reg_17 : _GEN_2171; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2173 = 6'h12 == archit_ptr_6 ? log_reg_18 : _GEN_2172; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2174 = 6'h13 == archit_ptr_6 ? log_reg_19 : _GEN_2173; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2175 = 6'h14 == archit_ptr_6 ? log_reg_20 : _GEN_2174; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2176 = 6'h15 == archit_ptr_6 ? log_reg_21 : _GEN_2175; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2177 = 6'h16 == archit_ptr_6 ? log_reg_22 : _GEN_2176; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2178 = 6'h17 == archit_ptr_6 ? log_reg_23 : _GEN_2177; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2179 = 6'h18 == archit_ptr_6 ? log_reg_24 : _GEN_2178; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2180 = 6'h19 == archit_ptr_6 ? log_reg_25 : _GEN_2179; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2181 = 6'h1a == archit_ptr_6 ? log_reg_26 : _GEN_2180; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2182 = 6'h1b == archit_ptr_6 ? log_reg_27 : _GEN_2181; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2183 = 6'h1c == archit_ptr_6 ? log_reg_28 : _GEN_2182; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2184 = 6'h1d == archit_ptr_6 ? log_reg_29 : _GEN_2183; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2185 = 6'h1e == archit_ptr_6 ? log_reg_30 : _GEN_2184; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2186 = 6'h1f == archit_ptr_6 ? log_reg_31 : _GEN_2185; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2187 = 6'h20 == archit_ptr_6 ? log_reg_32 : _GEN_2186; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2188 = 6'h21 == archit_ptr_6 ? 2'h3 : _GEN_2187; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2190 = 6'h1 == archit_ptr_7 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2191 = 6'h2 == archit_ptr_7 ? log_reg_2 : _GEN_2190; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2192 = 6'h3 == archit_ptr_7 ? log_reg_3 : _GEN_2191; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2193 = 6'h4 == archit_ptr_7 ? log_reg_4 : _GEN_2192; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2194 = 6'h5 == archit_ptr_7 ? log_reg_5 : _GEN_2193; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2195 = 6'h6 == archit_ptr_7 ? log_reg_6 : _GEN_2194; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2196 = 6'h7 == archit_ptr_7 ? log_reg_7 : _GEN_2195; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2197 = 6'h8 == archit_ptr_7 ? log_reg_8 : _GEN_2196; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2198 = 6'h9 == archit_ptr_7 ? log_reg_9 : _GEN_2197; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2199 = 6'ha == archit_ptr_7 ? log_reg_10 : _GEN_2198; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2200 = 6'hb == archit_ptr_7 ? log_reg_11 : _GEN_2199; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2201 = 6'hc == archit_ptr_7 ? log_reg_12 : _GEN_2200; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2202 = 6'hd == archit_ptr_7 ? log_reg_13 : _GEN_2201; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2203 = 6'he == archit_ptr_7 ? log_reg_14 : _GEN_2202; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2204 = 6'hf == archit_ptr_7 ? log_reg_15 : _GEN_2203; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2205 = 6'h10 == archit_ptr_7 ? log_reg_16 : _GEN_2204; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2206 = 6'h11 == archit_ptr_7 ? log_reg_17 : _GEN_2205; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2207 = 6'h12 == archit_ptr_7 ? log_reg_18 : _GEN_2206; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2208 = 6'h13 == archit_ptr_7 ? log_reg_19 : _GEN_2207; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2209 = 6'h14 == archit_ptr_7 ? log_reg_20 : _GEN_2208; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2210 = 6'h15 == archit_ptr_7 ? log_reg_21 : _GEN_2209; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2211 = 6'h16 == archit_ptr_7 ? log_reg_22 : _GEN_2210; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2212 = 6'h17 == archit_ptr_7 ? log_reg_23 : _GEN_2211; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2213 = 6'h18 == archit_ptr_7 ? log_reg_24 : _GEN_2212; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2214 = 6'h19 == archit_ptr_7 ? log_reg_25 : _GEN_2213; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2215 = 6'h1a == archit_ptr_7 ? log_reg_26 : _GEN_2214; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2216 = 6'h1b == archit_ptr_7 ? log_reg_27 : _GEN_2215; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2217 = 6'h1c == archit_ptr_7 ? log_reg_28 : _GEN_2216; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2218 = 6'h1d == archit_ptr_7 ? log_reg_29 : _GEN_2217; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2219 = 6'h1e == archit_ptr_7 ? log_reg_30 : _GEN_2218; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2220 = 6'h1f == archit_ptr_7 ? log_reg_31 : _GEN_2219; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2221 = 6'h20 == archit_ptr_7 ? log_reg_32 : _GEN_2220; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2222 = 6'h21 == archit_ptr_7 ? 2'h3 : _GEN_2221; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2224 = 6'h1 == archit_ptr_8 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2225 = 6'h2 == archit_ptr_8 ? log_reg_2 : _GEN_2224; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2226 = 6'h3 == archit_ptr_8 ? log_reg_3 : _GEN_2225; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2227 = 6'h4 == archit_ptr_8 ? log_reg_4 : _GEN_2226; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2228 = 6'h5 == archit_ptr_8 ? log_reg_5 : _GEN_2227; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2229 = 6'h6 == archit_ptr_8 ? log_reg_6 : _GEN_2228; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2230 = 6'h7 == archit_ptr_8 ? log_reg_7 : _GEN_2229; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2231 = 6'h8 == archit_ptr_8 ? log_reg_8 : _GEN_2230; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2232 = 6'h9 == archit_ptr_8 ? log_reg_9 : _GEN_2231; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2233 = 6'ha == archit_ptr_8 ? log_reg_10 : _GEN_2232; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2234 = 6'hb == archit_ptr_8 ? log_reg_11 : _GEN_2233; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2235 = 6'hc == archit_ptr_8 ? log_reg_12 : _GEN_2234; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2236 = 6'hd == archit_ptr_8 ? log_reg_13 : _GEN_2235; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2237 = 6'he == archit_ptr_8 ? log_reg_14 : _GEN_2236; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2238 = 6'hf == archit_ptr_8 ? log_reg_15 : _GEN_2237; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2239 = 6'h10 == archit_ptr_8 ? log_reg_16 : _GEN_2238; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2240 = 6'h11 == archit_ptr_8 ? log_reg_17 : _GEN_2239; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2241 = 6'h12 == archit_ptr_8 ? log_reg_18 : _GEN_2240; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2242 = 6'h13 == archit_ptr_8 ? log_reg_19 : _GEN_2241; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2243 = 6'h14 == archit_ptr_8 ? log_reg_20 : _GEN_2242; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2244 = 6'h15 == archit_ptr_8 ? log_reg_21 : _GEN_2243; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2245 = 6'h16 == archit_ptr_8 ? log_reg_22 : _GEN_2244; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2246 = 6'h17 == archit_ptr_8 ? log_reg_23 : _GEN_2245; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2247 = 6'h18 == archit_ptr_8 ? log_reg_24 : _GEN_2246; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2248 = 6'h19 == archit_ptr_8 ? log_reg_25 : _GEN_2247; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2249 = 6'h1a == archit_ptr_8 ? log_reg_26 : _GEN_2248; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2250 = 6'h1b == archit_ptr_8 ? log_reg_27 : _GEN_2249; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2251 = 6'h1c == archit_ptr_8 ? log_reg_28 : _GEN_2250; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2252 = 6'h1d == archit_ptr_8 ? log_reg_29 : _GEN_2251; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2253 = 6'h1e == archit_ptr_8 ? log_reg_30 : _GEN_2252; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2254 = 6'h1f == archit_ptr_8 ? log_reg_31 : _GEN_2253; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2255 = 6'h20 == archit_ptr_8 ? log_reg_32 : _GEN_2254; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2256 = 6'h21 == archit_ptr_8 ? 2'h3 : _GEN_2255; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2258 = 6'h1 == archit_ptr_9 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2259 = 6'h2 == archit_ptr_9 ? log_reg_2 : _GEN_2258; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2260 = 6'h3 == archit_ptr_9 ? log_reg_3 : _GEN_2259; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2261 = 6'h4 == archit_ptr_9 ? log_reg_4 : _GEN_2260; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2262 = 6'h5 == archit_ptr_9 ? log_reg_5 : _GEN_2261; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2263 = 6'h6 == archit_ptr_9 ? log_reg_6 : _GEN_2262; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2264 = 6'h7 == archit_ptr_9 ? log_reg_7 : _GEN_2263; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2265 = 6'h8 == archit_ptr_9 ? log_reg_8 : _GEN_2264; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2266 = 6'h9 == archit_ptr_9 ? log_reg_9 : _GEN_2265; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2267 = 6'ha == archit_ptr_9 ? log_reg_10 : _GEN_2266; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2268 = 6'hb == archit_ptr_9 ? log_reg_11 : _GEN_2267; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2269 = 6'hc == archit_ptr_9 ? log_reg_12 : _GEN_2268; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2270 = 6'hd == archit_ptr_9 ? log_reg_13 : _GEN_2269; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2271 = 6'he == archit_ptr_9 ? log_reg_14 : _GEN_2270; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2272 = 6'hf == archit_ptr_9 ? log_reg_15 : _GEN_2271; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2273 = 6'h10 == archit_ptr_9 ? log_reg_16 : _GEN_2272; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2274 = 6'h11 == archit_ptr_9 ? log_reg_17 : _GEN_2273; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2275 = 6'h12 == archit_ptr_9 ? log_reg_18 : _GEN_2274; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2276 = 6'h13 == archit_ptr_9 ? log_reg_19 : _GEN_2275; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2277 = 6'h14 == archit_ptr_9 ? log_reg_20 : _GEN_2276; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2278 = 6'h15 == archit_ptr_9 ? log_reg_21 : _GEN_2277; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2279 = 6'h16 == archit_ptr_9 ? log_reg_22 : _GEN_2278; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2280 = 6'h17 == archit_ptr_9 ? log_reg_23 : _GEN_2279; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2281 = 6'h18 == archit_ptr_9 ? log_reg_24 : _GEN_2280; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2282 = 6'h19 == archit_ptr_9 ? log_reg_25 : _GEN_2281; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2283 = 6'h1a == archit_ptr_9 ? log_reg_26 : _GEN_2282; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2284 = 6'h1b == archit_ptr_9 ? log_reg_27 : _GEN_2283; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2285 = 6'h1c == archit_ptr_9 ? log_reg_28 : _GEN_2284; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2286 = 6'h1d == archit_ptr_9 ? log_reg_29 : _GEN_2285; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2287 = 6'h1e == archit_ptr_9 ? log_reg_30 : _GEN_2286; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2288 = 6'h1f == archit_ptr_9 ? log_reg_31 : _GEN_2287; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2289 = 6'h20 == archit_ptr_9 ? log_reg_32 : _GEN_2288; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2290 = 6'h21 == archit_ptr_9 ? 2'h3 : _GEN_2289; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2292 = 6'h1 == archit_ptr_10 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2293 = 6'h2 == archit_ptr_10 ? log_reg_2 : _GEN_2292; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2294 = 6'h3 == archit_ptr_10 ? log_reg_3 : _GEN_2293; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2295 = 6'h4 == archit_ptr_10 ? log_reg_4 : _GEN_2294; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2296 = 6'h5 == archit_ptr_10 ? log_reg_5 : _GEN_2295; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2297 = 6'h6 == archit_ptr_10 ? log_reg_6 : _GEN_2296; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2298 = 6'h7 == archit_ptr_10 ? log_reg_7 : _GEN_2297; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2299 = 6'h8 == archit_ptr_10 ? log_reg_8 : _GEN_2298; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2300 = 6'h9 == archit_ptr_10 ? log_reg_9 : _GEN_2299; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2301 = 6'ha == archit_ptr_10 ? log_reg_10 : _GEN_2300; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2302 = 6'hb == archit_ptr_10 ? log_reg_11 : _GEN_2301; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2303 = 6'hc == archit_ptr_10 ? log_reg_12 : _GEN_2302; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2304 = 6'hd == archit_ptr_10 ? log_reg_13 : _GEN_2303; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2305 = 6'he == archit_ptr_10 ? log_reg_14 : _GEN_2304; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2306 = 6'hf == archit_ptr_10 ? log_reg_15 : _GEN_2305; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2307 = 6'h10 == archit_ptr_10 ? log_reg_16 : _GEN_2306; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2308 = 6'h11 == archit_ptr_10 ? log_reg_17 : _GEN_2307; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2309 = 6'h12 == archit_ptr_10 ? log_reg_18 : _GEN_2308; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2310 = 6'h13 == archit_ptr_10 ? log_reg_19 : _GEN_2309; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2311 = 6'h14 == archit_ptr_10 ? log_reg_20 : _GEN_2310; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2312 = 6'h15 == archit_ptr_10 ? log_reg_21 : _GEN_2311; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2313 = 6'h16 == archit_ptr_10 ? log_reg_22 : _GEN_2312; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2314 = 6'h17 == archit_ptr_10 ? log_reg_23 : _GEN_2313; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2315 = 6'h18 == archit_ptr_10 ? log_reg_24 : _GEN_2314; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2316 = 6'h19 == archit_ptr_10 ? log_reg_25 : _GEN_2315; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2317 = 6'h1a == archit_ptr_10 ? log_reg_26 : _GEN_2316; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2318 = 6'h1b == archit_ptr_10 ? log_reg_27 : _GEN_2317; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2319 = 6'h1c == archit_ptr_10 ? log_reg_28 : _GEN_2318; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2320 = 6'h1d == archit_ptr_10 ? log_reg_29 : _GEN_2319; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2321 = 6'h1e == archit_ptr_10 ? log_reg_30 : _GEN_2320; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2322 = 6'h1f == archit_ptr_10 ? log_reg_31 : _GEN_2321; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2323 = 6'h20 == archit_ptr_10 ? log_reg_32 : _GEN_2322; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2324 = 6'h21 == archit_ptr_10 ? 2'h3 : _GEN_2323; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2326 = 6'h1 == archit_ptr_11 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2327 = 6'h2 == archit_ptr_11 ? log_reg_2 : _GEN_2326; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2328 = 6'h3 == archit_ptr_11 ? log_reg_3 : _GEN_2327; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2329 = 6'h4 == archit_ptr_11 ? log_reg_4 : _GEN_2328; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2330 = 6'h5 == archit_ptr_11 ? log_reg_5 : _GEN_2329; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2331 = 6'h6 == archit_ptr_11 ? log_reg_6 : _GEN_2330; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2332 = 6'h7 == archit_ptr_11 ? log_reg_7 : _GEN_2331; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2333 = 6'h8 == archit_ptr_11 ? log_reg_8 : _GEN_2332; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2334 = 6'h9 == archit_ptr_11 ? log_reg_9 : _GEN_2333; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2335 = 6'ha == archit_ptr_11 ? log_reg_10 : _GEN_2334; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2336 = 6'hb == archit_ptr_11 ? log_reg_11 : _GEN_2335; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2337 = 6'hc == archit_ptr_11 ? log_reg_12 : _GEN_2336; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2338 = 6'hd == archit_ptr_11 ? log_reg_13 : _GEN_2337; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2339 = 6'he == archit_ptr_11 ? log_reg_14 : _GEN_2338; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2340 = 6'hf == archit_ptr_11 ? log_reg_15 : _GEN_2339; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2341 = 6'h10 == archit_ptr_11 ? log_reg_16 : _GEN_2340; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2342 = 6'h11 == archit_ptr_11 ? log_reg_17 : _GEN_2341; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2343 = 6'h12 == archit_ptr_11 ? log_reg_18 : _GEN_2342; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2344 = 6'h13 == archit_ptr_11 ? log_reg_19 : _GEN_2343; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2345 = 6'h14 == archit_ptr_11 ? log_reg_20 : _GEN_2344; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2346 = 6'h15 == archit_ptr_11 ? log_reg_21 : _GEN_2345; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2347 = 6'h16 == archit_ptr_11 ? log_reg_22 : _GEN_2346; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2348 = 6'h17 == archit_ptr_11 ? log_reg_23 : _GEN_2347; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2349 = 6'h18 == archit_ptr_11 ? log_reg_24 : _GEN_2348; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2350 = 6'h19 == archit_ptr_11 ? log_reg_25 : _GEN_2349; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2351 = 6'h1a == archit_ptr_11 ? log_reg_26 : _GEN_2350; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2352 = 6'h1b == archit_ptr_11 ? log_reg_27 : _GEN_2351; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2353 = 6'h1c == archit_ptr_11 ? log_reg_28 : _GEN_2352; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2354 = 6'h1d == archit_ptr_11 ? log_reg_29 : _GEN_2353; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2355 = 6'h1e == archit_ptr_11 ? log_reg_30 : _GEN_2354; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2356 = 6'h1f == archit_ptr_11 ? log_reg_31 : _GEN_2355; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2357 = 6'h20 == archit_ptr_11 ? log_reg_32 : _GEN_2356; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2358 = 6'h21 == archit_ptr_11 ? 2'h3 : _GEN_2357; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2360 = 6'h1 == archit_ptr_12 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2361 = 6'h2 == archit_ptr_12 ? log_reg_2 : _GEN_2360; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2362 = 6'h3 == archit_ptr_12 ? log_reg_3 : _GEN_2361; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2363 = 6'h4 == archit_ptr_12 ? log_reg_4 : _GEN_2362; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2364 = 6'h5 == archit_ptr_12 ? log_reg_5 : _GEN_2363; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2365 = 6'h6 == archit_ptr_12 ? log_reg_6 : _GEN_2364; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2366 = 6'h7 == archit_ptr_12 ? log_reg_7 : _GEN_2365; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2367 = 6'h8 == archit_ptr_12 ? log_reg_8 : _GEN_2366; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2368 = 6'h9 == archit_ptr_12 ? log_reg_9 : _GEN_2367; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2369 = 6'ha == archit_ptr_12 ? log_reg_10 : _GEN_2368; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2370 = 6'hb == archit_ptr_12 ? log_reg_11 : _GEN_2369; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2371 = 6'hc == archit_ptr_12 ? log_reg_12 : _GEN_2370; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2372 = 6'hd == archit_ptr_12 ? log_reg_13 : _GEN_2371; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2373 = 6'he == archit_ptr_12 ? log_reg_14 : _GEN_2372; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2374 = 6'hf == archit_ptr_12 ? log_reg_15 : _GEN_2373; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2375 = 6'h10 == archit_ptr_12 ? log_reg_16 : _GEN_2374; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2376 = 6'h11 == archit_ptr_12 ? log_reg_17 : _GEN_2375; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2377 = 6'h12 == archit_ptr_12 ? log_reg_18 : _GEN_2376; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2378 = 6'h13 == archit_ptr_12 ? log_reg_19 : _GEN_2377; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2379 = 6'h14 == archit_ptr_12 ? log_reg_20 : _GEN_2378; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2380 = 6'h15 == archit_ptr_12 ? log_reg_21 : _GEN_2379; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2381 = 6'h16 == archit_ptr_12 ? log_reg_22 : _GEN_2380; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2382 = 6'h17 == archit_ptr_12 ? log_reg_23 : _GEN_2381; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2383 = 6'h18 == archit_ptr_12 ? log_reg_24 : _GEN_2382; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2384 = 6'h19 == archit_ptr_12 ? log_reg_25 : _GEN_2383; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2385 = 6'h1a == archit_ptr_12 ? log_reg_26 : _GEN_2384; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2386 = 6'h1b == archit_ptr_12 ? log_reg_27 : _GEN_2385; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2387 = 6'h1c == archit_ptr_12 ? log_reg_28 : _GEN_2386; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2388 = 6'h1d == archit_ptr_12 ? log_reg_29 : _GEN_2387; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2389 = 6'h1e == archit_ptr_12 ? log_reg_30 : _GEN_2388; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2390 = 6'h1f == archit_ptr_12 ? log_reg_31 : _GEN_2389; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2391 = 6'h20 == archit_ptr_12 ? log_reg_32 : _GEN_2390; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2392 = 6'h21 == archit_ptr_12 ? 2'h3 : _GEN_2391; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2394 = 6'h1 == archit_ptr_13 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2395 = 6'h2 == archit_ptr_13 ? log_reg_2 : _GEN_2394; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2396 = 6'h3 == archit_ptr_13 ? log_reg_3 : _GEN_2395; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2397 = 6'h4 == archit_ptr_13 ? log_reg_4 : _GEN_2396; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2398 = 6'h5 == archit_ptr_13 ? log_reg_5 : _GEN_2397; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2399 = 6'h6 == archit_ptr_13 ? log_reg_6 : _GEN_2398; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2400 = 6'h7 == archit_ptr_13 ? log_reg_7 : _GEN_2399; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2401 = 6'h8 == archit_ptr_13 ? log_reg_8 : _GEN_2400; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2402 = 6'h9 == archit_ptr_13 ? log_reg_9 : _GEN_2401; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2403 = 6'ha == archit_ptr_13 ? log_reg_10 : _GEN_2402; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2404 = 6'hb == archit_ptr_13 ? log_reg_11 : _GEN_2403; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2405 = 6'hc == archit_ptr_13 ? log_reg_12 : _GEN_2404; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2406 = 6'hd == archit_ptr_13 ? log_reg_13 : _GEN_2405; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2407 = 6'he == archit_ptr_13 ? log_reg_14 : _GEN_2406; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2408 = 6'hf == archit_ptr_13 ? log_reg_15 : _GEN_2407; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2409 = 6'h10 == archit_ptr_13 ? log_reg_16 : _GEN_2408; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2410 = 6'h11 == archit_ptr_13 ? log_reg_17 : _GEN_2409; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2411 = 6'h12 == archit_ptr_13 ? log_reg_18 : _GEN_2410; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2412 = 6'h13 == archit_ptr_13 ? log_reg_19 : _GEN_2411; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2413 = 6'h14 == archit_ptr_13 ? log_reg_20 : _GEN_2412; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2414 = 6'h15 == archit_ptr_13 ? log_reg_21 : _GEN_2413; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2415 = 6'h16 == archit_ptr_13 ? log_reg_22 : _GEN_2414; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2416 = 6'h17 == archit_ptr_13 ? log_reg_23 : _GEN_2415; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2417 = 6'h18 == archit_ptr_13 ? log_reg_24 : _GEN_2416; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2418 = 6'h19 == archit_ptr_13 ? log_reg_25 : _GEN_2417; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2419 = 6'h1a == archit_ptr_13 ? log_reg_26 : _GEN_2418; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2420 = 6'h1b == archit_ptr_13 ? log_reg_27 : _GEN_2419; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2421 = 6'h1c == archit_ptr_13 ? log_reg_28 : _GEN_2420; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2422 = 6'h1d == archit_ptr_13 ? log_reg_29 : _GEN_2421; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2423 = 6'h1e == archit_ptr_13 ? log_reg_30 : _GEN_2422; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2424 = 6'h1f == archit_ptr_13 ? log_reg_31 : _GEN_2423; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2425 = 6'h20 == archit_ptr_13 ? log_reg_32 : _GEN_2424; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2426 = 6'h21 == archit_ptr_13 ? 2'h3 : _GEN_2425; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2428 = 6'h1 == archit_ptr_14 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2429 = 6'h2 == archit_ptr_14 ? log_reg_2 : _GEN_2428; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2430 = 6'h3 == archit_ptr_14 ? log_reg_3 : _GEN_2429; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2431 = 6'h4 == archit_ptr_14 ? log_reg_4 : _GEN_2430; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2432 = 6'h5 == archit_ptr_14 ? log_reg_5 : _GEN_2431; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2433 = 6'h6 == archit_ptr_14 ? log_reg_6 : _GEN_2432; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2434 = 6'h7 == archit_ptr_14 ? log_reg_7 : _GEN_2433; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2435 = 6'h8 == archit_ptr_14 ? log_reg_8 : _GEN_2434; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2436 = 6'h9 == archit_ptr_14 ? log_reg_9 : _GEN_2435; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2437 = 6'ha == archit_ptr_14 ? log_reg_10 : _GEN_2436; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2438 = 6'hb == archit_ptr_14 ? log_reg_11 : _GEN_2437; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2439 = 6'hc == archit_ptr_14 ? log_reg_12 : _GEN_2438; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2440 = 6'hd == archit_ptr_14 ? log_reg_13 : _GEN_2439; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2441 = 6'he == archit_ptr_14 ? log_reg_14 : _GEN_2440; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2442 = 6'hf == archit_ptr_14 ? log_reg_15 : _GEN_2441; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2443 = 6'h10 == archit_ptr_14 ? log_reg_16 : _GEN_2442; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2444 = 6'h11 == archit_ptr_14 ? log_reg_17 : _GEN_2443; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2445 = 6'h12 == archit_ptr_14 ? log_reg_18 : _GEN_2444; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2446 = 6'h13 == archit_ptr_14 ? log_reg_19 : _GEN_2445; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2447 = 6'h14 == archit_ptr_14 ? log_reg_20 : _GEN_2446; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2448 = 6'h15 == archit_ptr_14 ? log_reg_21 : _GEN_2447; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2449 = 6'h16 == archit_ptr_14 ? log_reg_22 : _GEN_2448; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2450 = 6'h17 == archit_ptr_14 ? log_reg_23 : _GEN_2449; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2451 = 6'h18 == archit_ptr_14 ? log_reg_24 : _GEN_2450; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2452 = 6'h19 == archit_ptr_14 ? log_reg_25 : _GEN_2451; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2453 = 6'h1a == archit_ptr_14 ? log_reg_26 : _GEN_2452; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2454 = 6'h1b == archit_ptr_14 ? log_reg_27 : _GEN_2453; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2455 = 6'h1c == archit_ptr_14 ? log_reg_28 : _GEN_2454; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2456 = 6'h1d == archit_ptr_14 ? log_reg_29 : _GEN_2455; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2457 = 6'h1e == archit_ptr_14 ? log_reg_30 : _GEN_2456; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2458 = 6'h1f == archit_ptr_14 ? log_reg_31 : _GEN_2457; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2459 = 6'h20 == archit_ptr_14 ? log_reg_32 : _GEN_2458; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2460 = 6'h21 == archit_ptr_14 ? 2'h3 : _GEN_2459; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2462 = 6'h1 == archit_ptr_15 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2463 = 6'h2 == archit_ptr_15 ? log_reg_2 : _GEN_2462; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2464 = 6'h3 == archit_ptr_15 ? log_reg_3 : _GEN_2463; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2465 = 6'h4 == archit_ptr_15 ? log_reg_4 : _GEN_2464; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2466 = 6'h5 == archit_ptr_15 ? log_reg_5 : _GEN_2465; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2467 = 6'h6 == archit_ptr_15 ? log_reg_6 : _GEN_2466; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2468 = 6'h7 == archit_ptr_15 ? log_reg_7 : _GEN_2467; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2469 = 6'h8 == archit_ptr_15 ? log_reg_8 : _GEN_2468; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2470 = 6'h9 == archit_ptr_15 ? log_reg_9 : _GEN_2469; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2471 = 6'ha == archit_ptr_15 ? log_reg_10 : _GEN_2470; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2472 = 6'hb == archit_ptr_15 ? log_reg_11 : _GEN_2471; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2473 = 6'hc == archit_ptr_15 ? log_reg_12 : _GEN_2472; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2474 = 6'hd == archit_ptr_15 ? log_reg_13 : _GEN_2473; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2475 = 6'he == archit_ptr_15 ? log_reg_14 : _GEN_2474; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2476 = 6'hf == archit_ptr_15 ? log_reg_15 : _GEN_2475; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2477 = 6'h10 == archit_ptr_15 ? log_reg_16 : _GEN_2476; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2478 = 6'h11 == archit_ptr_15 ? log_reg_17 : _GEN_2477; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2479 = 6'h12 == archit_ptr_15 ? log_reg_18 : _GEN_2478; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2480 = 6'h13 == archit_ptr_15 ? log_reg_19 : _GEN_2479; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2481 = 6'h14 == archit_ptr_15 ? log_reg_20 : _GEN_2480; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2482 = 6'h15 == archit_ptr_15 ? log_reg_21 : _GEN_2481; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2483 = 6'h16 == archit_ptr_15 ? log_reg_22 : _GEN_2482; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2484 = 6'h17 == archit_ptr_15 ? log_reg_23 : _GEN_2483; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2485 = 6'h18 == archit_ptr_15 ? log_reg_24 : _GEN_2484; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2486 = 6'h19 == archit_ptr_15 ? log_reg_25 : _GEN_2485; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2487 = 6'h1a == archit_ptr_15 ? log_reg_26 : _GEN_2486; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2488 = 6'h1b == archit_ptr_15 ? log_reg_27 : _GEN_2487; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2489 = 6'h1c == archit_ptr_15 ? log_reg_28 : _GEN_2488; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2490 = 6'h1d == archit_ptr_15 ? log_reg_29 : _GEN_2489; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2491 = 6'h1e == archit_ptr_15 ? log_reg_30 : _GEN_2490; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2492 = 6'h1f == archit_ptr_15 ? log_reg_31 : _GEN_2491; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2493 = 6'h20 == archit_ptr_15 ? log_reg_32 : _GEN_2492; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2494 = 6'h21 == archit_ptr_15 ? 2'h3 : _GEN_2493; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2496 = 6'h1 == archit_ptr_16 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2497 = 6'h2 == archit_ptr_16 ? log_reg_2 : _GEN_2496; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2498 = 6'h3 == archit_ptr_16 ? log_reg_3 : _GEN_2497; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2499 = 6'h4 == archit_ptr_16 ? log_reg_4 : _GEN_2498; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2500 = 6'h5 == archit_ptr_16 ? log_reg_5 : _GEN_2499; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2501 = 6'h6 == archit_ptr_16 ? log_reg_6 : _GEN_2500; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2502 = 6'h7 == archit_ptr_16 ? log_reg_7 : _GEN_2501; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2503 = 6'h8 == archit_ptr_16 ? log_reg_8 : _GEN_2502; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2504 = 6'h9 == archit_ptr_16 ? log_reg_9 : _GEN_2503; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2505 = 6'ha == archit_ptr_16 ? log_reg_10 : _GEN_2504; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2506 = 6'hb == archit_ptr_16 ? log_reg_11 : _GEN_2505; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2507 = 6'hc == archit_ptr_16 ? log_reg_12 : _GEN_2506; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2508 = 6'hd == archit_ptr_16 ? log_reg_13 : _GEN_2507; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2509 = 6'he == archit_ptr_16 ? log_reg_14 : _GEN_2508; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2510 = 6'hf == archit_ptr_16 ? log_reg_15 : _GEN_2509; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2511 = 6'h10 == archit_ptr_16 ? log_reg_16 : _GEN_2510; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2512 = 6'h11 == archit_ptr_16 ? log_reg_17 : _GEN_2511; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2513 = 6'h12 == archit_ptr_16 ? log_reg_18 : _GEN_2512; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2514 = 6'h13 == archit_ptr_16 ? log_reg_19 : _GEN_2513; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2515 = 6'h14 == archit_ptr_16 ? log_reg_20 : _GEN_2514; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2516 = 6'h15 == archit_ptr_16 ? log_reg_21 : _GEN_2515; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2517 = 6'h16 == archit_ptr_16 ? log_reg_22 : _GEN_2516; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2518 = 6'h17 == archit_ptr_16 ? log_reg_23 : _GEN_2517; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2519 = 6'h18 == archit_ptr_16 ? log_reg_24 : _GEN_2518; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2520 = 6'h19 == archit_ptr_16 ? log_reg_25 : _GEN_2519; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2521 = 6'h1a == archit_ptr_16 ? log_reg_26 : _GEN_2520; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2522 = 6'h1b == archit_ptr_16 ? log_reg_27 : _GEN_2521; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2523 = 6'h1c == archit_ptr_16 ? log_reg_28 : _GEN_2522; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2524 = 6'h1d == archit_ptr_16 ? log_reg_29 : _GEN_2523; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2525 = 6'h1e == archit_ptr_16 ? log_reg_30 : _GEN_2524; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2526 = 6'h1f == archit_ptr_16 ? log_reg_31 : _GEN_2525; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2527 = 6'h20 == archit_ptr_16 ? log_reg_32 : _GEN_2526; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2528 = 6'h21 == archit_ptr_16 ? 2'h3 : _GEN_2527; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2530 = 6'h1 == archit_ptr_17 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2531 = 6'h2 == archit_ptr_17 ? log_reg_2 : _GEN_2530; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2532 = 6'h3 == archit_ptr_17 ? log_reg_3 : _GEN_2531; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2533 = 6'h4 == archit_ptr_17 ? log_reg_4 : _GEN_2532; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2534 = 6'h5 == archit_ptr_17 ? log_reg_5 : _GEN_2533; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2535 = 6'h6 == archit_ptr_17 ? log_reg_6 : _GEN_2534; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2536 = 6'h7 == archit_ptr_17 ? log_reg_7 : _GEN_2535; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2537 = 6'h8 == archit_ptr_17 ? log_reg_8 : _GEN_2536; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2538 = 6'h9 == archit_ptr_17 ? log_reg_9 : _GEN_2537; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2539 = 6'ha == archit_ptr_17 ? log_reg_10 : _GEN_2538; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2540 = 6'hb == archit_ptr_17 ? log_reg_11 : _GEN_2539; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2541 = 6'hc == archit_ptr_17 ? log_reg_12 : _GEN_2540; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2542 = 6'hd == archit_ptr_17 ? log_reg_13 : _GEN_2541; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2543 = 6'he == archit_ptr_17 ? log_reg_14 : _GEN_2542; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2544 = 6'hf == archit_ptr_17 ? log_reg_15 : _GEN_2543; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2545 = 6'h10 == archit_ptr_17 ? log_reg_16 : _GEN_2544; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2546 = 6'h11 == archit_ptr_17 ? log_reg_17 : _GEN_2545; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2547 = 6'h12 == archit_ptr_17 ? log_reg_18 : _GEN_2546; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2548 = 6'h13 == archit_ptr_17 ? log_reg_19 : _GEN_2547; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2549 = 6'h14 == archit_ptr_17 ? log_reg_20 : _GEN_2548; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2550 = 6'h15 == archit_ptr_17 ? log_reg_21 : _GEN_2549; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2551 = 6'h16 == archit_ptr_17 ? log_reg_22 : _GEN_2550; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2552 = 6'h17 == archit_ptr_17 ? log_reg_23 : _GEN_2551; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2553 = 6'h18 == archit_ptr_17 ? log_reg_24 : _GEN_2552; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2554 = 6'h19 == archit_ptr_17 ? log_reg_25 : _GEN_2553; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2555 = 6'h1a == archit_ptr_17 ? log_reg_26 : _GEN_2554; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2556 = 6'h1b == archit_ptr_17 ? log_reg_27 : _GEN_2555; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2557 = 6'h1c == archit_ptr_17 ? log_reg_28 : _GEN_2556; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2558 = 6'h1d == archit_ptr_17 ? log_reg_29 : _GEN_2557; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2559 = 6'h1e == archit_ptr_17 ? log_reg_30 : _GEN_2558; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2560 = 6'h1f == archit_ptr_17 ? log_reg_31 : _GEN_2559; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2561 = 6'h20 == archit_ptr_17 ? log_reg_32 : _GEN_2560; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2562 = 6'h21 == archit_ptr_17 ? 2'h3 : _GEN_2561; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2564 = 6'h1 == archit_ptr_18 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2565 = 6'h2 == archit_ptr_18 ? log_reg_2 : _GEN_2564; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2566 = 6'h3 == archit_ptr_18 ? log_reg_3 : _GEN_2565; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2567 = 6'h4 == archit_ptr_18 ? log_reg_4 : _GEN_2566; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2568 = 6'h5 == archit_ptr_18 ? log_reg_5 : _GEN_2567; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2569 = 6'h6 == archit_ptr_18 ? log_reg_6 : _GEN_2568; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2570 = 6'h7 == archit_ptr_18 ? log_reg_7 : _GEN_2569; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2571 = 6'h8 == archit_ptr_18 ? log_reg_8 : _GEN_2570; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2572 = 6'h9 == archit_ptr_18 ? log_reg_9 : _GEN_2571; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2573 = 6'ha == archit_ptr_18 ? log_reg_10 : _GEN_2572; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2574 = 6'hb == archit_ptr_18 ? log_reg_11 : _GEN_2573; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2575 = 6'hc == archit_ptr_18 ? log_reg_12 : _GEN_2574; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2576 = 6'hd == archit_ptr_18 ? log_reg_13 : _GEN_2575; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2577 = 6'he == archit_ptr_18 ? log_reg_14 : _GEN_2576; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2578 = 6'hf == archit_ptr_18 ? log_reg_15 : _GEN_2577; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2579 = 6'h10 == archit_ptr_18 ? log_reg_16 : _GEN_2578; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2580 = 6'h11 == archit_ptr_18 ? log_reg_17 : _GEN_2579; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2581 = 6'h12 == archit_ptr_18 ? log_reg_18 : _GEN_2580; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2582 = 6'h13 == archit_ptr_18 ? log_reg_19 : _GEN_2581; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2583 = 6'h14 == archit_ptr_18 ? log_reg_20 : _GEN_2582; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2584 = 6'h15 == archit_ptr_18 ? log_reg_21 : _GEN_2583; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2585 = 6'h16 == archit_ptr_18 ? log_reg_22 : _GEN_2584; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2586 = 6'h17 == archit_ptr_18 ? log_reg_23 : _GEN_2585; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2587 = 6'h18 == archit_ptr_18 ? log_reg_24 : _GEN_2586; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2588 = 6'h19 == archit_ptr_18 ? log_reg_25 : _GEN_2587; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2589 = 6'h1a == archit_ptr_18 ? log_reg_26 : _GEN_2588; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2590 = 6'h1b == archit_ptr_18 ? log_reg_27 : _GEN_2589; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2591 = 6'h1c == archit_ptr_18 ? log_reg_28 : _GEN_2590; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2592 = 6'h1d == archit_ptr_18 ? log_reg_29 : _GEN_2591; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2593 = 6'h1e == archit_ptr_18 ? log_reg_30 : _GEN_2592; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2594 = 6'h1f == archit_ptr_18 ? log_reg_31 : _GEN_2593; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2595 = 6'h20 == archit_ptr_18 ? log_reg_32 : _GEN_2594; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2596 = 6'h21 == archit_ptr_18 ? 2'h3 : _GEN_2595; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2598 = 6'h1 == archit_ptr_19 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2599 = 6'h2 == archit_ptr_19 ? log_reg_2 : _GEN_2598; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2600 = 6'h3 == archit_ptr_19 ? log_reg_3 : _GEN_2599; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2601 = 6'h4 == archit_ptr_19 ? log_reg_4 : _GEN_2600; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2602 = 6'h5 == archit_ptr_19 ? log_reg_5 : _GEN_2601; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2603 = 6'h6 == archit_ptr_19 ? log_reg_6 : _GEN_2602; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2604 = 6'h7 == archit_ptr_19 ? log_reg_7 : _GEN_2603; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2605 = 6'h8 == archit_ptr_19 ? log_reg_8 : _GEN_2604; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2606 = 6'h9 == archit_ptr_19 ? log_reg_9 : _GEN_2605; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2607 = 6'ha == archit_ptr_19 ? log_reg_10 : _GEN_2606; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2608 = 6'hb == archit_ptr_19 ? log_reg_11 : _GEN_2607; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2609 = 6'hc == archit_ptr_19 ? log_reg_12 : _GEN_2608; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2610 = 6'hd == archit_ptr_19 ? log_reg_13 : _GEN_2609; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2611 = 6'he == archit_ptr_19 ? log_reg_14 : _GEN_2610; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2612 = 6'hf == archit_ptr_19 ? log_reg_15 : _GEN_2611; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2613 = 6'h10 == archit_ptr_19 ? log_reg_16 : _GEN_2612; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2614 = 6'h11 == archit_ptr_19 ? log_reg_17 : _GEN_2613; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2615 = 6'h12 == archit_ptr_19 ? log_reg_18 : _GEN_2614; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2616 = 6'h13 == archit_ptr_19 ? log_reg_19 : _GEN_2615; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2617 = 6'h14 == archit_ptr_19 ? log_reg_20 : _GEN_2616; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2618 = 6'h15 == archit_ptr_19 ? log_reg_21 : _GEN_2617; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2619 = 6'h16 == archit_ptr_19 ? log_reg_22 : _GEN_2618; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2620 = 6'h17 == archit_ptr_19 ? log_reg_23 : _GEN_2619; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2621 = 6'h18 == archit_ptr_19 ? log_reg_24 : _GEN_2620; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2622 = 6'h19 == archit_ptr_19 ? log_reg_25 : _GEN_2621; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2623 = 6'h1a == archit_ptr_19 ? log_reg_26 : _GEN_2622; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2624 = 6'h1b == archit_ptr_19 ? log_reg_27 : _GEN_2623; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2625 = 6'h1c == archit_ptr_19 ? log_reg_28 : _GEN_2624; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2626 = 6'h1d == archit_ptr_19 ? log_reg_29 : _GEN_2625; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2627 = 6'h1e == archit_ptr_19 ? log_reg_30 : _GEN_2626; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2628 = 6'h1f == archit_ptr_19 ? log_reg_31 : _GEN_2627; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2629 = 6'h20 == archit_ptr_19 ? log_reg_32 : _GEN_2628; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2630 = 6'h21 == archit_ptr_19 ? 2'h3 : _GEN_2629; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2632 = 6'h1 == archit_ptr_20 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2633 = 6'h2 == archit_ptr_20 ? log_reg_2 : _GEN_2632; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2634 = 6'h3 == archit_ptr_20 ? log_reg_3 : _GEN_2633; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2635 = 6'h4 == archit_ptr_20 ? log_reg_4 : _GEN_2634; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2636 = 6'h5 == archit_ptr_20 ? log_reg_5 : _GEN_2635; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2637 = 6'h6 == archit_ptr_20 ? log_reg_6 : _GEN_2636; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2638 = 6'h7 == archit_ptr_20 ? log_reg_7 : _GEN_2637; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2639 = 6'h8 == archit_ptr_20 ? log_reg_8 : _GEN_2638; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2640 = 6'h9 == archit_ptr_20 ? log_reg_9 : _GEN_2639; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2641 = 6'ha == archit_ptr_20 ? log_reg_10 : _GEN_2640; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2642 = 6'hb == archit_ptr_20 ? log_reg_11 : _GEN_2641; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2643 = 6'hc == archit_ptr_20 ? log_reg_12 : _GEN_2642; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2644 = 6'hd == archit_ptr_20 ? log_reg_13 : _GEN_2643; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2645 = 6'he == archit_ptr_20 ? log_reg_14 : _GEN_2644; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2646 = 6'hf == archit_ptr_20 ? log_reg_15 : _GEN_2645; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2647 = 6'h10 == archit_ptr_20 ? log_reg_16 : _GEN_2646; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2648 = 6'h11 == archit_ptr_20 ? log_reg_17 : _GEN_2647; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2649 = 6'h12 == archit_ptr_20 ? log_reg_18 : _GEN_2648; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2650 = 6'h13 == archit_ptr_20 ? log_reg_19 : _GEN_2649; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2651 = 6'h14 == archit_ptr_20 ? log_reg_20 : _GEN_2650; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2652 = 6'h15 == archit_ptr_20 ? log_reg_21 : _GEN_2651; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2653 = 6'h16 == archit_ptr_20 ? log_reg_22 : _GEN_2652; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2654 = 6'h17 == archit_ptr_20 ? log_reg_23 : _GEN_2653; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2655 = 6'h18 == archit_ptr_20 ? log_reg_24 : _GEN_2654; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2656 = 6'h19 == archit_ptr_20 ? log_reg_25 : _GEN_2655; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2657 = 6'h1a == archit_ptr_20 ? log_reg_26 : _GEN_2656; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2658 = 6'h1b == archit_ptr_20 ? log_reg_27 : _GEN_2657; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2659 = 6'h1c == archit_ptr_20 ? log_reg_28 : _GEN_2658; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2660 = 6'h1d == archit_ptr_20 ? log_reg_29 : _GEN_2659; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2661 = 6'h1e == archit_ptr_20 ? log_reg_30 : _GEN_2660; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2662 = 6'h1f == archit_ptr_20 ? log_reg_31 : _GEN_2661; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2663 = 6'h20 == archit_ptr_20 ? log_reg_32 : _GEN_2662; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2664 = 6'h21 == archit_ptr_20 ? 2'h3 : _GEN_2663; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2666 = 6'h1 == archit_ptr_21 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2667 = 6'h2 == archit_ptr_21 ? log_reg_2 : _GEN_2666; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2668 = 6'h3 == archit_ptr_21 ? log_reg_3 : _GEN_2667; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2669 = 6'h4 == archit_ptr_21 ? log_reg_4 : _GEN_2668; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2670 = 6'h5 == archit_ptr_21 ? log_reg_5 : _GEN_2669; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2671 = 6'h6 == archit_ptr_21 ? log_reg_6 : _GEN_2670; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2672 = 6'h7 == archit_ptr_21 ? log_reg_7 : _GEN_2671; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2673 = 6'h8 == archit_ptr_21 ? log_reg_8 : _GEN_2672; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2674 = 6'h9 == archit_ptr_21 ? log_reg_9 : _GEN_2673; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2675 = 6'ha == archit_ptr_21 ? log_reg_10 : _GEN_2674; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2676 = 6'hb == archit_ptr_21 ? log_reg_11 : _GEN_2675; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2677 = 6'hc == archit_ptr_21 ? log_reg_12 : _GEN_2676; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2678 = 6'hd == archit_ptr_21 ? log_reg_13 : _GEN_2677; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2679 = 6'he == archit_ptr_21 ? log_reg_14 : _GEN_2678; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2680 = 6'hf == archit_ptr_21 ? log_reg_15 : _GEN_2679; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2681 = 6'h10 == archit_ptr_21 ? log_reg_16 : _GEN_2680; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2682 = 6'h11 == archit_ptr_21 ? log_reg_17 : _GEN_2681; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2683 = 6'h12 == archit_ptr_21 ? log_reg_18 : _GEN_2682; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2684 = 6'h13 == archit_ptr_21 ? log_reg_19 : _GEN_2683; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2685 = 6'h14 == archit_ptr_21 ? log_reg_20 : _GEN_2684; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2686 = 6'h15 == archit_ptr_21 ? log_reg_21 : _GEN_2685; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2687 = 6'h16 == archit_ptr_21 ? log_reg_22 : _GEN_2686; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2688 = 6'h17 == archit_ptr_21 ? log_reg_23 : _GEN_2687; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2689 = 6'h18 == archit_ptr_21 ? log_reg_24 : _GEN_2688; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2690 = 6'h19 == archit_ptr_21 ? log_reg_25 : _GEN_2689; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2691 = 6'h1a == archit_ptr_21 ? log_reg_26 : _GEN_2690; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2692 = 6'h1b == archit_ptr_21 ? log_reg_27 : _GEN_2691; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2693 = 6'h1c == archit_ptr_21 ? log_reg_28 : _GEN_2692; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2694 = 6'h1d == archit_ptr_21 ? log_reg_29 : _GEN_2693; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2695 = 6'h1e == archit_ptr_21 ? log_reg_30 : _GEN_2694; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2696 = 6'h1f == archit_ptr_21 ? log_reg_31 : _GEN_2695; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2697 = 6'h20 == archit_ptr_21 ? log_reg_32 : _GEN_2696; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2698 = 6'h21 == archit_ptr_21 ? 2'h3 : _GEN_2697; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2700 = 6'h1 == archit_ptr_22 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2701 = 6'h2 == archit_ptr_22 ? log_reg_2 : _GEN_2700; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2702 = 6'h3 == archit_ptr_22 ? log_reg_3 : _GEN_2701; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2703 = 6'h4 == archit_ptr_22 ? log_reg_4 : _GEN_2702; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2704 = 6'h5 == archit_ptr_22 ? log_reg_5 : _GEN_2703; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2705 = 6'h6 == archit_ptr_22 ? log_reg_6 : _GEN_2704; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2706 = 6'h7 == archit_ptr_22 ? log_reg_7 : _GEN_2705; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2707 = 6'h8 == archit_ptr_22 ? log_reg_8 : _GEN_2706; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2708 = 6'h9 == archit_ptr_22 ? log_reg_9 : _GEN_2707; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2709 = 6'ha == archit_ptr_22 ? log_reg_10 : _GEN_2708; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2710 = 6'hb == archit_ptr_22 ? log_reg_11 : _GEN_2709; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2711 = 6'hc == archit_ptr_22 ? log_reg_12 : _GEN_2710; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2712 = 6'hd == archit_ptr_22 ? log_reg_13 : _GEN_2711; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2713 = 6'he == archit_ptr_22 ? log_reg_14 : _GEN_2712; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2714 = 6'hf == archit_ptr_22 ? log_reg_15 : _GEN_2713; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2715 = 6'h10 == archit_ptr_22 ? log_reg_16 : _GEN_2714; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2716 = 6'h11 == archit_ptr_22 ? log_reg_17 : _GEN_2715; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2717 = 6'h12 == archit_ptr_22 ? log_reg_18 : _GEN_2716; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2718 = 6'h13 == archit_ptr_22 ? log_reg_19 : _GEN_2717; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2719 = 6'h14 == archit_ptr_22 ? log_reg_20 : _GEN_2718; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2720 = 6'h15 == archit_ptr_22 ? log_reg_21 : _GEN_2719; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2721 = 6'h16 == archit_ptr_22 ? log_reg_22 : _GEN_2720; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2722 = 6'h17 == archit_ptr_22 ? log_reg_23 : _GEN_2721; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2723 = 6'h18 == archit_ptr_22 ? log_reg_24 : _GEN_2722; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2724 = 6'h19 == archit_ptr_22 ? log_reg_25 : _GEN_2723; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2725 = 6'h1a == archit_ptr_22 ? log_reg_26 : _GEN_2724; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2726 = 6'h1b == archit_ptr_22 ? log_reg_27 : _GEN_2725; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2727 = 6'h1c == archit_ptr_22 ? log_reg_28 : _GEN_2726; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2728 = 6'h1d == archit_ptr_22 ? log_reg_29 : _GEN_2727; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2729 = 6'h1e == archit_ptr_22 ? log_reg_30 : _GEN_2728; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2730 = 6'h1f == archit_ptr_22 ? log_reg_31 : _GEN_2729; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2731 = 6'h20 == archit_ptr_22 ? log_reg_32 : _GEN_2730; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2732 = 6'h21 == archit_ptr_22 ? 2'h3 : _GEN_2731; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2734 = 6'h1 == archit_ptr_23 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2735 = 6'h2 == archit_ptr_23 ? log_reg_2 : _GEN_2734; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2736 = 6'h3 == archit_ptr_23 ? log_reg_3 : _GEN_2735; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2737 = 6'h4 == archit_ptr_23 ? log_reg_4 : _GEN_2736; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2738 = 6'h5 == archit_ptr_23 ? log_reg_5 : _GEN_2737; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2739 = 6'h6 == archit_ptr_23 ? log_reg_6 : _GEN_2738; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2740 = 6'h7 == archit_ptr_23 ? log_reg_7 : _GEN_2739; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2741 = 6'h8 == archit_ptr_23 ? log_reg_8 : _GEN_2740; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2742 = 6'h9 == archit_ptr_23 ? log_reg_9 : _GEN_2741; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2743 = 6'ha == archit_ptr_23 ? log_reg_10 : _GEN_2742; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2744 = 6'hb == archit_ptr_23 ? log_reg_11 : _GEN_2743; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2745 = 6'hc == archit_ptr_23 ? log_reg_12 : _GEN_2744; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2746 = 6'hd == archit_ptr_23 ? log_reg_13 : _GEN_2745; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2747 = 6'he == archit_ptr_23 ? log_reg_14 : _GEN_2746; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2748 = 6'hf == archit_ptr_23 ? log_reg_15 : _GEN_2747; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2749 = 6'h10 == archit_ptr_23 ? log_reg_16 : _GEN_2748; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2750 = 6'h11 == archit_ptr_23 ? log_reg_17 : _GEN_2749; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2751 = 6'h12 == archit_ptr_23 ? log_reg_18 : _GEN_2750; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2752 = 6'h13 == archit_ptr_23 ? log_reg_19 : _GEN_2751; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2753 = 6'h14 == archit_ptr_23 ? log_reg_20 : _GEN_2752; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2754 = 6'h15 == archit_ptr_23 ? log_reg_21 : _GEN_2753; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2755 = 6'h16 == archit_ptr_23 ? log_reg_22 : _GEN_2754; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2756 = 6'h17 == archit_ptr_23 ? log_reg_23 : _GEN_2755; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2757 = 6'h18 == archit_ptr_23 ? log_reg_24 : _GEN_2756; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2758 = 6'h19 == archit_ptr_23 ? log_reg_25 : _GEN_2757; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2759 = 6'h1a == archit_ptr_23 ? log_reg_26 : _GEN_2758; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2760 = 6'h1b == archit_ptr_23 ? log_reg_27 : _GEN_2759; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2761 = 6'h1c == archit_ptr_23 ? log_reg_28 : _GEN_2760; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2762 = 6'h1d == archit_ptr_23 ? log_reg_29 : _GEN_2761; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2763 = 6'h1e == archit_ptr_23 ? log_reg_30 : _GEN_2762; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2764 = 6'h1f == archit_ptr_23 ? log_reg_31 : _GEN_2763; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2765 = 6'h20 == archit_ptr_23 ? log_reg_32 : _GEN_2764; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2766 = 6'h21 == archit_ptr_23 ? 2'h3 : _GEN_2765; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2768 = 6'h1 == archit_ptr_24 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2769 = 6'h2 == archit_ptr_24 ? log_reg_2 : _GEN_2768; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2770 = 6'h3 == archit_ptr_24 ? log_reg_3 : _GEN_2769; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2771 = 6'h4 == archit_ptr_24 ? log_reg_4 : _GEN_2770; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2772 = 6'h5 == archit_ptr_24 ? log_reg_5 : _GEN_2771; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2773 = 6'h6 == archit_ptr_24 ? log_reg_6 : _GEN_2772; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2774 = 6'h7 == archit_ptr_24 ? log_reg_7 : _GEN_2773; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2775 = 6'h8 == archit_ptr_24 ? log_reg_8 : _GEN_2774; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2776 = 6'h9 == archit_ptr_24 ? log_reg_9 : _GEN_2775; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2777 = 6'ha == archit_ptr_24 ? log_reg_10 : _GEN_2776; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2778 = 6'hb == archit_ptr_24 ? log_reg_11 : _GEN_2777; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2779 = 6'hc == archit_ptr_24 ? log_reg_12 : _GEN_2778; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2780 = 6'hd == archit_ptr_24 ? log_reg_13 : _GEN_2779; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2781 = 6'he == archit_ptr_24 ? log_reg_14 : _GEN_2780; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2782 = 6'hf == archit_ptr_24 ? log_reg_15 : _GEN_2781; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2783 = 6'h10 == archit_ptr_24 ? log_reg_16 : _GEN_2782; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2784 = 6'h11 == archit_ptr_24 ? log_reg_17 : _GEN_2783; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2785 = 6'h12 == archit_ptr_24 ? log_reg_18 : _GEN_2784; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2786 = 6'h13 == archit_ptr_24 ? log_reg_19 : _GEN_2785; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2787 = 6'h14 == archit_ptr_24 ? log_reg_20 : _GEN_2786; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2788 = 6'h15 == archit_ptr_24 ? log_reg_21 : _GEN_2787; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2789 = 6'h16 == archit_ptr_24 ? log_reg_22 : _GEN_2788; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2790 = 6'h17 == archit_ptr_24 ? log_reg_23 : _GEN_2789; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2791 = 6'h18 == archit_ptr_24 ? log_reg_24 : _GEN_2790; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2792 = 6'h19 == archit_ptr_24 ? log_reg_25 : _GEN_2791; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2793 = 6'h1a == archit_ptr_24 ? log_reg_26 : _GEN_2792; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2794 = 6'h1b == archit_ptr_24 ? log_reg_27 : _GEN_2793; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2795 = 6'h1c == archit_ptr_24 ? log_reg_28 : _GEN_2794; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2796 = 6'h1d == archit_ptr_24 ? log_reg_29 : _GEN_2795; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2797 = 6'h1e == archit_ptr_24 ? log_reg_30 : _GEN_2796; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2798 = 6'h1f == archit_ptr_24 ? log_reg_31 : _GEN_2797; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2799 = 6'h20 == archit_ptr_24 ? log_reg_32 : _GEN_2798; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2800 = 6'h21 == archit_ptr_24 ? 2'h3 : _GEN_2799; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2802 = 6'h1 == archit_ptr_25 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2803 = 6'h2 == archit_ptr_25 ? log_reg_2 : _GEN_2802; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2804 = 6'h3 == archit_ptr_25 ? log_reg_3 : _GEN_2803; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2805 = 6'h4 == archit_ptr_25 ? log_reg_4 : _GEN_2804; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2806 = 6'h5 == archit_ptr_25 ? log_reg_5 : _GEN_2805; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2807 = 6'h6 == archit_ptr_25 ? log_reg_6 : _GEN_2806; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2808 = 6'h7 == archit_ptr_25 ? log_reg_7 : _GEN_2807; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2809 = 6'h8 == archit_ptr_25 ? log_reg_8 : _GEN_2808; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2810 = 6'h9 == archit_ptr_25 ? log_reg_9 : _GEN_2809; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2811 = 6'ha == archit_ptr_25 ? log_reg_10 : _GEN_2810; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2812 = 6'hb == archit_ptr_25 ? log_reg_11 : _GEN_2811; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2813 = 6'hc == archit_ptr_25 ? log_reg_12 : _GEN_2812; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2814 = 6'hd == archit_ptr_25 ? log_reg_13 : _GEN_2813; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2815 = 6'he == archit_ptr_25 ? log_reg_14 : _GEN_2814; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2816 = 6'hf == archit_ptr_25 ? log_reg_15 : _GEN_2815; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2817 = 6'h10 == archit_ptr_25 ? log_reg_16 : _GEN_2816; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2818 = 6'h11 == archit_ptr_25 ? log_reg_17 : _GEN_2817; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2819 = 6'h12 == archit_ptr_25 ? log_reg_18 : _GEN_2818; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2820 = 6'h13 == archit_ptr_25 ? log_reg_19 : _GEN_2819; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2821 = 6'h14 == archit_ptr_25 ? log_reg_20 : _GEN_2820; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2822 = 6'h15 == archit_ptr_25 ? log_reg_21 : _GEN_2821; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2823 = 6'h16 == archit_ptr_25 ? log_reg_22 : _GEN_2822; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2824 = 6'h17 == archit_ptr_25 ? log_reg_23 : _GEN_2823; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2825 = 6'h18 == archit_ptr_25 ? log_reg_24 : _GEN_2824; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2826 = 6'h19 == archit_ptr_25 ? log_reg_25 : _GEN_2825; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2827 = 6'h1a == archit_ptr_25 ? log_reg_26 : _GEN_2826; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2828 = 6'h1b == archit_ptr_25 ? log_reg_27 : _GEN_2827; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2829 = 6'h1c == archit_ptr_25 ? log_reg_28 : _GEN_2828; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2830 = 6'h1d == archit_ptr_25 ? log_reg_29 : _GEN_2829; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2831 = 6'h1e == archit_ptr_25 ? log_reg_30 : _GEN_2830; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2832 = 6'h1f == archit_ptr_25 ? log_reg_31 : _GEN_2831; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2833 = 6'h20 == archit_ptr_25 ? log_reg_32 : _GEN_2832; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2834 = 6'h21 == archit_ptr_25 ? 2'h3 : _GEN_2833; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2836 = 6'h1 == archit_ptr_26 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2837 = 6'h2 == archit_ptr_26 ? log_reg_2 : _GEN_2836; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2838 = 6'h3 == archit_ptr_26 ? log_reg_3 : _GEN_2837; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2839 = 6'h4 == archit_ptr_26 ? log_reg_4 : _GEN_2838; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2840 = 6'h5 == archit_ptr_26 ? log_reg_5 : _GEN_2839; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2841 = 6'h6 == archit_ptr_26 ? log_reg_6 : _GEN_2840; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2842 = 6'h7 == archit_ptr_26 ? log_reg_7 : _GEN_2841; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2843 = 6'h8 == archit_ptr_26 ? log_reg_8 : _GEN_2842; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2844 = 6'h9 == archit_ptr_26 ? log_reg_9 : _GEN_2843; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2845 = 6'ha == archit_ptr_26 ? log_reg_10 : _GEN_2844; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2846 = 6'hb == archit_ptr_26 ? log_reg_11 : _GEN_2845; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2847 = 6'hc == archit_ptr_26 ? log_reg_12 : _GEN_2846; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2848 = 6'hd == archit_ptr_26 ? log_reg_13 : _GEN_2847; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2849 = 6'he == archit_ptr_26 ? log_reg_14 : _GEN_2848; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2850 = 6'hf == archit_ptr_26 ? log_reg_15 : _GEN_2849; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2851 = 6'h10 == archit_ptr_26 ? log_reg_16 : _GEN_2850; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2852 = 6'h11 == archit_ptr_26 ? log_reg_17 : _GEN_2851; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2853 = 6'h12 == archit_ptr_26 ? log_reg_18 : _GEN_2852; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2854 = 6'h13 == archit_ptr_26 ? log_reg_19 : _GEN_2853; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2855 = 6'h14 == archit_ptr_26 ? log_reg_20 : _GEN_2854; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2856 = 6'h15 == archit_ptr_26 ? log_reg_21 : _GEN_2855; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2857 = 6'h16 == archit_ptr_26 ? log_reg_22 : _GEN_2856; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2858 = 6'h17 == archit_ptr_26 ? log_reg_23 : _GEN_2857; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2859 = 6'h18 == archit_ptr_26 ? log_reg_24 : _GEN_2858; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2860 = 6'h19 == archit_ptr_26 ? log_reg_25 : _GEN_2859; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2861 = 6'h1a == archit_ptr_26 ? log_reg_26 : _GEN_2860; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2862 = 6'h1b == archit_ptr_26 ? log_reg_27 : _GEN_2861; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2863 = 6'h1c == archit_ptr_26 ? log_reg_28 : _GEN_2862; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2864 = 6'h1d == archit_ptr_26 ? log_reg_29 : _GEN_2863; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2865 = 6'h1e == archit_ptr_26 ? log_reg_30 : _GEN_2864; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2866 = 6'h1f == archit_ptr_26 ? log_reg_31 : _GEN_2865; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2867 = 6'h20 == archit_ptr_26 ? log_reg_32 : _GEN_2866; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2868 = 6'h21 == archit_ptr_26 ? 2'h3 : _GEN_2867; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2870 = 6'h1 == archit_ptr_27 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2871 = 6'h2 == archit_ptr_27 ? log_reg_2 : _GEN_2870; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2872 = 6'h3 == archit_ptr_27 ? log_reg_3 : _GEN_2871; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2873 = 6'h4 == archit_ptr_27 ? log_reg_4 : _GEN_2872; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2874 = 6'h5 == archit_ptr_27 ? log_reg_5 : _GEN_2873; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2875 = 6'h6 == archit_ptr_27 ? log_reg_6 : _GEN_2874; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2876 = 6'h7 == archit_ptr_27 ? log_reg_7 : _GEN_2875; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2877 = 6'h8 == archit_ptr_27 ? log_reg_8 : _GEN_2876; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2878 = 6'h9 == archit_ptr_27 ? log_reg_9 : _GEN_2877; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2879 = 6'ha == archit_ptr_27 ? log_reg_10 : _GEN_2878; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2880 = 6'hb == archit_ptr_27 ? log_reg_11 : _GEN_2879; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2881 = 6'hc == archit_ptr_27 ? log_reg_12 : _GEN_2880; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2882 = 6'hd == archit_ptr_27 ? log_reg_13 : _GEN_2881; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2883 = 6'he == archit_ptr_27 ? log_reg_14 : _GEN_2882; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2884 = 6'hf == archit_ptr_27 ? log_reg_15 : _GEN_2883; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2885 = 6'h10 == archit_ptr_27 ? log_reg_16 : _GEN_2884; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2886 = 6'h11 == archit_ptr_27 ? log_reg_17 : _GEN_2885; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2887 = 6'h12 == archit_ptr_27 ? log_reg_18 : _GEN_2886; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2888 = 6'h13 == archit_ptr_27 ? log_reg_19 : _GEN_2887; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2889 = 6'h14 == archit_ptr_27 ? log_reg_20 : _GEN_2888; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2890 = 6'h15 == archit_ptr_27 ? log_reg_21 : _GEN_2889; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2891 = 6'h16 == archit_ptr_27 ? log_reg_22 : _GEN_2890; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2892 = 6'h17 == archit_ptr_27 ? log_reg_23 : _GEN_2891; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2893 = 6'h18 == archit_ptr_27 ? log_reg_24 : _GEN_2892; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2894 = 6'h19 == archit_ptr_27 ? log_reg_25 : _GEN_2893; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2895 = 6'h1a == archit_ptr_27 ? log_reg_26 : _GEN_2894; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2896 = 6'h1b == archit_ptr_27 ? log_reg_27 : _GEN_2895; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2897 = 6'h1c == archit_ptr_27 ? log_reg_28 : _GEN_2896; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2898 = 6'h1d == archit_ptr_27 ? log_reg_29 : _GEN_2897; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2899 = 6'h1e == archit_ptr_27 ? log_reg_30 : _GEN_2898; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2900 = 6'h1f == archit_ptr_27 ? log_reg_31 : _GEN_2899; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2901 = 6'h20 == archit_ptr_27 ? log_reg_32 : _GEN_2900; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2902 = 6'h21 == archit_ptr_27 ? 2'h3 : _GEN_2901; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2904 = 6'h1 == archit_ptr_28 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2905 = 6'h2 == archit_ptr_28 ? log_reg_2 : _GEN_2904; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2906 = 6'h3 == archit_ptr_28 ? log_reg_3 : _GEN_2905; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2907 = 6'h4 == archit_ptr_28 ? log_reg_4 : _GEN_2906; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2908 = 6'h5 == archit_ptr_28 ? log_reg_5 : _GEN_2907; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2909 = 6'h6 == archit_ptr_28 ? log_reg_6 : _GEN_2908; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2910 = 6'h7 == archit_ptr_28 ? log_reg_7 : _GEN_2909; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2911 = 6'h8 == archit_ptr_28 ? log_reg_8 : _GEN_2910; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2912 = 6'h9 == archit_ptr_28 ? log_reg_9 : _GEN_2911; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2913 = 6'ha == archit_ptr_28 ? log_reg_10 : _GEN_2912; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2914 = 6'hb == archit_ptr_28 ? log_reg_11 : _GEN_2913; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2915 = 6'hc == archit_ptr_28 ? log_reg_12 : _GEN_2914; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2916 = 6'hd == archit_ptr_28 ? log_reg_13 : _GEN_2915; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2917 = 6'he == archit_ptr_28 ? log_reg_14 : _GEN_2916; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2918 = 6'hf == archit_ptr_28 ? log_reg_15 : _GEN_2917; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2919 = 6'h10 == archit_ptr_28 ? log_reg_16 : _GEN_2918; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2920 = 6'h11 == archit_ptr_28 ? log_reg_17 : _GEN_2919; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2921 = 6'h12 == archit_ptr_28 ? log_reg_18 : _GEN_2920; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2922 = 6'h13 == archit_ptr_28 ? log_reg_19 : _GEN_2921; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2923 = 6'h14 == archit_ptr_28 ? log_reg_20 : _GEN_2922; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2924 = 6'h15 == archit_ptr_28 ? log_reg_21 : _GEN_2923; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2925 = 6'h16 == archit_ptr_28 ? log_reg_22 : _GEN_2924; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2926 = 6'h17 == archit_ptr_28 ? log_reg_23 : _GEN_2925; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2927 = 6'h18 == archit_ptr_28 ? log_reg_24 : _GEN_2926; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2928 = 6'h19 == archit_ptr_28 ? log_reg_25 : _GEN_2927; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2929 = 6'h1a == archit_ptr_28 ? log_reg_26 : _GEN_2928; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2930 = 6'h1b == archit_ptr_28 ? log_reg_27 : _GEN_2929; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2931 = 6'h1c == archit_ptr_28 ? log_reg_28 : _GEN_2930; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2932 = 6'h1d == archit_ptr_28 ? log_reg_29 : _GEN_2931; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2933 = 6'h1e == archit_ptr_28 ? log_reg_30 : _GEN_2932; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2934 = 6'h1f == archit_ptr_28 ? log_reg_31 : _GEN_2933; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2935 = 6'h20 == archit_ptr_28 ? log_reg_32 : _GEN_2934; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2936 = 6'h21 == archit_ptr_28 ? 2'h3 : _GEN_2935; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2938 = 6'h1 == archit_ptr_29 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2939 = 6'h2 == archit_ptr_29 ? log_reg_2 : _GEN_2938; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2940 = 6'h3 == archit_ptr_29 ? log_reg_3 : _GEN_2939; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2941 = 6'h4 == archit_ptr_29 ? log_reg_4 : _GEN_2940; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2942 = 6'h5 == archit_ptr_29 ? log_reg_5 : _GEN_2941; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2943 = 6'h6 == archit_ptr_29 ? log_reg_6 : _GEN_2942; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2944 = 6'h7 == archit_ptr_29 ? log_reg_7 : _GEN_2943; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2945 = 6'h8 == archit_ptr_29 ? log_reg_8 : _GEN_2944; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2946 = 6'h9 == archit_ptr_29 ? log_reg_9 : _GEN_2945; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2947 = 6'ha == archit_ptr_29 ? log_reg_10 : _GEN_2946; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2948 = 6'hb == archit_ptr_29 ? log_reg_11 : _GEN_2947; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2949 = 6'hc == archit_ptr_29 ? log_reg_12 : _GEN_2948; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2950 = 6'hd == archit_ptr_29 ? log_reg_13 : _GEN_2949; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2951 = 6'he == archit_ptr_29 ? log_reg_14 : _GEN_2950; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2952 = 6'hf == archit_ptr_29 ? log_reg_15 : _GEN_2951; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2953 = 6'h10 == archit_ptr_29 ? log_reg_16 : _GEN_2952; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2954 = 6'h11 == archit_ptr_29 ? log_reg_17 : _GEN_2953; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2955 = 6'h12 == archit_ptr_29 ? log_reg_18 : _GEN_2954; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2956 = 6'h13 == archit_ptr_29 ? log_reg_19 : _GEN_2955; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2957 = 6'h14 == archit_ptr_29 ? log_reg_20 : _GEN_2956; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2958 = 6'h15 == archit_ptr_29 ? log_reg_21 : _GEN_2957; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2959 = 6'h16 == archit_ptr_29 ? log_reg_22 : _GEN_2958; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2960 = 6'h17 == archit_ptr_29 ? log_reg_23 : _GEN_2959; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2961 = 6'h18 == archit_ptr_29 ? log_reg_24 : _GEN_2960; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2962 = 6'h19 == archit_ptr_29 ? log_reg_25 : _GEN_2961; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2963 = 6'h1a == archit_ptr_29 ? log_reg_26 : _GEN_2962; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2964 = 6'h1b == archit_ptr_29 ? log_reg_27 : _GEN_2963; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2965 = 6'h1c == archit_ptr_29 ? log_reg_28 : _GEN_2964; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2966 = 6'h1d == archit_ptr_29 ? log_reg_29 : _GEN_2965; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2967 = 6'h1e == archit_ptr_29 ? log_reg_30 : _GEN_2966; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2968 = 6'h1f == archit_ptr_29 ? log_reg_31 : _GEN_2967; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2969 = 6'h20 == archit_ptr_29 ? log_reg_32 : _GEN_2968; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2970 = 6'h21 == archit_ptr_29 ? 2'h3 : _GEN_2969; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2972 = 6'h1 == archit_ptr_30 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2973 = 6'h2 == archit_ptr_30 ? log_reg_2 : _GEN_2972; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2974 = 6'h3 == archit_ptr_30 ? log_reg_3 : _GEN_2973; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2975 = 6'h4 == archit_ptr_30 ? log_reg_4 : _GEN_2974; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2976 = 6'h5 == archit_ptr_30 ? log_reg_5 : _GEN_2975; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2977 = 6'h6 == archit_ptr_30 ? log_reg_6 : _GEN_2976; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2978 = 6'h7 == archit_ptr_30 ? log_reg_7 : _GEN_2977; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2979 = 6'h8 == archit_ptr_30 ? log_reg_8 : _GEN_2978; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2980 = 6'h9 == archit_ptr_30 ? log_reg_9 : _GEN_2979; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2981 = 6'ha == archit_ptr_30 ? log_reg_10 : _GEN_2980; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2982 = 6'hb == archit_ptr_30 ? log_reg_11 : _GEN_2981; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2983 = 6'hc == archit_ptr_30 ? log_reg_12 : _GEN_2982; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2984 = 6'hd == archit_ptr_30 ? log_reg_13 : _GEN_2983; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2985 = 6'he == archit_ptr_30 ? log_reg_14 : _GEN_2984; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2986 = 6'hf == archit_ptr_30 ? log_reg_15 : _GEN_2985; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2987 = 6'h10 == archit_ptr_30 ? log_reg_16 : _GEN_2986; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2988 = 6'h11 == archit_ptr_30 ? log_reg_17 : _GEN_2987; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2989 = 6'h12 == archit_ptr_30 ? log_reg_18 : _GEN_2988; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2990 = 6'h13 == archit_ptr_30 ? log_reg_19 : _GEN_2989; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2991 = 6'h14 == archit_ptr_30 ? log_reg_20 : _GEN_2990; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2992 = 6'h15 == archit_ptr_30 ? log_reg_21 : _GEN_2991; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2993 = 6'h16 == archit_ptr_30 ? log_reg_22 : _GEN_2992; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2994 = 6'h17 == archit_ptr_30 ? log_reg_23 : _GEN_2993; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2995 = 6'h18 == archit_ptr_30 ? log_reg_24 : _GEN_2994; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2996 = 6'h19 == archit_ptr_30 ? log_reg_25 : _GEN_2995; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2997 = 6'h1a == archit_ptr_30 ? log_reg_26 : _GEN_2996; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2998 = 6'h1b == archit_ptr_30 ? log_reg_27 : _GEN_2997; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2999 = 6'h1c == archit_ptr_30 ? log_reg_28 : _GEN_2998; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3000 = 6'h1d == archit_ptr_30 ? log_reg_29 : _GEN_2999; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3001 = 6'h1e == archit_ptr_30 ? log_reg_30 : _GEN_3000; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3002 = 6'h1f == archit_ptr_30 ? log_reg_31 : _GEN_3001; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3003 = 6'h20 == archit_ptr_30 ? log_reg_32 : _GEN_3002; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3004 = 6'h21 == archit_ptr_30 ? 2'h3 : _GEN_3003; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3006 = 6'h1 == archit_ptr_31 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3007 = 6'h2 == archit_ptr_31 ? log_reg_2 : _GEN_3006; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3008 = 6'h3 == archit_ptr_31 ? log_reg_3 : _GEN_3007; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3009 = 6'h4 == archit_ptr_31 ? log_reg_4 : _GEN_3008; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3010 = 6'h5 == archit_ptr_31 ? log_reg_5 : _GEN_3009; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3011 = 6'h6 == archit_ptr_31 ? log_reg_6 : _GEN_3010; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3012 = 6'h7 == archit_ptr_31 ? log_reg_7 : _GEN_3011; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3013 = 6'h8 == archit_ptr_31 ? log_reg_8 : _GEN_3012; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3014 = 6'h9 == archit_ptr_31 ? log_reg_9 : _GEN_3013; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3015 = 6'ha == archit_ptr_31 ? log_reg_10 : _GEN_3014; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3016 = 6'hb == archit_ptr_31 ? log_reg_11 : _GEN_3015; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3017 = 6'hc == archit_ptr_31 ? log_reg_12 : _GEN_3016; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3018 = 6'hd == archit_ptr_31 ? log_reg_13 : _GEN_3017; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3019 = 6'he == archit_ptr_31 ? log_reg_14 : _GEN_3018; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3020 = 6'hf == archit_ptr_31 ? log_reg_15 : _GEN_3019; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3021 = 6'h10 == archit_ptr_31 ? log_reg_16 : _GEN_3020; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3022 = 6'h11 == archit_ptr_31 ? log_reg_17 : _GEN_3021; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3023 = 6'h12 == archit_ptr_31 ? log_reg_18 : _GEN_3022; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3024 = 6'h13 == archit_ptr_31 ? log_reg_19 : _GEN_3023; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3025 = 6'h14 == archit_ptr_31 ? log_reg_20 : _GEN_3024; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3026 = 6'h15 == archit_ptr_31 ? log_reg_21 : _GEN_3025; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3027 = 6'h16 == archit_ptr_31 ? log_reg_22 : _GEN_3026; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3028 = 6'h17 == archit_ptr_31 ? log_reg_23 : _GEN_3027; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3029 = 6'h18 == archit_ptr_31 ? log_reg_24 : _GEN_3028; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3030 = 6'h19 == archit_ptr_31 ? log_reg_25 : _GEN_3029; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3031 = 6'h1a == archit_ptr_31 ? log_reg_26 : _GEN_3030; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3032 = 6'h1b == archit_ptr_31 ? log_reg_27 : _GEN_3031; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3033 = 6'h1c == archit_ptr_31 ? log_reg_28 : _GEN_3032; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3034 = 6'h1d == archit_ptr_31 ? log_reg_29 : _GEN_3033; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3035 = 6'h1e == archit_ptr_31 ? log_reg_30 : _GEN_3034; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3036 = 6'h1f == archit_ptr_31 ? log_reg_31 : _GEN_3035; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3037 = 6'h20 == archit_ptr_31 ? log_reg_32 : _GEN_3036; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_3038 = 6'h21 == archit_ptr_31 ? 2'h3 : _GEN_3037; // @[Regfiles.scala 242:{25,25}]
  wire [5:0] _GEN_3040 = 5'h1 == io_lookup_0_req_rs1 ? rename_ptr_1 : rename_ptr_0; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3041 = 5'h2 == io_lookup_0_req_rs1 ? rename_ptr_2 : _GEN_3040; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3042 = 5'h3 == io_lookup_0_req_rs1 ? rename_ptr_3 : _GEN_3041; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3043 = 5'h4 == io_lookup_0_req_rs1 ? rename_ptr_4 : _GEN_3042; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3044 = 5'h5 == io_lookup_0_req_rs1 ? rename_ptr_5 : _GEN_3043; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3045 = 5'h6 == io_lookup_0_req_rs1 ? rename_ptr_6 : _GEN_3044; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3046 = 5'h7 == io_lookup_0_req_rs1 ? rename_ptr_7 : _GEN_3045; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3047 = 5'h8 == io_lookup_0_req_rs1 ? rename_ptr_8 : _GEN_3046; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3048 = 5'h9 == io_lookup_0_req_rs1 ? rename_ptr_9 : _GEN_3047; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3049 = 5'ha == io_lookup_0_req_rs1 ? rename_ptr_10 : _GEN_3048; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3050 = 5'hb == io_lookup_0_req_rs1 ? rename_ptr_11 : _GEN_3049; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3051 = 5'hc == io_lookup_0_req_rs1 ? rename_ptr_12 : _GEN_3050; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3052 = 5'hd == io_lookup_0_req_rs1 ? rename_ptr_13 : _GEN_3051; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3053 = 5'he == io_lookup_0_req_rs1 ? rename_ptr_14 : _GEN_3052; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3054 = 5'hf == io_lookup_0_req_rs1 ? rename_ptr_15 : _GEN_3053; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3055 = 5'h10 == io_lookup_0_req_rs1 ? rename_ptr_16 : _GEN_3054; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3056 = 5'h11 == io_lookup_0_req_rs1 ? rename_ptr_17 : _GEN_3055; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3057 = 5'h12 == io_lookup_0_req_rs1 ? rename_ptr_18 : _GEN_3056; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3058 = 5'h13 == io_lookup_0_req_rs1 ? rename_ptr_19 : _GEN_3057; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3059 = 5'h14 == io_lookup_0_req_rs1 ? rename_ptr_20 : _GEN_3058; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3060 = 5'h15 == io_lookup_0_req_rs1 ? rename_ptr_21 : _GEN_3059; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3061 = 5'h16 == io_lookup_0_req_rs1 ? rename_ptr_22 : _GEN_3060; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3062 = 5'h17 == io_lookup_0_req_rs1 ? rename_ptr_23 : _GEN_3061; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3063 = 5'h18 == io_lookup_0_req_rs1 ? rename_ptr_24 : _GEN_3062; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3064 = 5'h19 == io_lookup_0_req_rs1 ? rename_ptr_25 : _GEN_3063; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3065 = 5'h1a == io_lookup_0_req_rs1 ? rename_ptr_26 : _GEN_3064; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3066 = 5'h1b == io_lookup_0_req_rs1 ? rename_ptr_27 : _GEN_3065; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3067 = 5'h1c == io_lookup_0_req_rs1 ? rename_ptr_28 : _GEN_3066; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3068 = 5'h1d == io_lookup_0_req_rs1 ? rename_ptr_29 : _GEN_3067; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3069 = 5'h1e == io_lookup_0_req_rs1 ? rename_ptr_30 : _GEN_3068; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3070 = 5'h1f == io_lookup_0_req_rs1 ? rename_ptr_31 : _GEN_3069; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3072 = 5'h1 == io_lookup_0_req_rs2 ? rename_ptr_1 : rename_ptr_0; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3073 = 5'h2 == io_lookup_0_req_rs2 ? rename_ptr_2 : _GEN_3072; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3074 = 5'h3 == io_lookup_0_req_rs2 ? rename_ptr_3 : _GEN_3073; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3075 = 5'h4 == io_lookup_0_req_rs2 ? rename_ptr_4 : _GEN_3074; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3076 = 5'h5 == io_lookup_0_req_rs2 ? rename_ptr_5 : _GEN_3075; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3077 = 5'h6 == io_lookup_0_req_rs2 ? rename_ptr_6 : _GEN_3076; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3078 = 5'h7 == io_lookup_0_req_rs2 ? rename_ptr_7 : _GEN_3077; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3079 = 5'h8 == io_lookup_0_req_rs2 ? rename_ptr_8 : _GEN_3078; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3080 = 5'h9 == io_lookup_0_req_rs2 ? rename_ptr_9 : _GEN_3079; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3081 = 5'ha == io_lookup_0_req_rs2 ? rename_ptr_10 : _GEN_3080; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3082 = 5'hb == io_lookup_0_req_rs2 ? rename_ptr_11 : _GEN_3081; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3083 = 5'hc == io_lookup_0_req_rs2 ? rename_ptr_12 : _GEN_3082; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3084 = 5'hd == io_lookup_0_req_rs2 ? rename_ptr_13 : _GEN_3083; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3085 = 5'he == io_lookup_0_req_rs2 ? rename_ptr_14 : _GEN_3084; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3086 = 5'hf == io_lookup_0_req_rs2 ? rename_ptr_15 : _GEN_3085; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3087 = 5'h10 == io_lookup_0_req_rs2 ? rename_ptr_16 : _GEN_3086; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3088 = 5'h11 == io_lookup_0_req_rs2 ? rename_ptr_17 : _GEN_3087; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3089 = 5'h12 == io_lookup_0_req_rs2 ? rename_ptr_18 : _GEN_3088; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3090 = 5'h13 == io_lookup_0_req_rs2 ? rename_ptr_19 : _GEN_3089; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3091 = 5'h14 == io_lookup_0_req_rs2 ? rename_ptr_20 : _GEN_3090; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3092 = 5'h15 == io_lookup_0_req_rs2 ? rename_ptr_21 : _GEN_3091; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3093 = 5'h16 == io_lookup_0_req_rs2 ? rename_ptr_22 : _GEN_3092; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3094 = 5'h17 == io_lookup_0_req_rs2 ? rename_ptr_23 : _GEN_3093; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3095 = 5'h18 == io_lookup_0_req_rs2 ? rename_ptr_24 : _GEN_3094; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3096 = 5'h19 == io_lookup_0_req_rs2 ? rename_ptr_25 : _GEN_3095; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3097 = 5'h1a == io_lookup_0_req_rs2 ? rename_ptr_26 : _GEN_3096; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3098 = 5'h1b == io_lookup_0_req_rs2 ? rename_ptr_27 : _GEN_3097; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3099 = 5'h1c == io_lookup_0_req_rs2 ? rename_ptr_28 : _GEN_3098; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3100 = 5'h1d == io_lookup_0_req_rs2 ? rename_ptr_29 : _GEN_3099; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3101 = 5'h1e == io_lookup_0_req_rs2 ? rename_ptr_30 : _GEN_3100; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3102 = 5'h1f == io_lookup_0_req_rs2 ? rename_ptr_31 : _GEN_3101; // @[Regfiles.scala 259:{34,34}]
  wire  _GEN_3117 = _T_118 & _T_37; // @[Regfiles.scala 227:13]
  assign io_lookup_0_rsp_rs1 = io_lookup_0_req_rs1 == 5'h0 ? 6'h21 : _GEN_3070; // @[Regfiles.scala 258:34]
  assign io_lookup_0_rsp_rs2 = io_lookup_0_req_rs2 == 5'h0 ? 6'h21 : _GEN_3102; // @[Regfiles.scala 259:34]
  assign io_rename_0_rsp_rd0 = log_reg_0 == 2'h0 ? 6'h0 : _GEN_1120; // @[Regfiles.scala 150:{46,62}]
  assign io_rename_0_req_ready = _io_rename_0_req_ready_T_98 > 6'h0; // @[Regfiles.scala 165:70]
  assign io_rgLog_0 = log_reg_0; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_1 = log_reg_1; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_2 = log_reg_2; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_3 = log_reg_3; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_4 = log_reg_4; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_5 = log_reg_5; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_6 = log_reg_6; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_7 = log_reg_7; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_8 = log_reg_8; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_9 = log_reg_9; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_10 = log_reg_10; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_11 = log_reg_11; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_12 = log_reg_12; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_13 = log_reg_13; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_14 = log_reg_14; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_15 = log_reg_15; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_16 = log_reg_16; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_17 = log_reg_17; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_18 = log_reg_18; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_19 = log_reg_19; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_20 = log_reg_20; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_21 = log_reg_21; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_22 = log_reg_22; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_23 = log_reg_23; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_24 = log_reg_24; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_25 = log_reg_25; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_26 = log_reg_26; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_27 = log_reg_27; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_28 = log_reg_28; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_29 = log_reg_29; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_30 = log_reg_30; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_31 = log_reg_31; // @[Regfiles.scala 104:19 105:50]
  assign io_rgLog_32 = log_reg_32; // @[Regfiles.scala 104:19 105:50]
  assign io_rgRsp_0_valid = io_rgRsp_0_valid_REG; // @[Regfiles.scala 191:26]
  assign io_rgRsp_0_bits_phy = io_rgRsp_0_bits_phy_r; // @[Regfiles.scala 192:26]
  assign io_rgRsp_0_bits_op = io_rgRsp_0_bits_op_r; // @[Regfiles.scala 193:26]
  assign io_rgRsp_1_valid = io_rgRsp_1_valid_REG; // @[Regfiles.scala 191:26]
  assign io_rgRsp_1_bits_phy = io_rgRsp_1_bits_phy_r; // @[Regfiles.scala 192:26]
  assign io_rgRsp_1_bits_op = io_rgRsp_1_bits_op_r; // @[Regfiles.scala 193:26]
  assign io_exe_writeBack_0_ready = 1'h1; // @[Regfiles.scala 207:31]
  assign io_commit_0_is_writeback = _GEN_1689 == 2'h3; // @[Regfiles.scala 219:46]
  assign io_diffReg_0 = 6'h21 == archit_ptr_0 ? 64'h0 : _GEN_32; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_1 = 6'h21 == archit_ptr_1 ? 64'h0 : _GEN_66; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_2 = 6'h21 == archit_ptr_2 ? 64'h0 : _GEN_100; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_3 = 6'h21 == archit_ptr_3 ? 64'h0 : _GEN_134; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_4 = 6'h21 == archit_ptr_4 ? 64'h0 : _GEN_168; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_5 = 6'h21 == archit_ptr_5 ? 64'h0 : _GEN_202; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_6 = 6'h21 == archit_ptr_6 ? 64'h0 : _GEN_236; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_7 = 6'h21 == archit_ptr_7 ? 64'h0 : _GEN_270; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_8 = 6'h21 == archit_ptr_8 ? 64'h0 : _GEN_304; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_9 = 6'h21 == archit_ptr_9 ? 64'h0 : _GEN_338; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_10 = 6'h21 == archit_ptr_10 ? 64'h0 : _GEN_372; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_11 = 6'h21 == archit_ptr_11 ? 64'h0 : _GEN_406; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_12 = 6'h21 == archit_ptr_12 ? 64'h0 : _GEN_440; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_13 = 6'h21 == archit_ptr_13 ? 64'h0 : _GEN_474; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_14 = 6'h21 == archit_ptr_14 ? 64'h0 : _GEN_508; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_15 = 6'h21 == archit_ptr_15 ? 64'h0 : _GEN_542; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_16 = 6'h21 == archit_ptr_16 ? 64'h0 : _GEN_576; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_17 = 6'h21 == archit_ptr_17 ? 64'h0 : _GEN_610; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_18 = 6'h21 == archit_ptr_18 ? 64'h0 : _GEN_644; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_19 = 6'h21 == archit_ptr_19 ? 64'h0 : _GEN_678; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_20 = 6'h21 == archit_ptr_20 ? 64'h0 : _GEN_712; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_21 = 6'h21 == archit_ptr_21 ? 64'h0 : _GEN_746; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_22 = 6'h21 == archit_ptr_22 ? 64'h0 : _GEN_780; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_23 = 6'h21 == archit_ptr_23 ? 64'h0 : _GEN_814; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_24 = 6'h21 == archit_ptr_24 ? 64'h0 : _GEN_848; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_25 = 6'h21 == archit_ptr_25 ? 64'h0 : _GEN_882; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_26 = 6'h21 == archit_ptr_26 ? 64'h0 : _GEN_916; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_27 = 6'h21 == archit_ptr_27 ? 64'h0 : _GEN_950; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_28 = 6'h21 == archit_ptr_28 ? 64'h0 : _GEN_984; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_29 = 6'h21 == archit_ptr_29 ? 64'h0 : _GEN_1018; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_30 = 6'h21 == archit_ptr_30 ? 64'h0 : _GEN_1052; // @[Regfiles.scala 133:{19,19}]
  assign io_diffReg_31 = 6'h21 == archit_ptr_31 ? 64'h0 : _GEN_1086; // @[Regfiles.scala 133:{19,19}]
  always @(posedge clock) begin
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_0 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h0 == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_0 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h0 == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_0 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_0 <= _GEN_1690;
      end
    end else begin
      log_reg_0 <= _GEN_1690;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_1 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h1 == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_1 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h1 == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_1 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_1 <= _GEN_1691;
      end
    end else begin
      log_reg_1 <= _GEN_1691;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_2 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h2 == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_2 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h2 == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_2 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_2 <= _GEN_1692;
      end
    end else begin
      log_reg_2 <= _GEN_1692;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_3 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h3 == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_3 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h3 == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_3 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_3 <= _GEN_1693;
      end
    end else begin
      log_reg_3 <= _GEN_1693;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_4 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h4 == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_4 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h4 == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_4 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_4 <= _GEN_1694;
      end
    end else begin
      log_reg_4 <= _GEN_1694;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_5 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h5 == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_5 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h5 == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_5 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_5 <= _GEN_1695;
      end
    end else begin
      log_reg_5 <= _GEN_1695;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_6 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h6 == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_6 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h6 == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_6 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_6 <= _GEN_1696;
      end
    end else begin
      log_reg_6 <= _GEN_1696;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_7 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h7 == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_7 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h7 == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_7 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_7 <= _GEN_1697;
      end
    end else begin
      log_reg_7 <= _GEN_1697;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_8 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h8 == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_8 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h8 == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_8 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_8 <= _GEN_1698;
      end
    end else begin
      log_reg_8 <= _GEN_1698;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_9 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h9 == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_9 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h9 == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_9 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_9 <= _GEN_1699;
      end
    end else begin
      log_reg_9 <= _GEN_1699;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_10 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'ha == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_10 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'ha == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_10 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_10 <= _GEN_1700;
      end
    end else begin
      log_reg_10 <= _GEN_1700;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_11 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'hb == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_11 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'hb == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_11 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_11 <= _GEN_1701;
      end
    end else begin
      log_reg_11 <= _GEN_1701;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_12 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'hc == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_12 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'hc == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_12 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_12 <= _GEN_1702;
      end
    end else begin
      log_reg_12 <= _GEN_1702;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_13 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'hd == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_13 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'hd == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_13 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_13 <= _GEN_1703;
      end
    end else begin
      log_reg_13 <= _GEN_1703;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_14 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'he == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_14 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'he == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_14 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_14 <= _GEN_1704;
      end
    end else begin
      log_reg_14 <= _GEN_1704;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_15 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'hf == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_15 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'hf == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_15 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_15 <= _GEN_1705;
      end
    end else begin
      log_reg_15 <= _GEN_1705;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_16 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h10 == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_16 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h10 == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_16 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_16 <= _GEN_1706;
      end
    end else begin
      log_reg_16 <= _GEN_1706;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_17 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h11 == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_17 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h11 == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_17 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_17 <= _GEN_1707;
      end
    end else begin
      log_reg_17 <= _GEN_1707;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_18 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h12 == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_18 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h12 == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_18 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_18 <= _GEN_1708;
      end
    end else begin
      log_reg_18 <= _GEN_1708;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_19 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h13 == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_19 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h13 == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_19 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_19 <= _GEN_1709;
      end
    end else begin
      log_reg_19 <= _GEN_1709;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_20 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h14 == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_20 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h14 == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_20 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_20 <= _GEN_1710;
      end
    end else begin
      log_reg_20 <= _GEN_1710;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_21 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h15 == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_21 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h15 == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_21 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_21 <= _GEN_1711;
      end
    end else begin
      log_reg_21 <= _GEN_1711;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_22 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h16 == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_22 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h16 == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_22 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_22 <= _GEN_1712;
      end
    end else begin
      log_reg_22 <= _GEN_1712;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_23 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h17 == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_23 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h17 == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_23 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_23 <= _GEN_1713;
      end
    end else begin
      log_reg_23 <= _GEN_1713;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_24 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h18 == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_24 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h18 == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_24 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_24 <= _GEN_1714;
      end
    end else begin
      log_reg_24 <= _GEN_1714;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_25 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h19 == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_25 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h19 == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_25 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_25 <= _GEN_1715;
      end
    end else begin
      log_reg_25 <= _GEN_1715;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_26 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h1a == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_26 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h1a == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_26 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_26 <= _GEN_1716;
      end
    end else begin
      log_reg_26 <= _GEN_1716;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_27 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h1b == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_27 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h1b == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_27 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_27 <= _GEN_1717;
      end
    end else begin
      log_reg_27 <= _GEN_1717;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_28 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h1c == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_28 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h1c == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_28 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_28 <= _GEN_1718;
      end
    end else begin
      log_reg_28 <= _GEN_1718;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_29 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h1d == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_29 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h1d == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_29 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_29 <= _GEN_1719;
      end
    end else begin
      log_reg_29 <= _GEN_1719;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_30 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h1e == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_30 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h1e == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_30 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_30 <= _GEN_1720;
      end
    end else begin
      log_reg_30 <= _GEN_1720;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_31 <= 2'h3; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h1f == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_31 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h1f == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_31 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_31 <= _GEN_1721;
      end
    end else begin
      log_reg_31 <= _GEN_1721;
    end
    if (reset) begin // @[Regfiles.scala 101:12]
      log_reg_32 <= 2'h0; // @[Regfiles.scala 101:12]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_comfirm) begin // @[Regfiles.scala 225:66]
      if (6'h20 == io_commit_0_phy) begin // @[Regfiles.scala 232:23]
        log_reg_32 <= 2'h3; // @[Regfiles.scala 232:23]
      end else if (6'h20 == _GEN_1754) begin // @[Regfiles.scala 229:35]
        log_reg_32 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_32 <= _GEN_1722;
      end
    end else begin
      log_reg_32 <= _GEN_1722;
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_0 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h0 == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_0 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_1 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h1 == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_1 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_2 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h2 == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_2 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_3 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h3 == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_3 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_4 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h4 == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_4 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_5 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h5 == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_5 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_6 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h6 == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_6 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_7 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h7 == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_7 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_8 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h8 == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_8 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_9 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h9 == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_9 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_10 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'ha == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_10 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_11 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'hb == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_11 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_12 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'hc == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_12 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_13 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'hd == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_13 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_14 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'he == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_14 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_15 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'hf == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_15 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_16 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h10 == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_16 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_17 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h11 == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_17 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_18 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h12 == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_18 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_19 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h13 == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_19 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_20 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h14 == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_20 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_21 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h15 == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_21 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_22 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h16 == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_22 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_23 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h17 == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_23 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_24 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h18 == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_24 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_25 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h19 == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_25 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_26 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h1a == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_26 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_27 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h1b == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_27 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_28 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h1c == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_28 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_29 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h1d == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_29 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_30 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h1e == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_30 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_31 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h1f == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_31 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_32 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_112) begin // @[Regfiles.scala 201:38]
      if (6'h20 == io_exe_writeBack_0_bits_rd0) begin // @[Regfiles.scala 205:22]
        files_reg_32 <= io_exe_writeBack_0_bits_res; // @[Regfiles.scala 205:22]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_0 <= 6'h0; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h0 == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_0 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_0 <= archit_ptr_0; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h0 == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_0 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_1 <= 6'h1; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h1 == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_1 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_1 <= archit_ptr_1; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h1 == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_1 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_2 <= 6'h2; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h2 == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_2 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_2 <= archit_ptr_2; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h2 == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_2 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_3 <= 6'h3; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h3 == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_3 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_3 <= archit_ptr_3; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h3 == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_3 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_4 <= 6'h4; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h4 == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_4 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_4 <= archit_ptr_4; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h4 == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_4 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_5 <= 6'h5; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h5 == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_5 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_5 <= archit_ptr_5; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h5 == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_5 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_6 <= 6'h6; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h6 == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_6 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_6 <= archit_ptr_6; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h6 == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_6 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_7 <= 6'h7; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h7 == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_7 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_7 <= archit_ptr_7; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h7 == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_7 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_8 <= 6'h8; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h8 == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_8 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_8 <= archit_ptr_8; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h8 == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_8 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_9 <= 6'h9; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h9 == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_9 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_9 <= archit_ptr_9; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h9 == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_9 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_10 <= 6'ha; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'ha == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_10 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_10 <= archit_ptr_10; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'ha == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_10 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_11 <= 6'hb; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'hb == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_11 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_11 <= archit_ptr_11; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'hb == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_11 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_12 <= 6'hc; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'hc == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_12 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_12 <= archit_ptr_12; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'hc == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_12 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_13 <= 6'hd; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'hd == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_13 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_13 <= archit_ptr_13; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'hd == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_13 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_14 <= 6'he; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'he == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_14 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_14 <= archit_ptr_14; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'he == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_14 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_15 <= 6'hf; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'hf == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_15 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_15 <= archit_ptr_15; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'hf == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_15 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_16 <= 6'h10; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h10 == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_16 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_16 <= archit_ptr_16; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h10 == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_16 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_17 <= 6'h11; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h11 == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_17 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_17 <= archit_ptr_17; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h11 == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_17 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_18 <= 6'h12; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h12 == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_18 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_18 <= archit_ptr_18; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h12 == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_18 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_19 <= 6'h13; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h13 == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_19 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_19 <= archit_ptr_19; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h13 == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_19 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_20 <= 6'h14; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h14 == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_20 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_20 <= archit_ptr_20; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h14 == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_20 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_21 <= 6'h15; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h15 == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_21 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_21 <= archit_ptr_21; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h15 == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_21 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_22 <= 6'h16; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h16 == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_22 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_22 <= archit_ptr_22; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h16 == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_22 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_23 <= 6'h17; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h17 == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_23 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_23 <= archit_ptr_23; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h17 == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_23 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_24 <= 6'h18; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h18 == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_24 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_24 <= archit_ptr_24; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h18 == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_24 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_25 <= 6'h19; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h19 == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_25 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_25 <= archit_ptr_25; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h19 == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_25 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_26 <= 6'h1a; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h1a == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_26 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_26 <= archit_ptr_26; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h1a == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_26 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_27 <= 6'h1b; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h1b == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_27 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_27 <= archit_ptr_27; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h1b == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_27 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_28 <= 6'h1c; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h1c == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_28 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_28 <= archit_ptr_28; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h1c == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_28 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_29 <= 6'h1d; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h1d == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_29 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_29 <= archit_ptr_29; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h1d == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_29 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_30 <= 6'h1e; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h1e == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_30 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_30 <= archit_ptr_30; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h1e == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_30 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 125:27]
      rename_ptr_31 <= 6'h1f; // @[Regfiles.scala 125:27]
    end else if (io_commit_0_is_MisPredict | io_commit_0_is_abort) begin // @[Regfiles.scala 172:65]
      if (5'h1f == io_commit_0_raw & io_commit_0_is_MisPredict) begin // @[Regfiles.scala 180:61]
        rename_ptr_31 <= io_commit_0_phy; // @[Regfiles.scala 180:77]
      end else begin
        rename_ptr_31 <= archit_ptr_31; // @[Regfiles.scala 174:23]
      end
    end else if (_T_34) begin // @[Regfiles.scala 158:35]
      if (5'h1f == io_rename_0_req_bits_rd0) begin // @[Regfiles.scala 162:23]
        rename_ptr_31 <= molloc_idx_0; // @[Regfiles.scala 162:23]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_0 <= 6'h0; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h0 == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_0 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_1 <= 6'h1; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h1 == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_1 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_2 <= 6'h2; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h2 == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_2 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_3 <= 6'h3; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h3 == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_3 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_4 <= 6'h4; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h4 == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_4 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_5 <= 6'h5; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h5 == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_5 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_6 <= 6'h6; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h6 == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_6 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_7 <= 6'h7; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h7 == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_7 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_8 <= 6'h8; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h8 == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_8 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_9 <= 6'h9; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h9 == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_9 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_10 <= 6'ha; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'ha == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_10 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_11 <= 6'hb; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'hb == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_11 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_12 <= 6'hc; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'hc == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_12 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_13 <= 6'hd; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'hd == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_13 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_14 <= 6'he; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'he == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_14 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_15 <= 6'hf; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'hf == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_15 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_16 <= 6'h10; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h10 == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_16 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_17 <= 6'h11; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h11 == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_17 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_18 <= 6'h12; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h12 == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_18 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_19 <= 6'h13; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h13 == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_19 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_20 <= 6'h14; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h14 == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_20 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_21 <= 6'h15; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h15 == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_21 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_22 <= 6'h16; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h16 == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_22 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_23 <= 6'h17; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h17 == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_23 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_24 <= 6'h18; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h18 == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_24 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_25 <= 6'h19; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h19 == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_25 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_26 <= 6'h1a; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h1a == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_26 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_27 <= 6'h1b; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h1b == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_27 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_28 <= 6'h1c; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h1c == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_28 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_29 <= 6'h1d; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h1d == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_29 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_30 <= 6'h1e; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h1e == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_30 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 130:27]
      archit_ptr_31 <= 6'h1f; // @[Regfiles.scala 130:27]
    end else if (_T_118) begin // @[Regfiles.scala 235:66]
      if (5'h1f == io_commit_0_raw) begin // @[Regfiles.scala 236:26]
        archit_ptr_31 <= io_commit_0_phy; // @[Regfiles.scala 236:26]
      end
    end
    if (reset) begin // @[Regfiles.scala 191:36]
      io_rgRsp_0_valid_REG <= 1'h0; // @[Regfiles.scala 191:36]
    end else begin
      io_rgRsp_0_valid_REG <= io_rgReq_0_valid; // @[Regfiles.scala 191:36]
    end
    if (io_rgReq_0_valid) begin // @[Reg.scala 20:18]
      io_rgRsp_0_bits_phy_r <= io_rgReq_0_bits; // @[Reg.scala 20:22]
    end
    if (io_rgReq_0_valid) begin // @[Reg.scala 20:18]
      if (6'h21 == io_rgReq_0_bits) begin // @[Reg.scala 20:22]
        io_rgRsp_0_bits_op_r <= 64'h0; // @[Reg.scala 20:22]
      end else if (6'h20 == io_rgReq_0_bits) begin // @[Reg.scala 20:22]
        io_rgRsp_0_bits_op_r <= files_reg_32; // @[Reg.scala 20:22]
      end else if (6'h1f == io_rgReq_0_bits) begin // @[Reg.scala 20:22]
        io_rgRsp_0_bits_op_r <= files_reg_31; // @[Reg.scala 20:22]
      end else begin
        io_rgRsp_0_bits_op_r <= _GEN_1381;
      end
    end
    if (reset) begin // @[Regfiles.scala 191:36]
      io_rgRsp_1_valid_REG <= 1'h0; // @[Regfiles.scala 191:36]
    end else begin
      io_rgRsp_1_valid_REG <= io_rgReq_1_valid; // @[Regfiles.scala 191:36]
    end
    if (io_rgReq_1_valid) begin // @[Reg.scala 20:18]
      io_rgRsp_1_bits_phy_r <= io_rgReq_1_bits; // @[Reg.scala 20:22]
    end
    if (io_rgReq_1_valid) begin // @[Reg.scala 20:18]
      if (6'h21 == io_rgReq_1_bits) begin // @[Reg.scala 20:22]
        io_rgRsp_1_bits_op_r <= 64'h0; // @[Reg.scala 20:22]
      end else if (6'h20 == io_rgReq_1_bits) begin // @[Reg.scala 20:22]
        io_rgRsp_1_bits_op_r <= files_reg_32; // @[Reg.scala 20:22]
      end else if (6'h1f == io_rgReq_1_bits) begin // @[Reg.scala 20:22]
        io_rgRsp_1_bits_op_r <= files_reg_31; // @[Reg.scala 20:22]
      end else begin
        io_rgRsp_1_bits_op_r <= _GEN_1451;
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_34 & ~reset & ~(_GEN_1155 == 2'h0)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Regfiles.scala:160 assert( log(molloc_idx(i)) === \"b00\".U )\n"); // @[Regfiles.scala 160:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_1155 == 2'h0) & (_T_34 & ~reset)) begin
          $fatal; // @[Regfiles.scala 160:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_rgRsp_0_valid & _T_37 & ~(_GEN_1419 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed while reading operator, log is not ready!\n    at Regfiles.scala:194 when( io.rgRsp(i).valid ) {  assert( log(io.rgReq(i).bits) === \"b11\".U, \"Assert Failed while reading operator, log is not ready!\" ) }\n"
            ); // @[Regfiles.scala 194:40]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_1419 == 2'h3) & (io_rgRsp_0_valid & _T_37)) begin
          $fatal; // @[Regfiles.scala 194:40]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_rgRsp_1_valid & _T_37 & ~(_GEN_1489 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed while reading operator, log is not ready!\n    at Regfiles.scala:194 when( io.rgRsp(i).valid ) {  assert( log(io.rgReq(i).bits) === \"b11\".U, \"Assert Failed while reading operator, log is not ready!\" ) }\n"
            ); // @[Regfiles.scala 194:40]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_1489 == 2'h3) & (io_rgRsp_1_valid & _T_37)) begin
          $fatal; // @[Regfiles.scala 194:40]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_112 & _T_37 & ~(_GEN_1523 == 2'h1)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed when writeback at chn0, log(XRegFiles.io.exe_writeBack[0].bits.rd0: IO[UInt<6>])\n    at Regfiles.scala:203 assert( log(idx) === \"b01\".U, \"Assert Failed when writeback at chn\" + i + \", log(\" + idx + \")\" )\n"
            ); // @[Regfiles.scala 203:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_1523 == 2'h1) & (_T_112 & _T_37)) begin
          $fatal; // @[Regfiles.scala 203:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_118 & _T_37 & ~io_commit_0_is_writeback) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Regfiles.scala:227 assert( io.commit(m).is_writeback )\n"); // @[Regfiles.scala 227:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~io_commit_0_is_writeback & (_T_118 & _T_37)) begin
          $fatal; // @[Regfiles.scala 227:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_3117 & ~(_GEN_1688 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: log_reg which going to commit to will be overrided to \"b11\" if there is an abort in-front.\n    at Regfiles.scala:231 assert( log_reg(phy(m)) === \"b11\".U, \"log_reg which going to commit to will be overrided to \\\"b11\\\" if there is an abort in-front.\" )\n"
            ); // @[Regfiles.scala 231:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_1688 == 2'h3) & _GEN_3117) begin
          $fatal; // @[Regfiles.scala 231:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_1984 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[0]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_1984 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2018 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[1]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2018 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2052 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[2]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2052 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2086 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[3]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2086 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2120 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[4]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2120 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2154 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[5]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2154 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2188 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[6]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2188 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2222 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[7]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2222 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2256 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[8]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2256 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2290 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[9]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2290 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2324 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[10]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2324 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2358 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[11]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2358 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2392 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[12]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2392 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2426 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[13]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2426 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2460 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[14]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2460 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2494 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[15]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2494 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2528 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[16]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2528 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2562 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[17]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2562 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2596 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[18]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2596 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2630 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[19]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2630 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2664 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[20]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2664 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2698 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[21]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2698 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2732 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[22]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2732 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2766 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[23]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2766 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2800 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[24]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2800 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2834 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[25]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2834 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2868 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[26]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2868 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2902 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[27]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2902 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2936 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[28]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2936 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_2970 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[29]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_2970 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_3004 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[30]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_3004 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_37 & ~(_GEN_3038 == 2'h3)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, archit point to should be b11.U! i = XRegFiles.archit_ptr[31]: Reg[UInt<6>]\n\n    at Regfiles.scala:242 i => assert( log(i) === \"b11\".U, \"Assert Failed, archit point to should be b11.U! i = \"+i+\"\\n\")\n"
            ); // @[Regfiles.scala 242:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_GEN_3038 == 2'h3) & _T_37) begin
          $fatal; // @[Regfiles.scala 242:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  log_reg_0 = _RAND_0[1:0];
  _RAND_1 = {1{`RANDOM}};
  log_reg_1 = _RAND_1[1:0];
  _RAND_2 = {1{`RANDOM}};
  log_reg_2 = _RAND_2[1:0];
  _RAND_3 = {1{`RANDOM}};
  log_reg_3 = _RAND_3[1:0];
  _RAND_4 = {1{`RANDOM}};
  log_reg_4 = _RAND_4[1:0];
  _RAND_5 = {1{`RANDOM}};
  log_reg_5 = _RAND_5[1:0];
  _RAND_6 = {1{`RANDOM}};
  log_reg_6 = _RAND_6[1:0];
  _RAND_7 = {1{`RANDOM}};
  log_reg_7 = _RAND_7[1:0];
  _RAND_8 = {1{`RANDOM}};
  log_reg_8 = _RAND_8[1:0];
  _RAND_9 = {1{`RANDOM}};
  log_reg_9 = _RAND_9[1:0];
  _RAND_10 = {1{`RANDOM}};
  log_reg_10 = _RAND_10[1:0];
  _RAND_11 = {1{`RANDOM}};
  log_reg_11 = _RAND_11[1:0];
  _RAND_12 = {1{`RANDOM}};
  log_reg_12 = _RAND_12[1:0];
  _RAND_13 = {1{`RANDOM}};
  log_reg_13 = _RAND_13[1:0];
  _RAND_14 = {1{`RANDOM}};
  log_reg_14 = _RAND_14[1:0];
  _RAND_15 = {1{`RANDOM}};
  log_reg_15 = _RAND_15[1:0];
  _RAND_16 = {1{`RANDOM}};
  log_reg_16 = _RAND_16[1:0];
  _RAND_17 = {1{`RANDOM}};
  log_reg_17 = _RAND_17[1:0];
  _RAND_18 = {1{`RANDOM}};
  log_reg_18 = _RAND_18[1:0];
  _RAND_19 = {1{`RANDOM}};
  log_reg_19 = _RAND_19[1:0];
  _RAND_20 = {1{`RANDOM}};
  log_reg_20 = _RAND_20[1:0];
  _RAND_21 = {1{`RANDOM}};
  log_reg_21 = _RAND_21[1:0];
  _RAND_22 = {1{`RANDOM}};
  log_reg_22 = _RAND_22[1:0];
  _RAND_23 = {1{`RANDOM}};
  log_reg_23 = _RAND_23[1:0];
  _RAND_24 = {1{`RANDOM}};
  log_reg_24 = _RAND_24[1:0];
  _RAND_25 = {1{`RANDOM}};
  log_reg_25 = _RAND_25[1:0];
  _RAND_26 = {1{`RANDOM}};
  log_reg_26 = _RAND_26[1:0];
  _RAND_27 = {1{`RANDOM}};
  log_reg_27 = _RAND_27[1:0];
  _RAND_28 = {1{`RANDOM}};
  log_reg_28 = _RAND_28[1:0];
  _RAND_29 = {1{`RANDOM}};
  log_reg_29 = _RAND_29[1:0];
  _RAND_30 = {1{`RANDOM}};
  log_reg_30 = _RAND_30[1:0];
  _RAND_31 = {1{`RANDOM}};
  log_reg_31 = _RAND_31[1:0];
  _RAND_32 = {1{`RANDOM}};
  log_reg_32 = _RAND_32[1:0];
  _RAND_33 = {2{`RANDOM}};
  files_reg_0 = _RAND_33[63:0];
  _RAND_34 = {2{`RANDOM}};
  files_reg_1 = _RAND_34[63:0];
  _RAND_35 = {2{`RANDOM}};
  files_reg_2 = _RAND_35[63:0];
  _RAND_36 = {2{`RANDOM}};
  files_reg_3 = _RAND_36[63:0];
  _RAND_37 = {2{`RANDOM}};
  files_reg_4 = _RAND_37[63:0];
  _RAND_38 = {2{`RANDOM}};
  files_reg_5 = _RAND_38[63:0];
  _RAND_39 = {2{`RANDOM}};
  files_reg_6 = _RAND_39[63:0];
  _RAND_40 = {2{`RANDOM}};
  files_reg_7 = _RAND_40[63:0];
  _RAND_41 = {2{`RANDOM}};
  files_reg_8 = _RAND_41[63:0];
  _RAND_42 = {2{`RANDOM}};
  files_reg_9 = _RAND_42[63:0];
  _RAND_43 = {2{`RANDOM}};
  files_reg_10 = _RAND_43[63:0];
  _RAND_44 = {2{`RANDOM}};
  files_reg_11 = _RAND_44[63:0];
  _RAND_45 = {2{`RANDOM}};
  files_reg_12 = _RAND_45[63:0];
  _RAND_46 = {2{`RANDOM}};
  files_reg_13 = _RAND_46[63:0];
  _RAND_47 = {2{`RANDOM}};
  files_reg_14 = _RAND_47[63:0];
  _RAND_48 = {2{`RANDOM}};
  files_reg_15 = _RAND_48[63:0];
  _RAND_49 = {2{`RANDOM}};
  files_reg_16 = _RAND_49[63:0];
  _RAND_50 = {2{`RANDOM}};
  files_reg_17 = _RAND_50[63:0];
  _RAND_51 = {2{`RANDOM}};
  files_reg_18 = _RAND_51[63:0];
  _RAND_52 = {2{`RANDOM}};
  files_reg_19 = _RAND_52[63:0];
  _RAND_53 = {2{`RANDOM}};
  files_reg_20 = _RAND_53[63:0];
  _RAND_54 = {2{`RANDOM}};
  files_reg_21 = _RAND_54[63:0];
  _RAND_55 = {2{`RANDOM}};
  files_reg_22 = _RAND_55[63:0];
  _RAND_56 = {2{`RANDOM}};
  files_reg_23 = _RAND_56[63:0];
  _RAND_57 = {2{`RANDOM}};
  files_reg_24 = _RAND_57[63:0];
  _RAND_58 = {2{`RANDOM}};
  files_reg_25 = _RAND_58[63:0];
  _RAND_59 = {2{`RANDOM}};
  files_reg_26 = _RAND_59[63:0];
  _RAND_60 = {2{`RANDOM}};
  files_reg_27 = _RAND_60[63:0];
  _RAND_61 = {2{`RANDOM}};
  files_reg_28 = _RAND_61[63:0];
  _RAND_62 = {2{`RANDOM}};
  files_reg_29 = _RAND_62[63:0];
  _RAND_63 = {2{`RANDOM}};
  files_reg_30 = _RAND_63[63:0];
  _RAND_64 = {2{`RANDOM}};
  files_reg_31 = _RAND_64[63:0];
  _RAND_65 = {2{`RANDOM}};
  files_reg_32 = _RAND_65[63:0];
  _RAND_66 = {1{`RANDOM}};
  rename_ptr_0 = _RAND_66[5:0];
  _RAND_67 = {1{`RANDOM}};
  rename_ptr_1 = _RAND_67[5:0];
  _RAND_68 = {1{`RANDOM}};
  rename_ptr_2 = _RAND_68[5:0];
  _RAND_69 = {1{`RANDOM}};
  rename_ptr_3 = _RAND_69[5:0];
  _RAND_70 = {1{`RANDOM}};
  rename_ptr_4 = _RAND_70[5:0];
  _RAND_71 = {1{`RANDOM}};
  rename_ptr_5 = _RAND_71[5:0];
  _RAND_72 = {1{`RANDOM}};
  rename_ptr_6 = _RAND_72[5:0];
  _RAND_73 = {1{`RANDOM}};
  rename_ptr_7 = _RAND_73[5:0];
  _RAND_74 = {1{`RANDOM}};
  rename_ptr_8 = _RAND_74[5:0];
  _RAND_75 = {1{`RANDOM}};
  rename_ptr_9 = _RAND_75[5:0];
  _RAND_76 = {1{`RANDOM}};
  rename_ptr_10 = _RAND_76[5:0];
  _RAND_77 = {1{`RANDOM}};
  rename_ptr_11 = _RAND_77[5:0];
  _RAND_78 = {1{`RANDOM}};
  rename_ptr_12 = _RAND_78[5:0];
  _RAND_79 = {1{`RANDOM}};
  rename_ptr_13 = _RAND_79[5:0];
  _RAND_80 = {1{`RANDOM}};
  rename_ptr_14 = _RAND_80[5:0];
  _RAND_81 = {1{`RANDOM}};
  rename_ptr_15 = _RAND_81[5:0];
  _RAND_82 = {1{`RANDOM}};
  rename_ptr_16 = _RAND_82[5:0];
  _RAND_83 = {1{`RANDOM}};
  rename_ptr_17 = _RAND_83[5:0];
  _RAND_84 = {1{`RANDOM}};
  rename_ptr_18 = _RAND_84[5:0];
  _RAND_85 = {1{`RANDOM}};
  rename_ptr_19 = _RAND_85[5:0];
  _RAND_86 = {1{`RANDOM}};
  rename_ptr_20 = _RAND_86[5:0];
  _RAND_87 = {1{`RANDOM}};
  rename_ptr_21 = _RAND_87[5:0];
  _RAND_88 = {1{`RANDOM}};
  rename_ptr_22 = _RAND_88[5:0];
  _RAND_89 = {1{`RANDOM}};
  rename_ptr_23 = _RAND_89[5:0];
  _RAND_90 = {1{`RANDOM}};
  rename_ptr_24 = _RAND_90[5:0];
  _RAND_91 = {1{`RANDOM}};
  rename_ptr_25 = _RAND_91[5:0];
  _RAND_92 = {1{`RANDOM}};
  rename_ptr_26 = _RAND_92[5:0];
  _RAND_93 = {1{`RANDOM}};
  rename_ptr_27 = _RAND_93[5:0];
  _RAND_94 = {1{`RANDOM}};
  rename_ptr_28 = _RAND_94[5:0];
  _RAND_95 = {1{`RANDOM}};
  rename_ptr_29 = _RAND_95[5:0];
  _RAND_96 = {1{`RANDOM}};
  rename_ptr_30 = _RAND_96[5:0];
  _RAND_97 = {1{`RANDOM}};
  rename_ptr_31 = _RAND_97[5:0];
  _RAND_98 = {1{`RANDOM}};
  archit_ptr_0 = _RAND_98[5:0];
  _RAND_99 = {1{`RANDOM}};
  archit_ptr_1 = _RAND_99[5:0];
  _RAND_100 = {1{`RANDOM}};
  archit_ptr_2 = _RAND_100[5:0];
  _RAND_101 = {1{`RANDOM}};
  archit_ptr_3 = _RAND_101[5:0];
  _RAND_102 = {1{`RANDOM}};
  archit_ptr_4 = _RAND_102[5:0];
  _RAND_103 = {1{`RANDOM}};
  archit_ptr_5 = _RAND_103[5:0];
  _RAND_104 = {1{`RANDOM}};
  archit_ptr_6 = _RAND_104[5:0];
  _RAND_105 = {1{`RANDOM}};
  archit_ptr_7 = _RAND_105[5:0];
  _RAND_106 = {1{`RANDOM}};
  archit_ptr_8 = _RAND_106[5:0];
  _RAND_107 = {1{`RANDOM}};
  archit_ptr_9 = _RAND_107[5:0];
  _RAND_108 = {1{`RANDOM}};
  archit_ptr_10 = _RAND_108[5:0];
  _RAND_109 = {1{`RANDOM}};
  archit_ptr_11 = _RAND_109[5:0];
  _RAND_110 = {1{`RANDOM}};
  archit_ptr_12 = _RAND_110[5:0];
  _RAND_111 = {1{`RANDOM}};
  archit_ptr_13 = _RAND_111[5:0];
  _RAND_112 = {1{`RANDOM}};
  archit_ptr_14 = _RAND_112[5:0];
  _RAND_113 = {1{`RANDOM}};
  archit_ptr_15 = _RAND_113[5:0];
  _RAND_114 = {1{`RANDOM}};
  archit_ptr_16 = _RAND_114[5:0];
  _RAND_115 = {1{`RANDOM}};
  archit_ptr_17 = _RAND_115[5:0];
  _RAND_116 = {1{`RANDOM}};
  archit_ptr_18 = _RAND_116[5:0];
  _RAND_117 = {1{`RANDOM}};
  archit_ptr_19 = _RAND_117[5:0];
  _RAND_118 = {1{`RANDOM}};
  archit_ptr_20 = _RAND_118[5:0];
  _RAND_119 = {1{`RANDOM}};
  archit_ptr_21 = _RAND_119[5:0];
  _RAND_120 = {1{`RANDOM}};
  archit_ptr_22 = _RAND_120[5:0];
  _RAND_121 = {1{`RANDOM}};
  archit_ptr_23 = _RAND_121[5:0];
  _RAND_122 = {1{`RANDOM}};
  archit_ptr_24 = _RAND_122[5:0];
  _RAND_123 = {1{`RANDOM}};
  archit_ptr_25 = _RAND_123[5:0];
  _RAND_124 = {1{`RANDOM}};
  archit_ptr_26 = _RAND_124[5:0];
  _RAND_125 = {1{`RANDOM}};
  archit_ptr_27 = _RAND_125[5:0];
  _RAND_126 = {1{`RANDOM}};
  archit_ptr_28 = _RAND_126[5:0];
  _RAND_127 = {1{`RANDOM}};
  archit_ptr_29 = _RAND_127[5:0];
  _RAND_128 = {1{`RANDOM}};
  archit_ptr_30 = _RAND_128[5:0];
  _RAND_129 = {1{`RANDOM}};
  archit_ptr_31 = _RAND_129[5:0];
  _RAND_130 = {1{`RANDOM}};
  io_rgRsp_0_valid_REG = _RAND_130[0:0];
  _RAND_131 = {1{`RANDOM}};
  io_rgRsp_0_bits_phy_r = _RAND_131[5:0];
  _RAND_132 = {2{`RANDOM}};
  io_rgRsp_0_bits_op_r = _RAND_132[63:0];
  _RAND_133 = {1{`RANDOM}};
  io_rgRsp_1_valid_REG = _RAND_133[0:0];
  _RAND_134 = {1{`RANDOM}};
  io_rgRsp_1_bits_phy_r = _RAND_134[5:0];
  _RAND_135 = {2{`RANDOM}};
  io_rgRsp_1_bits_op_r = _RAND_135[63:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module FakeFRegFiles(
  input   clock,
  input   reset,
  input   io_exe_writeBack_0_valid
);
  always @(posedge clock) begin
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~io_exe_writeBack_0_valid)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Regfiles.scala:324 assert( ~io.exe_writeBack(i).valid )\n"); // @[Regfiles.scala 324:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~io_exe_writeBack_0_valid) & ~reset) begin
          $fatal; // @[Regfiles.scala 324:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
endmodule
module XArbiter(
  output        io_enq_0_ready,
  input         io_enq_0_valid,
  input  [5:0]  io_enq_0_bits_rd0,
  input  [63:0] io_enq_0_bits_res,
  output        io_enq_1_ready,
  input         io_enq_1_valid,
  input  [5:0]  io_enq_1_bits_rd0,
  input  [63:0] io_enq_1_bits_res,
  output        io_enq_2_ready,
  input         io_enq_2_valid,
  input  [5:0]  io_enq_2_bits_rd0,
  input  [63:0] io_enq_2_bits_res,
  output        io_enq_3_ready,
  input         io_enq_3_valid,
  input  [5:0]  io_enq_3_bits_rd0,
  input  [63:0] io_enq_3_bits_res,
  output        io_enq_4_ready,
  input         io_enq_4_valid,
  input  [5:0]  io_enq_4_bits_rd0,
  input  [63:0] io_enq_4_bits_res,
  output        io_deq_0_valid,
  output [5:0]  io_deq_0_bits_rd0,
  output [63:0] io_deq_0_bits_res,
  output [2:0]  io_chosen_0
);
  wire [2:0] _GEN_1 = io_enq_4_valid ? 3'h4 : 3'h0; // @[XArbiter.scala 36:31 37:38]
  wire [2:0] _GEN_2 = io_enq_3_valid ? 3'h3 : _GEN_1; // @[XArbiter.scala 36:31 37:38]
  wire [2:0] _GEN_3 = io_enq_2_valid ? 3'h2 : _GEN_2; // @[XArbiter.scala 36:31 37:38]
  wire [2:0] _GEN_4 = io_enq_1_valid ? 3'h1 : _GEN_3; // @[XArbiter.scala 36:31 37:38]
  wire [1:0] _T_6 = io_enq_1_valid + io_enq_2_valid; // @[XArbiter.scala 53:23]
  wire [1:0] _GEN_23 = {{1'd0}, io_enq_0_valid}; // @[XArbiter.scala 53:23]
  wire [2:0] _T_8 = _GEN_23 + _T_6; // @[XArbiter.scala 53:23]
  wire [1:0] _T_10 = {{1'd0}, io_enq_4_valid}; // @[XArbiter.scala 53:23]
  wire [1:0] _GEN_32 = {{1'd0}, io_enq_3_valid}; // @[XArbiter.scala 53:23]
  wire [2:0] _T_12 = _GEN_32 + _T_10; // @[XArbiter.scala 53:23]
  wire [2:0] _T_14 = _T_8[1:0] + _T_12[1:0]; // @[XArbiter.scala 53:23]
  wire [5:0] _GEN_7 = 3'h1 == io_chosen_0 ? io_enq_1_bits_rd0 : io_enq_0_bits_rd0; // @[XArbiter.scala 55:{22,22}]
  wire [5:0] _GEN_8 = 3'h2 == io_chosen_0 ? io_enq_2_bits_rd0 : _GEN_7; // @[XArbiter.scala 55:{22,22}]
  wire [5:0] _GEN_9 = 3'h3 == io_chosen_0 ? io_enq_3_bits_rd0 : _GEN_8; // @[XArbiter.scala 55:{22,22}]
  wire [5:0] _GEN_10 = 3'h4 == io_chosen_0 ? io_enq_4_bits_rd0 : _GEN_9; // @[XArbiter.scala 55:{22,22}]
  wire [63:0] _GEN_13 = 3'h1 == io_chosen_0 ? io_enq_1_bits_res : io_enq_0_bits_res; // @[XArbiter.scala 55:{22,22}]
  wire [63:0] _GEN_14 = 3'h2 == io_chosen_0 ? io_enq_2_bits_res : _GEN_13; // @[XArbiter.scala 55:{22,22}]
  wire [63:0] _GEN_15 = 3'h3 == io_chosen_0 ? io_enq_3_bits_res : _GEN_14; // @[XArbiter.scala 55:{22,22}]
  wire [63:0] _GEN_16 = 3'h4 == io_chosen_0 ? io_enq_4_bits_res : _GEN_15; // @[XArbiter.scala 55:{22,22}]
  wire  _GEN_18 = 3'h0 == io_chosen_0; // @[XArbiter.scala 57:{25,25} 50:51]
  wire  _GEN_19 = 3'h1 == io_chosen_0; // @[XArbiter.scala 57:{25,25} 50:51]
  wire  _GEN_20 = 3'h2 == io_chosen_0; // @[XArbiter.scala 57:{25,25} 50:51]
  wire  _GEN_21 = 3'h3 == io_chosen_0; // @[XArbiter.scala 57:{25,25} 50:51]
  wire  _GEN_22 = 3'h4 == io_chosen_0; // @[XArbiter.scala 57:{25,25} 50:51]
  assign io_enq_0_ready = _T_14 > 3'h0 & _GEN_18; // @[XArbiter.scala 50:51 53:76]
  assign io_enq_1_ready = _T_14 > 3'h0 & _GEN_19; // @[XArbiter.scala 50:51 53:76]
  assign io_enq_2_ready = _T_14 > 3'h0 & _GEN_20; // @[XArbiter.scala 50:51 53:76]
  assign io_enq_3_ready = _T_14 > 3'h0 & _GEN_21; // @[XArbiter.scala 50:51 53:76]
  assign io_enq_4_ready = _T_14 > 3'h0 & _GEN_22; // @[XArbiter.scala 50:51 53:76]
  assign io_deq_0_valid = _T_14 > 3'h0; // @[XArbiter.scala 53:68]
  assign io_deq_0_bits_rd0 = 3'h5 == io_chosen_0 ? 6'h0 : _GEN_10; // @[XArbiter.scala 55:{22,22}]
  assign io_deq_0_bits_res = 3'h5 == io_chosen_0 ? 64'h0 : _GEN_16; // @[XArbiter.scala 55:{22,22}]
  assign io_chosen_0 = io_enq_0_valid ? 3'h0 : _GEN_4; // @[XArbiter.scala 36:31 37:38]
endmodule
module WriteBack(
  input         clock,
  input         reset,
  output [5:0]  io_xLookup_0_rsp_rs1,
  output [5:0]  io_xLookup_0_rsp_rs2,
  input  [4:0]  io_xLookup_0_req_rs1,
  input  [4:0]  io_xLookup_0_req_rs2,
  output [5:0]  io_xRename_0_rsp_rd0,
  output        io_xRename_0_req_ready,
  input         io_xRename_0_req_valid,
  input  [4:0]  io_xRename_0_req_bits_rd0,
  output [1:0]  io_irgLog_0,
  output [1:0]  io_irgLog_1,
  output [1:0]  io_irgLog_2,
  output [1:0]  io_irgLog_3,
  output [1:0]  io_irgLog_4,
  output [1:0]  io_irgLog_5,
  output [1:0]  io_irgLog_6,
  output [1:0]  io_irgLog_7,
  output [1:0]  io_irgLog_8,
  output [1:0]  io_irgLog_9,
  output [1:0]  io_irgLog_10,
  output [1:0]  io_irgLog_11,
  output [1:0]  io_irgLog_12,
  output [1:0]  io_irgLog_13,
  output [1:0]  io_irgLog_14,
  output [1:0]  io_irgLog_15,
  output [1:0]  io_irgLog_16,
  output [1:0]  io_irgLog_17,
  output [1:0]  io_irgLog_18,
  output [1:0]  io_irgLog_19,
  output [1:0]  io_irgLog_20,
  output [1:0]  io_irgLog_21,
  output [1:0]  io_irgLog_22,
  output [1:0]  io_irgLog_23,
  output [1:0]  io_irgLog_24,
  output [1:0]  io_irgLog_25,
  output [1:0]  io_irgLog_26,
  output [1:0]  io_irgLog_27,
  output [1:0]  io_irgLog_28,
  output [1:0]  io_irgLog_29,
  output [1:0]  io_irgLog_30,
  output [1:0]  io_irgLog_31,
  output [1:0]  io_irgLog_32,
  input         io_irgReq_0_valid,
  input  [5:0]  io_irgReq_0_bits,
  input         io_irgReq_1_valid,
  input  [5:0]  io_irgReq_1_bits,
  output        io_irgRsp_0_valid,
  output [5:0]  io_irgRsp_0_bits_phy,
  output [63:0] io_irgRsp_0_bits_op,
  output        io_irgRsp_1_valid,
  output [5:0]  io_irgRsp_1_bits_phy,
  output [63:0] io_irgRsp_1_bits_op,
  output        io_alu_iWriteBack_0_ready,
  input         io_alu_iWriteBack_0_valid,
  input  [5:0]  io_alu_iWriteBack_0_bits_rd0,
  input  [63:0] io_alu_iWriteBack_0_bits_res,
  output        io_bru_iWriteBack_ready,
  input         io_bru_iWriteBack_valid,
  input  [5:0]  io_bru_iWriteBack_bits_rd0,
  input  [63:0] io_bru_iWriteBack_bits_res,
  output        io_csr_iWriteBack_ready,
  input         io_csr_iWriteBack_valid,
  input  [5:0]  io_csr_iWriteBack_bits_rd0,
  input  [63:0] io_csr_iWriteBack_bits_res,
  output        io_mem_iWriteBack_ready,
  input         io_mem_iWriteBack_valid,
  input  [5:0]  io_mem_iWriteBack_bits_rd0,
  input  [63:0] io_mem_iWriteBack_bits_res,
  output        io_mul_iWriteBack_0_ready,
  input         io_mul_iWriteBack_0_valid,
  input  [5:0]  io_mul_iWriteBack_0_bits_rd0,
  input  [63:0] io_mul_iWriteBack_0_bits_res,
  input         io_mem_fWriteBack_valid,
  input         io_commit_0_is_comfirm,
  input         io_commit_0_is_MisPredict,
  input         io_commit_0_is_abort,
  input  [4:0]  io_commit_0_raw,
  input  [5:0]  io_commit_0_phy,
  input         io_commit_0_toX,
  output        io_commit_0_is_writeback,
  output [63:0] io_diffXReg_0,
  output [63:0] io_diffXReg_1,
  output [63:0] io_diffXReg_2,
  output [63:0] io_diffXReg_3,
  output [63:0] io_diffXReg_4,
  output [63:0] io_diffXReg_5,
  output [63:0] io_diffXReg_6,
  output [63:0] io_diffXReg_7,
  output [63:0] io_diffXReg_8,
  output [63:0] io_diffXReg_9,
  output [63:0] io_diffXReg_10,
  output [63:0] io_diffXReg_11,
  output [63:0] io_diffXReg_12,
  output [63:0] io_diffXReg_13,
  output [63:0] io_diffXReg_14,
  output [63:0] io_diffXReg_15,
  output [63:0] io_diffXReg_16,
  output [63:0] io_diffXReg_17,
  output [63:0] io_diffXReg_18,
  output [63:0] io_diffXReg_19,
  output [63:0] io_diffXReg_20,
  output [63:0] io_diffXReg_21,
  output [63:0] io_diffXReg_22,
  output [63:0] io_diffXReg_23,
  output [63:0] io_diffXReg_24,
  output [63:0] io_diffXReg_25,
  output [63:0] io_diffXReg_26,
  output [63:0] io_diffXReg_27,
  output [63:0] io_diffXReg_28,
  output [63:0] io_diffXReg_29,
  output [63:0] io_diffXReg_30,
  output [63:0] io_diffXReg_31
);
  wire  iReg_clock; // @[WriteBack.scala 70:20]
  wire  iReg_reset; // @[WriteBack.scala 70:20]
  wire [5:0] iReg_io_lookup_0_rsp_rs1; // @[WriteBack.scala 70:20]
  wire [5:0] iReg_io_lookup_0_rsp_rs2; // @[WriteBack.scala 70:20]
  wire [4:0] iReg_io_lookup_0_req_rs1; // @[WriteBack.scala 70:20]
  wire [4:0] iReg_io_lookup_0_req_rs2; // @[WriteBack.scala 70:20]
  wire [5:0] iReg_io_rename_0_rsp_rd0; // @[WriteBack.scala 70:20]
  wire  iReg_io_rename_0_req_ready; // @[WriteBack.scala 70:20]
  wire  iReg_io_rename_0_req_valid; // @[WriteBack.scala 70:20]
  wire [4:0] iReg_io_rename_0_req_bits_rd0; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_0; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_1; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_2; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_3; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_4; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_5; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_6; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_7; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_8; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_9; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_10; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_11; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_12; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_13; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_14; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_15; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_16; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_17; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_18; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_19; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_20; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_21; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_22; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_23; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_24; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_25; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_26; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_27; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_28; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_29; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_30; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_31; // @[WriteBack.scala 70:20]
  wire [1:0] iReg_io_rgLog_32; // @[WriteBack.scala 70:20]
  wire  iReg_io_rgReq_0_valid; // @[WriteBack.scala 70:20]
  wire [5:0] iReg_io_rgReq_0_bits; // @[WriteBack.scala 70:20]
  wire  iReg_io_rgReq_1_valid; // @[WriteBack.scala 70:20]
  wire [5:0] iReg_io_rgReq_1_bits; // @[WriteBack.scala 70:20]
  wire  iReg_io_rgRsp_0_valid; // @[WriteBack.scala 70:20]
  wire [5:0] iReg_io_rgRsp_0_bits_phy; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_rgRsp_0_bits_op; // @[WriteBack.scala 70:20]
  wire  iReg_io_rgRsp_1_valid; // @[WriteBack.scala 70:20]
  wire [5:0] iReg_io_rgRsp_1_bits_phy; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_rgRsp_1_bits_op; // @[WriteBack.scala 70:20]
  wire  iReg_io_exe_writeBack_0_ready; // @[WriteBack.scala 70:20]
  wire  iReg_io_exe_writeBack_0_valid; // @[WriteBack.scala 70:20]
  wire [5:0] iReg_io_exe_writeBack_0_bits_rd0; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_exe_writeBack_0_bits_res; // @[WriteBack.scala 70:20]
  wire  iReg_io_commit_0_is_comfirm; // @[WriteBack.scala 70:20]
  wire  iReg_io_commit_0_is_MisPredict; // @[WriteBack.scala 70:20]
  wire  iReg_io_commit_0_is_abort; // @[WriteBack.scala 70:20]
  wire [4:0] iReg_io_commit_0_raw; // @[WriteBack.scala 70:20]
  wire [5:0] iReg_io_commit_0_phy; // @[WriteBack.scala 70:20]
  wire  iReg_io_commit_0_is_writeback; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_0; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_1; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_2; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_3; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_4; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_5; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_6; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_7; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_8; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_9; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_10; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_11; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_12; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_13; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_14; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_15; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_16; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_17; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_18; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_19; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_20; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_21; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_22; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_23; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_24; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_25; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_26; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_27; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_28; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_29; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_30; // @[WriteBack.scala 70:20]
  wire [63:0] iReg_io_diffReg_31; // @[WriteBack.scala 70:20]
  wire  fReg_clock; // @[WriteBack.scala 71:97]
  wire  fReg_reset; // @[WriteBack.scala 71:97]
  wire  fReg_io_exe_writeBack_0_valid; // @[WriteBack.scala 71:97]
  wire  iwriteBack_arb_io_enq_0_ready; // @[WriteBack.scala 127:21]
  wire  iwriteBack_arb_io_enq_0_valid; // @[WriteBack.scala 127:21]
  wire [5:0] iwriteBack_arb_io_enq_0_bits_rd0; // @[WriteBack.scala 127:21]
  wire [63:0] iwriteBack_arb_io_enq_0_bits_res; // @[WriteBack.scala 127:21]
  wire  iwriteBack_arb_io_enq_1_ready; // @[WriteBack.scala 127:21]
  wire  iwriteBack_arb_io_enq_1_valid; // @[WriteBack.scala 127:21]
  wire [5:0] iwriteBack_arb_io_enq_1_bits_rd0; // @[WriteBack.scala 127:21]
  wire [63:0] iwriteBack_arb_io_enq_1_bits_res; // @[WriteBack.scala 127:21]
  wire  iwriteBack_arb_io_enq_2_ready; // @[WriteBack.scala 127:21]
  wire  iwriteBack_arb_io_enq_2_valid; // @[WriteBack.scala 127:21]
  wire [5:0] iwriteBack_arb_io_enq_2_bits_rd0; // @[WriteBack.scala 127:21]
  wire [63:0] iwriteBack_arb_io_enq_2_bits_res; // @[WriteBack.scala 127:21]
  wire  iwriteBack_arb_io_enq_3_ready; // @[WriteBack.scala 127:21]
  wire  iwriteBack_arb_io_enq_3_valid; // @[WriteBack.scala 127:21]
  wire [5:0] iwriteBack_arb_io_enq_3_bits_rd0; // @[WriteBack.scala 127:21]
  wire [63:0] iwriteBack_arb_io_enq_3_bits_res; // @[WriteBack.scala 127:21]
  wire  iwriteBack_arb_io_enq_4_ready; // @[WriteBack.scala 127:21]
  wire  iwriteBack_arb_io_enq_4_valid; // @[WriteBack.scala 127:21]
  wire [5:0] iwriteBack_arb_io_enq_4_bits_rd0; // @[WriteBack.scala 127:21]
  wire [63:0] iwriteBack_arb_io_enq_4_bits_res; // @[WriteBack.scala 127:21]
  wire  iwriteBack_arb_io_deq_0_valid; // @[WriteBack.scala 127:21]
  wire [5:0] iwriteBack_arb_io_deq_0_bits_rd0; // @[WriteBack.scala 127:21]
  wire [63:0] iwriteBack_arb_io_deq_0_bits_res; // @[WriteBack.scala 127:21]
  wire [2:0] iwriteBack_arb_io_chosen_0; // @[WriteBack.scala 127:21]
  XRegFiles iReg ( // @[WriteBack.scala 70:20]
    .clock(iReg_clock),
    .reset(iReg_reset),
    .io_lookup_0_rsp_rs1(iReg_io_lookup_0_rsp_rs1),
    .io_lookup_0_rsp_rs2(iReg_io_lookup_0_rsp_rs2),
    .io_lookup_0_req_rs1(iReg_io_lookup_0_req_rs1),
    .io_lookup_0_req_rs2(iReg_io_lookup_0_req_rs2),
    .io_rename_0_rsp_rd0(iReg_io_rename_0_rsp_rd0),
    .io_rename_0_req_ready(iReg_io_rename_0_req_ready),
    .io_rename_0_req_valid(iReg_io_rename_0_req_valid),
    .io_rename_0_req_bits_rd0(iReg_io_rename_0_req_bits_rd0),
    .io_rgLog_0(iReg_io_rgLog_0),
    .io_rgLog_1(iReg_io_rgLog_1),
    .io_rgLog_2(iReg_io_rgLog_2),
    .io_rgLog_3(iReg_io_rgLog_3),
    .io_rgLog_4(iReg_io_rgLog_4),
    .io_rgLog_5(iReg_io_rgLog_5),
    .io_rgLog_6(iReg_io_rgLog_6),
    .io_rgLog_7(iReg_io_rgLog_7),
    .io_rgLog_8(iReg_io_rgLog_8),
    .io_rgLog_9(iReg_io_rgLog_9),
    .io_rgLog_10(iReg_io_rgLog_10),
    .io_rgLog_11(iReg_io_rgLog_11),
    .io_rgLog_12(iReg_io_rgLog_12),
    .io_rgLog_13(iReg_io_rgLog_13),
    .io_rgLog_14(iReg_io_rgLog_14),
    .io_rgLog_15(iReg_io_rgLog_15),
    .io_rgLog_16(iReg_io_rgLog_16),
    .io_rgLog_17(iReg_io_rgLog_17),
    .io_rgLog_18(iReg_io_rgLog_18),
    .io_rgLog_19(iReg_io_rgLog_19),
    .io_rgLog_20(iReg_io_rgLog_20),
    .io_rgLog_21(iReg_io_rgLog_21),
    .io_rgLog_22(iReg_io_rgLog_22),
    .io_rgLog_23(iReg_io_rgLog_23),
    .io_rgLog_24(iReg_io_rgLog_24),
    .io_rgLog_25(iReg_io_rgLog_25),
    .io_rgLog_26(iReg_io_rgLog_26),
    .io_rgLog_27(iReg_io_rgLog_27),
    .io_rgLog_28(iReg_io_rgLog_28),
    .io_rgLog_29(iReg_io_rgLog_29),
    .io_rgLog_30(iReg_io_rgLog_30),
    .io_rgLog_31(iReg_io_rgLog_31),
    .io_rgLog_32(iReg_io_rgLog_32),
    .io_rgReq_0_valid(iReg_io_rgReq_0_valid),
    .io_rgReq_0_bits(iReg_io_rgReq_0_bits),
    .io_rgReq_1_valid(iReg_io_rgReq_1_valid),
    .io_rgReq_1_bits(iReg_io_rgReq_1_bits),
    .io_rgRsp_0_valid(iReg_io_rgRsp_0_valid),
    .io_rgRsp_0_bits_phy(iReg_io_rgRsp_0_bits_phy),
    .io_rgRsp_0_bits_op(iReg_io_rgRsp_0_bits_op),
    .io_rgRsp_1_valid(iReg_io_rgRsp_1_valid),
    .io_rgRsp_1_bits_phy(iReg_io_rgRsp_1_bits_phy),
    .io_rgRsp_1_bits_op(iReg_io_rgRsp_1_bits_op),
    .io_exe_writeBack_0_ready(iReg_io_exe_writeBack_0_ready),
    .io_exe_writeBack_0_valid(iReg_io_exe_writeBack_0_valid),
    .io_exe_writeBack_0_bits_rd0(iReg_io_exe_writeBack_0_bits_rd0),
    .io_exe_writeBack_0_bits_res(iReg_io_exe_writeBack_0_bits_res),
    .io_commit_0_is_comfirm(iReg_io_commit_0_is_comfirm),
    .io_commit_0_is_MisPredict(iReg_io_commit_0_is_MisPredict),
    .io_commit_0_is_abort(iReg_io_commit_0_is_abort),
    .io_commit_0_raw(iReg_io_commit_0_raw),
    .io_commit_0_phy(iReg_io_commit_0_phy),
    .io_commit_0_is_writeback(iReg_io_commit_0_is_writeback),
    .io_diffReg_0(iReg_io_diffReg_0),
    .io_diffReg_1(iReg_io_diffReg_1),
    .io_diffReg_2(iReg_io_diffReg_2),
    .io_diffReg_3(iReg_io_diffReg_3),
    .io_diffReg_4(iReg_io_diffReg_4),
    .io_diffReg_5(iReg_io_diffReg_5),
    .io_diffReg_6(iReg_io_diffReg_6),
    .io_diffReg_7(iReg_io_diffReg_7),
    .io_diffReg_8(iReg_io_diffReg_8),
    .io_diffReg_9(iReg_io_diffReg_9),
    .io_diffReg_10(iReg_io_diffReg_10),
    .io_diffReg_11(iReg_io_diffReg_11),
    .io_diffReg_12(iReg_io_diffReg_12),
    .io_diffReg_13(iReg_io_diffReg_13),
    .io_diffReg_14(iReg_io_diffReg_14),
    .io_diffReg_15(iReg_io_diffReg_15),
    .io_diffReg_16(iReg_io_diffReg_16),
    .io_diffReg_17(iReg_io_diffReg_17),
    .io_diffReg_18(iReg_io_diffReg_18),
    .io_diffReg_19(iReg_io_diffReg_19),
    .io_diffReg_20(iReg_io_diffReg_20),
    .io_diffReg_21(iReg_io_diffReg_21),
    .io_diffReg_22(iReg_io_diffReg_22),
    .io_diffReg_23(iReg_io_diffReg_23),
    .io_diffReg_24(iReg_io_diffReg_24),
    .io_diffReg_25(iReg_io_diffReg_25),
    .io_diffReg_26(iReg_io_diffReg_26),
    .io_diffReg_27(iReg_io_diffReg_27),
    .io_diffReg_28(iReg_io_diffReg_28),
    .io_diffReg_29(iReg_io_diffReg_29),
    .io_diffReg_30(iReg_io_diffReg_30),
    .io_diffReg_31(iReg_io_diffReg_31)
  );
  FakeFRegFiles fReg ( // @[WriteBack.scala 71:97]
    .clock(fReg_clock),
    .reset(fReg_reset),
    .io_exe_writeBack_0_valid(fReg_io_exe_writeBack_0_valid)
  );
  XArbiter iwriteBack_arb ( // @[WriteBack.scala 127:21]
    .io_enq_0_ready(iwriteBack_arb_io_enq_0_ready),
    .io_enq_0_valid(iwriteBack_arb_io_enq_0_valid),
    .io_enq_0_bits_rd0(iwriteBack_arb_io_enq_0_bits_rd0),
    .io_enq_0_bits_res(iwriteBack_arb_io_enq_0_bits_res),
    .io_enq_1_ready(iwriteBack_arb_io_enq_1_ready),
    .io_enq_1_valid(iwriteBack_arb_io_enq_1_valid),
    .io_enq_1_bits_rd0(iwriteBack_arb_io_enq_1_bits_rd0),
    .io_enq_1_bits_res(iwriteBack_arb_io_enq_1_bits_res),
    .io_enq_2_ready(iwriteBack_arb_io_enq_2_ready),
    .io_enq_2_valid(iwriteBack_arb_io_enq_2_valid),
    .io_enq_2_bits_rd0(iwriteBack_arb_io_enq_2_bits_rd0),
    .io_enq_2_bits_res(iwriteBack_arb_io_enq_2_bits_res),
    .io_enq_3_ready(iwriteBack_arb_io_enq_3_ready),
    .io_enq_3_valid(iwriteBack_arb_io_enq_3_valid),
    .io_enq_3_bits_rd0(iwriteBack_arb_io_enq_3_bits_rd0),
    .io_enq_3_bits_res(iwriteBack_arb_io_enq_3_bits_res),
    .io_enq_4_ready(iwriteBack_arb_io_enq_4_ready),
    .io_enq_4_valid(iwriteBack_arb_io_enq_4_valid),
    .io_enq_4_bits_rd0(iwriteBack_arb_io_enq_4_bits_rd0),
    .io_enq_4_bits_res(iwriteBack_arb_io_enq_4_bits_res),
    .io_deq_0_valid(iwriteBack_arb_io_deq_0_valid),
    .io_deq_0_bits_rd0(iwriteBack_arb_io_deq_0_bits_rd0),
    .io_deq_0_bits_res(iwriteBack_arb_io_deq_0_bits_res),
    .io_chosen_0(iwriteBack_arb_io_chosen_0)
  );
  assign io_xLookup_0_rsp_rs1 = iReg_io_lookup_0_rsp_rs1; // @[WriteBack.scala 78:23]
  assign io_xLookup_0_rsp_rs2 = iReg_io_lookup_0_rsp_rs2; // @[WriteBack.scala 78:23]
  assign io_xRename_0_rsp_rd0 = iReg_io_rename_0_rsp_rd0; // @[WriteBack.scala 76:23]
  assign io_xRename_0_req_ready = iReg_io_rename_0_req_ready; // @[WriteBack.scala 76:23]
  assign io_irgLog_0 = iReg_io_rgLog_0; // @[WriteBack.scala 118:13]
  assign io_irgLog_1 = iReg_io_rgLog_1; // @[WriteBack.scala 118:13]
  assign io_irgLog_2 = iReg_io_rgLog_2; // @[WriteBack.scala 118:13]
  assign io_irgLog_3 = iReg_io_rgLog_3; // @[WriteBack.scala 118:13]
  assign io_irgLog_4 = iReg_io_rgLog_4; // @[WriteBack.scala 118:13]
  assign io_irgLog_5 = iReg_io_rgLog_5; // @[WriteBack.scala 118:13]
  assign io_irgLog_6 = iReg_io_rgLog_6; // @[WriteBack.scala 118:13]
  assign io_irgLog_7 = iReg_io_rgLog_7; // @[WriteBack.scala 118:13]
  assign io_irgLog_8 = iReg_io_rgLog_8; // @[WriteBack.scala 118:13]
  assign io_irgLog_9 = iReg_io_rgLog_9; // @[WriteBack.scala 118:13]
  assign io_irgLog_10 = iReg_io_rgLog_10; // @[WriteBack.scala 118:13]
  assign io_irgLog_11 = iReg_io_rgLog_11; // @[WriteBack.scala 118:13]
  assign io_irgLog_12 = iReg_io_rgLog_12; // @[WriteBack.scala 118:13]
  assign io_irgLog_13 = iReg_io_rgLog_13; // @[WriteBack.scala 118:13]
  assign io_irgLog_14 = iReg_io_rgLog_14; // @[WriteBack.scala 118:13]
  assign io_irgLog_15 = iReg_io_rgLog_15; // @[WriteBack.scala 118:13]
  assign io_irgLog_16 = iReg_io_rgLog_16; // @[WriteBack.scala 118:13]
  assign io_irgLog_17 = iReg_io_rgLog_17; // @[WriteBack.scala 118:13]
  assign io_irgLog_18 = iReg_io_rgLog_18; // @[WriteBack.scala 118:13]
  assign io_irgLog_19 = iReg_io_rgLog_19; // @[WriteBack.scala 118:13]
  assign io_irgLog_20 = iReg_io_rgLog_20; // @[WriteBack.scala 118:13]
  assign io_irgLog_21 = iReg_io_rgLog_21; // @[WriteBack.scala 118:13]
  assign io_irgLog_22 = iReg_io_rgLog_22; // @[WriteBack.scala 118:13]
  assign io_irgLog_23 = iReg_io_rgLog_23; // @[WriteBack.scala 118:13]
  assign io_irgLog_24 = iReg_io_rgLog_24; // @[WriteBack.scala 118:13]
  assign io_irgLog_25 = iReg_io_rgLog_25; // @[WriteBack.scala 118:13]
  assign io_irgLog_26 = iReg_io_rgLog_26; // @[WriteBack.scala 118:13]
  assign io_irgLog_27 = iReg_io_rgLog_27; // @[WriteBack.scala 118:13]
  assign io_irgLog_28 = iReg_io_rgLog_28; // @[WriteBack.scala 118:13]
  assign io_irgLog_29 = iReg_io_rgLog_29; // @[WriteBack.scala 118:13]
  assign io_irgLog_30 = iReg_io_rgLog_30; // @[WriteBack.scala 118:13]
  assign io_irgLog_31 = iReg_io_rgLog_31; // @[WriteBack.scala 118:13]
  assign io_irgLog_32 = iReg_io_rgLog_32; // @[WriteBack.scala 118:13]
  assign io_irgRsp_0_valid = iReg_io_rgRsp_0_valid; // @[WriteBack.scala 113:13]
  assign io_irgRsp_0_bits_phy = iReg_io_rgRsp_0_bits_phy; // @[WriteBack.scala 113:13]
  assign io_irgRsp_0_bits_op = iReg_io_rgRsp_0_bits_op; // @[WriteBack.scala 113:13]
  assign io_irgRsp_1_valid = iReg_io_rgRsp_1_valid; // @[WriteBack.scala 113:13]
  assign io_irgRsp_1_bits_phy = iReg_io_rgRsp_1_bits_phy; // @[WriteBack.scala 113:13]
  assign io_irgRsp_1_bits_op = iReg_io_rgRsp_1_bits_op; // @[WriteBack.scala 113:13]
  assign io_alu_iWriteBack_0_ready = iwriteBack_arb_io_enq_0_ready; // @[WriteBack.scala 129:16]
  assign io_bru_iWriteBack_ready = iwriteBack_arb_io_enq_1_ready; // @[WriteBack.scala 129:16]
  assign io_csr_iWriteBack_ready = iwriteBack_arb_io_enq_2_ready; // @[WriteBack.scala 129:16]
  assign io_mem_iWriteBack_ready = iwriteBack_arb_io_enq_3_ready; // @[WriteBack.scala 129:16]
  assign io_mul_iWriteBack_0_ready = iwriteBack_arb_io_enq_4_ready; // @[WriteBack.scala 129:16]
  assign io_commit_0_is_writeback = io_commit_0_toX & iReg_io_commit_0_is_writeback; // @[WriteBack.scala 102:{41,60}]
  assign io_diffXReg_0 = iReg_io_diffReg_0; // @[WriteBack.scala 109:19]
  assign io_diffXReg_1 = iReg_io_diffReg_1; // @[WriteBack.scala 109:19]
  assign io_diffXReg_2 = iReg_io_diffReg_2; // @[WriteBack.scala 109:19]
  assign io_diffXReg_3 = iReg_io_diffReg_3; // @[WriteBack.scala 109:19]
  assign io_diffXReg_4 = iReg_io_diffReg_4; // @[WriteBack.scala 109:19]
  assign io_diffXReg_5 = iReg_io_diffReg_5; // @[WriteBack.scala 109:19]
  assign io_diffXReg_6 = iReg_io_diffReg_6; // @[WriteBack.scala 109:19]
  assign io_diffXReg_7 = iReg_io_diffReg_7; // @[WriteBack.scala 109:19]
  assign io_diffXReg_8 = iReg_io_diffReg_8; // @[WriteBack.scala 109:19]
  assign io_diffXReg_9 = iReg_io_diffReg_9; // @[WriteBack.scala 109:19]
  assign io_diffXReg_10 = iReg_io_diffReg_10; // @[WriteBack.scala 109:19]
  assign io_diffXReg_11 = iReg_io_diffReg_11; // @[WriteBack.scala 109:19]
  assign io_diffXReg_12 = iReg_io_diffReg_12; // @[WriteBack.scala 109:19]
  assign io_diffXReg_13 = iReg_io_diffReg_13; // @[WriteBack.scala 109:19]
  assign io_diffXReg_14 = iReg_io_diffReg_14; // @[WriteBack.scala 109:19]
  assign io_diffXReg_15 = iReg_io_diffReg_15; // @[WriteBack.scala 109:19]
  assign io_diffXReg_16 = iReg_io_diffReg_16; // @[WriteBack.scala 109:19]
  assign io_diffXReg_17 = iReg_io_diffReg_17; // @[WriteBack.scala 109:19]
  assign io_diffXReg_18 = iReg_io_diffReg_18; // @[WriteBack.scala 109:19]
  assign io_diffXReg_19 = iReg_io_diffReg_19; // @[WriteBack.scala 109:19]
  assign io_diffXReg_20 = iReg_io_diffReg_20; // @[WriteBack.scala 109:19]
  assign io_diffXReg_21 = iReg_io_diffReg_21; // @[WriteBack.scala 109:19]
  assign io_diffXReg_22 = iReg_io_diffReg_22; // @[WriteBack.scala 109:19]
  assign io_diffXReg_23 = iReg_io_diffReg_23; // @[WriteBack.scala 109:19]
  assign io_diffXReg_24 = iReg_io_diffReg_24; // @[WriteBack.scala 109:19]
  assign io_diffXReg_25 = iReg_io_diffReg_25; // @[WriteBack.scala 109:19]
  assign io_diffXReg_26 = iReg_io_diffReg_26; // @[WriteBack.scala 109:19]
  assign io_diffXReg_27 = iReg_io_diffReg_27; // @[WriteBack.scala 109:19]
  assign io_diffXReg_28 = iReg_io_diffReg_28; // @[WriteBack.scala 109:19]
  assign io_diffXReg_29 = iReg_io_diffReg_29; // @[WriteBack.scala 109:19]
  assign io_diffXReg_30 = iReg_io_diffReg_30; // @[WriteBack.scala 109:19]
  assign io_diffXReg_31 = iReg_io_diffReg_31; // @[WriteBack.scala 109:19]
  assign iReg_clock = clock;
  assign iReg_reset = reset;
  assign iReg_io_lookup_0_req_rs1 = io_xLookup_0_req_rs1; // @[WriteBack.scala 78:23]
  assign iReg_io_lookup_0_req_rs2 = io_xLookup_0_req_rs2; // @[WriteBack.scala 78:23]
  assign iReg_io_rename_0_req_valid = io_xRename_0_req_valid; // @[WriteBack.scala 76:23]
  assign iReg_io_rename_0_req_bits_rd0 = io_xRename_0_req_bits_rd0; // @[WriteBack.scala 76:23]
  assign iReg_io_rgReq_0_valid = io_irgReq_0_valid; // @[WriteBack.scala 112:17]
  assign iReg_io_rgReq_0_bits = io_irgReq_0_bits; // @[WriteBack.scala 112:17]
  assign iReg_io_rgReq_1_valid = io_irgReq_1_valid; // @[WriteBack.scala 112:17]
  assign iReg_io_rgReq_1_bits = io_irgReq_1_bits; // @[WriteBack.scala 112:17]
  assign iReg_io_exe_writeBack_0_valid = iwriteBack_arb_io_deq_0_valid; // @[WriteBack.scala 136:16]
  assign iReg_io_exe_writeBack_0_bits_rd0 = iwriteBack_arb_io_deq_0_bits_rd0; // @[WriteBack.scala 136:16]
  assign iReg_io_exe_writeBack_0_bits_res = iwriteBack_arb_io_deq_0_bits_res; // @[WriteBack.scala 136:16]
  assign iReg_io_commit_0_is_comfirm = io_commit_0_toX & io_commit_0_is_comfirm; // @[WriteBack.scala 102:{41,60} 84:37]
  assign iReg_io_commit_0_is_MisPredict = io_commit_0_is_MisPredict; // @[WriteBack.scala 102:{41,60} 85:37]
  assign iReg_io_commit_0_is_abort = io_commit_0_is_abort; // @[WriteBack.scala 102:{41,60} 86:37]
  assign iReg_io_commit_0_raw = io_commit_0_toX ? io_commit_0_raw : 5'h0; // @[WriteBack.scala 102:{41,60} 87:37]
  assign iReg_io_commit_0_phy = io_commit_0_toX ? io_commit_0_phy : 6'h0; // @[WriteBack.scala 102:{41,60} 88:37]
  assign fReg_clock = clock;
  assign fReg_reset = reset;
  assign fReg_io_exe_writeBack_0_valid = io_mem_fWriteBack_valid; // @[WriteBack.scala 141:28]
  assign iwriteBack_arb_io_enq_0_valid = io_alu_iWriteBack_0_valid; // @[WriteBack.scala 129:16]
  assign iwriteBack_arb_io_enq_0_bits_rd0 = io_alu_iWriteBack_0_bits_rd0; // @[WriteBack.scala 129:16]
  assign iwriteBack_arb_io_enq_0_bits_res = io_alu_iWriteBack_0_bits_res; // @[WriteBack.scala 129:16]
  assign iwriteBack_arb_io_enq_1_valid = io_bru_iWriteBack_valid; // @[WriteBack.scala 129:16]
  assign iwriteBack_arb_io_enq_1_bits_rd0 = io_bru_iWriteBack_bits_rd0; // @[WriteBack.scala 129:16]
  assign iwriteBack_arb_io_enq_1_bits_res = io_bru_iWriteBack_bits_res; // @[WriteBack.scala 129:16]
  assign iwriteBack_arb_io_enq_2_valid = io_csr_iWriteBack_valid; // @[WriteBack.scala 129:16]
  assign iwriteBack_arb_io_enq_2_bits_rd0 = io_csr_iWriteBack_bits_rd0; // @[WriteBack.scala 129:16]
  assign iwriteBack_arb_io_enq_2_bits_res = io_csr_iWriteBack_bits_res; // @[WriteBack.scala 129:16]
  assign iwriteBack_arb_io_enq_3_valid = io_mem_iWriteBack_valid; // @[WriteBack.scala 129:16]
  assign iwriteBack_arb_io_enq_3_bits_rd0 = io_mem_iWriteBack_bits_rd0; // @[WriteBack.scala 129:16]
  assign iwriteBack_arb_io_enq_3_bits_res = io_mem_iWriteBack_bits_res; // @[WriteBack.scala 129:16]
  assign iwriteBack_arb_io_enq_4_valid = io_mul_iWriteBack_0_valid; // @[WriteBack.scala 129:16]
  assign iwriteBack_arb_io_enq_4_bits_rd0 = io_mul_iWriteBack_0_bits_rd0; // @[WriteBack.scala 129:16]
  assign iwriteBack_arb_io_enq_4_bits_res = io_mul_iWriteBack_0_bits_res; // @[WriteBack.scala 129:16]
endmodule
module ReDirect_3(
  output        io_enq_0_ready,
  input         io_enq_0_valid,
  input         io_enq_0_bits_isPredictTaken,
  input         io_enq_0_bits_isFinalTaken,
  input  [63:0] io_enq_0_bits_finalTarget,
  input         io_deq_0_ready,
  output        io_deq_0_valid,
  output        io_deq_0_bits_isPredictTaken,
  output        io_deq_0_bits_isFinalTaken,
  output [63:0] io_deq_0_bits_finalTarget,
  input         io_mapper_0
);
  assign io_enq_0_ready = io_mapper_0 & io_deq_0_ready; // @[RePort.scala 161:22 180:{28,40}]
  assign io_deq_0_valid = io_mapper_0 & io_enq_0_valid; // @[RePort.scala 159:21 180:{28,40}]
  assign io_deq_0_bits_isPredictTaken = io_mapper_0 & io_enq_0_bits_isPredictTaken; // @[RePort.scala 160:21 180:{28,40}]
  assign io_deq_0_bits_isFinalTaken = io_mapper_0 & io_enq_0_bits_isFinalTaken; // @[RePort.scala 160:21 180:{28,40}]
  assign io_deq_0_bits_finalTarget = io_mapper_0 ? io_enq_0_bits_finalTarget : 64'h0; // @[RePort.scala 160:21 180:{28,40}]
endmodule
module ReDirect_4(
  output        io_enq_0_ready,
  input         io_enq_0_valid,
  input  [38:0] io_enq_0_bits_btbResp_target,
  input  [38:0] io_enq_0_bits_rasResp_target,
  input         io_enq_0_bits_isRas,
  input  [63:0] io_enq_0_bits_finalTarget,
  input         io_deq_0_ready,
  output        io_deq_0_valid,
  output [38:0] io_deq_0_bits_btbResp_target,
  output [38:0] io_deq_0_bits_rasResp_target,
  output        io_deq_0_bits_isRas,
  output [63:0] io_deq_0_bits_finalTarget,
  input         io_mapper_0
);
  assign io_enq_0_ready = io_mapper_0 & io_deq_0_ready; // @[RePort.scala 161:22 180:{28,40}]
  assign io_deq_0_valid = io_mapper_0 & io_enq_0_valid; // @[RePort.scala 159:21 180:{28,40}]
  assign io_deq_0_bits_btbResp_target = io_mapper_0 ? io_enq_0_bits_btbResp_target : 39'h0; // @[RePort.scala 160:21 180:{28,40}]
  assign io_deq_0_bits_rasResp_target = io_mapper_0 ? io_enq_0_bits_rasResp_target : 39'h0; // @[RePort.scala 160:21 180:{28,40}]
  assign io_deq_0_bits_isRas = io_mapper_0 & io_enq_0_bits_isRas; // @[RePort.scala 160:21 180:{28,40}]
  assign io_deq_0_bits_finalTarget = io_mapper_0 ? io_enq_0_bits_finalTarget : 64'h0; // @[RePort.scala 160:21 180:{28,40}]
endmodule
module ReDirect_5(
  output        io_enq_0_ready,
  input         io_enq_0_valid,
  input  [11:0] io_enq_0_bits_addr,
  input  [63:0] io_enq_0_bits_dat_i,
  input         io_enq_0_bits_op_rw,
  input         io_enq_0_bits_op_rs,
  input         io_enq_0_bits_op_rc,
  input         io_deq_0_ready,
  output        io_deq_0_valid,
  output [11:0] io_deq_0_bits_addr,
  output [63:0] io_deq_0_bits_dat_i,
  output        io_deq_0_bits_op_rw,
  output        io_deq_0_bits_op_rs,
  output        io_deq_0_bits_op_rc,
  input         io_mapper_0
);
  assign io_enq_0_ready = io_mapper_0 & io_deq_0_ready; // @[RePort.scala 161:22 180:{28,40}]
  assign io_deq_0_valid = io_mapper_0 & io_enq_0_valid; // @[RePort.scala 159:21 180:{28,40}]
  assign io_deq_0_bits_addr = io_mapper_0 ? io_enq_0_bits_addr : 12'h0; // @[RePort.scala 160:21 180:{28,40}]
  assign io_deq_0_bits_dat_i = io_mapper_0 ? io_enq_0_bits_dat_i : 64'h0; // @[RePort.scala 160:21 180:{28,40}]
  assign io_deq_0_bits_op_rw = io_mapper_0 & io_enq_0_bits_op_rw; // @[RePort.scala 160:21 180:{28,40}]
  assign io_deq_0_bits_op_rs = io_mapper_0 & io_enq_0_bits_op_rs; // @[RePort.scala 160:21 180:{28,40}]
  assign io_deq_0_bits_op_rc = io_mapper_0 & io_enq_0_bits_op_rc; // @[RePort.scala 160:21 180:{28,40}]
endmodule
module Commit(
  input         clock,
  input         reset,
  output        io_cm_op_0_is_comfirm,
  output        io_cm_op_0_is_MisPredict,
  output        io_cm_op_0_is_abort,
  output [4:0]  io_cm_op_0_raw,
  output [5:0]  io_cm_op_0_phy,
  output        io_cm_op_0_toX,
  input         io_cm_op_0_is_writeback,
  output        io_rod_0_ready,
  input         io_rod_0_valid,
  input  [38:0] io_rod_0_bits_pc,
  input  [4:0]  io_rod_0_bits_rd0_raw,
  input  [5:0]  io_rod_0_bits_rd0_phy,
  input         io_rod_0_bits_is_branch,
  input         io_rod_0_bits_is_jalr,
  input         io_rod_0_bits_is_lu,
  input         io_rod_0_bits_is_su,
  input         io_rod_0_bits_is_amo,
  input         io_rod_0_bits_is_fence_i,
  input         io_rod_0_bits_is_sfence_vma,
  input         io_rod_0_bits_is_wfi,
  input         io_rod_0_bits_is_csr,
  input         io_rod_0_bits_is_fpu,
  input         io_rod_0_bits_is_fcsr,
  input         io_rod_0_bits_is_xcmm,
  input         io_rod_0_bits_privil_ecall,
  input         io_rod_0_bits_privil_ebreak,
  input         io_rod_0_bits_privil_mret,
  input         io_rod_0_bits_privil_sret,
  input         io_rod_0_bits_privil_dret,
  input         io_rod_0_bits_privil_is_access_fault,
  input         io_rod_0_bits_privil_is_paging_fault,
  input         io_rod_0_bits_is_illeage,
  output        io_cmm_lsu_is_amo_pending,
  output        io_cmm_lsu_is_store_commit_0,
  input         io_lsu_cmm_is_access_fault,
  input         io_lsu_cmm_is_paging_fault,
  input         io_lsu_cmm_is_misAlign,
  input  [63:0] io_lsu_cmm_trap_addr,
  input         io_csr_addr_valid,
  input  [11:0] io_csr_addr_bits,
  output        io_csr_data_valid,
  output [63:0] io_csr_data_bits,
  output        io_csr_cmm_op_ready,
  input         io_csr_cmm_op_valid,
  input  [11:0] io_csr_cmm_op_bits_addr,
  input  [63:0] io_csr_cmm_op_bits_dat_i,
  input         io_csr_cmm_op_bits_op_rw,
  input         io_csr_cmm_op_bits_op_rs,
  input         io_csr_cmm_op_bits_op_rc,
  output        io_bctq_ready,
  input         io_bctq_valid,
  input         io_bctq_bits_isPredictTaken,
  input         io_bctq_bits_isFinalTaken,
  input  [63:0] io_bctq_bits_finalTarget,
  output        io_jctq_ready,
  input         io_jctq_valid,
  input  [38:0] io_jctq_bits_btbResp_target,
  input  [38:0] io_jctq_bits_rasResp_target,
  input         io_jctq_bits_isRas,
  input  [63:0] io_jctq_bits_finalTarget,
  output        io_cmmRedirect_valid,
  output [63:0] io_cmmRedirect_bits_pc,
  input  [63:0] io_if_cmm_ill_vaddr,
  output        io_ifence,
  output [63:0] io_cmm_mmu_satp,
  output [1:0]  io_cmm_mmu_priv_lvl_if,
  output [1:0]  io_cmm_mmu_priv_lvl_ls,
  output [63:0] io_cmm_mmu_mstatus,
  output [63:0] io_cmm_mmu_sstatus,
  output        io_cmm_mmu_sfence_vma,
  output        io_dm_hartIsInReset,
  input         io_dm_hartResetReq,
  input         io_dm_hartHaltReq,
  input         io_rtc_clock,
  input         io_aclint_msi,
  input         io_aclint_mti,
  input         io_aclint_ssi,
  input         io_aclint_sti,
  input         io_plic_mei,
  input         io_plic_sei,
  output [63:0] io_diff_commit_pc_0,
  output        io_diff_commit_comfirm_0,
  output        io_diff_commit_abort_0,
  output [1:0]  io_diff_commit_priv_lvl,
  output        io_diff_commit_is_ecall_M,
  output        io_diff_commit_is_ecall_S,
  output        io_diff_commit_is_ecall_U,
  output [63:0] io_diff_csr_mstatus,
  output [63:0] io_diff_csr_mtvec,
  output [63:0] io_diff_csr_mscratch,
  output [63:0] io_diff_csr_mepc,
  output [63:0] io_diff_csr_mcause,
  output [63:0] io_diff_csr_mtval,
  output [63:0] io_diff_csr_marchid,
  output [63:0] io_diff_csr_misa,
  output [63:0] io_diff_csr_mie,
  output [63:0] io_diff_csr_mip,
  output [63:0] io_diff_csr_medeleg,
  output [63:0] io_diff_csr_mideleg,
  output [63:0] io_diff_csr_stvec,
  output [63:0] io_diff_csr_sscratch,
  output [63:0] io_diff_csr_sepc,
  output [63:0] io_diff_csr_scause,
  output [63:0] io_diff_csr_stval,
  output [63:0] io_diff_csr_satp,
  output [31:0] io_diff_csr_fflags,
  output [7:0]  io_diff_csr_frm,
  output [63:0] io_diff_csr_mcycle,
  output [63:0] io_diff_csr_minstret
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [63:0] _RAND_4;
  reg [63:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [63:0] _RAND_7;
  reg [63:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [63:0] _RAND_10;
  reg [63:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [63:0] _RAND_14;
  reg [63:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [63:0] _RAND_30;
  reg [63:0] _RAND_31;
  reg [63:0] _RAND_32;
  reg [31:0] _RAND_33;
  reg [31:0] _RAND_34;
  reg [31:0] _RAND_35;
  reg [31:0] _RAND_36;
  reg [31:0] _RAND_37;
  reg [31:0] _RAND_38;
  reg [63:0] _RAND_39;
  reg [31:0] _RAND_40;
  reg [63:0] _RAND_41;
  reg [63:0] _RAND_42;
  reg [31:0] _RAND_43;
  reg [63:0] _RAND_44;
  reg [63:0] _RAND_45;
  reg [31:0] _RAND_46;
  reg [31:0] _RAND_47;
  reg [31:0] _RAND_48;
  reg [31:0] _RAND_49;
  reg [31:0] _RAND_50;
  reg [31:0] _RAND_51;
  reg [63:0] _RAND_52;
  reg [63:0] _RAND_53;
  reg [63:0] _RAND_54;
  reg [63:0] _RAND_55;
  reg [63:0] _RAND_56;
  reg [63:0] _RAND_57;
  reg [63:0] _RAND_58;
  reg [63:0] _RAND_59;
  reg [31:0] _RAND_60;
  reg [31:0] _RAND_61;
  reg [31:0] _RAND_62;
  reg [31:0] _RAND_63;
  reg [31:0] _RAND_64;
  reg [31:0] _RAND_65;
  reg [63:0] _RAND_66;
  reg [63:0] _RAND_67;
  reg [63:0] _RAND_68;
  reg [63:0] _RAND_69;
  reg [31:0] _RAND_70;
  reg [31:0] _RAND_71;
  reg [31:0] _RAND_72;
  reg [31:0] _RAND_73;
  reg [31:0] _RAND_74;
  reg [31:0] _RAND_75;
`endif // RANDOMIZE_REG_INIT
  wire  bctq_mdl_io_enq_0_ready; // @[RePort.scala 188:21]
  wire  bctq_mdl_io_enq_0_valid; // @[RePort.scala 188:21]
  wire  bctq_mdl_io_enq_0_bits_isPredictTaken; // @[RePort.scala 188:21]
  wire  bctq_mdl_io_enq_0_bits_isFinalTaken; // @[RePort.scala 188:21]
  wire [63:0] bctq_mdl_io_enq_0_bits_finalTarget; // @[RePort.scala 188:21]
  wire  bctq_mdl_io_deq_0_ready; // @[RePort.scala 188:21]
  wire  bctq_mdl_io_deq_0_valid; // @[RePort.scala 188:21]
  wire  bctq_mdl_io_deq_0_bits_isPredictTaken; // @[RePort.scala 188:21]
  wire  bctq_mdl_io_deq_0_bits_isFinalTaken; // @[RePort.scala 188:21]
  wire [63:0] bctq_mdl_io_deq_0_bits_finalTarget; // @[RePort.scala 188:21]
  wire  bctq_mdl_io_mapper_0; // @[RePort.scala 188:21]
  wire  jctq_mdl_io_enq_0_ready; // @[RePort.scala 188:21]
  wire  jctq_mdl_io_enq_0_valid; // @[RePort.scala 188:21]
  wire [38:0] jctq_mdl_io_enq_0_bits_btbResp_target; // @[RePort.scala 188:21]
  wire [38:0] jctq_mdl_io_enq_0_bits_rasResp_target; // @[RePort.scala 188:21]
  wire  jctq_mdl_io_enq_0_bits_isRas; // @[RePort.scala 188:21]
  wire [63:0] jctq_mdl_io_enq_0_bits_finalTarget; // @[RePort.scala 188:21]
  wire  jctq_mdl_io_deq_0_ready; // @[RePort.scala 188:21]
  wire  jctq_mdl_io_deq_0_valid; // @[RePort.scala 188:21]
  wire [38:0] jctq_mdl_io_deq_0_bits_btbResp_target; // @[RePort.scala 188:21]
  wire [38:0] jctq_mdl_io_deq_0_bits_rasResp_target; // @[RePort.scala 188:21]
  wire  jctq_mdl_io_deq_0_bits_isRas; // @[RePort.scala 188:21]
  wire [63:0] jctq_mdl_io_deq_0_bits_finalTarget; // @[RePort.scala 188:21]
  wire  jctq_mdl_io_mapper_0; // @[RePort.scala 188:21]
  wire  csrExe_mdl_io_enq_0_ready; // @[RePort.scala 188:21]
  wire  csrExe_mdl_io_enq_0_valid; // @[RePort.scala 188:21]
  wire [11:0] csrExe_mdl_io_enq_0_bits_addr; // @[RePort.scala 188:21]
  wire [63:0] csrExe_mdl_io_enq_0_bits_dat_i; // @[RePort.scala 188:21]
  wire  csrExe_mdl_io_enq_0_bits_op_rw; // @[RePort.scala 188:21]
  wire  csrExe_mdl_io_enq_0_bits_op_rs; // @[RePort.scala 188:21]
  wire  csrExe_mdl_io_enq_0_bits_op_rc; // @[RePort.scala 188:21]
  wire  csrExe_mdl_io_deq_0_ready; // @[RePort.scala 188:21]
  wire  csrExe_mdl_io_deq_0_valid; // @[RePort.scala 188:21]
  wire [11:0] csrExe_mdl_io_deq_0_bits_addr; // @[RePort.scala 188:21]
  wire [63:0] csrExe_mdl_io_deq_0_bits_dat_i; // @[RePort.scala 188:21]
  wire  csrExe_mdl_io_deq_0_bits_op_rw; // @[RePort.scala 188:21]
  wire  csrExe_mdl_io_deq_0_bits_op_rs; // @[RePort.scala 188:21]
  wire  csrExe_mdl_io_deq_0_bits_op_rc; // @[RePort.scala 188:21]
  wire  csrExe_mdl_io_mapper_0; // @[RePort.scala 188:21]
  wire  fcsrExe_mdl_io_enq_0_ready; // @[RePort.scala 188:21]
  wire  fcsrExe_mdl_io_enq_0_valid; // @[RePort.scala 188:21]
  wire [11:0] fcsrExe_mdl_io_enq_0_bits_addr; // @[RePort.scala 188:21]
  wire [63:0] fcsrExe_mdl_io_enq_0_bits_dat_i; // @[RePort.scala 188:21]
  wire  fcsrExe_mdl_io_enq_0_bits_op_rw; // @[RePort.scala 188:21]
  wire  fcsrExe_mdl_io_enq_0_bits_op_rs; // @[RePort.scala 188:21]
  wire  fcsrExe_mdl_io_enq_0_bits_op_rc; // @[RePort.scala 188:21]
  wire  fcsrExe_mdl_io_deq_0_ready; // @[RePort.scala 188:21]
  wire  fcsrExe_mdl_io_deq_0_valid; // @[RePort.scala 188:21]
  wire [11:0] fcsrExe_mdl_io_deq_0_bits_addr; // @[RePort.scala 188:21]
  wire [63:0] fcsrExe_mdl_io_deq_0_bits_dat_i; // @[RePort.scala 188:21]
  wire  fcsrExe_mdl_io_deq_0_bits_op_rw; // @[RePort.scala 188:21]
  wire  fcsrExe_mdl_io_deq_0_bits_op_rs; // @[RePort.scala 188:21]
  wire  fcsrExe_mdl_io_deq_0_bits_op_rc; // @[RePort.scala 188:21]
  wire  fcsrExe_mdl_io_mapper_0; // @[RePort.scala 188:21]
  reg [1:0] csrfiles_priv_lvl; // @[Commit.scala 322:21]
  reg  csrfiles_DMode; // @[Commit.scala 322:21]
  reg [2:0] csrfiles_fcsr_frm; // @[Commit.scala 322:21]
  reg [4:0] csrfiles_fcsr_fflags; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_time; // @[Commit.scala 322:21]
  reg [61:0] csrfiles_stvec_base; // @[Commit.scala 322:21]
  reg [31:0] csrfiles_scounteren_hpm; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_sscratch; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_sepc; // @[Commit.scala 322:21]
  reg  csrfiles_scause_interrupt; // @[Commit.scala 322:21]
  reg [62:0] csrfiles_scause_exception_code; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_stval; // @[Commit.scala 322:21]
  reg [3:0] csrfiles_satp_mode; // @[Commit.scala 322:21]
  reg [15:0] csrfiles_satp_asid; // @[Commit.scala 322:21]
  reg [43:0] csrfiles_satp_ppn; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_marchid; // @[Commit.scala 322:21]
  reg  csrfiles_mstatus_sd; // @[Commit.scala 322:21]
  reg  csrfiles_mstatus_tsr; // @[Commit.scala 322:21]
  reg  csrfiles_mstatus_tw; // @[Commit.scala 322:21]
  reg  csrfiles_mstatus_tvm; // @[Commit.scala 322:21]
  reg  csrfiles_mstatus_mxr; // @[Commit.scala 322:21]
  reg  csrfiles_mstatus_sum; // @[Commit.scala 322:21]
  reg  csrfiles_mstatus_mprv; // @[Commit.scala 322:21]
  reg [1:0] csrfiles_mstatus_fs; // @[Commit.scala 322:21]
  reg [1:0] csrfiles_mstatus_mpp; // @[Commit.scala 322:21]
  reg  csrfiles_mstatus_spp; // @[Commit.scala 322:21]
  reg  csrfiles_mstatus_mpie; // @[Commit.scala 322:21]
  reg  csrfiles_mstatus_spie; // @[Commit.scala 322:21]
  reg  csrfiles_mstatus_mie; // @[Commit.scala 322:21]
  reg  csrfiles_mstatus_sie; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_misa; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_medeleg; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_mideleg; // @[Commit.scala 322:21]
  reg  csrfiles_mie_mei; // @[Commit.scala 322:21]
  reg  csrfiles_mie_sei; // @[Commit.scala 322:21]
  reg  csrfiles_mie_mti; // @[Commit.scala 322:21]
  reg  csrfiles_mie_sti; // @[Commit.scala 322:21]
  reg  csrfiles_mie_msi; // @[Commit.scala 322:21]
  reg  csrfiles_mie_ssi; // @[Commit.scala 322:21]
  reg [61:0] csrfiles_mtvec_base; // @[Commit.scala 322:21]
  reg [31:0] csrfiles_mcounteren_hpm; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_mscratch; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_mepc; // @[Commit.scala 322:21]
  reg  csrfiles_mcause_interrupt; // @[Commit.scala 322:21]
  reg [62:0] csrfiles_mcause_exception_code; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_mtval; // @[Commit.scala 322:21]
  reg  csrfiles_mip_mei; // @[Commit.scala 322:21]
  reg  csrfiles_mip_sei; // @[Commit.scala 322:21]
  reg  csrfiles_mip_mti; // @[Commit.scala 322:21]
  reg  csrfiles_mip_sti; // @[Commit.scala 322:21]
  reg  csrfiles_mip_msi; // @[Commit.scala 322:21]
  reg  csrfiles_mip_ssi; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_mtinst; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_mtval2; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_mcycle; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_minstret; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_tselect; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_tdata1; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_tdata2; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_tdata3; // @[Commit.scala 322:21]
  reg  csrfiles_dcsr_ebreakm; // @[Commit.scala 322:21]
  reg  csrfiles_dcsr_ebreaks; // @[Commit.scala 322:21]
  reg  csrfiles_dcsr_ebreaku; // @[Commit.scala 322:21]
  reg [2:0] csrfiles_dcsr_cause; // @[Commit.scala 322:21]
  reg  csrfiles_dcsr_step; // @[Commit.scala 322:21]
  reg [1:0] csrfiles_dcsr_prv; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_dpc; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_dscratch0; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_dscratch1; // @[Commit.scala 322:21]
  reg [63:0] csrfiles_dscratch2; // @[Commit.scala 322:21]
  wire  _is_xRet_is_mRet_T = csrfiles_priv_lvl == 2'h3; // @[Commit.scala 165:55]
  wire  is_xRet_is_mRet = io_rod_0_bits_privil_mret & csrfiles_priv_lvl == 2'h3; // @[Commit.scala 165:35]
  wire  _is_xRet_is_sRet_T_1 = csrfiles_priv_lvl == 2'h1; // @[Commit.scala 170:91]
  wire  is_xRet_is_sRet = io_rod_0_bits_privil_sret & (_is_xRet_is_mRet_T | csrfiles_priv_lvl == 2'h1 & ~
    csrfiles_mstatus_tsr); // @[Commit.scala 170:35]
  wire  is_xRet_is_dRet = io_rod_0_bits_privil_dret & csrfiles_DMode; // @[Commit.scala 175:35]
  wire  is_xRet = is_xRet_is_mRet | is_xRet_is_sRet | is_xRet_is_dRet; // @[Commit.scala 217:37]
  wire  is_trap_is_interrupt_is_m_interrupt_is_msi = csrfiles_mip_msi & csrfiles_mie_msi & csrfiles_mstatus_mie; // @[CsrFiles.scala 284:36]
  wire  is_trap_is_interrupt_is_m_interrupt_is_mti = csrfiles_mip_mti & csrfiles_mie_mti & csrfiles_mstatus_mie; // @[CsrFiles.scala 292:36]
  wire  is_trap_is_interrupt_is_m_interrupt_is_mei = csrfiles_mip_mei & csrfiles_mie_mei & csrfiles_mstatus_mie; // @[CsrFiles.scala 300:36]
  wire  is_trap_is_interrupt_is_m_interrupt = is_trap_is_interrupt_is_m_interrupt_is_msi |
    is_trap_is_interrupt_is_m_interrupt_is_mti | is_trap_is_interrupt_is_m_interrupt_is_mei; // @[CsrFiles.scala 304:42]
  wire  is_trap_is_interrupt_is_s_interrupt_is_ssi = csrfiles_mip_ssi & csrfiles_mie_ssi & csrfiles_mstatus_sie & ~(
    _is_xRet_is_mRet_T & csrfiles_mideleg[1]); // @[CsrFiles.scala 280:50]
  wire  is_trap_is_interrupt_is_s_interrupt_is_sti = csrfiles_mip_sti & csrfiles_mie_sti & csrfiles_mstatus_sie & ~(
    _is_xRet_is_mRet_T & csrfiles_mideleg[5]); // @[CsrFiles.scala 288:50]
  wire  is_trap_is_interrupt_is_s_interrupt_is_sei = csrfiles_mip_sei & csrfiles_mie_sei & csrfiles_mstatus_sie & ~(
    _is_xRet_is_mRet_T & csrfiles_mideleg[9]); // @[CsrFiles.scala 296:50]
  wire  is_trap_is_interrupt_is_s_interrupt = is_trap_is_interrupt_is_s_interrupt_is_ssi |
    is_trap_is_interrupt_is_s_interrupt_is_sti | is_trap_is_interrupt_is_s_interrupt_is_sei; // @[CsrFiles.scala 308:42]
  wire  _is_trap_is_interrupt_T = is_trap_is_interrupt_is_m_interrupt | is_trap_is_interrupt_is_s_interrupt; // @[Commit.scala 207:51]
  wire  _is_trap_is_interrupt_T_2 = ~csrfiles_DMode; // @[Commit.scala 207:80]
  reg  is_single_step; // @[Commit.scala 404:31]
  wire  _is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt_T_2 = is_single_step | io_dm_hartHaltReq; // @[Commit.scala 260:24]
  wire  _is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt_is_ebreak_dm_is_ebreak_breakpointn_T_3 =
    csrfiles_priv_lvl == 2'h0; // @[Commit.scala 232:29]
  wire  _is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt_is_ebreak_dm_is_ebreak_breakpointn_T_8 =
    _is_xRet_is_mRet_T & csrfiles_dcsr_ebreakm | _is_xRet_is_sRet_T_1 & csrfiles_dcsr_ebreaks |
    _is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt_is_ebreak_dm_is_ebreak_breakpointn_T_3 &
    csrfiles_dcsr_ebreaku; // @[Mux.scala 27:73]
  wire  is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt_is_ebreak_dm_is_ebreak_breakpointn =
    _is_trap_is_interrupt_T_2 &
    _is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt_is_ebreak_dm_is_ebreak_breakpointn_T_8; // @[Commit.scala 228:49]
  wire  is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt_is_ebreak_dm = io_rod_0_bits_privil_ebreak &
    is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt_is_ebreak_dm_is_ebreak_breakpointn; // @[Commit.scala 253:42]
  wire  _is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt_T_3 =
    _is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt_T_2 |
    is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt_is_ebreak_dm; // @[Commit.scala 261:25]
  wire  is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt = _is_trap_is_interrupt_T_2 &
    _is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt_T_3; // @[Commit.scala 258:46]
  reg  emu_reset; // @[Commit.scala 363:26]
  wire  is_trap_is_interrupt_is_nomask_interrupt = is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt |
    emu_reset; // @[Commit.scala 268:50]
  wire  is_trap_is_interrupt = ((is_trap_is_interrupt_is_m_interrupt | is_trap_is_interrupt_is_s_interrupt) & ~
    csrfiles_DMode | is_trap_is_interrupt_is_nomask_interrupt) & ~csrfiles_DMode; // @[Commit.scala 207:123]
  wire  is_trap_is_exception_is_ebreak_exc = io_rod_0_bits_privil_ebreak & ~
    is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt_is_ebreak_dm_is_ebreak_breakpointn; // @[Commit.scala 120:43]
  wire  _is_trap_is_exception_T = io_rod_0_bits_privil_ecall | is_trap_is_exception_is_ebreak_exc; // @[Commit.scala 192:32]
  wire  _is_trap_is_exception_T_1 = _is_trap_is_exception_T | io_rod_0_bits_privil_is_access_fault; // @[Commit.scala 193:32]
  wire  _is_trap_is_exception_T_2 = _is_trap_is_exception_T_1 | io_rod_0_bits_privil_is_paging_fault; // @[Commit.scala 194:32]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_0 = io_csr_addr_bits == 12'h3a0; // @[CsrFiles.scala 314:58]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_1 = io_csr_addr_bits == 12'h3a2; // @[CsrFiles.scala 314:58]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_2 = io_csr_addr_bits == 12'h3a4; // @[CsrFiles.scala 314:58]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_3 = io_csr_addr_bits == 12'h3a6; // @[CsrFiles.scala 314:58]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_4 = io_csr_addr_bits == 12'h3a8; // @[CsrFiles.scala 314:58]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_5 = io_csr_addr_bits == 12'h3aa; // @[CsrFiles.scala 314:58]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_6 = io_csr_addr_bits == 12'h3ac; // @[CsrFiles.scala 314:58]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_7 = io_csr_addr_bits == 12'h3ae; // @[CsrFiles.scala 314:58]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_0_1 = io_csr_addr_bits == 12'h3b0; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_1_1 = io_csr_addr_bits == 12'h3b1; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_2_1 = io_csr_addr_bits == 12'h3b2; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_3_1 = io_csr_addr_bits == 12'h3b3; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_4_1 = io_csr_addr_bits == 12'h3b4; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_5_1 = io_csr_addr_bits == 12'h3b5; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_6_1 = io_csr_addr_bits == 12'h3b6; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_7_1 = io_csr_addr_bits == 12'h3b7; // @[CsrFiles.scala 320:60]
  wire  _cmm_state_0_is_csrr_illegal_res_T_15 = cmm_state_0_is_csrr_illegal_addr_chk_7_1 & _is_xRet_is_mRet_T; // @[Mux.scala 27:73]
  wire  _cmm_state_0_is_csrr_illegal_res_T_240 = cmm_state_0_is_csrr_illegal_addr_chk_0 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_1 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_2 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_3 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_4 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_5 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_6 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_7 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_0_1 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_1_1 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_2_1 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_3_1 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_4_1 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_5_1 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_6_1 &
    _is_xRet_is_mRet_T | _cmm_state_0_is_csrr_illegal_res_T_15; // @[Mux.scala 27:73]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_8 = io_csr_addr_bits == 12'h3b8; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_9 = io_csr_addr_bits == 12'h3b9; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_10 = io_csr_addr_bits == 12'h3ba; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_11 = io_csr_addr_bits == 12'h3bb; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_12 = io_csr_addr_bits == 12'h3bc; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_13 = io_csr_addr_bits == 12'h3bd; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_14 = io_csr_addr_bits == 12'h3be; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_15 = io_csr_addr_bits == 12'h3bf; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_16 = io_csr_addr_bits == 12'h3c0; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_17 = io_csr_addr_bits == 12'h3c1; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_18 = io_csr_addr_bits == 12'h3c2; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_19 = io_csr_addr_bits == 12'h3c3; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_20 = io_csr_addr_bits == 12'h3c4; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_21 = io_csr_addr_bits == 12'h3c5; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_22 = io_csr_addr_bits == 12'h3c6; // @[CsrFiles.scala 320:60]
  wire  _cmm_state_0_is_csrr_illegal_res_T_255 = _cmm_state_0_is_csrr_illegal_res_T_240 |
    cmm_state_0_is_csrr_illegal_addr_chk_8 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_9 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_10 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_11 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_12 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_13 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_14 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_15 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_16 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_17 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_18 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_19 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_20 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_21 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_22 & _is_xRet_is_mRet_T; // @[Mux.scala 27:73]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_23 = io_csr_addr_bits == 12'h3c7; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_24 = io_csr_addr_bits == 12'h3c8; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_25 = io_csr_addr_bits == 12'h3c9; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_26 = io_csr_addr_bits == 12'h3ca; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_27 = io_csr_addr_bits == 12'h3cb; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_28 = io_csr_addr_bits == 12'h3cc; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_29 = io_csr_addr_bits == 12'h3cd; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_30 = io_csr_addr_bits == 12'h3ce; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_31 = io_csr_addr_bits == 12'h3cf; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_32 = io_csr_addr_bits == 12'h3d0; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_33 = io_csr_addr_bits == 12'h3d1; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_34 = io_csr_addr_bits == 12'h3d2; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_35 = io_csr_addr_bits == 12'h3d3; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_36 = io_csr_addr_bits == 12'h3d4; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_37 = io_csr_addr_bits == 12'h3d5; // @[CsrFiles.scala 320:60]
  wire  _cmm_state_0_is_csrr_illegal_res_T_270 = _cmm_state_0_is_csrr_illegal_res_T_255 |
    cmm_state_0_is_csrr_illegal_addr_chk_23 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_24 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_25 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_26 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_27 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_28 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_29 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_30 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_31 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_32 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_33 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_34 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_35 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_36 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_37 & _is_xRet_is_mRet_T; // @[Mux.scala 27:73]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_38 = io_csr_addr_bits == 12'h3d6; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_39 = io_csr_addr_bits == 12'h3d7; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_40 = io_csr_addr_bits == 12'h3d8; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_41 = io_csr_addr_bits == 12'h3d9; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_42 = io_csr_addr_bits == 12'h3da; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_43 = io_csr_addr_bits == 12'h3db; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_44 = io_csr_addr_bits == 12'h3dc; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_45 = io_csr_addr_bits == 12'h3dd; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_46 = io_csr_addr_bits == 12'h3de; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_47 = io_csr_addr_bits == 12'h3df; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_48 = io_csr_addr_bits == 12'h3e0; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_49 = io_csr_addr_bits == 12'h3e1; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_50 = io_csr_addr_bits == 12'h3e2; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_51 = io_csr_addr_bits == 12'h3e3; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_52 = io_csr_addr_bits == 12'h3e4; // @[CsrFiles.scala 320:60]
  wire  _cmm_state_0_is_csrr_illegal_res_T_285 = _cmm_state_0_is_csrr_illegal_res_T_270 |
    cmm_state_0_is_csrr_illegal_addr_chk_38 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_39 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_40 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_41 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_42 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_43 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_44 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_45 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_46 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_47 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_48 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_49 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_50 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_51 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_52 & _is_xRet_is_mRet_T; // @[Mux.scala 27:73]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_53 = io_csr_addr_bits == 12'h3e5; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_54 = io_csr_addr_bits == 12'h3e6; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_55 = io_csr_addr_bits == 12'h3e7; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_56 = io_csr_addr_bits == 12'h3e8; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_57 = io_csr_addr_bits == 12'h3e9; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_58 = io_csr_addr_bits == 12'h3ea; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_59 = io_csr_addr_bits == 12'h3eb; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_60 = io_csr_addr_bits == 12'h3ec; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_61 = io_csr_addr_bits == 12'h3ed; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_62 = io_csr_addr_bits == 12'h3ee; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_63 = io_csr_addr_bits == 12'h3ef; // @[CsrFiles.scala 320:60]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_0_2 = io_csr_addr_bits == 12'hc03; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_1_2 = io_csr_addr_bits == 12'hc04; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_2_2 = io_csr_addr_bits == 12'hc05; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_3_2 = io_csr_addr_bits == 12'hc06; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_4_2 = io_csr_addr_bits == 12'hc07; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_5_2 = io_csr_addr_bits == 12'hc08; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_6_2 = io_csr_addr_bits == 12'hc09; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_7_2 = io_csr_addr_bits == 12'hc0a; // @[CsrFiles.scala 326:59]
  wire  _cmm_state_0_is_csrr_illegal_res_T_304 = _cmm_state_0_is_csrr_illegal_res_T_285 |
    cmm_state_0_is_csrr_illegal_addr_chk_53 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_54 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_55 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_56 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_57 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_58 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_59 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_60 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_61 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_62 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_63 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_0_2 | cmm_state_0_is_csrr_illegal_addr_chk_1_2 |
    cmm_state_0_is_csrr_illegal_addr_chk_2_2 | cmm_state_0_is_csrr_illegal_addr_chk_3_2 |
    cmm_state_0_is_csrr_illegal_addr_chk_4_2 | cmm_state_0_is_csrr_illegal_addr_chk_5_2 |
    cmm_state_0_is_csrr_illegal_addr_chk_6_2 | cmm_state_0_is_csrr_illegal_addr_chk_7_2; // @[Mux.scala 27:73]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_8_1 = io_csr_addr_bits == 12'hc0b; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_9_1 = io_csr_addr_bits == 12'hc0c; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_10_1 = io_csr_addr_bits == 12'hc0d; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_11_1 = io_csr_addr_bits == 12'hc0e; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_12_1 = io_csr_addr_bits == 12'hc0f; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_13_1 = io_csr_addr_bits == 12'hc10; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_14_1 = io_csr_addr_bits == 12'hc11; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_15_1 = io_csr_addr_bits == 12'hc12; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_16_1 = io_csr_addr_bits == 12'hc13; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_17_1 = io_csr_addr_bits == 12'hc14; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_18_1 = io_csr_addr_bits == 12'hc15; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_19_1 = io_csr_addr_bits == 12'hc16; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_20_1 = io_csr_addr_bits == 12'hc17; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_21_1 = io_csr_addr_bits == 12'hc18; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_22_1 = io_csr_addr_bits == 12'hc19; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_23_1 = io_csr_addr_bits == 12'hc1a; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_24_1 = io_csr_addr_bits == 12'hc1b; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_25_1 = io_csr_addr_bits == 12'hc1c; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_26_1 = io_csr_addr_bits == 12'hc1d; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_27_1 = io_csr_addr_bits == 12'hc1e; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_28_1 = io_csr_addr_bits == 12'hc1f; // @[CsrFiles.scala 326:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_0_3 = io_csr_addr_bits == 12'hb03; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_0_2 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[3]
    ; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_1_3 = io_csr_addr_bits == 12'hb04; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_1_2 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[4]
    ; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_2_3 = io_csr_addr_bits == 12'hb05; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_2_2 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[5]
    ; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_3_3 = io_csr_addr_bits == 12'hb06; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_3_2 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[6]
    ; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_4_3 = io_csr_addr_bits == 12'hb07; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_4_2 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[7]
    ; // @[CsrFiles.scala 333:75]
  wire  _cmm_state_0_is_csrr_illegal_res_T_105 = cmm_state_0_is_csrr_illegal_addr_chk_4_3 &
    cmm_state_0_is_csrr_illegal_reg_sel_4_2; // @[Mux.scala 27:73]
  wire  _cmm_state_0_is_csrr_illegal_res_T_330 = _cmm_state_0_is_csrr_illegal_res_T_304 |
    cmm_state_0_is_csrr_illegal_addr_chk_8_1 | cmm_state_0_is_csrr_illegal_addr_chk_9_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_10_1 | cmm_state_0_is_csrr_illegal_addr_chk_11_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_12_1 | cmm_state_0_is_csrr_illegal_addr_chk_13_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_14_1 | cmm_state_0_is_csrr_illegal_addr_chk_15_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_16_1 | cmm_state_0_is_csrr_illegal_addr_chk_17_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_18_1 | cmm_state_0_is_csrr_illegal_addr_chk_19_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_20_1 | cmm_state_0_is_csrr_illegal_addr_chk_21_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_22_1 | cmm_state_0_is_csrr_illegal_addr_chk_23_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_24_1 | cmm_state_0_is_csrr_illegal_addr_chk_25_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_26_1 | cmm_state_0_is_csrr_illegal_addr_chk_27_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_28_1 | cmm_state_0_is_csrr_illegal_addr_chk_0_3 &
    cmm_state_0_is_csrr_illegal_reg_sel_0_2 | cmm_state_0_is_csrr_illegal_addr_chk_1_3 &
    cmm_state_0_is_csrr_illegal_reg_sel_1_2 | cmm_state_0_is_csrr_illegal_addr_chk_2_3 &
    cmm_state_0_is_csrr_illegal_reg_sel_2_2 | cmm_state_0_is_csrr_illegal_addr_chk_3_3 &
    cmm_state_0_is_csrr_illegal_reg_sel_3_2 | _cmm_state_0_is_csrr_illegal_res_T_105; // @[Mux.scala 27:73]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_5_3 = io_csr_addr_bits == 12'hb08; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_5_2 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[8]
    ; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_6_3 = io_csr_addr_bits == 12'hb09; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_6_2 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[9]
    ; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_7_3 = io_csr_addr_bits == 12'hb0a; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_7_2 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[10
    ]; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_8_2 = io_csr_addr_bits == 12'hb0b; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_8_1 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[11
    ]; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_9_2 = io_csr_addr_bits == 12'hb0c; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_9_1 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[12
    ]; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_10_2 = io_csr_addr_bits == 12'hb0d; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_10_1 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[
    13]; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_11_2 = io_csr_addr_bits == 12'hb0e; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_11_1 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[
    14]; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_12_2 = io_csr_addr_bits == 12'hb0f; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_12_1 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[
    15]; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_13_2 = io_csr_addr_bits == 12'hb10; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_13_1 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[
    16]; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_14_2 = io_csr_addr_bits == 12'hb11; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_14_1 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[
    17]; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_15_2 = io_csr_addr_bits == 12'hb12; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_15_1 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[
    18]; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_16_2 = io_csr_addr_bits == 12'hb13; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_16_1 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[
    19]; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_17_2 = io_csr_addr_bits == 12'hb14; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_17_1 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[
    20]; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_18_2 = io_csr_addr_bits == 12'hb15; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_18_1 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[
    21]; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_19_2 = io_csr_addr_bits == 12'hb16; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_19_1 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[
    22]; // @[CsrFiles.scala 333:75]
  wire  _cmm_state_0_is_csrr_illegal_res_T_345 = _cmm_state_0_is_csrr_illegal_res_T_330 |
    cmm_state_0_is_csrr_illegal_addr_chk_5_3 & cmm_state_0_is_csrr_illegal_reg_sel_5_2 |
    cmm_state_0_is_csrr_illegal_addr_chk_6_3 & cmm_state_0_is_csrr_illegal_reg_sel_6_2 |
    cmm_state_0_is_csrr_illegal_addr_chk_7_3 & cmm_state_0_is_csrr_illegal_reg_sel_7_2 |
    cmm_state_0_is_csrr_illegal_addr_chk_8_2 & cmm_state_0_is_csrr_illegal_reg_sel_8_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_9_2 & cmm_state_0_is_csrr_illegal_reg_sel_9_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_10_2 & cmm_state_0_is_csrr_illegal_reg_sel_10_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_11_2 & cmm_state_0_is_csrr_illegal_reg_sel_11_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_12_2 & cmm_state_0_is_csrr_illegal_reg_sel_12_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_13_2 & cmm_state_0_is_csrr_illegal_reg_sel_13_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_14_2 & cmm_state_0_is_csrr_illegal_reg_sel_14_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_15_2 & cmm_state_0_is_csrr_illegal_reg_sel_15_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_16_2 & cmm_state_0_is_csrr_illegal_reg_sel_16_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_17_2 & cmm_state_0_is_csrr_illegal_reg_sel_17_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_18_2 & cmm_state_0_is_csrr_illegal_reg_sel_18_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_19_2 & cmm_state_0_is_csrr_illegal_reg_sel_19_1; // @[Mux.scala 27:73]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_20_2 = io_csr_addr_bits == 12'hb17; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_20_1 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[
    23]; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_21_2 = io_csr_addr_bits == 12'hb18; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_21_1 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[
    24]; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_22_2 = io_csr_addr_bits == 12'hb19; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_22_1 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[
    25]; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_23_2 = io_csr_addr_bits == 12'hb1a; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_23_1 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[
    26]; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_24_2 = io_csr_addr_bits == 12'hb1b; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_24_1 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[
    27]; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_25_2 = io_csr_addr_bits == 12'hb1c; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_25_1 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[
    28]; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_26_2 = io_csr_addr_bits == 12'hb1d; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_26_1 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[
    29]; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_27_2 = io_csr_addr_bits == 12'hb1e; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_27_1 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[
    30]; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_28_2 = io_csr_addr_bits == 12'hb1f; // @[CsrFiles.scala 332:59]
  wire  cmm_state_0_is_csrr_illegal_reg_sel_28_1 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[
    31]; // @[CsrFiles.scala 333:75]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_0_4 = io_csr_addr_bits == 12'h323; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_1_4 = io_csr_addr_bits == 12'h324; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_2_4 = io_csr_addr_bits == 12'h325; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_3_4 = io_csr_addr_bits == 12'h326; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_4_4 = io_csr_addr_bits == 12'h327; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_5_4 = io_csr_addr_bits == 12'h328; // @[CsrFiles.scala 338:59]
  wire  _cmm_state_0_is_csrr_illegal_res_T_360 = _cmm_state_0_is_csrr_illegal_res_T_345 |
    cmm_state_0_is_csrr_illegal_addr_chk_20_2 & cmm_state_0_is_csrr_illegal_reg_sel_20_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_21_2 & cmm_state_0_is_csrr_illegal_reg_sel_21_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_22_2 & cmm_state_0_is_csrr_illegal_reg_sel_22_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_23_2 & cmm_state_0_is_csrr_illegal_reg_sel_23_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_24_2 & cmm_state_0_is_csrr_illegal_reg_sel_24_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_25_2 & cmm_state_0_is_csrr_illegal_reg_sel_25_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_26_2 & cmm_state_0_is_csrr_illegal_reg_sel_26_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_27_2 & cmm_state_0_is_csrr_illegal_reg_sel_27_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_28_2 & cmm_state_0_is_csrr_illegal_reg_sel_28_1 |
    cmm_state_0_is_csrr_illegal_addr_chk_0_4 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_1_4 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_2_4 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_3_4 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_4_4 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_5_4 & _is_xRet_is_mRet_T; // @[Mux.scala 27:73]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_6_4 = io_csr_addr_bits == 12'h329; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_7_4 = io_csr_addr_bits == 12'h32a; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_8_3 = io_csr_addr_bits == 12'h32b; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_9_3 = io_csr_addr_bits == 12'h32c; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_10_3 = io_csr_addr_bits == 12'h32d; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_11_3 = io_csr_addr_bits == 12'h32e; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_12_3 = io_csr_addr_bits == 12'h32f; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_13_3 = io_csr_addr_bits == 12'h330; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_14_3 = io_csr_addr_bits == 12'h331; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_15_3 = io_csr_addr_bits == 12'h332; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_16_3 = io_csr_addr_bits == 12'h333; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_17_3 = io_csr_addr_bits == 12'h334; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_18_3 = io_csr_addr_bits == 12'h335; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_19_3 = io_csr_addr_bits == 12'h336; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_20_3 = io_csr_addr_bits == 12'h337; // @[CsrFiles.scala 338:59]
  wire  _cmm_state_0_is_csrr_illegal_res_T_375 = _cmm_state_0_is_csrr_illegal_res_T_360 |
    cmm_state_0_is_csrr_illegal_addr_chk_6_4 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_7_4 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_8_3 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_9_3 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_10_3 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_11_3 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_12_3 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_13_3 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_14_3 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_15_3 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_16_3 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_17_3 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_18_3 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_19_3 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_20_3 & _is_xRet_is_mRet_T; // @[Mux.scala 27:73]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_21_3 = io_csr_addr_bits == 12'h338; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_22_3 = io_csr_addr_bits == 12'h339; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_23_3 = io_csr_addr_bits == 12'h33a; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_24_3 = io_csr_addr_bits == 12'h33b; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_25_3 = io_csr_addr_bits == 12'h33c; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_26_3 = io_csr_addr_bits == 12'h33d; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_27_3 = io_csr_addr_bits == 12'h33e; // @[CsrFiles.scala 338:59]
  wire  cmm_state_0_is_csrr_illegal_addr_chk_28_3 = io_csr_addr_bits == 12'h33f; // @[CsrFiles.scala 338:59]
  wire  _cmm_state_0_is_csrr_illegal_T = io_csr_addr_bits == 12'h1; // @[CsrFiles.scala 352:18]
  wire  _cmm_state_0_is_csrr_illegal_T_2 = io_csr_addr_bits == 12'h2; // @[CsrFiles.scala 353:18]
  wire  _cmm_state_0_is_csrr_illegal_T_4 = io_csr_addr_bits == 12'h3; // @[CsrFiles.scala 354:18]
  wire  _cmm_state_0_is_csrr_illegal_T_6 = io_csr_addr_bits == 12'hc00; // @[CsrFiles.scala 355:18]
  wire  _cmm_state_0_is_csrr_illegal_T_8 = io_csr_addr_bits == 12'hc01; // @[CsrFiles.scala 356:18]
  wire  _cmm_state_0_is_csrr_illegal_T_10 = io_csr_addr_bits == 12'hc02; // @[CsrFiles.scala 357:18]
  wire  _cmm_state_0_is_csrr_illegal_T_12 = io_csr_addr_bits == 12'h100; // @[CsrFiles.scala 358:18]
  wire  _cmm_state_0_is_csrr_illegal_T_14 = io_csr_addr_bits == 12'h104; // @[CsrFiles.scala 361:18]
  wire  _cmm_state_0_is_csrr_illegal_T_15 = csrfiles_priv_lvl >= 2'h1; // @[CsrFiles.scala 361:46]
  wire  _cmm_state_0_is_csrr_illegal_T_16 = io_csr_addr_bits == 12'h105; // @[CsrFiles.scala 362:18]
  wire  _cmm_state_0_is_csrr_illegal_T_18 = io_csr_addr_bits == 12'h106; // @[CsrFiles.scala 363:18]
  wire  _cmm_state_0_is_csrr_illegal_T_20 = io_csr_addr_bits == 12'h140; // @[CsrFiles.scala 364:18]
  wire  _cmm_state_0_is_csrr_illegal_res_T_169 = _cmm_state_0_is_csrr_illegal_T_20 & _cmm_state_0_is_csrr_illegal_T_15; // @[Mux.scala 27:73]
  wire  _cmm_state_0_is_csrr_illegal_res_T_394 = _cmm_state_0_is_csrr_illegal_res_T_375 |
    cmm_state_0_is_csrr_illegal_addr_chk_21_3 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_22_3 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_23_3 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_24_3 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_25_3 &
    _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_26_3 & _is_xRet_is_mRet_T |
    cmm_state_0_is_csrr_illegal_addr_chk_27_3 & _is_xRet_is_mRet_T | cmm_state_0_is_csrr_illegal_addr_chk_28_3 &
    _is_xRet_is_mRet_T | _cmm_state_0_is_csrr_illegal_T | _cmm_state_0_is_csrr_illegal_T_2 |
    _cmm_state_0_is_csrr_illegal_T_4 | _cmm_state_0_is_csrr_illegal_T_6 | _cmm_state_0_is_csrr_illegal_T_8 |
    _cmm_state_0_is_csrr_illegal_T_10 | _cmm_state_0_is_csrr_illegal_T_12 | _cmm_state_0_is_csrr_illegal_T_14 &
    _cmm_state_0_is_csrr_illegal_T_15 | _cmm_state_0_is_csrr_illegal_T_16 & _cmm_state_0_is_csrr_illegal_T_15 |
    _cmm_state_0_is_csrr_illegal_T_18 & _cmm_state_0_is_csrr_illegal_T_15 | _cmm_state_0_is_csrr_illegal_res_T_169; // @[Mux.scala 27:73]
  wire  _cmm_state_0_is_csrr_illegal_T_22 = io_csr_addr_bits == 12'h141; // @[CsrFiles.scala 365:18]
  wire  _cmm_state_0_is_csrr_illegal_T_24 = io_csr_addr_bits == 12'h142; // @[CsrFiles.scala 366:18]
  wire  _cmm_state_0_is_csrr_illegal_T_26 = io_csr_addr_bits == 12'h143; // @[CsrFiles.scala 367:18]
  wire  _cmm_state_0_is_csrr_illegal_T_28 = io_csr_addr_bits == 12'h144; // @[CsrFiles.scala 368:18]
  wire  _cmm_state_0_is_csrr_illegal_T_30 = io_csr_addr_bits == 12'h180; // @[CsrFiles.scala 369:18]
  wire  _cmm_state_0_is_csrr_illegal_T_33 = ~csrfiles_mstatus_tvm; // @[CsrFiles.scala 369:98]
  wire  _cmm_state_0_is_csrr_illegal_T_35 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & ~csrfiles_mstatus_tvm; // @[CsrFiles.scala 369:60]
  wire  _cmm_state_0_is_csrr_illegal_T_58 = io_csr_addr_bits == 12'hf11; // @[CsrFiles.scala 392:18]
  wire  _cmm_state_0_is_csrr_illegal_T_60 = io_csr_addr_bits == 12'hf12; // @[CsrFiles.scala 393:18]
  wire  _cmm_state_0_is_csrr_illegal_T_62 = io_csr_addr_bits == 12'hf13; // @[CsrFiles.scala 394:18]
  wire  _cmm_state_0_is_csrr_illegal_T_64 = io_csr_addr_bits == 12'hf14; // @[CsrFiles.scala 395:18]
  wire  _cmm_state_0_is_csrr_illegal_T_66 = io_csr_addr_bits == 12'h300; // @[CsrFiles.scala 396:18]
  wire  _cmm_state_0_is_csrr_illegal_T_68 = io_csr_addr_bits == 12'h301; // @[CsrFiles.scala 397:18]
  wire  _cmm_state_0_is_csrr_illegal_T_70 = io_csr_addr_bits == 12'h302; // @[CsrFiles.scala 398:18]
  wire  _cmm_state_0_is_csrr_illegal_T_72 = io_csr_addr_bits == 12'h303; // @[CsrFiles.scala 399:18]
  wire  _cmm_state_0_is_csrr_illegal_T_74 = io_csr_addr_bits == 12'h304; // @[CsrFiles.scala 400:18]
  wire  _cmm_state_0_is_csrr_illegal_T_76 = io_csr_addr_bits == 12'h305; // @[CsrFiles.scala 401:18]
  wire  _cmm_state_0_is_csrr_illegal_res_T_431 = _cmm_state_0_is_csrr_illegal_res_T_394 |
    _cmm_state_0_is_csrr_illegal_T_22 & _cmm_state_0_is_csrr_illegal_T_15 | _cmm_state_0_is_csrr_illegal_T_24 &
    _cmm_state_0_is_csrr_illegal_T_15 | _cmm_state_0_is_csrr_illegal_T_26 & _cmm_state_0_is_csrr_illegal_T_15 |
    _cmm_state_0_is_csrr_illegal_T_28 & _cmm_state_0_is_csrr_illegal_T_15 | _cmm_state_0_is_csrr_illegal_T_30 &
    _cmm_state_0_is_csrr_illegal_T_35 | _cmm_state_0_is_csrr_illegal_T_58 & _is_xRet_is_mRet_T |
    _cmm_state_0_is_csrr_illegal_T_60 & _is_xRet_is_mRet_T | _cmm_state_0_is_csrr_illegal_T_62 & _is_xRet_is_mRet_T |
    _cmm_state_0_is_csrr_illegal_T_64 & _is_xRet_is_mRet_T | _cmm_state_0_is_csrr_illegal_T_66 & _is_xRet_is_mRet_T |
    _cmm_state_0_is_csrr_illegal_T_68 & _is_xRet_is_mRet_T | _cmm_state_0_is_csrr_illegal_T_70 & _is_xRet_is_mRet_T |
    _cmm_state_0_is_csrr_illegal_T_72 & _is_xRet_is_mRet_T | _cmm_state_0_is_csrr_illegal_T_74 & _is_xRet_is_mRet_T |
    _cmm_state_0_is_csrr_illegal_T_76 & _is_xRet_is_mRet_T; // @[Mux.scala 27:73]
  wire  _cmm_state_0_is_csrr_illegal_T_78 = io_csr_addr_bits == 12'h306; // @[CsrFiles.scala 402:18]
  wire  _cmm_state_0_is_csrr_illegal_T_80 = io_csr_addr_bits == 12'h340; // @[CsrFiles.scala 403:18]
  wire  _cmm_state_0_is_csrr_illegal_T_82 = io_csr_addr_bits == 12'h341; // @[CsrFiles.scala 404:18]
  wire  _cmm_state_0_is_csrr_illegal_T_84 = io_csr_addr_bits == 12'h342; // @[CsrFiles.scala 405:18]
  wire  _cmm_state_0_is_csrr_illegal_T_86 = io_csr_addr_bits == 12'h343; // @[CsrFiles.scala 406:18]
  wire  _cmm_state_0_is_csrr_illegal_T_88 = io_csr_addr_bits == 12'h344; // @[CsrFiles.scala 407:18]
  wire  _cmm_state_0_is_csrr_illegal_T_90 = io_csr_addr_bits == 12'h34a; // @[CsrFiles.scala 408:18]
  wire  _cmm_state_0_is_csrr_illegal_T_92 = io_csr_addr_bits == 12'h34b; // @[CsrFiles.scala 409:18]
  wire  _cmm_state_0_is_csrr_illegal_T_94 = io_csr_addr_bits == 12'hb00; // @[CsrFiles.scala 411:18]
  wire  _cmm_state_0_is_csrr_illegal_T_99 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[0]; // @[CsrFiles.scala 411:58]
  wire  _cmm_state_0_is_csrr_illegal_T_100 = io_csr_addr_bits == 12'hb02; // @[CsrFiles.scala 412:18]
  wire  _cmm_state_0_is_csrr_illegal_T_105 = _is_xRet_is_mRet_T | _is_xRet_is_sRet_T_1 & csrfiles_mcounteren_hpm[2]; // @[CsrFiles.scala 412:58]
  wire  _cmm_state_0_is_csrr_illegal_T_106 = io_csr_addr_bits == 12'h320; // @[CsrFiles.scala 413:18]
  wire  _cmm_state_0_is_csrr_illegal_T_108 = io_csr_addr_bits == 12'h7a0; // @[CsrFiles.scala 414:18]
  wire  _cmm_state_0_is_csrr_illegal_T_110 = io_csr_addr_bits == 12'h7a1; // @[CsrFiles.scala 415:18]
  wire  _cmm_state_0_is_csrr_illegal_T_112 = io_csr_addr_bits == 12'h7a2; // @[CsrFiles.scala 416:18]
  wire  _cmm_state_0_is_csrr_illegal_T_114 = io_csr_addr_bits == 12'h7a3; // @[CsrFiles.scala 417:18]
  wire  _cmm_state_0_is_csrr_illegal_res_T_446 = _cmm_state_0_is_csrr_illegal_res_T_431 |
    _cmm_state_0_is_csrr_illegal_T_78 & _is_xRet_is_mRet_T | _cmm_state_0_is_csrr_illegal_T_80 & _is_xRet_is_mRet_T |
    _cmm_state_0_is_csrr_illegal_T_82 & _is_xRet_is_mRet_T | _cmm_state_0_is_csrr_illegal_T_84 & _is_xRet_is_mRet_T |
    _cmm_state_0_is_csrr_illegal_T_86 & _is_xRet_is_mRet_T | _cmm_state_0_is_csrr_illegal_T_88 & _is_xRet_is_mRet_T |
    _cmm_state_0_is_csrr_illegal_T_90 & _is_xRet_is_mRet_T | _cmm_state_0_is_csrr_illegal_T_92 & _is_xRet_is_mRet_T |
    _cmm_state_0_is_csrr_illegal_T_94 & _cmm_state_0_is_csrr_illegal_T_99 | _cmm_state_0_is_csrr_illegal_T_100 &
    _cmm_state_0_is_csrr_illegal_T_105 | _cmm_state_0_is_csrr_illegal_T_106 & _is_xRet_is_mRet_T |
    _cmm_state_0_is_csrr_illegal_T_108 & _is_xRet_is_mRet_T | _cmm_state_0_is_csrr_illegal_T_110 & _is_xRet_is_mRet_T |
    _cmm_state_0_is_csrr_illegal_T_112 & _is_xRet_is_mRet_T | _cmm_state_0_is_csrr_illegal_T_114 & _is_xRet_is_mRet_T; // @[Mux.scala 27:73]
  wire  _cmm_state_0_is_csrr_illegal_T_116 = io_csr_addr_bits == 12'h7b0; // @[CsrFiles.scala 418:18]
  wire  _cmm_state_0_is_csrr_illegal_T_117 = io_csr_addr_bits == 12'h7b1; // @[CsrFiles.scala 419:18]
  wire  _cmm_state_0_is_csrr_illegal_T_118 = io_csr_addr_bits == 12'h7b2; // @[CsrFiles.scala 420:18]
  wire  _cmm_state_0_is_csrr_illegal_T_119 = io_csr_addr_bits == 12'h7b3; // @[CsrFiles.scala 421:18]
  wire  cmm_state_0_is_csrr_illegal_res = _cmm_state_0_is_csrr_illegal_res_T_446 | _cmm_state_0_is_csrr_illegal_T_116 &
    csrfiles_DMode | _cmm_state_0_is_csrr_illegal_T_117 & csrfiles_DMode | _cmm_state_0_is_csrr_illegal_T_118 &
    csrfiles_DMode | _cmm_state_0_is_csrr_illegal_T_119 & csrfiles_DMode; // @[Mux.scala 27:73]
  wire  _cmm_state_0_is_csrr_illegal_T_120 = ~cmm_state_0_is_csrr_illegal_res; // @[CsrFiles.scala 425:5]
  wire  cmm_state_0_is_csrr_illegal = _cmm_state_0_is_csrr_illegal_T_120 & io_csr_addr_valid; // @[Commit.scala 647:101]
  wire  _is_trap_is_exception_is_csr_illegal_T_1 = ~io_cm_op_0_is_writeback; // @[Commit.scala 148:40]
  wire  cmm_state_0_csrExe_op_rc = csrExe_mdl_io_deq_0_bits_op_rc; // @[Commit.scala 330:23 642:26]
  wire  cmm_state_0_csrExe_op_rs = csrExe_mdl_io_deq_0_bits_op_rs; // @[Commit.scala 330:23 642:26]
  wire  cmm_state_0_csrExe_op_rw = csrExe_mdl_io_deq_0_bits_op_rw; // @[Commit.scala 330:23 642:26]
  wire [11:0] cmm_state_0_csrExe_addr = csrExe_mdl_io_deq_0_bits_addr; // @[Commit.scala 330:23 642:26]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_0 = cmm_state_0_csrExe_addr == 12'h3a0; // @[CsrFiles.scala 431:58]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_1 = cmm_state_0_csrExe_addr == 12'h3a2; // @[CsrFiles.scala 431:58]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_2 = cmm_state_0_csrExe_addr == 12'h3a4; // @[CsrFiles.scala 431:58]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_3 = cmm_state_0_csrExe_addr == 12'h3a6; // @[CsrFiles.scala 431:58]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_4 = cmm_state_0_csrExe_addr == 12'h3a8; // @[CsrFiles.scala 431:58]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_5 = cmm_state_0_csrExe_addr == 12'h3aa; // @[CsrFiles.scala 431:58]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_6 = cmm_state_0_csrExe_addr == 12'h3ac; // @[CsrFiles.scala 431:58]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_7 = cmm_state_0_csrExe_addr == 12'h3ae; // @[CsrFiles.scala 431:58]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_0_1 = cmm_state_0_csrExe_addr == 12'h3b0; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_1_1 = cmm_state_0_csrExe_addr == 12'h3b1; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_2_1 = cmm_state_0_csrExe_addr == 12'h3b2; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_3_1 = cmm_state_0_csrExe_addr == 12'h3b3; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_4_1 = cmm_state_0_csrExe_addr == 12'h3b4; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_5_1 = cmm_state_0_csrExe_addr == 12'h3b5; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_6_1 = cmm_state_0_csrExe_addr == 12'h3b6; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_7_1 = cmm_state_0_csrExe_addr == 12'h3b7; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_8 = cmm_state_0_csrExe_addr == 12'h3b8; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_9 = cmm_state_0_csrExe_addr == 12'h3b9; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_10 = cmm_state_0_csrExe_addr == 12'h3ba; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_11 = cmm_state_0_csrExe_addr == 12'h3bb; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_12 = cmm_state_0_csrExe_addr == 12'h3bc; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_13 = cmm_state_0_csrExe_addr == 12'h3bd; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_14 = cmm_state_0_csrExe_addr == 12'h3be; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_15 = cmm_state_0_csrExe_addr == 12'h3bf; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_16 = cmm_state_0_csrExe_addr == 12'h3c0; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_17 = cmm_state_0_csrExe_addr == 12'h3c1; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_18 = cmm_state_0_csrExe_addr == 12'h3c2; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_19 = cmm_state_0_csrExe_addr == 12'h3c3; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_20 = cmm_state_0_csrExe_addr == 12'h3c4; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_21 = cmm_state_0_csrExe_addr == 12'h3c5; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_22 = cmm_state_0_csrExe_addr == 12'h3c6; // @[CsrFiles.scala 437:60]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_255 =
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_0 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_4 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_5 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_6 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_7 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_0_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_1_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_2_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_3_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_4_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_5_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_6_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_7_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_8 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_9 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_10 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_11 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_12 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_13 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_14 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_15 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_16 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_17 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_18 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_19 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_20 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_21 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_22; // @[Mux.scala 27:73]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_23 = cmm_state_0_csrExe_addr == 12'h3c7; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_24 = cmm_state_0_csrExe_addr == 12'h3c8; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_25 = cmm_state_0_csrExe_addr == 12'h3c9; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_26 = cmm_state_0_csrExe_addr == 12'h3ca; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_27 = cmm_state_0_csrExe_addr == 12'h3cb; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_28 = cmm_state_0_csrExe_addr == 12'h3cc; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_29 = cmm_state_0_csrExe_addr == 12'h3cd; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_30 = cmm_state_0_csrExe_addr == 12'h3ce; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_31 = cmm_state_0_csrExe_addr == 12'h3cf; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_32 = cmm_state_0_csrExe_addr == 12'h3d0; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_33 = cmm_state_0_csrExe_addr == 12'h3d1; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_34 = cmm_state_0_csrExe_addr == 12'h3d2; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_35 = cmm_state_0_csrExe_addr == 12'h3d3; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_36 = cmm_state_0_csrExe_addr == 12'h3d4; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_37 = cmm_state_0_csrExe_addr == 12'h3d5; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_38 = cmm_state_0_csrExe_addr == 12'h3d6; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_39 = cmm_state_0_csrExe_addr == 12'h3d7; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_40 = cmm_state_0_csrExe_addr == 12'h3d8; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_41 = cmm_state_0_csrExe_addr == 12'h3d9; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_42 = cmm_state_0_csrExe_addr == 12'h3da; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_43 = cmm_state_0_csrExe_addr == 12'h3db; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_44 = cmm_state_0_csrExe_addr == 12'h3dc; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_45 = cmm_state_0_csrExe_addr == 12'h3dd; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_46 = cmm_state_0_csrExe_addr == 12'h3de; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_47 = cmm_state_0_csrExe_addr == 12'h3df; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_48 = cmm_state_0_csrExe_addr == 12'h3e0; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_49 = cmm_state_0_csrExe_addr == 12'h3e1; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_50 = cmm_state_0_csrExe_addr == 12'h3e2; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_51 = cmm_state_0_csrExe_addr == 12'h3e3; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_52 = cmm_state_0_csrExe_addr == 12'h3e4; // @[CsrFiles.scala 437:60]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_285 =
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_255 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_23 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_24 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_25 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_26 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_27 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_28 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_29 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_30 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_31 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_32 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_33 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_34 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_35 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_36 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_37 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_38 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_39 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_40 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_41 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_42 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_43 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_44 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_45 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_46 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_47 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_48 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_49 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_50 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_51 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_52; // @[Mux.scala 27:73]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_53 = cmm_state_0_csrExe_addr == 12'h3e5; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_54 = cmm_state_0_csrExe_addr == 12'h3e6; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_55 = cmm_state_0_csrExe_addr == 12'h3e7; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_56 = cmm_state_0_csrExe_addr == 12'h3e8; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_57 = cmm_state_0_csrExe_addr == 12'h3e9; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_58 = cmm_state_0_csrExe_addr == 12'h3ea; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_59 = cmm_state_0_csrExe_addr == 12'h3eb; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_60 = cmm_state_0_csrExe_addr == 12'h3ec; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_61 = cmm_state_0_csrExe_addr == 12'h3ed; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_62 = cmm_state_0_csrExe_addr == 12'h3ee; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_63 = cmm_state_0_csrExe_addr == 12'h3ef; // @[CsrFiles.scala 437:60]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_0_2 = cmm_state_0_csrExe_addr == 12'hc03; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_1_2 = cmm_state_0_csrExe_addr == 12'hc04; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_2_2 = cmm_state_0_csrExe_addr == 12'hc05; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_3_2 = cmm_state_0_csrExe_addr == 12'hc06; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_4_2 = cmm_state_0_csrExe_addr == 12'hc07; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_5_2 = cmm_state_0_csrExe_addr == 12'hc08; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_6_2 = cmm_state_0_csrExe_addr == 12'hc09; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_7_2 = cmm_state_0_csrExe_addr == 12'hc0a; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_8_1 = cmm_state_0_csrExe_addr == 12'hc0b; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_9_1 = cmm_state_0_csrExe_addr == 12'hc0c; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_10_1 = cmm_state_0_csrExe_addr == 12'hc0d; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_11_1 = cmm_state_0_csrExe_addr == 12'hc0e; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_12_1 = cmm_state_0_csrExe_addr == 12'hc0f; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_13_1 = cmm_state_0_csrExe_addr == 12'hc10; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_14_1 = cmm_state_0_csrExe_addr == 12'hc11; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_15_1 = cmm_state_0_csrExe_addr == 12'hc12; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_16_1 = cmm_state_0_csrExe_addr == 12'hc13; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_17_1 = cmm_state_0_csrExe_addr == 12'hc14; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_18_1 = cmm_state_0_csrExe_addr == 12'hc15; // @[CsrFiles.scala 443:59]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_315 =
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_285 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_53 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_54 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_55 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_56 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_57 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_58 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_59 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_60 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_61 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_62 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_63 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_0_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_1_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_2_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_3_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_4_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_5_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_6_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_7_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_8_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_9_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_10_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_11_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_12_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_13_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_14_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_15_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_16_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_17_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_18_1; // @[Mux.scala 27:73]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_19_1 = cmm_state_0_csrExe_addr == 12'hc16; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_20_1 = cmm_state_0_csrExe_addr == 12'hc17; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_21_1 = cmm_state_0_csrExe_addr == 12'hc18; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_22_1 = cmm_state_0_csrExe_addr == 12'hc19; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_23_1 = cmm_state_0_csrExe_addr == 12'hc1a; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_24_1 = cmm_state_0_csrExe_addr == 12'hc1b; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_25_1 = cmm_state_0_csrExe_addr == 12'hc1c; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_26_1 = cmm_state_0_csrExe_addr == 12'hc1d; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_27_1 = cmm_state_0_csrExe_addr == 12'hc1e; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_28_1 = cmm_state_0_csrExe_addr == 12'hc1f; // @[CsrFiles.scala 443:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_0_3 = cmm_state_0_csrExe_addr == 12'hb03; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_1_3 = cmm_state_0_csrExe_addr == 12'hb04; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_2_3 = cmm_state_0_csrExe_addr == 12'hb05; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_3_3 = cmm_state_0_csrExe_addr == 12'hb06; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_4_3 = cmm_state_0_csrExe_addr == 12'hb07; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_5_3 = cmm_state_0_csrExe_addr == 12'hb08; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_6_3 = cmm_state_0_csrExe_addr == 12'hb09; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_7_3 = cmm_state_0_csrExe_addr == 12'hb0a; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_8_2 = cmm_state_0_csrExe_addr == 12'hb0b; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_9_2 = cmm_state_0_csrExe_addr == 12'hb0c; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_10_2 = cmm_state_0_csrExe_addr == 12'hb0d; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_11_2 = cmm_state_0_csrExe_addr == 12'hb0e; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_12_2 = cmm_state_0_csrExe_addr == 12'hb0f; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_13_2 = cmm_state_0_csrExe_addr == 12'hb10; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_14_2 = cmm_state_0_csrExe_addr == 12'hb11; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_15_2 = cmm_state_0_csrExe_addr == 12'hb12; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_16_2 = cmm_state_0_csrExe_addr == 12'hb13; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_17_2 = cmm_state_0_csrExe_addr == 12'hb14; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_18_2 = cmm_state_0_csrExe_addr == 12'hb15; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_19_2 = cmm_state_0_csrExe_addr == 12'hb16; // @[CsrFiles.scala 449:59]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_345 =
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_315 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_19_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_20_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_21_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_22_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_23_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_24_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_25_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_26_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_27_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_28_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_0_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_1_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_2_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_3_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_4_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_5_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_6_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_7_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_8_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_9_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_10_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_11_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_12_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_13_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_14_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_15_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_16_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_17_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_18_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_19_2; // @[Mux.scala 27:73]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_20_2 = cmm_state_0_csrExe_addr == 12'hb17; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_21_2 = cmm_state_0_csrExe_addr == 12'hb18; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_22_2 = cmm_state_0_csrExe_addr == 12'hb19; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_23_2 = cmm_state_0_csrExe_addr == 12'hb1a; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_24_2 = cmm_state_0_csrExe_addr == 12'hb1b; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_25_2 = cmm_state_0_csrExe_addr == 12'hb1c; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_26_2 = cmm_state_0_csrExe_addr == 12'hb1d; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_27_2 = cmm_state_0_csrExe_addr == 12'hb1e; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_28_2 = cmm_state_0_csrExe_addr == 12'hb1f; // @[CsrFiles.scala 449:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_0_4 = cmm_state_0_csrExe_addr == 12'h323; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_1_4 = cmm_state_0_csrExe_addr == 12'h324; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_2_4 = cmm_state_0_csrExe_addr == 12'h325; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_3_4 = cmm_state_0_csrExe_addr == 12'h326; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_4_4 = cmm_state_0_csrExe_addr == 12'h327; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_5_4 = cmm_state_0_csrExe_addr == 12'h328; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_6_4 = cmm_state_0_csrExe_addr == 12'h329; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_7_4 = cmm_state_0_csrExe_addr == 12'h32a; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_8_3 = cmm_state_0_csrExe_addr == 12'h32b; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_9_3 = cmm_state_0_csrExe_addr == 12'h32c; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_10_3 = cmm_state_0_csrExe_addr == 12'h32d; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_11_3 = cmm_state_0_csrExe_addr == 12'h32e; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_12_3 = cmm_state_0_csrExe_addr == 12'h32f; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_13_3 = cmm_state_0_csrExe_addr == 12'h330; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_14_3 = cmm_state_0_csrExe_addr == 12'h331; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_15_3 = cmm_state_0_csrExe_addr == 12'h332; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_16_3 = cmm_state_0_csrExe_addr == 12'h333; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_17_3 = cmm_state_0_csrExe_addr == 12'h334; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_18_3 = cmm_state_0_csrExe_addr == 12'h335; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_19_3 = cmm_state_0_csrExe_addr == 12'h336; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_20_3 = cmm_state_0_csrExe_addr == 12'h337; // @[CsrFiles.scala 455:59]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_375 =
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_345 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_20_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_21_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_22_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_23_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_24_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_25_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_26_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_27_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_28_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_0_4 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_1_4 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_2_4 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_3_4 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_4_4 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_5_4 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_6_4 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_7_4 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_8_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_9_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_10_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_11_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_12_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_13_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_14_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_15_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_16_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_17_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_18_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_19_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_20_3; // @[Mux.scala 27:73]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_21_3 = cmm_state_0_csrExe_addr == 12'h338; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_22_3 = cmm_state_0_csrExe_addr == 12'h339; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_23_3 = cmm_state_0_csrExe_addr == 12'h33a; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_24_3 = cmm_state_0_csrExe_addr == 12'h33b; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_25_3 = cmm_state_0_csrExe_addr == 12'h33c; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_26_3 = cmm_state_0_csrExe_addr == 12'h33d; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_27_3 = cmm_state_0_csrExe_addr == 12'h33e; // @[CsrFiles.scala 455:59]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_28_3 = cmm_state_0_csrExe_addr == 12'h33f; // @[CsrFiles.scala 455:59]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_2 = cmm_state_0_csrExe_addr == 12'h1; // @[CsrFiles.scala 469:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_3 = cmm_state_0_csrExe_addr == 12'h2; // @[CsrFiles.scala 470:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_4 = cmm_state_0_csrExe_addr == 12'h3; // @[CsrFiles.scala 471:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_5 = cmm_state_0_csrExe_addr == 12'hc00; // @[CsrFiles.scala 472:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_6 = cmm_state_0_csrExe_addr == 12'hc01; // @[CsrFiles.scala 473:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_7 = cmm_state_0_csrExe_addr == 12'hc02; // @[CsrFiles.scala 474:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_8 = cmm_state_0_csrExe_addr == 12'h100; // @[CsrFiles.scala 475:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_9 = cmm_state_0_csrExe_addr == 12'h104; // @[CsrFiles.scala 478:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_10 = cmm_state_0_csrExe_addr == 12'h105; // @[CsrFiles.scala 479:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_11 = cmm_state_0_csrExe_addr == 12'h106; // @[CsrFiles.scala 480:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_12 = cmm_state_0_csrExe_addr == 12'h140; // @[CsrFiles.scala 481:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_13 = cmm_state_0_csrExe_addr == 12'h141; // @[CsrFiles.scala 482:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_14 = cmm_state_0_csrExe_addr == 12'h142; // @[CsrFiles.scala 483:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_15 = cmm_state_0_csrExe_addr == 12'h143; // @[CsrFiles.scala 484:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_16 = cmm_state_0_csrExe_addr == 12'h144; // @[CsrFiles.scala 485:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_17 = cmm_state_0_csrExe_addr == 12'h180; // @[CsrFiles.scala 486:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_40 = cmm_state_0_csrExe_addr == 12'hf11; // @[CsrFiles.scala 509:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_41 = cmm_state_0_csrExe_addr == 12'hf12; // @[CsrFiles.scala 510:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_42 = cmm_state_0_csrExe_addr == 12'hf13; // @[CsrFiles.scala 511:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_43 = cmm_state_0_csrExe_addr == 12'hf14; // @[CsrFiles.scala 512:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_44 = cmm_state_0_csrExe_addr == 12'h300; // @[CsrFiles.scala 513:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_45 = cmm_state_0_csrExe_addr == 12'h301; // @[CsrFiles.scala 514:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_46 = cmm_state_0_csrExe_addr == 12'h302; // @[CsrFiles.scala 515:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_47 = cmm_state_0_csrExe_addr == 12'h303; // @[CsrFiles.scala 516:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_48 = cmm_state_0_csrExe_addr == 12'h304; // @[CsrFiles.scala 517:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_430 =
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_375 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_21_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_22_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_23_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_24_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_25_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_26_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_27_3 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_28_3 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_2 | _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_3
     | _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_4 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_8 | _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_9
     | _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_10 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_11 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_12 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_13 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_14 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_15 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_16 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_17 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_40 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_41 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_42 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_43 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_44 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_45 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_46 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_47 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_48; // @[Mux.scala 27:73]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_49 = cmm_state_0_csrExe_addr == 12'h305; // @[CsrFiles.scala 518:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_50 = cmm_state_0_csrExe_addr == 12'h306; // @[CsrFiles.scala 519:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_51 = cmm_state_0_csrExe_addr == 12'h340; // @[CsrFiles.scala 520:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_52 = cmm_state_0_csrExe_addr == 12'h341; // @[CsrFiles.scala 521:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_53 = cmm_state_0_csrExe_addr == 12'h342; // @[CsrFiles.scala 522:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_54 = cmm_state_0_csrExe_addr == 12'h343; // @[CsrFiles.scala 523:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_55 = cmm_state_0_csrExe_addr == 12'h344; // @[CsrFiles.scala 524:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_56 = cmm_state_0_csrExe_addr == 12'h34a; // @[CsrFiles.scala 525:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_57 = cmm_state_0_csrExe_addr == 12'h34b; // @[CsrFiles.scala 526:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_58 = cmm_state_0_csrExe_addr == 12'hb00; // @[CsrFiles.scala 528:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_59 = cmm_state_0_csrExe_addr == 12'hb02; // @[CsrFiles.scala 529:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_60 = cmm_state_0_csrExe_addr == 12'h320; // @[CsrFiles.scala 530:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_61 = cmm_state_0_csrExe_addr == 12'h7a0; // @[CsrFiles.scala 531:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_62 = cmm_state_0_csrExe_addr == 12'h7a1; // @[CsrFiles.scala 532:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_63 = cmm_state_0_csrExe_addr == 12'h7a2; // @[CsrFiles.scala 533:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_64 = cmm_state_0_csrExe_addr == 12'h7a3; // @[CsrFiles.scala 534:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_65 = cmm_state_0_csrExe_addr == 12'h7b0; // @[CsrFiles.scala 535:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_66 = cmm_state_0_csrExe_addr == 12'h7b1; // @[CsrFiles.scala 536:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_67 = cmm_state_0_csrExe_addr == 12'h7b2; // @[CsrFiles.scala 537:18]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_68 = cmm_state_0_csrExe_addr == 12'h7b3; // @[CsrFiles.scala 538:18]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res =
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_430 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_49 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_50 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_51 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_52 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_53 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_54 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_55 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_56 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_57 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_58 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_59 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_60 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_61 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_62 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_63 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_64 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_65 & csrfiles_DMode |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_66 & csrfiles_DMode |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_67 & csrfiles_DMode |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_68 & csrfiles_DMode; // @[Mux.scala 27:73]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_69 = ~
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res; // @[CsrFiles.scala 542:5]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_466 =
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_7_1 & _is_xRet_is_mRet_T; // @[Mux.scala 27:73]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_691 =
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_0 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_1 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_2 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_3 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_4 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_5 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_6 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_7 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_0_1 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_1_1 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_2_1 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_3_1 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_4_1 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_5_1 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_6_1 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_466; // @[Mux.scala 27:73]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_706 =
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_691 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_8 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_9 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_10 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_11 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_12 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_13 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_14 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_15 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_16 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_17 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_18 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_19 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_20 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_21 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_22 & _is_xRet_is_mRet_T; // @[Mux.scala 27:73]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_721 =
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_706 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_23 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_24 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_25 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_26 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_27 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_28 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_29 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_30 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_31 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_32 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_33 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_34 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_35 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_36 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_37 & _is_xRet_is_mRet_T; // @[Mux.scala 27:73]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_736 =
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_721 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_38 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_39 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_40 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_41 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_42 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_43 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_44 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_45 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_46 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_47 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_48 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_49 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_50 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_51 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_52 & _is_xRet_is_mRet_T; // @[Mux.scala 27:73]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_755 =
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_736 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_53 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_54 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_55 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_56 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_57 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_58 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_59 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_60 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_61 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_62 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_63 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_0_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_1_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_2_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_3_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_4_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_5_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_6_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_7_2; // @[Mux.scala 27:73]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_556 =
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_4_3 & cmm_state_0_is_csrr_illegal_reg_sel_4_2; // @[Mux.scala 27:73]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_781 =
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_755 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_8_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_9_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_10_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_11_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_12_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_13_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_14_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_15_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_16_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_17_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_18_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_19_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_20_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_21_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_22_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_23_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_24_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_25_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_26_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_27_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_28_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_0_3 & cmm_state_0_is_csrr_illegal_reg_sel_0_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_1_3 & cmm_state_0_is_csrr_illegal_reg_sel_1_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_2_3 & cmm_state_0_is_csrr_illegal_reg_sel_2_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_3_3 & cmm_state_0_is_csrr_illegal_reg_sel_3_2 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_556; // @[Mux.scala 27:73]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_796 =
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_781 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_5_3 & cmm_state_0_is_csrr_illegal_reg_sel_5_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_6_3 & cmm_state_0_is_csrr_illegal_reg_sel_6_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_7_3 & cmm_state_0_is_csrr_illegal_reg_sel_7_2 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_8_2 & cmm_state_0_is_csrr_illegal_reg_sel_8_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_9_2 & cmm_state_0_is_csrr_illegal_reg_sel_9_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_10_2 & cmm_state_0_is_csrr_illegal_reg_sel_10_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_11_2 & cmm_state_0_is_csrr_illegal_reg_sel_11_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_12_2 & cmm_state_0_is_csrr_illegal_reg_sel_12_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_13_2 & cmm_state_0_is_csrr_illegal_reg_sel_13_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_14_2 & cmm_state_0_is_csrr_illegal_reg_sel_14_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_15_2 & cmm_state_0_is_csrr_illegal_reg_sel_15_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_16_2 & cmm_state_0_is_csrr_illegal_reg_sel_16_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_17_2 & cmm_state_0_is_csrr_illegal_reg_sel_17_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_18_2 & cmm_state_0_is_csrr_illegal_reg_sel_18_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_19_2 & cmm_state_0_is_csrr_illegal_reg_sel_19_1; // @[Mux.scala 27:73]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_811 =
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_796 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_20_2 & cmm_state_0_is_csrr_illegal_reg_sel_20_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_21_2 & cmm_state_0_is_csrr_illegal_reg_sel_21_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_22_2 & cmm_state_0_is_csrr_illegal_reg_sel_22_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_23_2 & cmm_state_0_is_csrr_illegal_reg_sel_23_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_24_2 & cmm_state_0_is_csrr_illegal_reg_sel_24_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_25_2 & cmm_state_0_is_csrr_illegal_reg_sel_25_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_26_2 & cmm_state_0_is_csrr_illegal_reg_sel_26_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_27_2 & cmm_state_0_is_csrr_illegal_reg_sel_27_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_28_2 & cmm_state_0_is_csrr_illegal_reg_sel_28_1 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_0_4 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_1_4 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_2_4 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_3_4 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_4_4 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_5_4 & _is_xRet_is_mRet_T; // @[Mux.scala 27:73]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_826 =
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_811 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_6_4 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_7_4 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_8_3 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_9_3 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_10_3 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_11_3 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_12_3 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_13_3 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_14_3 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_15_3 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_16_3 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_17_3 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_18_3 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_19_3 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_20_3 & _is_xRet_is_mRet_T; // @[Mux.scala 27:73]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_620 =
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_12 & _cmm_state_0_is_csrr_illegal_T_15; // @[Mux.scala 27:73]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_845 =
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_826 |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_21_3 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_22_3 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_23_3 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_24_3 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_25_3 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_26_3 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_27_3 & _is_xRet_is_mRet_T |
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_addr_chk_28_3 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_2 | _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_3
     | _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_4 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_5 | _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_6
     | _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_7 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_8 | _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_9
     & _cmm_state_0_is_csrr_illegal_T_15 | _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_10 &
    _cmm_state_0_is_csrr_illegal_T_15 | _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_11 &
    _cmm_state_0_is_csrr_illegal_T_15 | _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_620; // @[Mux.scala 27:73]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_882 =
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_845 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_13 & _cmm_state_0_is_csrr_illegal_T_15 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_14 & _cmm_state_0_is_csrr_illegal_T_15 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_15 & _cmm_state_0_is_csrr_illegal_T_15 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_16 & _cmm_state_0_is_csrr_illegal_T_15 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_17 & _cmm_state_0_is_csrr_illegal_T_35 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_40 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_41 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_42 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_43 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_44 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_45 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_46 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_47 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_48 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_49 & _is_xRet_is_mRet_T; // @[Mux.scala 27:73]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_897 =
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_882 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_50 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_51 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_52 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_53 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_54 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_55 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_56 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_57 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_58 & _cmm_state_0_is_csrr_illegal_T_99 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_59 & _cmm_state_0_is_csrr_illegal_T_105 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_60 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_61 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_62 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_63 & _is_xRet_is_mRet_T |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_64 & _is_xRet_is_mRet_T; // @[Mux.scala 27:73]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_1 =
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_T_897 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_65 & csrfiles_DMode |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_66 & csrfiles_DMode |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_67 & csrfiles_DMode |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_68 & csrfiles_DMode; // @[Mux.scala 27:73]
  wire  _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_190 = ~
    is_trap_is_exception_is_csr_illegal_is_csrw_illegal_res_1; // @[CsrFiles.scala 425:5]
  wire  is_trap_is_exception_is_csr_illegal_is_csrw_illegal = (cmm_state_0_csrExe_op_rc | cmm_state_0_csrExe_op_rs |
    cmm_state_0_csrExe_op_rw) & (_is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_69 |
    _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_190); // @[Commit.scala 135:74]
  wire  _is_trap_is_exception_is_csr_illegal_T_4 = is_trap_is_exception_is_csr_illegal_is_csrw_illegal &
    io_rod_0_bits_is_csr & io_cm_op_0_is_writeback; // @[Commit.scala 149:38]
  wire  _is_trap_is_exception_is_csr_illegal_T_5 = cmm_state_0_is_csrr_illegal & io_rod_0_bits_is_csr & ~
    io_cm_op_0_is_writeback | _is_trap_is_exception_is_csr_illegal_T_4; // @[Commit.scala 148:48]
  wire  cmm_state_0_fcsrExe_op_rc = fcsrExe_mdl_io_deq_0_bits_op_rc; // @[Commit.scala 330:23 643:26]
  wire  cmm_state_0_fcsrExe_op_rs = fcsrExe_mdl_io_deq_0_bits_op_rs; // @[Commit.scala 330:23 643:26]
  wire  cmm_state_0_fcsrExe_op_rw = fcsrExe_mdl_io_deq_0_bits_op_rw; // @[Commit.scala 330:23 643:26]
  wire  _is_trap_is_exception_is_csr_illegal_is_fcsrw_illegal_T_2 = csrfiles_mstatus_fs == 2'h0; // @[Commit.scala 140:101]
  wire  is_trap_is_exception_is_csr_illegal_is_fcsrw_illegal = (cmm_state_0_fcsrExe_op_rc | cmm_state_0_fcsrExe_op_rs |
    cmm_state_0_fcsrExe_op_rw) & csrfiles_mstatus_fs == 2'h0; // @[Commit.scala 140:78]
  wire  _is_trap_is_exception_is_csr_illegal_T_7 = is_trap_is_exception_is_csr_illegal_is_fcsrw_illegal &
    io_rod_0_bits_is_fcsr & io_cm_op_0_is_writeback; // @[Commit.scala 150:39]
  wire  is_trap_is_exception_is_csr_illegal = _is_trap_is_exception_is_csr_illegal_T_5 |
    _is_trap_is_exception_is_csr_illegal_T_7; // @[Commit.scala 149:48]
  wire  is_trap_is_exception_is_ill_sfence = io_cm_op_0_is_writeback & io_rod_0_bits_is_sfence_vma & (
    csrfiles_mstatus_tvm & _is_xRet_is_sRet_T_1 |
    _is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt_is_ebreak_dm_is_ebreak_breakpointn_T_3); // @[Commit.scala 152:51]
  wire  is_trap_is_exception_is_ill_wfi = io_cm_op_0_is_writeback & io_rod_0_bits_is_wfi & (csrfiles_mstatus_tw &
    csrfiles_priv_lvl < 2'h3); // @[Commit.scala 153:49]
  wire  is_trap_is_exception_is_ill_mRet = io_rod_0_bits_privil_mret & csrfiles_priv_lvl != 2'h3; // @[Commit.scala 155:39]
  wire  is_trap_is_exception_is_ill_sRet = io_rod_0_bits_privil_sret & (
    _is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt_is_ebreak_dm_is_ebreak_breakpointn_T_3 |
    _is_xRet_is_sRet_T_1 & csrfiles_mstatus_tsr); // @[Commit.scala 156:39]
  wire  is_trap_is_exception_is_ill_dRet = io_rod_0_bits_privil_dret & _is_trap_is_interrupt_T_2; // @[Commit.scala 157:39]
  wire  is_trap_is_exception_is_ill_fpus = io_cm_op_0_is_writeback & io_rod_0_bits_is_fpu &
    _is_trap_is_exception_is_csr_illegal_is_fcsrw_illegal_T_2; // @[Commit.scala 158:45]
  wire  is_trap_is_exception_is_illeage = io_rod_0_bits_is_illeage | is_trap_is_exception_is_csr_illegal |
    is_trap_is_exception_is_ill_sfence | is_trap_is_exception_is_ill_wfi | is_trap_is_exception_is_ill_mRet |
    is_trap_is_exception_is_ill_sRet | is_trap_is_exception_is_ill_dRet | is_trap_is_exception_is_ill_fpus; // @[Commit.scala 160:125]
  wire  _is_trap_is_exception_T_4 = _is_trap_is_exception_T_2 | is_trap_is_exception_is_illeage; // @[Commit.scala 195:32]
  wire  is_trap_is_exception_is_load_accessFault = io_lsu_cmm_is_access_fault & io_rod_0_bits_is_lu &
    _is_trap_is_exception_is_csr_illegal_T_1; // @[Commit.scala 66:67]
  wire  _is_trap_is_exception_T_5 = _is_trap_is_exception_T_4 | is_trap_is_exception_is_load_accessFault; // @[Commit.scala 196:32]
  wire  _is_trap_is_exception_is_store_accessFault_T = io_rod_0_bits_is_su | io_rod_0_bits_is_amo; // @[Commit.scala 71:70]
  wire  is_trap_is_exception_is_store_accessFault = io_lsu_cmm_is_access_fault & (io_rod_0_bits_is_su |
    io_rod_0_bits_is_amo) & _is_trap_is_exception_is_csr_illegal_T_1; // @[Commit.scala 71:85]
  wire  _is_trap_is_exception_T_6 = _is_trap_is_exception_T_5 | is_trap_is_exception_is_store_accessFault; // @[Commit.scala 197:32]
  wire  is_trap_is_exception_is_load_misAlign = io_lsu_cmm_is_misAlign & io_rod_0_bits_is_lu &
    _is_trap_is_exception_is_csr_illegal_T_1; // @[Commit.scala 86:60]
  wire  _is_trap_is_exception_T_7 = _is_trap_is_exception_T_6 | is_trap_is_exception_is_load_misAlign; // @[Commit.scala 198:32]
  wire  is_trap_is_exception_is_store_misAlign = io_lsu_cmm_is_misAlign & _is_trap_is_exception_is_store_accessFault_T
     & _is_trap_is_exception_is_csr_illegal_T_1; // @[Commit.scala 95:76]
  wire  _is_trap_is_exception_T_8 = _is_trap_is_exception_T_7 | is_trap_is_exception_is_store_misAlign; // @[Commit.scala 199:32]
  wire  is_trap_is_exception_is_load_pagingFault = io_lsu_cmm_is_paging_fault & io_rod_0_bits_is_lu &
    _is_trap_is_exception_is_csr_illegal_T_1; // @[Commit.scala 76:67]
  wire  _is_trap_is_exception_T_9 = _is_trap_is_exception_T_8 | is_trap_is_exception_is_load_pagingFault; // @[Commit.scala 200:32]
  wire  is_trap_is_exception_is_store_pagingFault = io_lsu_cmm_is_paging_fault &
    _is_trap_is_exception_is_store_accessFault_T & _is_trap_is_exception_is_csr_illegal_T_1; // @[Commit.scala 81:85]
  wire  is_trap_is_exception = _is_trap_is_exception_T_9 | is_trap_is_exception_is_store_pagingFault; // @[Commit.scala 201:32]
  wire  is_trap = is_trap_is_interrupt | is_trap_is_exception; // @[Commit.scala 212:32]
  wire  is_fence_i = io_rod_0_bits_is_fence_i & io_cm_op_0_is_writeback; // @[Commit.scala 180:37]
  wire  is_sfence_vma = io_rod_0_bits_is_sfence_vma & io_cm_op_0_is_writeback & (_cmm_state_0_is_csrr_illegal_T_33 &
    _is_xRet_is_sRet_T_1 | _is_xRet_is_mRet_T); // @[Commit.scala 185:51]
  wire  _T_9 = is_xRet | is_trap | is_fence_i | is_sfence_vma; // @[Commit.scala 426:81]
  wire  _T_10 = bctq_mdl_io_deq_0_bits_isPredictTaken != bctq_mdl_io_deq_0_bits_isFinalTaken; // @[frontend.scala 245:37]
  wire  _T_11 = io_rod_0_bits_is_branch & _T_10; // @[Commit.scala 431:47]
  wire [63:0] _GEN_118 = {{25'd0}, jctq_mdl_io_deq_0_bits_rasResp_target}; // @[frontend.scala 250:48]
  wire [63:0] _GEN_119 = {{25'd0}, jctq_mdl_io_deq_0_bits_btbResp_target}; // @[frontend.scala 250:80]
  wire  _T_15 = jctq_mdl_io_deq_0_bits_isRas ? _GEN_118 != jctq_mdl_io_deq_0_bits_finalTarget : _GEN_119 !=
    jctq_mdl_io_deq_0_bits_finalTarget; // @[frontend.scala 250:25]
  wire  _T_16 = io_rod_0_bits_is_jalr & _T_15; // @[Commit.scala 431:121]
  wire  is_step_1 = csrfiles_dcsr_step & _is_trap_is_interrupt_T_2; // @[Commit.scala 243:38]
  wire  _T_21 = ~is_step_1; // @[Commit.scala 431:190]
  wire  _T_23 = ~csrExe_mdl_io_deq_0_valid; // @[Commit.scala 435:40]
  wire  _T_25 = ~fcsrExe_mdl_io_deq_0_valid; // @[Commit.scala 435:87]
  wire [1:0] _GEN_462 = io_rod_0_bits_is_csr & ~csrExe_mdl_io_deq_0_valid | io_rod_0_bits_is_fcsr & ~
    fcsrExe_mdl_io_deq_0_valid | io_rod_0_bits_is_branch & ~bctq_mdl_io_deq_0_valid | io_rod_0_bits_is_jalr & ~
    jctq_mdl_io_deq_0_valid ? 2'h0 : 2'h3; // @[Commit.scala 435:200 436:27 438:27]
  wire [1:0] _GEN_463 = io_cm_op_0_is_writeback ? _GEN_462 : 2'h0; // @[Commit.scala 434:41 442:25]
  wire [1:0] _GEN_464 = (io_rod_0_bits_is_branch & _T_10 & bctq_mdl_io_deq_0_valid | io_rod_0_bits_is_jalr & _T_15 &
    jctq_mdl_io_deq_0_valid) & io_cm_op_0_is_writeback & ~is_step_1 ? 2'h2 : _GEN_463; // @[Commit.scala 431:213 432:27]
  wire [1:0] _GEN_465 = _T_9 ? 2'h1 : _GEN_464; // @[Commit.scala 427:11 428:25]
  wire [1:0] commit_state_0 = ~io_rod_0_valid ? 2'h0 : _GEN_465; // @[Commit.scala 419:33 420:23]
  wire  commit_state_is_comfirm_0 = commit_state_0 == 2'h3; // @[Commit.scala 324:87]
  wire  commit_state_is_misPredict_0 = commit_state_0 == 2'h2; // @[Commit.scala 325:87]
  wire  commit_state_is_abort_0 = commit_state_0 == 2'h1; // @[Commit.scala 326:87]
  wire  is_retired_0 = commit_state_is_comfirm_0 | commit_state_is_misPredict_0; // @[Commit.scala 333:77]
  wire  _GEN_0 = emu_reset ? 1'h0 : emu_reset; // @[Commit.scala 363:26 365:{26,38}]
  wire  _GEN_1 = io_dm_hartResetReq | _GEN_0; // @[Commit.scala 364:{30,42}]
  wire [63:0] _csrfiles_mcycle_T_1 = csrfiles_mcycle + 64'h1; // @[Commit.scala 395:38]
  reg  rtc_0; // @[Reg.scala 35:20]
  reg  rtc_1; // @[Reg.scala 35:20]
  reg  rtc_2; // @[Reg.scala 35:20]
  reg  rtc_3; // @[Reg.scala 35:20]
  wire [63:0] _csrfiles_time_T_1 = csrfiles_time + 64'h1; // @[Commit.scala 396:120]
  wire  _T_1 = is_retired_0 | commit_state_is_abort_0; // @[Commit.scala 398:59]
  wire [1:0] _GEN_469 = emu_reset ? 2'h3 : csrfiles_priv_lvl; // @[CsrFiles.scala 707:{30,41}]
  wire [1:0] _GEN_470 = is_xRet_is_dRet ? csrfiles_dcsr_prv : _GEN_469; // @[CsrFiles.scala 710:{24,35}]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_74 = ~csrfiles_medeleg[15] ? 2'h3 : 2'h1; // @[CsrFiles.scala 736:106]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_75 = _is_xRet_is_mRet_T ? 2'h3 :
    _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_74; // @[CsrFiles.scala 736:58]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_69 = ~csrfiles_medeleg[13] ? 2'h3 : 2'h1; // @[CsrFiles.scala 735:106]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_70 = _is_xRet_is_mRet_T ? 2'h3 :
    _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_69; // @[CsrFiles.scala 735:58]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_64 = ~csrfiles_medeleg[12] ? 2'h3 : 2'h1; // @[CsrFiles.scala 734:106]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_65 = _is_xRet_is_mRet_T ? 2'h3 :
    _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_64; // @[CsrFiles.scala 734:58]
  wire  csr_state_0_csrfiles_priv_lvl_is_ecall_M = io_rod_0_bits_privil_ecall & _is_xRet_is_mRet_T; // @[Commit.scala 115:31]
  wire  csr_state_0_csrfiles_priv_lvl_is_ecall_S = io_rod_0_bits_privil_ecall & _is_xRet_is_sRet_T_1; // @[Commit.scala 110:31]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_60 = ~csrfiles_medeleg[9] ? 2'h3 : 2'h1; // @[CsrFiles.scala 732:58]
  wire  csr_state_0_csrfiles_priv_lvl_is_ecall_U = io_rod_0_bits_privil_ecall &
    _is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt_is_ebreak_dm_is_ebreak_breakpointn_T_3; // @[Commit.scala 105:31]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_57 = ~csrfiles_medeleg[8] ? 2'h3 : 2'h1; // @[CsrFiles.scala 731:58]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_53 = ~csrfiles_medeleg[7] ? 2'h3 : 2'h1; // @[CsrFiles.scala 730:106]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_54 = _is_xRet_is_mRet_T ? 2'h3 :
    _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_53; // @[CsrFiles.scala 730:58]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_48 = ~csrfiles_medeleg[6] ? 2'h3 : 2'h1; // @[CsrFiles.scala 729:106]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_49 = _is_xRet_is_mRet_T ? 2'h3 :
    _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_48; // @[CsrFiles.scala 729:58]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_43 = ~csrfiles_medeleg[5] ? 2'h3 : 2'h1; // @[CsrFiles.scala 728:106]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_44 = _is_xRet_is_mRet_T ? 2'h3 :
    _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_43; // @[CsrFiles.scala 728:58]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_38 = ~csrfiles_medeleg[4] ? 2'h3 : 2'h1; // @[CsrFiles.scala 727:106]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_39 = _is_xRet_is_mRet_T ? 2'h3 :
    _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_38; // @[CsrFiles.scala 727:58]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_33 = ~csrfiles_medeleg[3] ? 2'h3 : 2'h1; // @[CsrFiles.scala 726:106]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_34 = _is_xRet_is_mRet_T ? 2'h3 :
    _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_33; // @[CsrFiles.scala 726:58]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_28 = ~csrfiles_medeleg[2] ? 2'h3 : 2'h1; // @[CsrFiles.scala 725:106]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_29 = _is_xRet_is_mRet_T ? 2'h3 :
    _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_28; // @[CsrFiles.scala 725:58]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_23 = ~csrfiles_medeleg[1] ? 2'h3 : 2'h1; // @[CsrFiles.scala 724:106]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_24 = _is_xRet_is_mRet_T ? 2'h3 :
    _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_23; // @[CsrFiles.scala 724:58]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_13 = ~csrfiles_mideleg[9] ? 2'h3 : 2'h1; // @[CsrFiles.scala 719:97]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_14 = _is_xRet_is_mRet_T ? 2'h3 :
    _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_13; // @[CsrFiles.scala 719:49]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_8 = ~csrfiles_mideleg[5] ? 2'h3 : 2'h1; // @[CsrFiles.scala 717:97]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_9 = _is_xRet_is_mRet_T ? 2'h3 :
    _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_8; // @[CsrFiles.scala 717:49]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_3 = ~csrfiles_mideleg[1] ? 2'h3 : 2'h1; // @[CsrFiles.scala 715:97]
  wire [1:0] _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_4 = _is_xRet_is_mRet_T ? 2'h3 :
    _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_3; // @[CsrFiles.scala 715:49]
  wire [1:0] _GEN_471 = is_xRet_is_mRet ? csrfiles_mstatus_mpp : _GEN_469; // @[CsrFiles.scala 712:{24,35}]
  wire [1:0] _GEN_472 = is_xRet_is_sRet ? {{1'd0}, csrfiles_mstatus_spp} : _GEN_471; // @[CsrFiles.scala 713:{24,35}]
  wire [1:0] _GEN_473 = is_trap_is_interrupt_is_s_interrupt_is_ssi ? _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_4 :
    _GEN_472; // @[CsrFiles.scala 715:{32,43}]
  wire [1:0] _GEN_474 = is_trap_is_interrupt_is_m_interrupt_is_msi ? 2'h3 : _GEN_473; // @[CsrFiles.scala 716:{32,43}]
  wire [1:0] _GEN_475 = is_trap_is_interrupt_is_s_interrupt_is_sti ? _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_9 :
    _GEN_474; // @[CsrFiles.scala 717:{32,43}]
  wire [1:0] _GEN_476 = is_trap_is_interrupt_is_m_interrupt_is_mti ? 2'h3 : _GEN_475; // @[CsrFiles.scala 718:{32,43}]
  wire [1:0] _GEN_477 = is_trap_is_interrupt_is_s_interrupt_is_sei ? _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_14 :
    _GEN_476; // @[CsrFiles.scala 719:{32,43}]
  wire [1:0] _GEN_478 = is_trap_is_interrupt_is_m_interrupt_is_mei ? 2'h3 : _GEN_477; // @[CsrFiles.scala 720:{32,43}]
  wire [1:0] _GEN_480 = io_rod_0_bits_privil_is_access_fault ? _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_24 : _GEN_478; // @[CsrFiles.scala 724:{41,52}]
  wire [1:0] _GEN_481 = is_trap_is_exception_is_illeage ? _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_29 : _GEN_480; // @[CsrFiles.scala 725:{41,52}]
  wire [1:0] _GEN_482 = is_trap_is_exception_is_ebreak_exc ? _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_34 : _GEN_481; // @[CsrFiles.scala 726:{41,52}]
  wire [1:0] _GEN_483 = is_trap_is_exception_is_load_misAlign ? _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_39 : _GEN_482; // @[CsrFiles.scala 727:{41,52}]
  wire [1:0] _GEN_484 = is_trap_is_exception_is_load_accessFault ? _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_44 :
    _GEN_483; // @[CsrFiles.scala 728:{41,52}]
  wire [1:0] _GEN_485 = is_trap_is_exception_is_store_misAlign ? _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_49 : _GEN_484
    ; // @[CsrFiles.scala 729:{41,52}]
  wire [1:0] _GEN_486 = is_trap_is_exception_is_store_accessFault ? _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_54 :
    _GEN_485; // @[CsrFiles.scala 730:{41,52}]
  wire [1:0] _GEN_487 = csr_state_0_csrfiles_priv_lvl_is_ecall_U ? _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_57 :
    _GEN_486; // @[CsrFiles.scala 731:{41,52}]
  wire [1:0] _GEN_488 = csr_state_0_csrfiles_priv_lvl_is_ecall_S ? _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_60 :
    _GEN_487; // @[CsrFiles.scala 732:{41,52}]
  wire [1:0] _GEN_489 = csr_state_0_csrfiles_priv_lvl_is_ecall_M ? 2'h3 : _GEN_488; // @[CsrFiles.scala 733:{41,52}]
  wire [1:0] _GEN_490 = io_rod_0_bits_privil_is_paging_fault ? _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_65 : _GEN_489; // @[CsrFiles.scala 734:{41,52}]
  wire [1:0] _GEN_491 = is_trap_is_exception_is_load_pagingFault ? _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_70 :
    _GEN_490; // @[CsrFiles.scala 735:{41,52}]
  wire [1:0] _GEN_492 = is_trap_is_exception_is_store_pagingFault ? _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_75 :
    _GEN_491; // @[CsrFiles.scala 736:{41,52}]
  wire [1:0] csr_state_0_csrfiles_priv_lvl_priv_lvl = csrfiles_DMode ? _GEN_470 : _GEN_492; // @[CsrFiles.scala 709:31]
  wire  _GEN_494 = is_xRet_is_dRet ? 1'h0 : csrfiles_DMode; // @[CsrFiles.scala 1872:{31,39}]
  wire  csr_state_0_csrfiles_DMode_DMode = is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt | _GEN_494; // @[CsrFiles.scala 1871:{37,45}]
  wire [11:0] cmm_state_0_fcsrExe_addr = fcsrExe_mdl_io_deq_0_bits_addr; // @[Commit.scala 330:23 643:26]
  wire  csr_state_0_csrfiles_fcsr_enable0 = cmm_state_0_fcsrExe_addr == 12'h1 & (cmm_state_0_fcsrExe_op_rw |
    cmm_state_0_fcsrExe_op_rs | cmm_state_0_fcsrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire  csr_state_0_csrfiles_fcsr_enable1 = cmm_state_0_fcsrExe_addr == 12'h2 & (cmm_state_0_fcsrExe_op_rw |
    cmm_state_0_fcsrExe_op_rs | cmm_state_0_fcsrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] cmm_state_0_fcsrExe_dat_i = fcsrExe_mdl_io_deq_0_bits_dat_i; // @[Commit.scala 330:23 643:26]
  wire [63:0] _csr_state_0_csrfiles_fcsr_dnxt_T_11 = cmm_state_0_fcsrExe_op_rw ? cmm_state_0_fcsrExe_dat_i : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _GEN_120 = {{61'd0}, csrfiles_fcsr_frm}; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_fcsr_dnxt_T_8 = _GEN_120 | cmm_state_0_fcsrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_fcsr_dnxt_T_12 = cmm_state_0_fcsrExe_op_rs ? _csr_state_0_csrfiles_fcsr_dnxt_T_8 : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_fcsr_dnxt_T_14 = _csr_state_0_csrfiles_fcsr_dnxt_T_11 |
    _csr_state_0_csrfiles_fcsr_dnxt_T_12; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_fcsr_dnxt_T_9 = ~cmm_state_0_fcsrExe_dat_i; // @[CsrFiles.scala 46:32]
  wire [63:0] _csr_state_0_csrfiles_fcsr_dnxt_T_10 = _GEN_120 & _csr_state_0_csrfiles_fcsr_dnxt_T_9; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_fcsr_dnxt_T_13 = cmm_state_0_fcsrExe_op_rc ? _csr_state_0_csrfiles_fcsr_dnxt_T_10 : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_fcsr_dnxt1 = _csr_state_0_csrfiles_fcsr_dnxt_T_14 |
    _csr_state_0_csrfiles_fcsr_dnxt_T_13; // @[Mux.scala 27:73]
  wire  csr_state_0_csrfiles_fcsr_enable2 = cmm_state_0_fcsrExe_addr == 12'h3 & (cmm_state_0_fcsrExe_op_rw |
    cmm_state_0_fcsrExe_op_rs | cmm_state_0_fcsrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [7:0] _csr_state_0_csrfiles_fcsr_T = {csrfiles_fcsr_frm,csrfiles_fcsr_fflags}; // @[CsrFiles.scala 675:59]
  wire [63:0] _GEN_122 = {{56'd0}, _csr_state_0_csrfiles_fcsr_T}; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_fcsr_dnxt_T_16 = _GEN_122 | cmm_state_0_fcsrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_fcsr_dnxt_T_20 = cmm_state_0_fcsrExe_op_rs ? _csr_state_0_csrfiles_fcsr_dnxt_T_16 : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_fcsr_dnxt_T_22 = _csr_state_0_csrfiles_fcsr_dnxt_T_11 |
    _csr_state_0_csrfiles_fcsr_dnxt_T_20; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_fcsr_dnxt_T_18 = _GEN_122 & _csr_state_0_csrfiles_fcsr_dnxt_T_9; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_fcsr_dnxt_T_21 = cmm_state_0_fcsrExe_op_rc ? _csr_state_0_csrfiles_fcsr_dnxt_T_18 : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_fcsr_dnxt2 = _csr_state_0_csrfiles_fcsr_dnxt_T_22 |
    _csr_state_0_csrfiles_fcsr_dnxt_T_21; // @[Mux.scala 27:73]
  wire [2:0] _GEN_497 = csr_state_0_csrfiles_fcsr_enable2 ? csr_state_0_csrfiles_fcsr_dnxt2[7:5] : csrfiles_fcsr_frm; // @[CsrFiles.scala 680:{24,62}]
  wire [63:0] _GEN_498 = csr_state_0_csrfiles_fcsr_enable1 ? csr_state_0_csrfiles_fcsr_dnxt1 : {{61'd0}, _GEN_497}; // @[CsrFiles.scala 679:{24,35}]
  wire [63:0] _GEN_501 = csr_state_0_csrfiles_fcsr_enable0 ? {{61'd0}, csrfiles_fcsr_frm} : _GEN_498; // @[CsrFiles.scala 678:19]
  wire [2:0] csr_state_0_csrfiles_fcsr_fcsr_frm = _GEN_501[2:0];
  wire [63:0] _GEN_124 = {{59'd0}, csrfiles_fcsr_fflags}; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_fcsr_dnxt_T = _GEN_124 | cmm_state_0_fcsrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_fcsr_dnxt_T_4 = cmm_state_0_fcsrExe_op_rs ? _csr_state_0_csrfiles_fcsr_dnxt_T : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_fcsr_dnxt_T_6 = _csr_state_0_csrfiles_fcsr_dnxt_T_11 |
    _csr_state_0_csrfiles_fcsr_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_fcsr_dnxt_T_2 = _GEN_124 & _csr_state_0_csrfiles_fcsr_dnxt_T_9; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_fcsr_dnxt_T_5 = cmm_state_0_fcsrExe_op_rc ? _csr_state_0_csrfiles_fcsr_dnxt_T_2 : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_fcsr_dnxt0 = _csr_state_0_csrfiles_fcsr_dnxt_T_6 |
    _csr_state_0_csrfiles_fcsr_dnxt_T_5; // @[Mux.scala 27:73]
  wire [4:0] _GEN_496 = csr_state_0_csrfiles_fcsr_enable2 ? csr_state_0_csrfiles_fcsr_dnxt2[4:0] : csrfiles_fcsr_fflags; // @[CsrFiles.scala 680:{24,38}]
  wire [4:0] _GEN_499 = csr_state_0_csrfiles_fcsr_enable1 ? csrfiles_fcsr_fflags : _GEN_496; // @[CsrFiles.scala 679:24]
  wire [63:0] _GEN_500 = csr_state_0_csrfiles_fcsr_enable0 ? csr_state_0_csrfiles_fcsr_dnxt0 : {{59'd0}, _GEN_499}; // @[CsrFiles.scala 678:{19,33}]
  wire [4:0] csr_state_0_csrfiles_fcsr_fcsr_fflags = _GEN_500[4:0];
  wire  csr_state_0_csrfiles_stvec_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_10 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] cmm_state_0_csrExe_dat_i = csrExe_mdl_io_deq_0_bits_dat_i; // @[Commit.scala 330:23 642:26]
  wire [63:0] _csr_state_0_csrfiles_stvec_dnxt_T_3 = cmm_state_0_csrExe_op_rw ? cmm_state_0_csrExe_dat_i : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_stvec_T = {csrfiles_stvec_base,2'h0}; // @[CsrFiles.scala 1321:58]
  wire [63:0] _csr_state_0_csrfiles_stvec_dnxt_T = _csr_state_0_csrfiles_stvec_T | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_stvec_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_stvec_dnxt_T : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_stvec_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_stvec_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_stvec_dnxt_T_1 = ~cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 46:32]
  wire [63:0] _csr_state_0_csrfiles_stvec_dnxt_T_2 = _csr_state_0_csrfiles_stvec_T &
    _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_stvec_dnxt_T_5 = cmm_state_0_csrExe_op_rc ? _csr_state_0_csrfiles_stvec_dnxt_T_2 : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_stvec_dnxt = _csr_state_0_csrfiles_stvec_dnxt_T_6 |
    _csr_state_0_csrfiles_stvec_dnxt_T_5; // @[Mux.scala 27:73]
  wire  csr_state_0_csrfiles_scounteren_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_50 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _GEN_126 = {{32'd0}, csrfiles_scounteren_hpm}; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_scounteren_dnxt_T = _GEN_126 | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_scounteren_dnxt_T_4 = cmm_state_0_csrExe_op_rs ?
    _csr_state_0_csrfiles_scounteren_dnxt_T : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_scounteren_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_scounteren_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_scounteren_dnxt_T_2 = _GEN_126 & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_scounteren_dnxt_T_5 = cmm_state_0_csrExe_op_rc ?
    _csr_state_0_csrfiles_scounteren_dnxt_T_2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_scounteren_dnxt = _csr_state_0_csrfiles_scounteren_dnxt_T_6 |
    _csr_state_0_csrfiles_scounteren_dnxt_T_5; // @[Mux.scala 27:73]
  wire [63:0] _GEN_503 = csr_state_0_csrfiles_scounteren_enable ? csr_state_0_csrfiles_scounteren_dnxt : {{32'd0},
    csrfiles_scounteren_hpm}; // @[CsrFiles.scala 1342:{20,37}]
  wire [31:0] csr_state_0_csrfiles_scounteren_scounteren_hpm = _GEN_503[31:0];
  wire  csr_state_0_csrfiles_sscratch_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_12 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_sscratch_dnxt_T = csrfiles_sscratch | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_sscratch_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_sscratch_dnxt_T
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_sscratch_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_sscratch_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_sscratch_dnxt_T_2 = csrfiles_sscratch & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_sscratch_dnxt_T_5 = cmm_state_0_csrExe_op_rc ?
    _csr_state_0_csrfiles_sscratch_dnxt_T_2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_sscratch_dnxt = _csr_state_0_csrfiles_sscratch_dnxt_T_6 |
    _csr_state_0_csrfiles_sscratch_dnxt_T_5; // @[Mux.scala 27:73]
  wire  _csr_state_0_csrfiles_sepc_T_7 = csr_state_0_csrfiles_priv_lvl_priv_lvl == 2'h1; // @[CsrFiles.scala 1373:44]
  wire  _csr_state_0_csrfiles_sepc_T_10 = is_trap & csr_state_0_csrfiles_priv_lvl_priv_lvl == 2'h1 &
    _is_trap_is_interrupt_T_2; // @[CsrFiles.scala 1373:56]
  wire [24:0] _csr_state_0_csrfiles_sepc_sepc_commit_pc_v64_T_2 = io_rod_0_bits_pc[38] ? 25'h1ffffff : 25'h0; // @[Bitwise.scala 77:12]
  wire [63:0] csr_state_0_csrfiles_sepc_sepc_commit_pc = {_csr_state_0_csrfiles_sepc_sepc_commit_pc_v64_T_2,
    io_rod_0_bits_pc}; // @[Cat.scala 33:92]
  wire  csr_state_0_csrfiles_sepc_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_13 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_sepc_dnxt_T = csrfiles_sepc | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_sepc_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_sepc_dnxt_T : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_sepc_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_sepc_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_sepc_dnxt_T_2 = csrfiles_sepc & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_sepc_dnxt_T_5 = cmm_state_0_csrExe_op_rc ? _csr_state_0_csrfiles_sepc_dnxt_T_2 : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_sepc_dnxt = _csr_state_0_csrfiles_sepc_dnxt_T_6 | _csr_state_0_csrfiles_sepc_dnxt_T_5
    ; // @[Mux.scala 27:73]
  wire  csr_state_0_csrfiles_scause_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_14 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_scause_T = {csrfiles_scause_interrupt,csrfiles_scause_exception_code}; // @[CsrFiles.scala 1386:59]
  wire [63:0] _csr_state_0_csrfiles_scause_dnxt_T = _csr_state_0_csrfiles_scause_T | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_scause_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_scause_dnxt_T : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_scause_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_scause_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_scause_dnxt_T_2 = _csr_state_0_csrfiles_scause_T &
    _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_scause_dnxt_T_5 = cmm_state_0_csrExe_op_rc ? _csr_state_0_csrfiles_scause_dnxt_T_2
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_scause_dnxt = _csr_state_0_csrfiles_scause_dnxt_T_6 |
    _csr_state_0_csrfiles_scause_dnxt_T_5; // @[Mux.scala 27:73]
  wire  _GEN_579 = csr_state_0_csrfiles_scause_enable ? csr_state_0_csrfiles_scause_dnxt[63] : csrfiles_scause_interrupt
    ; // @[CsrFiles.scala 1418:23 1419:29]
  wire  _GEN_581 = is_trap_is_exception & _csr_state_0_csrfiles_sepc_T_7 & _is_trap_is_interrupt_T_2 ? 1'h0 : _GEN_579; // @[CsrFiles.scala 1399:89 1400:24]
  wire  csr_state_0_csrfiles_scause_scause_interrupt = _is_trap_is_interrupt_T & _csr_state_0_csrfiles_sepc_T_7 &
    _is_trap_is_interrupt_T_2 | _GEN_581; // @[CsrFiles.scala 1388:128 1389:24]
  wire [1:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_7 = is_trap_is_interrupt_is_m_interrupt_is_msi ? 2'h3
     : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _GEN_128 = {{1'd0}, is_trap_is_interrupt_is_s_interrupt_is_ssi}; // @[Mux.scala 27:73]
  wire [1:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_12 = _GEN_128 |
    _csr_state_0_csrfiles_scause_scause_exception_code_T_7; // @[Mux.scala 27:73]
  wire [2:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_8 = is_trap_is_interrupt_is_s_interrupt_is_sti ? 3'h5
     : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _GEN_129 = {{1'd0}, _csr_state_0_csrfiles_scause_scause_exception_code_T_12}; // @[Mux.scala 27:73]
  wire [2:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_13 = _GEN_129 |
    _csr_state_0_csrfiles_scause_scause_exception_code_T_8; // @[Mux.scala 27:73]
  wire [2:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_9 = is_trap_is_interrupt_is_m_interrupt_is_mti ? 3'h7
     : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_14 =
    _csr_state_0_csrfiles_scause_scause_exception_code_T_13 | _csr_state_0_csrfiles_scause_scause_exception_code_T_9; // @[Mux.scala 27:73]
  wire [3:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_10 = is_trap_is_interrupt_is_s_interrupt_is_sei ? 4'h9
     : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _GEN_130 = {{1'd0}, _csr_state_0_csrfiles_scause_scause_exception_code_T_14}; // @[Mux.scala 27:73]
  wire [3:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_15 = _GEN_130 |
    _csr_state_0_csrfiles_scause_scause_exception_code_T_10; // @[Mux.scala 27:73]
  wire [3:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_11 = is_trap_is_interrupt_is_m_interrupt_is_mei ? 4'hb
     : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_16 =
    _csr_state_0_csrfiles_scause_scause_exception_code_T_15 | _csr_state_0_csrfiles_scause_scause_exception_code_T_11; // @[Mux.scala 27:73]
  wire [1:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_20 = is_trap_is_exception_is_illeage ? 2'h2 : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _GEN_131 = {{1'd0}, io_rod_0_bits_privil_is_access_fault}; // @[Mux.scala 27:73]
  wire [1:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_33 = _GEN_131 |
    _csr_state_0_csrfiles_scause_scause_exception_code_T_20; // @[Mux.scala 27:73]
  wire [1:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_21 = is_trap_is_exception_is_ebreak_exc ? 2'h3 : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_34 =
    _csr_state_0_csrfiles_scause_scause_exception_code_T_33 | _csr_state_0_csrfiles_scause_scause_exception_code_T_21; // @[Mux.scala 27:73]
  wire [2:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_22 = is_trap_is_exception_is_load_misAlign ? 3'h4 : 3'h0
    ; // @[Mux.scala 27:73]
  wire [2:0] _GEN_132 = {{1'd0}, _csr_state_0_csrfiles_scause_scause_exception_code_T_34}; // @[Mux.scala 27:73]
  wire [2:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_35 = _GEN_132 |
    _csr_state_0_csrfiles_scause_scause_exception_code_T_22; // @[Mux.scala 27:73]
  wire [2:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_23 = is_trap_is_exception_is_load_accessFault ? 3'h5
     : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_36 =
    _csr_state_0_csrfiles_scause_scause_exception_code_T_35 | _csr_state_0_csrfiles_scause_scause_exception_code_T_23; // @[Mux.scala 27:73]
  wire [2:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_24 = is_trap_is_exception_is_store_misAlign ? 3'h6 : 3'h0
    ; // @[Mux.scala 27:73]
  wire [2:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_37 =
    _csr_state_0_csrfiles_scause_scause_exception_code_T_36 | _csr_state_0_csrfiles_scause_scause_exception_code_T_24; // @[Mux.scala 27:73]
  wire [2:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_25 = is_trap_is_exception_is_store_accessFault ? 3'h7
     : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_38 =
    _csr_state_0_csrfiles_scause_scause_exception_code_T_37 | _csr_state_0_csrfiles_scause_scause_exception_code_T_25; // @[Mux.scala 27:73]
  wire [3:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_26 = csr_state_0_csrfiles_priv_lvl_is_ecall_U ? 4'h8
     : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _GEN_133 = {{1'd0}, _csr_state_0_csrfiles_scause_scause_exception_code_T_38}; // @[Mux.scala 27:73]
  wire [3:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_39 = _GEN_133 |
    _csr_state_0_csrfiles_scause_scause_exception_code_T_26; // @[Mux.scala 27:73]
  wire [3:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_27 = csr_state_0_csrfiles_priv_lvl_is_ecall_S ? 4'h9
     : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_40 =
    _csr_state_0_csrfiles_scause_scause_exception_code_T_39 | _csr_state_0_csrfiles_scause_scause_exception_code_T_27; // @[Mux.scala 27:73]
  wire [3:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_28 = csr_state_0_csrfiles_priv_lvl_is_ecall_M ? 4'hb
     : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_41 =
    _csr_state_0_csrfiles_scause_scause_exception_code_T_40 | _csr_state_0_csrfiles_scause_scause_exception_code_T_28; // @[Mux.scala 27:73]
  wire [3:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_29 = io_rod_0_bits_privil_is_paging_fault ? 4'hc : 4'h0
    ; // @[Mux.scala 27:73]
  wire [3:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_42 =
    _csr_state_0_csrfiles_scause_scause_exception_code_T_41 | _csr_state_0_csrfiles_scause_scause_exception_code_T_29; // @[Mux.scala 27:73]
  wire [3:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_30 = is_trap_is_exception_is_load_pagingFault ? 4'hd
     : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_43 =
    _csr_state_0_csrfiles_scause_scause_exception_code_T_42 | _csr_state_0_csrfiles_scause_scause_exception_code_T_30; // @[Mux.scala 27:73]
  wire [3:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_31 = is_trap_is_exception_is_store_pagingFault ? 4'hf
     : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _csr_state_0_csrfiles_scause_scause_exception_code_T_44 =
    _csr_state_0_csrfiles_scause_scause_exception_code_T_43 | _csr_state_0_csrfiles_scause_scause_exception_code_T_31; // @[Mux.scala 27:73]
  wire [62:0] _GEN_580 = csr_state_0_csrfiles_scause_enable ? csr_state_0_csrfiles_scause_dnxt[62:0] :
    csrfiles_scause_exception_code; // @[CsrFiles.scala 1418:23 1420:29]
  wire [63:0] _csr_state_0_csrfiles_stval_stval_T_1 = io_rod_0_bits_privil_is_access_fault ? io_if_cmm_ill_vaddr : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_stval_stval_T_2 = io_rod_0_bits_privil_is_paging_fault ? io_if_cmm_ill_vaddr : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_stval_stval_T_11 = _csr_state_0_csrfiles_stval_stval_T_1 |
    _csr_state_0_csrfiles_stval_stval_T_2; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_stval_stval_T_5 = is_trap_is_exception_is_load_misAlign ? io_lsu_cmm_trap_addr : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_stval_stval_T_14 = _csr_state_0_csrfiles_stval_stval_T_11 |
    _csr_state_0_csrfiles_stval_stval_T_5; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_stval_stval_T_6 = is_trap_is_exception_is_load_accessFault ? io_lsu_cmm_trap_addr : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_stval_stval_T_15 = _csr_state_0_csrfiles_stval_stval_T_14 |
    _csr_state_0_csrfiles_stval_stval_T_6; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_stval_stval_T_7 = is_trap_is_exception_is_store_misAlign ? io_lsu_cmm_trap_addr : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_stval_stval_T_16 = _csr_state_0_csrfiles_stval_stval_T_15 |
    _csr_state_0_csrfiles_stval_stval_T_7; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_stval_stval_T_8 = is_trap_is_exception_is_store_accessFault ? io_lsu_cmm_trap_addr
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_stval_stval_T_17 = _csr_state_0_csrfiles_stval_stval_T_16 |
    _csr_state_0_csrfiles_stval_stval_T_8; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_stval_stval_T_9 = is_trap_is_exception_is_load_pagingFault ? io_lsu_cmm_trap_addr : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_stval_stval_T_18 = _csr_state_0_csrfiles_stval_stval_T_17 |
    _csr_state_0_csrfiles_stval_stval_T_9; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_stval_stval_T_10 = is_trap_is_exception_is_store_pagingFault ? io_lsu_cmm_trap_addr
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_stval_stval_T_19 = _csr_state_0_csrfiles_stval_stval_T_18 |
    _csr_state_0_csrfiles_stval_stval_T_10; // @[Mux.scala 27:73]
  wire  csr_state_0_csrfiles_stval_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_15 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_stval_dnxt_T = csrfiles_stval | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_stval_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_stval_dnxt_T : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_stval_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_stval_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_stval_dnxt_T_2 = csrfiles_stval & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_stval_dnxt_T_5 = cmm_state_0_csrExe_op_rc ? _csr_state_0_csrfiles_stval_dnxt_T_2 : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_stval_dnxt = _csr_state_0_csrfiles_stval_dnxt_T_6 |
    _csr_state_0_csrfiles_stval_dnxt_T_5; // @[Mux.scala 27:73]
  wire  csr_state_0_csrfiles_satp_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_17 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [19:0] csr_state_0_csrfiles_satp_hi = {csrfiles_satp_mode,csrfiles_satp_asid}; // @[CsrFiles.scala 1494:57]
  wire [63:0] _csr_state_0_csrfiles_satp_T = {csrfiles_satp_mode,csrfiles_satp_asid,csrfiles_satp_ppn}; // @[CsrFiles.scala 1494:57]
  wire [63:0] _csr_state_0_csrfiles_satp_dnxt_T = _csr_state_0_csrfiles_satp_T | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_satp_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_satp_dnxt_T : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_satp_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_satp_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_satp_dnxt_T_2 = _csr_state_0_csrfiles_satp_T & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_satp_dnxt_T_5 = cmm_state_0_csrExe_op_rc ? _csr_state_0_csrfiles_satp_dnxt_T_2 : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_satp_dnxt = _csr_state_0_csrfiles_satp_dnxt_T_6 | _csr_state_0_csrfiles_satp_dnxt_T_5
    ; // @[Mux.scala 27:73]
  wire [3:0] _csr_state_0_csrfiles_satp_satp_mode_T_1 = csr_state_0_csrfiles_satp_dnxt[63:60] & 4'h8; // @[CsrFiles.scala 1497:32]
  wire  csr_state_0_csrfiles_mstatus_is_fpu_state_change = ~is_trap & io_rod_0_bits_is_fpu; // @[Commit.scala 222:40]
  wire  csr_state_0_csrfiles_mstatus_enable0 = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_8 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [46:0] csr_state_0_csrfiles_mstatus_hi = {csrfiles_mstatus_sd,25'h0,2'h0,13'h1400,csrfiles_mstatus_tsr,
    csrfiles_mstatus_tw,csrfiles_mstatus_tvm,csrfiles_mstatus_mxr,csrfiles_mstatus_sum,csrfiles_mstatus_mprv}; // @[CsrFiles.scala 755:62]
  wire [5:0] csr_state_0_csrfiles_mstatus_lo_lo = {csrfiles_mstatus_spie,1'h0,csrfiles_mstatus_mie,1'h0,
    csrfiles_mstatus_sie,1'h0}; // @[CsrFiles.scala 755:62]
  wire [16:0] csr_state_0_csrfiles_mstatus_lo = {2'h0,csrfiles_mstatus_fs,csrfiles_mstatus_mpp,2'h0,csrfiles_mstatus_spp
    ,csrfiles_mstatus_mpie,1'h0,csr_state_0_csrfiles_mstatus_lo_lo}; // @[CsrFiles.scala 755:62]
  wire [63:0] _csr_state_0_csrfiles_mstatus_T = {csr_state_0_csrfiles_mstatus_hi,2'h0,csrfiles_mstatus_fs,
    csrfiles_mstatus_mpp,2'h0,csrfiles_mstatus_spp,csrfiles_mstatus_mpie,1'h0,csr_state_0_csrfiles_mstatus_lo_lo}; // @[CsrFiles.scala 755:62]
  wire [63:0] _csr_state_0_csrfiles_mstatus_dnxt_T = _csr_state_0_csrfiles_mstatus_T | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_mstatus_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_mstatus_dnxt_T
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mstatus_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_mstatus_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mstatus_dnxt_T_2 = _csr_state_0_csrfiles_mstatus_T &
    _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_mstatus_dnxt_T_5 = cmm_state_0_csrExe_op_rc ? _csr_state_0_csrfiles_mstatus_dnxt_T_2
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_mstatus_dnxt0 = _csr_state_0_csrfiles_mstatus_dnxt_T_6 |
    _csr_state_0_csrfiles_mstatus_dnxt_T_5; // @[Mux.scala 27:73]
  wire  csr_state_0_csrfiles_mstatus_enable1 = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_44 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [1:0] _GEN_722 = csr_state_0_csrfiles_mstatus_enable1 ? csr_state_0_csrfiles_mstatus_dnxt0[14:13] :
    csrfiles_mstatus_fs; // @[CsrFiles.scala 792:24 799:20]
  wire [1:0] _GEN_731 = csr_state_0_csrfiles_mstatus_enable0 ? csr_state_0_csrfiles_mstatus_dnxt0[14:13] : _GEN_722; // @[CsrFiles.scala 783:24 787:20]
  wire [1:0] _GEN_747 = is_xRet_is_sRet & _is_trap_is_interrupt_T_2 ? csrfiles_mstatus_fs : _GEN_731; // @[CsrFiles.scala 777:51]
  wire [1:0] _GEN_763 = is_xRet_is_mRet & _is_trap_is_interrupt_T_2 ? csrfiles_mstatus_fs : _GEN_747; // @[CsrFiles.scala 770:50]
  wire [1:0] _GEN_777 = is_trap & _is_trap_is_interrupt_T_2 ? csrfiles_mstatus_fs : _GEN_763; // @[CsrFiles.scala 758:45]
  wire [1:0] csr_state_0_csrfiles_mstatus_mstatus_fs = csr_state_0_csrfiles_mstatus_is_fpu_state_change &
    csrfiles_mstatus_fs != 2'h0 ? 2'h3 : _GEN_777; // @[CsrFiles.scala 808:67 809:18]
  wire  csr_state_0_csrfiles_mstatus_mstatus_sd = csr_state_0_csrfiles_mstatus_mstatus_fs == 2'h3; // @[CsrFiles.scala 747:57]
  wire  _GEN_716 = csr_state_0_csrfiles_mstatus_enable1 ? csr_state_0_csrfiles_mstatus_dnxt0[22] : csrfiles_mstatus_tsr; // @[CsrFiles.scala 792:24 793:20]
  wire  _GEN_735 = csr_state_0_csrfiles_mstatus_enable0 ? csrfiles_mstatus_tsr : _GEN_716; // @[CsrFiles.scala 783:24]
  wire  _GEN_749 = is_xRet_is_sRet & _is_trap_is_interrupt_T_2 ? csrfiles_mstatus_tsr : _GEN_735; // @[CsrFiles.scala 777:51]
  wire  _GEN_717 = csr_state_0_csrfiles_mstatus_enable1 ? csr_state_0_csrfiles_mstatus_dnxt0[21] : csrfiles_mstatus_tw; // @[CsrFiles.scala 792:24 794:20]
  wire  _GEN_736 = csr_state_0_csrfiles_mstatus_enable0 ? csrfiles_mstatus_tw : _GEN_717; // @[CsrFiles.scala 783:24]
  wire  _GEN_750 = is_xRet_is_sRet & _is_trap_is_interrupt_T_2 ? csrfiles_mstatus_tw : _GEN_736; // @[CsrFiles.scala 777:51]
  wire  _GEN_718 = csr_state_0_csrfiles_mstatus_enable1 ? csr_state_0_csrfiles_mstatus_dnxt0[20] : csrfiles_mstatus_tvm; // @[CsrFiles.scala 792:24 795:20]
  wire  _GEN_737 = csr_state_0_csrfiles_mstatus_enable0 ? csrfiles_mstatus_tvm : _GEN_718; // @[CsrFiles.scala 783:24]
  wire  _GEN_751 = is_xRet_is_sRet & _is_trap_is_interrupt_T_2 ? csrfiles_mstatus_tvm : _GEN_737; // @[CsrFiles.scala 777:51]
  wire  _GEN_719 = csr_state_0_csrfiles_mstatus_enable1 ? csr_state_0_csrfiles_mstatus_dnxt0[19] : csrfiles_mstatus_mxr; // @[CsrFiles.scala 792:24 796:20]
  wire  _GEN_729 = csr_state_0_csrfiles_mstatus_enable0 ? csr_state_0_csrfiles_mstatus_dnxt0[19] : _GEN_719; // @[CsrFiles.scala 783:24 785:20]
  wire  _GEN_745 = is_xRet_is_sRet & _is_trap_is_interrupt_T_2 ? csrfiles_mstatus_mxr : _GEN_729; // @[CsrFiles.scala 777:51]
  wire  _GEN_720 = csr_state_0_csrfiles_mstatus_enable1 ? csr_state_0_csrfiles_mstatus_dnxt0[18] : csrfiles_mstatus_sum; // @[CsrFiles.scala 792:24 797:20]
  wire  _GEN_730 = csr_state_0_csrfiles_mstatus_enable0 ? csr_state_0_csrfiles_mstatus_dnxt0[18] : _GEN_720; // @[CsrFiles.scala 783:24 786:20]
  wire  _GEN_746 = is_xRet_is_sRet & _is_trap_is_interrupt_T_2 ? csrfiles_mstatus_sum : _GEN_730; // @[CsrFiles.scala 777:51]
  wire  _csr_state_0_csrfiles_mstatus_mstatus_mprv_T_8 = csr_state_0_csrfiles_priv_lvl_priv_lvl != 2'h3 ? 1'h0 :
    csrfiles_mstatus_mprv; // @[CsrFiles.scala 775:26]
  wire  _GEN_721 = csr_state_0_csrfiles_mstatus_enable1 ? csr_state_0_csrfiles_mstatus_dnxt0[17] : csrfiles_mstatus_mprv
    ; // @[CsrFiles.scala 792:24 798:20]
  wire  _GEN_738 = csr_state_0_csrfiles_mstatus_enable0 ? csrfiles_mstatus_mprv : _GEN_721; // @[CsrFiles.scala 783:24]
  wire  _GEN_744 = is_xRet_is_sRet & _is_trap_is_interrupt_T_2 ? _csr_state_0_csrfiles_mstatus_mstatus_mprv_T_8 :
    _GEN_738; // @[CsrFiles.scala 777:51 781:20]
  wire  _csr_state_0_csrfiles_mstatus_T_11 = csr_state_0_csrfiles_priv_lvl_priv_lvl == 2'h3; // @[CsrFiles.scala 759:33]
  wire [1:0] _GEN_723 = csr_state_0_csrfiles_mstatus_enable1 ? csr_state_0_csrfiles_mstatus_dnxt0[12:11] :
    csrfiles_mstatus_mpp; // @[CsrFiles.scala 792:24 800:20]
  wire [1:0] _GEN_739 = csr_state_0_csrfiles_mstatus_enable0 ? csrfiles_mstatus_mpp : _GEN_723; // @[CsrFiles.scala 783:24]
  wire [1:0] _GEN_752 = is_xRet_is_sRet & _is_trap_is_interrupt_T_2 ? csrfiles_mstatus_mpp : _GEN_739; // @[CsrFiles.scala 777:51]
  wire  _csr_state_0_csrfiles_mstatus_mstatus_spp_T_1 =
    _is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt_is_ebreak_dm_is_ebreak_breakpointn_T_3 ? 1'h0 : 1'h1; // @[CsrFiles.scala 765:28]
  wire  _GEN_724 = csr_state_0_csrfiles_mstatus_enable1 ? csr_state_0_csrfiles_mstatus_dnxt0[8] : csrfiles_mstatus_spp; // @[CsrFiles.scala 792:24 801:20]
  wire  _GEN_732 = csr_state_0_csrfiles_mstatus_enable0 ? csr_state_0_csrfiles_mstatus_dnxt0[8] : _GEN_724; // @[CsrFiles.scala 783:24 788:20]
  wire  _GEN_748 = is_xRet_is_sRet & _is_trap_is_interrupt_T_2 ? csrfiles_mstatus_spp : _GEN_732; // @[CsrFiles.scala 777:51]
  wire  _GEN_725 = csr_state_0_csrfiles_mstatus_enable1 ? csr_state_0_csrfiles_mstatus_dnxt0[7] : csrfiles_mstatus_mpie; // @[CsrFiles.scala 792:24 802:20]
  wire  _GEN_740 = csr_state_0_csrfiles_mstatus_enable0 ? csrfiles_mstatus_mpie : _GEN_725; // @[CsrFiles.scala 783:24]
  wire  _GEN_753 = is_xRet_is_sRet & _is_trap_is_interrupt_T_2 ? csrfiles_mstatus_mpie : _GEN_740; // @[CsrFiles.scala 777:51]
  wire  _GEN_756 = is_xRet_is_mRet & _is_trap_is_interrupt_T_2 | _GEN_753; // @[CsrFiles.scala 770:50 772:20]
  wire  _GEN_726 = csr_state_0_csrfiles_mstatus_enable1 ? csr_state_0_csrfiles_mstatus_dnxt0[5] : csrfiles_mstatus_spie; // @[CsrFiles.scala 792:24 803:20]
  wire  _GEN_733 = csr_state_0_csrfiles_mstatus_enable0 ? csr_state_0_csrfiles_mstatus_dnxt0[5] : _GEN_726; // @[CsrFiles.scala 783:24 789:20]
  wire  _GEN_742 = is_xRet_is_sRet & _is_trap_is_interrupt_T_2 | _GEN_733; // @[CsrFiles.scala 777:51 778:20]
  wire  _GEN_727 = csr_state_0_csrfiles_mstatus_enable1 ? csr_state_0_csrfiles_mstatus_dnxt0[3] : csrfiles_mstatus_mie; // @[CsrFiles.scala 792:24 804:20]
  wire  _GEN_741 = csr_state_0_csrfiles_mstatus_enable0 ? csrfiles_mstatus_mie : _GEN_727; // @[CsrFiles.scala 783:24]
  wire  _GEN_754 = is_xRet_is_sRet & _is_trap_is_interrupt_T_2 ? csrfiles_mstatus_mie : _GEN_741; // @[CsrFiles.scala 777:51]
  wire  _GEN_728 = csr_state_0_csrfiles_mstatus_enable1 ? csr_state_0_csrfiles_mstatus_dnxt0[1] : csrfiles_mstatus_sie; // @[CsrFiles.scala 792:24 805:20]
  wire  _GEN_734 = csr_state_0_csrfiles_mstatus_enable0 ? csr_state_0_csrfiles_mstatus_dnxt0[1] : _GEN_728; // @[CsrFiles.scala 783:24 790:20]
  wire  _GEN_743 = is_xRet_is_sRet & _is_trap_is_interrupt_T_2 ? csrfiles_mstatus_spie : _GEN_734; // @[CsrFiles.scala 777:51 779:20]
  wire  csr_state_0_csrfiles_medeleg_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_46 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_medeleg_dnxt_T = csrfiles_medeleg | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_medeleg_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_medeleg_dnxt_T
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_medeleg_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_medeleg_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_medeleg_dnxt_T_2 = csrfiles_medeleg & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_medeleg_dnxt_T_5 = cmm_state_0_csrExe_op_rc ? _csr_state_0_csrfiles_medeleg_dnxt_T_2
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_medeleg_dnxt = _csr_state_0_csrfiles_medeleg_dnxt_T_6 |
    _csr_state_0_csrfiles_medeleg_dnxt_T_5; // @[Mux.scala 27:73]
  wire  csr_state_0_csrfiles_mideleg_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_47 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_mideleg_dnxt_T = csrfiles_mideleg | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_mideleg_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_mideleg_dnxt_T
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mideleg_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_mideleg_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mideleg_dnxt_T_2 = csrfiles_mideleg & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_mideleg_dnxt_T_5 = cmm_state_0_csrExe_op_rc ? _csr_state_0_csrfiles_mideleg_dnxt_T_2
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_mideleg_dnxt = _csr_state_0_csrfiles_mideleg_dnxt_T_6 |
    _csr_state_0_csrfiles_mideleg_dnxt_T_5; // @[Mux.scala 27:73]
  wire  csr_state_0_csrfiles_mie_enable0 = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_48 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [5:0] csr_state_0_csrfiles_mie_lo = {csrfiles_mie_sti,1'h0,csrfiles_mie_msi,1'h0,csrfiles_mie_ssi,1'h0}; // @[CsrFiles.scala 879:58]
  wire [15:0] _csr_state_0_csrfiles_mie_T = {4'h0,csrfiles_mie_mei,1'h0,csrfiles_mie_sei,1'h0,csrfiles_mie_mti,1'h0,
    csr_state_0_csrfiles_mie_lo}; // @[CsrFiles.scala 879:58]
  wire [63:0] _GEN_134 = {{48'd0}, _csr_state_0_csrfiles_mie_T}; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_mie_dnxt_T = _GEN_134 | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_mie_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_mie_dnxt_T : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mie_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_mie_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mie_dnxt_T_2 = _GEN_134 & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_mie_dnxt_T_5 = cmm_state_0_csrExe_op_rc ? _csr_state_0_csrfiles_mie_dnxt_T_2 : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_mie_dnxt0 = _csr_state_0_csrfiles_mie_dnxt_T_6 | _csr_state_0_csrfiles_mie_dnxt_T_5; // @[Mux.scala 27:73]
  wire  csr_state_0_csrfiles_mie_enable1 = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_9 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire  csr_state_0_csrfiles_mtvec_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_49 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_mtvec_T = {csrfiles_mtvec_base,2'h0}; // @[CsrFiles.scala 911:58]
  wire [63:0] _csr_state_0_csrfiles_mtvec_dnxt_T = _csr_state_0_csrfiles_mtvec_T | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_mtvec_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_mtvec_dnxt_T : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mtvec_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_mtvec_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mtvec_dnxt_T_2 = _csr_state_0_csrfiles_mtvec_T &
    _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_mtvec_dnxt_T_5 = cmm_state_0_csrExe_op_rc ? _csr_state_0_csrfiles_mtvec_dnxt_T_2 : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_mtvec_dnxt = _csr_state_0_csrfiles_mtvec_dnxt_T_6 |
    _csr_state_0_csrfiles_mtvec_dnxt_T_5; // @[Mux.scala 27:73]
  wire [63:0] _GEN_138 = {{32'd0}, csrfiles_mcounteren_hpm}; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_mcounteren_dnxt_T = _GEN_138 | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_mcounteren_dnxt_T_4 = cmm_state_0_csrExe_op_rs ?
    _csr_state_0_csrfiles_mcounteren_dnxt_T : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mcounteren_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_mcounteren_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mcounteren_dnxt_T_2 = _GEN_138 & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_mcounteren_dnxt_T_5 = cmm_state_0_csrExe_op_rc ?
    _csr_state_0_csrfiles_mcounteren_dnxt_T_2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_mcounteren_dnxt = _csr_state_0_csrfiles_mcounteren_dnxt_T_6 |
    _csr_state_0_csrfiles_mcounteren_dnxt_T_5; // @[Mux.scala 27:73]
  wire [63:0] _GEN_794 = csr_state_0_csrfiles_scounteren_enable ? csr_state_0_csrfiles_mcounteren_dnxt : {{32'd0},
    csrfiles_mcounteren_hpm}; // @[CsrFiles.scala 933:{18,35}]
  wire [31:0] csr_state_0_csrfiles_mcounteren_mcounteren_hpm = _GEN_794[31:0];
  wire  csr_state_0_csrfiles_mscratch_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_51 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_mscratch_dnxt_T = csrfiles_mscratch | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_mscratch_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_mscratch_dnxt_T
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mscratch_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_mscratch_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mscratch_dnxt_T_2 = csrfiles_mscratch & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_mscratch_dnxt_T_5 = cmm_state_0_csrExe_op_rc ?
    _csr_state_0_csrfiles_mscratch_dnxt_T_2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_mscratch_dnxt = _csr_state_0_csrfiles_mscratch_dnxt_T_6 |
    _csr_state_0_csrfiles_mscratch_dnxt_T_5; // @[Mux.scala 27:73]
  wire  _csr_state_0_csrfiles_mepc_T_10 = is_trap & _csr_state_0_csrfiles_mstatus_T_11 & _is_trap_is_interrupt_T_2; // @[CsrFiles.scala 962:56]
  wire  csr_state_0_csrfiles_mepc_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_52 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_mepc_dnxt_T = csrfiles_mepc | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_mepc_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_mepc_dnxt_T : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mepc_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_mepc_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mepc_dnxt_T_2 = csrfiles_mepc & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_mepc_dnxt_T_5 = cmm_state_0_csrExe_op_rc ? _csr_state_0_csrfiles_mepc_dnxt_T_2 : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_mepc_dnxt = _csr_state_0_csrfiles_mepc_dnxt_T_6 | _csr_state_0_csrfiles_mepc_dnxt_T_5
    ; // @[Mux.scala 27:73]
  wire  csr_state_0_csrfiles_mcause_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_53 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_mcause_T = {csrfiles_mcause_interrupt,csrfiles_mcause_exception_code}; // @[CsrFiles.scala 976:59]
  wire [63:0] _csr_state_0_csrfiles_mcause_dnxt_T = _csr_state_0_csrfiles_mcause_T | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_mcause_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_mcause_dnxt_T : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mcause_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_mcause_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mcause_dnxt_T_2 = _csr_state_0_csrfiles_mcause_T &
    _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_mcause_dnxt_T_5 = cmm_state_0_csrExe_op_rc ? _csr_state_0_csrfiles_mcause_dnxt_T_2
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_mcause_dnxt = _csr_state_0_csrfiles_mcause_dnxt_T_6 |
    _csr_state_0_csrfiles_mcause_dnxt_T_5; // @[Mux.scala 27:73]
  wire  _GEN_870 = csr_state_0_csrfiles_mcause_enable ? csr_state_0_csrfiles_mcause_dnxt[63] : csrfiles_mcause_interrupt
    ; // @[CsrFiles.scala 1008:23 1009:29]
  wire  _GEN_872 = is_trap_is_exception & _csr_state_0_csrfiles_mstatus_T_11 & _is_trap_is_interrupt_T_2 ? 1'h0 :
    _GEN_870; // @[CsrFiles.scala 989:89 990:24]
  wire  csr_state_0_csrfiles_mcause_mcause_interrupt = is_trap_is_interrupt_is_m_interrupt &
    _csr_state_0_csrfiles_mstatus_T_11 & _is_trap_is_interrupt_T_2 | _GEN_872; // @[CsrFiles.scala 978:95 979:24]
  wire [2:0] _GEN_140 = {{1'd0}, _csr_state_0_csrfiles_scause_scause_exception_code_T_7}; // @[Mux.scala 27:73]
  wire [2:0] _csr_state_0_csrfiles_mcause_mcause_exception_code_T_6 = _GEN_140 |
    _csr_state_0_csrfiles_scause_scause_exception_code_T_9; // @[Mux.scala 27:73]
  wire [3:0] _GEN_141 = {{1'd0}, _csr_state_0_csrfiles_mcause_mcause_exception_code_T_6}; // @[Mux.scala 27:73]
  wire [3:0] _csr_state_0_csrfiles_mcause_mcause_exception_code_T_7 = _GEN_141 |
    _csr_state_0_csrfiles_scause_scause_exception_code_T_11; // @[Mux.scala 27:73]
  wire [62:0] _GEN_871 = csr_state_0_csrfiles_mcause_enable ? csr_state_0_csrfiles_mcause_dnxt[62:0] :
    csrfiles_mcause_exception_code; // @[CsrFiles.scala 1008:23 1010:29]
  wire  csr_state_0_csrfiles_mtval_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_54 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_mtval_dnxt_T = csrfiles_mtval | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_mtval_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_mtval_dnxt_T : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mtval_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_mtval_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mtval_dnxt_T_2 = csrfiles_mtval & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_mtval_dnxt_T_5 = cmm_state_0_csrExe_op_rc ? _csr_state_0_csrfiles_mtval_dnxt_T_2 : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_mtval_dnxt = _csr_state_0_csrfiles_mtval_dnxt_T_6 |
    _csr_state_0_csrfiles_mtval_dnxt_T_5; // @[Mux.scala 27:73]
  wire  csr_state_0_csrfiles_mtinst_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_56 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_mtinst_dnxt_T = csrfiles_mtinst | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_mtinst_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_mtinst_dnxt_T : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mtinst_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_mtinst_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mtinst_dnxt_T_2 = csrfiles_mtinst & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_mtinst_dnxt_T_5 = cmm_state_0_csrExe_op_rc ? _csr_state_0_csrfiles_mtinst_dnxt_T_2
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_mtinst_dnxt = _csr_state_0_csrfiles_mtinst_dnxt_T_6 |
    _csr_state_0_csrfiles_mtinst_dnxt_T_5; // @[Mux.scala 27:73]
  wire  csr_state_0_csrfiles_mtval2_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_57 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_mtval2_dnxt_T = csrfiles_mtval2 | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_mtval2_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_mtval2_dnxt_T : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mtval2_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_mtval2_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mtval2_dnxt_T_2 = csrfiles_mtval2 & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_mtval2_dnxt_T_5 = cmm_state_0_csrExe_op_rc ? _csr_state_0_csrfiles_mtval2_dnxt_T_2
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_mtval2_dnxt = _csr_state_0_csrfiles_mtval2_dnxt_T_6 |
    _csr_state_0_csrfiles_mtval2_dnxt_T_5; // @[Mux.scala 27:73]
  wire  csr_state_0_csrfiles_mcycle_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_58 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_mcycle_dnxt_T = csrfiles_mcycle | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_mcycle_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_mcycle_dnxt_T : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mcycle_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_mcycle_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_mcycle_dnxt_T_2 = csrfiles_mcycle & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_mcycle_dnxt_T_5 = cmm_state_0_csrExe_op_rc ? _csr_state_0_csrfiles_mcycle_dnxt_T_2
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_mcycle_dnxt = _csr_state_0_csrfiles_mcycle_dnxt_T_6 |
    _csr_state_0_csrfiles_mcycle_dnxt_T_5; // @[Mux.scala 27:73]
  wire  csr_state_0_csrfiles_minstret_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_59 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_minstret_dnxt_T = csrfiles_minstret | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_minstret_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_minstret_dnxt_T
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_minstret_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_minstret_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_minstret_dnxt_T_2 = csrfiles_minstret & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_minstret_dnxt_T_5 = cmm_state_0_csrExe_op_rc ?
    _csr_state_0_csrfiles_minstret_dnxt_T_2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_minstret_dnxt = _csr_state_0_csrfiles_minstret_dnxt_T_6 |
    _csr_state_0_csrfiles_minstret_dnxt_T_5; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_minstret_minstret_T_1 = csrfiles_minstret + 64'h1; // @[CsrFiles.scala 1159:51]
  wire  csr_state_0_csrfiles_tselect_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_61 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_tselect_dnxt_T = csrfiles_tselect | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_tselect_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_tselect_dnxt_T
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_tselect_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_tselect_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_tselect_dnxt_T_2 = csrfiles_tselect & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_tselect_dnxt_T_5 = cmm_state_0_csrExe_op_rc ? _csr_state_0_csrfiles_tselect_dnxt_T_2
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_tselect_dnxt = _csr_state_0_csrfiles_tselect_dnxt_T_6 |
    _csr_state_0_csrfiles_tselect_dnxt_T_5; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_tselect_tselect_T_1 = ~csr_state_0_csrfiles_tselect_dnxt; // @[CsrFiles.scala 1746:51]
  wire  csr_state_0_csrfiles_tdata1_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_62 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_tdata1_dnxt_T = csrfiles_tdata1 | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_tdata1_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_tdata1_dnxt_T : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_tdata1_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_tdata1_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_tdata1_dnxt_T_2 = csrfiles_tdata1 & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_tdata1_dnxt_T_5 = cmm_state_0_csrExe_op_rc ? _csr_state_0_csrfiles_tdata1_dnxt_T_2
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_tdata1_dnxt = _csr_state_0_csrfiles_tdata1_dnxt_T_6 |
    _csr_state_0_csrfiles_tdata1_dnxt_T_5; // @[Mux.scala 27:73]
  wire  csr_state_0_csrfiles_tdata2_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_63 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_tdata2_dnxt_T = csrfiles_tdata2 | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_tdata2_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_tdata2_dnxt_T : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_tdata2_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_tdata2_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_tdata2_dnxt_T_2 = csrfiles_tdata2 & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_tdata2_dnxt_T_5 = cmm_state_0_csrExe_op_rc ? _csr_state_0_csrfiles_tdata2_dnxt_T_2
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_tdata2_dnxt = _csr_state_0_csrfiles_tdata2_dnxt_T_6 |
    _csr_state_0_csrfiles_tdata2_dnxt_T_5; // @[Mux.scala 27:73]
  wire  csr_state_0_csrfiles_tdata3_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_64 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_tdata3_dnxt_T = csrfiles_tdata3 | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_tdata3_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_tdata3_dnxt_T : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_tdata3_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_tdata3_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_tdata3_dnxt_T_2 = csrfiles_tdata3 & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_tdata3_dnxt_T_5 = cmm_state_0_csrExe_op_rc ? _csr_state_0_csrfiles_tdata3_dnxt_T_2
     : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_tdata3_dnxt = _csr_state_0_csrfiles_tdata3_dnxt_T_6 |
    _csr_state_0_csrfiles_tdata3_dnxt_T_5; // @[Mux.scala 27:73]
  wire  csr_state_0_csrfiles_dcsr_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_65 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [9:0] csr_state_0_csrfiles_dcsr_lo = {1'h0,csrfiles_dcsr_cause,2'h0,1'h0,csrfiles_dcsr_step,csrfiles_dcsr_prv}; // @[CsrFiles.scala 1794:59]
  wire [31:0] _csr_state_0_csrfiles_dcsr_T = {16'h4000,csrfiles_dcsr_ebreakm,1'h0,csrfiles_dcsr_ebreaks,
    csrfiles_dcsr_ebreaku,2'h0,csr_state_0_csrfiles_dcsr_lo}; // @[CsrFiles.scala 1794:59]
  wire [63:0] _GEN_145 = {{32'd0}, _csr_state_0_csrfiles_dcsr_T}; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_dcsr_dnxt_T = _GEN_145 | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_dcsr_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_dcsr_dnxt_T : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_dcsr_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_dcsr_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_dcsr_dnxt_T_2 = _GEN_145 & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_dcsr_dnxt_T_5 = cmm_state_0_csrExe_op_rc ? _csr_state_0_csrfiles_dcsr_dnxt_T_2 : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_dcsr_dnxt = _csr_state_0_csrfiles_dcsr_dnxt_T_6 | _csr_state_0_csrfiles_dcsr_dnxt_T_5
    ; // @[Mux.scala 27:73]
  wire [2:0] _csr_state_0_csrfiles_dcsr_dcsr_cause_T = is_single_step ? 3'h4 : 3'h0; // @[Mux.scala 101:16]
  wire [2:0] _csr_state_0_csrfiles_dcsr_dcsr_cause_T_1 = io_dm_hartHaltReq ? 3'h3 :
    _csr_state_0_csrfiles_dcsr_dcsr_cause_T; // @[Mux.scala 101:16]
  wire  csr_state_0_csrfiles_dpc_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_66 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_dpc_dnxt_T = csrfiles_dpc | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_dpc_dnxt_T_4 = cmm_state_0_csrExe_op_rs ? _csr_state_0_csrfiles_dpc_dnxt_T : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_dpc_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_dpc_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_dpc_dnxt_T_2 = csrfiles_dpc & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_dpc_dnxt_T_5 = cmm_state_0_csrExe_op_rc ? _csr_state_0_csrfiles_dpc_dnxt_T_2 : 64'h0
    ; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_dpc_dnxt = _csr_state_0_csrfiles_dpc_dnxt_T_6 | _csr_state_0_csrfiles_dpc_dnxt_T_5; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_dpc_dpc_T = is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt_is_ebreak_dm
     ? csr_state_0_csrfiles_sepc_sepc_commit_pc : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_dpc_dpc_T_1 = is_single_step ? csr_state_0_csrfiles_sepc_sepc_commit_pc : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_dpc_dpc_T_4 = _csr_state_0_csrfiles_dpc_dpc_T | _csr_state_0_csrfiles_dpc_dpc_T_1; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_dpc_dpc_T_3 = io_dm_hartHaltReq ? csr_state_0_csrfiles_sepc_sepc_commit_pc : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_dpc_dpc_T_6 = _csr_state_0_csrfiles_dpc_dpc_T_4 | _csr_state_0_csrfiles_dpc_dpc_T_3; // @[Mux.scala 27:73]
  wire  csr_state_0_csrfiles_dscratch0_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_67 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_dscratch0_dnxt_T = csrfiles_dscratch0 | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_dscratch0_dnxt_T_4 = cmm_state_0_csrExe_op_rs ?
    _csr_state_0_csrfiles_dscratch0_dnxt_T : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_dscratch0_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_dscratch0_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_dscratch0_dnxt_T_2 = csrfiles_dscratch0 & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_dscratch0_dnxt_T_5 = cmm_state_0_csrExe_op_rc ?
    _csr_state_0_csrfiles_dscratch0_dnxt_T_2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_dscratch0_dnxt = _csr_state_0_csrfiles_dscratch0_dnxt_T_6 |
    _csr_state_0_csrfiles_dscratch0_dnxt_T_5; // @[Mux.scala 27:73]
  wire  csr_state_0_csrfiles_dscratch1_enable = _is_trap_is_exception_is_csr_illegal_is_csrw_illegal_T_68 & (
    cmm_state_0_csrExe_op_rw | cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_dscratch1_dnxt_T = csrfiles_dscratch1 | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_dscratch1_dnxt_T_4 = cmm_state_0_csrExe_op_rs ?
    _csr_state_0_csrfiles_dscratch1_dnxt_T : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_dscratch1_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_dscratch1_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_dscratch1_dnxt_T_2 = csrfiles_dscratch1 & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_dscratch1_dnxt_T_5 = cmm_state_0_csrExe_op_rc ?
    _csr_state_0_csrfiles_dscratch1_dnxt_T_2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_dscratch1_dnxt = _csr_state_0_csrfiles_dscratch1_dnxt_T_6 |
    _csr_state_0_csrfiles_dscratch1_dnxt_T_5; // @[Mux.scala 27:73]
  wire  csr_state_0_csrfiles_dscratch2_enable = cmm_state_0_csrExe_addr == 12'h7b4 & (cmm_state_0_csrExe_op_rw |
    cmm_state_0_csrExe_op_rs | cmm_state_0_csrExe_op_rc); // @[CsrFiles.scala 42:37]
  wire [63:0] _csr_state_0_csrfiles_dscratch2_dnxt_T = csrfiles_dscratch2 | cmm_state_0_csrExe_dat_i; // @[CsrFiles.scala 45:30]
  wire [63:0] _csr_state_0_csrfiles_dscratch2_dnxt_T_4 = cmm_state_0_csrExe_op_rs ?
    _csr_state_0_csrfiles_dscratch2_dnxt_T : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_dscratch2_dnxt_T_6 = _csr_state_0_csrfiles_stvec_dnxt_T_3 |
    _csr_state_0_csrfiles_dscratch2_dnxt_T_4; // @[Mux.scala 27:73]
  wire [63:0] _csr_state_0_csrfiles_dscratch2_dnxt_T_2 = csrfiles_dscratch2 & _csr_state_0_csrfiles_stvec_dnxt_T_1; // @[CsrFiles.scala 46:30]
  wire [63:0] _csr_state_0_csrfiles_dscratch2_dnxt_T_5 = cmm_state_0_csrExe_op_rc ?
    _csr_state_0_csrfiles_dscratch2_dnxt_T_2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] csr_state_0_csrfiles_dscratch2_dnxt = _csr_state_0_csrfiles_dscratch2_dnxt_T_6 |
    _csr_state_0_csrfiles_dscratch2_dnxt_T_5; // @[Mux.scala 27:73]
  wire  _GEN_460 = csrfiles_DMode ? 1'h0 : is_single_step; // @[Commit.scala 404:{171,188,31}]
  wire [5:0] io_diff_csr_mip_lo = {csrfiles_mip_sti,1'h0,csrfiles_mip_msi,1'h0,csrfiles_mip_ssi,1'h0}; // @[Commit.scala 590:41]
  wire [15:0] _io_diff_csr_mip_T = {4'h0,csrfiles_mip_mei,1'h0,csrfiles_mip_sei,1'h0,csrfiles_mip_mti,1'h0,
    io_diff_csr_mip_lo}; // @[Commit.scala 590:41]
  wire  _mdl_io_deq_0_ready_T = is_retired_0 & io_rod_0_bits_is_branch; // @[Commit.scala 679:36]
  wire  _T_34 = bctq_mdl_io_deq_0_ready & bctq_mdl_io_deq_0_valid; // @[Decoupled.scala 52:35]
  wire  _T_38 = ~reset; // @[Commit.scala 680:11]
  wire  _T_41 = io_bctq_ready & io_bctq_valid; // @[Decoupled.scala 52:35]
  wire  _mdl_io_deq_0_ready_T_1 = is_retired_0 & io_rod_0_bits_is_jalr; // @[Commit.scala 685:36]
  wire  _T_46 = jctq_mdl_io_deq_0_ready & jctq_mdl_io_deq_0_valid; // @[Decoupled.scala 52:35]
  wire  _T_53 = io_jctq_ready & io_jctq_valid; // @[Decoupled.scala 52:35]
  wire  _T_63 = _T_11 & is_retired_0 & _T_21; // @[Commit.scala 712:79]
  wire [63:0] _GEN_935 = _T_11 & is_retired_0 & _T_21 ? bctq_mdl_io_deq_0_bits_finalTarget : 64'h0; // @[Commit.scala 712:104 709:26 714:30]
  wire  _GEN_936 = _T_16 & is_retired_0 & _T_21 | _T_63; // @[Commit.scala 717:104 718:28]
  wire [63:0] _GEN_937 = _T_16 & is_retired_0 & _T_21 ? jctq_mdl_io_deq_0_bits_finalTarget : _GEN_935; // @[Commit.scala 717:104 719:30]
  wire  _T_72 = is_fence_i | is_sfence_vma; // @[Commit.scala 725:39]
  wire [63:0] _io_cmmRedirect_bits_pc_T_1 = csr_state_0_csrfiles_sepc_sepc_commit_pc + 64'h4; // @[Commit.scala 727:72]
  wire  _GEN_938 = is_fence_i | is_sfence_vma | _GEN_936; // @[Commit.scala 725:70 726:32]
  wire [63:0] _GEN_939 = is_fence_i | is_sfence_vma ? _io_cmmRedirect_bits_pc_T_1 : _GEN_937; // @[Commit.scala 725:70 727:34]
  wire [11:0] _GEN_941 = is_trap_is_exception_is_ebreak_exc ? 12'h800 : 12'h808; // @[Commit.scala 733:46 735:36 738:36]
  wire  _GEN_942 = is_trap_is_exception | _GEN_938; // @[Commit.scala 732:43]
  wire [63:0] _GEN_943 = is_trap_is_exception ? {{52'd0}, _GEN_941} : _GEN_939; // @[Commit.scala 732:43]
  wire  _GEN_944 = is_xRet_is_dRet | _GEN_942; // @[Commit.scala 741:38 742:32]
  wire [63:0] _GEN_945 = is_xRet_is_dRet ? csrfiles_dpc : _GEN_943; // @[Commit.scala 741:38 743:34]
  wire  _GEN_946 = is_xRet_is_mRet | _GEN_936; // @[Commit.scala 746:38 747:32]
  wire [63:0] _GEN_947 = is_xRet_is_mRet ? csrfiles_mepc : _GEN_937; // @[Commit.scala 746:38 748:34]
  wire  _GEN_948 = is_xRet_is_sRet | _GEN_946; // @[Commit.scala 750:38 751:32]
  wire [63:0] _GEN_949 = is_xRet_is_sRet ? csrfiles_sepc : _GEN_947; // @[Commit.scala 750:38 752:34]
  wire [63:0] _io_cmmRedirect_bits_pc_T_20 = _csr_state_0_csrfiles_sepc_T_7 ? _csr_state_0_csrfiles_stvec_T : 64'h80000000
    ; // @[Mux.scala 101:16]
  wire [63:0] _io_cmmRedirect_bits_pc_T_21 = _csr_state_0_csrfiles_mstatus_T_11 ? _csr_state_0_csrfiles_mtvec_T :
    _io_cmmRedirect_bits_pc_T_20; // @[Mux.scala 101:16]
  wire [63:0] _io_cmmRedirect_bits_pc_T_22 = is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt ? 64'h800 :
    _io_cmmRedirect_bits_pc_T_21; // @[Mux.scala 101:16]
  wire [63:0] _io_cmmRedirect_bits_pc_T_23 = emu_reset ? 64'h80000000 : _io_cmmRedirect_bits_pc_T_22; // @[Mux.scala 101:16]
  wire  _GEN_998 = is_trap | _GEN_948; // @[Commit.scala 754:38 755:32]
  wire [63:0] _GEN_999 = is_trap ? _io_cmmRedirect_bits_pc_T_23 : _GEN_949; // @[Commit.scala 754:38 756:34]
  wire  _GEN_1000 = _T_72 | _GEN_998; // @[Commit.scala 763:70 764:32]
  wire [63:0] _GEN_1001 = _T_72 ? _io_cmmRedirect_bits_pc_T_1 : _GEN_999; // @[Commit.scala 763:70 765:34]
  wire [1:0] _T_77 = is_xRet + is_trap; // @[Bitwise.scala 51:90]
  wire [1:0] _T_79 = is_fence_i + is_sfence_vma; // @[Bitwise.scala 51:90]
  wire [2:0] _T_81 = _T_77 + _T_79; // @[Bitwise.scala 51:90]
  wire  _GEN_1002 = csrfiles_DMode ? _GEN_944 : _GEN_1000; // @[Commit.scala 724:43]
  wire [63:0] _GEN_1003 = csrfiles_DMode ? _GEN_945 : _GEN_1001; // @[Commit.scala 724:43]
  wire [63:0] _io_csr_data_bits_T_10 = _csr_state_0_csrfiles_mstatus_T & 64'h80000003000de162; // @[CsrFiles.scala 272:33]
  wire [5:0] io_csr_data_bits_lo_lo_1 = {_io_csr_data_bits_T_10[5],_io_csr_data_bits_T_10[4],_io_csr_data_bits_T_10[3],
    _io_csr_data_bits_T_10[2],_io_csr_data_bits_T_10[1],_io_csr_data_bits_T_10[0]}; // @[CsrFiles.scala 591:44]
  wire [16:0] io_csr_data_bits_lo_2 = {_io_csr_data_bits_T_10[16:15],_io_csr_data_bits_T_10[14:13],
    _io_csr_data_bits_T_10[12:11],_io_csr_data_bits_T_10[10:9],_io_csr_data_bits_T_10[8],_io_csr_data_bits_T_10[7],
    _io_csr_data_bits_T_10[6],io_csr_data_bits_lo_lo_1}; // @[CsrFiles.scala 591:44]
  wire [5:0] io_csr_data_bits_hi_lo_1 = {_io_csr_data_bits_T_10[22],_io_csr_data_bits_T_10[21],_io_csr_data_bits_T_10[20
    ],_io_csr_data_bits_T_10[19],_io_csr_data_bits_T_10[18],_io_csr_data_bits_T_10[17]}; // @[CsrFiles.scala 591:44]
  wire [46:0] io_csr_data_bits_hi_2 = {_io_csr_data_bits_T_10[63],_io_csr_data_bits_T_10[62:38],_io_csr_data_bits_T_10[
    37],_io_csr_data_bits_T_10[36],_io_csr_data_bits_T_10[35:34],_io_csr_data_bits_T_10[33:32],_io_csr_data_bits_T_10[31
    :23],io_csr_data_bits_hi_lo_1}; // @[CsrFiles.scala 591:44]
  wire [63:0] _io_csr_data_bits_T_37 = {_io_csr_data_bits_T_10[63],_io_csr_data_bits_T_10[62:38],_io_csr_data_bits_T_10[
    37],_io_csr_data_bits_T_10[36],_io_csr_data_bits_T_10[35:34],_io_csr_data_bits_T_10[33:32],_io_csr_data_bits_T_10[31
    :23],io_csr_data_bits_hi_lo_1,io_csr_data_bits_lo_2}; // @[CsrFiles.scala 591:44]
  wire  _io_csr_data_bits_T_87 = io_csr_addr_bits == 12'h7b4; // @[CsrFiles.scala 655:18]
  wire [4:0] _io_csr_data_bits_T_88 = _cmm_state_0_is_csrr_illegal_T ? csrfiles_fcsr_fflags : 5'h0; // @[Mux.scala 27:73]
  wire [2:0] _io_csr_data_bits_T_89 = _cmm_state_0_is_csrr_illegal_T_2 ? csrfiles_fcsr_frm : 3'h0; // @[Mux.scala 27:73]
  wire [7:0] _io_csr_data_bits_T_90 = _cmm_state_0_is_csrr_illegal_T_4 ? _csr_state_0_csrfiles_fcsr_T : 8'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_91 = _cmm_state_0_is_csrr_illegal_T_6 ? csrfiles_mcycle : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_92 = _cmm_state_0_is_csrr_illegal_T_8 ? csrfiles_time : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_93 = _cmm_state_0_is_csrr_illegal_T_10 ? csrfiles_minstret : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_94 = _cmm_state_0_is_csrr_illegal_T_12 ? _io_csr_data_bits_T_37 : 64'h0; // @[Mux.scala 27:73]
  wire [15:0] _io_csr_data_bits_T_95 = _cmm_state_0_is_csrr_illegal_T_14 ? _csr_state_0_csrfiles_mie_T : 16'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_96 = _cmm_state_0_is_csrr_illegal_T_16 ? _csr_state_0_csrfiles_stvec_T : 64'h0; // @[Mux.scala 27:73]
  wire [31:0] _io_csr_data_bits_T_97 = _cmm_state_0_is_csrr_illegal_T_18 ? csrfiles_scounteren_hpm : 32'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_98 = _cmm_state_0_is_csrr_illegal_T_20 ? csrfiles_sscratch : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_99 = _cmm_state_0_is_csrr_illegal_T_22 ? csrfiles_sepc : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_100 = _cmm_state_0_is_csrr_illegal_T_24 ? _csr_state_0_csrfiles_scause_T : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_101 = _cmm_state_0_is_csrr_illegal_T_26 ? csrfiles_stval : 64'h0; // @[Mux.scala 27:73]
  wire [15:0] _io_csr_data_bits_T_102 = _cmm_state_0_is_csrr_illegal_T_28 ? _io_diff_csr_mip_T : 16'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_103 = _cmm_state_0_is_csrr_illegal_T_30 ? _csr_state_0_csrfiles_satp_T : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_105 = _cmm_state_0_is_csrr_illegal_T_60 ? csrfiles_marchid : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_108 = _cmm_state_0_is_csrr_illegal_T_66 ? _csr_state_0_csrfiles_mstatus_T : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_109 = _cmm_state_0_is_csrr_illegal_T_68 ? csrfiles_misa : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_110 = _cmm_state_0_is_csrr_illegal_T_70 ? csrfiles_medeleg : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_111 = _cmm_state_0_is_csrr_illegal_T_72 ? csrfiles_mideleg : 64'h0; // @[Mux.scala 27:73]
  wire [15:0] _io_csr_data_bits_T_112 = _cmm_state_0_is_csrr_illegal_T_74 ? _csr_state_0_csrfiles_mie_T : 16'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_113 = _cmm_state_0_is_csrr_illegal_T_76 ? _csr_state_0_csrfiles_mtvec_T : 64'h0; // @[Mux.scala 27:73]
  wire [31:0] _io_csr_data_bits_T_114 = _cmm_state_0_is_csrr_illegal_T_78 ? csrfiles_mcounteren_hpm : 32'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_115 = _cmm_state_0_is_csrr_illegal_T_80 ? csrfiles_mscratch : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_116 = _cmm_state_0_is_csrr_illegal_T_82 ? csrfiles_mepc : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_117 = _cmm_state_0_is_csrr_illegal_T_84 ? _csr_state_0_csrfiles_mcause_T : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_118 = _cmm_state_0_is_csrr_illegal_T_86 ? csrfiles_mtval : 64'h0; // @[Mux.scala 27:73]
  wire [15:0] _io_csr_data_bits_T_119 = _cmm_state_0_is_csrr_illegal_T_88 ? _io_diff_csr_mip_T : 16'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_120 = _cmm_state_0_is_csrr_illegal_T_90 ? csrfiles_mtinst : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_121 = _cmm_state_0_is_csrr_illegal_T_92 ? csrfiles_mtval2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_122 = _cmm_state_0_is_csrr_illegal_T_94 ? csrfiles_mcycle : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_123 = _cmm_state_0_is_csrr_illegal_T_100 ? csrfiles_minstret : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_125 = _cmm_state_0_is_csrr_illegal_T_108 ? csrfiles_tselect : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_126 = _cmm_state_0_is_csrr_illegal_T_110 ? csrfiles_tdata1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_127 = _cmm_state_0_is_csrr_illegal_T_112 ? csrfiles_tdata2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_128 = _cmm_state_0_is_csrr_illegal_T_114 ? csrfiles_tdata3 : 64'h0; // @[Mux.scala 27:73]
  wire [31:0] _io_csr_data_bits_T_129 = _cmm_state_0_is_csrr_illegal_T_116 ? _csr_state_0_csrfiles_dcsr_T : 32'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_130 = _cmm_state_0_is_csrr_illegal_T_117 ? csrfiles_dpc : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_131 = _cmm_state_0_is_csrr_illegal_T_118 ? csrfiles_dscratch0 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_132 = _cmm_state_0_is_csrr_illegal_T_119 ? csrfiles_dscratch1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_133 = _io_csr_data_bits_T_87 ? csrfiles_dscratch2 : 64'h0; // @[Mux.scala 27:73]
  wire [4:0] _GEN_149 = {{2'd0}, _io_csr_data_bits_T_89}; // @[Mux.scala 27:73]
  wire [4:0] _io_csr_data_bits_T_134 = _io_csr_data_bits_T_88 | _GEN_149; // @[Mux.scala 27:73]
  wire [7:0] _GEN_150 = {{3'd0}, _io_csr_data_bits_T_134}; // @[Mux.scala 27:73]
  wire [7:0] _io_csr_data_bits_T_135 = _GEN_150 | _io_csr_data_bits_T_90; // @[Mux.scala 27:73]
  wire [63:0] _GEN_151 = {{56'd0}, _io_csr_data_bits_T_135}; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_136 = _GEN_151 | _io_csr_data_bits_T_91; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_137 = _io_csr_data_bits_T_136 | _io_csr_data_bits_T_92; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_138 = _io_csr_data_bits_T_137 | _io_csr_data_bits_T_93; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_139 = _io_csr_data_bits_T_138 | _io_csr_data_bits_T_94; // @[Mux.scala 27:73]
  wire [63:0] _GEN_152 = {{48'd0}, _io_csr_data_bits_T_95}; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_140 = _io_csr_data_bits_T_139 | _GEN_152; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_141 = _io_csr_data_bits_T_140 | _io_csr_data_bits_T_96; // @[Mux.scala 27:73]
  wire [63:0] _GEN_153 = {{32'd0}, _io_csr_data_bits_T_97}; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_142 = _io_csr_data_bits_T_141 | _GEN_153; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_143 = _io_csr_data_bits_T_142 | _io_csr_data_bits_T_98; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_144 = _io_csr_data_bits_T_143 | _io_csr_data_bits_T_99; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_145 = _io_csr_data_bits_T_144 | _io_csr_data_bits_T_100; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_146 = _io_csr_data_bits_T_145 | _io_csr_data_bits_T_101; // @[Mux.scala 27:73]
  wire [63:0] _GEN_154 = {{48'd0}, _io_csr_data_bits_T_102}; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_147 = _io_csr_data_bits_T_146 | _GEN_154; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_148 = _io_csr_data_bits_T_147 | _io_csr_data_bits_T_103; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_150 = _io_csr_data_bits_T_148 | _io_csr_data_bits_T_105; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_153 = _io_csr_data_bits_T_150 | _io_csr_data_bits_T_108; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_154 = _io_csr_data_bits_T_153 | _io_csr_data_bits_T_109; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_155 = _io_csr_data_bits_T_154 | _io_csr_data_bits_T_110; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_156 = _io_csr_data_bits_T_155 | _io_csr_data_bits_T_111; // @[Mux.scala 27:73]
  wire [63:0] _GEN_155 = {{48'd0}, _io_csr_data_bits_T_112}; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_157 = _io_csr_data_bits_T_156 | _GEN_155; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_158 = _io_csr_data_bits_T_157 | _io_csr_data_bits_T_113; // @[Mux.scala 27:73]
  wire [63:0] _GEN_156 = {{32'd0}, _io_csr_data_bits_T_114}; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_159 = _io_csr_data_bits_T_158 | _GEN_156; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_160 = _io_csr_data_bits_T_159 | _io_csr_data_bits_T_115; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_161 = _io_csr_data_bits_T_160 | _io_csr_data_bits_T_116; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_162 = _io_csr_data_bits_T_161 | _io_csr_data_bits_T_117; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_163 = _io_csr_data_bits_T_162 | _io_csr_data_bits_T_118; // @[Mux.scala 27:73]
  wire [63:0] _GEN_157 = {{48'd0}, _io_csr_data_bits_T_119}; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_164 = _io_csr_data_bits_T_163 | _GEN_157; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_165 = _io_csr_data_bits_T_164 | _io_csr_data_bits_T_120; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_166 = _io_csr_data_bits_T_165 | _io_csr_data_bits_T_121; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_167 = _io_csr_data_bits_T_166 | _io_csr_data_bits_T_122; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_168 = _io_csr_data_bits_T_167 | _io_csr_data_bits_T_123; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_170 = _io_csr_data_bits_T_168 | _io_csr_data_bits_T_125; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_171 = _io_csr_data_bits_T_170 | _io_csr_data_bits_T_126; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_172 = _io_csr_data_bits_T_171 | _io_csr_data_bits_T_127; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_173 = _io_csr_data_bits_T_172 | _io_csr_data_bits_T_128; // @[Mux.scala 27:73]
  wire [63:0] _GEN_158 = {{32'd0}, _io_csr_data_bits_T_129}; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_174 = _io_csr_data_bits_T_173 | _GEN_158; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_175 = _io_csr_data_bits_T_174 | _io_csr_data_bits_T_130; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_176 = _io_csr_data_bits_T_175 | _io_csr_data_bits_T_131; // @[Mux.scala 27:73]
  wire [63:0] _io_csr_data_bits_T_177 = _io_csr_data_bits_T_176 | _io_csr_data_bits_T_132; // @[Mux.scala 27:73]
  ReDirect_3 bctq_mdl ( // @[RePort.scala 188:21]
    .io_enq_0_ready(bctq_mdl_io_enq_0_ready),
    .io_enq_0_valid(bctq_mdl_io_enq_0_valid),
    .io_enq_0_bits_isPredictTaken(bctq_mdl_io_enq_0_bits_isPredictTaken),
    .io_enq_0_bits_isFinalTaken(bctq_mdl_io_enq_0_bits_isFinalTaken),
    .io_enq_0_bits_finalTarget(bctq_mdl_io_enq_0_bits_finalTarget),
    .io_deq_0_ready(bctq_mdl_io_deq_0_ready),
    .io_deq_0_valid(bctq_mdl_io_deq_0_valid),
    .io_deq_0_bits_isPredictTaken(bctq_mdl_io_deq_0_bits_isPredictTaken),
    .io_deq_0_bits_isFinalTaken(bctq_mdl_io_deq_0_bits_isFinalTaken),
    .io_deq_0_bits_finalTarget(bctq_mdl_io_deq_0_bits_finalTarget),
    .io_mapper_0(bctq_mdl_io_mapper_0)
  );
  ReDirect_4 jctq_mdl ( // @[RePort.scala 188:21]
    .io_enq_0_ready(jctq_mdl_io_enq_0_ready),
    .io_enq_0_valid(jctq_mdl_io_enq_0_valid),
    .io_enq_0_bits_btbResp_target(jctq_mdl_io_enq_0_bits_btbResp_target),
    .io_enq_0_bits_rasResp_target(jctq_mdl_io_enq_0_bits_rasResp_target),
    .io_enq_0_bits_isRas(jctq_mdl_io_enq_0_bits_isRas),
    .io_enq_0_bits_finalTarget(jctq_mdl_io_enq_0_bits_finalTarget),
    .io_deq_0_ready(jctq_mdl_io_deq_0_ready),
    .io_deq_0_valid(jctq_mdl_io_deq_0_valid),
    .io_deq_0_bits_btbResp_target(jctq_mdl_io_deq_0_bits_btbResp_target),
    .io_deq_0_bits_rasResp_target(jctq_mdl_io_deq_0_bits_rasResp_target),
    .io_deq_0_bits_isRas(jctq_mdl_io_deq_0_bits_isRas),
    .io_deq_0_bits_finalTarget(jctq_mdl_io_deq_0_bits_finalTarget),
    .io_mapper_0(jctq_mdl_io_mapper_0)
  );
  ReDirect_5 csrExe_mdl ( // @[RePort.scala 188:21]
    .io_enq_0_ready(csrExe_mdl_io_enq_0_ready),
    .io_enq_0_valid(csrExe_mdl_io_enq_0_valid),
    .io_enq_0_bits_addr(csrExe_mdl_io_enq_0_bits_addr),
    .io_enq_0_bits_dat_i(csrExe_mdl_io_enq_0_bits_dat_i),
    .io_enq_0_bits_op_rw(csrExe_mdl_io_enq_0_bits_op_rw),
    .io_enq_0_bits_op_rs(csrExe_mdl_io_enq_0_bits_op_rs),
    .io_enq_0_bits_op_rc(csrExe_mdl_io_enq_0_bits_op_rc),
    .io_deq_0_ready(csrExe_mdl_io_deq_0_ready),
    .io_deq_0_valid(csrExe_mdl_io_deq_0_valid),
    .io_deq_0_bits_addr(csrExe_mdl_io_deq_0_bits_addr),
    .io_deq_0_bits_dat_i(csrExe_mdl_io_deq_0_bits_dat_i),
    .io_deq_0_bits_op_rw(csrExe_mdl_io_deq_0_bits_op_rw),
    .io_deq_0_bits_op_rs(csrExe_mdl_io_deq_0_bits_op_rs),
    .io_deq_0_bits_op_rc(csrExe_mdl_io_deq_0_bits_op_rc),
    .io_mapper_0(csrExe_mdl_io_mapper_0)
  );
  ReDirect_5 fcsrExe_mdl ( // @[RePort.scala 188:21]
    .io_enq_0_ready(fcsrExe_mdl_io_enq_0_ready),
    .io_enq_0_valid(fcsrExe_mdl_io_enq_0_valid),
    .io_enq_0_bits_addr(fcsrExe_mdl_io_enq_0_bits_addr),
    .io_enq_0_bits_dat_i(fcsrExe_mdl_io_enq_0_bits_dat_i),
    .io_enq_0_bits_op_rw(fcsrExe_mdl_io_enq_0_bits_op_rw),
    .io_enq_0_bits_op_rs(fcsrExe_mdl_io_enq_0_bits_op_rs),
    .io_enq_0_bits_op_rc(fcsrExe_mdl_io_enq_0_bits_op_rc),
    .io_deq_0_ready(fcsrExe_mdl_io_deq_0_ready),
    .io_deq_0_valid(fcsrExe_mdl_io_deq_0_valid),
    .io_deq_0_bits_addr(fcsrExe_mdl_io_deq_0_bits_addr),
    .io_deq_0_bits_dat_i(fcsrExe_mdl_io_deq_0_bits_dat_i),
    .io_deq_0_bits_op_rw(fcsrExe_mdl_io_deq_0_bits_op_rw),
    .io_deq_0_bits_op_rs(fcsrExe_mdl_io_deq_0_bits_op_rs),
    .io_deq_0_bits_op_rc(fcsrExe_mdl_io_deq_0_bits_op_rc),
    .io_mapper_0(fcsrExe_mdl_io_mapper_0)
  );
  assign io_cm_op_0_is_comfirm = commit_state_0 == 2'h3; // @[Commit.scala 324:87]
  assign io_cm_op_0_is_MisPredict = commit_state_0 == 2'h2; // @[Commit.scala 325:87]
  assign io_cm_op_0_is_abort = commit_state_0 == 2'h1; // @[Commit.scala 326:87]
  assign io_cm_op_0_raw = io_rod_0_bits_rd0_raw; // @[Commit.scala 541:21]
  assign io_cm_op_0_phy = io_rod_0_bits_rd0_phy; // @[Commit.scala 540:21]
  assign io_cm_op_0_toX = io_rod_0_bits_is_xcmm; // @[Commit.scala 542:21]
  assign io_rod_0_ready = is_retired_0 | commit_state_is_abort_0; // @[Commit.scala 691:39]
  assign io_cmm_lsu_is_amo_pending = io_rod_0_valid & io_rod_0_bits_is_amo & _is_trap_is_exception_is_csr_illegal_T_1; // @[Commit.scala 547:45]
  assign io_cmm_lsu_is_store_commit_0 = io_rod_0_bits_is_su & commit_state_is_comfirm_0; // @[Commit.scala 696:59]
  assign io_csr_data_valid = io_csr_addr_valid & ~_cmm_state_0_is_csrr_illegal_T_120; // @[Commit.scala 798:42]
  assign io_csr_data_bits = _io_csr_data_bits_T_177 | _io_csr_data_bits_T_133; // @[Mux.scala 27:73]
  assign io_csr_cmm_op_ready = csrExe_mdl_io_enq_0_ready; // @[Commit.scala 337:19 RePort.scala 190:9]
  assign io_bctq_ready = bctq_mdl_io_enq_0_ready; // @[Commit.scala 344:19 RePort.scala 190:9]
  assign io_jctq_ready = jctq_mdl_io_enq_0_ready; // @[Commit.scala 351:19 RePort.scala 190:9]
  assign io_cmmRedirect_valid = commit_state_is_abort_0 ? _GEN_1002 : _GEN_936; // @[Commit.scala 723:38]
  assign io_cmmRedirect_bits_pc = commit_state_is_abort_0 ? _GEN_1003 : _GEN_937; // @[Commit.scala 723:38]
  assign io_ifence = commit_state_is_abort_0 & is_fence_i; // @[Commit.scala 841:30]
  assign io_cmm_mmu_satp = {csr_state_0_csrfiles_satp_hi,csrfiles_satp_ppn}; // @[Commit.scala 827:36]
  assign io_cmm_mmu_priv_lvl_if = csrfiles_priv_lvl; // @[Commit.scala 830:28]
  assign io_cmm_mmu_priv_lvl_ls = csrfiles_mstatus_mprv ? csrfiles_mstatus_mpp : csrfiles_priv_lvl; // @[Commit.scala 831:34]
  assign io_cmm_mmu_mstatus = {csr_state_0_csrfiles_mstatus_hi,csr_state_0_csrfiles_mstatus_lo}; // @[Commit.scala 832:45]
  assign io_cmm_mmu_sstatus = {io_csr_data_bits_hi_2,io_csr_data_bits_lo_2}; // @[Commit.scala 833:45]
  assign io_cmm_mmu_sfence_vma = commit_state_is_abort_0 & is_sfence_vma; // @[Commit.scala 835:30]
  assign io_dm_hartIsInReset = emu_reset; // @[Commit.scala 366:23]
  assign io_diff_commit_pc_0 = {_csr_state_0_csrfiles_sepc_sepc_commit_pc_v64_T_2,io_rod_0_bits_pc}; // @[Cat.scala 33:92]
  assign io_diff_commit_comfirm_0 = commit_state_is_comfirm_0 | commit_state_is_misPredict_0; // @[Commit.scala 567:61]
  assign io_diff_commit_abort_0 = commit_state_0 == 2'h1; // @[Commit.scala 326:87]
  assign io_diff_commit_priv_lvl = csrfiles_priv_lvl; // @[Commit.scala 572:27]
  assign io_diff_commit_is_ecall_M = commit_state_is_abort_0 & csr_state_0_csrfiles_priv_lvl_is_ecall_M; // @[Commit.scala 573:88]
  assign io_diff_commit_is_ecall_S = commit_state_is_abort_0 & csr_state_0_csrfiles_priv_lvl_is_ecall_S; // @[Commit.scala 574:88]
  assign io_diff_commit_is_ecall_U = commit_state_is_abort_0 & csr_state_0_csrfiles_priv_lvl_is_ecall_U; // @[Commit.scala 575:88]
  assign io_diff_csr_mstatus = {csr_state_0_csrfiles_mstatus_hi,csr_state_0_csrfiles_mstatus_lo}; // @[Commit.scala 578:51]
  assign io_diff_csr_mtvec = {csrfiles_mtvec_base,2'h0}; // @[Commit.scala 579:49]
  assign io_diff_csr_mscratch = csrfiles_mscratch; // @[Commit.scala 580:31]
  assign io_diff_csr_mepc = csrfiles_mepc; // @[Commit.scala 581:31]
  assign io_diff_csr_mcause = {csrfiles_mcause_interrupt,csrfiles_mcause_exception_code}; // @[Commit.scala 582:50]
  assign io_diff_csr_mtval = csrfiles_mtval; // @[Commit.scala 583:31]
  assign io_diff_csr_marchid = csrfiles_marchid; // @[Commit.scala 585:25]
  assign io_diff_csr_misa = csrfiles_misa; // @[Commit.scala 588:25]
  assign io_diff_csr_mie = {{48'd0}, _csr_state_0_csrfiles_mie_T}; // @[Commit.scala 589:25]
  assign io_diff_csr_mip = {{48'd0}, _io_diff_csr_mip_T}; // @[Commit.scala 590:25]
  assign io_diff_csr_medeleg = csrfiles_medeleg; // @[Commit.scala 591:25]
  assign io_diff_csr_mideleg = csrfiles_mideleg; // @[Commit.scala 592:25]
  assign io_diff_csr_stvec = {csrfiles_stvec_base,2'h0}; // @[Commit.scala 610:42]
  assign io_diff_csr_sscratch = csrfiles_sscratch; // @[Commit.scala 611:24]
  assign io_diff_csr_sepc = csrfiles_sepc; // @[Commit.scala 612:24]
  assign io_diff_csr_scause = {csrfiles_scause_interrupt,csrfiles_scause_exception_code}; // @[Commit.scala 613:43]
  assign io_diff_csr_stval = csrfiles_stval; // @[Commit.scala 614:24]
  assign io_diff_csr_satp = {csr_state_0_csrfiles_satp_hi,csrfiles_satp_ppn}; // @[Commit.scala 615:41]
  assign io_diff_csr_fflags = {{27'd0}, csrfiles_fcsr_fflags}; // @[Commit.scala 620:23]
  assign io_diff_csr_frm = {{5'd0}, csrfiles_fcsr_frm}; // @[Commit.scala 621:23]
  assign io_diff_csr_mcycle = csrfiles_mcycle; // @[Commit.scala 623:22]
  assign io_diff_csr_minstret = csrfiles_minstret; // @[Commit.scala 624:24]
  assign bctq_mdl_io_enq_0_valid = io_bctq_valid; // @[Commit.scala 344:19 346:12]
  assign bctq_mdl_io_enq_0_bits_isPredictTaken = io_bctq_bits_isPredictTaken; // @[Commit.scala 344:19 346:12]
  assign bctq_mdl_io_enq_0_bits_isFinalTaken = io_bctq_bits_isFinalTaken; // @[Commit.scala 344:19 346:12]
  assign bctq_mdl_io_enq_0_bits_finalTarget = io_bctq_bits_finalTarget; // @[Commit.scala 344:19 346:12]
  assign bctq_mdl_io_deq_0_ready = is_retired_0 & io_rod_0_bits_is_branch; // @[Commit.scala 679:36]
  assign bctq_mdl_io_mapper_0 = io_rod_0_bits_is_branch; // @[Commit.scala 357:{42,42}]
  assign jctq_mdl_io_enq_0_valid = io_jctq_valid; // @[Commit.scala 351:19 353:12]
  assign jctq_mdl_io_enq_0_bits_btbResp_target = io_jctq_bits_btbResp_target; // @[Commit.scala 351:19 353:12]
  assign jctq_mdl_io_enq_0_bits_rasResp_target = io_jctq_bits_rasResp_target; // @[Commit.scala 351:19 353:12]
  assign jctq_mdl_io_enq_0_bits_isRas = io_jctq_bits_isRas; // @[Commit.scala 351:19 353:12]
  assign jctq_mdl_io_enq_0_bits_finalTarget = io_jctq_bits_finalTarget; // @[Commit.scala 351:19 353:12]
  assign jctq_mdl_io_deq_0_ready = is_retired_0 & io_rod_0_bits_is_jalr; // @[Commit.scala 685:36]
  assign jctq_mdl_io_mapper_0 = io_rod_0_bits_is_jalr; // @[Commit.scala 358:{42,42}]
  assign csrExe_mdl_io_enq_0_valid = io_csr_cmm_op_valid; // @[Commit.scala 337:19 339:12]
  assign csrExe_mdl_io_enq_0_bits_addr = io_csr_cmm_op_bits_addr; // @[Commit.scala 337:19 339:12]
  assign csrExe_mdl_io_enq_0_bits_dat_i = io_csr_cmm_op_bits_dat_i; // @[Commit.scala 337:19 339:12]
  assign csrExe_mdl_io_enq_0_bits_op_rw = io_csr_cmm_op_bits_op_rw; // @[Commit.scala 337:19 339:12]
  assign csrExe_mdl_io_enq_0_bits_op_rs = io_csr_cmm_op_bits_op_rs; // @[Commit.scala 337:19 339:12]
  assign csrExe_mdl_io_enq_0_bits_op_rc = io_csr_cmm_op_bits_op_rc; // @[Commit.scala 337:19 339:12]
  assign csrExe_mdl_io_deq_0_ready = commit_state_is_comfirm_0 & io_rod_0_bits_is_csr; // @[Commit.scala 802:51]
  assign csrExe_mdl_io_mapper_0 = io_rod_0_bits_is_csr; // @[Commit.scala 360:{48,48}]
  assign fcsrExe_mdl_io_enq_0_valid = 1'h0; // @[RePort.scala 190:9]
  assign fcsrExe_mdl_io_enq_0_bits_addr = 12'h0; // @[RePort.scala 190:9]
  assign fcsrExe_mdl_io_enq_0_bits_dat_i = 64'h0; // @[RePort.scala 190:9]
  assign fcsrExe_mdl_io_enq_0_bits_op_rw = 1'h0; // @[RePort.scala 190:9]
  assign fcsrExe_mdl_io_enq_0_bits_op_rs = 1'h0; // @[RePort.scala 190:9]
  assign fcsrExe_mdl_io_enq_0_bits_op_rc = 1'h0; // @[RePort.scala 190:9]
  assign fcsrExe_mdl_io_deq_0_ready = commit_state_is_comfirm_0 & io_rod_0_bits_is_fcsr; // @[Commit.scala 812:34]
  assign fcsrExe_mdl_io_mapper_0 = io_rod_0_bits_is_fcsr; // @[Commit.scala 361:{50,50}]
  always @(posedge clock) begin
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_priv_lvl <= 2'h3; // @[Commit.scala 449:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csrfiles_DMode) begin // @[CsrFiles.scala 709:31]
        if (is_xRet_is_dRet) begin // @[CsrFiles.scala 710:24]
          csrfiles_priv_lvl <= csrfiles_dcsr_prv; // @[CsrFiles.scala 710:35]
        end else begin
          csrfiles_priv_lvl <= _GEN_469;
        end
      end else if (is_trap_is_exception_is_store_pagingFault) begin // @[CsrFiles.scala 736:41]
        csrfiles_priv_lvl <= _csr_state_0_csrfiles_priv_lvl_priv_lvl_T_75; // @[CsrFiles.scala 736:52]
      end else begin
        csrfiles_priv_lvl <= _GEN_491;
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_DMode <= 1'h0; // @[Commit.scala 450:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      csrfiles_DMode <= csr_state_0_csrfiles_DMode_DMode; // @[Commit.scala 398:100]
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_fcsr_frm <= 3'h0; // @[Commit.scala 451:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      csrfiles_fcsr_frm <= csr_state_0_csrfiles_fcsr_fcsr_frm; // @[Commit.scala 398:100]
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_fcsr_fflags <= 5'h0; // @[Commit.scala 451:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      csrfiles_fcsr_fflags <= csr_state_0_csrfiles_fcsr_fcsr_fflags; // @[Commit.scala 398:100]
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_time <= 64'h0; // @[Commit.scala 453:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      csrfiles_time <= 64'h0; // @[Commit.scala 398:100]
    end else if (rtc_3 ^ rtc_2) begin // @[Commit.scala 396:87]
      csrfiles_time <= _csrfiles_time_T_1; // @[Commit.scala 396:103]
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_stvec_base <= 62'h0; // @[Commit.scala 455:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_stvec_enable) begin // @[CsrFiles.scala 1322:18]
        csrfiles_stvec_base <= csr_state_0_csrfiles_stvec_dnxt[63:2]; // @[CsrFiles.scala 1322:31]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_scounteren_hpm <= 32'h0; // @[Commit.scala 456:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      csrfiles_scounteren_hpm <= csr_state_0_csrfiles_scounteren_scounteren_hpm; // @[Commit.scala 398:100]
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_sscratch <= 64'h0; // @[Commit.scala 457:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_sscratch_enable) begin // @[CsrFiles.scala 1358:18]
        csrfiles_sscratch <= csr_state_0_csrfiles_sscratch_dnxt; // @[CsrFiles.scala 1358:29]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_sepc <= 64'h0; // @[Commit.scala 458:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (is_trap & csr_state_0_csrfiles_priv_lvl_priv_lvl == 2'h1 & _is_trap_is_interrupt_T_2) begin // @[CsrFiles.scala 1373:79]
        csrfiles_sepc <= csr_state_0_csrfiles_sepc_sepc_commit_pc; // @[CsrFiles.scala 1373:86]
      end else if (csr_state_0_csrfiles_sepc_enable) begin // @[CsrFiles.scala 1374:23]
        csrfiles_sepc <= csr_state_0_csrfiles_sepc_dnxt; // @[CsrFiles.scala 1374:30]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_scause_interrupt <= 1'h0; // @[Commit.scala 459:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      csrfiles_scause_interrupt <= csr_state_0_csrfiles_scause_scause_interrupt; // @[Commit.scala 398:100]
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_scause_exception_code <= 63'h0; // @[Commit.scala 459:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (_is_trap_is_interrupt_T & _csr_state_0_csrfiles_sepc_T_7 & _is_trap_is_interrupt_T_2) begin // @[CsrFiles.scala 1388:128]
        csrfiles_scause_exception_code <= {{59'd0}, _csr_state_0_csrfiles_scause_scause_exception_code_T_16}; // @[CsrFiles.scala 1390:29]
      end else if (is_trap_is_exception & _csr_state_0_csrfiles_sepc_T_7 & _is_trap_is_interrupt_T_2) begin // @[CsrFiles.scala 1399:89]
        csrfiles_scause_exception_code <= {{59'd0}, _csr_state_0_csrfiles_scause_scause_exception_code_T_44}; // @[CsrFiles.scala 1401:29]
      end else begin
        csrfiles_scause_exception_code <= _GEN_580;
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_stval <= 64'h0; // @[Commit.scala 460:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (_csr_state_0_csrfiles_sepc_T_10) begin // @[CsrFiles.scala 1436:79]
        csrfiles_stval <= _csr_state_0_csrfiles_stval_stval_T_19; // @[CsrFiles.scala 1437:13]
      end else if (csr_state_0_csrfiles_stval_enable) begin // @[CsrFiles.scala 1450:23]
        csrfiles_stval <= csr_state_0_csrfiles_stval_dnxt; // @[CsrFiles.scala 1450:31]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_satp_mode <= 4'h0; // @[Commit.scala 462:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_satp_enable) begin // @[CsrFiles.scala 1495:18]
        csrfiles_satp_mode <= _csr_state_0_csrfiles_satp_satp_mode_T_1; // @[CsrFiles.scala 1497:17]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_satp_asid <= 16'h0; // @[Commit.scala 462:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_satp_enable) begin // @[CsrFiles.scala 1495:18]
        csrfiles_satp_asid <= csr_state_0_csrfiles_satp_dnxt[59:44]; // @[CsrFiles.scala 1498:17]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_satp_ppn <= 44'h0; // @[Commit.scala 462:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_satp_enable) begin // @[CsrFiles.scala 1495:18]
        csrfiles_satp_ppn <= csr_state_0_csrfiles_satp_dnxt[43:0]; // @[CsrFiles.scala 1499:17]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_marchid <= 64'h0; // @[Commit.scala 464:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      csrfiles_marchid <= 64'h1d; // @[Commit.scala 398:100]
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mstatus_sd <= 1'h0; // @[Commit.scala 487:27]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      csrfiles_mstatus_sd <= csr_state_0_csrfiles_mstatus_mstatus_sd; // @[Commit.scala 398:100]
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mstatus_tsr <= 1'h0; // @[Commit.scala 472:27]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (!(is_trap & _is_trap_is_interrupt_T_2)) begin // @[CsrFiles.scala 758:45]
        if (!(is_xRet_is_mRet & _is_trap_is_interrupt_T_2)) begin // @[CsrFiles.scala 770:50]
          csrfiles_mstatus_tsr <= _GEN_749;
        end
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mstatus_tw <= 1'h0; // @[Commit.scala 473:27]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (!(is_trap & _is_trap_is_interrupt_T_2)) begin // @[CsrFiles.scala 758:45]
        if (!(is_xRet_is_mRet & _is_trap_is_interrupt_T_2)) begin // @[CsrFiles.scala 770:50]
          csrfiles_mstatus_tw <= _GEN_750;
        end
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mstatus_tvm <= 1'h0; // @[Commit.scala 474:27]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (!(is_trap & _is_trap_is_interrupt_T_2)) begin // @[CsrFiles.scala 758:45]
        if (!(is_xRet_is_mRet & _is_trap_is_interrupt_T_2)) begin // @[CsrFiles.scala 770:50]
          csrfiles_mstatus_tvm <= _GEN_751;
        end
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mstatus_mxr <= 1'h0; // @[Commit.scala 475:27]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (!(is_trap & _is_trap_is_interrupt_T_2)) begin // @[CsrFiles.scala 758:45]
        if (!(is_xRet_is_mRet & _is_trap_is_interrupt_T_2)) begin // @[CsrFiles.scala 770:50]
          csrfiles_mstatus_mxr <= _GEN_745;
        end
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mstatus_sum <= 1'h0; // @[Commit.scala 476:27]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (!(is_trap & _is_trap_is_interrupt_T_2)) begin // @[CsrFiles.scala 758:45]
        if (!(is_xRet_is_mRet & _is_trap_is_interrupt_T_2)) begin // @[CsrFiles.scala 770:50]
          csrfiles_mstatus_sum <= _GEN_746;
        end
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mstatus_mprv <= 1'h0; // @[Commit.scala 477:27]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (!(is_trap & _is_trap_is_interrupt_T_2)) begin // @[CsrFiles.scala 758:45]
        if (is_xRet_is_mRet & _is_trap_is_interrupt_T_2) begin // @[CsrFiles.scala 770:50]
          csrfiles_mstatus_mprv <= _csr_state_0_csrfiles_mstatus_mstatus_mprv_T_8; // @[CsrFiles.scala 775:20]
        end else begin
          csrfiles_mstatus_mprv <= _GEN_744;
        end
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mstatus_fs <= 2'h0; // @[Commit.scala 479:27]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_mstatus_is_fpu_state_change & csrfiles_mstatus_fs != 2'h0) begin // @[CsrFiles.scala 808:67]
        csrfiles_mstatus_fs <= 2'h3; // @[CsrFiles.scala 809:18]
      end else if (!(is_trap & _is_trap_is_interrupt_T_2)) begin // @[CsrFiles.scala 758:45]
        csrfiles_mstatus_fs <= _GEN_763;
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mstatus_mpp <= 2'h3; // @[Commit.scala 480:27]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (is_trap & _is_trap_is_interrupt_T_2) begin // @[CsrFiles.scala 758:45]
        if (csr_state_0_csrfiles_priv_lvl_priv_lvl == 2'h3) begin // @[CsrFiles.scala 759:47]
          csrfiles_mstatus_mpp <= csrfiles_priv_lvl; // @[CsrFiles.scala 762:22]
        end
      end else if (is_xRet_is_mRet & _is_trap_is_interrupt_T_2) begin // @[CsrFiles.scala 770:50]
        csrfiles_mstatus_mpp <= 2'h0; // @[CsrFiles.scala 773:20]
      end else begin
        csrfiles_mstatus_mpp <= _GEN_752;
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mstatus_spp <= 1'h0; // @[Commit.scala 481:27]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (is_trap & _is_trap_is_interrupt_T_2) begin // @[CsrFiles.scala 758:45]
        if (_csr_state_0_csrfiles_sepc_T_7) begin // @[CsrFiles.scala 764:47]
          csrfiles_mstatus_spp <= _csr_state_0_csrfiles_mstatus_mstatus_spp_T_1; // @[CsrFiles.scala 765:22]
        end
      end else if (!(is_xRet_is_mRet & _is_trap_is_interrupt_T_2)) begin // @[CsrFiles.scala 770:50]
        csrfiles_mstatus_spp <= _GEN_748;
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mstatus_mpie <= 1'h0; // @[Commit.scala 482:27]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (is_trap & _is_trap_is_interrupt_T_2) begin // @[CsrFiles.scala 758:45]
        if (csr_state_0_csrfiles_priv_lvl_priv_lvl == 2'h3) begin // @[CsrFiles.scala 759:47]
          csrfiles_mstatus_mpie <= csrfiles_mstatus_mie; // @[CsrFiles.scala 760:22]
        end
      end else begin
        csrfiles_mstatus_mpie <= _GEN_756;
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mstatus_spie <= 1'h0; // @[Commit.scala 484:27]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (is_trap & _is_trap_is_interrupt_T_2) begin // @[CsrFiles.scala 758:45]
        if (_csr_state_0_csrfiles_sepc_T_7) begin // @[CsrFiles.scala 764:47]
          csrfiles_mstatus_spie <= csrfiles_mstatus_sie; // @[CsrFiles.scala 766:22]
        end
      end else if (!(is_xRet_is_mRet & _is_trap_is_interrupt_T_2)) begin // @[CsrFiles.scala 770:50]
        csrfiles_mstatus_spie <= _GEN_742;
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mstatus_mie <= 1'h0; // @[Commit.scala 485:27]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (is_trap & _is_trap_is_interrupt_T_2) begin // @[CsrFiles.scala 758:45]
        if (csr_state_0_csrfiles_priv_lvl_priv_lvl == 2'h3) begin // @[CsrFiles.scala 759:47]
          csrfiles_mstatus_mie <= 1'h0; // @[CsrFiles.scala 761:22]
        end
      end else if (is_xRet_is_mRet & _is_trap_is_interrupt_T_2) begin // @[CsrFiles.scala 770:50]
        csrfiles_mstatus_mie <= csrfiles_mstatus_mpie; // @[CsrFiles.scala 771:20]
      end else begin
        csrfiles_mstatus_mie <= _GEN_754;
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mstatus_sie <= 1'h0; // @[Commit.scala 486:27]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (is_trap & _is_trap_is_interrupt_T_2) begin // @[CsrFiles.scala 758:45]
        if (_csr_state_0_csrfiles_sepc_T_7) begin // @[CsrFiles.scala 764:47]
          csrfiles_mstatus_sie <= 1'h0; // @[CsrFiles.scala 767:22]
        end
      end else if (!(is_xRet_is_mRet & _is_trap_is_interrupt_T_2)) begin // @[CsrFiles.scala 770:50]
        csrfiles_mstatus_sie <= _GEN_743;
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_misa <= 64'h800000000014112d; // @[Commit.scala 489:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      csrfiles_misa <= 64'h8000000000141105; // @[Commit.scala 398:100]
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_medeleg <= 64'h0; // @[Commit.scala 490:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_medeleg_enable) begin // @[CsrFiles.scala 850:18]
        csrfiles_medeleg <= csr_state_0_csrfiles_medeleg_dnxt; // @[CsrFiles.scala 850:28]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mideleg <= 64'h0; // @[Commit.scala 491:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_mideleg_enable) begin // @[CsrFiles.scala 862:18]
        csrfiles_mideleg <= csr_state_0_csrfiles_mideleg_dnxt; // @[CsrFiles.scala 862:28]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mie_mei <= 1'h0; // @[Commit.scala 492:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_mie_enable0) begin // @[CsrFiles.scala 882:19]
        csrfiles_mie_mei <= csr_state_0_csrfiles_mie_dnxt0[11]; // @[CsrFiles.scala 883:15]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mie_sei <= 1'h0; // @[Commit.scala 492:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_mie_enable0) begin // @[CsrFiles.scala 882:19]
        csrfiles_mie_sei <= csr_state_0_csrfiles_mie_dnxt0[9]; // @[CsrFiles.scala 884:15]
      end else if (csr_state_0_csrfiles_mie_enable1) begin // @[CsrFiles.scala 890:24]
        csrfiles_mie_sei <= csr_state_0_csrfiles_mie_dnxt0[9]; // @[CsrFiles.scala 891:15]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mie_mti <= 1'h0; // @[Commit.scala 492:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_mie_enable0) begin // @[CsrFiles.scala 882:19]
        csrfiles_mie_mti <= csr_state_0_csrfiles_mie_dnxt0[7]; // @[CsrFiles.scala 885:15]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mie_sti <= 1'h0; // @[Commit.scala 492:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_mie_enable0) begin // @[CsrFiles.scala 882:19]
        csrfiles_mie_sti <= csr_state_0_csrfiles_mie_dnxt0[5]; // @[CsrFiles.scala 886:15]
      end else if (csr_state_0_csrfiles_mie_enable1) begin // @[CsrFiles.scala 890:24]
        csrfiles_mie_sti <= csr_state_0_csrfiles_mie_dnxt0[5]; // @[CsrFiles.scala 892:15]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mie_msi <= 1'h0; // @[Commit.scala 492:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_mie_enable0) begin // @[CsrFiles.scala 882:19]
        csrfiles_mie_msi <= csr_state_0_csrfiles_mie_dnxt0[3]; // @[CsrFiles.scala 887:15]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mie_ssi <= 1'h0; // @[Commit.scala 492:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_mie_enable0) begin // @[CsrFiles.scala 882:19]
        csrfiles_mie_ssi <= csr_state_0_csrfiles_mie_dnxt0[1]; // @[CsrFiles.scala 888:15]
      end else if (csr_state_0_csrfiles_mie_enable1) begin // @[CsrFiles.scala 890:24]
        csrfiles_mie_ssi <= csr_state_0_csrfiles_mie_dnxt0[1]; // @[CsrFiles.scala 893:15]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mtvec_base <= 62'h0; // @[Commit.scala 493:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_mtvec_enable) begin // @[CsrFiles.scala 912:18]
        csrfiles_mtvec_base <= csr_state_0_csrfiles_mtvec_dnxt[63:2]; // @[CsrFiles.scala 912:31]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mcounteren_hpm <= 32'h0; // @[Commit.scala 494:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      csrfiles_mcounteren_hpm <= csr_state_0_csrfiles_mcounteren_mcounteren_hpm; // @[Commit.scala 398:100]
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mscratch <= 64'h0; // @[Commit.scala 495:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_mscratch_enable) begin // @[CsrFiles.scala 947:18]
        csrfiles_mscratch <= csr_state_0_csrfiles_mscratch_dnxt; // @[CsrFiles.scala 947:29]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mepc <= 64'h0; // @[Commit.scala 496:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (is_trap & _csr_state_0_csrfiles_mstatus_T_11 & _is_trap_is_interrupt_T_2) begin // @[CsrFiles.scala 962:78]
        csrfiles_mepc <= csr_state_0_csrfiles_sepc_sepc_commit_pc; // @[CsrFiles.scala 962:85]
      end else if (csr_state_0_csrfiles_mepc_enable) begin // @[CsrFiles.scala 963:23]
        csrfiles_mepc <= csr_state_0_csrfiles_mepc_dnxt; // @[CsrFiles.scala 963:30]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mcause_interrupt <= 1'h0; // @[Commit.scala 497:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      csrfiles_mcause_interrupt <= csr_state_0_csrfiles_mcause_mcause_interrupt; // @[Commit.scala 398:100]
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mcause_exception_code <= 63'h0; // @[Commit.scala 497:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (is_trap_is_interrupt_is_m_interrupt & _csr_state_0_csrfiles_mstatus_T_11 & _is_trap_is_interrupt_T_2) begin // @[CsrFiles.scala 978:95]
        csrfiles_mcause_exception_code <= {{59'd0}, _csr_state_0_csrfiles_mcause_mcause_exception_code_T_7}; // @[CsrFiles.scala 980:29]
      end else if (is_trap_is_exception & _csr_state_0_csrfiles_mstatus_T_11 & _is_trap_is_interrupt_T_2) begin // @[CsrFiles.scala 989:89]
        csrfiles_mcause_exception_code <= {{59'd0}, _csr_state_0_csrfiles_scause_scause_exception_code_T_44}; // @[CsrFiles.scala 991:29]
      end else begin
        csrfiles_mcause_exception_code <= _GEN_871;
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mtval <= 64'h0; // @[Commit.scala 498:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (_csr_state_0_csrfiles_mepc_T_10) begin // @[CsrFiles.scala 1027:79]
        csrfiles_mtval <= _csr_state_0_csrfiles_stval_stval_T_19; // @[CsrFiles.scala 1028:13]
      end else if (csr_state_0_csrfiles_mtval_enable) begin // @[CsrFiles.scala 1041:23]
        csrfiles_mtval <= csr_state_0_csrfiles_mtval_dnxt; // @[CsrFiles.scala 1041:31]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mip_mei <= 1'h0; // @[Commit.scala 499:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      csrfiles_mip_mei <= io_plic_mei; // @[Commit.scala 398:100]
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mip_sei <= 1'h0; // @[Commit.scala 499:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      csrfiles_mip_sei <= io_plic_sei; // @[Commit.scala 398:100]
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mip_mti <= 1'h0; // @[Commit.scala 499:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      csrfiles_mip_mti <= io_aclint_mti; // @[Commit.scala 398:100]
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mip_sti <= 1'h0; // @[Commit.scala 499:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      csrfiles_mip_sti <= io_aclint_sti; // @[Commit.scala 398:100]
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mip_msi <= 1'h0; // @[Commit.scala 499:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      csrfiles_mip_msi <= io_aclint_msi; // @[Commit.scala 398:100]
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mip_ssi <= 1'h0; // @[Commit.scala 499:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      csrfiles_mip_ssi <= io_aclint_ssi; // @[Commit.scala 398:100]
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mtinst <= 64'h0; // @[Commit.scala 500:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_mtinst_enable) begin // @[CsrFiles.scala 1077:18]
        csrfiles_mtinst <= csr_state_0_csrfiles_mtinst_dnxt; // @[CsrFiles.scala 1077:27]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mtval2 <= 64'h0; // @[Commit.scala 501:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_mtval2_enable) begin // @[CsrFiles.scala 1085:18]
        csrfiles_mtval2 <= csr_state_0_csrfiles_mtval2_dnxt; // @[CsrFiles.scala 1085:27]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_mcycle <= 64'h0; // @[Commit.scala 502:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_mcycle_enable) begin // @[CsrFiles.scala 1143:20]
        csrfiles_mcycle <= csr_state_0_csrfiles_mcycle_dnxt; // @[CsrFiles.scala 1143:29]
      end else begin
        csrfiles_mcycle <= _csrfiles_mcycle_T_1; // @[CsrFiles.scala 1144:26]
      end
    end else begin
      csrfiles_mcycle <= _csrfiles_mcycle_T_1; // @[Commit.scala 395:19]
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_minstret <= 64'h0; // @[Commit.scala 503:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_minstret_enable) begin // @[CsrFiles.scala 1158:18]
        csrfiles_minstret <= csr_state_0_csrfiles_minstret_dnxt; // @[CsrFiles.scala 1158:29]
      end else begin
        csrfiles_minstret <= _csr_state_0_csrfiles_minstret_minstret_T_1; // @[CsrFiles.scala 1159:27]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_tselect <= 64'h0; // @[Commit.scala 505:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_tselect_enable) begin // @[CsrFiles.scala 1746:20]
        csrfiles_tselect <= _csr_state_0_csrfiles_tselect_tselect_T_1; // @[CsrFiles.scala 1746:30]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_tdata1 <= 64'h0; // @[Commit.scala 506:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_tdata1_enable) begin // @[CsrFiles.scala 1757:20]
        csrfiles_tdata1 <= csr_state_0_csrfiles_tdata1_dnxt; // @[CsrFiles.scala 1757:29]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_tdata2 <= 64'h0; // @[Commit.scala 507:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_tdata2_enable) begin // @[CsrFiles.scala 1767:20]
        csrfiles_tdata2 <= csr_state_0_csrfiles_tdata2_dnxt; // @[CsrFiles.scala 1767:29]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_tdata3 <= 64'h0; // @[Commit.scala 508:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_tdata3_enable) begin // @[CsrFiles.scala 1777:20]
        csrfiles_tdata3 <= csr_state_0_csrfiles_tdata3_dnxt; // @[CsrFiles.scala 1777:29]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_dcsr_ebreakm <= 1'h0; // @[Commit.scala 511:29]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (!(is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt)) begin // @[CsrFiles.scala 1796:41]
        if (csr_state_0_csrfiles_dcsr_enable) begin // @[CsrFiles.scala 1808:25]
          csrfiles_dcsr_ebreakm <= csr_state_0_csrfiles_dcsr_dnxt[15]; // @[CsrFiles.scala 1809:24]
        end
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_dcsr_ebreaks <= 1'h0; // @[Commit.scala 512:29]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (!(is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt)) begin // @[CsrFiles.scala 1796:41]
        if (csr_state_0_csrfiles_dcsr_enable) begin // @[CsrFiles.scala 1808:25]
          csrfiles_dcsr_ebreaks <= csr_state_0_csrfiles_dcsr_dnxt[13]; // @[CsrFiles.scala 1810:24]
        end
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_dcsr_ebreaku <= 1'h0; // @[Commit.scala 513:29]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (!(is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt)) begin // @[CsrFiles.scala 1796:41]
        if (csr_state_0_csrfiles_dcsr_enable) begin // @[CsrFiles.scala 1808:25]
          csrfiles_dcsr_ebreaku <= csr_state_0_csrfiles_dcsr_dnxt[12]; // @[CsrFiles.scala 1811:24]
        end
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_dcsr_cause <= 3'h0; // @[Commit.scala 517:29]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt) begin // @[CsrFiles.scala 1796:41]
        if (is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt_is_ebreak_dm) begin // @[Mux.scala 101:16]
          csrfiles_dcsr_cause <= 3'h1;
        end else begin
          csrfiles_dcsr_cause <= _csr_state_0_csrfiles_dcsr_dcsr_cause_T_1;
        end
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_dcsr_step <= 1'h0; // @[Commit.scala 520:29]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (!(is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt)) begin // @[CsrFiles.scala 1796:41]
        if (csr_state_0_csrfiles_dcsr_enable) begin // @[CsrFiles.scala 1808:25]
          csrfiles_dcsr_step <= csr_state_0_csrfiles_dcsr_dnxt[2]; // @[CsrFiles.scala 1812:19]
        end
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_dcsr_prv <= 2'h3; // @[Commit.scala 521:29]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (is_trap_is_interrupt_is_nomask_interrupt_is_debug_interrupt) begin // @[CsrFiles.scala 1796:41]
        csrfiles_dcsr_prv <= csrfiles_priv_lvl; // @[CsrFiles.scala 1797:18]
      end else if (csr_state_0_csrfiles_dcsr_enable) begin // @[CsrFiles.scala 1808:25]
        csrfiles_dcsr_prv <= csr_state_0_csrfiles_dcsr_dnxt[1:0]; // @[CsrFiles.scala 1813:19]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_dpc <= 64'h0; // @[Commit.scala 523:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_dpc_enable) begin // @[CsrFiles.scala 1825:20]
        csrfiles_dpc <= csr_state_0_csrfiles_dpc_dnxt; // @[CsrFiles.scala 1825:26]
      end else if (_is_trap_is_interrupt_T_2 & csr_state_0_csrfiles_DMode_DMode) begin // @[CsrFiles.scala 1827:84]
        csrfiles_dpc <= _csr_state_0_csrfiles_dpc_dpc_T_6; // @[CsrFiles.scala 1828:13]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_dscratch0 <= 64'h0; // @[Commit.scala 524:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_dscratch0_enable) begin // @[CsrFiles.scala 1845:20]
        csrfiles_dscratch0 <= csr_state_0_csrfiles_dscratch0_dnxt; // @[CsrFiles.scala 1845:32]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_dscratch1 <= 64'h0; // @[Commit.scala 525:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_dscratch1_enable) begin // @[CsrFiles.scala 1854:20]
        csrfiles_dscratch1 <= csr_state_0_csrfiles_dscratch1_dnxt; // @[CsrFiles.scala 1854:32]
      end
    end
    if (reset) begin // @[Commit.scala 399:24]
      csrfiles_dscratch2 <= 64'h0; // @[Commit.scala 526:28]
    end else if (is_retired_0 | commit_state_is_abort_0) begin // @[Commit.scala 398:89]
      if (csr_state_0_csrfiles_dscratch2_enable) begin // @[CsrFiles.scala 1863:20]
        csrfiles_dscratch2 <= csr_state_0_csrfiles_dscratch2_dnxt; // @[CsrFiles.scala 1863:32]
      end
    end
    if (reset) begin // @[Commit.scala 404:31]
      is_single_step <= 1'h0; // @[Commit.scala 404:31]
    end else begin
      is_single_step <= _T_1 & is_step_1 | _GEN_460;
    end
    if (reset) begin // @[Commit.scala 363:26]
      emu_reset <= 1'h0; // @[Commit.scala 363:26]
    end else begin
      emu_reset <= _GEN_1;
    end
    if (reset) begin // @[Reg.scala 35:20]
      rtc_0 <= 1'h0; // @[Reg.scala 35:20]
    end else begin
      rtc_0 <= io_rtc_clock;
    end
    if (reset) begin // @[Reg.scala 35:20]
      rtc_1 <= 1'h0; // @[Reg.scala 35:20]
    end else begin
      rtc_1 <= rtc_0;
    end
    if (reset) begin // @[Reg.scala 35:20]
      rtc_2 <= 1'h0; // @[Reg.scala 35:20]
    end else begin
      rtc_2 <= rtc_1;
    end
    if (reset) begin // @[Reg.scala 35:20]
      rtc_3 <= 1'h0; // @[Reg.scala 35:20]
    end else begin
      rtc_3 <= rtc_2;
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(_T_34 == _mdl_io_deq_0_ready_T)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Commit.scala:680 assert( bctq(i).fire === (is_retired(i) & io.rod(i).bits.is_branch) )\n"
            ); // @[Commit.scala 680:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_34 == _mdl_io_deq_0_ready_T) & ~reset) begin
          $fatal; // @[Commit.scala 680:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_38 & ~(_T_34 == _T_41)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Commit.scala:681 assert( bctq.map{_.fire}.reduce(_|_) === io.bctq.fire )\n"); // @[Commit.scala 681:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_34 == _T_41) & _T_38) begin
          $fatal; // @[Commit.scala 681:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_38 & ~(_T_46 == _mdl_io_deq_0_ready_T_1)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Commit.scala:686 assert( jctq(i).fire === (is_retired(i) & io.rod(i).bits.is_jalr) )\n"
            ); // @[Commit.scala 686:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_46 == _mdl_io_deq_0_ready_T_1) & _T_38) begin
          $fatal; // @[Commit.scala 686:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_38 & ~(_T_46 == _T_53)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Commit.scala:687 assert( jctq.map{_.fire}.reduce(_|_) === io.jctq.fire )\n"); // @[Commit.scala 687:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_46 == _T_53) & _T_38) begin
          $fatal; // @[Commit.scala 687:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (commit_state_is_abort_0 & csrfiles_DMode & is_trap_is_interrupt & _T_38) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed, All interrupts (including NMI) are masked in Dmode! Page-39\n    at Commit.scala:730 assert(false.B, \"Assert Failed, All interrupts (including NMI) are masked in Dmode! Page-39\")\n"
            ); // @[Commit.scala 730:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (commit_state_is_abort_0 & csrfiles_DMode & is_trap_is_interrupt & _T_38) begin
          $fatal; // @[Commit.scala 730:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (commit_state_is_abort_0 & _is_trap_is_interrupt_T_2 & _T_38 & ~(_T_81 <= 3'h1)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Commit.scala:768 assert( PopCount(Seq( cmm_state(i).is_xRet, cmm_state(i).is_trap, cmm_state(i).is_fence_i, cmm_state(i).is_sfence_vma)) <= 1.U )\n"
            ); // @[Commit.scala 768:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_81 <= 3'h1) & (commit_state_is_abort_0 & _is_trap_is_interrupt_T_2 & _T_38)) begin
          $fatal; // @[Commit.scala 768:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_38 & ~(~(csrExe_mdl_io_deq_0_ready & _T_23))) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Commit.scala:803 assert( ~(csrExe(i).ready & ~csrExe(i).valid) )\n"); // @[Commit.scala 803:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(csrExe_mdl_io_deq_0_ready & _T_23)) & _T_38) begin
          $fatal; // @[Commit.scala 803:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_38 & ~(~(fcsrExe_mdl_io_deq_0_ready & _T_25))) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Commit.scala:814 assert( ~(fcsrExe(i).ready & ~fcsrExe(i).valid) )\n"); // @[Commit.scala 814:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(fcsrExe_mdl_io_deq_0_ready & _T_25)) & _T_38) begin
          $fatal; // @[Commit.scala 814:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  csrfiles_priv_lvl = _RAND_0[1:0];
  _RAND_1 = {1{`RANDOM}};
  csrfiles_DMode = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  csrfiles_fcsr_frm = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  csrfiles_fcsr_fflags = _RAND_3[4:0];
  _RAND_4 = {2{`RANDOM}};
  csrfiles_time = _RAND_4[63:0];
  _RAND_5 = {2{`RANDOM}};
  csrfiles_stvec_base = _RAND_5[61:0];
  _RAND_6 = {1{`RANDOM}};
  csrfiles_scounteren_hpm = _RAND_6[31:0];
  _RAND_7 = {2{`RANDOM}};
  csrfiles_sscratch = _RAND_7[63:0];
  _RAND_8 = {2{`RANDOM}};
  csrfiles_sepc = _RAND_8[63:0];
  _RAND_9 = {1{`RANDOM}};
  csrfiles_scause_interrupt = _RAND_9[0:0];
  _RAND_10 = {2{`RANDOM}};
  csrfiles_scause_exception_code = _RAND_10[62:0];
  _RAND_11 = {2{`RANDOM}};
  csrfiles_stval = _RAND_11[63:0];
  _RAND_12 = {1{`RANDOM}};
  csrfiles_satp_mode = _RAND_12[3:0];
  _RAND_13 = {1{`RANDOM}};
  csrfiles_satp_asid = _RAND_13[15:0];
  _RAND_14 = {2{`RANDOM}};
  csrfiles_satp_ppn = _RAND_14[43:0];
  _RAND_15 = {2{`RANDOM}};
  csrfiles_marchid = _RAND_15[63:0];
  _RAND_16 = {1{`RANDOM}};
  csrfiles_mstatus_sd = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  csrfiles_mstatus_tsr = _RAND_17[0:0];
  _RAND_18 = {1{`RANDOM}};
  csrfiles_mstatus_tw = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  csrfiles_mstatus_tvm = _RAND_19[0:0];
  _RAND_20 = {1{`RANDOM}};
  csrfiles_mstatus_mxr = _RAND_20[0:0];
  _RAND_21 = {1{`RANDOM}};
  csrfiles_mstatus_sum = _RAND_21[0:0];
  _RAND_22 = {1{`RANDOM}};
  csrfiles_mstatus_mprv = _RAND_22[0:0];
  _RAND_23 = {1{`RANDOM}};
  csrfiles_mstatus_fs = _RAND_23[1:0];
  _RAND_24 = {1{`RANDOM}};
  csrfiles_mstatus_mpp = _RAND_24[1:0];
  _RAND_25 = {1{`RANDOM}};
  csrfiles_mstatus_spp = _RAND_25[0:0];
  _RAND_26 = {1{`RANDOM}};
  csrfiles_mstatus_mpie = _RAND_26[0:0];
  _RAND_27 = {1{`RANDOM}};
  csrfiles_mstatus_spie = _RAND_27[0:0];
  _RAND_28 = {1{`RANDOM}};
  csrfiles_mstatus_mie = _RAND_28[0:0];
  _RAND_29 = {1{`RANDOM}};
  csrfiles_mstatus_sie = _RAND_29[0:0];
  _RAND_30 = {2{`RANDOM}};
  csrfiles_misa = _RAND_30[63:0];
  _RAND_31 = {2{`RANDOM}};
  csrfiles_medeleg = _RAND_31[63:0];
  _RAND_32 = {2{`RANDOM}};
  csrfiles_mideleg = _RAND_32[63:0];
  _RAND_33 = {1{`RANDOM}};
  csrfiles_mie_mei = _RAND_33[0:0];
  _RAND_34 = {1{`RANDOM}};
  csrfiles_mie_sei = _RAND_34[0:0];
  _RAND_35 = {1{`RANDOM}};
  csrfiles_mie_mti = _RAND_35[0:0];
  _RAND_36 = {1{`RANDOM}};
  csrfiles_mie_sti = _RAND_36[0:0];
  _RAND_37 = {1{`RANDOM}};
  csrfiles_mie_msi = _RAND_37[0:0];
  _RAND_38 = {1{`RANDOM}};
  csrfiles_mie_ssi = _RAND_38[0:0];
  _RAND_39 = {2{`RANDOM}};
  csrfiles_mtvec_base = _RAND_39[61:0];
  _RAND_40 = {1{`RANDOM}};
  csrfiles_mcounteren_hpm = _RAND_40[31:0];
  _RAND_41 = {2{`RANDOM}};
  csrfiles_mscratch = _RAND_41[63:0];
  _RAND_42 = {2{`RANDOM}};
  csrfiles_mepc = _RAND_42[63:0];
  _RAND_43 = {1{`RANDOM}};
  csrfiles_mcause_interrupt = _RAND_43[0:0];
  _RAND_44 = {2{`RANDOM}};
  csrfiles_mcause_exception_code = _RAND_44[62:0];
  _RAND_45 = {2{`RANDOM}};
  csrfiles_mtval = _RAND_45[63:0];
  _RAND_46 = {1{`RANDOM}};
  csrfiles_mip_mei = _RAND_46[0:0];
  _RAND_47 = {1{`RANDOM}};
  csrfiles_mip_sei = _RAND_47[0:0];
  _RAND_48 = {1{`RANDOM}};
  csrfiles_mip_mti = _RAND_48[0:0];
  _RAND_49 = {1{`RANDOM}};
  csrfiles_mip_sti = _RAND_49[0:0];
  _RAND_50 = {1{`RANDOM}};
  csrfiles_mip_msi = _RAND_50[0:0];
  _RAND_51 = {1{`RANDOM}};
  csrfiles_mip_ssi = _RAND_51[0:0];
  _RAND_52 = {2{`RANDOM}};
  csrfiles_mtinst = _RAND_52[63:0];
  _RAND_53 = {2{`RANDOM}};
  csrfiles_mtval2 = _RAND_53[63:0];
  _RAND_54 = {2{`RANDOM}};
  csrfiles_mcycle = _RAND_54[63:0];
  _RAND_55 = {2{`RANDOM}};
  csrfiles_minstret = _RAND_55[63:0];
  _RAND_56 = {2{`RANDOM}};
  csrfiles_tselect = _RAND_56[63:0];
  _RAND_57 = {2{`RANDOM}};
  csrfiles_tdata1 = _RAND_57[63:0];
  _RAND_58 = {2{`RANDOM}};
  csrfiles_tdata2 = _RAND_58[63:0];
  _RAND_59 = {2{`RANDOM}};
  csrfiles_tdata3 = _RAND_59[63:0];
  _RAND_60 = {1{`RANDOM}};
  csrfiles_dcsr_ebreakm = _RAND_60[0:0];
  _RAND_61 = {1{`RANDOM}};
  csrfiles_dcsr_ebreaks = _RAND_61[0:0];
  _RAND_62 = {1{`RANDOM}};
  csrfiles_dcsr_ebreaku = _RAND_62[0:0];
  _RAND_63 = {1{`RANDOM}};
  csrfiles_dcsr_cause = _RAND_63[2:0];
  _RAND_64 = {1{`RANDOM}};
  csrfiles_dcsr_step = _RAND_64[0:0];
  _RAND_65 = {1{`RANDOM}};
  csrfiles_dcsr_prv = _RAND_65[1:0];
  _RAND_66 = {2{`RANDOM}};
  csrfiles_dpc = _RAND_66[63:0];
  _RAND_67 = {2{`RANDOM}};
  csrfiles_dscratch0 = _RAND_67[63:0];
  _RAND_68 = {2{`RANDOM}};
  csrfiles_dscratch1 = _RAND_68[63:0];
  _RAND_69 = {2{`RANDOM}};
  csrfiles_dscratch2 = _RAND_69[63:0];
  _RAND_70 = {1{`RANDOM}};
  is_single_step = _RAND_70[0:0];
  _RAND_71 = {1{`RANDOM}};
  emu_reset = _RAND_71[0:0];
  _RAND_72 = {1{`RANDOM}};
  rtc_0 = _RAND_72[0:0];
  _RAND_73 = {1{`RANDOM}};
  rtc_1 = _RAND_73[0:0];
  _RAND_74 = {1{`RANDOM}};
  rtc_2 = _RAND_74[0:0];
  _RAND_75 = {1{`RANDOM}};
  rtc_3 = _RAND_75[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module MaxPeriodFibonacciLFSR_2(
  input   clock,
  input   reset,
  output  io_out_0,
  output  io_out_1
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
`endif // RANDOMIZE_REG_INIT
  reg  state_0; // @[PRNG.scala 55:49]
  reg  state_1; // @[PRNG.scala 55:49]
  wire  _T = state_1 ^ state_0; // @[LFSR.scala 15:41]
  assign io_out_0 = state_0; // @[PRNG.scala 78:10]
  assign io_out_1 = state_1; // @[PRNG.scala 78:10]
  always @(posedge clock) begin
    state_0 <= reset | _T; // @[PRNG.scala 55:{49,49}]
    if (reset) begin // @[PRNG.scala 55:49]
      state_1 <= 1'h0; // @[PRNG.scala 55:49]
    end else begin
      state_1 <= state_0;
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  state_0 = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  state_1 = _RAND_1[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLB(
  input         clock,
  input         reset,
  input         io_req_valid,
  input  [63:0] io_req_bits_vaddr,
  output [63:0] io_pte_o_value,
  output        io_pte_o_is_giga_page,
  output        io_pte_o_is_mega_page,
  output        io_is_hit,
  input  [15:0] io_asid_i,
  input         io_tlb_renew_valid,
  input  [63:0] io_tlb_renew_bits_value,
  input         io_tlb_renew_bits_is_giga_page,
  input         io_tlb_renew_bits_is_mega_page,
  input  [15:0] io_tlb_renew_bits_asid,
  input  [8:0]  io_tlb_renew_bits_vpn_0,
  input  [8:0]  io_tlb_renew_bits_vpn_1,
  input  [8:0]  io_tlb_renew_bits_vpn_2,
  input         io_sfence_vma
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [63:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [63:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
`endif // RANDOMIZE_REG_INIT
  wire  random_idx_prng_clock; // @[PRNG.scala 91:22]
  wire  random_idx_prng_reset; // @[PRNG.scala 91:22]
  wire  random_idx_prng_io_out_0; // @[PRNG.scala 91:22]
  wire  random_idx_prng_io_out_1; // @[PRNG.scala 91:22]
  wire  random_idx_prng_1_clock; // @[PRNG.scala 91:22]
  wire  random_idx_prng_1_reset; // @[PRNG.scala 91:22]
  wire  random_idx_prng_1_io_out_0; // @[PRNG.scala 91:22]
  wire  random_idx_prng_1_io_out_1; // @[PRNG.scala 91:22]
  wire  random_idx_prng_2_clock; // @[PRNG.scala 91:22]
  wire  random_idx_prng_2_reset; // @[PRNG.scala 91:22]
  wire  random_idx_prng_2_io_out_0; // @[PRNG.scala 91:22]
  wire  random_idx_prng_2_io_out_1; // @[PRNG.scala 91:22]
  wire  random_idx_prng_3_clock; // @[PRNG.scala 91:22]
  wire  random_idx_prng_3_reset; // @[PRNG.scala 91:22]
  wire  random_idx_prng_3_io_out_0; // @[PRNG.scala 91:22]
  wire  random_idx_prng_3_io_out_1; // @[PRNG.scala 91:22]
  reg  tag_0_is_valid; // @[TLB.scala 59:20]
  reg [15:0] tag_0_asid; // @[TLB.scala 59:20]
  reg [8:0] tag_0_vpn_0; // @[TLB.scala 59:20]
  reg [8:0] tag_0_vpn_1; // @[TLB.scala 59:20]
  reg [8:0] tag_0_vpn_2; // @[TLB.scala 59:20]
  reg  tag_1_is_valid; // @[TLB.scala 59:20]
  reg [15:0] tag_1_asid; // @[TLB.scala 59:20]
  reg [8:0] tag_1_vpn_0; // @[TLB.scala 59:20]
  reg [8:0] tag_1_vpn_1; // @[TLB.scala 59:20]
  reg [8:0] tag_1_vpn_2; // @[TLB.scala 59:20]
  reg [63:0] pte_0_value; // @[TLB.scala 62:20]
  reg  pte_0_is_giga_page; // @[TLB.scala 62:20]
  reg  pte_0_is_mega_page; // @[TLB.scala 62:20]
  reg [63:0] pte_1_value; // @[TLB.scala 62:20]
  reg  pte_1_is_giga_page; // @[TLB.scala 62:20]
  reg  pte_1_is_mega_page; // @[TLB.scala 62:20]
  wire  is_runout = tag_0_is_valid & tag_1_is_valid; // @[TLB.scala 85:31]
  wire [1:0] random_idx = {random_idx_prng_io_out_1,random_idx_prng_io_out_0}; // @[PRNG.scala 95:17]
  wire  empty_idx = ~tag_0_is_valid ? 1'h0 : 1'h1; // @[TLB.scala 88:36]
  wire [1:0] _T = is_runout ? random_idx : {{1'd0}, empty_idx}; // @[TLB.scala 90:15]
  wire  _GEN_0 = ~_T[0] | tag_0_is_valid; // @[TLB.scala 59:20 68:{34,34}]
  wire  _GEN_1 = _T[0] | tag_1_is_valid; // @[TLB.scala 59:20 68:{34,34}]
  wire [1:0] random_idx_1 = {random_idx_prng_1_io_out_1,random_idx_prng_1_io_out_0}; // @[PRNG.scala 95:17]
  wire [1:0] _T_2 = is_runout ? random_idx_1 : {{1'd0}, empty_idx}; // @[TLB.scala 90:15]
  wire [1:0] random_idx_2 = {random_idx_prng_2_io_out_1,random_idx_prng_2_io_out_0}; // @[PRNG.scala 95:17]
  wire [1:0] _T_4 = is_runout ? random_idx_2 : {{1'd0}, empty_idx}; // @[TLB.scala 90:15]
  wire [1:0] random_idx_3 = {random_idx_prng_3_io_out_1,random_idx_prng_3_io_out_0}; // @[PRNG.scala 95:17]
  wire [1:0] _T_6 = is_runout ? random_idx_3 : {{1'd0}, empty_idx}; // @[TLB.scala 90:15]
  wire  tlb_hit_lvl2 = tag_0_is_valid & io_asid_i == tag_0_asid & io_req_bits_vaddr[38:30] == tag_0_vpn_2; // @[TLB.scala 102:62]
  wire  tlb_hit_lvl1 = io_req_bits_vaddr[29:21] == tag_0_vpn_1; // @[TLB.scala 103:43]
  wire  tlb_hit_lvl0 = io_req_bits_vaddr[20:12] == tag_0_vpn_0; // @[TLB.scala 104:43]
  wire  tlb_hit_0 = tlb_hit_lvl2 & (pte_0_is_giga_page | tlb_hit_lvl1 & (pte_0_is_mega_page | tlb_hit_lvl0)); // @[TLB.scala 106:12]
  wire  tlb_hit_lvl2_1 = tag_1_is_valid & io_asid_i == tag_1_asid & io_req_bits_vaddr[38:30] == tag_1_vpn_2; // @[TLB.scala 102:62]
  wire  tlb_hit_lvl1_1 = io_req_bits_vaddr[29:21] == tag_1_vpn_1; // @[TLB.scala 103:43]
  wire  tlb_hit_lvl0_1 = io_req_bits_vaddr[20:12] == tag_1_vpn_0; // @[TLB.scala 104:43]
  wire  tlb_hit_1 = tlb_hit_lvl2_1 & (pte_1_is_giga_page | tlb_hit_lvl1_1 & (pte_1_is_mega_page | tlb_hit_lvl0_1)); // @[TLB.scala 106:12]
  wire [1:0] _T_8 = {tlb_hit_1,tlb_hit_0}; // @[TLB.scala 110:29]
  wire [1:0] _T_11 = _T_8[0] + _T_8[1]; // @[Bitwise.scala 51:90]
  wire [63:0] _io_pte_o_T_9 = tlb_hit_0 ? pte_0_value : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _io_pte_o_T_10 = tlb_hit_1 ? pte_1_value : 64'h0; // @[Mux.scala 27:73]
  MaxPeriodFibonacciLFSR_2 random_idx_prng ( // @[PRNG.scala 91:22]
    .clock(random_idx_prng_clock),
    .reset(random_idx_prng_reset),
    .io_out_0(random_idx_prng_io_out_0),
    .io_out_1(random_idx_prng_io_out_1)
  );
  MaxPeriodFibonacciLFSR_2 random_idx_prng_1 ( // @[PRNG.scala 91:22]
    .clock(random_idx_prng_1_clock),
    .reset(random_idx_prng_1_reset),
    .io_out_0(random_idx_prng_1_io_out_0),
    .io_out_1(random_idx_prng_1_io_out_1)
  );
  MaxPeriodFibonacciLFSR_2 random_idx_prng_2 ( // @[PRNG.scala 91:22]
    .clock(random_idx_prng_2_clock),
    .reset(random_idx_prng_2_reset),
    .io_out_0(random_idx_prng_2_io_out_0),
    .io_out_1(random_idx_prng_2_io_out_1)
  );
  MaxPeriodFibonacciLFSR_2 random_idx_prng_3 ( // @[PRNG.scala 91:22]
    .clock(random_idx_prng_3_clock),
    .reset(random_idx_prng_3_reset),
    .io_out_0(random_idx_prng_3_io_out_0),
    .io_out_1(random_idx_prng_3_io_out_1)
  );
  assign io_pte_o_value = _io_pte_o_T_9 | _io_pte_o_T_10; // @[Mux.scala 27:73]
  assign io_pte_o_is_giga_page = tlb_hit_0 & pte_0_is_giga_page | tlb_hit_1 & pte_1_is_giga_page; // @[Mux.scala 27:73]
  assign io_pte_o_is_mega_page = tlb_hit_0 & pte_0_is_mega_page | tlb_hit_1 & pte_1_is_mega_page; // @[Mux.scala 27:73]
  assign io_is_hit = (tlb_hit_0 | tlb_hit_1) & io_req_valid; // @[TLB.scala 113:41]
  assign random_idx_prng_clock = clock;
  assign random_idx_prng_reset = reset;
  assign random_idx_prng_1_clock = clock;
  assign random_idx_prng_1_reset = reset;
  assign random_idx_prng_2_clock = clock;
  assign random_idx_prng_2_reset = reset;
  assign random_idx_prng_3_clock = clock;
  assign random_idx_prng_3_reset = reset;
  always @(posedge clock) begin
    if (reset) begin // @[TLB.scala 59:20]
      tag_0_is_valid <= 1'h0; // @[TLB.scala 59:20]
    end else if (io_sfence_vma) begin // @[TLB.scala 64:25]
      tag_0_is_valid <= 1'h0; // @[TLB.scala 65:47]
    end else if (io_tlb_renew_valid) begin // @[TLB.scala 67:33]
      tag_0_is_valid <= _GEN_0;
    end
    if (reset) begin // @[TLB.scala 59:20]
      tag_0_asid <= 16'h0; // @[TLB.scala 59:20]
    end else if (io_sfence_vma) begin // @[TLB.scala 64:25]
      tag_0_asid <= 16'h0; // @[TLB.scala 65:47]
    end else if (io_tlb_renew_valid) begin // @[TLB.scala 67:33]
      if (~_T_2[0]) begin // @[TLB.scala 69:32]
        tag_0_asid <= io_tlb_renew_bits_asid; // @[TLB.scala 69:32]
      end
    end
    if (reset) begin // @[TLB.scala 59:20]
      tag_0_vpn_0 <= 9'h0; // @[TLB.scala 59:20]
    end else if (io_sfence_vma) begin // @[TLB.scala 64:25]
      tag_0_vpn_0 <= 9'h0; // @[TLB.scala 65:47]
    end else if (io_tlb_renew_valid) begin // @[TLB.scala 67:33]
      if (~_T_4[0]) begin // @[TLB.scala 70:32]
        tag_0_vpn_0 <= io_tlb_renew_bits_vpn_0; // @[TLB.scala 70:32]
      end
    end
    if (reset) begin // @[TLB.scala 59:20]
      tag_0_vpn_1 <= 9'h0; // @[TLB.scala 59:20]
    end else if (io_sfence_vma) begin // @[TLB.scala 64:25]
      tag_0_vpn_1 <= 9'h0; // @[TLB.scala 65:47]
    end else if (io_tlb_renew_valid) begin // @[TLB.scala 67:33]
      if (~_T_4[0]) begin // @[TLB.scala 70:32]
        tag_0_vpn_1 <= io_tlb_renew_bits_vpn_1; // @[TLB.scala 70:32]
      end
    end
    if (reset) begin // @[TLB.scala 59:20]
      tag_0_vpn_2 <= 9'h0; // @[TLB.scala 59:20]
    end else if (io_sfence_vma) begin // @[TLB.scala 64:25]
      tag_0_vpn_2 <= 9'h0; // @[TLB.scala 65:47]
    end else if (io_tlb_renew_valid) begin // @[TLB.scala 67:33]
      if (~_T_4[0]) begin // @[TLB.scala 70:32]
        tag_0_vpn_2 <= io_tlb_renew_bits_vpn_2; // @[TLB.scala 70:32]
      end
    end
    if (reset) begin // @[TLB.scala 59:20]
      tag_1_is_valid <= 1'h0; // @[TLB.scala 59:20]
    end else if (io_sfence_vma) begin // @[TLB.scala 64:25]
      tag_1_is_valid <= 1'h0; // @[TLB.scala 65:47]
    end else if (io_tlb_renew_valid) begin // @[TLB.scala 67:33]
      tag_1_is_valid <= _GEN_1;
    end
    if (reset) begin // @[TLB.scala 59:20]
      tag_1_asid <= 16'h0; // @[TLB.scala 59:20]
    end else if (io_sfence_vma) begin // @[TLB.scala 64:25]
      tag_1_asid <= 16'h0; // @[TLB.scala 65:47]
    end else if (io_tlb_renew_valid) begin // @[TLB.scala 67:33]
      if (_T_2[0]) begin // @[TLB.scala 69:32]
        tag_1_asid <= io_tlb_renew_bits_asid; // @[TLB.scala 69:32]
      end
    end
    if (reset) begin // @[TLB.scala 59:20]
      tag_1_vpn_0 <= 9'h0; // @[TLB.scala 59:20]
    end else if (io_sfence_vma) begin // @[TLB.scala 64:25]
      tag_1_vpn_0 <= 9'h0; // @[TLB.scala 65:47]
    end else if (io_tlb_renew_valid) begin // @[TLB.scala 67:33]
      if (_T_4[0]) begin // @[TLB.scala 70:32]
        tag_1_vpn_0 <= io_tlb_renew_bits_vpn_0; // @[TLB.scala 70:32]
      end
    end
    if (reset) begin // @[TLB.scala 59:20]
      tag_1_vpn_1 <= 9'h0; // @[TLB.scala 59:20]
    end else if (io_sfence_vma) begin // @[TLB.scala 64:25]
      tag_1_vpn_1 <= 9'h0; // @[TLB.scala 65:47]
    end else if (io_tlb_renew_valid) begin // @[TLB.scala 67:33]
      if (_T_4[0]) begin // @[TLB.scala 70:32]
        tag_1_vpn_1 <= io_tlb_renew_bits_vpn_1; // @[TLB.scala 70:32]
      end
    end
    if (reset) begin // @[TLB.scala 59:20]
      tag_1_vpn_2 <= 9'h0; // @[TLB.scala 59:20]
    end else if (io_sfence_vma) begin // @[TLB.scala 64:25]
      tag_1_vpn_2 <= 9'h0; // @[TLB.scala 65:47]
    end else if (io_tlb_renew_valid) begin // @[TLB.scala 67:33]
      if (_T_4[0]) begin // @[TLB.scala 70:32]
        tag_1_vpn_2 <= io_tlb_renew_bits_vpn_2; // @[TLB.scala 70:32]
      end
    end
    if (reset) begin // @[TLB.scala 62:20]
      pte_0_value <= 64'h0; // @[TLB.scala 62:20]
    end else if (!(io_sfence_vma)) begin // @[TLB.scala 64:25]
      if (io_tlb_renew_valid) begin // @[TLB.scala 67:33]
        if (~_T_6[0]) begin // @[TLB.scala 71:32]
          pte_0_value <= io_tlb_renew_bits_value; // @[TLB.scala 71:32]
        end
      end
    end
    if (reset) begin // @[TLB.scala 62:20]
      pte_0_is_giga_page <= 1'h0; // @[TLB.scala 62:20]
    end else if (!(io_sfence_vma)) begin // @[TLB.scala 64:25]
      if (io_tlb_renew_valid) begin // @[TLB.scala 67:33]
        if (~_T_6[0]) begin // @[TLB.scala 71:32]
          pte_0_is_giga_page <= io_tlb_renew_bits_is_giga_page; // @[TLB.scala 71:32]
        end
      end
    end
    if (reset) begin // @[TLB.scala 62:20]
      pte_0_is_mega_page <= 1'h0; // @[TLB.scala 62:20]
    end else if (!(io_sfence_vma)) begin // @[TLB.scala 64:25]
      if (io_tlb_renew_valid) begin // @[TLB.scala 67:33]
        if (~_T_6[0]) begin // @[TLB.scala 71:32]
          pte_0_is_mega_page <= io_tlb_renew_bits_is_mega_page; // @[TLB.scala 71:32]
        end
      end
    end
    if (reset) begin // @[TLB.scala 62:20]
      pte_1_value <= 64'h0; // @[TLB.scala 62:20]
    end else if (!(io_sfence_vma)) begin // @[TLB.scala 64:25]
      if (io_tlb_renew_valid) begin // @[TLB.scala 67:33]
        if (_T_6[0]) begin // @[TLB.scala 71:32]
          pte_1_value <= io_tlb_renew_bits_value; // @[TLB.scala 71:32]
        end
      end
    end
    if (reset) begin // @[TLB.scala 62:20]
      pte_1_is_giga_page <= 1'h0; // @[TLB.scala 62:20]
    end else if (!(io_sfence_vma)) begin // @[TLB.scala 64:25]
      if (io_tlb_renew_valid) begin // @[TLB.scala 67:33]
        if (_T_6[0]) begin // @[TLB.scala 71:32]
          pte_1_is_giga_page <= io_tlb_renew_bits_is_giga_page; // @[TLB.scala 71:32]
        end
      end
    end
    if (reset) begin // @[TLB.scala 62:20]
      pte_1_is_mega_page <= 1'h0; // @[TLB.scala 62:20]
    end else if (!(io_sfence_vma)) begin // @[TLB.scala 64:25]
      if (io_tlb_renew_valid) begin // @[TLB.scala 67:33]
        if (_T_6[0]) begin // @[TLB.scala 71:32]
          pte_1_is_mega_page <= io_tlb_renew_bits_is_mega_page; // @[TLB.scala 71:32]
        end
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(_T_11 <= 2'h1)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Fail at tlb, more than 1 entry hit!\n    at TLB.scala:110 assert( PopCount( tlb_hit.asUInt ) <= 1.U, \"Assert Fail at tlb, more than 1 entry hit!\"  )\n"
            ); // @[TLB.scala 110:9]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_11 <= 2'h1) & ~reset) begin
          $fatal; // @[TLB.scala 110:9]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  tag_0_is_valid = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  tag_0_asid = _RAND_1[15:0];
  _RAND_2 = {1{`RANDOM}};
  tag_0_vpn_0 = _RAND_2[8:0];
  _RAND_3 = {1{`RANDOM}};
  tag_0_vpn_1 = _RAND_3[8:0];
  _RAND_4 = {1{`RANDOM}};
  tag_0_vpn_2 = _RAND_4[8:0];
  _RAND_5 = {1{`RANDOM}};
  tag_1_is_valid = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  tag_1_asid = _RAND_6[15:0];
  _RAND_7 = {1{`RANDOM}};
  tag_1_vpn_0 = _RAND_7[8:0];
  _RAND_8 = {1{`RANDOM}};
  tag_1_vpn_1 = _RAND_8[8:0];
  _RAND_9 = {1{`RANDOM}};
  tag_1_vpn_2 = _RAND_9[8:0];
  _RAND_10 = {2{`RANDOM}};
  pte_0_value = _RAND_10[63:0];
  _RAND_11 = {1{`RANDOM}};
  pte_0_is_giga_page = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  pte_0_is_mega_page = _RAND_12[0:0];
  _RAND_13 = {2{`RANDOM}};
  pte_1_value = _RAND_13[63:0];
  _RAND_14 = {1{`RANDOM}};
  pte_1_is_giga_page = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  pte_1_is_mega_page = _RAND_15[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module PTW(
  input         clock,
  input         reset,
  output        io_ptw_i_ready,
  input         io_ptw_i_valid,
  input  [63:0] io_ptw_i_bits_vaddr,
  input         io_ptw_o_ready,
  output        io_ptw_o_valid,
  output        io_ptw_o_bits_is_X,
  output [63:0] io_ptw_o_bits_renew_value,
  output        io_ptw_o_bits_renew_is_giga_page,
  output        io_ptw_o_bits_renew_is_mega_page,
  output [15:0] io_ptw_o_bits_renew_asid,
  output [8:0]  io_ptw_o_bits_renew_vpn_0,
  output [8:0]  io_ptw_o_bits_renew_vpn_1,
  output [8:0]  io_ptw_o_bits_renew_vpn_2,
  output        io_ptw_o_bits_is_ptw_fail,
  input  [63:0] io_cmm_mmu_satp,
  input         io_cmm_mmu_sfence_vma,
  input         io_ptw_get_ready,
  output        io_ptw_get_valid,
  output [31:0] io_ptw_get_bits_address,
  output        io_ptw_access_ready,
  input         io_ptw_access_valid,
  input  [2:0]  io_ptw_access_bits_opcode,
  input  [2:0]  io_ptw_access_bits_size,
  input  [63:0] io_ptw_access_bits_data
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [63:0] _RAND_4;
  reg [63:0] _RAND_5;
  reg [63:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [63:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
`endif // RANDOMIZE_REG_INIT
  reg [1:0] currState; // @[PTW.scala 87:26]
  reg  kill_trans; // @[PTW.scala 89:27]
  wire  _T = io_ptw_access_ready & io_ptw_access_valid; // @[Decoupled.scala 52:35]
  wire [10:0] _beats1_decode_T_1 = 11'hf << io_ptw_access_bits_size; // @[package.scala 234:77]
  wire [3:0] _beats1_decode_T_3 = ~_beats1_decode_T_1[3:0]; // @[package.scala 234:46]
  wire  beats1_decode = _beats1_decode_T_3[3]; // @[Edges.scala 219:59]
  wire  beats1_opdata = io_ptw_access_bits_opcode[0]; // @[Edges.scala 105:36]
  wire  beats1 = beats1_opdata & beats1_decode; // @[Edges.scala 220:14]
  reg  counter; // @[Edges.scala 228:27]
  wire  counter1 = counter - 1'h1; // @[Edges.scala 229:28]
  wire  first = ~counter; // @[Edges.scala 230:25]
  wire  last = counter | ~beats1; // @[Edges.scala 231:37]
  wire  is_trans_done = last & _T; // @[Edges.scala 232:22]
  reg [31:0] addr_qout; // @[PTW.scala 95:26]
  wire  _walkReq_T = currState == 2'h0; // @[PTW.scala 102:63]
  wire  _nextState_T = io_ptw_i_ready & io_ptw_i_valid; // @[Decoupled.scala 52:35]
  wire [1:0] _nextState_T_1 = _nextState_T ? 2'h1 : 2'h0; // @[PTW.scala 112:23]
  reg [63:0] ptw_access_data_lo_0; // @[PTW.scala 218:31]
  wire [127:0] ptw_access_data = {io_ptw_access_bits_data,ptw_access_data_lo_0}; // @[Cat.scala 33:92]
  wire [127:0] pte_value_data = is_trans_done ? ptw_access_data : 128'h0; // @[PTW.scala 226:27 227:12]
  wire [6:0] _pte_value_data_sel_T_1 = {addr_qout[3], 6'h0}; // @[PTW.scala 231:54]
  wire [127:0] _pte_value_data_sel_T_2 = pte_value_data >> _pte_value_data_sel_T_1; // @[PTW.scala 230:22]
  wire [63:0] pte_value_data_sel = _pte_value_data_sel_T_2[63:0]; // @[PTW.scala 224:24 230:14]
  reg [63:0] pte_value_value; // @[PTW.scala 234:24]
  wire [63:0] pte_value = is_trans_done ? pte_value_data_sel : pte_value_value; // @[PTW.scala 240:8]
  wire  is_ptw_end = pte_value[1] & pte_value[3]; // @[PTW.scala 164:22]
  wire  _is_ptw_fail_T_1 = currState == 2'h1; // @[PTW.scala 172:20]
  wire [8:0] is_ptw_fail_hetVecWire__0 = pte_value[18:10]; // @[MMU.scala 44:37]
  wire  _is_ptw_fail_T_5 = is_ptw_fail_hetVecWire__0 != 9'h0; // @[PTW.scala 172:57]
  wire [8:0] is_ptw_fail_hetVecWire_1_1 = pte_value[27:19]; // @[MMU.scala 44:51]
  wire  _is_ptw_fail_T_10 = is_ptw_fail_hetVecWire__0 != 9'h0 | is_ptw_fail_hetVecWire_1_1 != 9'h0; // @[PTW.scala 172:65]
  wire  _is_ptw_fail_T_11 = currState == 2'h2; // @[PTW.scala 173:20]
  wire  _is_ptw_fail_T_22 = _is_ptw_fail_T_1 & _is_ptw_fail_T_10 | _is_ptw_fail_T_11 & _is_ptw_fail_T_5; // @[Mux.scala 27:73]
  wire  _is_ptw_fail_T_16 = currState == 2'h3; // @[PTW.scala 174:20]
  wire  _is_ptw_fail_T_24 = is_ptw_end & _is_ptw_fail_T_22; // @[PTW.scala 169:18]
  wire  _is_ptw_fail_T_34 = ~pte_value[1] & pte_value[2]; // @[PTW.scala 179:26]
  wire  _is_ptw_fail_T_35 = ~pte_value[0] | _is_ptw_fail_T_34; // @[PTW.scala 178:27]
  wire  is_ptw_fail = _is_ptw_fail_T_24 | _is_ptw_fail_T_35; // @[PTW.scala 176:7]
  wire  _nextState_T_4 = is_ptw_end | is_ptw_fail | kill_trans; // @[PTW.scala 118:41]
  wire [1:0] _nextState_T_5 = is_ptw_end | is_ptw_fail | kill_trans ? 2'h0 : 2'h2; // @[PTW.scala 118:14]
  wire [1:0] _nextState_T_6 = is_trans_done ? _nextState_T_5 : 2'h1; // @[PTW.scala 116:12]
  wire [1:0] _nextState_T_10 = _nextState_T_4 ? 2'h0 : 2'h3; // @[PTW.scala 126:14]
  wire [1:0] _nextState_T_11 = is_trans_done ? _nextState_T_10 : 2'h2; // @[PTW.scala 124:12]
  wire [1:0] _nextState_T_16 = is_trans_done ? 2'h0 : 2'h3; // @[PTW.scala 132:12]
  wire [1:0] _GEN_6 = 2'h3 == currState ? _nextState_T_16 : 2'h0; // @[PTW.scala 110:23 131:17]
  wire [1:0] _GEN_7 = 2'h2 == currState ? _nextState_T_11 : _GEN_6; // @[PTW.scala 110:23 123:17]
  wire [1:0] _GEN_8 = 2'h1 == currState ? _nextState_T_6 : _GEN_7; // @[PTW.scala 110:23 115:17]
  wire [1:0] nextState = 2'h0 == currState ? _nextState_T_1 : _GEN_8; // @[PTW.scala 110:23 112:17]
  wire  _walkReq_T_2 = currState == 2'h0 & nextState != 2'h0; // @[PTW.scala 102:83]
  reg [63:0] walkReq_vaddr; // @[Reg.scala 19:16]
  reg [15:0] asidReq; // @[Reg.scala 19:16]
  reg  walkRspBits_is_X; // @[PTW.scala 104:28]
  reg [63:0] walkRspBits_renew_value; // @[PTW.scala 104:28]
  reg  walkRspBits_renew_is_giga_page; // @[PTW.scala 104:28]
  reg  walkRspBits_renew_is_mega_page; // @[PTW.scala 104:28]
  reg [15:0] walkRspBits_renew_asid; // @[PTW.scala 104:28]
  reg [8:0] walkRspBits_renew_vpn_0; // @[PTW.scala 104:28]
  reg [8:0] walkRspBits_renew_vpn_1; // @[PTW.scala 104:28]
  reg [8:0] walkRspBits_renew_vpn_2; // @[PTW.scala 104:28]
  reg  walkRspBits_is_ptw_fail; // @[PTW.scala 104:28]
  reg  walkRspValid; // @[PTW.scala 105:29]
  wire  _a_T = nextState == 2'h1; // @[PTW.scala 148:19]
  wire  _a_T_2 = nextState == 2'h2; // @[PTW.scala 149:19]
  wire [25:0] a_hetVecWire__2 = pte_value[53:28]; // @[MMU.scala 44:65]
  wire [43:0] _a_T_12 = {a_hetVecWire__2,is_ptw_fail_hetVecWire_1_1,is_ptw_fail_hetVecWire__0}; // @[Cat.scala 33:92]
  wire  _a_T_13 = nextState == 2'h3; // @[PTW.scala 150:19]
  wire [43:0] _a_T_24 = _a_T ? io_cmm_mmu_satp[43:0] : 44'h0; // @[Mux.scala 27:73]
  wire [43:0] _a_T_25 = _a_T_2 ? _a_T_12 : 44'h0; // @[Mux.scala 27:73]
  wire [43:0] _a_T_26 = _a_T_13 ? _a_T_12 : 44'h0; // @[Mux.scala 27:73]
  wire [43:0] _a_T_27 = _a_T_24 | _a_T_25; // @[Mux.scala 27:73]
  wire [43:0] a = _a_T_27 | _a_T_26; // @[Mux.scala 27:73]
  wire [11:0] _addr_dnxt_T_2 = {io_ptw_i_bits_vaddr[38:30],3'h0}; // @[Cat.scala 33:92]
  wire [11:0] _addr_dnxt_T_5 = {walkReq_vaddr[29:21],3'h0}; // @[Cat.scala 33:92]
  wire [11:0] _addr_dnxt_T_8 = {walkReq_vaddr[20:12],3'h0}; // @[Cat.scala 33:92]
  wire [11:0] _addr_dnxt_T_9 = _a_T ? _addr_dnxt_T_2 : 12'h0; // @[Mux.scala 27:73]
  wire [11:0] _addr_dnxt_T_10 = _a_T_2 ? _addr_dnxt_T_5 : 12'h0; // @[Mux.scala 27:73]
  wire [11:0] _addr_dnxt_T_11 = _a_T_13 ? _addr_dnxt_T_8 : 12'h0; // @[Mux.scala 27:73]
  wire [11:0] _addr_dnxt_T_12 = _addr_dnxt_T_9 | _addr_dnxt_T_10; // @[Mux.scala 27:73]
  wire [11:0] _addr_dnxt_T_13 = _addr_dnxt_T_12 | _addr_dnxt_T_11; // @[Mux.scala 27:73]
  wire [55:0] _addr_dnxt_T_14 = {a,_addr_dnxt_T_13}; // @[Cat.scala 33:92]
  wire  pte_is_mega_page = is_ptw_end & _is_ptw_fail_T_11; // @[PTW.scala 184:34]
  wire  pte_is_giga_page = is_ptw_end & _is_ptw_fail_T_1; // @[PTW.scala 185:34]
  wire  _T_8 = io_ptw_get_ready & io_ptw_get_valid; // @[Decoupled.scala 52:35]
  wire  _T_10 = currState != 2'h0; // @[PTW.scala 197:51]
  wire  _T_11 = nextState == 2'h0 & currState != 2'h0; // @[PTW.scala 197:39]
  wire  _T_12 = ~io_ptw_o_valid; // @[PTW.scala 210:28]
  wire  _T_16 = io_ptw_o_ready & io_ptw_o_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_12 = _T_16 ? 1'h0 : walkRspValid; // @[PTW.scala 211:32 212:18 105:29]
  wire  _GEN_14 = nextState == 2'h0 & currState != 2'h0 | walkRspBits_is_X; // @[PTW.scala 197:73 199:22 104:28]
  wire  _GEN_25 = nextState == 2'h0 & currState != 2'h0 | _GEN_12; // @[PTW.scala 197:73 208:18]
  reg  ptw_get_valid; // @[PTW.scala 342:30]
  reg  ptw_access_ready; // @[PTW.scala 343:33]
  reg  is_get_reqed; // @[PTW.scala 348:29]
  wire  _GEN_29 = nextState != currState ? 1'h0 : is_get_reqed; // @[PTW.scala 348:29 350:{40,55}]
  wire  _GEN_30 = _T_8 | _GEN_29; // @[PTW.scala 349:{27,42}]
  wire  _GEN_31 = _T_8 ? 1'h0 : ptw_get_valid; // @[PTW.scala 355:34 356:19 342:30]
  wire  _GEN_32 = (_is_ptw_fail_T_1 | _is_ptw_fail_T_11 | _is_ptw_fail_T_16) & ~io_ptw_get_valid & ~is_get_reqed |
    _GEN_31; // @[PTW.scala 353:153 354:19]
  wire  _GEN_33 = _T ? 1'h0 : ptw_access_ready; // @[PTW.scala 361:37 362:22 343:33]
  wire  _GEN_34 = io_ptw_access_valid & ~io_ptw_access_ready | _GEN_33; // @[PTW.scala 359:53 360:22]
  wire [35:0] _GEN_2 = {{4'd0}, addr_qout}; // @[PTW.scala 365:74]
  wire [35:0] _io_ptw_get_bits_T_1 = _GEN_2 & 36'hffffffff0; // @[PTW.scala 365:74]
  wire  _GEN_35 = _walkReq_T ? 1'h0 : kill_trans; // @[PTW.scala 384:48 385:16 89:27]
  wire  _GEN_36 = io_cmm_mmu_sfence_vma & _T_10 | _GEN_35; // @[PTW.scala 382:65 383:16]
  wire  _io_ptw_o_valid_T = ~kill_trans; // @[PTW.scala 390:36]
  wire [31:0] addr_dnxt = _addr_dnxt_T_14[31:0]; // @[PTW.scala 153:13 94:23]
  assign io_ptw_i_ready = _walkReq_T & _T_12 & ~io_cmm_mmu_sfence_vma & _io_ptw_o_valid_T; // @[PTW.scala 393:94]
  assign io_ptw_o_valid = walkRspValid & ~kill_trans; // @[PTW.scala 390:34]
  assign io_ptw_o_bits_is_X = walkRspBits_is_X; // @[PTW.scala 389:18]
  assign io_ptw_o_bits_renew_value = walkRspBits_renew_value; // @[PTW.scala 389:18]
  assign io_ptw_o_bits_renew_is_giga_page = walkRspBits_renew_is_giga_page; // @[PTW.scala 389:18]
  assign io_ptw_o_bits_renew_is_mega_page = walkRspBits_renew_is_mega_page; // @[PTW.scala 389:18]
  assign io_ptw_o_bits_renew_asid = walkRspBits_renew_asid; // @[PTW.scala 389:18]
  assign io_ptw_o_bits_renew_vpn_0 = walkRspBits_renew_vpn_0; // @[PTW.scala 389:18]
  assign io_ptw_o_bits_renew_vpn_1 = walkRspBits_renew_vpn_1; // @[PTW.scala 389:18]
  assign io_ptw_o_bits_renew_vpn_2 = walkRspBits_renew_vpn_2; // @[PTW.scala 389:18]
  assign io_ptw_o_bits_is_ptw_fail = walkRspBits_is_ptw_fail; // @[PTW.scala 389:18]
  assign io_ptw_get_valid = ptw_get_valid; // @[PTW.scala 345:20]
  assign io_ptw_get_bits_address = _io_ptw_get_bits_T_1[31:0]; // @[Edges.scala 447:17 452:15]
  assign io_ptw_access_ready = ptw_access_ready; // @[PTW.scala 346:23]
  always @(posedge clock) begin
    if (reset) begin // @[PTW.scala 87:26]
      currState <= 2'h0; // @[PTW.scala 87:26]
    end else if (2'h0 == currState) begin // @[PTW.scala 110:23]
      if (_nextState_T) begin // @[PTW.scala 112:23]
        currState <= 2'h1;
      end else begin
        currState <= 2'h0;
      end
    end else if (2'h1 == currState) begin // @[PTW.scala 110:23]
      if (is_trans_done) begin // @[PTW.scala 116:12]
        currState <= _nextState_T_5;
      end else begin
        currState <= 2'h1;
      end
    end else if (2'h2 == currState) begin // @[PTW.scala 110:23]
      currState <= _nextState_T_11; // @[PTW.scala 123:17]
    end else begin
      currState <= _GEN_6;
    end
    if (reset) begin // @[PTW.scala 89:27]
      kill_trans <= 1'h0; // @[PTW.scala 89:27]
    end else begin
      kill_trans <= _GEN_36;
    end
    if (reset) begin // @[Edges.scala 228:27]
      counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_T) begin // @[Edges.scala 234:17]
      if (first) begin // @[Edges.scala 235:21]
        counter <= beats1;
      end else begin
        counter <= counter1;
      end
    end
    if (reset) begin // @[PTW.scala 95:26]
      addr_qout <= 32'h0; // @[PTW.scala 95:26]
    end else begin
      addr_qout <= addr_dnxt; // @[PTW.scala 95:26]
    end
    if (_T & ~is_trans_done) begin // @[PTW.scala 243:46]
      ptw_access_data_lo_0 <= io_ptw_access_bits_data; // @[PTW.scala 244:34]
    end
    if (reset) begin // @[PTW.scala 234:24]
      pte_value_value <= 64'h0; // @[PTW.scala 234:24]
    end else if (is_trans_done) begin // @[PTW.scala 240:8]
      pte_value_value <= pte_value_data_sel;
    end
    if (_walkReq_T_2) begin // @[Reg.scala 20:18]
      walkReq_vaddr <= io_ptw_i_bits_vaddr; // @[Reg.scala 20:22]
    end
    if (_walkReq_T_2) begin // @[Reg.scala 20:18]
      asidReq <= io_cmm_mmu_satp[59:44]; // @[Reg.scala 20:22]
    end
    if (reset) begin // @[PTW.scala 104:28]
      walkRspBits_is_X <= 1'h0; // @[PTW.scala 104:28]
    end else begin
      walkRspBits_is_X <= _GEN_14;
    end
    if (reset) begin // @[PTW.scala 104:28]
      walkRspBits_renew_value <= 64'h0; // @[PTW.scala 104:28]
    end else if (nextState == 2'h0 & currState != 2'h0) begin // @[PTW.scala 197:73]
      if (is_trans_done) begin // @[PTW.scala 240:8]
        walkRspBits_renew_value <= pte_value_data_sel;
      end else begin
        walkRspBits_renew_value <= pte_value_value;
      end
    end
    if (reset) begin // @[PTW.scala 104:28]
      walkRspBits_renew_is_giga_page <= 1'h0; // @[PTW.scala 104:28]
    end else if (nextState == 2'h0 & currState != 2'h0) begin // @[PTW.scala 197:73]
      walkRspBits_renew_is_giga_page <= pte_is_giga_page; // @[PTW.scala 202:58]
    end
    if (reset) begin // @[PTW.scala 104:28]
      walkRspBits_renew_is_mega_page <= 1'h0; // @[PTW.scala 104:28]
    end else if (nextState == 2'h0 & currState != 2'h0) begin // @[PTW.scala 197:73]
      walkRspBits_renew_is_mega_page <= pte_is_mega_page; // @[PTW.scala 202:58]
    end
    if (reset) begin // @[PTW.scala 104:28]
      walkRspBits_renew_asid <= 16'h0; // @[PTW.scala 104:28]
    end else if (nextState == 2'h0 & currState != 2'h0) begin // @[PTW.scala 197:73]
      walkRspBits_renew_asid <= asidReq; // @[PTW.scala 206:30]
    end
    if (reset) begin // @[PTW.scala 104:28]
      walkRspBits_renew_vpn_0 <= 9'h0; // @[PTW.scala 104:28]
    end else if (nextState == 2'h0 & currState != 2'h0) begin // @[PTW.scala 197:73]
      walkRspBits_renew_vpn_0 <= walkReq_vaddr[20:12]; // @[PTW.scala 203:30]
    end
    if (reset) begin // @[PTW.scala 104:28]
      walkRspBits_renew_vpn_1 <= 9'h0; // @[PTW.scala 104:28]
    end else if (nextState == 2'h0 & currState != 2'h0) begin // @[PTW.scala 197:73]
      walkRspBits_renew_vpn_1 <= walkReq_vaddr[29:21]; // @[PTW.scala 204:30]
    end
    if (reset) begin // @[PTW.scala 104:28]
      walkRspBits_renew_vpn_2 <= 9'h0; // @[PTW.scala 104:28]
    end else if (nextState == 2'h0 & currState != 2'h0) begin // @[PTW.scala 197:73]
      walkRspBits_renew_vpn_2 <= walkReq_vaddr[38:30]; // @[PTW.scala 205:30]
    end
    if (reset) begin // @[PTW.scala 104:28]
      walkRspBits_is_ptw_fail <= 1'h0; // @[PTW.scala 104:28]
    end else if (nextState == 2'h0 & currState != 2'h0) begin // @[PTW.scala 197:73]
      walkRspBits_is_ptw_fail <= is_ptw_fail; // @[PTW.scala 198:29]
    end
    if (reset) begin // @[PTW.scala 105:29]
      walkRspValid <= 1'h0; // @[PTW.scala 105:29]
    end else begin
      walkRspValid <= _GEN_25;
    end
    if (reset) begin // @[PTW.scala 342:30]
      ptw_get_valid <= 1'h0; // @[PTW.scala 342:30]
    end else begin
      ptw_get_valid <= _GEN_32;
    end
    if (reset) begin // @[PTW.scala 343:33]
      ptw_access_ready <= 1'h0; // @[PTW.scala 343:33]
    end else begin
      ptw_access_ready <= _GEN_34;
    end
    if (reset) begin // @[PTW.scala 348:29]
      is_get_reqed <= 1'h0; // @[PTW.scala 348:29]
    end else begin
      is_get_reqed <= _GEN_30;
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_11 & ~reset & ~(~io_ptw_o_valid)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at PTW.scala:210 assert( io.ptw_o.valid === false.B )\n"); // @[PTW.scala 210:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~io_ptw_o_valid) & (_T_11 & ~reset)) begin
          $fatal; // @[PTW.scala 210:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  currState = _RAND_0[1:0];
  _RAND_1 = {1{`RANDOM}};
  kill_trans = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  counter = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  addr_qout = _RAND_3[31:0];
  _RAND_4 = {2{`RANDOM}};
  ptw_access_data_lo_0 = _RAND_4[63:0];
  _RAND_5 = {2{`RANDOM}};
  pte_value_value = _RAND_5[63:0];
  _RAND_6 = {2{`RANDOM}};
  walkReq_vaddr = _RAND_6[63:0];
  _RAND_7 = {1{`RANDOM}};
  asidReq = _RAND_7[15:0];
  _RAND_8 = {1{`RANDOM}};
  walkRspBits_is_X = _RAND_8[0:0];
  _RAND_9 = {2{`RANDOM}};
  walkRspBits_renew_value = _RAND_9[63:0];
  _RAND_10 = {1{`RANDOM}};
  walkRspBits_renew_is_giga_page = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  walkRspBits_renew_is_mega_page = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  walkRspBits_renew_asid = _RAND_12[15:0];
  _RAND_13 = {1{`RANDOM}};
  walkRspBits_renew_vpn_0 = _RAND_13[8:0];
  _RAND_14 = {1{`RANDOM}};
  walkRspBits_renew_vpn_1 = _RAND_14[8:0];
  _RAND_15 = {1{`RANDOM}};
  walkRspBits_renew_vpn_2 = _RAND_15[8:0];
  _RAND_16 = {1{`RANDOM}};
  walkRspBits_is_ptw_fail = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  walkRspValid = _RAND_17[0:0];
  _RAND_18 = {1{`RANDOM}};
  ptw_get_valid = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  ptw_access_ready = _RAND_19[0:0];
  _RAND_20 = {1{`RANDOM}};
  is_get_reqed = _RAND_20[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module PTW_1(
  input         clock,
  input         reset,
  output        io_ptw_i_ready,
  input         io_ptw_i_valid,
  input  [63:0] io_ptw_i_bits_vaddr,
  input         io_ptw_o_ready,
  output        io_ptw_o_valid,
  output [63:0] io_ptw_o_bits_renew_value,
  output        io_ptw_o_bits_renew_is_giga_page,
  output        io_ptw_o_bits_renew_is_mega_page,
  output [15:0] io_ptw_o_bits_renew_asid,
  output [8:0]  io_ptw_o_bits_renew_vpn_0,
  output [8:0]  io_ptw_o_bits_renew_vpn_1,
  output [8:0]  io_ptw_o_bits_renew_vpn_2,
  output        io_ptw_o_bits_is_ptw_fail,
  input  [63:0] io_cmm_mmu_satp,
  input         io_cmm_mmu_sfence_vma,
  input         io_ptw_get_ready,
  output        io_ptw_get_valid,
  output [31:0] io_ptw_get_bits_address,
  output        io_ptw_access_ready,
  input         io_ptw_access_valid,
  input  [2:0]  io_ptw_access_bits_opcode,
  input  [2:0]  io_ptw_access_bits_size,
  input  [63:0] io_ptw_access_bits_data
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [63:0] _RAND_4;
  reg [63:0] _RAND_5;
  reg [63:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [63:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
`endif // RANDOMIZE_REG_INIT
  reg [1:0] currState; // @[PTW.scala 87:26]
  reg  kill_trans; // @[PTW.scala 89:27]
  wire  _T = io_ptw_access_ready & io_ptw_access_valid; // @[Decoupled.scala 52:35]
  wire [10:0] _beats1_decode_T_1 = 11'hf << io_ptw_access_bits_size; // @[package.scala 234:77]
  wire [3:0] _beats1_decode_T_3 = ~_beats1_decode_T_1[3:0]; // @[package.scala 234:46]
  wire  beats1_decode = _beats1_decode_T_3[3]; // @[Edges.scala 219:59]
  wire  beats1_opdata = io_ptw_access_bits_opcode[0]; // @[Edges.scala 105:36]
  wire  beats1 = beats1_opdata & beats1_decode; // @[Edges.scala 220:14]
  reg  counter; // @[Edges.scala 228:27]
  wire  counter1 = counter - 1'h1; // @[Edges.scala 229:28]
  wire  first = ~counter; // @[Edges.scala 230:25]
  wire  last = counter | ~beats1; // @[Edges.scala 231:37]
  wire  is_trans_done = last & _T; // @[Edges.scala 232:22]
  reg [31:0] addr_qout; // @[PTW.scala 95:26]
  wire  _walkReq_T = currState == 2'h0; // @[PTW.scala 102:63]
  wire  _nextState_T = io_ptw_i_ready & io_ptw_i_valid; // @[Decoupled.scala 52:35]
  wire [1:0] _nextState_T_1 = _nextState_T ? 2'h1 : 2'h0; // @[PTW.scala 112:23]
  reg [63:0] ptw_access_data_lo_0; // @[PTW.scala 218:31]
  wire [127:0] ptw_access_data = {io_ptw_access_bits_data,ptw_access_data_lo_0}; // @[Cat.scala 33:92]
  wire [127:0] pte_value_data = is_trans_done ? ptw_access_data : 128'h0; // @[PTW.scala 226:27 227:12]
  wire [6:0] _pte_value_data_sel_T_1 = {addr_qout[3], 6'h0}; // @[PTW.scala 231:54]
  wire [127:0] _pte_value_data_sel_T_2 = pte_value_data >> _pte_value_data_sel_T_1; // @[PTW.scala 230:22]
  wire [63:0] pte_value_data_sel = _pte_value_data_sel_T_2[63:0]; // @[PTW.scala 224:24 230:14]
  reg [63:0] pte_value_value; // @[PTW.scala 234:24]
  wire [63:0] pte_value = is_trans_done ? pte_value_data_sel : pte_value_value; // @[PTW.scala 240:8]
  wire  is_ptw_end = pte_value[1] & pte_value[3]; // @[PTW.scala 164:22]
  wire  _is_ptw_fail_T_1 = currState == 2'h1; // @[PTW.scala 172:20]
  wire [8:0] is_ptw_fail_hetVecWire__0 = pte_value[18:10]; // @[MMU.scala 44:37]
  wire  _is_ptw_fail_T_5 = is_ptw_fail_hetVecWire__0 != 9'h0; // @[PTW.scala 172:57]
  wire [8:0] is_ptw_fail_hetVecWire_1_1 = pte_value[27:19]; // @[MMU.scala 44:51]
  wire  _is_ptw_fail_T_10 = is_ptw_fail_hetVecWire__0 != 9'h0 | is_ptw_fail_hetVecWire_1_1 != 9'h0; // @[PTW.scala 172:65]
  wire  _is_ptw_fail_T_11 = currState == 2'h2; // @[PTW.scala 173:20]
  wire  _is_ptw_fail_T_22 = _is_ptw_fail_T_1 & _is_ptw_fail_T_10 | _is_ptw_fail_T_11 & _is_ptw_fail_T_5; // @[Mux.scala 27:73]
  wire  _is_ptw_fail_T_16 = currState == 2'h3; // @[PTW.scala 174:20]
  wire  _is_ptw_fail_T_24 = is_ptw_end & _is_ptw_fail_T_22; // @[PTW.scala 169:18]
  wire  _is_ptw_fail_T_34 = ~pte_value[1] & pte_value[2]; // @[PTW.scala 179:26]
  wire  _is_ptw_fail_T_35 = ~pte_value[0] | _is_ptw_fail_T_34; // @[PTW.scala 178:27]
  wire  is_ptw_fail = _is_ptw_fail_T_24 | _is_ptw_fail_T_35; // @[PTW.scala 176:7]
  wire  _nextState_T_4 = is_ptw_end | is_ptw_fail | kill_trans; // @[PTW.scala 118:41]
  wire [1:0] _nextState_T_5 = is_ptw_end | is_ptw_fail | kill_trans ? 2'h0 : 2'h2; // @[PTW.scala 118:14]
  wire [1:0] _nextState_T_6 = is_trans_done ? _nextState_T_5 : 2'h1; // @[PTW.scala 116:12]
  wire [1:0] _nextState_T_10 = _nextState_T_4 ? 2'h0 : 2'h3; // @[PTW.scala 126:14]
  wire [1:0] _nextState_T_11 = is_trans_done ? _nextState_T_10 : 2'h2; // @[PTW.scala 124:12]
  wire [1:0] _nextState_T_16 = is_trans_done ? 2'h0 : 2'h3; // @[PTW.scala 132:12]
  wire [1:0] _GEN_6 = 2'h3 == currState ? _nextState_T_16 : 2'h0; // @[PTW.scala 110:23 131:17]
  wire [1:0] _GEN_7 = 2'h2 == currState ? _nextState_T_11 : _GEN_6; // @[PTW.scala 110:23 123:17]
  wire [1:0] _GEN_8 = 2'h1 == currState ? _nextState_T_6 : _GEN_7; // @[PTW.scala 110:23 115:17]
  wire [1:0] nextState = 2'h0 == currState ? _nextState_T_1 : _GEN_8; // @[PTW.scala 110:23 112:17]
  wire  _walkReq_T_2 = currState == 2'h0 & nextState != 2'h0; // @[PTW.scala 102:83]
  reg [63:0] walkReq_vaddr; // @[Reg.scala 19:16]
  reg [15:0] asidReq; // @[Reg.scala 19:16]
  reg [63:0] walkRspBits_renew_value; // @[PTW.scala 104:28]
  reg  walkRspBits_renew_is_giga_page; // @[PTW.scala 104:28]
  reg  walkRspBits_renew_is_mega_page; // @[PTW.scala 104:28]
  reg [15:0] walkRspBits_renew_asid; // @[PTW.scala 104:28]
  reg [8:0] walkRspBits_renew_vpn_0; // @[PTW.scala 104:28]
  reg [8:0] walkRspBits_renew_vpn_1; // @[PTW.scala 104:28]
  reg [8:0] walkRspBits_renew_vpn_2; // @[PTW.scala 104:28]
  reg  walkRspBits_is_ptw_fail; // @[PTW.scala 104:28]
  reg  walkRspValid; // @[PTW.scala 105:29]
  wire  _a_T = nextState == 2'h1; // @[PTW.scala 148:19]
  wire  _a_T_2 = nextState == 2'h2; // @[PTW.scala 149:19]
  wire [25:0] a_hetVecWire__2 = pte_value[53:28]; // @[MMU.scala 44:65]
  wire [43:0] _a_T_12 = {a_hetVecWire__2,is_ptw_fail_hetVecWire_1_1,is_ptw_fail_hetVecWire__0}; // @[Cat.scala 33:92]
  wire  _a_T_13 = nextState == 2'h3; // @[PTW.scala 150:19]
  wire [43:0] _a_T_24 = _a_T ? io_cmm_mmu_satp[43:0] : 44'h0; // @[Mux.scala 27:73]
  wire [43:0] _a_T_25 = _a_T_2 ? _a_T_12 : 44'h0; // @[Mux.scala 27:73]
  wire [43:0] _a_T_26 = _a_T_13 ? _a_T_12 : 44'h0; // @[Mux.scala 27:73]
  wire [43:0] _a_T_27 = _a_T_24 | _a_T_25; // @[Mux.scala 27:73]
  wire [43:0] a = _a_T_27 | _a_T_26; // @[Mux.scala 27:73]
  wire [11:0] _addr_dnxt_T_2 = {io_ptw_i_bits_vaddr[38:30],3'h0}; // @[Cat.scala 33:92]
  wire [11:0] _addr_dnxt_T_5 = {walkReq_vaddr[29:21],3'h0}; // @[Cat.scala 33:92]
  wire [11:0] _addr_dnxt_T_8 = {walkReq_vaddr[20:12],3'h0}; // @[Cat.scala 33:92]
  wire [11:0] _addr_dnxt_T_9 = _a_T ? _addr_dnxt_T_2 : 12'h0; // @[Mux.scala 27:73]
  wire [11:0] _addr_dnxt_T_10 = _a_T_2 ? _addr_dnxt_T_5 : 12'h0; // @[Mux.scala 27:73]
  wire [11:0] _addr_dnxt_T_11 = _a_T_13 ? _addr_dnxt_T_8 : 12'h0; // @[Mux.scala 27:73]
  wire [11:0] _addr_dnxt_T_12 = _addr_dnxt_T_9 | _addr_dnxt_T_10; // @[Mux.scala 27:73]
  wire [11:0] _addr_dnxt_T_13 = _addr_dnxt_T_12 | _addr_dnxt_T_11; // @[Mux.scala 27:73]
  wire [55:0] _addr_dnxt_T_14 = {a,_addr_dnxt_T_13}; // @[Cat.scala 33:92]
  wire  pte_is_mega_page = is_ptw_end & _is_ptw_fail_T_11; // @[PTW.scala 184:34]
  wire  pte_is_giga_page = is_ptw_end & _is_ptw_fail_T_1; // @[PTW.scala 185:34]
  wire  _T_8 = io_ptw_get_ready & io_ptw_get_valid; // @[Decoupled.scala 52:35]
  wire  _T_10 = currState != 2'h0; // @[PTW.scala 197:51]
  wire  _T_11 = nextState == 2'h0 & currState != 2'h0; // @[PTW.scala 197:39]
  wire  _T_12 = ~io_ptw_o_valid; // @[PTW.scala 210:28]
  wire  _T_16 = io_ptw_o_ready & io_ptw_o_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_12 = _T_16 ? 1'h0 : walkRspValid; // @[PTW.scala 211:32 212:18 105:29]
  wire  _GEN_25 = nextState == 2'h0 & currState != 2'h0 | _GEN_12; // @[PTW.scala 197:73 208:18]
  reg  ptw_get_valid; // @[PTW.scala 342:30]
  reg  ptw_access_ready; // @[PTW.scala 343:33]
  reg  is_get_reqed; // @[PTW.scala 348:29]
  wire  _GEN_29 = nextState != currState ? 1'h0 : is_get_reqed; // @[PTW.scala 348:29 350:{40,55}]
  wire  _GEN_30 = _T_8 | _GEN_29; // @[PTW.scala 349:{27,42}]
  wire  _GEN_31 = _T_8 ? 1'h0 : ptw_get_valid; // @[PTW.scala 355:34 356:19 342:30]
  wire  _GEN_32 = (_is_ptw_fail_T_1 | _is_ptw_fail_T_11 | _is_ptw_fail_T_16) & ~io_ptw_get_valid & ~is_get_reqed |
    _GEN_31; // @[PTW.scala 353:153 354:19]
  wire  _GEN_33 = _T ? 1'h0 : ptw_access_ready; // @[PTW.scala 361:37 362:22 343:33]
  wire  _GEN_34 = io_ptw_access_valid & ~io_ptw_access_ready | _GEN_33; // @[PTW.scala 359:53 360:22]
  wire [35:0] _GEN_2 = {{4'd0}, addr_qout}; // @[PTW.scala 365:74]
  wire [35:0] _io_ptw_get_bits_T_1 = _GEN_2 & 36'hffffffff0; // @[PTW.scala 365:74]
  wire  _GEN_35 = _walkReq_T ? 1'h0 : kill_trans; // @[PTW.scala 384:48 385:16 89:27]
  wire  _GEN_36 = io_cmm_mmu_sfence_vma & _T_10 | _GEN_35; // @[PTW.scala 382:65 383:16]
  wire  _io_ptw_o_valid_T = ~kill_trans; // @[PTW.scala 390:36]
  wire [31:0] addr_dnxt = _addr_dnxt_T_14[31:0]; // @[PTW.scala 153:13 94:23]
  assign io_ptw_i_ready = _walkReq_T & _T_12 & ~io_cmm_mmu_sfence_vma & _io_ptw_o_valid_T; // @[PTW.scala 393:94]
  assign io_ptw_o_valid = walkRspValid & ~kill_trans; // @[PTW.scala 390:34]
  assign io_ptw_o_bits_renew_value = walkRspBits_renew_value; // @[PTW.scala 389:18]
  assign io_ptw_o_bits_renew_is_giga_page = walkRspBits_renew_is_giga_page; // @[PTW.scala 389:18]
  assign io_ptw_o_bits_renew_is_mega_page = walkRspBits_renew_is_mega_page; // @[PTW.scala 389:18]
  assign io_ptw_o_bits_renew_asid = walkRspBits_renew_asid; // @[PTW.scala 389:18]
  assign io_ptw_o_bits_renew_vpn_0 = walkRspBits_renew_vpn_0; // @[PTW.scala 389:18]
  assign io_ptw_o_bits_renew_vpn_1 = walkRspBits_renew_vpn_1; // @[PTW.scala 389:18]
  assign io_ptw_o_bits_renew_vpn_2 = walkRspBits_renew_vpn_2; // @[PTW.scala 389:18]
  assign io_ptw_o_bits_is_ptw_fail = walkRspBits_is_ptw_fail; // @[PTW.scala 389:18]
  assign io_ptw_get_valid = ptw_get_valid; // @[PTW.scala 345:20]
  assign io_ptw_get_bits_address = _io_ptw_get_bits_T_1[31:0]; // @[Edges.scala 447:17 452:15]
  assign io_ptw_access_ready = ptw_access_ready; // @[PTW.scala 346:23]
  always @(posedge clock) begin
    if (reset) begin // @[PTW.scala 87:26]
      currState <= 2'h0; // @[PTW.scala 87:26]
    end else if (2'h0 == currState) begin // @[PTW.scala 110:23]
      if (_nextState_T) begin // @[PTW.scala 112:23]
        currState <= 2'h1;
      end else begin
        currState <= 2'h0;
      end
    end else if (2'h1 == currState) begin // @[PTW.scala 110:23]
      if (is_trans_done) begin // @[PTW.scala 116:12]
        currState <= _nextState_T_5;
      end else begin
        currState <= 2'h1;
      end
    end else if (2'h2 == currState) begin // @[PTW.scala 110:23]
      currState <= _nextState_T_11; // @[PTW.scala 123:17]
    end else begin
      currState <= _GEN_6;
    end
    if (reset) begin // @[PTW.scala 89:27]
      kill_trans <= 1'h0; // @[PTW.scala 89:27]
    end else begin
      kill_trans <= _GEN_36;
    end
    if (reset) begin // @[Edges.scala 228:27]
      counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_T) begin // @[Edges.scala 234:17]
      if (first) begin // @[Edges.scala 235:21]
        counter <= beats1;
      end else begin
        counter <= counter1;
      end
    end
    if (reset) begin // @[PTW.scala 95:26]
      addr_qout <= 32'h0; // @[PTW.scala 95:26]
    end else begin
      addr_qout <= addr_dnxt; // @[PTW.scala 95:26]
    end
    if (_T & ~is_trans_done) begin // @[PTW.scala 243:46]
      ptw_access_data_lo_0 <= io_ptw_access_bits_data; // @[PTW.scala 244:34]
    end
    if (reset) begin // @[PTW.scala 234:24]
      pte_value_value <= 64'h0; // @[PTW.scala 234:24]
    end else if (is_trans_done) begin // @[PTW.scala 240:8]
      pte_value_value <= pte_value_data_sel;
    end
    if (_walkReq_T_2) begin // @[Reg.scala 20:18]
      walkReq_vaddr <= io_ptw_i_bits_vaddr; // @[Reg.scala 20:22]
    end
    if (_walkReq_T_2) begin // @[Reg.scala 20:18]
      asidReq <= io_cmm_mmu_satp[59:44]; // @[Reg.scala 20:22]
    end
    if (reset) begin // @[PTW.scala 104:28]
      walkRspBits_renew_value <= 64'h0; // @[PTW.scala 104:28]
    end else if (nextState == 2'h0 & currState != 2'h0) begin // @[PTW.scala 197:73]
      if (is_trans_done) begin // @[PTW.scala 240:8]
        walkRspBits_renew_value <= pte_value_data_sel;
      end else begin
        walkRspBits_renew_value <= pte_value_value;
      end
    end
    if (reset) begin // @[PTW.scala 104:28]
      walkRspBits_renew_is_giga_page <= 1'h0; // @[PTW.scala 104:28]
    end else if (nextState == 2'h0 & currState != 2'h0) begin // @[PTW.scala 197:73]
      walkRspBits_renew_is_giga_page <= pte_is_giga_page; // @[PTW.scala 202:58]
    end
    if (reset) begin // @[PTW.scala 104:28]
      walkRspBits_renew_is_mega_page <= 1'h0; // @[PTW.scala 104:28]
    end else if (nextState == 2'h0 & currState != 2'h0) begin // @[PTW.scala 197:73]
      walkRspBits_renew_is_mega_page <= pte_is_mega_page; // @[PTW.scala 202:58]
    end
    if (reset) begin // @[PTW.scala 104:28]
      walkRspBits_renew_asid <= 16'h0; // @[PTW.scala 104:28]
    end else if (nextState == 2'h0 & currState != 2'h0) begin // @[PTW.scala 197:73]
      walkRspBits_renew_asid <= asidReq; // @[PTW.scala 206:30]
    end
    if (reset) begin // @[PTW.scala 104:28]
      walkRspBits_renew_vpn_0 <= 9'h0; // @[PTW.scala 104:28]
    end else if (nextState == 2'h0 & currState != 2'h0) begin // @[PTW.scala 197:73]
      walkRspBits_renew_vpn_0 <= walkReq_vaddr[20:12]; // @[PTW.scala 203:30]
    end
    if (reset) begin // @[PTW.scala 104:28]
      walkRspBits_renew_vpn_1 <= 9'h0; // @[PTW.scala 104:28]
    end else if (nextState == 2'h0 & currState != 2'h0) begin // @[PTW.scala 197:73]
      walkRspBits_renew_vpn_1 <= walkReq_vaddr[29:21]; // @[PTW.scala 204:30]
    end
    if (reset) begin // @[PTW.scala 104:28]
      walkRspBits_renew_vpn_2 <= 9'h0; // @[PTW.scala 104:28]
    end else if (nextState == 2'h0 & currState != 2'h0) begin // @[PTW.scala 197:73]
      walkRspBits_renew_vpn_2 <= walkReq_vaddr[38:30]; // @[PTW.scala 205:30]
    end
    if (reset) begin // @[PTW.scala 104:28]
      walkRspBits_is_ptw_fail <= 1'h0; // @[PTW.scala 104:28]
    end else if (nextState == 2'h0 & currState != 2'h0) begin // @[PTW.scala 197:73]
      walkRspBits_is_ptw_fail <= is_ptw_fail; // @[PTW.scala 198:29]
    end
    if (reset) begin // @[PTW.scala 105:29]
      walkRspValid <= 1'h0; // @[PTW.scala 105:29]
    end else begin
      walkRspValid <= _GEN_25;
    end
    if (reset) begin // @[PTW.scala 342:30]
      ptw_get_valid <= 1'h0; // @[PTW.scala 342:30]
    end else begin
      ptw_get_valid <= _GEN_32;
    end
    if (reset) begin // @[PTW.scala 343:33]
      ptw_access_ready <= 1'h0; // @[PTW.scala 343:33]
    end else begin
      ptw_access_ready <= _GEN_34;
    end
    if (reset) begin // @[PTW.scala 348:29]
      is_get_reqed <= 1'h0; // @[PTW.scala 348:29]
    end else begin
      is_get_reqed <= _GEN_30;
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_11 & ~reset & ~(~io_ptw_o_valid)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at PTW.scala:210 assert( io.ptw_o.valid === false.B )\n"); // @[PTW.scala 210:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~io_ptw_o_valid) & (_T_11 & ~reset)) begin
          $fatal; // @[PTW.scala 210:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  currState = _RAND_0[1:0];
  _RAND_1 = {1{`RANDOM}};
  kill_trans = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  counter = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  addr_qout = _RAND_3[31:0];
  _RAND_4 = {2{`RANDOM}};
  ptw_access_data_lo_0 = _RAND_4[63:0];
  _RAND_5 = {2{`RANDOM}};
  pte_value_value = _RAND_5[63:0];
  _RAND_6 = {2{`RANDOM}};
  walkReq_vaddr = _RAND_6[63:0];
  _RAND_7 = {1{`RANDOM}};
  asidReq = _RAND_7[15:0];
  _RAND_8 = {2{`RANDOM}};
  walkRspBits_renew_value = _RAND_8[63:0];
  _RAND_9 = {1{`RANDOM}};
  walkRspBits_renew_is_giga_page = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  walkRspBits_renew_is_mega_page = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  walkRspBits_renew_asid = _RAND_11[15:0];
  _RAND_12 = {1{`RANDOM}};
  walkRspBits_renew_vpn_0 = _RAND_12[8:0];
  _RAND_13 = {1{`RANDOM}};
  walkRspBits_renew_vpn_1 = _RAND_13[8:0];
  _RAND_14 = {1{`RANDOM}};
  walkRspBits_renew_vpn_2 = _RAND_14[8:0];
  _RAND_15 = {1{`RANDOM}};
  walkRspBits_is_ptw_fail = _RAND_15[0:0];
  _RAND_16 = {1{`RANDOM}};
  walkRspValid = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  ptw_get_valid = _RAND_17[0:0];
  _RAND_18 = {1{`RANDOM}};
  ptw_access_ready = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  is_get_reqed = _RAND_19[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Arbiter_10(
  output        io_in_0_ready,
  input         io_in_0_valid,
  input  [31:0] io_in_0_bits_address,
  output        io_in_1_ready,
  input         io_in_1_valid,
  input  [31:0] io_in_1_bits_address,
  input         io_out_ready,
  output        io_out_valid,
  output        io_out_bits_source,
  output [31:0] io_out_bits_address
);
  wire  grant_1 = ~io_in_0_valid; // @[Arbiter.scala 45:78]
  assign io_in_0_ready = io_out_ready; // @[Arbiter.scala 146:19]
  assign io_in_1_ready = grant_1 & io_out_ready; // @[Arbiter.scala 146:19]
  assign io_out_valid = ~grant_1 | io_in_1_valid; // @[Arbiter.scala 147:31]
  assign io_out_bits_source = io_in_0_valid ? 1'h0 : 1'h1; // @[Arbiter.scala 136:15 138:26 140:19]
  assign io_out_bits_address = io_in_0_valid ? io_in_0_bits_address : io_in_1_bits_address; // @[Arbiter.scala 136:15 138:26 140:19]
endmodule
module MMU(
  input         clock,
  input         reset,
  output        io_if_mmu_ready,
  input  [63:0] io_if_mmu_bits_vaddr,
  input         io_mmu_if_ready,
  output        io_mmu_if_valid,
  output [63:0] io_mmu_if_bits_vaddr,
  output [63:0] io_mmu_if_bits_paddr,
  output        io_mmu_if_bits_is_paging_fault,
  output        io_mmu_if_bits_is_access_fault,
  input         io_if_flush,
  output        io_lsu_mmu_ready,
  input         io_lsu_mmu_valid,
  input         io_lsu_mmu_bits_is_W,
  input         io_lsu_mmu_bits_is_R,
  input  [63:0] io_lsu_mmu_bits_vaddr,
  input         io_mmu_lsu_ready,
  output        io_mmu_lsu_valid,
  output [63:0] io_mmu_lsu_bits_paddr,
  output        io_mmu_lsu_bits_is_paging_fault,
  output        io_mmu_lsu_bits_is_access_fault,
  input         io_lsu_flush,
  input  [63:0] io_cmm_mmu_satp,
  input  [1:0]  io_cmm_mmu_priv_lvl_if,
  input  [1:0]  io_cmm_mmu_priv_lvl_ls,
  input  [63:0] io_cmm_mmu_mstatus,
  input  [63:0] io_cmm_mmu_sstatus,
  input         io_cmm_mmu_sfence_vma,
  input         io_ptw_get_ready,
  output        io_ptw_get_valid,
  output        io_ptw_get_bits_source,
  output [31:0] io_ptw_get_bits_address,
  output        io_ptw_access_ready,
  input         io_ptw_access_valid,
  input  [2:0]  io_ptw_access_bits_opcode,
  input  [2:0]  io_ptw_access_bits_size,
  input         io_ptw_access_bits_source,
  input  [63:0] io_ptw_access_bits_data
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
`endif // RANDOMIZE_REG_INIT
  wire  itlb_clock; // @[MMU.scala 131:20]
  wire  itlb_reset; // @[MMU.scala 131:20]
  wire  itlb_io_req_valid; // @[MMU.scala 131:20]
  wire [63:0] itlb_io_req_bits_vaddr; // @[MMU.scala 131:20]
  wire [63:0] itlb_io_pte_o_value; // @[MMU.scala 131:20]
  wire  itlb_io_pte_o_is_giga_page; // @[MMU.scala 131:20]
  wire  itlb_io_pte_o_is_mega_page; // @[MMU.scala 131:20]
  wire  itlb_io_is_hit; // @[MMU.scala 131:20]
  wire [15:0] itlb_io_asid_i; // @[MMU.scala 131:20]
  wire  itlb_io_tlb_renew_valid; // @[MMU.scala 131:20]
  wire [63:0] itlb_io_tlb_renew_bits_value; // @[MMU.scala 131:20]
  wire  itlb_io_tlb_renew_bits_is_giga_page; // @[MMU.scala 131:20]
  wire  itlb_io_tlb_renew_bits_is_mega_page; // @[MMU.scala 131:20]
  wire [15:0] itlb_io_tlb_renew_bits_asid; // @[MMU.scala 131:20]
  wire [8:0] itlb_io_tlb_renew_bits_vpn_0; // @[MMU.scala 131:20]
  wire [8:0] itlb_io_tlb_renew_bits_vpn_1; // @[MMU.scala 131:20]
  wire [8:0] itlb_io_tlb_renew_bits_vpn_2; // @[MMU.scala 131:20]
  wire  itlb_io_sfence_vma; // @[MMU.scala 131:20]
  wire  dtlb_clock; // @[MMU.scala 132:20]
  wire  dtlb_reset; // @[MMU.scala 132:20]
  wire  dtlb_io_req_valid; // @[MMU.scala 132:20]
  wire [63:0] dtlb_io_req_bits_vaddr; // @[MMU.scala 132:20]
  wire [63:0] dtlb_io_pte_o_value; // @[MMU.scala 132:20]
  wire  dtlb_io_pte_o_is_giga_page; // @[MMU.scala 132:20]
  wire  dtlb_io_pte_o_is_mega_page; // @[MMU.scala 132:20]
  wire  dtlb_io_is_hit; // @[MMU.scala 132:20]
  wire [15:0] dtlb_io_asid_i; // @[MMU.scala 132:20]
  wire  dtlb_io_tlb_renew_valid; // @[MMU.scala 132:20]
  wire [63:0] dtlb_io_tlb_renew_bits_value; // @[MMU.scala 132:20]
  wire  dtlb_io_tlb_renew_bits_is_giga_page; // @[MMU.scala 132:20]
  wire  dtlb_io_tlb_renew_bits_is_mega_page; // @[MMU.scala 132:20]
  wire [15:0] dtlb_io_tlb_renew_bits_asid; // @[MMU.scala 132:20]
  wire [8:0] dtlb_io_tlb_renew_bits_vpn_0; // @[MMU.scala 132:20]
  wire [8:0] dtlb_io_tlb_renew_bits_vpn_1; // @[MMU.scala 132:20]
  wire [8:0] dtlb_io_tlb_renew_bits_vpn_2; // @[MMU.scala 132:20]
  wire  dtlb_io_sfence_vma; // @[MMU.scala 132:20]
  wire  iptw_clock; // @[MMU.scala 133:21]
  wire  iptw_reset; // @[MMU.scala 133:21]
  wire  iptw_io_ptw_i_ready; // @[MMU.scala 133:21]
  wire  iptw_io_ptw_i_valid; // @[MMU.scala 133:21]
  wire [63:0] iptw_io_ptw_i_bits_vaddr; // @[MMU.scala 133:21]
  wire  iptw_io_ptw_o_ready; // @[MMU.scala 133:21]
  wire  iptw_io_ptw_o_valid; // @[MMU.scala 133:21]
  wire  iptw_io_ptw_o_bits_is_X; // @[MMU.scala 133:21]
  wire [63:0] iptw_io_ptw_o_bits_renew_value; // @[MMU.scala 133:21]
  wire  iptw_io_ptw_o_bits_renew_is_giga_page; // @[MMU.scala 133:21]
  wire  iptw_io_ptw_o_bits_renew_is_mega_page; // @[MMU.scala 133:21]
  wire [15:0] iptw_io_ptw_o_bits_renew_asid; // @[MMU.scala 133:21]
  wire [8:0] iptw_io_ptw_o_bits_renew_vpn_0; // @[MMU.scala 133:21]
  wire [8:0] iptw_io_ptw_o_bits_renew_vpn_1; // @[MMU.scala 133:21]
  wire [8:0] iptw_io_ptw_o_bits_renew_vpn_2; // @[MMU.scala 133:21]
  wire  iptw_io_ptw_o_bits_is_ptw_fail; // @[MMU.scala 133:21]
  wire [63:0] iptw_io_cmm_mmu_satp; // @[MMU.scala 133:21]
  wire  iptw_io_cmm_mmu_sfence_vma; // @[MMU.scala 133:21]
  wire  iptw_io_ptw_get_ready; // @[MMU.scala 133:21]
  wire  iptw_io_ptw_get_valid; // @[MMU.scala 133:21]
  wire [31:0] iptw_io_ptw_get_bits_address; // @[MMU.scala 133:21]
  wire  iptw_io_ptw_access_ready; // @[MMU.scala 133:21]
  wire  iptw_io_ptw_access_valid; // @[MMU.scala 133:21]
  wire [2:0] iptw_io_ptw_access_bits_opcode; // @[MMU.scala 133:21]
  wire [2:0] iptw_io_ptw_access_bits_size; // @[MMU.scala 133:21]
  wire [63:0] iptw_io_ptw_access_bits_data; // @[MMU.scala 133:21]
  wire  dptw_clock; // @[MMU.scala 134:21]
  wire  dptw_reset; // @[MMU.scala 134:21]
  wire  dptw_io_ptw_i_ready; // @[MMU.scala 134:21]
  wire  dptw_io_ptw_i_valid; // @[MMU.scala 134:21]
  wire [63:0] dptw_io_ptw_i_bits_vaddr; // @[MMU.scala 134:21]
  wire  dptw_io_ptw_o_ready; // @[MMU.scala 134:21]
  wire  dptw_io_ptw_o_valid; // @[MMU.scala 134:21]
  wire [63:0] dptw_io_ptw_o_bits_renew_value; // @[MMU.scala 134:21]
  wire  dptw_io_ptw_o_bits_renew_is_giga_page; // @[MMU.scala 134:21]
  wire  dptw_io_ptw_o_bits_renew_is_mega_page; // @[MMU.scala 134:21]
  wire [15:0] dptw_io_ptw_o_bits_renew_asid; // @[MMU.scala 134:21]
  wire [8:0] dptw_io_ptw_o_bits_renew_vpn_0; // @[MMU.scala 134:21]
  wire [8:0] dptw_io_ptw_o_bits_renew_vpn_1; // @[MMU.scala 134:21]
  wire [8:0] dptw_io_ptw_o_bits_renew_vpn_2; // @[MMU.scala 134:21]
  wire  dptw_io_ptw_o_bits_is_ptw_fail; // @[MMU.scala 134:21]
  wire [63:0] dptw_io_cmm_mmu_satp; // @[MMU.scala 134:21]
  wire  dptw_io_cmm_mmu_sfence_vma; // @[MMU.scala 134:21]
  wire  dptw_io_ptw_get_ready; // @[MMU.scala 134:21]
  wire  dptw_io_ptw_get_valid; // @[MMU.scala 134:21]
  wire [31:0] dptw_io_ptw_get_bits_address; // @[MMU.scala 134:21]
  wire  dptw_io_ptw_access_ready; // @[MMU.scala 134:21]
  wire  dptw_io_ptw_access_valid; // @[MMU.scala 134:21]
  wire [2:0] dptw_io_ptw_access_bits_opcode; // @[MMU.scala 134:21]
  wire [2:0] dptw_io_ptw_access_bits_size; // @[MMU.scala 134:21]
  wire [63:0] dptw_io_ptw_access_bits_data; // @[MMU.scala 134:21]
  wire  ptwGetArb_io_in_0_ready; // @[MMU.scala 285:26]
  wire  ptwGetArb_io_in_0_valid; // @[MMU.scala 285:26]
  wire [31:0] ptwGetArb_io_in_0_bits_address; // @[MMU.scala 285:26]
  wire  ptwGetArb_io_in_1_ready; // @[MMU.scala 285:26]
  wire  ptwGetArb_io_in_1_valid; // @[MMU.scala 285:26]
  wire [31:0] ptwGetArb_io_in_1_bits_address; // @[MMU.scala 285:26]
  wire  ptwGetArb_io_out_ready; // @[MMU.scala 285:26]
  wire  ptwGetArb_io_out_valid; // @[MMU.scala 285:26]
  wire  ptwGetArb_io_out_bits_source; // @[MMU.scala 285:26]
  wire [31:0] ptwGetArb_io_out_bits_address; // @[MMU.scala 285:26]
  wire  _is_bypass_if_T_1 = io_cmm_mmu_satp[63:60] == 4'h0; // @[MMU.scala 136:45]
  wire  is_bypass_if = io_cmm_mmu_satp[63:60] == 4'h0 | io_cmm_mmu_priv_lvl_if == 2'h3; // @[MMU.scala 136:53]
  wire  is_bypass_ls = _is_bypass_if_T_1 | io_cmm_mmu_priv_lvl_ls == 2'h3; // @[MMU.scala 137:53]
  reg  kill_iptw; // @[MMU.scala 141:26]
  reg  kill_dptw; // @[MMU.scala 142:26]
  wire  _GEN_0 = iptw_io_ptw_i_ready ? 1'h0 : kill_iptw; // @[MMU.scala 147:39 148:15 141:26]
  wire  _GEN_1 = io_if_flush | _GEN_0; // @[MMU.scala 145:23 146:15]
  wire  _GEN_2 = dptw_io_ptw_i_ready ? 1'h0 : kill_dptw; // @[MMU.scala 152:39 153:15 142:26]
  wire  _GEN_3 = io_lsu_flush | _GEN_2; // @[MMU.scala 150:24 151:15]
  wire  _io_if_mmu_ready_T = io_mmu_if_ready & io_mmu_if_valid; // @[Decoupled.scala 52:35]
  wire  _io_if_mmu_ready_T_3 = ~kill_iptw; // @[MMU.scala 160:37]
  wire  _io_lsu_mmu_ready_T = io_mmu_lsu_ready & io_mmu_lsu_valid; // @[Decoupled.scala 52:35]
  wire  _io_lsu_mmu_ready_T_1 = ~io_lsu_flush; // @[MMU.scala 168:23]
  wire  _io_lsu_mmu_ready_T_3 = ~kill_dptw; // @[MMU.scala 168:39]
  wire  _T = io_lsu_mmu_ready & io_lsu_mmu_valid; // @[Decoupled.scala 52:35]
  wire  _T_4 = ~reset; // @[MMU.scala 170:9]
  wire  _iptw_io_ptw_i_valid_T_2 = ~is_bypass_if; // @[MMU.scala 180:62]
  wire  _dptw_io_ptw_i_valid_T_2 = ~is_bypass_ls; // @[MMU.scala 183:63]
  wire [63:0] _pte_WIRE_value = iptw_io_ptw_o_bits_renew_value;
  wire [63:0] pte_value = itlb_io_is_hit ? itlb_io_pte_o_value : _pte_WIRE_value; // @[MMU.scala 194:18]
  wire  pte_is_giga_page = itlb_io_is_hit ? itlb_io_pte_o_is_giga_page : iptw_io_ptw_o_bits_renew_is_giga_page; // @[MMU.scala 194:18]
  wire  pte_is_mega_page = itlb_io_is_hit ? itlb_io_pte_o_is_mega_page : iptw_io_ptw_o_bits_renew_is_mega_page; // @[MMU.scala 194:18]
  wire [25:0] ipaddr_pa_ppn_2_hetVecWire_2 = pte_value[53:28]; // @[MMU.scala 44:65]
  wire [8:0] ipaddr_pa_ppn_1_hetVecWire_1 = pte_value[27:19]; // @[MMU.scala 44:51]
  wire [8:0] ipaddr_pa_ppn_1 = pte_is_giga_page ? io_if_mmu_bits_vaddr[29:21] : ipaddr_pa_ppn_1_hetVecWire_1; // @[MMU.scala 329:23]
  wire [8:0] ipaddr_pa_ppn_0_hetVecWire_0 = pte_value[18:10]; // @[MMU.scala 44:37]
  wire [8:0] ipaddr_pa_ppn_0 = pte_is_giga_page | pte_is_mega_page ? io_if_mmu_bits_vaddr[20:12] :
    ipaddr_pa_ppn_0_hetVecWire_0; // @[MMU.scala 330:23]
  wire [11:0] ipaddr_pa_pgoff = io_if_mmu_bits_vaddr[11:0]; // @[MMU.scala 331:25]
  wire [55:0] _ipaddr_paddr_T = {ipaddr_pa_ppn_2_hetVecWire_2,ipaddr_pa_ppn_1,ipaddr_pa_ppn_0,ipaddr_pa_pgoff}; // @[Cat.scala 33:92]
  wire [63:0] ipaddr_paddr = {{8'd0}, _ipaddr_paddr_T}; // @[MMU.scala 326:21 333:11]
  wire [63:0] ipaddr = is_bypass_if ? io_if_mmu_bits_vaddr : ipaddr_paddr; // @[MMU.scala 196:21]
  wire [24:0] _io_mmu_if_bits_is_paging_fault_is_vaddr_illegal_T_3 = io_if_mmu_bits_vaddr[38] ? 25'h1ffffff : 25'h0; // @[Bitwise.scala 77:12]
  wire  io_mmu_if_bits_is_paging_fault_is_vaddr_illegal = io_if_mmu_bits_vaddr[63:39] !=
    _io_mmu_if_bits_is_paging_fault_is_vaddr_illegal_T_3; // @[MMU.scala 311:47]
  wire  _io_mmu_if_bits_is_paging_fault_is_U_access_illegal_T_9 = io_cmm_mmu_priv_lvl_if == 2'h1 & pte_value[4]; // @[MMU.scala 314:31]
  wire  _io_mmu_if_bits_is_paging_fault_is_U_access_illegal_T_11 = ~io_cmm_mmu_sstatus[18]; // @[MMU.scala 314:76]
  wire  _io_mmu_if_bits_is_paging_fault_is_U_access_illegal_T_15 = io_cmm_mmu_priv_lvl_if == 2'h0 & ~pte_value[4] |
    _io_mmu_if_bits_is_paging_fault_is_U_access_illegal_T_9; // @[MMU.scala 313:52]
  wire  _io_mmu_if_bits_is_paging_fault_is_U_access_illegal_T_26 = io_cmm_mmu_mstatus[17] & io_cmm_mmu_mstatus[12:11]
     == 2'h1 & pte_value[4] & _io_mmu_if_bits_is_paging_fault_is_U_access_illegal_T_11; // @[MMU.scala 315:93]
  wire  io_mmu_if_bits_is_paging_fault_is_U_access_illegal = _io_mmu_if_bits_is_paging_fault_is_U_access_illegal_T_15 |
    _io_mmu_if_bits_is_paging_fault_is_U_access_illegal_T_26; // @[MMU.scala 314:116]
  wire  io_mmu_if_bits_is_paging_fault_is_A_illegal = ~pte_value[6]; // @[MMU.scala 317:32]
  wire  _io_mmu_if_bits_is_paging_fault_T_2 = io_mmu_if_bits_is_paging_fault_is_vaddr_illegal |
    io_mmu_if_bits_is_paging_fault_is_U_access_illegal | io_mmu_if_bits_is_paging_fault_is_A_illegal; // @[MMU.scala 321:53]
  wire  _io_mmu_if_bits_is_paging_fault_T_6 = iptw_io_ptw_o_bits_is_ptw_fail & iptw_io_ptw_o_bits_is_X &
    iptw_io_ptw_o_valid; // @[MMU.scala 210:67]
  wire  _io_mmu_if_bits_is_paging_fault_T_7 = _io_mmu_if_bits_is_paging_fault_T_2 | _io_mmu_if_bits_is_paging_fault_T_6; // @[MMU.scala 209:89]
  wire  _io_mmu_if_valid_T_2 = itlb_io_is_hit; // @[MMU.scala 216:26]
  wire  _io_mmu_if_valid_T_3 = is_bypass_if | _io_mmu_if_valid_T_2; // @[MMU.scala 215:42]
  wire  _io_mmu_if_valid_T_4 = iptw_io_ptw_o_bits_is_X & iptw_io_ptw_o_valid; // @[MMU.scala 217:53]
  wire  _io_mmu_if_valid_T_6 = _io_mmu_if_valid_T_3 | _io_mmu_if_valid_T_4; // @[MMU.scala 216:44]
  wire [63:0] _pte_WIRE_1_value = dptw_io_ptw_o_bits_renew_value;
  wire [63:0] pte_1_value = dtlb_io_is_hit ? dtlb_io_pte_o_value : _pte_WIRE_1_value; // @[MMU.scala 225:18]
  wire  pte_1_is_giga_page = dtlb_io_is_hit ? dtlb_io_pte_o_is_giga_page : dptw_io_ptw_o_bits_renew_is_giga_page; // @[MMU.scala 225:18]
  wire  pte_1_is_mega_page = dtlb_io_is_hit ? dtlb_io_pte_o_is_mega_page : dptw_io_ptw_o_bits_renew_is_mega_page; // @[MMU.scala 225:18]
  wire [25:0] dpaddr_pa_ppn_2_hetVecWire_2 = pte_1_value[53:28]; // @[MMU.scala 44:65]
  wire [8:0] dpaddr_pa_ppn_1_hetVecWire_1 = pte_1_value[27:19]; // @[MMU.scala 44:51]
  wire [8:0] dpaddr_pa_ppn_1 = pte_1_is_giga_page ? io_lsu_mmu_bits_vaddr[29:21] : dpaddr_pa_ppn_1_hetVecWire_1; // @[MMU.scala 329:23]
  wire [8:0] dpaddr_pa_ppn_0_hetVecWire_0 = pte_1_value[18:10]; // @[MMU.scala 44:37]
  wire [8:0] dpaddr_pa_ppn_0 = pte_1_is_giga_page | pte_1_is_mega_page ? io_lsu_mmu_bits_vaddr[20:12] :
    dpaddr_pa_ppn_0_hetVecWire_0; // @[MMU.scala 330:23]
  wire [11:0] dpaddr_pa_pgoff = io_lsu_mmu_bits_vaddr[11:0]; // @[MMU.scala 331:25]
  wire [55:0] _dpaddr_paddr_T = {dpaddr_pa_ppn_2_hetVecWire_2,dpaddr_pa_ppn_1,dpaddr_pa_ppn_0,dpaddr_pa_pgoff}; // @[Cat.scala 33:92]
  wire [63:0] dpaddr_paddr = {{8'd0}, _dpaddr_paddr_T}; // @[MMU.scala 326:21 333:11]
  wire [63:0] dpaddr = is_bypass_ls ? io_lsu_mmu_bits_vaddr : dpaddr_paddr; // @[MMU.scala 228:21]
  wire  _io_mmu_lsu_bits_is_access_fault_T_2 = dptw_io_ptw_o_valid; // @[MMU.scala 235:71]
  wire [2:0] _io_mmu_lsu_bits_is_paging_fault_T_1 = {1'h0,io_lsu_mmu_bits_is_W,io_lsu_mmu_bits_is_R}; // @[Cat.scala 33:92]
  wire [24:0] _io_mmu_lsu_bits_is_paging_fault_is_vaddr_illegal_T_3 = io_lsu_mmu_bits_vaddr[38] ? 25'h1ffffff : 25'h0; // @[Bitwise.scala 77:12]
  wire  io_mmu_lsu_bits_is_paging_fault_is_vaddr_illegal = io_lsu_mmu_bits_vaddr[63:39] !=
    _io_mmu_lsu_bits_is_paging_fault_is_vaddr_illegal_T_3; // @[MMU.scala 311:47]
  wire  _io_mmu_lsu_bits_is_paging_fault_is_U_access_illegal_T_15 = io_cmm_mmu_priv_lvl_ls == 2'h1 & pte_1_value[4] & (~
    io_cmm_mmu_sstatus[18] | _io_mmu_lsu_bits_is_paging_fault_T_1[2]); // @[MMU.scala 314:50]
  wire  _io_mmu_lsu_bits_is_paging_fault_is_U_access_illegal_T_16 = io_cmm_mmu_priv_lvl_ls == 2'h0 & ~pte_1_value[4] |
    _io_mmu_lsu_bits_is_paging_fault_is_U_access_illegal_T_15; // @[MMU.scala 313:52]
  wire  _io_mmu_lsu_bits_is_paging_fault_is_U_access_illegal_T_27 = io_cmm_mmu_mstatus[17] & io_cmm_mmu_mstatus[12:11]
     == 2'h1 & pte_1_value[4] & _io_mmu_if_bits_is_paging_fault_is_U_access_illegal_T_11; // @[MMU.scala 315:93]
  wire  io_mmu_lsu_bits_is_paging_fault_is_U_access_illegal = _io_mmu_lsu_bits_is_paging_fault_is_U_access_illegal_T_16
     | _io_mmu_lsu_bits_is_paging_fault_is_U_access_illegal_T_27; // @[MMU.scala 314:116]
  wire  io_mmu_lsu_bits_is_paging_fault_is_A_illegal = ~pte_1_value[6]; // @[MMU.scala 317:32]
  wire  io_mmu_lsu_bits_is_paging_fault_is_D_illegal = ~pte_1_value[7] & _io_mmu_lsu_bits_is_paging_fault_T_1[1]; // @[MMU.scala 318:44]
  wire  io_mmu_lsu_bits_is_paging_fault_is_MXR_illegal = ~io_cmm_mmu_mstatus[19] & ~pte_1_value[1] &
    _io_mmu_lsu_bits_is_paging_fault_T_1[0]; // @[MMU.scala 319:83]
  wire  _io_mmu_lsu_bits_is_paging_fault_T_5 = io_mmu_lsu_bits_is_paging_fault_is_vaddr_illegal |
    io_mmu_lsu_bits_is_paging_fault_is_U_access_illegal | io_mmu_lsu_bits_is_paging_fault_is_A_illegal |
    io_mmu_lsu_bits_is_paging_fault_is_D_illegal | io_mmu_lsu_bits_is_paging_fault_is_MXR_illegal; // @[MMU.scala 321:83]
  wire  _io_mmu_lsu_bits_is_paging_fault_T_8 = dptw_io_ptw_o_bits_is_ptw_fail & dptw_io_ptw_o_valid; // @[MMU.scala 241:67]
  wire  _io_mmu_lsu_bits_is_paging_fault_T_9 = _io_mmu_lsu_bits_is_paging_fault_T_5 |
    _io_mmu_lsu_bits_is_paging_fault_T_8; // @[MMU.scala 240:152]
  wire  _io_mmu_lsu_valid_T_4 = io_lsu_mmu_valid & dtlb_io_is_hit; // @[MMU.scala 247:27]
  wire  _io_mmu_lsu_valid_T_5 = io_lsu_mmu_valid & is_bypass_ls | _io_mmu_lsu_valid_T_4; // @[MMU.scala 246:43]
  wire  _io_mmu_lsu_valid_T_8 = io_lsu_mmu_valid & _io_mmu_lsu_bits_is_access_fault_T_2; // @[MMU.scala 248:27]
  wire  _io_mmu_lsu_valid_T_9 = _io_mmu_lsu_valid_T_5 | _io_mmu_lsu_valid_T_8; // @[MMU.scala 247:45]
  wire  _itlb_io_tlb_renew_valid_T = iptw_io_ptw_o_ready & iptw_io_ptw_o_valid; // @[Decoupled.scala 52:35]
  wire  _dtlb_io_tlb_renew_valid_T = dptw_io_ptw_o_ready & dptw_io_ptw_o_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_4 = io_ptw_access_bits_source & dptw_io_ptw_access_ready; // @[MMU.scala 283:23 294:52 295:24]
  wire  _GEN_5 = io_ptw_access_bits_source & io_ptw_access_valid; // @[MMU.scala 294:52 295:24 280:28]
  wire [2:0] _GEN_6 = io_ptw_access_bits_source ? io_ptw_access_bits_opcode : 3'h0; // @[MMU.scala 294:52 295:24 282:27]
  wire [2:0] _GEN_8 = io_ptw_access_bits_source ? io_ptw_access_bits_size : 3'h0; // @[MMU.scala 294:52 295:24 282:27]
  wire [63:0] _GEN_12 = io_ptw_access_bits_source ? io_ptw_access_bits_data : 64'h0; // @[MMU.scala 294:52 295:24 282:27]
  TLB itlb ( // @[MMU.scala 131:20]
    .clock(itlb_clock),
    .reset(itlb_reset),
    .io_req_valid(itlb_io_req_valid),
    .io_req_bits_vaddr(itlb_io_req_bits_vaddr),
    .io_pte_o_value(itlb_io_pte_o_value),
    .io_pte_o_is_giga_page(itlb_io_pte_o_is_giga_page),
    .io_pte_o_is_mega_page(itlb_io_pte_o_is_mega_page),
    .io_is_hit(itlb_io_is_hit),
    .io_asid_i(itlb_io_asid_i),
    .io_tlb_renew_valid(itlb_io_tlb_renew_valid),
    .io_tlb_renew_bits_value(itlb_io_tlb_renew_bits_value),
    .io_tlb_renew_bits_is_giga_page(itlb_io_tlb_renew_bits_is_giga_page),
    .io_tlb_renew_bits_is_mega_page(itlb_io_tlb_renew_bits_is_mega_page),
    .io_tlb_renew_bits_asid(itlb_io_tlb_renew_bits_asid),
    .io_tlb_renew_bits_vpn_0(itlb_io_tlb_renew_bits_vpn_0),
    .io_tlb_renew_bits_vpn_1(itlb_io_tlb_renew_bits_vpn_1),
    .io_tlb_renew_bits_vpn_2(itlb_io_tlb_renew_bits_vpn_2),
    .io_sfence_vma(itlb_io_sfence_vma)
  );
  TLB dtlb ( // @[MMU.scala 132:20]
    .clock(dtlb_clock),
    .reset(dtlb_reset),
    .io_req_valid(dtlb_io_req_valid),
    .io_req_bits_vaddr(dtlb_io_req_bits_vaddr),
    .io_pte_o_value(dtlb_io_pte_o_value),
    .io_pte_o_is_giga_page(dtlb_io_pte_o_is_giga_page),
    .io_pte_o_is_mega_page(dtlb_io_pte_o_is_mega_page),
    .io_is_hit(dtlb_io_is_hit),
    .io_asid_i(dtlb_io_asid_i),
    .io_tlb_renew_valid(dtlb_io_tlb_renew_valid),
    .io_tlb_renew_bits_value(dtlb_io_tlb_renew_bits_value),
    .io_tlb_renew_bits_is_giga_page(dtlb_io_tlb_renew_bits_is_giga_page),
    .io_tlb_renew_bits_is_mega_page(dtlb_io_tlb_renew_bits_is_mega_page),
    .io_tlb_renew_bits_asid(dtlb_io_tlb_renew_bits_asid),
    .io_tlb_renew_bits_vpn_0(dtlb_io_tlb_renew_bits_vpn_0),
    .io_tlb_renew_bits_vpn_1(dtlb_io_tlb_renew_bits_vpn_1),
    .io_tlb_renew_bits_vpn_2(dtlb_io_tlb_renew_bits_vpn_2),
    .io_sfence_vma(dtlb_io_sfence_vma)
  );
  PTW iptw ( // @[MMU.scala 133:21]
    .clock(iptw_clock),
    .reset(iptw_reset),
    .io_ptw_i_ready(iptw_io_ptw_i_ready),
    .io_ptw_i_valid(iptw_io_ptw_i_valid),
    .io_ptw_i_bits_vaddr(iptw_io_ptw_i_bits_vaddr),
    .io_ptw_o_ready(iptw_io_ptw_o_ready),
    .io_ptw_o_valid(iptw_io_ptw_o_valid),
    .io_ptw_o_bits_is_X(iptw_io_ptw_o_bits_is_X),
    .io_ptw_o_bits_renew_value(iptw_io_ptw_o_bits_renew_value),
    .io_ptw_o_bits_renew_is_giga_page(iptw_io_ptw_o_bits_renew_is_giga_page),
    .io_ptw_o_bits_renew_is_mega_page(iptw_io_ptw_o_bits_renew_is_mega_page),
    .io_ptw_o_bits_renew_asid(iptw_io_ptw_o_bits_renew_asid),
    .io_ptw_o_bits_renew_vpn_0(iptw_io_ptw_o_bits_renew_vpn_0),
    .io_ptw_o_bits_renew_vpn_1(iptw_io_ptw_o_bits_renew_vpn_1),
    .io_ptw_o_bits_renew_vpn_2(iptw_io_ptw_o_bits_renew_vpn_2),
    .io_ptw_o_bits_is_ptw_fail(iptw_io_ptw_o_bits_is_ptw_fail),
    .io_cmm_mmu_satp(iptw_io_cmm_mmu_satp),
    .io_cmm_mmu_sfence_vma(iptw_io_cmm_mmu_sfence_vma),
    .io_ptw_get_ready(iptw_io_ptw_get_ready),
    .io_ptw_get_valid(iptw_io_ptw_get_valid),
    .io_ptw_get_bits_address(iptw_io_ptw_get_bits_address),
    .io_ptw_access_ready(iptw_io_ptw_access_ready),
    .io_ptw_access_valid(iptw_io_ptw_access_valid),
    .io_ptw_access_bits_opcode(iptw_io_ptw_access_bits_opcode),
    .io_ptw_access_bits_size(iptw_io_ptw_access_bits_size),
    .io_ptw_access_bits_data(iptw_io_ptw_access_bits_data)
  );
  PTW_1 dptw ( // @[MMU.scala 134:21]
    .clock(dptw_clock),
    .reset(dptw_reset),
    .io_ptw_i_ready(dptw_io_ptw_i_ready),
    .io_ptw_i_valid(dptw_io_ptw_i_valid),
    .io_ptw_i_bits_vaddr(dptw_io_ptw_i_bits_vaddr),
    .io_ptw_o_ready(dptw_io_ptw_o_ready),
    .io_ptw_o_valid(dptw_io_ptw_o_valid),
    .io_ptw_o_bits_renew_value(dptw_io_ptw_o_bits_renew_value),
    .io_ptw_o_bits_renew_is_giga_page(dptw_io_ptw_o_bits_renew_is_giga_page),
    .io_ptw_o_bits_renew_is_mega_page(dptw_io_ptw_o_bits_renew_is_mega_page),
    .io_ptw_o_bits_renew_asid(dptw_io_ptw_o_bits_renew_asid),
    .io_ptw_o_bits_renew_vpn_0(dptw_io_ptw_o_bits_renew_vpn_0),
    .io_ptw_o_bits_renew_vpn_1(dptw_io_ptw_o_bits_renew_vpn_1),
    .io_ptw_o_bits_renew_vpn_2(dptw_io_ptw_o_bits_renew_vpn_2),
    .io_ptw_o_bits_is_ptw_fail(dptw_io_ptw_o_bits_is_ptw_fail),
    .io_cmm_mmu_satp(dptw_io_cmm_mmu_satp),
    .io_cmm_mmu_sfence_vma(dptw_io_cmm_mmu_sfence_vma),
    .io_ptw_get_ready(dptw_io_ptw_get_ready),
    .io_ptw_get_valid(dptw_io_ptw_get_valid),
    .io_ptw_get_bits_address(dptw_io_ptw_get_bits_address),
    .io_ptw_access_ready(dptw_io_ptw_access_ready),
    .io_ptw_access_valid(dptw_io_ptw_access_valid),
    .io_ptw_access_bits_opcode(dptw_io_ptw_access_bits_opcode),
    .io_ptw_access_bits_size(dptw_io_ptw_access_bits_size),
    .io_ptw_access_bits_data(dptw_io_ptw_access_bits_data)
  );
  Arbiter_10 ptwGetArb ( // @[MMU.scala 285:26]
    .io_in_0_ready(ptwGetArb_io_in_0_ready),
    .io_in_0_valid(ptwGetArb_io_in_0_valid),
    .io_in_0_bits_address(ptwGetArb_io_in_0_bits_address),
    .io_in_1_ready(ptwGetArb_io_in_1_ready),
    .io_in_1_valid(ptwGetArb_io_in_1_valid),
    .io_in_1_bits_address(ptwGetArb_io_in_1_bits_address),
    .io_out_ready(ptwGetArb_io_out_ready),
    .io_out_valid(ptwGetArb_io_out_valid),
    .io_out_bits_source(ptwGetArb_io_out_bits_source),
    .io_out_bits_address(ptwGetArb_io_out_bits_address)
  );
  assign io_if_mmu_ready = _io_if_mmu_ready_T & ~io_if_flush & ~kill_iptw; // @[MMU.scala 160:35]
  assign io_mmu_if_valid = _io_if_mmu_ready_T_3 & _io_mmu_if_valid_T_6; // @[MMU.scala 214:18]
  assign io_mmu_if_bits_vaddr = io_if_mmu_bits_vaddr; // @[MMU.scala 198:26]
  assign io_mmu_if_bits_paddr = is_bypass_if ? io_if_mmu_bits_vaddr : ipaddr_paddr; // @[MMU.scala 196:21]
  assign io_mmu_if_bits_is_paging_fault = _iptw_io_ptw_i_valid_T_2 & _io_mmu_if_bits_is_paging_fault_T_7; // @[MMU.scala 207:21]
  assign io_mmu_if_bits_is_access_fault = ipaddr[63:32] != 32'h0; // @[MMU.scala 204:23]
  assign io_lsu_mmu_ready = _io_lsu_mmu_ready_T & ~io_lsu_flush & ~kill_dptw; // @[MMU.scala 168:37]
  assign io_mmu_lsu_valid = _io_lsu_mmu_ready_T_1 & _io_lsu_mmu_ready_T_3 & _io_mmu_lsu_valid_T_9; // @[MMU.scala 245:34]
  assign io_mmu_lsu_bits_paddr = is_bypass_ls ? io_lsu_mmu_bits_vaddr : dpaddr_paddr; // @[MMU.scala 228:21]
  assign io_mmu_lsu_bits_is_paging_fault = _dptw_io_ptw_i_valid_T_2 & _io_mmu_lsu_bits_is_paging_fault_T_9; // @[MMU.scala 239:21]
  assign io_mmu_lsu_bits_is_access_fault = dpaddr[63:32] != 32'h0; // @[MMU.scala 236:23]
  assign io_ptw_get_valid = ptwGetArb_io_out_valid; // @[MMU.scala 289:14]
  assign io_ptw_get_bits_source = ptwGetArb_io_out_bits_source; // @[MMU.scala 289:14]
  assign io_ptw_get_bits_address = ptwGetArb_io_out_bits_address; // @[MMU.scala 289:14]
  assign io_ptw_access_ready = ~io_ptw_access_bits_source ? iptw_io_ptw_access_ready : _GEN_4; // @[MMU.scala 292:45 293:24]
  assign itlb_clock = clock;
  assign itlb_reset = reset;
  assign itlb_io_req_valid = 1'h1; // @[MMU.scala 156:21]
  assign itlb_io_req_bits_vaddr = io_if_mmu_bits_vaddr; // @[MMU.scala 157:21]
  assign itlb_io_asid_i = io_cmm_mmu_satp[59:44]; // @[MMU.scala 158:37]
  assign itlb_io_tlb_renew_valid = _itlb_io_tlb_renew_valid_T & iptw_io_ptw_o_bits_is_X & ~
    iptw_io_ptw_o_bits_is_ptw_fail & _io_if_mmu_ready_T_3; // @[MMU.scala 268:110]
  assign itlb_io_tlb_renew_bits_value = iptw_io_ptw_o_bits_renew_value; // @[MMU.scala 265:26]
  assign itlb_io_tlb_renew_bits_is_giga_page = iptw_io_ptw_o_bits_renew_is_giga_page; // @[MMU.scala 265:26]
  assign itlb_io_tlb_renew_bits_is_mega_page = iptw_io_ptw_o_bits_renew_is_mega_page; // @[MMU.scala 265:26]
  assign itlb_io_tlb_renew_bits_asid = iptw_io_ptw_o_bits_renew_asid; // @[MMU.scala 265:26]
  assign itlb_io_tlb_renew_bits_vpn_0 = iptw_io_ptw_o_bits_renew_vpn_0; // @[MMU.scala 265:26]
  assign itlb_io_tlb_renew_bits_vpn_1 = iptw_io_ptw_o_bits_renew_vpn_1; // @[MMU.scala 265:26]
  assign itlb_io_tlb_renew_bits_vpn_2 = iptw_io_ptw_o_bits_renew_vpn_2; // @[MMU.scala 265:26]
  assign itlb_io_sfence_vma = io_cmm_mmu_sfence_vma; // @[MMU.scala 298:22]
  assign dtlb_clock = clock;
  assign dtlb_reset = reset;
  assign dtlb_io_req_valid = io_lsu_mmu_valid; // @[MMU.scala 164:21]
  assign dtlb_io_req_bits_vaddr = io_lsu_mmu_bits_vaddr; // @[MMU.scala 165:21]
  assign dtlb_io_asid_i = io_cmm_mmu_satp[59:44]; // @[MMU.scala 166:37]
  assign dtlb_io_tlb_renew_valid = _dtlb_io_tlb_renew_valid_T & ~dptw_io_ptw_o_bits_is_ptw_fail & _io_lsu_mmu_ready_T_3; // @[MMU.scala 269:110]
  assign dtlb_io_tlb_renew_bits_value = dptw_io_ptw_o_bits_renew_value; // @[MMU.scala 266:26]
  assign dtlb_io_tlb_renew_bits_is_giga_page = dptw_io_ptw_o_bits_renew_is_giga_page; // @[MMU.scala 266:26]
  assign dtlb_io_tlb_renew_bits_is_mega_page = dptw_io_ptw_o_bits_renew_is_mega_page; // @[MMU.scala 266:26]
  assign dtlb_io_tlb_renew_bits_asid = dptw_io_ptw_o_bits_renew_asid; // @[MMU.scala 266:26]
  assign dtlb_io_tlb_renew_bits_vpn_0 = dptw_io_ptw_o_bits_renew_vpn_0; // @[MMU.scala 266:26]
  assign dtlb_io_tlb_renew_bits_vpn_1 = dptw_io_ptw_o_bits_renew_vpn_1; // @[MMU.scala 266:26]
  assign dtlb_io_tlb_renew_bits_vpn_2 = dptw_io_ptw_o_bits_renew_vpn_2; // @[MMU.scala 266:26]
  assign dtlb_io_sfence_vma = io_cmm_mmu_sfence_vma; // @[MMU.scala 299:22]
  assign iptw_clock = clock;
  assign iptw_reset = reset;
  assign iptw_io_ptw_i_valid = ~itlb_io_is_hit & ~is_bypass_if & _io_if_mmu_ready_T_3; // @[MMU.scala 180:76]
  assign iptw_io_ptw_i_bits_vaddr = io_if_mmu_bits_vaddr; // @[MMU.scala 181:23]
  assign iptw_io_ptw_o_ready = io_mmu_if_ready | kill_iptw | io_if_flush; // @[MMU.scala 259:55]
  assign iptw_io_cmm_mmu_satp = io_cmm_mmu_satp; // @[MMU.scala 174:19]
  assign iptw_io_cmm_mmu_sfence_vma = io_cmm_mmu_sfence_vma; // @[MMU.scala 174:19]
  assign iptw_io_ptw_get_ready = ptwGetArb_io_in_0_ready; // @[MMU.scala 287:22]
  assign iptw_io_ptw_access_valid = ~io_ptw_access_bits_source & io_ptw_access_valid; // @[MMU.scala 292:45 293:24 279:28]
  assign iptw_io_ptw_access_bits_opcode = ~io_ptw_access_bits_source ? io_ptw_access_bits_opcode : 3'h0; // @[MMU.scala 292:45 293:24 281:27]
  assign iptw_io_ptw_access_bits_size = ~io_ptw_access_bits_source ? io_ptw_access_bits_size : 3'h0; // @[MMU.scala 292:45 293:24 281:27]
  assign iptw_io_ptw_access_bits_data = ~io_ptw_access_bits_source ? io_ptw_access_bits_data : 64'h0; // @[MMU.scala 292:45 293:24 281:27]
  assign dptw_clock = clock;
  assign dptw_reset = reset;
  assign dptw_io_ptw_i_valid = io_lsu_mmu_valid & ~dtlb_io_is_hit & ~is_bypass_ls & _io_lsu_mmu_ready_T_3; // @[MMU.scala 183:77]
  assign dptw_io_ptw_i_bits_vaddr = io_lsu_mmu_bits_vaddr; // @[MMU.scala 184:23]
  assign dptw_io_ptw_o_ready = io_mmu_lsu_ready | kill_dptw | io_lsu_flush; // @[MMU.scala 262:55]
  assign dptw_io_cmm_mmu_satp = io_cmm_mmu_satp; // @[MMU.scala 175:19]
  assign dptw_io_cmm_mmu_sfence_vma = io_cmm_mmu_sfence_vma; // @[MMU.scala 175:19]
  assign dptw_io_ptw_get_ready = ptwGetArb_io_in_1_ready; // @[MMU.scala 288:22]
  assign dptw_io_ptw_access_valid = ~io_ptw_access_bits_source ? 1'h0 : _GEN_5; // @[MMU.scala 280:28 292:45]
  assign dptw_io_ptw_access_bits_opcode = ~io_ptw_access_bits_source ? 3'h0 : _GEN_6; // @[MMU.scala 282:27 292:45]
  assign dptw_io_ptw_access_bits_size = ~io_ptw_access_bits_source ? 3'h0 : _GEN_8; // @[MMU.scala 282:27 292:45]
  assign dptw_io_ptw_access_bits_data = ~io_ptw_access_bits_source ? 64'h0 : _GEN_12; // @[MMU.scala 282:27 292:45]
  assign ptwGetArb_io_in_0_valid = iptw_io_ptw_get_valid; // @[MMU.scala 287:22]
  assign ptwGetArb_io_in_0_bits_address = iptw_io_ptw_get_bits_address; // @[MMU.scala 287:22]
  assign ptwGetArb_io_in_1_valid = dptw_io_ptw_get_valid; // @[MMU.scala 288:22]
  assign ptwGetArb_io_in_1_bits_address = dptw_io_ptw_get_bits_address; // @[MMU.scala 288:22]
  assign ptwGetArb_io_out_ready = io_ptw_get_ready; // @[MMU.scala 289:14]
  always @(posedge clock) begin
    if (reset) begin // @[MMU.scala 141:26]
      kill_iptw <= 1'h0; // @[MMU.scala 141:26]
    end else begin
      kill_iptw <= _GEN_1;
    end
    if (reset) begin // @[MMU.scala 142:26]
      kill_dptw <= 1'h0; // @[MMU.scala 142:26]
    end else begin
      kill_dptw <= _GEN_3;
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(_T == _io_lsu_mmu_ready_T)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at MMU.scala:170 assert( io.lsu_mmu.fire === io.mmu_lsu.fire )\n"
            ); // @[MMU.scala 170:9]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T == _io_lsu_mmu_ready_T) & ~reset) begin
          $fatal; // @[MMU.scala 170:9]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_4 & ~(~(_io_mmu_if_valid_T_4 & itlb_io_is_hit & _io_if_mmu_ready_T_3))) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at MMU.scala:220 assert( ~((iptw.io.ptw_o.bits.is_X & iptw.io.ptw_o.valid) & itlb.io.is_hit & ~kill_iptw )  )\n"
            ); // @[MMU.scala 220:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_io_mmu_if_valid_T_4 & itlb_io_is_hit & _io_if_mmu_ready_T_3)) & _T_4) begin
          $fatal; // @[MMU.scala 220:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_4 & ~(~(_io_mmu_lsu_bits_is_access_fault_T_2 & dtlb_io_is_hit & _io_lsu_mmu_ready_T_3))) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at MMU.scala:256 assert( ~((~dptw.io.ptw_o.bits.is_X & dptw.io.ptw_o.valid) & dtlb.io.is_hit & ~kill_dptw)  )\n"
            ); // @[MMU.scala 256:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_io_mmu_lsu_bits_is_access_fault_T_2 & dtlb_io_is_hit & _io_lsu_mmu_ready_T_3)) & _T_4) begin
          $fatal; // @[MMU.scala 256:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_cmm_mmu_sfence_vma & _T_4 & ~(io_if_flush & io_lsu_flush)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at MMU.scala:338 assert( io.if_flush & io.lsu_flush )\n"); // @[MMU.scala 338:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(io_if_flush & io_lsu_flush) & (io_cmm_mmu_sfence_vma & _T_4)) begin
          $fatal; // @[MMU.scala 338:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  kill_iptw = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  kill_dptw = _RAND_1[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module diff(
  input  [63:0] io_diffXReg_0,
  input  [63:0] io_diffXReg_1,
  input  [63:0] io_diffXReg_2,
  input  [63:0] io_diffXReg_3,
  input  [63:0] io_diffXReg_4,
  input  [63:0] io_diffXReg_5,
  input  [63:0] io_diffXReg_6,
  input  [63:0] io_diffXReg_7,
  input  [63:0] io_diffXReg_8,
  input  [63:0] io_diffXReg_9,
  input  [63:0] io_diffXReg_10,
  input  [63:0] io_diffXReg_11,
  input  [63:0] io_diffXReg_12,
  input  [63:0] io_diffXReg_13,
  input  [63:0] io_diffXReg_14,
  input  [63:0] io_diffXReg_15,
  input  [63:0] io_diffXReg_16,
  input  [63:0] io_diffXReg_17,
  input  [63:0] io_diffXReg_18,
  input  [63:0] io_diffXReg_19,
  input  [63:0] io_diffXReg_20,
  input  [63:0] io_diffXReg_21,
  input  [63:0] io_diffXReg_22,
  input  [63:0] io_diffXReg_23,
  input  [63:0] io_diffXReg_24,
  input  [63:0] io_diffXReg_25,
  input  [63:0] io_diffXReg_26,
  input  [63:0] io_diffXReg_27,
  input  [63:0] io_diffXReg_28,
  input  [63:0] io_diffXReg_29,
  input  [63:0] io_diffXReg_30,
  input  [63:0] io_diffXReg_31,
  input  [64:0] io_diffFReg_0,
  input  [64:0] io_diffFReg_1,
  input  [64:0] io_diffFReg_2,
  input  [64:0] io_diffFReg_3,
  input  [64:0] io_diffFReg_4,
  input  [64:0] io_diffFReg_5,
  input  [64:0] io_diffFReg_6,
  input  [64:0] io_diffFReg_7,
  input  [64:0] io_diffFReg_8,
  input  [64:0] io_diffFReg_9,
  input  [64:0] io_diffFReg_10,
  input  [64:0] io_diffFReg_11,
  input  [64:0] io_diffFReg_12,
  input  [64:0] io_diffFReg_13,
  input  [64:0] io_diffFReg_14,
  input  [64:0] io_diffFReg_15,
  input  [64:0] io_diffFReg_16,
  input  [64:0] io_diffFReg_17,
  input  [64:0] io_diffFReg_18,
  input  [64:0] io_diffFReg_19,
  input  [64:0] io_diffFReg_20,
  input  [64:0] io_diffFReg_21,
  input  [64:0] io_diffFReg_22,
  input  [64:0] io_diffFReg_23,
  input  [64:0] io_diffFReg_24,
  input  [64:0] io_diffFReg_25,
  input  [64:0] io_diffFReg_26,
  input  [64:0] io_diffFReg_27,
  input  [64:0] io_diffFReg_28,
  input  [64:0] io_diffFReg_29,
  input  [64:0] io_diffFReg_30,
  input  [64:0] io_diffFReg_31,
  input  [63:0] io_commit_pc_0,
  input         io_commit_comfirm_0,
  input         io_commit_abort_0,
  input  [1:0]  io_commit_priv_lvl,
  input         io_commit_is_ecall_M,
  input         io_commit_is_ecall_S,
  input         io_commit_is_ecall_U,
  input  [63:0] io_csr_mstatus,
  input  [63:0] io_csr_mtvec,
  input  [63:0] io_csr_mscratch,
  input  [63:0] io_csr_mepc,
  input  [63:0] io_csr_mcause,
  input  [63:0] io_csr_mtval,
  input  [63:0] io_csr_mvendorid,
  input  [63:0] io_csr_marchid,
  input  [63:0] io_csr_mimpid,
  input  [63:0] io_csr_mhartid,
  input  [63:0] io_csr_misa,
  input  [63:0] io_csr_mie,
  input  [63:0] io_csr_mip,
  input  [63:0] io_csr_medeleg,
  input  [63:0] io_csr_mideleg,
  input  [63:0] io_csr_pmpcfg_0,
  input  [63:0] io_csr_pmpaddr_0,
  input  [63:0] io_csr_pmpaddr_1,
  input  [63:0] io_csr_pmpaddr_2,
  input  [63:0] io_csr_pmpaddr_3,
  input  [63:0] io_csr_pmpaddr_4,
  input  [63:0] io_csr_pmpaddr_5,
  input  [63:0] io_csr_pmpaddr_6,
  input  [63:0] io_csr_pmpaddr_7,
  input  [63:0] io_csr_stvec,
  input  [63:0] io_csr_sscratch,
  input  [63:0] io_csr_sepc,
  input  [63:0] io_csr_scause,
  input  [63:0] io_csr_stval,
  input  [63:0] io_csr_satp,
  input  [31:0] io_csr_fflags,
  input  [7:0]  io_csr_frm,
  input  [63:0] io_csr_mcycle,
  input  [63:0] io_csr_minstret,
  input  [63:0] io_csr_mhpmcounter_0,
  input  [63:0] io_csr_mhpmcounter_1,
  input  [63:0] io_csr_mhpmcounter_2,
  input  [63:0] io_csr_mhpmcounter_3,
  input  [63:0] io_csr_mhpmcounter_4,
  input  [63:0] io_csr_mhpmcounter_5,
  input  [63:0] io_csr_mhpmcounter_6,
  input  [63:0] io_csr_mhpmcounter_7,
  input  [63:0] io_csr_mhpmcounter_8,
  input  [63:0] io_csr_mhpmcounter_9,
  input  [63:0] io_csr_mhpmcounter_10,
  input  [63:0] io_csr_mhpmcounter_11,
  input  [63:0] io_csr_mhpmcounter_12,
  input  [63:0] io_csr_mhpmcounter_13,
  input  [63:0] io_csr_mhpmcounter_14,
  input  [63:0] io_csr_mhpmcounter_15,
  input  [63:0] io_csr_mhpmcounter_16,
  input  [63:0] io_csr_mhpmcounter_17,
  input  [63:0] io_csr_mhpmcounter_18,
  input  [63:0] io_csr_mhpmcounter_19,
  input  [63:0] io_csr_mhpmcounter_20,
  input  [63:0] io_csr_mhpmcounter_21,
  input  [63:0] io_csr_mhpmcounter_22,
  input  [63:0] io_csr_mhpmcounter_23,
  input  [63:0] io_csr_mhpmcounter_24,
  input  [63:0] io_csr_mhpmcounter_25,
  input  [63:0] io_csr_mhpmcounter_26,
  input  [63:0] io_csr_mhpmcounter_27,
  input  [63:0] io_csr_mhpmcounter_28,
  input  [63:0] io_csr_mhpmcounter_29,
  input  [63:0] io_csr_mhpmcounter_30,
  input  [63:0] io_csr_mhpmcounter_31
);
  wire [32:0] FReg1_ft_0_unbx_floats_0 = {io_diffFReg_0[31],io_diffFReg_0[52],io_diffFReg_0[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_0_unbx_isbox = &io_diffFReg_0[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_ft_0_unbx_T = FReg1_ft_0_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_ft_0_unbx = FReg1_ft_0_unbx_floats_0 | _FReg1_ft_0_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_ft_0_ie_rawIn_exp = FReg1_ft_0_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_ft_0_ie_rawIn_isZero = FReg1_ft_0_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_ft_0_ie_rawIn_isSpecial = FReg1_ft_0_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_ft_0_ie_rawIn__isNaN = FReg1_ft_0_ie_rawIn_isSpecial & FReg1_ft_0_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_ft_0_ie_rawIn__isInf = FReg1_ft_0_ie_rawIn_isSpecial & ~FReg1_ft_0_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_ft_0_ie_rawIn__sign = FReg1_ft_0_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_ft_0_ie_rawIn__sExp = {1'b0,$signed(FReg1_ft_0_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_ft_0_ie_rawIn_out_sig_T = ~FReg1_ft_0_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_ft_0_ie_rawIn__sig = {1'h0,_FReg1_ft_0_ie_rawIn_out_sig_T,FReg1_ft_0_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_0_ie_isSubnormal = $signed(FReg1_ft_0_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_ft_0_ie_denormShiftDist = 5'h1 - FReg1_ft_0_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_ft_0_ie_denormFract_T_1 = FReg1_ft_0_ie_rawIn__sig[24:1] >> FReg1_ft_0_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_ft_0_ie_denormFract = _FReg1_ft_0_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_ft_0_ie_expOut_T_2 = FReg1_ft_0_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_ft_0_ie_expOut_T_3 = FReg1_ft_0_ie_isSubnormal ? 8'h0 : _FReg1_ft_0_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_ft_0_ie_expOut_T_4 = FReg1_ft_0_ie_rawIn__isNaN | FReg1_ft_0_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_ft_0_ie_expOut_T_6 = _FReg1_ft_0_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_ft_0_ie_expOut = _FReg1_ft_0_ie_expOut_T_3 | _FReg1_ft_0_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_ft_0_ie_fractOut_T_1 = FReg1_ft_0_ie_rawIn__isInf ? 23'h0 : FReg1_ft_0_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_ft_0_ie_fractOut = FReg1_ft_0_ie_isSubnormal ? FReg1_ft_0_ie_denormFract :
    _FReg1_ft_0_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_ft_0_ie = {FReg1_ft_0_ie_rawIn__sign,FReg1_ft_0_ie_expOut,FReg1_ft_0_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_ft_0_T_3 = FReg1_ft_0_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_ft_1_unbx_floats_0 = {io_diffFReg_1[31],io_diffFReg_1[52],io_diffFReg_1[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_1_unbx_isbox = &io_diffFReg_1[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_ft_1_unbx_T = FReg1_ft_1_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_ft_1_unbx = FReg1_ft_1_unbx_floats_0 | _FReg1_ft_1_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_ft_1_ie_rawIn_exp = FReg1_ft_1_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_ft_1_ie_rawIn_isZero = FReg1_ft_1_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_ft_1_ie_rawIn_isSpecial = FReg1_ft_1_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_ft_1_ie_rawIn__isNaN = FReg1_ft_1_ie_rawIn_isSpecial & FReg1_ft_1_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_ft_1_ie_rawIn__isInf = FReg1_ft_1_ie_rawIn_isSpecial & ~FReg1_ft_1_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_ft_1_ie_rawIn__sign = FReg1_ft_1_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_ft_1_ie_rawIn__sExp = {1'b0,$signed(FReg1_ft_1_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_ft_1_ie_rawIn_out_sig_T = ~FReg1_ft_1_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_ft_1_ie_rawIn__sig = {1'h0,_FReg1_ft_1_ie_rawIn_out_sig_T,FReg1_ft_1_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_1_ie_isSubnormal = $signed(FReg1_ft_1_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_ft_1_ie_denormShiftDist = 5'h1 - FReg1_ft_1_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_ft_1_ie_denormFract_T_1 = FReg1_ft_1_ie_rawIn__sig[24:1] >> FReg1_ft_1_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_ft_1_ie_denormFract = _FReg1_ft_1_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_ft_1_ie_expOut_T_2 = FReg1_ft_1_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_ft_1_ie_expOut_T_3 = FReg1_ft_1_ie_isSubnormal ? 8'h0 : _FReg1_ft_1_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_ft_1_ie_expOut_T_4 = FReg1_ft_1_ie_rawIn__isNaN | FReg1_ft_1_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_ft_1_ie_expOut_T_6 = _FReg1_ft_1_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_ft_1_ie_expOut = _FReg1_ft_1_ie_expOut_T_3 | _FReg1_ft_1_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_ft_1_ie_fractOut_T_1 = FReg1_ft_1_ie_rawIn__isInf ? 23'h0 : FReg1_ft_1_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_ft_1_ie_fractOut = FReg1_ft_1_ie_isSubnormal ? FReg1_ft_1_ie_denormFract :
    _FReg1_ft_1_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_ft_1_ie = {FReg1_ft_1_ie_rawIn__sign,FReg1_ft_1_ie_expOut,FReg1_ft_1_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_ft_1_T_3 = FReg1_ft_1_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_ft_2_unbx_floats_0 = {io_diffFReg_2[31],io_diffFReg_2[52],io_diffFReg_2[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_2_unbx_isbox = &io_diffFReg_2[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_ft_2_unbx_T = FReg1_ft_2_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_ft_2_unbx = FReg1_ft_2_unbx_floats_0 | _FReg1_ft_2_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_ft_2_ie_rawIn_exp = FReg1_ft_2_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_ft_2_ie_rawIn_isZero = FReg1_ft_2_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_ft_2_ie_rawIn_isSpecial = FReg1_ft_2_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_ft_2_ie_rawIn__isNaN = FReg1_ft_2_ie_rawIn_isSpecial & FReg1_ft_2_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_ft_2_ie_rawIn__isInf = FReg1_ft_2_ie_rawIn_isSpecial & ~FReg1_ft_2_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_ft_2_ie_rawIn__sign = FReg1_ft_2_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_ft_2_ie_rawIn__sExp = {1'b0,$signed(FReg1_ft_2_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_ft_2_ie_rawIn_out_sig_T = ~FReg1_ft_2_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_ft_2_ie_rawIn__sig = {1'h0,_FReg1_ft_2_ie_rawIn_out_sig_T,FReg1_ft_2_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_2_ie_isSubnormal = $signed(FReg1_ft_2_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_ft_2_ie_denormShiftDist = 5'h1 - FReg1_ft_2_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_ft_2_ie_denormFract_T_1 = FReg1_ft_2_ie_rawIn__sig[24:1] >> FReg1_ft_2_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_ft_2_ie_denormFract = _FReg1_ft_2_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_ft_2_ie_expOut_T_2 = FReg1_ft_2_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_ft_2_ie_expOut_T_3 = FReg1_ft_2_ie_isSubnormal ? 8'h0 : _FReg1_ft_2_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_ft_2_ie_expOut_T_4 = FReg1_ft_2_ie_rawIn__isNaN | FReg1_ft_2_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_ft_2_ie_expOut_T_6 = _FReg1_ft_2_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_ft_2_ie_expOut = _FReg1_ft_2_ie_expOut_T_3 | _FReg1_ft_2_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_ft_2_ie_fractOut_T_1 = FReg1_ft_2_ie_rawIn__isInf ? 23'h0 : FReg1_ft_2_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_ft_2_ie_fractOut = FReg1_ft_2_ie_isSubnormal ? FReg1_ft_2_ie_denormFract :
    _FReg1_ft_2_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_ft_2_ie = {FReg1_ft_2_ie_rawIn__sign,FReg1_ft_2_ie_expOut,FReg1_ft_2_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_ft_2_T_3 = FReg1_ft_2_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_ft_3_unbx_floats_0 = {io_diffFReg_3[31],io_diffFReg_3[52],io_diffFReg_3[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_3_unbx_isbox = &io_diffFReg_3[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_ft_3_unbx_T = FReg1_ft_3_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_ft_3_unbx = FReg1_ft_3_unbx_floats_0 | _FReg1_ft_3_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_ft_3_ie_rawIn_exp = FReg1_ft_3_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_ft_3_ie_rawIn_isZero = FReg1_ft_3_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_ft_3_ie_rawIn_isSpecial = FReg1_ft_3_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_ft_3_ie_rawIn__isNaN = FReg1_ft_3_ie_rawIn_isSpecial & FReg1_ft_3_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_ft_3_ie_rawIn__isInf = FReg1_ft_3_ie_rawIn_isSpecial & ~FReg1_ft_3_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_ft_3_ie_rawIn__sign = FReg1_ft_3_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_ft_3_ie_rawIn__sExp = {1'b0,$signed(FReg1_ft_3_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_ft_3_ie_rawIn_out_sig_T = ~FReg1_ft_3_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_ft_3_ie_rawIn__sig = {1'h0,_FReg1_ft_3_ie_rawIn_out_sig_T,FReg1_ft_3_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_3_ie_isSubnormal = $signed(FReg1_ft_3_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_ft_3_ie_denormShiftDist = 5'h1 - FReg1_ft_3_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_ft_3_ie_denormFract_T_1 = FReg1_ft_3_ie_rawIn__sig[24:1] >> FReg1_ft_3_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_ft_3_ie_denormFract = _FReg1_ft_3_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_ft_3_ie_expOut_T_2 = FReg1_ft_3_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_ft_3_ie_expOut_T_3 = FReg1_ft_3_ie_isSubnormal ? 8'h0 : _FReg1_ft_3_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_ft_3_ie_expOut_T_4 = FReg1_ft_3_ie_rawIn__isNaN | FReg1_ft_3_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_ft_3_ie_expOut_T_6 = _FReg1_ft_3_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_ft_3_ie_expOut = _FReg1_ft_3_ie_expOut_T_3 | _FReg1_ft_3_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_ft_3_ie_fractOut_T_1 = FReg1_ft_3_ie_rawIn__isInf ? 23'h0 : FReg1_ft_3_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_ft_3_ie_fractOut = FReg1_ft_3_ie_isSubnormal ? FReg1_ft_3_ie_denormFract :
    _FReg1_ft_3_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_ft_3_ie = {FReg1_ft_3_ie_rawIn__sign,FReg1_ft_3_ie_expOut,FReg1_ft_3_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_ft_3_T_3 = FReg1_ft_3_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_ft_4_unbx_floats_0 = {io_diffFReg_4[31],io_diffFReg_4[52],io_diffFReg_4[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_4_unbx_isbox = &io_diffFReg_4[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_ft_4_unbx_T = FReg1_ft_4_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_ft_4_unbx = FReg1_ft_4_unbx_floats_0 | _FReg1_ft_4_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_ft_4_ie_rawIn_exp = FReg1_ft_4_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_ft_4_ie_rawIn_isZero = FReg1_ft_4_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_ft_4_ie_rawIn_isSpecial = FReg1_ft_4_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_ft_4_ie_rawIn__isNaN = FReg1_ft_4_ie_rawIn_isSpecial & FReg1_ft_4_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_ft_4_ie_rawIn__isInf = FReg1_ft_4_ie_rawIn_isSpecial & ~FReg1_ft_4_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_ft_4_ie_rawIn__sign = FReg1_ft_4_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_ft_4_ie_rawIn__sExp = {1'b0,$signed(FReg1_ft_4_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_ft_4_ie_rawIn_out_sig_T = ~FReg1_ft_4_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_ft_4_ie_rawIn__sig = {1'h0,_FReg1_ft_4_ie_rawIn_out_sig_T,FReg1_ft_4_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_4_ie_isSubnormal = $signed(FReg1_ft_4_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_ft_4_ie_denormShiftDist = 5'h1 - FReg1_ft_4_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_ft_4_ie_denormFract_T_1 = FReg1_ft_4_ie_rawIn__sig[24:1] >> FReg1_ft_4_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_ft_4_ie_denormFract = _FReg1_ft_4_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_ft_4_ie_expOut_T_2 = FReg1_ft_4_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_ft_4_ie_expOut_T_3 = FReg1_ft_4_ie_isSubnormal ? 8'h0 : _FReg1_ft_4_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_ft_4_ie_expOut_T_4 = FReg1_ft_4_ie_rawIn__isNaN | FReg1_ft_4_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_ft_4_ie_expOut_T_6 = _FReg1_ft_4_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_ft_4_ie_expOut = _FReg1_ft_4_ie_expOut_T_3 | _FReg1_ft_4_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_ft_4_ie_fractOut_T_1 = FReg1_ft_4_ie_rawIn__isInf ? 23'h0 : FReg1_ft_4_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_ft_4_ie_fractOut = FReg1_ft_4_ie_isSubnormal ? FReg1_ft_4_ie_denormFract :
    _FReg1_ft_4_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_ft_4_ie = {FReg1_ft_4_ie_rawIn__sign,FReg1_ft_4_ie_expOut,FReg1_ft_4_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_ft_4_T_3 = FReg1_ft_4_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_ft_5_unbx_floats_0 = {io_diffFReg_5[31],io_diffFReg_5[52],io_diffFReg_5[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_5_unbx_isbox = &io_diffFReg_5[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_ft_5_unbx_T = FReg1_ft_5_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_ft_5_unbx = FReg1_ft_5_unbx_floats_0 | _FReg1_ft_5_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_ft_5_ie_rawIn_exp = FReg1_ft_5_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_ft_5_ie_rawIn_isZero = FReg1_ft_5_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_ft_5_ie_rawIn_isSpecial = FReg1_ft_5_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_ft_5_ie_rawIn__isNaN = FReg1_ft_5_ie_rawIn_isSpecial & FReg1_ft_5_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_ft_5_ie_rawIn__isInf = FReg1_ft_5_ie_rawIn_isSpecial & ~FReg1_ft_5_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_ft_5_ie_rawIn__sign = FReg1_ft_5_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_ft_5_ie_rawIn__sExp = {1'b0,$signed(FReg1_ft_5_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_ft_5_ie_rawIn_out_sig_T = ~FReg1_ft_5_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_ft_5_ie_rawIn__sig = {1'h0,_FReg1_ft_5_ie_rawIn_out_sig_T,FReg1_ft_5_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_5_ie_isSubnormal = $signed(FReg1_ft_5_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_ft_5_ie_denormShiftDist = 5'h1 - FReg1_ft_5_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_ft_5_ie_denormFract_T_1 = FReg1_ft_5_ie_rawIn__sig[24:1] >> FReg1_ft_5_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_ft_5_ie_denormFract = _FReg1_ft_5_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_ft_5_ie_expOut_T_2 = FReg1_ft_5_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_ft_5_ie_expOut_T_3 = FReg1_ft_5_ie_isSubnormal ? 8'h0 : _FReg1_ft_5_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_ft_5_ie_expOut_T_4 = FReg1_ft_5_ie_rawIn__isNaN | FReg1_ft_5_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_ft_5_ie_expOut_T_6 = _FReg1_ft_5_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_ft_5_ie_expOut = _FReg1_ft_5_ie_expOut_T_3 | _FReg1_ft_5_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_ft_5_ie_fractOut_T_1 = FReg1_ft_5_ie_rawIn__isInf ? 23'h0 : FReg1_ft_5_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_ft_5_ie_fractOut = FReg1_ft_5_ie_isSubnormal ? FReg1_ft_5_ie_denormFract :
    _FReg1_ft_5_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_ft_5_ie = {FReg1_ft_5_ie_rawIn__sign,FReg1_ft_5_ie_expOut,FReg1_ft_5_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_ft_5_T_3 = FReg1_ft_5_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_ft_6_unbx_floats_0 = {io_diffFReg_6[31],io_diffFReg_6[52],io_diffFReg_6[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_6_unbx_isbox = &io_diffFReg_6[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_ft_6_unbx_T = FReg1_ft_6_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_ft_6_unbx = FReg1_ft_6_unbx_floats_0 | _FReg1_ft_6_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_ft_6_ie_rawIn_exp = FReg1_ft_6_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_ft_6_ie_rawIn_isZero = FReg1_ft_6_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_ft_6_ie_rawIn_isSpecial = FReg1_ft_6_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_ft_6_ie_rawIn__isNaN = FReg1_ft_6_ie_rawIn_isSpecial & FReg1_ft_6_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_ft_6_ie_rawIn__isInf = FReg1_ft_6_ie_rawIn_isSpecial & ~FReg1_ft_6_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_ft_6_ie_rawIn__sign = FReg1_ft_6_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_ft_6_ie_rawIn__sExp = {1'b0,$signed(FReg1_ft_6_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_ft_6_ie_rawIn_out_sig_T = ~FReg1_ft_6_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_ft_6_ie_rawIn__sig = {1'h0,_FReg1_ft_6_ie_rawIn_out_sig_T,FReg1_ft_6_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_6_ie_isSubnormal = $signed(FReg1_ft_6_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_ft_6_ie_denormShiftDist = 5'h1 - FReg1_ft_6_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_ft_6_ie_denormFract_T_1 = FReg1_ft_6_ie_rawIn__sig[24:1] >> FReg1_ft_6_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_ft_6_ie_denormFract = _FReg1_ft_6_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_ft_6_ie_expOut_T_2 = FReg1_ft_6_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_ft_6_ie_expOut_T_3 = FReg1_ft_6_ie_isSubnormal ? 8'h0 : _FReg1_ft_6_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_ft_6_ie_expOut_T_4 = FReg1_ft_6_ie_rawIn__isNaN | FReg1_ft_6_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_ft_6_ie_expOut_T_6 = _FReg1_ft_6_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_ft_6_ie_expOut = _FReg1_ft_6_ie_expOut_T_3 | _FReg1_ft_6_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_ft_6_ie_fractOut_T_1 = FReg1_ft_6_ie_rawIn__isInf ? 23'h0 : FReg1_ft_6_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_ft_6_ie_fractOut = FReg1_ft_6_ie_isSubnormal ? FReg1_ft_6_ie_denormFract :
    _FReg1_ft_6_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_ft_6_ie = {FReg1_ft_6_ie_rawIn__sign,FReg1_ft_6_ie_expOut,FReg1_ft_6_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_ft_6_T_3 = FReg1_ft_6_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_ft_7_unbx_floats_0 = {io_diffFReg_7[31],io_diffFReg_7[52],io_diffFReg_7[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_7_unbx_isbox = &io_diffFReg_7[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_ft_7_unbx_T = FReg1_ft_7_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_ft_7_unbx = FReg1_ft_7_unbx_floats_0 | _FReg1_ft_7_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_ft_7_ie_rawIn_exp = FReg1_ft_7_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_ft_7_ie_rawIn_isZero = FReg1_ft_7_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_ft_7_ie_rawIn_isSpecial = FReg1_ft_7_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_ft_7_ie_rawIn__isNaN = FReg1_ft_7_ie_rawIn_isSpecial & FReg1_ft_7_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_ft_7_ie_rawIn__isInf = FReg1_ft_7_ie_rawIn_isSpecial & ~FReg1_ft_7_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_ft_7_ie_rawIn__sign = FReg1_ft_7_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_ft_7_ie_rawIn__sExp = {1'b0,$signed(FReg1_ft_7_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_ft_7_ie_rawIn_out_sig_T = ~FReg1_ft_7_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_ft_7_ie_rawIn__sig = {1'h0,_FReg1_ft_7_ie_rawIn_out_sig_T,FReg1_ft_7_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_7_ie_isSubnormal = $signed(FReg1_ft_7_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_ft_7_ie_denormShiftDist = 5'h1 - FReg1_ft_7_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_ft_7_ie_denormFract_T_1 = FReg1_ft_7_ie_rawIn__sig[24:1] >> FReg1_ft_7_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_ft_7_ie_denormFract = _FReg1_ft_7_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_ft_7_ie_expOut_T_2 = FReg1_ft_7_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_ft_7_ie_expOut_T_3 = FReg1_ft_7_ie_isSubnormal ? 8'h0 : _FReg1_ft_7_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_ft_7_ie_expOut_T_4 = FReg1_ft_7_ie_rawIn__isNaN | FReg1_ft_7_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_ft_7_ie_expOut_T_6 = _FReg1_ft_7_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_ft_7_ie_expOut = _FReg1_ft_7_ie_expOut_T_3 | _FReg1_ft_7_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_ft_7_ie_fractOut_T_1 = FReg1_ft_7_ie_rawIn__isInf ? 23'h0 : FReg1_ft_7_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_ft_7_ie_fractOut = FReg1_ft_7_ie_isSubnormal ? FReg1_ft_7_ie_denormFract :
    _FReg1_ft_7_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_ft_7_ie = {FReg1_ft_7_ie_rawIn__sign,FReg1_ft_7_ie_expOut,FReg1_ft_7_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_ft_7_T_3 = FReg1_ft_7_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_fs_0_unbx_floats_0 = {io_diffFReg_8[31],io_diffFReg_8[52],io_diffFReg_8[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_0_unbx_isbox = &io_diffFReg_8[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_fs_0_unbx_T = FReg1_fs_0_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_fs_0_unbx = FReg1_fs_0_unbx_floats_0 | _FReg1_fs_0_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_fs_0_ie_rawIn_exp = FReg1_fs_0_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_fs_0_ie_rawIn_isZero = FReg1_fs_0_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_fs_0_ie_rawIn_isSpecial = FReg1_fs_0_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_fs_0_ie_rawIn__isNaN = FReg1_fs_0_ie_rawIn_isSpecial & FReg1_fs_0_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_fs_0_ie_rawIn__isInf = FReg1_fs_0_ie_rawIn_isSpecial & ~FReg1_fs_0_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_fs_0_ie_rawIn__sign = FReg1_fs_0_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_fs_0_ie_rawIn__sExp = {1'b0,$signed(FReg1_fs_0_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_fs_0_ie_rawIn_out_sig_T = ~FReg1_fs_0_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_fs_0_ie_rawIn__sig = {1'h0,_FReg1_fs_0_ie_rawIn_out_sig_T,FReg1_fs_0_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_0_ie_isSubnormal = $signed(FReg1_fs_0_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_fs_0_ie_denormShiftDist = 5'h1 - FReg1_fs_0_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_fs_0_ie_denormFract_T_1 = FReg1_fs_0_ie_rawIn__sig[24:1] >> FReg1_fs_0_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_fs_0_ie_denormFract = _FReg1_fs_0_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_fs_0_ie_expOut_T_2 = FReg1_fs_0_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_fs_0_ie_expOut_T_3 = FReg1_fs_0_ie_isSubnormal ? 8'h0 : _FReg1_fs_0_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_fs_0_ie_expOut_T_4 = FReg1_fs_0_ie_rawIn__isNaN | FReg1_fs_0_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_fs_0_ie_expOut_T_6 = _FReg1_fs_0_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_fs_0_ie_expOut = _FReg1_fs_0_ie_expOut_T_3 | _FReg1_fs_0_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_fs_0_ie_fractOut_T_1 = FReg1_fs_0_ie_rawIn__isInf ? 23'h0 : FReg1_fs_0_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_fs_0_ie_fractOut = FReg1_fs_0_ie_isSubnormal ? FReg1_fs_0_ie_denormFract :
    _FReg1_fs_0_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_fs_0_ie = {FReg1_fs_0_ie_rawIn__sign,FReg1_fs_0_ie_expOut,FReg1_fs_0_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_fs_0_T_3 = FReg1_fs_0_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_fs_1_unbx_floats_0 = {io_diffFReg_9[31],io_diffFReg_9[52],io_diffFReg_9[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_1_unbx_isbox = &io_diffFReg_9[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_fs_1_unbx_T = FReg1_fs_1_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_fs_1_unbx = FReg1_fs_1_unbx_floats_0 | _FReg1_fs_1_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_fs_1_ie_rawIn_exp = FReg1_fs_1_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_fs_1_ie_rawIn_isZero = FReg1_fs_1_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_fs_1_ie_rawIn_isSpecial = FReg1_fs_1_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_fs_1_ie_rawIn__isNaN = FReg1_fs_1_ie_rawIn_isSpecial & FReg1_fs_1_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_fs_1_ie_rawIn__isInf = FReg1_fs_1_ie_rawIn_isSpecial & ~FReg1_fs_1_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_fs_1_ie_rawIn__sign = FReg1_fs_1_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_fs_1_ie_rawIn__sExp = {1'b0,$signed(FReg1_fs_1_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_fs_1_ie_rawIn_out_sig_T = ~FReg1_fs_1_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_fs_1_ie_rawIn__sig = {1'h0,_FReg1_fs_1_ie_rawIn_out_sig_T,FReg1_fs_1_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_1_ie_isSubnormal = $signed(FReg1_fs_1_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_fs_1_ie_denormShiftDist = 5'h1 - FReg1_fs_1_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_fs_1_ie_denormFract_T_1 = FReg1_fs_1_ie_rawIn__sig[24:1] >> FReg1_fs_1_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_fs_1_ie_denormFract = _FReg1_fs_1_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_fs_1_ie_expOut_T_2 = FReg1_fs_1_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_fs_1_ie_expOut_T_3 = FReg1_fs_1_ie_isSubnormal ? 8'h0 : _FReg1_fs_1_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_fs_1_ie_expOut_T_4 = FReg1_fs_1_ie_rawIn__isNaN | FReg1_fs_1_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_fs_1_ie_expOut_T_6 = _FReg1_fs_1_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_fs_1_ie_expOut = _FReg1_fs_1_ie_expOut_T_3 | _FReg1_fs_1_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_fs_1_ie_fractOut_T_1 = FReg1_fs_1_ie_rawIn__isInf ? 23'h0 : FReg1_fs_1_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_fs_1_ie_fractOut = FReg1_fs_1_ie_isSubnormal ? FReg1_fs_1_ie_denormFract :
    _FReg1_fs_1_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_fs_1_ie = {FReg1_fs_1_ie_rawIn__sign,FReg1_fs_1_ie_expOut,FReg1_fs_1_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_fs_1_T_3 = FReg1_fs_1_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_fa_0_unbx_floats_0 = {io_diffFReg_10[31],io_diffFReg_10[52],io_diffFReg_10[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fa_0_unbx_isbox = &io_diffFReg_10[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_fa_0_unbx_T = FReg1_fa_0_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_fa_0_unbx = FReg1_fa_0_unbx_floats_0 | _FReg1_fa_0_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_fa_0_ie_rawIn_exp = FReg1_fa_0_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_fa_0_ie_rawIn_isZero = FReg1_fa_0_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_fa_0_ie_rawIn_isSpecial = FReg1_fa_0_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_fa_0_ie_rawIn__isNaN = FReg1_fa_0_ie_rawIn_isSpecial & FReg1_fa_0_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_fa_0_ie_rawIn__isInf = FReg1_fa_0_ie_rawIn_isSpecial & ~FReg1_fa_0_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_fa_0_ie_rawIn__sign = FReg1_fa_0_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_fa_0_ie_rawIn__sExp = {1'b0,$signed(FReg1_fa_0_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_fa_0_ie_rawIn_out_sig_T = ~FReg1_fa_0_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_fa_0_ie_rawIn__sig = {1'h0,_FReg1_fa_0_ie_rawIn_out_sig_T,FReg1_fa_0_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fa_0_ie_isSubnormal = $signed(FReg1_fa_0_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_fa_0_ie_denormShiftDist = 5'h1 - FReg1_fa_0_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_fa_0_ie_denormFract_T_1 = FReg1_fa_0_ie_rawIn__sig[24:1] >> FReg1_fa_0_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_fa_0_ie_denormFract = _FReg1_fa_0_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_fa_0_ie_expOut_T_2 = FReg1_fa_0_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_fa_0_ie_expOut_T_3 = FReg1_fa_0_ie_isSubnormal ? 8'h0 : _FReg1_fa_0_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_fa_0_ie_expOut_T_4 = FReg1_fa_0_ie_rawIn__isNaN | FReg1_fa_0_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_fa_0_ie_expOut_T_6 = _FReg1_fa_0_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_fa_0_ie_expOut = _FReg1_fa_0_ie_expOut_T_3 | _FReg1_fa_0_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_fa_0_ie_fractOut_T_1 = FReg1_fa_0_ie_rawIn__isInf ? 23'h0 : FReg1_fa_0_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_fa_0_ie_fractOut = FReg1_fa_0_ie_isSubnormal ? FReg1_fa_0_ie_denormFract :
    _FReg1_fa_0_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_fa_0_ie = {FReg1_fa_0_ie_rawIn__sign,FReg1_fa_0_ie_expOut,FReg1_fa_0_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_fa_0_T_3 = FReg1_fa_0_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_fa_1_unbx_floats_0 = {io_diffFReg_11[31],io_diffFReg_11[52],io_diffFReg_11[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fa_1_unbx_isbox = &io_diffFReg_11[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_fa_1_unbx_T = FReg1_fa_1_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_fa_1_unbx = FReg1_fa_1_unbx_floats_0 | _FReg1_fa_1_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_fa_1_ie_rawIn_exp = FReg1_fa_1_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_fa_1_ie_rawIn_isZero = FReg1_fa_1_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_fa_1_ie_rawIn_isSpecial = FReg1_fa_1_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_fa_1_ie_rawIn__isNaN = FReg1_fa_1_ie_rawIn_isSpecial & FReg1_fa_1_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_fa_1_ie_rawIn__isInf = FReg1_fa_1_ie_rawIn_isSpecial & ~FReg1_fa_1_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_fa_1_ie_rawIn__sign = FReg1_fa_1_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_fa_1_ie_rawIn__sExp = {1'b0,$signed(FReg1_fa_1_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_fa_1_ie_rawIn_out_sig_T = ~FReg1_fa_1_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_fa_1_ie_rawIn__sig = {1'h0,_FReg1_fa_1_ie_rawIn_out_sig_T,FReg1_fa_1_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fa_1_ie_isSubnormal = $signed(FReg1_fa_1_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_fa_1_ie_denormShiftDist = 5'h1 - FReg1_fa_1_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_fa_1_ie_denormFract_T_1 = FReg1_fa_1_ie_rawIn__sig[24:1] >> FReg1_fa_1_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_fa_1_ie_denormFract = _FReg1_fa_1_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_fa_1_ie_expOut_T_2 = FReg1_fa_1_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_fa_1_ie_expOut_T_3 = FReg1_fa_1_ie_isSubnormal ? 8'h0 : _FReg1_fa_1_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_fa_1_ie_expOut_T_4 = FReg1_fa_1_ie_rawIn__isNaN | FReg1_fa_1_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_fa_1_ie_expOut_T_6 = _FReg1_fa_1_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_fa_1_ie_expOut = _FReg1_fa_1_ie_expOut_T_3 | _FReg1_fa_1_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_fa_1_ie_fractOut_T_1 = FReg1_fa_1_ie_rawIn__isInf ? 23'h0 : FReg1_fa_1_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_fa_1_ie_fractOut = FReg1_fa_1_ie_isSubnormal ? FReg1_fa_1_ie_denormFract :
    _FReg1_fa_1_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_fa_1_ie = {FReg1_fa_1_ie_rawIn__sign,FReg1_fa_1_ie_expOut,FReg1_fa_1_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_fa_1_T_3 = FReg1_fa_1_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_fa_2_unbx_floats_0 = {io_diffFReg_12[31],io_diffFReg_12[52],io_diffFReg_12[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fa_2_unbx_isbox = &io_diffFReg_12[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_fa_2_unbx_T = FReg1_fa_2_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_fa_2_unbx = FReg1_fa_2_unbx_floats_0 | _FReg1_fa_2_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_fa_2_ie_rawIn_exp = FReg1_fa_2_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_fa_2_ie_rawIn_isZero = FReg1_fa_2_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_fa_2_ie_rawIn_isSpecial = FReg1_fa_2_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_fa_2_ie_rawIn__isNaN = FReg1_fa_2_ie_rawIn_isSpecial & FReg1_fa_2_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_fa_2_ie_rawIn__isInf = FReg1_fa_2_ie_rawIn_isSpecial & ~FReg1_fa_2_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_fa_2_ie_rawIn__sign = FReg1_fa_2_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_fa_2_ie_rawIn__sExp = {1'b0,$signed(FReg1_fa_2_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_fa_2_ie_rawIn_out_sig_T = ~FReg1_fa_2_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_fa_2_ie_rawIn__sig = {1'h0,_FReg1_fa_2_ie_rawIn_out_sig_T,FReg1_fa_2_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fa_2_ie_isSubnormal = $signed(FReg1_fa_2_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_fa_2_ie_denormShiftDist = 5'h1 - FReg1_fa_2_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_fa_2_ie_denormFract_T_1 = FReg1_fa_2_ie_rawIn__sig[24:1] >> FReg1_fa_2_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_fa_2_ie_denormFract = _FReg1_fa_2_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_fa_2_ie_expOut_T_2 = FReg1_fa_2_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_fa_2_ie_expOut_T_3 = FReg1_fa_2_ie_isSubnormal ? 8'h0 : _FReg1_fa_2_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_fa_2_ie_expOut_T_4 = FReg1_fa_2_ie_rawIn__isNaN | FReg1_fa_2_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_fa_2_ie_expOut_T_6 = _FReg1_fa_2_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_fa_2_ie_expOut = _FReg1_fa_2_ie_expOut_T_3 | _FReg1_fa_2_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_fa_2_ie_fractOut_T_1 = FReg1_fa_2_ie_rawIn__isInf ? 23'h0 : FReg1_fa_2_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_fa_2_ie_fractOut = FReg1_fa_2_ie_isSubnormal ? FReg1_fa_2_ie_denormFract :
    _FReg1_fa_2_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_fa_2_ie = {FReg1_fa_2_ie_rawIn__sign,FReg1_fa_2_ie_expOut,FReg1_fa_2_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_fa_2_T_3 = FReg1_fa_2_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_fa_3_unbx_floats_0 = {io_diffFReg_13[31],io_diffFReg_13[52],io_diffFReg_13[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fa_3_unbx_isbox = &io_diffFReg_13[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_fa_3_unbx_T = FReg1_fa_3_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_fa_3_unbx = FReg1_fa_3_unbx_floats_0 | _FReg1_fa_3_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_fa_3_ie_rawIn_exp = FReg1_fa_3_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_fa_3_ie_rawIn_isZero = FReg1_fa_3_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_fa_3_ie_rawIn_isSpecial = FReg1_fa_3_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_fa_3_ie_rawIn__isNaN = FReg1_fa_3_ie_rawIn_isSpecial & FReg1_fa_3_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_fa_3_ie_rawIn__isInf = FReg1_fa_3_ie_rawIn_isSpecial & ~FReg1_fa_3_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_fa_3_ie_rawIn__sign = FReg1_fa_3_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_fa_3_ie_rawIn__sExp = {1'b0,$signed(FReg1_fa_3_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_fa_3_ie_rawIn_out_sig_T = ~FReg1_fa_3_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_fa_3_ie_rawIn__sig = {1'h0,_FReg1_fa_3_ie_rawIn_out_sig_T,FReg1_fa_3_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fa_3_ie_isSubnormal = $signed(FReg1_fa_3_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_fa_3_ie_denormShiftDist = 5'h1 - FReg1_fa_3_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_fa_3_ie_denormFract_T_1 = FReg1_fa_3_ie_rawIn__sig[24:1] >> FReg1_fa_3_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_fa_3_ie_denormFract = _FReg1_fa_3_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_fa_3_ie_expOut_T_2 = FReg1_fa_3_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_fa_3_ie_expOut_T_3 = FReg1_fa_3_ie_isSubnormal ? 8'h0 : _FReg1_fa_3_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_fa_3_ie_expOut_T_4 = FReg1_fa_3_ie_rawIn__isNaN | FReg1_fa_3_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_fa_3_ie_expOut_T_6 = _FReg1_fa_3_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_fa_3_ie_expOut = _FReg1_fa_3_ie_expOut_T_3 | _FReg1_fa_3_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_fa_3_ie_fractOut_T_1 = FReg1_fa_3_ie_rawIn__isInf ? 23'h0 : FReg1_fa_3_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_fa_3_ie_fractOut = FReg1_fa_3_ie_isSubnormal ? FReg1_fa_3_ie_denormFract :
    _FReg1_fa_3_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_fa_3_ie = {FReg1_fa_3_ie_rawIn__sign,FReg1_fa_3_ie_expOut,FReg1_fa_3_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_fa_3_T_3 = FReg1_fa_3_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_fa_4_unbx_floats_0 = {io_diffFReg_14[31],io_diffFReg_14[52],io_diffFReg_14[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fa_4_unbx_isbox = &io_diffFReg_14[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_fa_4_unbx_T = FReg1_fa_4_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_fa_4_unbx = FReg1_fa_4_unbx_floats_0 | _FReg1_fa_4_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_fa_4_ie_rawIn_exp = FReg1_fa_4_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_fa_4_ie_rawIn_isZero = FReg1_fa_4_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_fa_4_ie_rawIn_isSpecial = FReg1_fa_4_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_fa_4_ie_rawIn__isNaN = FReg1_fa_4_ie_rawIn_isSpecial & FReg1_fa_4_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_fa_4_ie_rawIn__isInf = FReg1_fa_4_ie_rawIn_isSpecial & ~FReg1_fa_4_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_fa_4_ie_rawIn__sign = FReg1_fa_4_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_fa_4_ie_rawIn__sExp = {1'b0,$signed(FReg1_fa_4_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_fa_4_ie_rawIn_out_sig_T = ~FReg1_fa_4_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_fa_4_ie_rawIn__sig = {1'h0,_FReg1_fa_4_ie_rawIn_out_sig_T,FReg1_fa_4_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fa_4_ie_isSubnormal = $signed(FReg1_fa_4_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_fa_4_ie_denormShiftDist = 5'h1 - FReg1_fa_4_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_fa_4_ie_denormFract_T_1 = FReg1_fa_4_ie_rawIn__sig[24:1] >> FReg1_fa_4_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_fa_4_ie_denormFract = _FReg1_fa_4_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_fa_4_ie_expOut_T_2 = FReg1_fa_4_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_fa_4_ie_expOut_T_3 = FReg1_fa_4_ie_isSubnormal ? 8'h0 : _FReg1_fa_4_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_fa_4_ie_expOut_T_4 = FReg1_fa_4_ie_rawIn__isNaN | FReg1_fa_4_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_fa_4_ie_expOut_T_6 = _FReg1_fa_4_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_fa_4_ie_expOut = _FReg1_fa_4_ie_expOut_T_3 | _FReg1_fa_4_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_fa_4_ie_fractOut_T_1 = FReg1_fa_4_ie_rawIn__isInf ? 23'h0 : FReg1_fa_4_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_fa_4_ie_fractOut = FReg1_fa_4_ie_isSubnormal ? FReg1_fa_4_ie_denormFract :
    _FReg1_fa_4_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_fa_4_ie = {FReg1_fa_4_ie_rawIn__sign,FReg1_fa_4_ie_expOut,FReg1_fa_4_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_fa_4_T_3 = FReg1_fa_4_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_fa_5_unbx_floats_0 = {io_diffFReg_15[31],io_diffFReg_15[52],io_diffFReg_15[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fa_5_unbx_isbox = &io_diffFReg_15[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_fa_5_unbx_T = FReg1_fa_5_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_fa_5_unbx = FReg1_fa_5_unbx_floats_0 | _FReg1_fa_5_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_fa_5_ie_rawIn_exp = FReg1_fa_5_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_fa_5_ie_rawIn_isZero = FReg1_fa_5_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_fa_5_ie_rawIn_isSpecial = FReg1_fa_5_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_fa_5_ie_rawIn__isNaN = FReg1_fa_5_ie_rawIn_isSpecial & FReg1_fa_5_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_fa_5_ie_rawIn__isInf = FReg1_fa_5_ie_rawIn_isSpecial & ~FReg1_fa_5_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_fa_5_ie_rawIn__sign = FReg1_fa_5_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_fa_5_ie_rawIn__sExp = {1'b0,$signed(FReg1_fa_5_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_fa_5_ie_rawIn_out_sig_T = ~FReg1_fa_5_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_fa_5_ie_rawIn__sig = {1'h0,_FReg1_fa_5_ie_rawIn_out_sig_T,FReg1_fa_5_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fa_5_ie_isSubnormal = $signed(FReg1_fa_5_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_fa_5_ie_denormShiftDist = 5'h1 - FReg1_fa_5_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_fa_5_ie_denormFract_T_1 = FReg1_fa_5_ie_rawIn__sig[24:1] >> FReg1_fa_5_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_fa_5_ie_denormFract = _FReg1_fa_5_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_fa_5_ie_expOut_T_2 = FReg1_fa_5_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_fa_5_ie_expOut_T_3 = FReg1_fa_5_ie_isSubnormal ? 8'h0 : _FReg1_fa_5_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_fa_5_ie_expOut_T_4 = FReg1_fa_5_ie_rawIn__isNaN | FReg1_fa_5_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_fa_5_ie_expOut_T_6 = _FReg1_fa_5_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_fa_5_ie_expOut = _FReg1_fa_5_ie_expOut_T_3 | _FReg1_fa_5_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_fa_5_ie_fractOut_T_1 = FReg1_fa_5_ie_rawIn__isInf ? 23'h0 : FReg1_fa_5_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_fa_5_ie_fractOut = FReg1_fa_5_ie_isSubnormal ? FReg1_fa_5_ie_denormFract :
    _FReg1_fa_5_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_fa_5_ie = {FReg1_fa_5_ie_rawIn__sign,FReg1_fa_5_ie_expOut,FReg1_fa_5_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_fa_5_T_3 = FReg1_fa_5_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_fa_6_unbx_floats_0 = {io_diffFReg_16[31],io_diffFReg_16[52],io_diffFReg_16[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fa_6_unbx_isbox = &io_diffFReg_16[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_fa_6_unbx_T = FReg1_fa_6_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_fa_6_unbx = FReg1_fa_6_unbx_floats_0 | _FReg1_fa_6_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_fa_6_ie_rawIn_exp = FReg1_fa_6_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_fa_6_ie_rawIn_isZero = FReg1_fa_6_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_fa_6_ie_rawIn_isSpecial = FReg1_fa_6_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_fa_6_ie_rawIn__isNaN = FReg1_fa_6_ie_rawIn_isSpecial & FReg1_fa_6_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_fa_6_ie_rawIn__isInf = FReg1_fa_6_ie_rawIn_isSpecial & ~FReg1_fa_6_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_fa_6_ie_rawIn__sign = FReg1_fa_6_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_fa_6_ie_rawIn__sExp = {1'b0,$signed(FReg1_fa_6_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_fa_6_ie_rawIn_out_sig_T = ~FReg1_fa_6_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_fa_6_ie_rawIn__sig = {1'h0,_FReg1_fa_6_ie_rawIn_out_sig_T,FReg1_fa_6_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fa_6_ie_isSubnormal = $signed(FReg1_fa_6_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_fa_6_ie_denormShiftDist = 5'h1 - FReg1_fa_6_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_fa_6_ie_denormFract_T_1 = FReg1_fa_6_ie_rawIn__sig[24:1] >> FReg1_fa_6_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_fa_6_ie_denormFract = _FReg1_fa_6_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_fa_6_ie_expOut_T_2 = FReg1_fa_6_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_fa_6_ie_expOut_T_3 = FReg1_fa_6_ie_isSubnormal ? 8'h0 : _FReg1_fa_6_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_fa_6_ie_expOut_T_4 = FReg1_fa_6_ie_rawIn__isNaN | FReg1_fa_6_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_fa_6_ie_expOut_T_6 = _FReg1_fa_6_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_fa_6_ie_expOut = _FReg1_fa_6_ie_expOut_T_3 | _FReg1_fa_6_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_fa_6_ie_fractOut_T_1 = FReg1_fa_6_ie_rawIn__isInf ? 23'h0 : FReg1_fa_6_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_fa_6_ie_fractOut = FReg1_fa_6_ie_isSubnormal ? FReg1_fa_6_ie_denormFract :
    _FReg1_fa_6_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_fa_6_ie = {FReg1_fa_6_ie_rawIn__sign,FReg1_fa_6_ie_expOut,FReg1_fa_6_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_fa_6_T_3 = FReg1_fa_6_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_fa_7_unbx_floats_0 = {io_diffFReg_17[31],io_diffFReg_17[52],io_diffFReg_17[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fa_7_unbx_isbox = &io_diffFReg_17[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_fa_7_unbx_T = FReg1_fa_7_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_fa_7_unbx = FReg1_fa_7_unbx_floats_0 | _FReg1_fa_7_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_fa_7_ie_rawIn_exp = FReg1_fa_7_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_fa_7_ie_rawIn_isZero = FReg1_fa_7_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_fa_7_ie_rawIn_isSpecial = FReg1_fa_7_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_fa_7_ie_rawIn__isNaN = FReg1_fa_7_ie_rawIn_isSpecial & FReg1_fa_7_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_fa_7_ie_rawIn__isInf = FReg1_fa_7_ie_rawIn_isSpecial & ~FReg1_fa_7_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_fa_7_ie_rawIn__sign = FReg1_fa_7_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_fa_7_ie_rawIn__sExp = {1'b0,$signed(FReg1_fa_7_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_fa_7_ie_rawIn_out_sig_T = ~FReg1_fa_7_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_fa_7_ie_rawIn__sig = {1'h0,_FReg1_fa_7_ie_rawIn_out_sig_T,FReg1_fa_7_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fa_7_ie_isSubnormal = $signed(FReg1_fa_7_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_fa_7_ie_denormShiftDist = 5'h1 - FReg1_fa_7_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_fa_7_ie_denormFract_T_1 = FReg1_fa_7_ie_rawIn__sig[24:1] >> FReg1_fa_7_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_fa_7_ie_denormFract = _FReg1_fa_7_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_fa_7_ie_expOut_T_2 = FReg1_fa_7_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_fa_7_ie_expOut_T_3 = FReg1_fa_7_ie_isSubnormal ? 8'h0 : _FReg1_fa_7_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_fa_7_ie_expOut_T_4 = FReg1_fa_7_ie_rawIn__isNaN | FReg1_fa_7_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_fa_7_ie_expOut_T_6 = _FReg1_fa_7_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_fa_7_ie_expOut = _FReg1_fa_7_ie_expOut_T_3 | _FReg1_fa_7_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_fa_7_ie_fractOut_T_1 = FReg1_fa_7_ie_rawIn__isInf ? 23'h0 : FReg1_fa_7_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_fa_7_ie_fractOut = FReg1_fa_7_ie_isSubnormal ? FReg1_fa_7_ie_denormFract :
    _FReg1_fa_7_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_fa_7_ie = {FReg1_fa_7_ie_rawIn__sign,FReg1_fa_7_ie_expOut,FReg1_fa_7_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_fa_7_T_3 = FReg1_fa_7_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_fs_2_unbx_floats_0 = {io_diffFReg_18[31],io_diffFReg_18[52],io_diffFReg_18[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_2_unbx_isbox = &io_diffFReg_18[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_fs_2_unbx_T = FReg1_fs_2_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_fs_2_unbx = FReg1_fs_2_unbx_floats_0 | _FReg1_fs_2_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_fs_2_ie_rawIn_exp = FReg1_fs_2_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_fs_2_ie_rawIn_isZero = FReg1_fs_2_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_fs_2_ie_rawIn_isSpecial = FReg1_fs_2_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_fs_2_ie_rawIn__isNaN = FReg1_fs_2_ie_rawIn_isSpecial & FReg1_fs_2_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_fs_2_ie_rawIn__isInf = FReg1_fs_2_ie_rawIn_isSpecial & ~FReg1_fs_2_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_fs_2_ie_rawIn__sign = FReg1_fs_2_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_fs_2_ie_rawIn__sExp = {1'b0,$signed(FReg1_fs_2_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_fs_2_ie_rawIn_out_sig_T = ~FReg1_fs_2_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_fs_2_ie_rawIn__sig = {1'h0,_FReg1_fs_2_ie_rawIn_out_sig_T,FReg1_fs_2_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_2_ie_isSubnormal = $signed(FReg1_fs_2_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_fs_2_ie_denormShiftDist = 5'h1 - FReg1_fs_2_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_fs_2_ie_denormFract_T_1 = FReg1_fs_2_ie_rawIn__sig[24:1] >> FReg1_fs_2_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_fs_2_ie_denormFract = _FReg1_fs_2_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_fs_2_ie_expOut_T_2 = FReg1_fs_2_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_fs_2_ie_expOut_T_3 = FReg1_fs_2_ie_isSubnormal ? 8'h0 : _FReg1_fs_2_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_fs_2_ie_expOut_T_4 = FReg1_fs_2_ie_rawIn__isNaN | FReg1_fs_2_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_fs_2_ie_expOut_T_6 = _FReg1_fs_2_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_fs_2_ie_expOut = _FReg1_fs_2_ie_expOut_T_3 | _FReg1_fs_2_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_fs_2_ie_fractOut_T_1 = FReg1_fs_2_ie_rawIn__isInf ? 23'h0 : FReg1_fs_2_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_fs_2_ie_fractOut = FReg1_fs_2_ie_isSubnormal ? FReg1_fs_2_ie_denormFract :
    _FReg1_fs_2_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_fs_2_ie = {FReg1_fs_2_ie_rawIn__sign,FReg1_fs_2_ie_expOut,FReg1_fs_2_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_fs_2_T_3 = FReg1_fs_2_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_fs_3_unbx_floats_0 = {io_diffFReg_19[31],io_diffFReg_19[52],io_diffFReg_19[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_3_unbx_isbox = &io_diffFReg_19[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_fs_3_unbx_T = FReg1_fs_3_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_fs_3_unbx = FReg1_fs_3_unbx_floats_0 | _FReg1_fs_3_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_fs_3_ie_rawIn_exp = FReg1_fs_3_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_fs_3_ie_rawIn_isZero = FReg1_fs_3_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_fs_3_ie_rawIn_isSpecial = FReg1_fs_3_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_fs_3_ie_rawIn__isNaN = FReg1_fs_3_ie_rawIn_isSpecial & FReg1_fs_3_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_fs_3_ie_rawIn__isInf = FReg1_fs_3_ie_rawIn_isSpecial & ~FReg1_fs_3_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_fs_3_ie_rawIn__sign = FReg1_fs_3_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_fs_3_ie_rawIn__sExp = {1'b0,$signed(FReg1_fs_3_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_fs_3_ie_rawIn_out_sig_T = ~FReg1_fs_3_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_fs_3_ie_rawIn__sig = {1'h0,_FReg1_fs_3_ie_rawIn_out_sig_T,FReg1_fs_3_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_3_ie_isSubnormal = $signed(FReg1_fs_3_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_fs_3_ie_denormShiftDist = 5'h1 - FReg1_fs_3_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_fs_3_ie_denormFract_T_1 = FReg1_fs_3_ie_rawIn__sig[24:1] >> FReg1_fs_3_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_fs_3_ie_denormFract = _FReg1_fs_3_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_fs_3_ie_expOut_T_2 = FReg1_fs_3_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_fs_3_ie_expOut_T_3 = FReg1_fs_3_ie_isSubnormal ? 8'h0 : _FReg1_fs_3_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_fs_3_ie_expOut_T_4 = FReg1_fs_3_ie_rawIn__isNaN | FReg1_fs_3_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_fs_3_ie_expOut_T_6 = _FReg1_fs_3_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_fs_3_ie_expOut = _FReg1_fs_3_ie_expOut_T_3 | _FReg1_fs_3_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_fs_3_ie_fractOut_T_1 = FReg1_fs_3_ie_rawIn__isInf ? 23'h0 : FReg1_fs_3_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_fs_3_ie_fractOut = FReg1_fs_3_ie_isSubnormal ? FReg1_fs_3_ie_denormFract :
    _FReg1_fs_3_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_fs_3_ie = {FReg1_fs_3_ie_rawIn__sign,FReg1_fs_3_ie_expOut,FReg1_fs_3_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_fs_3_T_3 = FReg1_fs_3_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_fs_4_unbx_floats_0 = {io_diffFReg_20[31],io_diffFReg_20[52],io_diffFReg_20[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_4_unbx_isbox = &io_diffFReg_20[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_fs_4_unbx_T = FReg1_fs_4_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_fs_4_unbx = FReg1_fs_4_unbx_floats_0 | _FReg1_fs_4_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_fs_4_ie_rawIn_exp = FReg1_fs_4_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_fs_4_ie_rawIn_isZero = FReg1_fs_4_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_fs_4_ie_rawIn_isSpecial = FReg1_fs_4_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_fs_4_ie_rawIn__isNaN = FReg1_fs_4_ie_rawIn_isSpecial & FReg1_fs_4_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_fs_4_ie_rawIn__isInf = FReg1_fs_4_ie_rawIn_isSpecial & ~FReg1_fs_4_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_fs_4_ie_rawIn__sign = FReg1_fs_4_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_fs_4_ie_rawIn__sExp = {1'b0,$signed(FReg1_fs_4_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_fs_4_ie_rawIn_out_sig_T = ~FReg1_fs_4_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_fs_4_ie_rawIn__sig = {1'h0,_FReg1_fs_4_ie_rawIn_out_sig_T,FReg1_fs_4_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_4_ie_isSubnormal = $signed(FReg1_fs_4_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_fs_4_ie_denormShiftDist = 5'h1 - FReg1_fs_4_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_fs_4_ie_denormFract_T_1 = FReg1_fs_4_ie_rawIn__sig[24:1] >> FReg1_fs_4_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_fs_4_ie_denormFract = _FReg1_fs_4_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_fs_4_ie_expOut_T_2 = FReg1_fs_4_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_fs_4_ie_expOut_T_3 = FReg1_fs_4_ie_isSubnormal ? 8'h0 : _FReg1_fs_4_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_fs_4_ie_expOut_T_4 = FReg1_fs_4_ie_rawIn__isNaN | FReg1_fs_4_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_fs_4_ie_expOut_T_6 = _FReg1_fs_4_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_fs_4_ie_expOut = _FReg1_fs_4_ie_expOut_T_3 | _FReg1_fs_4_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_fs_4_ie_fractOut_T_1 = FReg1_fs_4_ie_rawIn__isInf ? 23'h0 : FReg1_fs_4_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_fs_4_ie_fractOut = FReg1_fs_4_ie_isSubnormal ? FReg1_fs_4_ie_denormFract :
    _FReg1_fs_4_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_fs_4_ie = {FReg1_fs_4_ie_rawIn__sign,FReg1_fs_4_ie_expOut,FReg1_fs_4_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_fs_4_T_3 = FReg1_fs_4_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_fs_5_unbx_floats_0 = {io_diffFReg_21[31],io_diffFReg_21[52],io_diffFReg_21[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_5_unbx_isbox = &io_diffFReg_21[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_fs_5_unbx_T = FReg1_fs_5_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_fs_5_unbx = FReg1_fs_5_unbx_floats_0 | _FReg1_fs_5_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_fs_5_ie_rawIn_exp = FReg1_fs_5_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_fs_5_ie_rawIn_isZero = FReg1_fs_5_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_fs_5_ie_rawIn_isSpecial = FReg1_fs_5_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_fs_5_ie_rawIn__isNaN = FReg1_fs_5_ie_rawIn_isSpecial & FReg1_fs_5_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_fs_5_ie_rawIn__isInf = FReg1_fs_5_ie_rawIn_isSpecial & ~FReg1_fs_5_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_fs_5_ie_rawIn__sign = FReg1_fs_5_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_fs_5_ie_rawIn__sExp = {1'b0,$signed(FReg1_fs_5_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_fs_5_ie_rawIn_out_sig_T = ~FReg1_fs_5_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_fs_5_ie_rawIn__sig = {1'h0,_FReg1_fs_5_ie_rawIn_out_sig_T,FReg1_fs_5_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_5_ie_isSubnormal = $signed(FReg1_fs_5_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_fs_5_ie_denormShiftDist = 5'h1 - FReg1_fs_5_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_fs_5_ie_denormFract_T_1 = FReg1_fs_5_ie_rawIn__sig[24:1] >> FReg1_fs_5_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_fs_5_ie_denormFract = _FReg1_fs_5_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_fs_5_ie_expOut_T_2 = FReg1_fs_5_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_fs_5_ie_expOut_T_3 = FReg1_fs_5_ie_isSubnormal ? 8'h0 : _FReg1_fs_5_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_fs_5_ie_expOut_T_4 = FReg1_fs_5_ie_rawIn__isNaN | FReg1_fs_5_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_fs_5_ie_expOut_T_6 = _FReg1_fs_5_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_fs_5_ie_expOut = _FReg1_fs_5_ie_expOut_T_3 | _FReg1_fs_5_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_fs_5_ie_fractOut_T_1 = FReg1_fs_5_ie_rawIn__isInf ? 23'h0 : FReg1_fs_5_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_fs_5_ie_fractOut = FReg1_fs_5_ie_isSubnormal ? FReg1_fs_5_ie_denormFract :
    _FReg1_fs_5_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_fs_5_ie = {FReg1_fs_5_ie_rawIn__sign,FReg1_fs_5_ie_expOut,FReg1_fs_5_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_fs_5_T_3 = FReg1_fs_5_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_fs_6_unbx_floats_0 = {io_diffFReg_22[31],io_diffFReg_22[52],io_diffFReg_22[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_6_unbx_isbox = &io_diffFReg_22[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_fs_6_unbx_T = FReg1_fs_6_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_fs_6_unbx = FReg1_fs_6_unbx_floats_0 | _FReg1_fs_6_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_fs_6_ie_rawIn_exp = FReg1_fs_6_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_fs_6_ie_rawIn_isZero = FReg1_fs_6_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_fs_6_ie_rawIn_isSpecial = FReg1_fs_6_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_fs_6_ie_rawIn__isNaN = FReg1_fs_6_ie_rawIn_isSpecial & FReg1_fs_6_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_fs_6_ie_rawIn__isInf = FReg1_fs_6_ie_rawIn_isSpecial & ~FReg1_fs_6_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_fs_6_ie_rawIn__sign = FReg1_fs_6_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_fs_6_ie_rawIn__sExp = {1'b0,$signed(FReg1_fs_6_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_fs_6_ie_rawIn_out_sig_T = ~FReg1_fs_6_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_fs_6_ie_rawIn__sig = {1'h0,_FReg1_fs_6_ie_rawIn_out_sig_T,FReg1_fs_6_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_6_ie_isSubnormal = $signed(FReg1_fs_6_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_fs_6_ie_denormShiftDist = 5'h1 - FReg1_fs_6_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_fs_6_ie_denormFract_T_1 = FReg1_fs_6_ie_rawIn__sig[24:1] >> FReg1_fs_6_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_fs_6_ie_denormFract = _FReg1_fs_6_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_fs_6_ie_expOut_T_2 = FReg1_fs_6_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_fs_6_ie_expOut_T_3 = FReg1_fs_6_ie_isSubnormal ? 8'h0 : _FReg1_fs_6_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_fs_6_ie_expOut_T_4 = FReg1_fs_6_ie_rawIn__isNaN | FReg1_fs_6_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_fs_6_ie_expOut_T_6 = _FReg1_fs_6_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_fs_6_ie_expOut = _FReg1_fs_6_ie_expOut_T_3 | _FReg1_fs_6_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_fs_6_ie_fractOut_T_1 = FReg1_fs_6_ie_rawIn__isInf ? 23'h0 : FReg1_fs_6_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_fs_6_ie_fractOut = FReg1_fs_6_ie_isSubnormal ? FReg1_fs_6_ie_denormFract :
    _FReg1_fs_6_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_fs_6_ie = {FReg1_fs_6_ie_rawIn__sign,FReg1_fs_6_ie_expOut,FReg1_fs_6_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_fs_6_T_3 = FReg1_fs_6_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_fs_7_unbx_floats_0 = {io_diffFReg_23[31],io_diffFReg_23[52],io_diffFReg_23[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_7_unbx_isbox = &io_diffFReg_23[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_fs_7_unbx_T = FReg1_fs_7_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_fs_7_unbx = FReg1_fs_7_unbx_floats_0 | _FReg1_fs_7_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_fs_7_ie_rawIn_exp = FReg1_fs_7_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_fs_7_ie_rawIn_isZero = FReg1_fs_7_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_fs_7_ie_rawIn_isSpecial = FReg1_fs_7_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_fs_7_ie_rawIn__isNaN = FReg1_fs_7_ie_rawIn_isSpecial & FReg1_fs_7_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_fs_7_ie_rawIn__isInf = FReg1_fs_7_ie_rawIn_isSpecial & ~FReg1_fs_7_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_fs_7_ie_rawIn__sign = FReg1_fs_7_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_fs_7_ie_rawIn__sExp = {1'b0,$signed(FReg1_fs_7_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_fs_7_ie_rawIn_out_sig_T = ~FReg1_fs_7_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_fs_7_ie_rawIn__sig = {1'h0,_FReg1_fs_7_ie_rawIn_out_sig_T,FReg1_fs_7_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_7_ie_isSubnormal = $signed(FReg1_fs_7_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_fs_7_ie_denormShiftDist = 5'h1 - FReg1_fs_7_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_fs_7_ie_denormFract_T_1 = FReg1_fs_7_ie_rawIn__sig[24:1] >> FReg1_fs_7_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_fs_7_ie_denormFract = _FReg1_fs_7_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_fs_7_ie_expOut_T_2 = FReg1_fs_7_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_fs_7_ie_expOut_T_3 = FReg1_fs_7_ie_isSubnormal ? 8'h0 : _FReg1_fs_7_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_fs_7_ie_expOut_T_4 = FReg1_fs_7_ie_rawIn__isNaN | FReg1_fs_7_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_fs_7_ie_expOut_T_6 = _FReg1_fs_7_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_fs_7_ie_expOut = _FReg1_fs_7_ie_expOut_T_3 | _FReg1_fs_7_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_fs_7_ie_fractOut_T_1 = FReg1_fs_7_ie_rawIn__isInf ? 23'h0 : FReg1_fs_7_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_fs_7_ie_fractOut = FReg1_fs_7_ie_isSubnormal ? FReg1_fs_7_ie_denormFract :
    _FReg1_fs_7_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_fs_7_ie = {FReg1_fs_7_ie_rawIn__sign,FReg1_fs_7_ie_expOut,FReg1_fs_7_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_fs_7_T_3 = FReg1_fs_7_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_fs_8_unbx_floats_0 = {io_diffFReg_24[31],io_diffFReg_24[52],io_diffFReg_24[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_8_unbx_isbox = &io_diffFReg_24[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_fs_8_unbx_T = FReg1_fs_8_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_fs_8_unbx = FReg1_fs_8_unbx_floats_0 | _FReg1_fs_8_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_fs_8_ie_rawIn_exp = FReg1_fs_8_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_fs_8_ie_rawIn_isZero = FReg1_fs_8_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_fs_8_ie_rawIn_isSpecial = FReg1_fs_8_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_fs_8_ie_rawIn__isNaN = FReg1_fs_8_ie_rawIn_isSpecial & FReg1_fs_8_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_fs_8_ie_rawIn__isInf = FReg1_fs_8_ie_rawIn_isSpecial & ~FReg1_fs_8_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_fs_8_ie_rawIn__sign = FReg1_fs_8_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_fs_8_ie_rawIn__sExp = {1'b0,$signed(FReg1_fs_8_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_fs_8_ie_rawIn_out_sig_T = ~FReg1_fs_8_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_fs_8_ie_rawIn__sig = {1'h0,_FReg1_fs_8_ie_rawIn_out_sig_T,FReg1_fs_8_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_8_ie_isSubnormal = $signed(FReg1_fs_8_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_fs_8_ie_denormShiftDist = 5'h1 - FReg1_fs_8_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_fs_8_ie_denormFract_T_1 = FReg1_fs_8_ie_rawIn__sig[24:1] >> FReg1_fs_8_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_fs_8_ie_denormFract = _FReg1_fs_8_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_fs_8_ie_expOut_T_2 = FReg1_fs_8_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_fs_8_ie_expOut_T_3 = FReg1_fs_8_ie_isSubnormal ? 8'h0 : _FReg1_fs_8_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_fs_8_ie_expOut_T_4 = FReg1_fs_8_ie_rawIn__isNaN | FReg1_fs_8_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_fs_8_ie_expOut_T_6 = _FReg1_fs_8_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_fs_8_ie_expOut = _FReg1_fs_8_ie_expOut_T_3 | _FReg1_fs_8_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_fs_8_ie_fractOut_T_1 = FReg1_fs_8_ie_rawIn__isInf ? 23'h0 : FReg1_fs_8_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_fs_8_ie_fractOut = FReg1_fs_8_ie_isSubnormal ? FReg1_fs_8_ie_denormFract :
    _FReg1_fs_8_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_fs_8_ie = {FReg1_fs_8_ie_rawIn__sign,FReg1_fs_8_ie_expOut,FReg1_fs_8_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_fs_8_T_3 = FReg1_fs_8_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_fs_9_unbx_floats_0 = {io_diffFReg_25[31],io_diffFReg_25[52],io_diffFReg_25[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_9_unbx_isbox = &io_diffFReg_25[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_fs_9_unbx_T = FReg1_fs_9_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_fs_9_unbx = FReg1_fs_9_unbx_floats_0 | _FReg1_fs_9_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_fs_9_ie_rawIn_exp = FReg1_fs_9_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_fs_9_ie_rawIn_isZero = FReg1_fs_9_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_fs_9_ie_rawIn_isSpecial = FReg1_fs_9_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_fs_9_ie_rawIn__isNaN = FReg1_fs_9_ie_rawIn_isSpecial & FReg1_fs_9_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_fs_9_ie_rawIn__isInf = FReg1_fs_9_ie_rawIn_isSpecial & ~FReg1_fs_9_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_fs_9_ie_rawIn__sign = FReg1_fs_9_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_fs_9_ie_rawIn__sExp = {1'b0,$signed(FReg1_fs_9_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_fs_9_ie_rawIn_out_sig_T = ~FReg1_fs_9_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_fs_9_ie_rawIn__sig = {1'h0,_FReg1_fs_9_ie_rawIn_out_sig_T,FReg1_fs_9_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_9_ie_isSubnormal = $signed(FReg1_fs_9_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_fs_9_ie_denormShiftDist = 5'h1 - FReg1_fs_9_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_fs_9_ie_denormFract_T_1 = FReg1_fs_9_ie_rawIn__sig[24:1] >> FReg1_fs_9_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_fs_9_ie_denormFract = _FReg1_fs_9_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_fs_9_ie_expOut_T_2 = FReg1_fs_9_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_fs_9_ie_expOut_T_3 = FReg1_fs_9_ie_isSubnormal ? 8'h0 : _FReg1_fs_9_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_fs_9_ie_expOut_T_4 = FReg1_fs_9_ie_rawIn__isNaN | FReg1_fs_9_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_fs_9_ie_expOut_T_6 = _FReg1_fs_9_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_fs_9_ie_expOut = _FReg1_fs_9_ie_expOut_T_3 | _FReg1_fs_9_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_fs_9_ie_fractOut_T_1 = FReg1_fs_9_ie_rawIn__isInf ? 23'h0 : FReg1_fs_9_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_fs_9_ie_fractOut = FReg1_fs_9_ie_isSubnormal ? FReg1_fs_9_ie_denormFract :
    _FReg1_fs_9_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_fs_9_ie = {FReg1_fs_9_ie_rawIn__sign,FReg1_fs_9_ie_expOut,FReg1_fs_9_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_fs_9_T_3 = FReg1_fs_9_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_fs_10_unbx_floats_0 = {io_diffFReg_26[31],io_diffFReg_26[52],io_diffFReg_26[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_10_unbx_isbox = &io_diffFReg_26[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_fs_10_unbx_T = FReg1_fs_10_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_fs_10_unbx = FReg1_fs_10_unbx_floats_0 | _FReg1_fs_10_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_fs_10_ie_rawIn_exp = FReg1_fs_10_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_fs_10_ie_rawIn_isZero = FReg1_fs_10_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_fs_10_ie_rawIn_isSpecial = FReg1_fs_10_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_fs_10_ie_rawIn__isNaN = FReg1_fs_10_ie_rawIn_isSpecial & FReg1_fs_10_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_fs_10_ie_rawIn__isInf = FReg1_fs_10_ie_rawIn_isSpecial & ~FReg1_fs_10_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_fs_10_ie_rawIn__sign = FReg1_fs_10_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_fs_10_ie_rawIn__sExp = {1'b0,$signed(FReg1_fs_10_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_fs_10_ie_rawIn_out_sig_T = ~FReg1_fs_10_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_fs_10_ie_rawIn__sig = {1'h0,_FReg1_fs_10_ie_rawIn_out_sig_T,FReg1_fs_10_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_10_ie_isSubnormal = $signed(FReg1_fs_10_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_fs_10_ie_denormShiftDist = 5'h1 - FReg1_fs_10_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_fs_10_ie_denormFract_T_1 = FReg1_fs_10_ie_rawIn__sig[24:1] >> FReg1_fs_10_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_fs_10_ie_denormFract = _FReg1_fs_10_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_fs_10_ie_expOut_T_2 = FReg1_fs_10_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_fs_10_ie_expOut_T_3 = FReg1_fs_10_ie_isSubnormal ? 8'h0 : _FReg1_fs_10_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_fs_10_ie_expOut_T_4 = FReg1_fs_10_ie_rawIn__isNaN | FReg1_fs_10_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_fs_10_ie_expOut_T_6 = _FReg1_fs_10_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_fs_10_ie_expOut = _FReg1_fs_10_ie_expOut_T_3 | _FReg1_fs_10_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_fs_10_ie_fractOut_T_1 = FReg1_fs_10_ie_rawIn__isInf ? 23'h0 : FReg1_fs_10_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_fs_10_ie_fractOut = FReg1_fs_10_ie_isSubnormal ? FReg1_fs_10_ie_denormFract :
    _FReg1_fs_10_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_fs_10_ie = {FReg1_fs_10_ie_rawIn__sign,FReg1_fs_10_ie_expOut,FReg1_fs_10_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_fs_10_T_3 = FReg1_fs_10_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_fs_11_unbx_floats_0 = {io_diffFReg_27[31],io_diffFReg_27[52],io_diffFReg_27[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_11_unbx_isbox = &io_diffFReg_27[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_fs_11_unbx_T = FReg1_fs_11_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_fs_11_unbx = FReg1_fs_11_unbx_floats_0 | _FReg1_fs_11_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_fs_11_ie_rawIn_exp = FReg1_fs_11_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_fs_11_ie_rawIn_isZero = FReg1_fs_11_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_fs_11_ie_rawIn_isSpecial = FReg1_fs_11_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_fs_11_ie_rawIn__isNaN = FReg1_fs_11_ie_rawIn_isSpecial & FReg1_fs_11_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_fs_11_ie_rawIn__isInf = FReg1_fs_11_ie_rawIn_isSpecial & ~FReg1_fs_11_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_fs_11_ie_rawIn__sign = FReg1_fs_11_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_fs_11_ie_rawIn__sExp = {1'b0,$signed(FReg1_fs_11_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_fs_11_ie_rawIn_out_sig_T = ~FReg1_fs_11_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_fs_11_ie_rawIn__sig = {1'h0,_FReg1_fs_11_ie_rawIn_out_sig_T,FReg1_fs_11_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_fs_11_ie_isSubnormal = $signed(FReg1_fs_11_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_fs_11_ie_denormShiftDist = 5'h1 - FReg1_fs_11_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_fs_11_ie_denormFract_T_1 = FReg1_fs_11_ie_rawIn__sig[24:1] >> FReg1_fs_11_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_fs_11_ie_denormFract = _FReg1_fs_11_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_fs_11_ie_expOut_T_2 = FReg1_fs_11_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_fs_11_ie_expOut_T_3 = FReg1_fs_11_ie_isSubnormal ? 8'h0 : _FReg1_fs_11_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_fs_11_ie_expOut_T_4 = FReg1_fs_11_ie_rawIn__isNaN | FReg1_fs_11_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_fs_11_ie_expOut_T_6 = _FReg1_fs_11_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_fs_11_ie_expOut = _FReg1_fs_11_ie_expOut_T_3 | _FReg1_fs_11_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_fs_11_ie_fractOut_T_1 = FReg1_fs_11_ie_rawIn__isInf ? 23'h0 : FReg1_fs_11_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_fs_11_ie_fractOut = FReg1_fs_11_ie_isSubnormal ? FReg1_fs_11_ie_denormFract :
    _FReg1_fs_11_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_fs_11_ie = {FReg1_fs_11_ie_rawIn__sign,FReg1_fs_11_ie_expOut,FReg1_fs_11_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_fs_11_T_3 = FReg1_fs_11_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_ft_8_unbx_floats_0 = {io_diffFReg_28[31],io_diffFReg_28[52],io_diffFReg_28[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_8_unbx_isbox = &io_diffFReg_28[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_ft_8_unbx_T = FReg1_ft_8_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_ft_8_unbx = FReg1_ft_8_unbx_floats_0 | _FReg1_ft_8_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_ft_8_ie_rawIn_exp = FReg1_ft_8_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_ft_8_ie_rawIn_isZero = FReg1_ft_8_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_ft_8_ie_rawIn_isSpecial = FReg1_ft_8_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_ft_8_ie_rawIn__isNaN = FReg1_ft_8_ie_rawIn_isSpecial & FReg1_ft_8_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_ft_8_ie_rawIn__isInf = FReg1_ft_8_ie_rawIn_isSpecial & ~FReg1_ft_8_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_ft_8_ie_rawIn__sign = FReg1_ft_8_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_ft_8_ie_rawIn__sExp = {1'b0,$signed(FReg1_ft_8_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_ft_8_ie_rawIn_out_sig_T = ~FReg1_ft_8_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_ft_8_ie_rawIn__sig = {1'h0,_FReg1_ft_8_ie_rawIn_out_sig_T,FReg1_ft_8_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_8_ie_isSubnormal = $signed(FReg1_ft_8_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_ft_8_ie_denormShiftDist = 5'h1 - FReg1_ft_8_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_ft_8_ie_denormFract_T_1 = FReg1_ft_8_ie_rawIn__sig[24:1] >> FReg1_ft_8_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_ft_8_ie_denormFract = _FReg1_ft_8_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_ft_8_ie_expOut_T_2 = FReg1_ft_8_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_ft_8_ie_expOut_T_3 = FReg1_ft_8_ie_isSubnormal ? 8'h0 : _FReg1_ft_8_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_ft_8_ie_expOut_T_4 = FReg1_ft_8_ie_rawIn__isNaN | FReg1_ft_8_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_ft_8_ie_expOut_T_6 = _FReg1_ft_8_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_ft_8_ie_expOut = _FReg1_ft_8_ie_expOut_T_3 | _FReg1_ft_8_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_ft_8_ie_fractOut_T_1 = FReg1_ft_8_ie_rawIn__isInf ? 23'h0 : FReg1_ft_8_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_ft_8_ie_fractOut = FReg1_ft_8_ie_isSubnormal ? FReg1_ft_8_ie_denormFract :
    _FReg1_ft_8_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_ft_8_ie = {FReg1_ft_8_ie_rawIn__sign,FReg1_ft_8_ie_expOut,FReg1_ft_8_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_ft_8_T_3 = FReg1_ft_8_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_ft_9_unbx_floats_0 = {io_diffFReg_29[31],io_diffFReg_29[52],io_diffFReg_29[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_9_unbx_isbox = &io_diffFReg_29[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_ft_9_unbx_T = FReg1_ft_9_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_ft_9_unbx = FReg1_ft_9_unbx_floats_0 | _FReg1_ft_9_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_ft_9_ie_rawIn_exp = FReg1_ft_9_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_ft_9_ie_rawIn_isZero = FReg1_ft_9_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_ft_9_ie_rawIn_isSpecial = FReg1_ft_9_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_ft_9_ie_rawIn__isNaN = FReg1_ft_9_ie_rawIn_isSpecial & FReg1_ft_9_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_ft_9_ie_rawIn__isInf = FReg1_ft_9_ie_rawIn_isSpecial & ~FReg1_ft_9_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_ft_9_ie_rawIn__sign = FReg1_ft_9_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_ft_9_ie_rawIn__sExp = {1'b0,$signed(FReg1_ft_9_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_ft_9_ie_rawIn_out_sig_T = ~FReg1_ft_9_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_ft_9_ie_rawIn__sig = {1'h0,_FReg1_ft_9_ie_rawIn_out_sig_T,FReg1_ft_9_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_9_ie_isSubnormal = $signed(FReg1_ft_9_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_ft_9_ie_denormShiftDist = 5'h1 - FReg1_ft_9_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_ft_9_ie_denormFract_T_1 = FReg1_ft_9_ie_rawIn__sig[24:1] >> FReg1_ft_9_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_ft_9_ie_denormFract = _FReg1_ft_9_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_ft_9_ie_expOut_T_2 = FReg1_ft_9_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_ft_9_ie_expOut_T_3 = FReg1_ft_9_ie_isSubnormal ? 8'h0 : _FReg1_ft_9_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_ft_9_ie_expOut_T_4 = FReg1_ft_9_ie_rawIn__isNaN | FReg1_ft_9_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_ft_9_ie_expOut_T_6 = _FReg1_ft_9_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_ft_9_ie_expOut = _FReg1_ft_9_ie_expOut_T_3 | _FReg1_ft_9_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_ft_9_ie_fractOut_T_1 = FReg1_ft_9_ie_rawIn__isInf ? 23'h0 : FReg1_ft_9_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_ft_9_ie_fractOut = FReg1_ft_9_ie_isSubnormal ? FReg1_ft_9_ie_denormFract :
    _FReg1_ft_9_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_ft_9_ie = {FReg1_ft_9_ie_rawIn__sign,FReg1_ft_9_ie_expOut,FReg1_ft_9_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_ft_9_T_3 = FReg1_ft_9_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_ft_10_unbx_floats_0 = {io_diffFReg_30[31],io_diffFReg_30[52],io_diffFReg_30[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_10_unbx_isbox = &io_diffFReg_30[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_ft_10_unbx_T = FReg1_ft_10_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_ft_10_unbx = FReg1_ft_10_unbx_floats_0 | _FReg1_ft_10_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_ft_10_ie_rawIn_exp = FReg1_ft_10_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_ft_10_ie_rawIn_isZero = FReg1_ft_10_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_ft_10_ie_rawIn_isSpecial = FReg1_ft_10_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_ft_10_ie_rawIn__isNaN = FReg1_ft_10_ie_rawIn_isSpecial & FReg1_ft_10_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_ft_10_ie_rawIn__isInf = FReg1_ft_10_ie_rawIn_isSpecial & ~FReg1_ft_10_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_ft_10_ie_rawIn__sign = FReg1_ft_10_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_ft_10_ie_rawIn__sExp = {1'b0,$signed(FReg1_ft_10_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_ft_10_ie_rawIn_out_sig_T = ~FReg1_ft_10_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_ft_10_ie_rawIn__sig = {1'h0,_FReg1_ft_10_ie_rawIn_out_sig_T,FReg1_ft_10_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_10_ie_isSubnormal = $signed(FReg1_ft_10_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_ft_10_ie_denormShiftDist = 5'h1 - FReg1_ft_10_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_ft_10_ie_denormFract_T_1 = FReg1_ft_10_ie_rawIn__sig[24:1] >> FReg1_ft_10_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_ft_10_ie_denormFract = _FReg1_ft_10_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_ft_10_ie_expOut_T_2 = FReg1_ft_10_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_ft_10_ie_expOut_T_3 = FReg1_ft_10_ie_isSubnormal ? 8'h0 : _FReg1_ft_10_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_ft_10_ie_expOut_T_4 = FReg1_ft_10_ie_rawIn__isNaN | FReg1_ft_10_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_ft_10_ie_expOut_T_6 = _FReg1_ft_10_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_ft_10_ie_expOut = _FReg1_ft_10_ie_expOut_T_3 | _FReg1_ft_10_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_ft_10_ie_fractOut_T_1 = FReg1_ft_10_ie_rawIn__isInf ? 23'h0 : FReg1_ft_10_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_ft_10_ie_fractOut = FReg1_ft_10_ie_isSubnormal ? FReg1_ft_10_ie_denormFract :
    _FReg1_ft_10_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_ft_10_ie = {FReg1_ft_10_ie_rawIn__sign,FReg1_ft_10_ie_expOut,FReg1_ft_10_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_ft_10_T_3 = FReg1_ft_10_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire [32:0] FReg1_ft_11_unbx_floats_0 = {io_diffFReg_31[31],io_diffFReg_31[52],io_diffFReg_31[30:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_11_unbx_isbox = &io_diffFReg_31[64:60]; // @[Fpu.scala 118:84]
  wire [32:0] _FReg1_ft_11_unbx_T = FReg1_ft_11_unbx_isbox ? 33'h0 : 33'he0400000; // @[Fpu.scala 163:31]
  wire [32:0] FReg1_ft_11_unbx = FReg1_ft_11_unbx_floats_0 | _FReg1_ft_11_unbx_T; // @[Fpu.scala 163:26]
  wire [8:0] FReg1_ft_11_ie_rawIn_exp = FReg1_ft_11_unbx[31:23]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg1_ft_11_ie_rawIn_isZero = FReg1_ft_11_ie_rawIn_exp[8:6] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg1_ft_11_ie_rawIn_isSpecial = FReg1_ft_11_ie_rawIn_exp[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg1_ft_11_ie_rawIn__isNaN = FReg1_ft_11_ie_rawIn_isSpecial & FReg1_ft_11_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg1_ft_11_ie_rawIn__isInf = FReg1_ft_11_ie_rawIn_isSpecial & ~FReg1_ft_11_ie_rawIn_exp[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg1_ft_11_ie_rawIn__sign = FReg1_ft_11_unbx[32]; // @[rawFloatFromRecFN.scala 58:25]
  wire [9:0] FReg1_ft_11_ie_rawIn__sExp = {1'b0,$signed(FReg1_ft_11_ie_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg1_ft_11_ie_rawIn_out_sig_T = ~FReg1_ft_11_ie_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg1_ft_11_ie_rawIn__sig = {1'h0,_FReg1_ft_11_ie_rawIn_out_sig_T,FReg1_ft_11_unbx[22:0]}; // @[Cat.scala 33:92]
  wire  FReg1_ft_11_ie_isSubnormal = $signed(FReg1_ft_11_ie_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg1_ft_11_ie_denormShiftDist = 5'h1 - FReg1_ft_11_ie_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg1_ft_11_ie_denormFract_T_1 = FReg1_ft_11_ie_rawIn__sig[24:1] >> FReg1_ft_11_ie_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg1_ft_11_ie_denormFract = _FReg1_ft_11_ie_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg1_ft_11_ie_expOut_T_2 = FReg1_ft_11_ie_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg1_ft_11_ie_expOut_T_3 = FReg1_ft_11_ie_isSubnormal ? 8'h0 : _FReg1_ft_11_ie_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg1_ft_11_ie_expOut_T_4 = FReg1_ft_11_ie_rawIn__isNaN | FReg1_ft_11_ie_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg1_ft_11_ie_expOut_T_6 = _FReg1_ft_11_ie_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg1_ft_11_ie_expOut = _FReg1_ft_11_ie_expOut_T_3 | _FReg1_ft_11_ie_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg1_ft_11_ie_fractOut_T_1 = FReg1_ft_11_ie_rawIn__isInf ? 23'h0 : FReg1_ft_11_ie_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg1_ft_11_ie_fractOut = FReg1_ft_11_ie_isSubnormal ? FReg1_ft_11_ie_denormFract :
    _FReg1_ft_11_ie_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg1_ft_11_ie = {FReg1_ft_11_ie_rawIn__sign,FReg1_ft_11_ie_expOut,FReg1_ft_11_ie_fractOut}; // @[Cat.scala 33:92]
  wire [31:0] _FReg1_ft_11_T_3 = FReg1_ft_11_ie[31] ? 32'hffffffff : 32'h0; // @[Bitwise.scala 77:12]
  wire  FReg2_ft_0_unbx_sign = FReg1_ft_0_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_ft_0_unbx_fractIn = FReg1_ft_0_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_ft_0_unbx_expIn = FReg1_ft_0_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_ft_0_unbx_expOut_expCode = FReg2_ft_0_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_ft_0_unbx_expOut_T = FReg2_ft_0_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_ft_0_unrecoded_rawIn_exp = io_diffFReg_0[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_ft_0_unrecoded_rawIn_isZero = FReg2_ft_0_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_ft_0_unrecoded_rawIn_isSpecial = FReg2_ft_0_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_0_unrecoded_rawIn__isNaN = FReg2_ft_0_unrecoded_rawIn_isSpecial & FReg2_ft_0_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_0_unrecoded_rawIn__isInf = FReg2_ft_0_unrecoded_rawIn_isSpecial & ~FReg2_ft_0_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_ft_0_unrecoded_rawIn__sign = io_diffFReg_0[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_ft_0_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_0_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_0_unrecoded_rawIn_out_sig_T = ~FReg2_ft_0_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_ft_0_unrecoded_rawIn__sig = {1'h0,_FReg2_ft_0_unrecoded_rawIn_out_sig_T,io_diffFReg_0[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_ft_0_unrecoded_isSubnormal = $signed(FReg2_ft_0_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_ft_0_unrecoded_denormShiftDist = 6'h1 - FReg2_ft_0_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_ft_0_unrecoded_denormFract_T_1 = FReg2_ft_0_unrecoded_rawIn__sig[53:1] >>
    FReg2_ft_0_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_ft_0_unrecoded_denormFract = _FReg2_ft_0_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_ft_0_unrecoded_expOut_T_2 = FReg2_ft_0_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_ft_0_unrecoded_expOut_T_3 = FReg2_ft_0_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_ft_0_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_0_unrecoded_expOut_T_4 = FReg2_ft_0_unrecoded_rawIn__isNaN | FReg2_ft_0_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_ft_0_unrecoded_expOut_T_6 = _FReg2_ft_0_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_ft_0_unrecoded_expOut = _FReg2_ft_0_unrecoded_expOut_T_3 | _FReg2_ft_0_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_ft_0_unrecoded_fractOut_T_1 = FReg2_ft_0_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_ft_0_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_ft_0_unrecoded_fractOut = FReg2_ft_0_unrecoded_isSubnormal ? FReg2_ft_0_unrecoded_denormFract :
    _FReg2_ft_0_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_ft_0_unrecoded = {FReg2_ft_0_unrecoded_rawIn__sign,FReg2_ft_0_unrecoded_expOut,
    FReg2_ft_0_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_ft_0_prevUnrecoded_rawIn_isSpecial = FReg2_ft_0_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_0_prevUnrecoded_rawIn__isNaN = FReg2_ft_0_prevUnrecoded_rawIn_isSpecial & FReg2_ft_0_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_0_prevUnrecoded_rawIn__isInf = FReg2_ft_0_prevUnrecoded_rawIn_isSpecial & ~FReg2_ft_0_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_ft_0_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_0_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_0_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_ft_0_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_ft_0_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_ft_0_prevUnrecoded_rawIn_out_sig_T,
    FReg2_ft_0_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_ft_0_prevUnrecoded_isSubnormal = $signed(FReg2_ft_0_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_ft_0_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_ft_0_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_ft_0_prevUnrecoded_denormFract_T_1 = FReg2_ft_0_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_ft_0_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_ft_0_prevUnrecoded_denormFract = _FReg2_ft_0_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_ft_0_prevUnrecoded_expOut_T_2 = FReg2_ft_0_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_ft_0_prevUnrecoded_expOut_T_3 = FReg2_ft_0_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_ft_0_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_0_prevUnrecoded_expOut_T_4 = FReg2_ft_0_prevUnrecoded_rawIn__isNaN |
    FReg2_ft_0_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_ft_0_prevUnrecoded_expOut_T_6 = _FReg2_ft_0_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_ft_0_prevUnrecoded_expOut = _FReg2_ft_0_prevUnrecoded_expOut_T_3 |
    _FReg2_ft_0_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_ft_0_prevUnrecoded_fractOut_T_1 = FReg2_ft_0_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_ft_0_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_ft_0_prevUnrecoded_fractOut = FReg2_ft_0_prevUnrecoded_isSubnormal ?
    FReg2_ft_0_prevUnrecoded_denormFract : _FReg2_ft_0_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_ft_0_prevUnrecoded = {FReg2_ft_0_unbx_sign,FReg2_ft_0_prevUnrecoded_expOut,
    FReg2_ft_0_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_ft_0_T_2 = &io_diffFReg_0[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_ft_0_T_4 = _FReg2_ft_0_T_2 ? FReg2_ft_0_prevUnrecoded : FReg2_ft_0_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_ft_1_unbx_sign = FReg1_ft_1_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_ft_1_unbx_fractIn = FReg1_ft_1_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_ft_1_unbx_expIn = FReg1_ft_1_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_ft_1_unbx_expOut_expCode = FReg2_ft_1_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_ft_1_unbx_expOut_T = FReg2_ft_1_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_ft_1_unrecoded_rawIn_exp = io_diffFReg_1[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_ft_1_unrecoded_rawIn_isZero = FReg2_ft_1_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_ft_1_unrecoded_rawIn_isSpecial = FReg2_ft_1_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_1_unrecoded_rawIn__isNaN = FReg2_ft_1_unrecoded_rawIn_isSpecial & FReg2_ft_1_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_1_unrecoded_rawIn__isInf = FReg2_ft_1_unrecoded_rawIn_isSpecial & ~FReg2_ft_1_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_ft_1_unrecoded_rawIn__sign = io_diffFReg_1[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_ft_1_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_1_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_1_unrecoded_rawIn_out_sig_T = ~FReg2_ft_1_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_ft_1_unrecoded_rawIn__sig = {1'h0,_FReg2_ft_1_unrecoded_rawIn_out_sig_T,io_diffFReg_1[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_ft_1_unrecoded_isSubnormal = $signed(FReg2_ft_1_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_ft_1_unrecoded_denormShiftDist = 6'h1 - FReg2_ft_1_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_ft_1_unrecoded_denormFract_T_1 = FReg2_ft_1_unrecoded_rawIn__sig[53:1] >>
    FReg2_ft_1_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_ft_1_unrecoded_denormFract = _FReg2_ft_1_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_ft_1_unrecoded_expOut_T_2 = FReg2_ft_1_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_ft_1_unrecoded_expOut_T_3 = FReg2_ft_1_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_ft_1_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_1_unrecoded_expOut_T_4 = FReg2_ft_1_unrecoded_rawIn__isNaN | FReg2_ft_1_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_ft_1_unrecoded_expOut_T_6 = _FReg2_ft_1_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_ft_1_unrecoded_expOut = _FReg2_ft_1_unrecoded_expOut_T_3 | _FReg2_ft_1_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_ft_1_unrecoded_fractOut_T_1 = FReg2_ft_1_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_ft_1_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_ft_1_unrecoded_fractOut = FReg2_ft_1_unrecoded_isSubnormal ? FReg2_ft_1_unrecoded_denormFract :
    _FReg2_ft_1_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_ft_1_unrecoded = {FReg2_ft_1_unrecoded_rawIn__sign,FReg2_ft_1_unrecoded_expOut,
    FReg2_ft_1_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_ft_1_prevUnrecoded_rawIn_isSpecial = FReg2_ft_1_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_1_prevUnrecoded_rawIn__isNaN = FReg2_ft_1_prevUnrecoded_rawIn_isSpecial & FReg2_ft_1_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_1_prevUnrecoded_rawIn__isInf = FReg2_ft_1_prevUnrecoded_rawIn_isSpecial & ~FReg2_ft_1_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_ft_1_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_1_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_1_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_ft_1_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_ft_1_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_ft_1_prevUnrecoded_rawIn_out_sig_T,
    FReg2_ft_1_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_ft_1_prevUnrecoded_isSubnormal = $signed(FReg2_ft_1_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_ft_1_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_ft_1_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_ft_1_prevUnrecoded_denormFract_T_1 = FReg2_ft_1_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_ft_1_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_ft_1_prevUnrecoded_denormFract = _FReg2_ft_1_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_ft_1_prevUnrecoded_expOut_T_2 = FReg2_ft_1_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_ft_1_prevUnrecoded_expOut_T_3 = FReg2_ft_1_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_ft_1_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_1_prevUnrecoded_expOut_T_4 = FReg2_ft_1_prevUnrecoded_rawIn__isNaN |
    FReg2_ft_1_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_ft_1_prevUnrecoded_expOut_T_6 = _FReg2_ft_1_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_ft_1_prevUnrecoded_expOut = _FReg2_ft_1_prevUnrecoded_expOut_T_3 |
    _FReg2_ft_1_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_ft_1_prevUnrecoded_fractOut_T_1 = FReg2_ft_1_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_ft_1_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_ft_1_prevUnrecoded_fractOut = FReg2_ft_1_prevUnrecoded_isSubnormal ?
    FReg2_ft_1_prevUnrecoded_denormFract : _FReg2_ft_1_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_ft_1_prevUnrecoded = {FReg2_ft_1_unbx_sign,FReg2_ft_1_prevUnrecoded_expOut,
    FReg2_ft_1_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_ft_1_T_2 = &io_diffFReg_1[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_ft_1_T_4 = _FReg2_ft_1_T_2 ? FReg2_ft_1_prevUnrecoded : FReg2_ft_1_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_ft_2_unbx_sign = FReg1_ft_2_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_ft_2_unbx_fractIn = FReg1_ft_2_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_ft_2_unbx_expIn = FReg1_ft_2_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_ft_2_unbx_expOut_expCode = FReg2_ft_2_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_ft_2_unbx_expOut_T = FReg2_ft_2_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_ft_2_unrecoded_rawIn_exp = io_diffFReg_2[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_ft_2_unrecoded_rawIn_isZero = FReg2_ft_2_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_ft_2_unrecoded_rawIn_isSpecial = FReg2_ft_2_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_2_unrecoded_rawIn__isNaN = FReg2_ft_2_unrecoded_rawIn_isSpecial & FReg2_ft_2_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_2_unrecoded_rawIn__isInf = FReg2_ft_2_unrecoded_rawIn_isSpecial & ~FReg2_ft_2_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_ft_2_unrecoded_rawIn__sign = io_diffFReg_2[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_ft_2_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_2_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_2_unrecoded_rawIn_out_sig_T = ~FReg2_ft_2_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_ft_2_unrecoded_rawIn__sig = {1'h0,_FReg2_ft_2_unrecoded_rawIn_out_sig_T,io_diffFReg_2[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_ft_2_unrecoded_isSubnormal = $signed(FReg2_ft_2_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_ft_2_unrecoded_denormShiftDist = 6'h1 - FReg2_ft_2_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_ft_2_unrecoded_denormFract_T_1 = FReg2_ft_2_unrecoded_rawIn__sig[53:1] >>
    FReg2_ft_2_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_ft_2_unrecoded_denormFract = _FReg2_ft_2_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_ft_2_unrecoded_expOut_T_2 = FReg2_ft_2_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_ft_2_unrecoded_expOut_T_3 = FReg2_ft_2_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_ft_2_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_2_unrecoded_expOut_T_4 = FReg2_ft_2_unrecoded_rawIn__isNaN | FReg2_ft_2_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_ft_2_unrecoded_expOut_T_6 = _FReg2_ft_2_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_ft_2_unrecoded_expOut = _FReg2_ft_2_unrecoded_expOut_T_3 | _FReg2_ft_2_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_ft_2_unrecoded_fractOut_T_1 = FReg2_ft_2_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_ft_2_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_ft_2_unrecoded_fractOut = FReg2_ft_2_unrecoded_isSubnormal ? FReg2_ft_2_unrecoded_denormFract :
    _FReg2_ft_2_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_ft_2_unrecoded = {FReg2_ft_2_unrecoded_rawIn__sign,FReg2_ft_2_unrecoded_expOut,
    FReg2_ft_2_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_ft_2_prevUnrecoded_rawIn_isSpecial = FReg2_ft_2_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_2_prevUnrecoded_rawIn__isNaN = FReg2_ft_2_prevUnrecoded_rawIn_isSpecial & FReg2_ft_2_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_2_prevUnrecoded_rawIn__isInf = FReg2_ft_2_prevUnrecoded_rawIn_isSpecial & ~FReg2_ft_2_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_ft_2_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_2_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_2_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_ft_2_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_ft_2_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_ft_2_prevUnrecoded_rawIn_out_sig_T,
    FReg2_ft_2_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_ft_2_prevUnrecoded_isSubnormal = $signed(FReg2_ft_2_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_ft_2_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_ft_2_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_ft_2_prevUnrecoded_denormFract_T_1 = FReg2_ft_2_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_ft_2_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_ft_2_prevUnrecoded_denormFract = _FReg2_ft_2_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_ft_2_prevUnrecoded_expOut_T_2 = FReg2_ft_2_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_ft_2_prevUnrecoded_expOut_T_3 = FReg2_ft_2_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_ft_2_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_2_prevUnrecoded_expOut_T_4 = FReg2_ft_2_prevUnrecoded_rawIn__isNaN |
    FReg2_ft_2_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_ft_2_prevUnrecoded_expOut_T_6 = _FReg2_ft_2_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_ft_2_prevUnrecoded_expOut = _FReg2_ft_2_prevUnrecoded_expOut_T_3 |
    _FReg2_ft_2_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_ft_2_prevUnrecoded_fractOut_T_1 = FReg2_ft_2_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_ft_2_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_ft_2_prevUnrecoded_fractOut = FReg2_ft_2_prevUnrecoded_isSubnormal ?
    FReg2_ft_2_prevUnrecoded_denormFract : _FReg2_ft_2_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_ft_2_prevUnrecoded = {FReg2_ft_2_unbx_sign,FReg2_ft_2_prevUnrecoded_expOut,
    FReg2_ft_2_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_ft_2_T_2 = &io_diffFReg_2[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_ft_2_T_4 = _FReg2_ft_2_T_2 ? FReg2_ft_2_prevUnrecoded : FReg2_ft_2_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_ft_3_unbx_sign = FReg1_ft_3_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_ft_3_unbx_fractIn = FReg1_ft_3_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_ft_3_unbx_expIn = FReg1_ft_3_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_ft_3_unbx_expOut_expCode = FReg2_ft_3_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_ft_3_unbx_expOut_T = FReg2_ft_3_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_ft_3_unrecoded_rawIn_exp = io_diffFReg_3[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_ft_3_unrecoded_rawIn_isZero = FReg2_ft_3_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_ft_3_unrecoded_rawIn_isSpecial = FReg2_ft_3_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_3_unrecoded_rawIn__isNaN = FReg2_ft_3_unrecoded_rawIn_isSpecial & FReg2_ft_3_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_3_unrecoded_rawIn__isInf = FReg2_ft_3_unrecoded_rawIn_isSpecial & ~FReg2_ft_3_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_ft_3_unrecoded_rawIn__sign = io_diffFReg_3[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_ft_3_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_3_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_3_unrecoded_rawIn_out_sig_T = ~FReg2_ft_3_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_ft_3_unrecoded_rawIn__sig = {1'h0,_FReg2_ft_3_unrecoded_rawIn_out_sig_T,io_diffFReg_3[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_ft_3_unrecoded_isSubnormal = $signed(FReg2_ft_3_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_ft_3_unrecoded_denormShiftDist = 6'h1 - FReg2_ft_3_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_ft_3_unrecoded_denormFract_T_1 = FReg2_ft_3_unrecoded_rawIn__sig[53:1] >>
    FReg2_ft_3_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_ft_3_unrecoded_denormFract = _FReg2_ft_3_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_ft_3_unrecoded_expOut_T_2 = FReg2_ft_3_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_ft_3_unrecoded_expOut_T_3 = FReg2_ft_3_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_ft_3_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_3_unrecoded_expOut_T_4 = FReg2_ft_3_unrecoded_rawIn__isNaN | FReg2_ft_3_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_ft_3_unrecoded_expOut_T_6 = _FReg2_ft_3_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_ft_3_unrecoded_expOut = _FReg2_ft_3_unrecoded_expOut_T_3 | _FReg2_ft_3_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_ft_3_unrecoded_fractOut_T_1 = FReg2_ft_3_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_ft_3_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_ft_3_unrecoded_fractOut = FReg2_ft_3_unrecoded_isSubnormal ? FReg2_ft_3_unrecoded_denormFract :
    _FReg2_ft_3_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_ft_3_unrecoded = {FReg2_ft_3_unrecoded_rawIn__sign,FReg2_ft_3_unrecoded_expOut,
    FReg2_ft_3_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_ft_3_prevUnrecoded_rawIn_isSpecial = FReg2_ft_3_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_3_prevUnrecoded_rawIn__isNaN = FReg2_ft_3_prevUnrecoded_rawIn_isSpecial & FReg2_ft_3_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_3_prevUnrecoded_rawIn__isInf = FReg2_ft_3_prevUnrecoded_rawIn_isSpecial & ~FReg2_ft_3_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_ft_3_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_3_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_3_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_ft_3_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_ft_3_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_ft_3_prevUnrecoded_rawIn_out_sig_T,
    FReg2_ft_3_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_ft_3_prevUnrecoded_isSubnormal = $signed(FReg2_ft_3_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_ft_3_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_ft_3_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_ft_3_prevUnrecoded_denormFract_T_1 = FReg2_ft_3_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_ft_3_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_ft_3_prevUnrecoded_denormFract = _FReg2_ft_3_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_ft_3_prevUnrecoded_expOut_T_2 = FReg2_ft_3_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_ft_3_prevUnrecoded_expOut_T_3 = FReg2_ft_3_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_ft_3_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_3_prevUnrecoded_expOut_T_4 = FReg2_ft_3_prevUnrecoded_rawIn__isNaN |
    FReg2_ft_3_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_ft_3_prevUnrecoded_expOut_T_6 = _FReg2_ft_3_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_ft_3_prevUnrecoded_expOut = _FReg2_ft_3_prevUnrecoded_expOut_T_3 |
    _FReg2_ft_3_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_ft_3_prevUnrecoded_fractOut_T_1 = FReg2_ft_3_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_ft_3_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_ft_3_prevUnrecoded_fractOut = FReg2_ft_3_prevUnrecoded_isSubnormal ?
    FReg2_ft_3_prevUnrecoded_denormFract : _FReg2_ft_3_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_ft_3_prevUnrecoded = {FReg2_ft_3_unbx_sign,FReg2_ft_3_prevUnrecoded_expOut,
    FReg2_ft_3_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_ft_3_T_2 = &io_diffFReg_3[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_ft_3_T_4 = _FReg2_ft_3_T_2 ? FReg2_ft_3_prevUnrecoded : FReg2_ft_3_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_ft_4_unbx_sign = FReg1_ft_4_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_ft_4_unbx_fractIn = FReg1_ft_4_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_ft_4_unbx_expIn = FReg1_ft_4_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_ft_4_unbx_expOut_expCode = FReg2_ft_4_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_ft_4_unbx_expOut_T = FReg2_ft_4_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_ft_4_unrecoded_rawIn_exp = io_diffFReg_4[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_ft_4_unrecoded_rawIn_isZero = FReg2_ft_4_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_ft_4_unrecoded_rawIn_isSpecial = FReg2_ft_4_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_4_unrecoded_rawIn__isNaN = FReg2_ft_4_unrecoded_rawIn_isSpecial & FReg2_ft_4_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_4_unrecoded_rawIn__isInf = FReg2_ft_4_unrecoded_rawIn_isSpecial & ~FReg2_ft_4_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_ft_4_unrecoded_rawIn__sign = io_diffFReg_4[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_ft_4_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_4_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_4_unrecoded_rawIn_out_sig_T = ~FReg2_ft_4_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_ft_4_unrecoded_rawIn__sig = {1'h0,_FReg2_ft_4_unrecoded_rawIn_out_sig_T,io_diffFReg_4[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_ft_4_unrecoded_isSubnormal = $signed(FReg2_ft_4_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_ft_4_unrecoded_denormShiftDist = 6'h1 - FReg2_ft_4_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_ft_4_unrecoded_denormFract_T_1 = FReg2_ft_4_unrecoded_rawIn__sig[53:1] >>
    FReg2_ft_4_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_ft_4_unrecoded_denormFract = _FReg2_ft_4_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_ft_4_unrecoded_expOut_T_2 = FReg2_ft_4_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_ft_4_unrecoded_expOut_T_3 = FReg2_ft_4_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_ft_4_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_4_unrecoded_expOut_T_4 = FReg2_ft_4_unrecoded_rawIn__isNaN | FReg2_ft_4_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_ft_4_unrecoded_expOut_T_6 = _FReg2_ft_4_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_ft_4_unrecoded_expOut = _FReg2_ft_4_unrecoded_expOut_T_3 | _FReg2_ft_4_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_ft_4_unrecoded_fractOut_T_1 = FReg2_ft_4_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_ft_4_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_ft_4_unrecoded_fractOut = FReg2_ft_4_unrecoded_isSubnormal ? FReg2_ft_4_unrecoded_denormFract :
    _FReg2_ft_4_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_ft_4_unrecoded = {FReg2_ft_4_unrecoded_rawIn__sign,FReg2_ft_4_unrecoded_expOut,
    FReg2_ft_4_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_ft_4_prevUnrecoded_rawIn_isSpecial = FReg2_ft_4_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_4_prevUnrecoded_rawIn__isNaN = FReg2_ft_4_prevUnrecoded_rawIn_isSpecial & FReg2_ft_4_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_4_prevUnrecoded_rawIn__isInf = FReg2_ft_4_prevUnrecoded_rawIn_isSpecial & ~FReg2_ft_4_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_ft_4_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_4_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_4_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_ft_4_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_ft_4_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_ft_4_prevUnrecoded_rawIn_out_sig_T,
    FReg2_ft_4_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_ft_4_prevUnrecoded_isSubnormal = $signed(FReg2_ft_4_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_ft_4_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_ft_4_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_ft_4_prevUnrecoded_denormFract_T_1 = FReg2_ft_4_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_ft_4_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_ft_4_prevUnrecoded_denormFract = _FReg2_ft_4_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_ft_4_prevUnrecoded_expOut_T_2 = FReg2_ft_4_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_ft_4_prevUnrecoded_expOut_T_3 = FReg2_ft_4_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_ft_4_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_4_prevUnrecoded_expOut_T_4 = FReg2_ft_4_prevUnrecoded_rawIn__isNaN |
    FReg2_ft_4_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_ft_4_prevUnrecoded_expOut_T_6 = _FReg2_ft_4_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_ft_4_prevUnrecoded_expOut = _FReg2_ft_4_prevUnrecoded_expOut_T_3 |
    _FReg2_ft_4_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_ft_4_prevUnrecoded_fractOut_T_1 = FReg2_ft_4_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_ft_4_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_ft_4_prevUnrecoded_fractOut = FReg2_ft_4_prevUnrecoded_isSubnormal ?
    FReg2_ft_4_prevUnrecoded_denormFract : _FReg2_ft_4_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_ft_4_prevUnrecoded = {FReg2_ft_4_unbx_sign,FReg2_ft_4_prevUnrecoded_expOut,
    FReg2_ft_4_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_ft_4_T_2 = &io_diffFReg_4[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_ft_4_T_4 = _FReg2_ft_4_T_2 ? FReg2_ft_4_prevUnrecoded : FReg2_ft_4_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_ft_5_unbx_sign = FReg1_ft_5_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_ft_5_unbx_fractIn = FReg1_ft_5_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_ft_5_unbx_expIn = FReg1_ft_5_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_ft_5_unbx_expOut_expCode = FReg2_ft_5_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_ft_5_unbx_expOut_T = FReg2_ft_5_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_ft_5_unrecoded_rawIn_exp = io_diffFReg_5[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_ft_5_unrecoded_rawIn_isZero = FReg2_ft_5_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_ft_5_unrecoded_rawIn_isSpecial = FReg2_ft_5_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_5_unrecoded_rawIn__isNaN = FReg2_ft_5_unrecoded_rawIn_isSpecial & FReg2_ft_5_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_5_unrecoded_rawIn__isInf = FReg2_ft_5_unrecoded_rawIn_isSpecial & ~FReg2_ft_5_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_ft_5_unrecoded_rawIn__sign = io_diffFReg_5[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_ft_5_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_5_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_5_unrecoded_rawIn_out_sig_T = ~FReg2_ft_5_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_ft_5_unrecoded_rawIn__sig = {1'h0,_FReg2_ft_5_unrecoded_rawIn_out_sig_T,io_diffFReg_5[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_ft_5_unrecoded_isSubnormal = $signed(FReg2_ft_5_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_ft_5_unrecoded_denormShiftDist = 6'h1 - FReg2_ft_5_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_ft_5_unrecoded_denormFract_T_1 = FReg2_ft_5_unrecoded_rawIn__sig[53:1] >>
    FReg2_ft_5_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_ft_5_unrecoded_denormFract = _FReg2_ft_5_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_ft_5_unrecoded_expOut_T_2 = FReg2_ft_5_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_ft_5_unrecoded_expOut_T_3 = FReg2_ft_5_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_ft_5_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_5_unrecoded_expOut_T_4 = FReg2_ft_5_unrecoded_rawIn__isNaN | FReg2_ft_5_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_ft_5_unrecoded_expOut_T_6 = _FReg2_ft_5_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_ft_5_unrecoded_expOut = _FReg2_ft_5_unrecoded_expOut_T_3 | _FReg2_ft_5_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_ft_5_unrecoded_fractOut_T_1 = FReg2_ft_5_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_ft_5_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_ft_5_unrecoded_fractOut = FReg2_ft_5_unrecoded_isSubnormal ? FReg2_ft_5_unrecoded_denormFract :
    _FReg2_ft_5_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_ft_5_unrecoded = {FReg2_ft_5_unrecoded_rawIn__sign,FReg2_ft_5_unrecoded_expOut,
    FReg2_ft_5_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_ft_5_prevUnrecoded_rawIn_isSpecial = FReg2_ft_5_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_5_prevUnrecoded_rawIn__isNaN = FReg2_ft_5_prevUnrecoded_rawIn_isSpecial & FReg2_ft_5_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_5_prevUnrecoded_rawIn__isInf = FReg2_ft_5_prevUnrecoded_rawIn_isSpecial & ~FReg2_ft_5_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_ft_5_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_5_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_5_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_ft_5_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_ft_5_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_ft_5_prevUnrecoded_rawIn_out_sig_T,
    FReg2_ft_5_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_ft_5_prevUnrecoded_isSubnormal = $signed(FReg2_ft_5_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_ft_5_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_ft_5_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_ft_5_prevUnrecoded_denormFract_T_1 = FReg2_ft_5_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_ft_5_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_ft_5_prevUnrecoded_denormFract = _FReg2_ft_5_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_ft_5_prevUnrecoded_expOut_T_2 = FReg2_ft_5_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_ft_5_prevUnrecoded_expOut_T_3 = FReg2_ft_5_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_ft_5_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_5_prevUnrecoded_expOut_T_4 = FReg2_ft_5_prevUnrecoded_rawIn__isNaN |
    FReg2_ft_5_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_ft_5_prevUnrecoded_expOut_T_6 = _FReg2_ft_5_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_ft_5_prevUnrecoded_expOut = _FReg2_ft_5_prevUnrecoded_expOut_T_3 |
    _FReg2_ft_5_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_ft_5_prevUnrecoded_fractOut_T_1 = FReg2_ft_5_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_ft_5_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_ft_5_prevUnrecoded_fractOut = FReg2_ft_5_prevUnrecoded_isSubnormal ?
    FReg2_ft_5_prevUnrecoded_denormFract : _FReg2_ft_5_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_ft_5_prevUnrecoded = {FReg2_ft_5_unbx_sign,FReg2_ft_5_prevUnrecoded_expOut,
    FReg2_ft_5_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_ft_5_T_2 = &io_diffFReg_5[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_ft_5_T_4 = _FReg2_ft_5_T_2 ? FReg2_ft_5_prevUnrecoded : FReg2_ft_5_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_ft_6_unbx_sign = FReg1_ft_6_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_ft_6_unbx_fractIn = FReg1_ft_6_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_ft_6_unbx_expIn = FReg1_ft_6_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_ft_6_unbx_expOut_expCode = FReg2_ft_6_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_ft_6_unbx_expOut_T = FReg2_ft_6_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_ft_6_unrecoded_rawIn_exp = io_diffFReg_6[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_ft_6_unrecoded_rawIn_isZero = FReg2_ft_6_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_ft_6_unrecoded_rawIn_isSpecial = FReg2_ft_6_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_6_unrecoded_rawIn__isNaN = FReg2_ft_6_unrecoded_rawIn_isSpecial & FReg2_ft_6_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_6_unrecoded_rawIn__isInf = FReg2_ft_6_unrecoded_rawIn_isSpecial & ~FReg2_ft_6_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_ft_6_unrecoded_rawIn__sign = io_diffFReg_6[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_ft_6_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_6_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_6_unrecoded_rawIn_out_sig_T = ~FReg2_ft_6_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_ft_6_unrecoded_rawIn__sig = {1'h0,_FReg2_ft_6_unrecoded_rawIn_out_sig_T,io_diffFReg_6[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_ft_6_unrecoded_isSubnormal = $signed(FReg2_ft_6_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_ft_6_unrecoded_denormShiftDist = 6'h1 - FReg2_ft_6_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_ft_6_unrecoded_denormFract_T_1 = FReg2_ft_6_unrecoded_rawIn__sig[53:1] >>
    FReg2_ft_6_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_ft_6_unrecoded_denormFract = _FReg2_ft_6_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_ft_6_unrecoded_expOut_T_2 = FReg2_ft_6_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_ft_6_unrecoded_expOut_T_3 = FReg2_ft_6_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_ft_6_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_6_unrecoded_expOut_T_4 = FReg2_ft_6_unrecoded_rawIn__isNaN | FReg2_ft_6_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_ft_6_unrecoded_expOut_T_6 = _FReg2_ft_6_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_ft_6_unrecoded_expOut = _FReg2_ft_6_unrecoded_expOut_T_3 | _FReg2_ft_6_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_ft_6_unrecoded_fractOut_T_1 = FReg2_ft_6_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_ft_6_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_ft_6_unrecoded_fractOut = FReg2_ft_6_unrecoded_isSubnormal ? FReg2_ft_6_unrecoded_denormFract :
    _FReg2_ft_6_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_ft_6_unrecoded = {FReg2_ft_6_unrecoded_rawIn__sign,FReg2_ft_6_unrecoded_expOut,
    FReg2_ft_6_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_ft_6_prevUnrecoded_rawIn_isSpecial = FReg2_ft_6_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_6_prevUnrecoded_rawIn__isNaN = FReg2_ft_6_prevUnrecoded_rawIn_isSpecial & FReg2_ft_6_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_6_prevUnrecoded_rawIn__isInf = FReg2_ft_6_prevUnrecoded_rawIn_isSpecial & ~FReg2_ft_6_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_ft_6_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_6_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_6_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_ft_6_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_ft_6_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_ft_6_prevUnrecoded_rawIn_out_sig_T,
    FReg2_ft_6_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_ft_6_prevUnrecoded_isSubnormal = $signed(FReg2_ft_6_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_ft_6_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_ft_6_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_ft_6_prevUnrecoded_denormFract_T_1 = FReg2_ft_6_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_ft_6_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_ft_6_prevUnrecoded_denormFract = _FReg2_ft_6_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_ft_6_prevUnrecoded_expOut_T_2 = FReg2_ft_6_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_ft_6_prevUnrecoded_expOut_T_3 = FReg2_ft_6_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_ft_6_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_6_prevUnrecoded_expOut_T_4 = FReg2_ft_6_prevUnrecoded_rawIn__isNaN |
    FReg2_ft_6_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_ft_6_prevUnrecoded_expOut_T_6 = _FReg2_ft_6_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_ft_6_prevUnrecoded_expOut = _FReg2_ft_6_prevUnrecoded_expOut_T_3 |
    _FReg2_ft_6_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_ft_6_prevUnrecoded_fractOut_T_1 = FReg2_ft_6_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_ft_6_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_ft_6_prevUnrecoded_fractOut = FReg2_ft_6_prevUnrecoded_isSubnormal ?
    FReg2_ft_6_prevUnrecoded_denormFract : _FReg2_ft_6_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_ft_6_prevUnrecoded = {FReg2_ft_6_unbx_sign,FReg2_ft_6_prevUnrecoded_expOut,
    FReg2_ft_6_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_ft_6_T_2 = &io_diffFReg_6[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_ft_6_T_4 = _FReg2_ft_6_T_2 ? FReg2_ft_6_prevUnrecoded : FReg2_ft_6_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_ft_7_unbx_sign = FReg1_ft_7_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_ft_7_unbx_fractIn = FReg1_ft_7_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_ft_7_unbx_expIn = FReg1_ft_7_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_ft_7_unbx_expOut_expCode = FReg2_ft_7_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_ft_7_unbx_expOut_T = FReg2_ft_7_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_ft_7_unrecoded_rawIn_exp = io_diffFReg_7[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_ft_7_unrecoded_rawIn_isZero = FReg2_ft_7_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_ft_7_unrecoded_rawIn_isSpecial = FReg2_ft_7_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_7_unrecoded_rawIn__isNaN = FReg2_ft_7_unrecoded_rawIn_isSpecial & FReg2_ft_7_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_7_unrecoded_rawIn__isInf = FReg2_ft_7_unrecoded_rawIn_isSpecial & ~FReg2_ft_7_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_ft_7_unrecoded_rawIn__sign = io_diffFReg_7[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_ft_7_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_7_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_7_unrecoded_rawIn_out_sig_T = ~FReg2_ft_7_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_ft_7_unrecoded_rawIn__sig = {1'h0,_FReg2_ft_7_unrecoded_rawIn_out_sig_T,io_diffFReg_7[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_ft_7_unrecoded_isSubnormal = $signed(FReg2_ft_7_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_ft_7_unrecoded_denormShiftDist = 6'h1 - FReg2_ft_7_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_ft_7_unrecoded_denormFract_T_1 = FReg2_ft_7_unrecoded_rawIn__sig[53:1] >>
    FReg2_ft_7_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_ft_7_unrecoded_denormFract = _FReg2_ft_7_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_ft_7_unrecoded_expOut_T_2 = FReg2_ft_7_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_ft_7_unrecoded_expOut_T_3 = FReg2_ft_7_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_ft_7_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_7_unrecoded_expOut_T_4 = FReg2_ft_7_unrecoded_rawIn__isNaN | FReg2_ft_7_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_ft_7_unrecoded_expOut_T_6 = _FReg2_ft_7_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_ft_7_unrecoded_expOut = _FReg2_ft_7_unrecoded_expOut_T_3 | _FReg2_ft_7_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_ft_7_unrecoded_fractOut_T_1 = FReg2_ft_7_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_ft_7_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_ft_7_unrecoded_fractOut = FReg2_ft_7_unrecoded_isSubnormal ? FReg2_ft_7_unrecoded_denormFract :
    _FReg2_ft_7_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_ft_7_unrecoded = {FReg2_ft_7_unrecoded_rawIn__sign,FReg2_ft_7_unrecoded_expOut,
    FReg2_ft_7_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_ft_7_prevUnrecoded_rawIn_isSpecial = FReg2_ft_7_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_7_prevUnrecoded_rawIn__isNaN = FReg2_ft_7_prevUnrecoded_rawIn_isSpecial & FReg2_ft_7_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_7_prevUnrecoded_rawIn__isInf = FReg2_ft_7_prevUnrecoded_rawIn_isSpecial & ~FReg2_ft_7_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_ft_7_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_7_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_7_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_ft_7_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_ft_7_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_ft_7_prevUnrecoded_rawIn_out_sig_T,
    FReg2_ft_7_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_ft_7_prevUnrecoded_isSubnormal = $signed(FReg2_ft_7_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_ft_7_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_ft_7_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_ft_7_prevUnrecoded_denormFract_T_1 = FReg2_ft_7_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_ft_7_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_ft_7_prevUnrecoded_denormFract = _FReg2_ft_7_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_ft_7_prevUnrecoded_expOut_T_2 = FReg2_ft_7_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_ft_7_prevUnrecoded_expOut_T_3 = FReg2_ft_7_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_ft_7_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_7_prevUnrecoded_expOut_T_4 = FReg2_ft_7_prevUnrecoded_rawIn__isNaN |
    FReg2_ft_7_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_ft_7_prevUnrecoded_expOut_T_6 = _FReg2_ft_7_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_ft_7_prevUnrecoded_expOut = _FReg2_ft_7_prevUnrecoded_expOut_T_3 |
    _FReg2_ft_7_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_ft_7_prevUnrecoded_fractOut_T_1 = FReg2_ft_7_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_ft_7_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_ft_7_prevUnrecoded_fractOut = FReg2_ft_7_prevUnrecoded_isSubnormal ?
    FReg2_ft_7_prevUnrecoded_denormFract : _FReg2_ft_7_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_ft_7_prevUnrecoded = {FReg2_ft_7_unbx_sign,FReg2_ft_7_prevUnrecoded_expOut,
    FReg2_ft_7_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_ft_7_T_2 = &io_diffFReg_7[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_ft_7_T_4 = _FReg2_ft_7_T_2 ? FReg2_ft_7_prevUnrecoded : FReg2_ft_7_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_fs_0_unbx_sign = FReg1_fs_0_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_fs_0_unbx_fractIn = FReg1_fs_0_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_fs_0_unbx_expIn = FReg1_fs_0_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_fs_0_unbx_expOut_expCode = FReg2_fs_0_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_fs_0_unbx_expOut_T = FReg2_fs_0_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_fs_0_unrecoded_rawIn_exp = io_diffFReg_8[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_fs_0_unrecoded_rawIn_isZero = FReg2_fs_0_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_fs_0_unrecoded_rawIn_isSpecial = FReg2_fs_0_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_0_unrecoded_rawIn__isNaN = FReg2_fs_0_unrecoded_rawIn_isSpecial & FReg2_fs_0_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_0_unrecoded_rawIn__isInf = FReg2_fs_0_unrecoded_rawIn_isSpecial & ~FReg2_fs_0_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_fs_0_unrecoded_rawIn__sign = io_diffFReg_8[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_fs_0_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_0_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_0_unrecoded_rawIn_out_sig_T = ~FReg2_fs_0_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_fs_0_unrecoded_rawIn__sig = {1'h0,_FReg2_fs_0_unrecoded_rawIn_out_sig_T,io_diffFReg_8[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_fs_0_unrecoded_isSubnormal = $signed(FReg2_fs_0_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_fs_0_unrecoded_denormShiftDist = 6'h1 - FReg2_fs_0_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_fs_0_unrecoded_denormFract_T_1 = FReg2_fs_0_unrecoded_rawIn__sig[53:1] >>
    FReg2_fs_0_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_fs_0_unrecoded_denormFract = _FReg2_fs_0_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_fs_0_unrecoded_expOut_T_2 = FReg2_fs_0_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_fs_0_unrecoded_expOut_T_3 = FReg2_fs_0_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_fs_0_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_0_unrecoded_expOut_T_4 = FReg2_fs_0_unrecoded_rawIn__isNaN | FReg2_fs_0_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_fs_0_unrecoded_expOut_T_6 = _FReg2_fs_0_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_fs_0_unrecoded_expOut = _FReg2_fs_0_unrecoded_expOut_T_3 | _FReg2_fs_0_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_fs_0_unrecoded_fractOut_T_1 = FReg2_fs_0_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_fs_0_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_fs_0_unrecoded_fractOut = FReg2_fs_0_unrecoded_isSubnormal ? FReg2_fs_0_unrecoded_denormFract :
    _FReg2_fs_0_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_fs_0_unrecoded = {FReg2_fs_0_unrecoded_rawIn__sign,FReg2_fs_0_unrecoded_expOut,
    FReg2_fs_0_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_fs_0_prevUnrecoded_rawIn_isSpecial = FReg2_fs_0_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_0_prevUnrecoded_rawIn__isNaN = FReg2_fs_0_prevUnrecoded_rawIn_isSpecial & FReg2_fs_0_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_0_prevUnrecoded_rawIn__isInf = FReg2_fs_0_prevUnrecoded_rawIn_isSpecial & ~FReg2_fs_0_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_fs_0_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_0_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_0_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_fs_0_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_fs_0_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_fs_0_prevUnrecoded_rawIn_out_sig_T,
    FReg2_fs_0_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_fs_0_prevUnrecoded_isSubnormal = $signed(FReg2_fs_0_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_fs_0_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_fs_0_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_fs_0_prevUnrecoded_denormFract_T_1 = FReg2_fs_0_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_fs_0_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_fs_0_prevUnrecoded_denormFract = _FReg2_fs_0_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_fs_0_prevUnrecoded_expOut_T_2 = FReg2_fs_0_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_fs_0_prevUnrecoded_expOut_T_3 = FReg2_fs_0_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_fs_0_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_0_prevUnrecoded_expOut_T_4 = FReg2_fs_0_prevUnrecoded_rawIn__isNaN |
    FReg2_fs_0_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_fs_0_prevUnrecoded_expOut_T_6 = _FReg2_fs_0_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_fs_0_prevUnrecoded_expOut = _FReg2_fs_0_prevUnrecoded_expOut_T_3 |
    _FReg2_fs_0_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_fs_0_prevUnrecoded_fractOut_T_1 = FReg2_fs_0_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_fs_0_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_fs_0_prevUnrecoded_fractOut = FReg2_fs_0_prevUnrecoded_isSubnormal ?
    FReg2_fs_0_prevUnrecoded_denormFract : _FReg2_fs_0_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_fs_0_prevUnrecoded = {FReg2_fs_0_unbx_sign,FReg2_fs_0_prevUnrecoded_expOut,
    FReg2_fs_0_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_fs_0_T_2 = &io_diffFReg_8[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_fs_0_T_4 = _FReg2_fs_0_T_2 ? FReg2_fs_0_prevUnrecoded : FReg2_fs_0_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_fs_1_unbx_sign = FReg1_fs_1_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_fs_1_unbx_fractIn = FReg1_fs_1_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_fs_1_unbx_expIn = FReg1_fs_1_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_fs_1_unbx_expOut_expCode = FReg2_fs_1_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_fs_1_unbx_expOut_T = FReg2_fs_1_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_fs_1_unrecoded_rawIn_exp = io_diffFReg_9[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_fs_1_unrecoded_rawIn_isZero = FReg2_fs_1_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_fs_1_unrecoded_rawIn_isSpecial = FReg2_fs_1_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_1_unrecoded_rawIn__isNaN = FReg2_fs_1_unrecoded_rawIn_isSpecial & FReg2_fs_1_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_1_unrecoded_rawIn__isInf = FReg2_fs_1_unrecoded_rawIn_isSpecial & ~FReg2_fs_1_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_fs_1_unrecoded_rawIn__sign = io_diffFReg_9[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_fs_1_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_1_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_1_unrecoded_rawIn_out_sig_T = ~FReg2_fs_1_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_fs_1_unrecoded_rawIn__sig = {1'h0,_FReg2_fs_1_unrecoded_rawIn_out_sig_T,io_diffFReg_9[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_fs_1_unrecoded_isSubnormal = $signed(FReg2_fs_1_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_fs_1_unrecoded_denormShiftDist = 6'h1 - FReg2_fs_1_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_fs_1_unrecoded_denormFract_T_1 = FReg2_fs_1_unrecoded_rawIn__sig[53:1] >>
    FReg2_fs_1_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_fs_1_unrecoded_denormFract = _FReg2_fs_1_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_fs_1_unrecoded_expOut_T_2 = FReg2_fs_1_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_fs_1_unrecoded_expOut_T_3 = FReg2_fs_1_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_fs_1_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_1_unrecoded_expOut_T_4 = FReg2_fs_1_unrecoded_rawIn__isNaN | FReg2_fs_1_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_fs_1_unrecoded_expOut_T_6 = _FReg2_fs_1_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_fs_1_unrecoded_expOut = _FReg2_fs_1_unrecoded_expOut_T_3 | _FReg2_fs_1_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_fs_1_unrecoded_fractOut_T_1 = FReg2_fs_1_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_fs_1_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_fs_1_unrecoded_fractOut = FReg2_fs_1_unrecoded_isSubnormal ? FReg2_fs_1_unrecoded_denormFract :
    _FReg2_fs_1_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_fs_1_unrecoded = {FReg2_fs_1_unrecoded_rawIn__sign,FReg2_fs_1_unrecoded_expOut,
    FReg2_fs_1_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_fs_1_prevUnrecoded_rawIn_isSpecial = FReg2_fs_1_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_1_prevUnrecoded_rawIn__isNaN = FReg2_fs_1_prevUnrecoded_rawIn_isSpecial & FReg2_fs_1_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_1_prevUnrecoded_rawIn__isInf = FReg2_fs_1_prevUnrecoded_rawIn_isSpecial & ~FReg2_fs_1_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_fs_1_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_1_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_1_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_fs_1_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_fs_1_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_fs_1_prevUnrecoded_rawIn_out_sig_T,
    FReg2_fs_1_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_fs_1_prevUnrecoded_isSubnormal = $signed(FReg2_fs_1_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_fs_1_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_fs_1_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_fs_1_prevUnrecoded_denormFract_T_1 = FReg2_fs_1_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_fs_1_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_fs_1_prevUnrecoded_denormFract = _FReg2_fs_1_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_fs_1_prevUnrecoded_expOut_T_2 = FReg2_fs_1_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_fs_1_prevUnrecoded_expOut_T_3 = FReg2_fs_1_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_fs_1_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_1_prevUnrecoded_expOut_T_4 = FReg2_fs_1_prevUnrecoded_rawIn__isNaN |
    FReg2_fs_1_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_fs_1_prevUnrecoded_expOut_T_6 = _FReg2_fs_1_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_fs_1_prevUnrecoded_expOut = _FReg2_fs_1_prevUnrecoded_expOut_T_3 |
    _FReg2_fs_1_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_fs_1_prevUnrecoded_fractOut_T_1 = FReg2_fs_1_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_fs_1_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_fs_1_prevUnrecoded_fractOut = FReg2_fs_1_prevUnrecoded_isSubnormal ?
    FReg2_fs_1_prevUnrecoded_denormFract : _FReg2_fs_1_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_fs_1_prevUnrecoded = {FReg2_fs_1_unbx_sign,FReg2_fs_1_prevUnrecoded_expOut,
    FReg2_fs_1_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_fs_1_T_2 = &io_diffFReg_9[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_fs_1_T_4 = _FReg2_fs_1_T_2 ? FReg2_fs_1_prevUnrecoded : FReg2_fs_1_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_fa_0_unbx_sign = FReg1_fa_0_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_fa_0_unbx_fractIn = FReg1_fa_0_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_fa_0_unbx_expIn = FReg1_fa_0_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_fa_0_unbx_expOut_expCode = FReg2_fa_0_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_fa_0_unbx_expOut_T = FReg2_fa_0_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_fa_0_unrecoded_rawIn_exp = io_diffFReg_10[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_fa_0_unrecoded_rawIn_isZero = FReg2_fa_0_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_fa_0_unrecoded_rawIn_isSpecial = FReg2_fa_0_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fa_0_unrecoded_rawIn__isNaN = FReg2_fa_0_unrecoded_rawIn_isSpecial & FReg2_fa_0_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fa_0_unrecoded_rawIn__isInf = FReg2_fa_0_unrecoded_rawIn_isSpecial & ~FReg2_fa_0_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_fa_0_unrecoded_rawIn__sign = io_diffFReg_10[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_fa_0_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fa_0_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fa_0_unrecoded_rawIn_out_sig_T = ~FReg2_fa_0_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_fa_0_unrecoded_rawIn__sig = {1'h0,_FReg2_fa_0_unrecoded_rawIn_out_sig_T,io_diffFReg_10[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_fa_0_unrecoded_isSubnormal = $signed(FReg2_fa_0_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_fa_0_unrecoded_denormShiftDist = 6'h1 - FReg2_fa_0_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_fa_0_unrecoded_denormFract_T_1 = FReg2_fa_0_unrecoded_rawIn__sig[53:1] >>
    FReg2_fa_0_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_fa_0_unrecoded_denormFract = _FReg2_fa_0_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_fa_0_unrecoded_expOut_T_2 = FReg2_fa_0_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_fa_0_unrecoded_expOut_T_3 = FReg2_fa_0_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_fa_0_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fa_0_unrecoded_expOut_T_4 = FReg2_fa_0_unrecoded_rawIn__isNaN | FReg2_fa_0_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_fa_0_unrecoded_expOut_T_6 = _FReg2_fa_0_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_fa_0_unrecoded_expOut = _FReg2_fa_0_unrecoded_expOut_T_3 | _FReg2_fa_0_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_fa_0_unrecoded_fractOut_T_1 = FReg2_fa_0_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_fa_0_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_fa_0_unrecoded_fractOut = FReg2_fa_0_unrecoded_isSubnormal ? FReg2_fa_0_unrecoded_denormFract :
    _FReg2_fa_0_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_fa_0_unrecoded = {FReg2_fa_0_unrecoded_rawIn__sign,FReg2_fa_0_unrecoded_expOut,
    FReg2_fa_0_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_fa_0_prevUnrecoded_rawIn_isSpecial = FReg2_fa_0_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fa_0_prevUnrecoded_rawIn__isNaN = FReg2_fa_0_prevUnrecoded_rawIn_isSpecial & FReg2_fa_0_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fa_0_prevUnrecoded_rawIn__isInf = FReg2_fa_0_prevUnrecoded_rawIn_isSpecial & ~FReg2_fa_0_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_fa_0_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fa_0_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fa_0_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_fa_0_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_fa_0_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_fa_0_prevUnrecoded_rawIn_out_sig_T,
    FReg2_fa_0_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_fa_0_prevUnrecoded_isSubnormal = $signed(FReg2_fa_0_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_fa_0_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_fa_0_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_fa_0_prevUnrecoded_denormFract_T_1 = FReg2_fa_0_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_fa_0_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_fa_0_prevUnrecoded_denormFract = _FReg2_fa_0_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_fa_0_prevUnrecoded_expOut_T_2 = FReg2_fa_0_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_fa_0_prevUnrecoded_expOut_T_3 = FReg2_fa_0_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_fa_0_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fa_0_prevUnrecoded_expOut_T_4 = FReg2_fa_0_prevUnrecoded_rawIn__isNaN |
    FReg2_fa_0_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_fa_0_prevUnrecoded_expOut_T_6 = _FReg2_fa_0_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_fa_0_prevUnrecoded_expOut = _FReg2_fa_0_prevUnrecoded_expOut_T_3 |
    _FReg2_fa_0_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_fa_0_prevUnrecoded_fractOut_T_1 = FReg2_fa_0_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_fa_0_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_fa_0_prevUnrecoded_fractOut = FReg2_fa_0_prevUnrecoded_isSubnormal ?
    FReg2_fa_0_prevUnrecoded_denormFract : _FReg2_fa_0_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_fa_0_prevUnrecoded = {FReg2_fa_0_unbx_sign,FReg2_fa_0_prevUnrecoded_expOut,
    FReg2_fa_0_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_fa_0_T_2 = &io_diffFReg_10[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_fa_0_T_4 = _FReg2_fa_0_T_2 ? FReg2_fa_0_prevUnrecoded : FReg2_fa_0_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_fa_1_unbx_sign = FReg1_fa_1_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_fa_1_unbx_fractIn = FReg1_fa_1_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_fa_1_unbx_expIn = FReg1_fa_1_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_fa_1_unbx_expOut_expCode = FReg2_fa_1_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_fa_1_unbx_expOut_T = FReg2_fa_1_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_fa_1_unrecoded_rawIn_exp = io_diffFReg_11[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_fa_1_unrecoded_rawIn_isZero = FReg2_fa_1_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_fa_1_unrecoded_rawIn_isSpecial = FReg2_fa_1_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fa_1_unrecoded_rawIn__isNaN = FReg2_fa_1_unrecoded_rawIn_isSpecial & FReg2_fa_1_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fa_1_unrecoded_rawIn__isInf = FReg2_fa_1_unrecoded_rawIn_isSpecial & ~FReg2_fa_1_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_fa_1_unrecoded_rawIn__sign = io_diffFReg_11[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_fa_1_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fa_1_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fa_1_unrecoded_rawIn_out_sig_T = ~FReg2_fa_1_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_fa_1_unrecoded_rawIn__sig = {1'h0,_FReg2_fa_1_unrecoded_rawIn_out_sig_T,io_diffFReg_11[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_fa_1_unrecoded_isSubnormal = $signed(FReg2_fa_1_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_fa_1_unrecoded_denormShiftDist = 6'h1 - FReg2_fa_1_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_fa_1_unrecoded_denormFract_T_1 = FReg2_fa_1_unrecoded_rawIn__sig[53:1] >>
    FReg2_fa_1_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_fa_1_unrecoded_denormFract = _FReg2_fa_1_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_fa_1_unrecoded_expOut_T_2 = FReg2_fa_1_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_fa_1_unrecoded_expOut_T_3 = FReg2_fa_1_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_fa_1_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fa_1_unrecoded_expOut_T_4 = FReg2_fa_1_unrecoded_rawIn__isNaN | FReg2_fa_1_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_fa_1_unrecoded_expOut_T_6 = _FReg2_fa_1_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_fa_1_unrecoded_expOut = _FReg2_fa_1_unrecoded_expOut_T_3 | _FReg2_fa_1_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_fa_1_unrecoded_fractOut_T_1 = FReg2_fa_1_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_fa_1_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_fa_1_unrecoded_fractOut = FReg2_fa_1_unrecoded_isSubnormal ? FReg2_fa_1_unrecoded_denormFract :
    _FReg2_fa_1_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_fa_1_unrecoded = {FReg2_fa_1_unrecoded_rawIn__sign,FReg2_fa_1_unrecoded_expOut,
    FReg2_fa_1_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_fa_1_prevUnrecoded_rawIn_isSpecial = FReg2_fa_1_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fa_1_prevUnrecoded_rawIn__isNaN = FReg2_fa_1_prevUnrecoded_rawIn_isSpecial & FReg2_fa_1_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fa_1_prevUnrecoded_rawIn__isInf = FReg2_fa_1_prevUnrecoded_rawIn_isSpecial & ~FReg2_fa_1_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_fa_1_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fa_1_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fa_1_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_fa_1_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_fa_1_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_fa_1_prevUnrecoded_rawIn_out_sig_T,
    FReg2_fa_1_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_fa_1_prevUnrecoded_isSubnormal = $signed(FReg2_fa_1_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_fa_1_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_fa_1_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_fa_1_prevUnrecoded_denormFract_T_1 = FReg2_fa_1_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_fa_1_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_fa_1_prevUnrecoded_denormFract = _FReg2_fa_1_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_fa_1_prevUnrecoded_expOut_T_2 = FReg2_fa_1_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_fa_1_prevUnrecoded_expOut_T_3 = FReg2_fa_1_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_fa_1_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fa_1_prevUnrecoded_expOut_T_4 = FReg2_fa_1_prevUnrecoded_rawIn__isNaN |
    FReg2_fa_1_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_fa_1_prevUnrecoded_expOut_T_6 = _FReg2_fa_1_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_fa_1_prevUnrecoded_expOut = _FReg2_fa_1_prevUnrecoded_expOut_T_3 |
    _FReg2_fa_1_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_fa_1_prevUnrecoded_fractOut_T_1 = FReg2_fa_1_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_fa_1_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_fa_1_prevUnrecoded_fractOut = FReg2_fa_1_prevUnrecoded_isSubnormal ?
    FReg2_fa_1_prevUnrecoded_denormFract : _FReg2_fa_1_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_fa_1_prevUnrecoded = {FReg2_fa_1_unbx_sign,FReg2_fa_1_prevUnrecoded_expOut,
    FReg2_fa_1_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_fa_1_T_2 = &io_diffFReg_11[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_fa_1_T_4 = _FReg2_fa_1_T_2 ? FReg2_fa_1_prevUnrecoded : FReg2_fa_1_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_fa_2_unbx_sign = FReg1_fa_2_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_fa_2_unbx_fractIn = FReg1_fa_2_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_fa_2_unbx_expIn = FReg1_fa_2_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_fa_2_unbx_expOut_expCode = FReg2_fa_2_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_fa_2_unbx_expOut_T = FReg2_fa_2_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_fa_2_unrecoded_rawIn_exp = io_diffFReg_12[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_fa_2_unrecoded_rawIn_isZero = FReg2_fa_2_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_fa_2_unrecoded_rawIn_isSpecial = FReg2_fa_2_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fa_2_unrecoded_rawIn__isNaN = FReg2_fa_2_unrecoded_rawIn_isSpecial & FReg2_fa_2_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fa_2_unrecoded_rawIn__isInf = FReg2_fa_2_unrecoded_rawIn_isSpecial & ~FReg2_fa_2_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_fa_2_unrecoded_rawIn__sign = io_diffFReg_12[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_fa_2_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fa_2_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fa_2_unrecoded_rawIn_out_sig_T = ~FReg2_fa_2_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_fa_2_unrecoded_rawIn__sig = {1'h0,_FReg2_fa_2_unrecoded_rawIn_out_sig_T,io_diffFReg_12[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_fa_2_unrecoded_isSubnormal = $signed(FReg2_fa_2_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_fa_2_unrecoded_denormShiftDist = 6'h1 - FReg2_fa_2_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_fa_2_unrecoded_denormFract_T_1 = FReg2_fa_2_unrecoded_rawIn__sig[53:1] >>
    FReg2_fa_2_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_fa_2_unrecoded_denormFract = _FReg2_fa_2_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_fa_2_unrecoded_expOut_T_2 = FReg2_fa_2_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_fa_2_unrecoded_expOut_T_3 = FReg2_fa_2_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_fa_2_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fa_2_unrecoded_expOut_T_4 = FReg2_fa_2_unrecoded_rawIn__isNaN | FReg2_fa_2_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_fa_2_unrecoded_expOut_T_6 = _FReg2_fa_2_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_fa_2_unrecoded_expOut = _FReg2_fa_2_unrecoded_expOut_T_3 | _FReg2_fa_2_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_fa_2_unrecoded_fractOut_T_1 = FReg2_fa_2_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_fa_2_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_fa_2_unrecoded_fractOut = FReg2_fa_2_unrecoded_isSubnormal ? FReg2_fa_2_unrecoded_denormFract :
    _FReg2_fa_2_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_fa_2_unrecoded = {FReg2_fa_2_unrecoded_rawIn__sign,FReg2_fa_2_unrecoded_expOut,
    FReg2_fa_2_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_fa_2_prevUnrecoded_rawIn_isSpecial = FReg2_fa_2_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fa_2_prevUnrecoded_rawIn__isNaN = FReg2_fa_2_prevUnrecoded_rawIn_isSpecial & FReg2_fa_2_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fa_2_prevUnrecoded_rawIn__isInf = FReg2_fa_2_prevUnrecoded_rawIn_isSpecial & ~FReg2_fa_2_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_fa_2_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fa_2_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fa_2_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_fa_2_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_fa_2_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_fa_2_prevUnrecoded_rawIn_out_sig_T,
    FReg2_fa_2_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_fa_2_prevUnrecoded_isSubnormal = $signed(FReg2_fa_2_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_fa_2_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_fa_2_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_fa_2_prevUnrecoded_denormFract_T_1 = FReg2_fa_2_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_fa_2_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_fa_2_prevUnrecoded_denormFract = _FReg2_fa_2_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_fa_2_prevUnrecoded_expOut_T_2 = FReg2_fa_2_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_fa_2_prevUnrecoded_expOut_T_3 = FReg2_fa_2_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_fa_2_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fa_2_prevUnrecoded_expOut_T_4 = FReg2_fa_2_prevUnrecoded_rawIn__isNaN |
    FReg2_fa_2_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_fa_2_prevUnrecoded_expOut_T_6 = _FReg2_fa_2_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_fa_2_prevUnrecoded_expOut = _FReg2_fa_2_prevUnrecoded_expOut_T_3 |
    _FReg2_fa_2_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_fa_2_prevUnrecoded_fractOut_T_1 = FReg2_fa_2_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_fa_2_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_fa_2_prevUnrecoded_fractOut = FReg2_fa_2_prevUnrecoded_isSubnormal ?
    FReg2_fa_2_prevUnrecoded_denormFract : _FReg2_fa_2_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_fa_2_prevUnrecoded = {FReg2_fa_2_unbx_sign,FReg2_fa_2_prevUnrecoded_expOut,
    FReg2_fa_2_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_fa_2_T_2 = &io_diffFReg_12[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_fa_2_T_4 = _FReg2_fa_2_T_2 ? FReg2_fa_2_prevUnrecoded : FReg2_fa_2_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_fa_3_unbx_sign = FReg1_fa_3_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_fa_3_unbx_fractIn = FReg1_fa_3_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_fa_3_unbx_expIn = FReg1_fa_3_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_fa_3_unbx_expOut_expCode = FReg2_fa_3_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_fa_3_unbx_expOut_T = FReg2_fa_3_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_fa_3_unrecoded_rawIn_exp = io_diffFReg_13[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_fa_3_unrecoded_rawIn_isZero = FReg2_fa_3_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_fa_3_unrecoded_rawIn_isSpecial = FReg2_fa_3_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fa_3_unrecoded_rawIn__isNaN = FReg2_fa_3_unrecoded_rawIn_isSpecial & FReg2_fa_3_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fa_3_unrecoded_rawIn__isInf = FReg2_fa_3_unrecoded_rawIn_isSpecial & ~FReg2_fa_3_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_fa_3_unrecoded_rawIn__sign = io_diffFReg_13[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_fa_3_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fa_3_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fa_3_unrecoded_rawIn_out_sig_T = ~FReg2_fa_3_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_fa_3_unrecoded_rawIn__sig = {1'h0,_FReg2_fa_3_unrecoded_rawIn_out_sig_T,io_diffFReg_13[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_fa_3_unrecoded_isSubnormal = $signed(FReg2_fa_3_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_fa_3_unrecoded_denormShiftDist = 6'h1 - FReg2_fa_3_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_fa_3_unrecoded_denormFract_T_1 = FReg2_fa_3_unrecoded_rawIn__sig[53:1] >>
    FReg2_fa_3_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_fa_3_unrecoded_denormFract = _FReg2_fa_3_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_fa_3_unrecoded_expOut_T_2 = FReg2_fa_3_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_fa_3_unrecoded_expOut_T_3 = FReg2_fa_3_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_fa_3_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fa_3_unrecoded_expOut_T_4 = FReg2_fa_3_unrecoded_rawIn__isNaN | FReg2_fa_3_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_fa_3_unrecoded_expOut_T_6 = _FReg2_fa_3_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_fa_3_unrecoded_expOut = _FReg2_fa_3_unrecoded_expOut_T_3 | _FReg2_fa_3_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_fa_3_unrecoded_fractOut_T_1 = FReg2_fa_3_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_fa_3_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_fa_3_unrecoded_fractOut = FReg2_fa_3_unrecoded_isSubnormal ? FReg2_fa_3_unrecoded_denormFract :
    _FReg2_fa_3_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_fa_3_unrecoded = {FReg2_fa_3_unrecoded_rawIn__sign,FReg2_fa_3_unrecoded_expOut,
    FReg2_fa_3_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_fa_3_prevUnrecoded_rawIn_isSpecial = FReg2_fa_3_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fa_3_prevUnrecoded_rawIn__isNaN = FReg2_fa_3_prevUnrecoded_rawIn_isSpecial & FReg2_fa_3_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fa_3_prevUnrecoded_rawIn__isInf = FReg2_fa_3_prevUnrecoded_rawIn_isSpecial & ~FReg2_fa_3_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_fa_3_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fa_3_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fa_3_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_fa_3_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_fa_3_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_fa_3_prevUnrecoded_rawIn_out_sig_T,
    FReg2_fa_3_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_fa_3_prevUnrecoded_isSubnormal = $signed(FReg2_fa_3_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_fa_3_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_fa_3_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_fa_3_prevUnrecoded_denormFract_T_1 = FReg2_fa_3_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_fa_3_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_fa_3_prevUnrecoded_denormFract = _FReg2_fa_3_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_fa_3_prevUnrecoded_expOut_T_2 = FReg2_fa_3_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_fa_3_prevUnrecoded_expOut_T_3 = FReg2_fa_3_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_fa_3_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fa_3_prevUnrecoded_expOut_T_4 = FReg2_fa_3_prevUnrecoded_rawIn__isNaN |
    FReg2_fa_3_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_fa_3_prevUnrecoded_expOut_T_6 = _FReg2_fa_3_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_fa_3_prevUnrecoded_expOut = _FReg2_fa_3_prevUnrecoded_expOut_T_3 |
    _FReg2_fa_3_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_fa_3_prevUnrecoded_fractOut_T_1 = FReg2_fa_3_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_fa_3_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_fa_3_prevUnrecoded_fractOut = FReg2_fa_3_prevUnrecoded_isSubnormal ?
    FReg2_fa_3_prevUnrecoded_denormFract : _FReg2_fa_3_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_fa_3_prevUnrecoded = {FReg2_fa_3_unbx_sign,FReg2_fa_3_prevUnrecoded_expOut,
    FReg2_fa_3_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_fa_3_T_2 = &io_diffFReg_13[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_fa_3_T_4 = _FReg2_fa_3_T_2 ? FReg2_fa_3_prevUnrecoded : FReg2_fa_3_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_fa_4_unbx_sign = FReg1_fa_4_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_fa_4_unbx_fractIn = FReg1_fa_4_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_fa_4_unbx_expIn = FReg1_fa_4_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_fa_4_unbx_expOut_expCode = FReg2_fa_4_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_fa_4_unbx_expOut_T = FReg2_fa_4_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_fa_4_unrecoded_rawIn_exp = io_diffFReg_14[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_fa_4_unrecoded_rawIn_isZero = FReg2_fa_4_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_fa_4_unrecoded_rawIn_isSpecial = FReg2_fa_4_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fa_4_unrecoded_rawIn__isNaN = FReg2_fa_4_unrecoded_rawIn_isSpecial & FReg2_fa_4_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fa_4_unrecoded_rawIn__isInf = FReg2_fa_4_unrecoded_rawIn_isSpecial & ~FReg2_fa_4_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_fa_4_unrecoded_rawIn__sign = io_diffFReg_14[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_fa_4_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fa_4_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fa_4_unrecoded_rawIn_out_sig_T = ~FReg2_fa_4_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_fa_4_unrecoded_rawIn__sig = {1'h0,_FReg2_fa_4_unrecoded_rawIn_out_sig_T,io_diffFReg_14[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_fa_4_unrecoded_isSubnormal = $signed(FReg2_fa_4_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_fa_4_unrecoded_denormShiftDist = 6'h1 - FReg2_fa_4_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_fa_4_unrecoded_denormFract_T_1 = FReg2_fa_4_unrecoded_rawIn__sig[53:1] >>
    FReg2_fa_4_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_fa_4_unrecoded_denormFract = _FReg2_fa_4_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_fa_4_unrecoded_expOut_T_2 = FReg2_fa_4_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_fa_4_unrecoded_expOut_T_3 = FReg2_fa_4_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_fa_4_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fa_4_unrecoded_expOut_T_4 = FReg2_fa_4_unrecoded_rawIn__isNaN | FReg2_fa_4_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_fa_4_unrecoded_expOut_T_6 = _FReg2_fa_4_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_fa_4_unrecoded_expOut = _FReg2_fa_4_unrecoded_expOut_T_3 | _FReg2_fa_4_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_fa_4_unrecoded_fractOut_T_1 = FReg2_fa_4_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_fa_4_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_fa_4_unrecoded_fractOut = FReg2_fa_4_unrecoded_isSubnormal ? FReg2_fa_4_unrecoded_denormFract :
    _FReg2_fa_4_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_fa_4_unrecoded = {FReg2_fa_4_unrecoded_rawIn__sign,FReg2_fa_4_unrecoded_expOut,
    FReg2_fa_4_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_fa_4_prevUnrecoded_rawIn_isSpecial = FReg2_fa_4_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fa_4_prevUnrecoded_rawIn__isNaN = FReg2_fa_4_prevUnrecoded_rawIn_isSpecial & FReg2_fa_4_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fa_4_prevUnrecoded_rawIn__isInf = FReg2_fa_4_prevUnrecoded_rawIn_isSpecial & ~FReg2_fa_4_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_fa_4_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fa_4_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fa_4_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_fa_4_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_fa_4_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_fa_4_prevUnrecoded_rawIn_out_sig_T,
    FReg2_fa_4_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_fa_4_prevUnrecoded_isSubnormal = $signed(FReg2_fa_4_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_fa_4_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_fa_4_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_fa_4_prevUnrecoded_denormFract_T_1 = FReg2_fa_4_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_fa_4_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_fa_4_prevUnrecoded_denormFract = _FReg2_fa_4_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_fa_4_prevUnrecoded_expOut_T_2 = FReg2_fa_4_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_fa_4_prevUnrecoded_expOut_T_3 = FReg2_fa_4_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_fa_4_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fa_4_prevUnrecoded_expOut_T_4 = FReg2_fa_4_prevUnrecoded_rawIn__isNaN |
    FReg2_fa_4_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_fa_4_prevUnrecoded_expOut_T_6 = _FReg2_fa_4_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_fa_4_prevUnrecoded_expOut = _FReg2_fa_4_prevUnrecoded_expOut_T_3 |
    _FReg2_fa_4_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_fa_4_prevUnrecoded_fractOut_T_1 = FReg2_fa_4_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_fa_4_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_fa_4_prevUnrecoded_fractOut = FReg2_fa_4_prevUnrecoded_isSubnormal ?
    FReg2_fa_4_prevUnrecoded_denormFract : _FReg2_fa_4_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_fa_4_prevUnrecoded = {FReg2_fa_4_unbx_sign,FReg2_fa_4_prevUnrecoded_expOut,
    FReg2_fa_4_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_fa_4_T_2 = &io_diffFReg_14[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_fa_4_T_4 = _FReg2_fa_4_T_2 ? FReg2_fa_4_prevUnrecoded : FReg2_fa_4_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_fa_5_unbx_sign = FReg1_fa_5_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_fa_5_unbx_fractIn = FReg1_fa_5_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_fa_5_unbx_expIn = FReg1_fa_5_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_fa_5_unbx_expOut_expCode = FReg2_fa_5_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_fa_5_unbx_expOut_T = FReg2_fa_5_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_fa_5_unrecoded_rawIn_exp = io_diffFReg_15[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_fa_5_unrecoded_rawIn_isZero = FReg2_fa_5_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_fa_5_unrecoded_rawIn_isSpecial = FReg2_fa_5_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fa_5_unrecoded_rawIn__isNaN = FReg2_fa_5_unrecoded_rawIn_isSpecial & FReg2_fa_5_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fa_5_unrecoded_rawIn__isInf = FReg2_fa_5_unrecoded_rawIn_isSpecial & ~FReg2_fa_5_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_fa_5_unrecoded_rawIn__sign = io_diffFReg_15[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_fa_5_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fa_5_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fa_5_unrecoded_rawIn_out_sig_T = ~FReg2_fa_5_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_fa_5_unrecoded_rawIn__sig = {1'h0,_FReg2_fa_5_unrecoded_rawIn_out_sig_T,io_diffFReg_15[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_fa_5_unrecoded_isSubnormal = $signed(FReg2_fa_5_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_fa_5_unrecoded_denormShiftDist = 6'h1 - FReg2_fa_5_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_fa_5_unrecoded_denormFract_T_1 = FReg2_fa_5_unrecoded_rawIn__sig[53:1] >>
    FReg2_fa_5_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_fa_5_unrecoded_denormFract = _FReg2_fa_5_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_fa_5_unrecoded_expOut_T_2 = FReg2_fa_5_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_fa_5_unrecoded_expOut_T_3 = FReg2_fa_5_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_fa_5_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fa_5_unrecoded_expOut_T_4 = FReg2_fa_5_unrecoded_rawIn__isNaN | FReg2_fa_5_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_fa_5_unrecoded_expOut_T_6 = _FReg2_fa_5_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_fa_5_unrecoded_expOut = _FReg2_fa_5_unrecoded_expOut_T_3 | _FReg2_fa_5_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_fa_5_unrecoded_fractOut_T_1 = FReg2_fa_5_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_fa_5_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_fa_5_unrecoded_fractOut = FReg2_fa_5_unrecoded_isSubnormal ? FReg2_fa_5_unrecoded_denormFract :
    _FReg2_fa_5_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_fa_5_unrecoded = {FReg2_fa_5_unrecoded_rawIn__sign,FReg2_fa_5_unrecoded_expOut,
    FReg2_fa_5_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_fa_5_prevUnrecoded_rawIn_isSpecial = FReg2_fa_5_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fa_5_prevUnrecoded_rawIn__isNaN = FReg2_fa_5_prevUnrecoded_rawIn_isSpecial & FReg2_fa_5_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fa_5_prevUnrecoded_rawIn__isInf = FReg2_fa_5_prevUnrecoded_rawIn_isSpecial & ~FReg2_fa_5_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_fa_5_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fa_5_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fa_5_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_fa_5_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_fa_5_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_fa_5_prevUnrecoded_rawIn_out_sig_T,
    FReg2_fa_5_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_fa_5_prevUnrecoded_isSubnormal = $signed(FReg2_fa_5_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_fa_5_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_fa_5_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_fa_5_prevUnrecoded_denormFract_T_1 = FReg2_fa_5_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_fa_5_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_fa_5_prevUnrecoded_denormFract = _FReg2_fa_5_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_fa_5_prevUnrecoded_expOut_T_2 = FReg2_fa_5_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_fa_5_prevUnrecoded_expOut_T_3 = FReg2_fa_5_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_fa_5_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fa_5_prevUnrecoded_expOut_T_4 = FReg2_fa_5_prevUnrecoded_rawIn__isNaN |
    FReg2_fa_5_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_fa_5_prevUnrecoded_expOut_T_6 = _FReg2_fa_5_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_fa_5_prevUnrecoded_expOut = _FReg2_fa_5_prevUnrecoded_expOut_T_3 |
    _FReg2_fa_5_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_fa_5_prevUnrecoded_fractOut_T_1 = FReg2_fa_5_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_fa_5_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_fa_5_prevUnrecoded_fractOut = FReg2_fa_5_prevUnrecoded_isSubnormal ?
    FReg2_fa_5_prevUnrecoded_denormFract : _FReg2_fa_5_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_fa_5_prevUnrecoded = {FReg2_fa_5_unbx_sign,FReg2_fa_5_prevUnrecoded_expOut,
    FReg2_fa_5_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_fa_5_T_2 = &io_diffFReg_15[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_fa_5_T_4 = _FReg2_fa_5_T_2 ? FReg2_fa_5_prevUnrecoded : FReg2_fa_5_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_fa_6_unbx_sign = FReg1_fa_6_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_fa_6_unbx_fractIn = FReg1_fa_6_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_fa_6_unbx_expIn = FReg1_fa_6_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_fa_6_unbx_expOut_expCode = FReg2_fa_6_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_fa_6_unbx_expOut_T = FReg2_fa_6_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_fa_6_unrecoded_rawIn_exp = io_diffFReg_16[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_fa_6_unrecoded_rawIn_isZero = FReg2_fa_6_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_fa_6_unrecoded_rawIn_isSpecial = FReg2_fa_6_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fa_6_unrecoded_rawIn__isNaN = FReg2_fa_6_unrecoded_rawIn_isSpecial & FReg2_fa_6_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fa_6_unrecoded_rawIn__isInf = FReg2_fa_6_unrecoded_rawIn_isSpecial & ~FReg2_fa_6_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_fa_6_unrecoded_rawIn__sign = io_diffFReg_16[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_fa_6_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fa_6_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fa_6_unrecoded_rawIn_out_sig_T = ~FReg2_fa_6_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_fa_6_unrecoded_rawIn__sig = {1'h0,_FReg2_fa_6_unrecoded_rawIn_out_sig_T,io_diffFReg_16[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_fa_6_unrecoded_isSubnormal = $signed(FReg2_fa_6_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_fa_6_unrecoded_denormShiftDist = 6'h1 - FReg2_fa_6_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_fa_6_unrecoded_denormFract_T_1 = FReg2_fa_6_unrecoded_rawIn__sig[53:1] >>
    FReg2_fa_6_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_fa_6_unrecoded_denormFract = _FReg2_fa_6_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_fa_6_unrecoded_expOut_T_2 = FReg2_fa_6_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_fa_6_unrecoded_expOut_T_3 = FReg2_fa_6_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_fa_6_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fa_6_unrecoded_expOut_T_4 = FReg2_fa_6_unrecoded_rawIn__isNaN | FReg2_fa_6_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_fa_6_unrecoded_expOut_T_6 = _FReg2_fa_6_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_fa_6_unrecoded_expOut = _FReg2_fa_6_unrecoded_expOut_T_3 | _FReg2_fa_6_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_fa_6_unrecoded_fractOut_T_1 = FReg2_fa_6_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_fa_6_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_fa_6_unrecoded_fractOut = FReg2_fa_6_unrecoded_isSubnormal ? FReg2_fa_6_unrecoded_denormFract :
    _FReg2_fa_6_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_fa_6_unrecoded = {FReg2_fa_6_unrecoded_rawIn__sign,FReg2_fa_6_unrecoded_expOut,
    FReg2_fa_6_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_fa_6_prevUnrecoded_rawIn_isSpecial = FReg2_fa_6_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fa_6_prevUnrecoded_rawIn__isNaN = FReg2_fa_6_prevUnrecoded_rawIn_isSpecial & FReg2_fa_6_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fa_6_prevUnrecoded_rawIn__isInf = FReg2_fa_6_prevUnrecoded_rawIn_isSpecial & ~FReg2_fa_6_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_fa_6_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fa_6_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fa_6_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_fa_6_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_fa_6_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_fa_6_prevUnrecoded_rawIn_out_sig_T,
    FReg2_fa_6_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_fa_6_prevUnrecoded_isSubnormal = $signed(FReg2_fa_6_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_fa_6_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_fa_6_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_fa_6_prevUnrecoded_denormFract_T_1 = FReg2_fa_6_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_fa_6_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_fa_6_prevUnrecoded_denormFract = _FReg2_fa_6_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_fa_6_prevUnrecoded_expOut_T_2 = FReg2_fa_6_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_fa_6_prevUnrecoded_expOut_T_3 = FReg2_fa_6_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_fa_6_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fa_6_prevUnrecoded_expOut_T_4 = FReg2_fa_6_prevUnrecoded_rawIn__isNaN |
    FReg2_fa_6_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_fa_6_prevUnrecoded_expOut_T_6 = _FReg2_fa_6_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_fa_6_prevUnrecoded_expOut = _FReg2_fa_6_prevUnrecoded_expOut_T_3 |
    _FReg2_fa_6_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_fa_6_prevUnrecoded_fractOut_T_1 = FReg2_fa_6_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_fa_6_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_fa_6_prevUnrecoded_fractOut = FReg2_fa_6_prevUnrecoded_isSubnormal ?
    FReg2_fa_6_prevUnrecoded_denormFract : _FReg2_fa_6_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_fa_6_prevUnrecoded = {FReg2_fa_6_unbx_sign,FReg2_fa_6_prevUnrecoded_expOut,
    FReg2_fa_6_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_fa_6_T_2 = &io_diffFReg_16[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_fa_6_T_4 = _FReg2_fa_6_T_2 ? FReg2_fa_6_prevUnrecoded : FReg2_fa_6_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_fa_7_unbx_sign = FReg1_fa_7_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_fa_7_unbx_fractIn = FReg1_fa_7_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_fa_7_unbx_expIn = FReg1_fa_7_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_fa_7_unbx_expOut_expCode = FReg2_fa_7_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_fa_7_unbx_expOut_T = FReg2_fa_7_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_fa_7_unrecoded_rawIn_exp = io_diffFReg_17[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_fa_7_unrecoded_rawIn_isZero = FReg2_fa_7_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_fa_7_unrecoded_rawIn_isSpecial = FReg2_fa_7_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fa_7_unrecoded_rawIn__isNaN = FReg2_fa_7_unrecoded_rawIn_isSpecial & FReg2_fa_7_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fa_7_unrecoded_rawIn__isInf = FReg2_fa_7_unrecoded_rawIn_isSpecial & ~FReg2_fa_7_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_fa_7_unrecoded_rawIn__sign = io_diffFReg_17[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_fa_7_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fa_7_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fa_7_unrecoded_rawIn_out_sig_T = ~FReg2_fa_7_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_fa_7_unrecoded_rawIn__sig = {1'h0,_FReg2_fa_7_unrecoded_rawIn_out_sig_T,io_diffFReg_17[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_fa_7_unrecoded_isSubnormal = $signed(FReg2_fa_7_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_fa_7_unrecoded_denormShiftDist = 6'h1 - FReg2_fa_7_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_fa_7_unrecoded_denormFract_T_1 = FReg2_fa_7_unrecoded_rawIn__sig[53:1] >>
    FReg2_fa_7_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_fa_7_unrecoded_denormFract = _FReg2_fa_7_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_fa_7_unrecoded_expOut_T_2 = FReg2_fa_7_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_fa_7_unrecoded_expOut_T_3 = FReg2_fa_7_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_fa_7_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fa_7_unrecoded_expOut_T_4 = FReg2_fa_7_unrecoded_rawIn__isNaN | FReg2_fa_7_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_fa_7_unrecoded_expOut_T_6 = _FReg2_fa_7_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_fa_7_unrecoded_expOut = _FReg2_fa_7_unrecoded_expOut_T_3 | _FReg2_fa_7_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_fa_7_unrecoded_fractOut_T_1 = FReg2_fa_7_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_fa_7_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_fa_7_unrecoded_fractOut = FReg2_fa_7_unrecoded_isSubnormal ? FReg2_fa_7_unrecoded_denormFract :
    _FReg2_fa_7_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_fa_7_unrecoded = {FReg2_fa_7_unrecoded_rawIn__sign,FReg2_fa_7_unrecoded_expOut,
    FReg2_fa_7_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_fa_7_prevUnrecoded_rawIn_isSpecial = FReg2_fa_7_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fa_7_prevUnrecoded_rawIn__isNaN = FReg2_fa_7_prevUnrecoded_rawIn_isSpecial & FReg2_fa_7_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fa_7_prevUnrecoded_rawIn__isInf = FReg2_fa_7_prevUnrecoded_rawIn_isSpecial & ~FReg2_fa_7_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_fa_7_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fa_7_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fa_7_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_fa_7_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_fa_7_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_fa_7_prevUnrecoded_rawIn_out_sig_T,
    FReg2_fa_7_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_fa_7_prevUnrecoded_isSubnormal = $signed(FReg2_fa_7_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_fa_7_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_fa_7_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_fa_7_prevUnrecoded_denormFract_T_1 = FReg2_fa_7_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_fa_7_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_fa_7_prevUnrecoded_denormFract = _FReg2_fa_7_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_fa_7_prevUnrecoded_expOut_T_2 = FReg2_fa_7_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_fa_7_prevUnrecoded_expOut_T_3 = FReg2_fa_7_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_fa_7_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fa_7_prevUnrecoded_expOut_T_4 = FReg2_fa_7_prevUnrecoded_rawIn__isNaN |
    FReg2_fa_7_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_fa_7_prevUnrecoded_expOut_T_6 = _FReg2_fa_7_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_fa_7_prevUnrecoded_expOut = _FReg2_fa_7_prevUnrecoded_expOut_T_3 |
    _FReg2_fa_7_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_fa_7_prevUnrecoded_fractOut_T_1 = FReg2_fa_7_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_fa_7_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_fa_7_prevUnrecoded_fractOut = FReg2_fa_7_prevUnrecoded_isSubnormal ?
    FReg2_fa_7_prevUnrecoded_denormFract : _FReg2_fa_7_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_fa_7_prevUnrecoded = {FReg2_fa_7_unbx_sign,FReg2_fa_7_prevUnrecoded_expOut,
    FReg2_fa_7_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_fa_7_T_2 = &io_diffFReg_17[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_fa_7_T_4 = _FReg2_fa_7_T_2 ? FReg2_fa_7_prevUnrecoded : FReg2_fa_7_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_fs_2_unbx_sign = FReg1_fs_2_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_fs_2_unbx_fractIn = FReg1_fs_2_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_fs_2_unbx_expIn = FReg1_fs_2_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_fs_2_unbx_expOut_expCode = FReg2_fs_2_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_fs_2_unbx_expOut_T = FReg2_fs_2_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_fs_2_unrecoded_rawIn_exp = io_diffFReg_18[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_fs_2_unrecoded_rawIn_isZero = FReg2_fs_2_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_fs_2_unrecoded_rawIn_isSpecial = FReg2_fs_2_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_2_unrecoded_rawIn__isNaN = FReg2_fs_2_unrecoded_rawIn_isSpecial & FReg2_fs_2_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_2_unrecoded_rawIn__isInf = FReg2_fs_2_unrecoded_rawIn_isSpecial & ~FReg2_fs_2_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_fs_2_unrecoded_rawIn__sign = io_diffFReg_18[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_fs_2_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_2_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_2_unrecoded_rawIn_out_sig_T = ~FReg2_fs_2_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_fs_2_unrecoded_rawIn__sig = {1'h0,_FReg2_fs_2_unrecoded_rawIn_out_sig_T,io_diffFReg_18[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_fs_2_unrecoded_isSubnormal = $signed(FReg2_fs_2_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_fs_2_unrecoded_denormShiftDist = 6'h1 - FReg2_fs_2_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_fs_2_unrecoded_denormFract_T_1 = FReg2_fs_2_unrecoded_rawIn__sig[53:1] >>
    FReg2_fs_2_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_fs_2_unrecoded_denormFract = _FReg2_fs_2_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_fs_2_unrecoded_expOut_T_2 = FReg2_fs_2_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_fs_2_unrecoded_expOut_T_3 = FReg2_fs_2_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_fs_2_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_2_unrecoded_expOut_T_4 = FReg2_fs_2_unrecoded_rawIn__isNaN | FReg2_fs_2_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_fs_2_unrecoded_expOut_T_6 = _FReg2_fs_2_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_fs_2_unrecoded_expOut = _FReg2_fs_2_unrecoded_expOut_T_3 | _FReg2_fs_2_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_fs_2_unrecoded_fractOut_T_1 = FReg2_fs_2_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_fs_2_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_fs_2_unrecoded_fractOut = FReg2_fs_2_unrecoded_isSubnormal ? FReg2_fs_2_unrecoded_denormFract :
    _FReg2_fs_2_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_fs_2_unrecoded = {FReg2_fs_2_unrecoded_rawIn__sign,FReg2_fs_2_unrecoded_expOut,
    FReg2_fs_2_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_fs_2_prevUnrecoded_rawIn_isSpecial = FReg2_fs_2_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_2_prevUnrecoded_rawIn__isNaN = FReg2_fs_2_prevUnrecoded_rawIn_isSpecial & FReg2_fs_2_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_2_prevUnrecoded_rawIn__isInf = FReg2_fs_2_prevUnrecoded_rawIn_isSpecial & ~FReg2_fs_2_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_fs_2_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_2_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_2_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_fs_2_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_fs_2_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_fs_2_prevUnrecoded_rawIn_out_sig_T,
    FReg2_fs_2_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_fs_2_prevUnrecoded_isSubnormal = $signed(FReg2_fs_2_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_fs_2_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_fs_2_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_fs_2_prevUnrecoded_denormFract_T_1 = FReg2_fs_2_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_fs_2_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_fs_2_prevUnrecoded_denormFract = _FReg2_fs_2_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_fs_2_prevUnrecoded_expOut_T_2 = FReg2_fs_2_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_fs_2_prevUnrecoded_expOut_T_3 = FReg2_fs_2_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_fs_2_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_2_prevUnrecoded_expOut_T_4 = FReg2_fs_2_prevUnrecoded_rawIn__isNaN |
    FReg2_fs_2_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_fs_2_prevUnrecoded_expOut_T_6 = _FReg2_fs_2_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_fs_2_prevUnrecoded_expOut = _FReg2_fs_2_prevUnrecoded_expOut_T_3 |
    _FReg2_fs_2_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_fs_2_prevUnrecoded_fractOut_T_1 = FReg2_fs_2_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_fs_2_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_fs_2_prevUnrecoded_fractOut = FReg2_fs_2_prevUnrecoded_isSubnormal ?
    FReg2_fs_2_prevUnrecoded_denormFract : _FReg2_fs_2_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_fs_2_prevUnrecoded = {FReg2_fs_2_unbx_sign,FReg2_fs_2_prevUnrecoded_expOut,
    FReg2_fs_2_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_fs_2_T_2 = &io_diffFReg_18[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_fs_2_T_4 = _FReg2_fs_2_T_2 ? FReg2_fs_2_prevUnrecoded : FReg2_fs_2_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_fs_3_unbx_sign = FReg1_fs_3_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_fs_3_unbx_fractIn = FReg1_fs_3_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_fs_3_unbx_expIn = FReg1_fs_3_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_fs_3_unbx_expOut_expCode = FReg2_fs_3_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_fs_3_unbx_expOut_T = FReg2_fs_3_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_fs_3_unrecoded_rawIn_exp = io_diffFReg_19[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_fs_3_unrecoded_rawIn_isZero = FReg2_fs_3_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_fs_3_unrecoded_rawIn_isSpecial = FReg2_fs_3_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_3_unrecoded_rawIn__isNaN = FReg2_fs_3_unrecoded_rawIn_isSpecial & FReg2_fs_3_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_3_unrecoded_rawIn__isInf = FReg2_fs_3_unrecoded_rawIn_isSpecial & ~FReg2_fs_3_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_fs_3_unrecoded_rawIn__sign = io_diffFReg_19[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_fs_3_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_3_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_3_unrecoded_rawIn_out_sig_T = ~FReg2_fs_3_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_fs_3_unrecoded_rawIn__sig = {1'h0,_FReg2_fs_3_unrecoded_rawIn_out_sig_T,io_diffFReg_19[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_fs_3_unrecoded_isSubnormal = $signed(FReg2_fs_3_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_fs_3_unrecoded_denormShiftDist = 6'h1 - FReg2_fs_3_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_fs_3_unrecoded_denormFract_T_1 = FReg2_fs_3_unrecoded_rawIn__sig[53:1] >>
    FReg2_fs_3_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_fs_3_unrecoded_denormFract = _FReg2_fs_3_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_fs_3_unrecoded_expOut_T_2 = FReg2_fs_3_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_fs_3_unrecoded_expOut_T_3 = FReg2_fs_3_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_fs_3_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_3_unrecoded_expOut_T_4 = FReg2_fs_3_unrecoded_rawIn__isNaN | FReg2_fs_3_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_fs_3_unrecoded_expOut_T_6 = _FReg2_fs_3_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_fs_3_unrecoded_expOut = _FReg2_fs_3_unrecoded_expOut_T_3 | _FReg2_fs_3_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_fs_3_unrecoded_fractOut_T_1 = FReg2_fs_3_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_fs_3_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_fs_3_unrecoded_fractOut = FReg2_fs_3_unrecoded_isSubnormal ? FReg2_fs_3_unrecoded_denormFract :
    _FReg2_fs_3_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_fs_3_unrecoded = {FReg2_fs_3_unrecoded_rawIn__sign,FReg2_fs_3_unrecoded_expOut,
    FReg2_fs_3_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_fs_3_prevUnrecoded_rawIn_isSpecial = FReg2_fs_3_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_3_prevUnrecoded_rawIn__isNaN = FReg2_fs_3_prevUnrecoded_rawIn_isSpecial & FReg2_fs_3_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_3_prevUnrecoded_rawIn__isInf = FReg2_fs_3_prevUnrecoded_rawIn_isSpecial & ~FReg2_fs_3_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_fs_3_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_3_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_3_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_fs_3_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_fs_3_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_fs_3_prevUnrecoded_rawIn_out_sig_T,
    FReg2_fs_3_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_fs_3_prevUnrecoded_isSubnormal = $signed(FReg2_fs_3_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_fs_3_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_fs_3_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_fs_3_prevUnrecoded_denormFract_T_1 = FReg2_fs_3_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_fs_3_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_fs_3_prevUnrecoded_denormFract = _FReg2_fs_3_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_fs_3_prevUnrecoded_expOut_T_2 = FReg2_fs_3_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_fs_3_prevUnrecoded_expOut_T_3 = FReg2_fs_3_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_fs_3_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_3_prevUnrecoded_expOut_T_4 = FReg2_fs_3_prevUnrecoded_rawIn__isNaN |
    FReg2_fs_3_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_fs_3_prevUnrecoded_expOut_T_6 = _FReg2_fs_3_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_fs_3_prevUnrecoded_expOut = _FReg2_fs_3_prevUnrecoded_expOut_T_3 |
    _FReg2_fs_3_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_fs_3_prevUnrecoded_fractOut_T_1 = FReg2_fs_3_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_fs_3_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_fs_3_prevUnrecoded_fractOut = FReg2_fs_3_prevUnrecoded_isSubnormal ?
    FReg2_fs_3_prevUnrecoded_denormFract : _FReg2_fs_3_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_fs_3_prevUnrecoded = {FReg2_fs_3_unbx_sign,FReg2_fs_3_prevUnrecoded_expOut,
    FReg2_fs_3_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_fs_3_T_2 = &io_diffFReg_19[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_fs_3_T_4 = _FReg2_fs_3_T_2 ? FReg2_fs_3_prevUnrecoded : FReg2_fs_3_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_fs_4_unbx_sign = FReg1_fs_4_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_fs_4_unbx_fractIn = FReg1_fs_4_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_fs_4_unbx_expIn = FReg1_fs_4_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_fs_4_unbx_expOut_expCode = FReg2_fs_4_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_fs_4_unbx_expOut_T = FReg2_fs_4_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_fs_4_unrecoded_rawIn_exp = io_diffFReg_20[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_fs_4_unrecoded_rawIn_isZero = FReg2_fs_4_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_fs_4_unrecoded_rawIn_isSpecial = FReg2_fs_4_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_4_unrecoded_rawIn__isNaN = FReg2_fs_4_unrecoded_rawIn_isSpecial & FReg2_fs_4_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_4_unrecoded_rawIn__isInf = FReg2_fs_4_unrecoded_rawIn_isSpecial & ~FReg2_fs_4_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_fs_4_unrecoded_rawIn__sign = io_diffFReg_20[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_fs_4_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_4_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_4_unrecoded_rawIn_out_sig_T = ~FReg2_fs_4_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_fs_4_unrecoded_rawIn__sig = {1'h0,_FReg2_fs_4_unrecoded_rawIn_out_sig_T,io_diffFReg_20[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_fs_4_unrecoded_isSubnormal = $signed(FReg2_fs_4_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_fs_4_unrecoded_denormShiftDist = 6'h1 - FReg2_fs_4_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_fs_4_unrecoded_denormFract_T_1 = FReg2_fs_4_unrecoded_rawIn__sig[53:1] >>
    FReg2_fs_4_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_fs_4_unrecoded_denormFract = _FReg2_fs_4_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_fs_4_unrecoded_expOut_T_2 = FReg2_fs_4_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_fs_4_unrecoded_expOut_T_3 = FReg2_fs_4_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_fs_4_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_4_unrecoded_expOut_T_4 = FReg2_fs_4_unrecoded_rawIn__isNaN | FReg2_fs_4_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_fs_4_unrecoded_expOut_T_6 = _FReg2_fs_4_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_fs_4_unrecoded_expOut = _FReg2_fs_4_unrecoded_expOut_T_3 | _FReg2_fs_4_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_fs_4_unrecoded_fractOut_T_1 = FReg2_fs_4_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_fs_4_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_fs_4_unrecoded_fractOut = FReg2_fs_4_unrecoded_isSubnormal ? FReg2_fs_4_unrecoded_denormFract :
    _FReg2_fs_4_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_fs_4_unrecoded = {FReg2_fs_4_unrecoded_rawIn__sign,FReg2_fs_4_unrecoded_expOut,
    FReg2_fs_4_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_fs_4_prevUnrecoded_rawIn_isSpecial = FReg2_fs_4_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_4_prevUnrecoded_rawIn__isNaN = FReg2_fs_4_prevUnrecoded_rawIn_isSpecial & FReg2_fs_4_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_4_prevUnrecoded_rawIn__isInf = FReg2_fs_4_prevUnrecoded_rawIn_isSpecial & ~FReg2_fs_4_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_fs_4_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_4_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_4_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_fs_4_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_fs_4_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_fs_4_prevUnrecoded_rawIn_out_sig_T,
    FReg2_fs_4_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_fs_4_prevUnrecoded_isSubnormal = $signed(FReg2_fs_4_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_fs_4_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_fs_4_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_fs_4_prevUnrecoded_denormFract_T_1 = FReg2_fs_4_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_fs_4_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_fs_4_prevUnrecoded_denormFract = _FReg2_fs_4_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_fs_4_prevUnrecoded_expOut_T_2 = FReg2_fs_4_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_fs_4_prevUnrecoded_expOut_T_3 = FReg2_fs_4_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_fs_4_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_4_prevUnrecoded_expOut_T_4 = FReg2_fs_4_prevUnrecoded_rawIn__isNaN |
    FReg2_fs_4_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_fs_4_prevUnrecoded_expOut_T_6 = _FReg2_fs_4_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_fs_4_prevUnrecoded_expOut = _FReg2_fs_4_prevUnrecoded_expOut_T_3 |
    _FReg2_fs_4_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_fs_4_prevUnrecoded_fractOut_T_1 = FReg2_fs_4_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_fs_4_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_fs_4_prevUnrecoded_fractOut = FReg2_fs_4_prevUnrecoded_isSubnormal ?
    FReg2_fs_4_prevUnrecoded_denormFract : _FReg2_fs_4_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_fs_4_prevUnrecoded = {FReg2_fs_4_unbx_sign,FReg2_fs_4_prevUnrecoded_expOut,
    FReg2_fs_4_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_fs_4_T_2 = &io_diffFReg_20[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_fs_4_T_4 = _FReg2_fs_4_T_2 ? FReg2_fs_4_prevUnrecoded : FReg2_fs_4_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_fs_5_unbx_sign = FReg1_fs_5_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_fs_5_unbx_fractIn = FReg1_fs_5_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_fs_5_unbx_expIn = FReg1_fs_5_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_fs_5_unbx_expOut_expCode = FReg2_fs_5_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_fs_5_unbx_expOut_T = FReg2_fs_5_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_fs_5_unrecoded_rawIn_exp = io_diffFReg_21[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_fs_5_unrecoded_rawIn_isZero = FReg2_fs_5_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_fs_5_unrecoded_rawIn_isSpecial = FReg2_fs_5_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_5_unrecoded_rawIn__isNaN = FReg2_fs_5_unrecoded_rawIn_isSpecial & FReg2_fs_5_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_5_unrecoded_rawIn__isInf = FReg2_fs_5_unrecoded_rawIn_isSpecial & ~FReg2_fs_5_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_fs_5_unrecoded_rawIn__sign = io_diffFReg_21[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_fs_5_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_5_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_5_unrecoded_rawIn_out_sig_T = ~FReg2_fs_5_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_fs_5_unrecoded_rawIn__sig = {1'h0,_FReg2_fs_5_unrecoded_rawIn_out_sig_T,io_diffFReg_21[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_fs_5_unrecoded_isSubnormal = $signed(FReg2_fs_5_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_fs_5_unrecoded_denormShiftDist = 6'h1 - FReg2_fs_5_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_fs_5_unrecoded_denormFract_T_1 = FReg2_fs_5_unrecoded_rawIn__sig[53:1] >>
    FReg2_fs_5_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_fs_5_unrecoded_denormFract = _FReg2_fs_5_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_fs_5_unrecoded_expOut_T_2 = FReg2_fs_5_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_fs_5_unrecoded_expOut_T_3 = FReg2_fs_5_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_fs_5_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_5_unrecoded_expOut_T_4 = FReg2_fs_5_unrecoded_rawIn__isNaN | FReg2_fs_5_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_fs_5_unrecoded_expOut_T_6 = _FReg2_fs_5_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_fs_5_unrecoded_expOut = _FReg2_fs_5_unrecoded_expOut_T_3 | _FReg2_fs_5_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_fs_5_unrecoded_fractOut_T_1 = FReg2_fs_5_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_fs_5_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_fs_5_unrecoded_fractOut = FReg2_fs_5_unrecoded_isSubnormal ? FReg2_fs_5_unrecoded_denormFract :
    _FReg2_fs_5_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_fs_5_unrecoded = {FReg2_fs_5_unrecoded_rawIn__sign,FReg2_fs_5_unrecoded_expOut,
    FReg2_fs_5_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_fs_5_prevUnrecoded_rawIn_isSpecial = FReg2_fs_5_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_5_prevUnrecoded_rawIn__isNaN = FReg2_fs_5_prevUnrecoded_rawIn_isSpecial & FReg2_fs_5_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_5_prevUnrecoded_rawIn__isInf = FReg2_fs_5_prevUnrecoded_rawIn_isSpecial & ~FReg2_fs_5_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_fs_5_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_5_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_5_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_fs_5_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_fs_5_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_fs_5_prevUnrecoded_rawIn_out_sig_T,
    FReg2_fs_5_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_fs_5_prevUnrecoded_isSubnormal = $signed(FReg2_fs_5_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_fs_5_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_fs_5_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_fs_5_prevUnrecoded_denormFract_T_1 = FReg2_fs_5_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_fs_5_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_fs_5_prevUnrecoded_denormFract = _FReg2_fs_5_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_fs_5_prevUnrecoded_expOut_T_2 = FReg2_fs_5_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_fs_5_prevUnrecoded_expOut_T_3 = FReg2_fs_5_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_fs_5_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_5_prevUnrecoded_expOut_T_4 = FReg2_fs_5_prevUnrecoded_rawIn__isNaN |
    FReg2_fs_5_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_fs_5_prevUnrecoded_expOut_T_6 = _FReg2_fs_5_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_fs_5_prevUnrecoded_expOut = _FReg2_fs_5_prevUnrecoded_expOut_T_3 |
    _FReg2_fs_5_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_fs_5_prevUnrecoded_fractOut_T_1 = FReg2_fs_5_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_fs_5_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_fs_5_prevUnrecoded_fractOut = FReg2_fs_5_prevUnrecoded_isSubnormal ?
    FReg2_fs_5_prevUnrecoded_denormFract : _FReg2_fs_5_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_fs_5_prevUnrecoded = {FReg2_fs_5_unbx_sign,FReg2_fs_5_prevUnrecoded_expOut,
    FReg2_fs_5_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_fs_5_T_2 = &io_diffFReg_21[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_fs_5_T_4 = _FReg2_fs_5_T_2 ? FReg2_fs_5_prevUnrecoded : FReg2_fs_5_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_fs_6_unbx_sign = FReg1_fs_6_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_fs_6_unbx_fractIn = FReg1_fs_6_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_fs_6_unbx_expIn = FReg1_fs_6_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_fs_6_unbx_expOut_expCode = FReg2_fs_6_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_fs_6_unbx_expOut_T = FReg2_fs_6_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_fs_6_unrecoded_rawIn_exp = io_diffFReg_22[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_fs_6_unrecoded_rawIn_isZero = FReg2_fs_6_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_fs_6_unrecoded_rawIn_isSpecial = FReg2_fs_6_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_6_unrecoded_rawIn__isNaN = FReg2_fs_6_unrecoded_rawIn_isSpecial & FReg2_fs_6_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_6_unrecoded_rawIn__isInf = FReg2_fs_6_unrecoded_rawIn_isSpecial & ~FReg2_fs_6_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_fs_6_unrecoded_rawIn__sign = io_diffFReg_22[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_fs_6_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_6_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_6_unrecoded_rawIn_out_sig_T = ~FReg2_fs_6_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_fs_6_unrecoded_rawIn__sig = {1'h0,_FReg2_fs_6_unrecoded_rawIn_out_sig_T,io_diffFReg_22[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_fs_6_unrecoded_isSubnormal = $signed(FReg2_fs_6_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_fs_6_unrecoded_denormShiftDist = 6'h1 - FReg2_fs_6_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_fs_6_unrecoded_denormFract_T_1 = FReg2_fs_6_unrecoded_rawIn__sig[53:1] >>
    FReg2_fs_6_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_fs_6_unrecoded_denormFract = _FReg2_fs_6_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_fs_6_unrecoded_expOut_T_2 = FReg2_fs_6_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_fs_6_unrecoded_expOut_T_3 = FReg2_fs_6_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_fs_6_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_6_unrecoded_expOut_T_4 = FReg2_fs_6_unrecoded_rawIn__isNaN | FReg2_fs_6_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_fs_6_unrecoded_expOut_T_6 = _FReg2_fs_6_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_fs_6_unrecoded_expOut = _FReg2_fs_6_unrecoded_expOut_T_3 | _FReg2_fs_6_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_fs_6_unrecoded_fractOut_T_1 = FReg2_fs_6_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_fs_6_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_fs_6_unrecoded_fractOut = FReg2_fs_6_unrecoded_isSubnormal ? FReg2_fs_6_unrecoded_denormFract :
    _FReg2_fs_6_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_fs_6_unrecoded = {FReg2_fs_6_unrecoded_rawIn__sign,FReg2_fs_6_unrecoded_expOut,
    FReg2_fs_6_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_fs_6_prevUnrecoded_rawIn_isSpecial = FReg2_fs_6_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_6_prevUnrecoded_rawIn__isNaN = FReg2_fs_6_prevUnrecoded_rawIn_isSpecial & FReg2_fs_6_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_6_prevUnrecoded_rawIn__isInf = FReg2_fs_6_prevUnrecoded_rawIn_isSpecial & ~FReg2_fs_6_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_fs_6_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_6_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_6_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_fs_6_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_fs_6_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_fs_6_prevUnrecoded_rawIn_out_sig_T,
    FReg2_fs_6_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_fs_6_prevUnrecoded_isSubnormal = $signed(FReg2_fs_6_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_fs_6_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_fs_6_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_fs_6_prevUnrecoded_denormFract_T_1 = FReg2_fs_6_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_fs_6_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_fs_6_prevUnrecoded_denormFract = _FReg2_fs_6_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_fs_6_prevUnrecoded_expOut_T_2 = FReg2_fs_6_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_fs_6_prevUnrecoded_expOut_T_3 = FReg2_fs_6_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_fs_6_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_6_prevUnrecoded_expOut_T_4 = FReg2_fs_6_prevUnrecoded_rawIn__isNaN |
    FReg2_fs_6_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_fs_6_prevUnrecoded_expOut_T_6 = _FReg2_fs_6_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_fs_6_prevUnrecoded_expOut = _FReg2_fs_6_prevUnrecoded_expOut_T_3 |
    _FReg2_fs_6_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_fs_6_prevUnrecoded_fractOut_T_1 = FReg2_fs_6_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_fs_6_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_fs_6_prevUnrecoded_fractOut = FReg2_fs_6_prevUnrecoded_isSubnormal ?
    FReg2_fs_6_prevUnrecoded_denormFract : _FReg2_fs_6_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_fs_6_prevUnrecoded = {FReg2_fs_6_unbx_sign,FReg2_fs_6_prevUnrecoded_expOut,
    FReg2_fs_6_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_fs_6_T_2 = &io_diffFReg_22[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_fs_6_T_4 = _FReg2_fs_6_T_2 ? FReg2_fs_6_prevUnrecoded : FReg2_fs_6_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_fs_7_unbx_sign = FReg1_fs_7_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_fs_7_unbx_fractIn = FReg1_fs_7_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_fs_7_unbx_expIn = FReg1_fs_7_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_fs_7_unbx_expOut_expCode = FReg2_fs_7_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_fs_7_unbx_expOut_T = FReg2_fs_7_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_fs_7_unrecoded_rawIn_exp = io_diffFReg_23[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_fs_7_unrecoded_rawIn_isZero = FReg2_fs_7_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_fs_7_unrecoded_rawIn_isSpecial = FReg2_fs_7_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_7_unrecoded_rawIn__isNaN = FReg2_fs_7_unrecoded_rawIn_isSpecial & FReg2_fs_7_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_7_unrecoded_rawIn__isInf = FReg2_fs_7_unrecoded_rawIn_isSpecial & ~FReg2_fs_7_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_fs_7_unrecoded_rawIn__sign = io_diffFReg_23[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_fs_7_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_7_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_7_unrecoded_rawIn_out_sig_T = ~FReg2_fs_7_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_fs_7_unrecoded_rawIn__sig = {1'h0,_FReg2_fs_7_unrecoded_rawIn_out_sig_T,io_diffFReg_23[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_fs_7_unrecoded_isSubnormal = $signed(FReg2_fs_7_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_fs_7_unrecoded_denormShiftDist = 6'h1 - FReg2_fs_7_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_fs_7_unrecoded_denormFract_T_1 = FReg2_fs_7_unrecoded_rawIn__sig[53:1] >>
    FReg2_fs_7_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_fs_7_unrecoded_denormFract = _FReg2_fs_7_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_fs_7_unrecoded_expOut_T_2 = FReg2_fs_7_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_fs_7_unrecoded_expOut_T_3 = FReg2_fs_7_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_fs_7_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_7_unrecoded_expOut_T_4 = FReg2_fs_7_unrecoded_rawIn__isNaN | FReg2_fs_7_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_fs_7_unrecoded_expOut_T_6 = _FReg2_fs_7_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_fs_7_unrecoded_expOut = _FReg2_fs_7_unrecoded_expOut_T_3 | _FReg2_fs_7_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_fs_7_unrecoded_fractOut_T_1 = FReg2_fs_7_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_fs_7_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_fs_7_unrecoded_fractOut = FReg2_fs_7_unrecoded_isSubnormal ? FReg2_fs_7_unrecoded_denormFract :
    _FReg2_fs_7_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_fs_7_unrecoded = {FReg2_fs_7_unrecoded_rawIn__sign,FReg2_fs_7_unrecoded_expOut,
    FReg2_fs_7_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_fs_7_prevUnrecoded_rawIn_isSpecial = FReg2_fs_7_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_7_prevUnrecoded_rawIn__isNaN = FReg2_fs_7_prevUnrecoded_rawIn_isSpecial & FReg2_fs_7_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_7_prevUnrecoded_rawIn__isInf = FReg2_fs_7_prevUnrecoded_rawIn_isSpecial & ~FReg2_fs_7_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_fs_7_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_7_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_7_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_fs_7_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_fs_7_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_fs_7_prevUnrecoded_rawIn_out_sig_T,
    FReg2_fs_7_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_fs_7_prevUnrecoded_isSubnormal = $signed(FReg2_fs_7_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_fs_7_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_fs_7_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_fs_7_prevUnrecoded_denormFract_T_1 = FReg2_fs_7_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_fs_7_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_fs_7_prevUnrecoded_denormFract = _FReg2_fs_7_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_fs_7_prevUnrecoded_expOut_T_2 = FReg2_fs_7_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_fs_7_prevUnrecoded_expOut_T_3 = FReg2_fs_7_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_fs_7_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_7_prevUnrecoded_expOut_T_4 = FReg2_fs_7_prevUnrecoded_rawIn__isNaN |
    FReg2_fs_7_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_fs_7_prevUnrecoded_expOut_T_6 = _FReg2_fs_7_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_fs_7_prevUnrecoded_expOut = _FReg2_fs_7_prevUnrecoded_expOut_T_3 |
    _FReg2_fs_7_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_fs_7_prevUnrecoded_fractOut_T_1 = FReg2_fs_7_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_fs_7_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_fs_7_prevUnrecoded_fractOut = FReg2_fs_7_prevUnrecoded_isSubnormal ?
    FReg2_fs_7_prevUnrecoded_denormFract : _FReg2_fs_7_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_fs_7_prevUnrecoded = {FReg2_fs_7_unbx_sign,FReg2_fs_7_prevUnrecoded_expOut,
    FReg2_fs_7_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_fs_7_T_2 = &io_diffFReg_23[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_fs_7_T_4 = _FReg2_fs_7_T_2 ? FReg2_fs_7_prevUnrecoded : FReg2_fs_7_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_fs_8_unbx_sign = FReg1_fs_8_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_fs_8_unbx_fractIn = FReg1_fs_8_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_fs_8_unbx_expIn = FReg1_fs_8_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_fs_8_unbx_expOut_expCode = FReg2_fs_8_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_fs_8_unbx_expOut_T = FReg2_fs_8_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_fs_8_unrecoded_rawIn_exp = io_diffFReg_24[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_fs_8_unrecoded_rawIn_isZero = FReg2_fs_8_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_fs_8_unrecoded_rawIn_isSpecial = FReg2_fs_8_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_8_unrecoded_rawIn__isNaN = FReg2_fs_8_unrecoded_rawIn_isSpecial & FReg2_fs_8_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_8_unrecoded_rawIn__isInf = FReg2_fs_8_unrecoded_rawIn_isSpecial & ~FReg2_fs_8_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_fs_8_unrecoded_rawIn__sign = io_diffFReg_24[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_fs_8_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_8_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_8_unrecoded_rawIn_out_sig_T = ~FReg2_fs_8_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_fs_8_unrecoded_rawIn__sig = {1'h0,_FReg2_fs_8_unrecoded_rawIn_out_sig_T,io_diffFReg_24[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_fs_8_unrecoded_isSubnormal = $signed(FReg2_fs_8_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_fs_8_unrecoded_denormShiftDist = 6'h1 - FReg2_fs_8_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_fs_8_unrecoded_denormFract_T_1 = FReg2_fs_8_unrecoded_rawIn__sig[53:1] >>
    FReg2_fs_8_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_fs_8_unrecoded_denormFract = _FReg2_fs_8_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_fs_8_unrecoded_expOut_T_2 = FReg2_fs_8_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_fs_8_unrecoded_expOut_T_3 = FReg2_fs_8_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_fs_8_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_8_unrecoded_expOut_T_4 = FReg2_fs_8_unrecoded_rawIn__isNaN | FReg2_fs_8_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_fs_8_unrecoded_expOut_T_6 = _FReg2_fs_8_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_fs_8_unrecoded_expOut = _FReg2_fs_8_unrecoded_expOut_T_3 | _FReg2_fs_8_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_fs_8_unrecoded_fractOut_T_1 = FReg2_fs_8_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_fs_8_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_fs_8_unrecoded_fractOut = FReg2_fs_8_unrecoded_isSubnormal ? FReg2_fs_8_unrecoded_denormFract :
    _FReg2_fs_8_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_fs_8_unrecoded = {FReg2_fs_8_unrecoded_rawIn__sign,FReg2_fs_8_unrecoded_expOut,
    FReg2_fs_8_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_fs_8_prevUnrecoded_rawIn_isSpecial = FReg2_fs_8_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_8_prevUnrecoded_rawIn__isNaN = FReg2_fs_8_prevUnrecoded_rawIn_isSpecial & FReg2_fs_8_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_8_prevUnrecoded_rawIn__isInf = FReg2_fs_8_prevUnrecoded_rawIn_isSpecial & ~FReg2_fs_8_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_fs_8_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_8_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_8_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_fs_8_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_fs_8_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_fs_8_prevUnrecoded_rawIn_out_sig_T,
    FReg2_fs_8_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_fs_8_prevUnrecoded_isSubnormal = $signed(FReg2_fs_8_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_fs_8_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_fs_8_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_fs_8_prevUnrecoded_denormFract_T_1 = FReg2_fs_8_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_fs_8_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_fs_8_prevUnrecoded_denormFract = _FReg2_fs_8_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_fs_8_prevUnrecoded_expOut_T_2 = FReg2_fs_8_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_fs_8_prevUnrecoded_expOut_T_3 = FReg2_fs_8_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_fs_8_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_8_prevUnrecoded_expOut_T_4 = FReg2_fs_8_prevUnrecoded_rawIn__isNaN |
    FReg2_fs_8_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_fs_8_prevUnrecoded_expOut_T_6 = _FReg2_fs_8_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_fs_8_prevUnrecoded_expOut = _FReg2_fs_8_prevUnrecoded_expOut_T_3 |
    _FReg2_fs_8_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_fs_8_prevUnrecoded_fractOut_T_1 = FReg2_fs_8_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_fs_8_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_fs_8_prevUnrecoded_fractOut = FReg2_fs_8_prevUnrecoded_isSubnormal ?
    FReg2_fs_8_prevUnrecoded_denormFract : _FReg2_fs_8_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_fs_8_prevUnrecoded = {FReg2_fs_8_unbx_sign,FReg2_fs_8_prevUnrecoded_expOut,
    FReg2_fs_8_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_fs_8_T_2 = &io_diffFReg_24[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_fs_8_T_4 = _FReg2_fs_8_T_2 ? FReg2_fs_8_prevUnrecoded : FReg2_fs_8_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_fs_9_unbx_sign = FReg1_fs_9_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_fs_9_unbx_fractIn = FReg1_fs_9_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_fs_9_unbx_expIn = FReg1_fs_9_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_fs_9_unbx_expOut_expCode = FReg2_fs_9_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_fs_9_unbx_expOut_T = FReg2_fs_9_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_fs_9_unrecoded_rawIn_exp = io_diffFReg_25[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_fs_9_unrecoded_rawIn_isZero = FReg2_fs_9_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_fs_9_unrecoded_rawIn_isSpecial = FReg2_fs_9_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_9_unrecoded_rawIn__isNaN = FReg2_fs_9_unrecoded_rawIn_isSpecial & FReg2_fs_9_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_9_unrecoded_rawIn__isInf = FReg2_fs_9_unrecoded_rawIn_isSpecial & ~FReg2_fs_9_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_fs_9_unrecoded_rawIn__sign = io_diffFReg_25[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_fs_9_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_9_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_9_unrecoded_rawIn_out_sig_T = ~FReg2_fs_9_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_fs_9_unrecoded_rawIn__sig = {1'h0,_FReg2_fs_9_unrecoded_rawIn_out_sig_T,io_diffFReg_25[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_fs_9_unrecoded_isSubnormal = $signed(FReg2_fs_9_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_fs_9_unrecoded_denormShiftDist = 6'h1 - FReg2_fs_9_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_fs_9_unrecoded_denormFract_T_1 = FReg2_fs_9_unrecoded_rawIn__sig[53:1] >>
    FReg2_fs_9_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_fs_9_unrecoded_denormFract = _FReg2_fs_9_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_fs_9_unrecoded_expOut_T_2 = FReg2_fs_9_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_fs_9_unrecoded_expOut_T_3 = FReg2_fs_9_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_fs_9_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_9_unrecoded_expOut_T_4 = FReg2_fs_9_unrecoded_rawIn__isNaN | FReg2_fs_9_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_fs_9_unrecoded_expOut_T_6 = _FReg2_fs_9_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_fs_9_unrecoded_expOut = _FReg2_fs_9_unrecoded_expOut_T_3 | _FReg2_fs_9_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_fs_9_unrecoded_fractOut_T_1 = FReg2_fs_9_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_fs_9_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_fs_9_unrecoded_fractOut = FReg2_fs_9_unrecoded_isSubnormal ? FReg2_fs_9_unrecoded_denormFract :
    _FReg2_fs_9_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_fs_9_unrecoded = {FReg2_fs_9_unrecoded_rawIn__sign,FReg2_fs_9_unrecoded_expOut,
    FReg2_fs_9_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_fs_9_prevUnrecoded_rawIn_isSpecial = FReg2_fs_9_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_9_prevUnrecoded_rawIn__isNaN = FReg2_fs_9_prevUnrecoded_rawIn_isSpecial & FReg2_fs_9_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_9_prevUnrecoded_rawIn__isInf = FReg2_fs_9_prevUnrecoded_rawIn_isSpecial & ~FReg2_fs_9_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_fs_9_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_9_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_9_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_fs_9_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_fs_9_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_fs_9_prevUnrecoded_rawIn_out_sig_T,
    FReg2_fs_9_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_fs_9_prevUnrecoded_isSubnormal = $signed(FReg2_fs_9_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_fs_9_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_fs_9_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_fs_9_prevUnrecoded_denormFract_T_1 = FReg2_fs_9_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_fs_9_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_fs_9_prevUnrecoded_denormFract = _FReg2_fs_9_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_fs_9_prevUnrecoded_expOut_T_2 = FReg2_fs_9_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_fs_9_prevUnrecoded_expOut_T_3 = FReg2_fs_9_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_fs_9_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_9_prevUnrecoded_expOut_T_4 = FReg2_fs_9_prevUnrecoded_rawIn__isNaN |
    FReg2_fs_9_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_fs_9_prevUnrecoded_expOut_T_6 = _FReg2_fs_9_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_fs_9_prevUnrecoded_expOut = _FReg2_fs_9_prevUnrecoded_expOut_T_3 |
    _FReg2_fs_9_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_fs_9_prevUnrecoded_fractOut_T_1 = FReg2_fs_9_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_fs_9_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_fs_9_prevUnrecoded_fractOut = FReg2_fs_9_prevUnrecoded_isSubnormal ?
    FReg2_fs_9_prevUnrecoded_denormFract : _FReg2_fs_9_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_fs_9_prevUnrecoded = {FReg2_fs_9_unbx_sign,FReg2_fs_9_prevUnrecoded_expOut,
    FReg2_fs_9_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_fs_9_T_2 = &io_diffFReg_25[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_fs_9_T_4 = _FReg2_fs_9_T_2 ? FReg2_fs_9_prevUnrecoded : FReg2_fs_9_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_fs_10_unbx_sign = FReg1_fs_10_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_fs_10_unbx_fractIn = FReg1_fs_10_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_fs_10_unbx_expIn = FReg1_fs_10_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_fs_10_unbx_expOut_expCode = FReg2_fs_10_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_fs_10_unbx_expOut_T = FReg2_fs_10_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_fs_10_unrecoded_rawIn_exp = io_diffFReg_26[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_fs_10_unrecoded_rawIn_isZero = FReg2_fs_10_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_fs_10_unrecoded_rawIn_isSpecial = FReg2_fs_10_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_10_unrecoded_rawIn__isNaN = FReg2_fs_10_unrecoded_rawIn_isSpecial & FReg2_fs_10_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_10_unrecoded_rawIn__isInf = FReg2_fs_10_unrecoded_rawIn_isSpecial & ~FReg2_fs_10_unrecoded_rawIn_exp[9]
    ; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_fs_10_unrecoded_rawIn__sign = io_diffFReg_26[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_fs_10_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_10_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_10_unrecoded_rawIn_out_sig_T = ~FReg2_fs_10_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_fs_10_unrecoded_rawIn__sig = {1'h0,_FReg2_fs_10_unrecoded_rawIn_out_sig_T,io_diffFReg_26[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_fs_10_unrecoded_isSubnormal = $signed(FReg2_fs_10_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_fs_10_unrecoded_denormShiftDist = 6'h1 - FReg2_fs_10_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_fs_10_unrecoded_denormFract_T_1 = FReg2_fs_10_unrecoded_rawIn__sig[53:1] >>
    FReg2_fs_10_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_fs_10_unrecoded_denormFract = _FReg2_fs_10_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_fs_10_unrecoded_expOut_T_2 = FReg2_fs_10_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_fs_10_unrecoded_expOut_T_3 = FReg2_fs_10_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_fs_10_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_10_unrecoded_expOut_T_4 = FReg2_fs_10_unrecoded_rawIn__isNaN | FReg2_fs_10_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_fs_10_unrecoded_expOut_T_6 = _FReg2_fs_10_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_fs_10_unrecoded_expOut = _FReg2_fs_10_unrecoded_expOut_T_3 | _FReg2_fs_10_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_fs_10_unrecoded_fractOut_T_1 = FReg2_fs_10_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_fs_10_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_fs_10_unrecoded_fractOut = FReg2_fs_10_unrecoded_isSubnormal ? FReg2_fs_10_unrecoded_denormFract :
    _FReg2_fs_10_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_fs_10_unrecoded = {FReg2_fs_10_unrecoded_rawIn__sign,FReg2_fs_10_unrecoded_expOut,
    FReg2_fs_10_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_fs_10_prevUnrecoded_rawIn_isSpecial = FReg2_fs_10_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_10_prevUnrecoded_rawIn__isNaN = FReg2_fs_10_prevUnrecoded_rawIn_isSpecial & FReg2_fs_10_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_10_prevUnrecoded_rawIn__isInf = FReg2_fs_10_prevUnrecoded_rawIn_isSpecial & ~FReg2_fs_10_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_fs_10_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_10_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_10_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_fs_10_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_fs_10_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_fs_10_prevUnrecoded_rawIn_out_sig_T,
    FReg2_fs_10_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_fs_10_prevUnrecoded_isSubnormal = $signed(FReg2_fs_10_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_fs_10_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_fs_10_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_fs_10_prevUnrecoded_denormFract_T_1 = FReg2_fs_10_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_fs_10_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_fs_10_prevUnrecoded_denormFract = _FReg2_fs_10_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_fs_10_prevUnrecoded_expOut_T_2 = FReg2_fs_10_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_fs_10_prevUnrecoded_expOut_T_3 = FReg2_fs_10_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_fs_10_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_10_prevUnrecoded_expOut_T_4 = FReg2_fs_10_prevUnrecoded_rawIn__isNaN |
    FReg2_fs_10_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_fs_10_prevUnrecoded_expOut_T_6 = _FReg2_fs_10_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_fs_10_prevUnrecoded_expOut = _FReg2_fs_10_prevUnrecoded_expOut_T_3 |
    _FReg2_fs_10_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_fs_10_prevUnrecoded_fractOut_T_1 = FReg2_fs_10_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_fs_10_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_fs_10_prevUnrecoded_fractOut = FReg2_fs_10_prevUnrecoded_isSubnormal ?
    FReg2_fs_10_prevUnrecoded_denormFract : _FReg2_fs_10_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_fs_10_prevUnrecoded = {FReg2_fs_10_unbx_sign,FReg2_fs_10_prevUnrecoded_expOut,
    FReg2_fs_10_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_fs_10_T_2 = &io_diffFReg_26[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_fs_10_T_4 = _FReg2_fs_10_T_2 ? FReg2_fs_10_prevUnrecoded : FReg2_fs_10_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_fs_11_unbx_sign = FReg1_fs_11_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_fs_11_unbx_fractIn = FReg1_fs_11_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_fs_11_unbx_expIn = FReg1_fs_11_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_fs_11_unbx_expOut_expCode = FReg2_fs_11_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_fs_11_unbx_expOut_T = FReg2_fs_11_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_fs_11_unrecoded_rawIn_exp = io_diffFReg_27[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_fs_11_unrecoded_rawIn_isZero = FReg2_fs_11_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_fs_11_unrecoded_rawIn_isSpecial = FReg2_fs_11_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_11_unrecoded_rawIn__isNaN = FReg2_fs_11_unrecoded_rawIn_isSpecial & FReg2_fs_11_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_11_unrecoded_rawIn__isInf = FReg2_fs_11_unrecoded_rawIn_isSpecial & ~FReg2_fs_11_unrecoded_rawIn_exp[9]
    ; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_fs_11_unrecoded_rawIn__sign = io_diffFReg_27[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_fs_11_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_11_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_11_unrecoded_rawIn_out_sig_T = ~FReg2_fs_11_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_fs_11_unrecoded_rawIn__sig = {1'h0,_FReg2_fs_11_unrecoded_rawIn_out_sig_T,io_diffFReg_27[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_fs_11_unrecoded_isSubnormal = $signed(FReg2_fs_11_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_fs_11_unrecoded_denormShiftDist = 6'h1 - FReg2_fs_11_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_fs_11_unrecoded_denormFract_T_1 = FReg2_fs_11_unrecoded_rawIn__sig[53:1] >>
    FReg2_fs_11_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_fs_11_unrecoded_denormFract = _FReg2_fs_11_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_fs_11_unrecoded_expOut_T_2 = FReg2_fs_11_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_fs_11_unrecoded_expOut_T_3 = FReg2_fs_11_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_fs_11_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_11_unrecoded_expOut_T_4 = FReg2_fs_11_unrecoded_rawIn__isNaN | FReg2_fs_11_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_fs_11_unrecoded_expOut_T_6 = _FReg2_fs_11_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_fs_11_unrecoded_expOut = _FReg2_fs_11_unrecoded_expOut_T_3 | _FReg2_fs_11_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_fs_11_unrecoded_fractOut_T_1 = FReg2_fs_11_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_fs_11_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_fs_11_unrecoded_fractOut = FReg2_fs_11_unrecoded_isSubnormal ? FReg2_fs_11_unrecoded_denormFract :
    _FReg2_fs_11_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_fs_11_unrecoded = {FReg2_fs_11_unrecoded_rawIn__sign,FReg2_fs_11_unrecoded_expOut,
    FReg2_fs_11_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_fs_11_prevUnrecoded_rawIn_isSpecial = FReg2_fs_11_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_fs_11_prevUnrecoded_rawIn__isNaN = FReg2_fs_11_prevUnrecoded_rawIn_isSpecial & FReg2_fs_11_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_fs_11_prevUnrecoded_rawIn__isInf = FReg2_fs_11_prevUnrecoded_rawIn_isSpecial & ~FReg2_fs_11_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_fs_11_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_fs_11_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_fs_11_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_fs_11_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_fs_11_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_fs_11_prevUnrecoded_rawIn_out_sig_T,
    FReg2_fs_11_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_fs_11_prevUnrecoded_isSubnormal = $signed(FReg2_fs_11_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_fs_11_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_fs_11_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_fs_11_prevUnrecoded_denormFract_T_1 = FReg2_fs_11_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_fs_11_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_fs_11_prevUnrecoded_denormFract = _FReg2_fs_11_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_fs_11_prevUnrecoded_expOut_T_2 = FReg2_fs_11_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_fs_11_prevUnrecoded_expOut_T_3 = FReg2_fs_11_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_fs_11_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_fs_11_prevUnrecoded_expOut_T_4 = FReg2_fs_11_prevUnrecoded_rawIn__isNaN |
    FReg2_fs_11_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_fs_11_prevUnrecoded_expOut_T_6 = _FReg2_fs_11_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_fs_11_prevUnrecoded_expOut = _FReg2_fs_11_prevUnrecoded_expOut_T_3 |
    _FReg2_fs_11_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_fs_11_prevUnrecoded_fractOut_T_1 = FReg2_fs_11_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_fs_11_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_fs_11_prevUnrecoded_fractOut = FReg2_fs_11_prevUnrecoded_isSubnormal ?
    FReg2_fs_11_prevUnrecoded_denormFract : _FReg2_fs_11_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_fs_11_prevUnrecoded = {FReg2_fs_11_unbx_sign,FReg2_fs_11_prevUnrecoded_expOut,
    FReg2_fs_11_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_fs_11_T_2 = &io_diffFReg_27[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_fs_11_T_4 = _FReg2_fs_11_T_2 ? FReg2_fs_11_prevUnrecoded : FReg2_fs_11_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_ft_8_unbx_sign = FReg1_ft_8_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_ft_8_unbx_fractIn = FReg1_ft_8_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_ft_8_unbx_expIn = FReg1_ft_8_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_ft_8_unbx_expOut_expCode = FReg2_ft_8_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_ft_8_unbx_expOut_T = FReg2_ft_8_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_ft_8_unrecoded_rawIn_exp = io_diffFReg_28[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_ft_8_unrecoded_rawIn_isZero = FReg2_ft_8_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_ft_8_unrecoded_rawIn_isSpecial = FReg2_ft_8_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_8_unrecoded_rawIn__isNaN = FReg2_ft_8_unrecoded_rawIn_isSpecial & FReg2_ft_8_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_8_unrecoded_rawIn__isInf = FReg2_ft_8_unrecoded_rawIn_isSpecial & ~FReg2_ft_8_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_ft_8_unrecoded_rawIn__sign = io_diffFReg_28[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_ft_8_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_8_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_8_unrecoded_rawIn_out_sig_T = ~FReg2_ft_8_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_ft_8_unrecoded_rawIn__sig = {1'h0,_FReg2_ft_8_unrecoded_rawIn_out_sig_T,io_diffFReg_28[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_ft_8_unrecoded_isSubnormal = $signed(FReg2_ft_8_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_ft_8_unrecoded_denormShiftDist = 6'h1 - FReg2_ft_8_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_ft_8_unrecoded_denormFract_T_1 = FReg2_ft_8_unrecoded_rawIn__sig[53:1] >>
    FReg2_ft_8_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_ft_8_unrecoded_denormFract = _FReg2_ft_8_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_ft_8_unrecoded_expOut_T_2 = FReg2_ft_8_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_ft_8_unrecoded_expOut_T_3 = FReg2_ft_8_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_ft_8_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_8_unrecoded_expOut_T_4 = FReg2_ft_8_unrecoded_rawIn__isNaN | FReg2_ft_8_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_ft_8_unrecoded_expOut_T_6 = _FReg2_ft_8_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_ft_8_unrecoded_expOut = _FReg2_ft_8_unrecoded_expOut_T_3 | _FReg2_ft_8_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_ft_8_unrecoded_fractOut_T_1 = FReg2_ft_8_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_ft_8_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_ft_8_unrecoded_fractOut = FReg2_ft_8_unrecoded_isSubnormal ? FReg2_ft_8_unrecoded_denormFract :
    _FReg2_ft_8_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_ft_8_unrecoded = {FReg2_ft_8_unrecoded_rawIn__sign,FReg2_ft_8_unrecoded_expOut,
    FReg2_ft_8_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_ft_8_prevUnrecoded_rawIn_isSpecial = FReg2_ft_8_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_8_prevUnrecoded_rawIn__isNaN = FReg2_ft_8_prevUnrecoded_rawIn_isSpecial & FReg2_ft_8_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_8_prevUnrecoded_rawIn__isInf = FReg2_ft_8_prevUnrecoded_rawIn_isSpecial & ~FReg2_ft_8_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_ft_8_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_8_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_8_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_ft_8_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_ft_8_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_ft_8_prevUnrecoded_rawIn_out_sig_T,
    FReg2_ft_8_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_ft_8_prevUnrecoded_isSubnormal = $signed(FReg2_ft_8_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_ft_8_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_ft_8_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_ft_8_prevUnrecoded_denormFract_T_1 = FReg2_ft_8_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_ft_8_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_ft_8_prevUnrecoded_denormFract = _FReg2_ft_8_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_ft_8_prevUnrecoded_expOut_T_2 = FReg2_ft_8_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_ft_8_prevUnrecoded_expOut_T_3 = FReg2_ft_8_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_ft_8_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_8_prevUnrecoded_expOut_T_4 = FReg2_ft_8_prevUnrecoded_rawIn__isNaN |
    FReg2_ft_8_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_ft_8_prevUnrecoded_expOut_T_6 = _FReg2_ft_8_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_ft_8_prevUnrecoded_expOut = _FReg2_ft_8_prevUnrecoded_expOut_T_3 |
    _FReg2_ft_8_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_ft_8_prevUnrecoded_fractOut_T_1 = FReg2_ft_8_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_ft_8_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_ft_8_prevUnrecoded_fractOut = FReg2_ft_8_prevUnrecoded_isSubnormal ?
    FReg2_ft_8_prevUnrecoded_denormFract : _FReg2_ft_8_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_ft_8_prevUnrecoded = {FReg2_ft_8_unbx_sign,FReg2_ft_8_prevUnrecoded_expOut,
    FReg2_ft_8_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_ft_8_T_2 = &io_diffFReg_28[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_ft_8_T_4 = _FReg2_ft_8_T_2 ? FReg2_ft_8_prevUnrecoded : FReg2_ft_8_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_ft_9_unbx_sign = FReg1_ft_9_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_ft_9_unbx_fractIn = FReg1_ft_9_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_ft_9_unbx_expIn = FReg1_ft_9_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_ft_9_unbx_expOut_expCode = FReg2_ft_9_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_ft_9_unbx_expOut_T = FReg2_ft_9_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_ft_9_unrecoded_rawIn_exp = io_diffFReg_29[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_ft_9_unrecoded_rawIn_isZero = FReg2_ft_9_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_ft_9_unrecoded_rawIn_isSpecial = FReg2_ft_9_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_9_unrecoded_rawIn__isNaN = FReg2_ft_9_unrecoded_rawIn_isSpecial & FReg2_ft_9_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_9_unrecoded_rawIn__isInf = FReg2_ft_9_unrecoded_rawIn_isSpecial & ~FReg2_ft_9_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_ft_9_unrecoded_rawIn__sign = io_diffFReg_29[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_ft_9_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_9_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_9_unrecoded_rawIn_out_sig_T = ~FReg2_ft_9_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_ft_9_unrecoded_rawIn__sig = {1'h0,_FReg2_ft_9_unrecoded_rawIn_out_sig_T,io_diffFReg_29[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_ft_9_unrecoded_isSubnormal = $signed(FReg2_ft_9_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_ft_9_unrecoded_denormShiftDist = 6'h1 - FReg2_ft_9_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_ft_9_unrecoded_denormFract_T_1 = FReg2_ft_9_unrecoded_rawIn__sig[53:1] >>
    FReg2_ft_9_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_ft_9_unrecoded_denormFract = _FReg2_ft_9_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_ft_9_unrecoded_expOut_T_2 = FReg2_ft_9_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_ft_9_unrecoded_expOut_T_3 = FReg2_ft_9_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_ft_9_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_9_unrecoded_expOut_T_4 = FReg2_ft_9_unrecoded_rawIn__isNaN | FReg2_ft_9_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_ft_9_unrecoded_expOut_T_6 = _FReg2_ft_9_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_ft_9_unrecoded_expOut = _FReg2_ft_9_unrecoded_expOut_T_3 | _FReg2_ft_9_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_ft_9_unrecoded_fractOut_T_1 = FReg2_ft_9_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_ft_9_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_ft_9_unrecoded_fractOut = FReg2_ft_9_unrecoded_isSubnormal ? FReg2_ft_9_unrecoded_denormFract :
    _FReg2_ft_9_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_ft_9_unrecoded = {FReg2_ft_9_unrecoded_rawIn__sign,FReg2_ft_9_unrecoded_expOut,
    FReg2_ft_9_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_ft_9_prevUnrecoded_rawIn_isSpecial = FReg2_ft_9_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_9_prevUnrecoded_rawIn__isNaN = FReg2_ft_9_prevUnrecoded_rawIn_isSpecial & FReg2_ft_9_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_9_prevUnrecoded_rawIn__isInf = FReg2_ft_9_prevUnrecoded_rawIn_isSpecial & ~FReg2_ft_9_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_ft_9_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_9_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_9_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_ft_9_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_ft_9_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_ft_9_prevUnrecoded_rawIn_out_sig_T,
    FReg2_ft_9_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_ft_9_prevUnrecoded_isSubnormal = $signed(FReg2_ft_9_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_ft_9_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_ft_9_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_ft_9_prevUnrecoded_denormFract_T_1 = FReg2_ft_9_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_ft_9_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_ft_9_prevUnrecoded_denormFract = _FReg2_ft_9_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_ft_9_prevUnrecoded_expOut_T_2 = FReg2_ft_9_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_ft_9_prevUnrecoded_expOut_T_3 = FReg2_ft_9_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_ft_9_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_9_prevUnrecoded_expOut_T_4 = FReg2_ft_9_prevUnrecoded_rawIn__isNaN |
    FReg2_ft_9_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_ft_9_prevUnrecoded_expOut_T_6 = _FReg2_ft_9_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_ft_9_prevUnrecoded_expOut = _FReg2_ft_9_prevUnrecoded_expOut_T_3 |
    _FReg2_ft_9_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_ft_9_prevUnrecoded_fractOut_T_1 = FReg2_ft_9_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_ft_9_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_ft_9_prevUnrecoded_fractOut = FReg2_ft_9_prevUnrecoded_isSubnormal ?
    FReg2_ft_9_prevUnrecoded_denormFract : _FReg2_ft_9_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_ft_9_prevUnrecoded = {FReg2_ft_9_unbx_sign,FReg2_ft_9_prevUnrecoded_expOut,
    FReg2_ft_9_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_ft_9_T_2 = &io_diffFReg_29[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_ft_9_T_4 = _FReg2_ft_9_T_2 ? FReg2_ft_9_prevUnrecoded : FReg2_ft_9_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_ft_10_unbx_sign = FReg1_ft_10_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_ft_10_unbx_fractIn = FReg1_ft_10_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_ft_10_unbx_expIn = FReg1_ft_10_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_ft_10_unbx_expOut_expCode = FReg2_ft_10_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_ft_10_unbx_expOut_T = FReg2_ft_10_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_ft_10_unrecoded_rawIn_exp = io_diffFReg_30[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_ft_10_unrecoded_rawIn_isZero = FReg2_ft_10_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_ft_10_unrecoded_rawIn_isSpecial = FReg2_ft_10_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_10_unrecoded_rawIn__isNaN = FReg2_ft_10_unrecoded_rawIn_isSpecial & FReg2_ft_10_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_10_unrecoded_rawIn__isInf = FReg2_ft_10_unrecoded_rawIn_isSpecial & ~FReg2_ft_10_unrecoded_rawIn_exp[9]
    ; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_ft_10_unrecoded_rawIn__sign = io_diffFReg_30[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_ft_10_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_10_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_10_unrecoded_rawIn_out_sig_T = ~FReg2_ft_10_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_ft_10_unrecoded_rawIn__sig = {1'h0,_FReg2_ft_10_unrecoded_rawIn_out_sig_T,io_diffFReg_30[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_ft_10_unrecoded_isSubnormal = $signed(FReg2_ft_10_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_ft_10_unrecoded_denormShiftDist = 6'h1 - FReg2_ft_10_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_ft_10_unrecoded_denormFract_T_1 = FReg2_ft_10_unrecoded_rawIn__sig[53:1] >>
    FReg2_ft_10_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_ft_10_unrecoded_denormFract = _FReg2_ft_10_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_ft_10_unrecoded_expOut_T_2 = FReg2_ft_10_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_ft_10_unrecoded_expOut_T_3 = FReg2_ft_10_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_ft_10_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_10_unrecoded_expOut_T_4 = FReg2_ft_10_unrecoded_rawIn__isNaN | FReg2_ft_10_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_ft_10_unrecoded_expOut_T_6 = _FReg2_ft_10_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_ft_10_unrecoded_expOut = _FReg2_ft_10_unrecoded_expOut_T_3 | _FReg2_ft_10_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_ft_10_unrecoded_fractOut_T_1 = FReg2_ft_10_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_ft_10_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_ft_10_unrecoded_fractOut = FReg2_ft_10_unrecoded_isSubnormal ? FReg2_ft_10_unrecoded_denormFract :
    _FReg2_ft_10_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_ft_10_unrecoded = {FReg2_ft_10_unrecoded_rawIn__sign,FReg2_ft_10_unrecoded_expOut,
    FReg2_ft_10_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_ft_10_prevUnrecoded_rawIn_isSpecial = FReg2_ft_10_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_10_prevUnrecoded_rawIn__isNaN = FReg2_ft_10_prevUnrecoded_rawIn_isSpecial & FReg2_ft_10_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_10_prevUnrecoded_rawIn__isInf = FReg2_ft_10_prevUnrecoded_rawIn_isSpecial & ~FReg2_ft_10_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_ft_10_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_10_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_10_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_ft_10_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_ft_10_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_ft_10_prevUnrecoded_rawIn_out_sig_T,
    FReg2_ft_10_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_ft_10_prevUnrecoded_isSubnormal = $signed(FReg2_ft_10_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_ft_10_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_ft_10_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_ft_10_prevUnrecoded_denormFract_T_1 = FReg2_ft_10_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_ft_10_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_ft_10_prevUnrecoded_denormFract = _FReg2_ft_10_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_ft_10_prevUnrecoded_expOut_T_2 = FReg2_ft_10_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_ft_10_prevUnrecoded_expOut_T_3 = FReg2_ft_10_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_ft_10_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_10_prevUnrecoded_expOut_T_4 = FReg2_ft_10_prevUnrecoded_rawIn__isNaN |
    FReg2_ft_10_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_ft_10_prevUnrecoded_expOut_T_6 = _FReg2_ft_10_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_ft_10_prevUnrecoded_expOut = _FReg2_ft_10_prevUnrecoded_expOut_T_3 |
    _FReg2_ft_10_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_ft_10_prevUnrecoded_fractOut_T_1 = FReg2_ft_10_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_ft_10_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_ft_10_prevUnrecoded_fractOut = FReg2_ft_10_prevUnrecoded_isSubnormal ?
    FReg2_ft_10_prevUnrecoded_denormFract : _FReg2_ft_10_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_ft_10_prevUnrecoded = {FReg2_ft_10_unbx_sign,FReg2_ft_10_prevUnrecoded_expOut,
    FReg2_ft_10_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_ft_10_T_2 = &io_diffFReg_30[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_ft_10_T_4 = _FReg2_ft_10_T_2 ? FReg2_ft_10_prevUnrecoded : FReg2_ft_10_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire  FReg2_ft_11_unbx_sign = FReg1_ft_11_unbx_floats_0[32]; // @[Fpu.scala 59:17]
  wire [22:0] FReg2_ft_11_unbx_fractIn = FReg1_ft_11_unbx_floats_0[22:0]; // @[Fpu.scala 60:20]
  wire [8:0] FReg2_ft_11_unbx_expIn = FReg1_ft_11_unbx_floats_0[31:23]; // @[Fpu.scala 61:18]
  wire [2:0] FReg2_ft_11_unbx_expOut_expCode = FReg2_ft_11_unbx_expIn[8:6]; // @[Fpu.scala 64:26]
  wire  _FReg2_ft_11_unbx_expOut_T = FReg2_ft_11_unbx_expOut_expCode == 3'h0; // @[Fpu.scala 66:19]
  wire [11:0] FReg2_ft_11_unrecoded_rawIn_exp = io_diffFReg_31[63:52]; // @[rawFloatFromRecFN.scala 50:21]
  wire  FReg2_ft_11_unrecoded_rawIn_isZero = FReg2_ft_11_unrecoded_rawIn_exp[11:9] == 3'h0; // @[rawFloatFromRecFN.scala 51:54]
  wire  FReg2_ft_11_unrecoded_rawIn_isSpecial = FReg2_ft_11_unrecoded_rawIn_exp[11:10] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_11_unrecoded_rawIn__isNaN = FReg2_ft_11_unrecoded_rawIn_isSpecial & FReg2_ft_11_unrecoded_rawIn_exp[9]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_11_unrecoded_rawIn__isInf = FReg2_ft_11_unrecoded_rawIn_isSpecial & ~FReg2_ft_11_unrecoded_rawIn_exp[9]
    ; // @[rawFloatFromRecFN.scala 56:33]
  wire  FReg2_ft_11_unrecoded_rawIn__sign = io_diffFReg_31[64]; // @[rawFloatFromRecFN.scala 58:25]
  wire [12:0] FReg2_ft_11_unrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_11_unrecoded_rawIn_exp)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_11_unrecoded_rawIn_out_sig_T = ~FReg2_ft_11_unrecoded_rawIn_isZero; // @[rawFloatFromRecFN.scala 60:39]
  wire [53:0] FReg2_ft_11_unrecoded_rawIn__sig = {1'h0,_FReg2_ft_11_unrecoded_rawIn_out_sig_T,io_diffFReg_31[51:0]}; // @[Cat.scala 33:92]
  wire  FReg2_ft_11_unrecoded_isSubnormal = $signed(FReg2_ft_11_unrecoded_rawIn__sExp) < 13'sh402; // @[fNFromRecFN.scala 50:39]
  wire [5:0] FReg2_ft_11_unrecoded_denormShiftDist = 6'h1 - FReg2_ft_11_unrecoded_rawIn__sExp[5:0]; // @[fNFromRecFN.scala 51:39]
  wire [52:0] _FReg2_ft_11_unrecoded_denormFract_T_1 = FReg2_ft_11_unrecoded_rawIn__sig[53:1] >>
    FReg2_ft_11_unrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [51:0] FReg2_ft_11_unrecoded_denormFract = _FReg2_ft_11_unrecoded_denormFract_T_1[51:0]; // @[fNFromRecFN.scala 52:60]
  wire [10:0] _FReg2_ft_11_unrecoded_expOut_T_2 = FReg2_ft_11_unrecoded_rawIn__sExp[10:0] - 11'h401; // @[fNFromRecFN.scala 57:45]
  wire [10:0] _FReg2_ft_11_unrecoded_expOut_T_3 = FReg2_ft_11_unrecoded_isSubnormal ? 11'h0 :
    _FReg2_ft_11_unrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_11_unrecoded_expOut_T_4 = FReg2_ft_11_unrecoded_rawIn__isNaN | FReg2_ft_11_unrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [10:0] _FReg2_ft_11_unrecoded_expOut_T_6 = _FReg2_ft_11_unrecoded_expOut_T_4 ? 11'h7ff : 11'h0; // @[Bitwise.scala 77:12]
  wire [10:0] FReg2_ft_11_unrecoded_expOut = _FReg2_ft_11_unrecoded_expOut_T_3 | _FReg2_ft_11_unrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [51:0] _FReg2_ft_11_unrecoded_fractOut_T_1 = FReg2_ft_11_unrecoded_rawIn__isInf ? 52'h0 :
    FReg2_ft_11_unrecoded_rawIn__sig[51:0]; // @[fNFromRecFN.scala 63:20]
  wire [51:0] FReg2_ft_11_unrecoded_fractOut = FReg2_ft_11_unrecoded_isSubnormal ? FReg2_ft_11_unrecoded_denormFract :
    _FReg2_ft_11_unrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [63:0] FReg2_ft_11_unrecoded = {FReg2_ft_11_unrecoded_rawIn__sign,FReg2_ft_11_unrecoded_expOut,
    FReg2_ft_11_unrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  FReg2_ft_11_prevUnrecoded_rawIn_isSpecial = FReg2_ft_11_unbx_expIn[8:7] == 2'h3; // @[rawFloatFromRecFN.scala 52:54]
  wire  FReg2_ft_11_prevUnrecoded_rawIn__isNaN = FReg2_ft_11_prevUnrecoded_rawIn_isSpecial & FReg2_ft_11_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 55:33]
  wire  FReg2_ft_11_prevUnrecoded_rawIn__isInf = FReg2_ft_11_prevUnrecoded_rawIn_isSpecial & ~FReg2_ft_11_unbx_expIn[6]; // @[rawFloatFromRecFN.scala 56:33]
  wire [9:0] FReg2_ft_11_prevUnrecoded_rawIn__sExp = {1'b0,$signed(FReg2_ft_11_unbx_expIn)}; // @[rawFloatFromRecFN.scala 59:27]
  wire  _FReg2_ft_11_prevUnrecoded_rawIn_out_sig_T = ~_FReg2_ft_11_unbx_expOut_T; // @[rawFloatFromRecFN.scala 60:39]
  wire [24:0] FReg2_ft_11_prevUnrecoded_rawIn__sig = {1'h0,_FReg2_ft_11_prevUnrecoded_rawIn_out_sig_T,
    FReg2_ft_11_unbx_fractIn}; // @[Cat.scala 33:92]
  wire  FReg2_ft_11_prevUnrecoded_isSubnormal = $signed(FReg2_ft_11_prevUnrecoded_rawIn__sExp) < 10'sh82; // @[fNFromRecFN.scala 50:39]
  wire [4:0] FReg2_ft_11_prevUnrecoded_denormShiftDist = 5'h1 - FReg2_ft_11_prevUnrecoded_rawIn__sExp[4:0]; // @[fNFromRecFN.scala 51:39]
  wire [23:0] _FReg2_ft_11_prevUnrecoded_denormFract_T_1 = FReg2_ft_11_prevUnrecoded_rawIn__sig[24:1] >>
    FReg2_ft_11_prevUnrecoded_denormShiftDist; // @[fNFromRecFN.scala 52:42]
  wire [22:0] FReg2_ft_11_prevUnrecoded_denormFract = _FReg2_ft_11_prevUnrecoded_denormFract_T_1[22:0]; // @[fNFromRecFN.scala 52:60]
  wire [7:0] _FReg2_ft_11_prevUnrecoded_expOut_T_2 = FReg2_ft_11_prevUnrecoded_rawIn__sExp[7:0] - 8'h81; // @[fNFromRecFN.scala 57:45]
  wire [7:0] _FReg2_ft_11_prevUnrecoded_expOut_T_3 = FReg2_ft_11_prevUnrecoded_isSubnormal ? 8'h0 :
    _FReg2_ft_11_prevUnrecoded_expOut_T_2; // @[fNFromRecFN.scala 55:16]
  wire  _FReg2_ft_11_prevUnrecoded_expOut_T_4 = FReg2_ft_11_prevUnrecoded_rawIn__isNaN |
    FReg2_ft_11_prevUnrecoded_rawIn__isInf; // @[fNFromRecFN.scala 59:44]
  wire [7:0] _FReg2_ft_11_prevUnrecoded_expOut_T_6 = _FReg2_ft_11_prevUnrecoded_expOut_T_4 ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] FReg2_ft_11_prevUnrecoded_expOut = _FReg2_ft_11_prevUnrecoded_expOut_T_3 |
    _FReg2_ft_11_prevUnrecoded_expOut_T_6; // @[fNFromRecFN.scala 59:15]
  wire [22:0] _FReg2_ft_11_prevUnrecoded_fractOut_T_1 = FReg2_ft_11_prevUnrecoded_rawIn__isInf ? 23'h0 :
    FReg2_ft_11_prevUnrecoded_rawIn__sig[22:0]; // @[fNFromRecFN.scala 63:20]
  wire [22:0] FReg2_ft_11_prevUnrecoded_fractOut = FReg2_ft_11_prevUnrecoded_isSubnormal ?
    FReg2_ft_11_prevUnrecoded_denormFract : _FReg2_ft_11_prevUnrecoded_fractOut_T_1; // @[fNFromRecFN.scala 61:16]
  wire [31:0] FReg2_ft_11_prevUnrecoded = {FReg2_ft_11_unbx_sign,FReg2_ft_11_prevUnrecoded_expOut,
    FReg2_ft_11_prevUnrecoded_fractOut}; // @[Cat.scala 33:92]
  wire  _FReg2_ft_11_T_2 = &io_diffFReg_31[63:61]; // @[Fpu.scala 34:56]
  wire [31:0] _FReg2_ft_11_T_4 = _FReg2_ft_11_T_2 ? FReg2_ft_11_prevUnrecoded : FReg2_ft_11_unrecoded[31:0]; // @[Fpu.scala 243:44]
  wire [63:0] XReg_zero = io_diffXReg_0; // @[diff.scala 116:18 119:13]
  wire [63:0] XReg_ra = io_diffXReg_1; // @[diff.scala 116:18 120:13]
  wire [63:0] XReg_sp = io_diffXReg_2; // @[diff.scala 116:18 121:13]
  wire [63:0] XReg_gp = io_diffXReg_3; // @[diff.scala 116:18 122:13]
  wire [63:0] XReg_tp = io_diffXReg_4; // @[diff.scala 116:18 123:13]
  wire [63:0] XReg_t_0 = io_diffXReg_5; // @[diff.scala 116:18 124:15]
  wire [63:0] XReg_t_1 = io_diffXReg_6; // @[diff.scala 116:18 125:15]
  wire [63:0] XReg_t_2 = io_diffXReg_7; // @[diff.scala 116:18 126:15]
  wire [63:0] XReg_t_3 = io_diffXReg_28; // @[diff.scala 116:18 147:15]
  wire [63:0] XReg_t_4 = io_diffXReg_29; // @[diff.scala 116:18 148:15]
  wire [63:0] XReg_t_5 = io_diffXReg_30; // @[diff.scala 116:18 149:15]
  wire [63:0] XReg_t_6 = io_diffXReg_31; // @[diff.scala 116:18 150:15]
  wire [63:0] XReg_s_0 = io_diffXReg_8; // @[diff.scala 116:18 127:15]
  wire [63:0] XReg_s_1 = io_diffXReg_9; // @[diff.scala 116:18 128:15]
  wire [63:0] XReg_s_2 = io_diffXReg_18; // @[diff.scala 116:18 137:15]
  wire [63:0] XReg_s_3 = io_diffXReg_19; // @[diff.scala 116:18 138:15]
  wire [63:0] XReg_s_4 = io_diffXReg_20; // @[diff.scala 116:18 139:15]
  wire [63:0] XReg_s_5 = io_diffXReg_21; // @[diff.scala 116:18 140:15]
  wire [63:0] XReg_s_6 = io_diffXReg_22; // @[diff.scala 116:18 141:15]
  wire [63:0] XReg_s_7 = io_diffXReg_23; // @[diff.scala 116:18 142:15]
  wire [63:0] XReg_s_8 = io_diffXReg_24; // @[diff.scala 116:18 143:15]
  wire [63:0] XReg_s_9 = io_diffXReg_25; // @[diff.scala 116:18 144:15]
  wire [63:0] XReg_s_10 = io_diffXReg_26; // @[diff.scala 116:18 145:15]
  wire [63:0] XReg_s_11 = io_diffXReg_27; // @[diff.scala 116:18 146:15]
  wire [63:0] XReg_a_0 = io_diffXReg_10; // @[diff.scala 116:18 129:15]
  wire [63:0] XReg_a_1 = io_diffXReg_11; // @[diff.scala 116:18 130:15]
  wire [63:0] XReg_a_2 = io_diffXReg_12; // @[diff.scala 116:18 131:15]
  wire [63:0] XReg_a_3 = io_diffXReg_13; // @[diff.scala 116:18 132:15]
  wire [63:0] XReg_a_4 = io_diffXReg_14; // @[diff.scala 116:18 133:15]
  wire [63:0] XReg_a_5 = io_diffXReg_15; // @[diff.scala 116:18 134:15]
  wire [63:0] XReg_a_6 = io_diffXReg_16; // @[diff.scala 116:18 135:15]
  wire [63:0] XReg_a_7 = io_diffXReg_17; // @[diff.scala 116:18 136:15]
  wire [63:0] FReg1_ft_0 = {_FReg1_ft_0_T_3,FReg1_ft_0_ie_rawIn__sign,FReg1_ft_0_ie_expOut,FReg1_ft_0_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_ft_1 = {_FReg1_ft_1_T_3,FReg1_ft_1_ie_rawIn__sign,FReg1_ft_1_ie_expOut,FReg1_ft_1_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_ft_2 = {_FReg1_ft_2_T_3,FReg1_ft_2_ie_rawIn__sign,FReg1_ft_2_ie_expOut,FReg1_ft_2_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_ft_3 = {_FReg1_ft_3_T_3,FReg1_ft_3_ie_rawIn__sign,FReg1_ft_3_ie_expOut,FReg1_ft_3_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_ft_4 = {_FReg1_ft_4_T_3,FReg1_ft_4_ie_rawIn__sign,FReg1_ft_4_ie_expOut,FReg1_ft_4_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_ft_5 = {_FReg1_ft_5_T_3,FReg1_ft_5_ie_rawIn__sign,FReg1_ft_5_ie_expOut,FReg1_ft_5_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_ft_6 = {_FReg1_ft_6_T_3,FReg1_ft_6_ie_rawIn__sign,FReg1_ft_6_ie_expOut,FReg1_ft_6_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_ft_7 = {_FReg1_ft_7_T_3,FReg1_ft_7_ie_rawIn__sign,FReg1_ft_7_ie_expOut,FReg1_ft_7_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_ft_8 = {_FReg1_ft_8_T_3,FReg1_ft_8_ie_rawIn__sign,FReg1_ft_8_ie_expOut,FReg1_ft_8_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_ft_9 = {_FReg1_ft_9_T_3,FReg1_ft_9_ie_rawIn__sign,FReg1_ft_9_ie_expOut,FReg1_ft_9_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_ft_10 = {_FReg1_ft_10_T_3,FReg1_ft_10_ie_rawIn__sign,FReg1_ft_10_ie_expOut,FReg1_ft_10_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_ft_11 = {_FReg1_ft_11_T_3,FReg1_ft_11_ie_rawIn__sign,FReg1_ft_11_ie_expOut,FReg1_ft_11_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_fs_0 = {_FReg1_fs_0_T_3,FReg1_fs_0_ie_rawIn__sign,FReg1_fs_0_ie_expOut,FReg1_fs_0_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_fs_1 = {_FReg1_fs_1_T_3,FReg1_fs_1_ie_rawIn__sign,FReg1_fs_1_ie_expOut,FReg1_fs_1_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_fs_2 = {_FReg1_fs_2_T_3,FReg1_fs_2_ie_rawIn__sign,FReg1_fs_2_ie_expOut,FReg1_fs_2_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_fs_3 = {_FReg1_fs_3_T_3,FReg1_fs_3_ie_rawIn__sign,FReg1_fs_3_ie_expOut,FReg1_fs_3_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_fs_4 = {_FReg1_fs_4_T_3,FReg1_fs_4_ie_rawIn__sign,FReg1_fs_4_ie_expOut,FReg1_fs_4_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_fs_5 = {_FReg1_fs_5_T_3,FReg1_fs_5_ie_rawIn__sign,FReg1_fs_5_ie_expOut,FReg1_fs_5_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_fs_6 = {_FReg1_fs_6_T_3,FReg1_fs_6_ie_rawIn__sign,FReg1_fs_6_ie_expOut,FReg1_fs_6_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_fs_7 = {_FReg1_fs_7_T_3,FReg1_fs_7_ie_rawIn__sign,FReg1_fs_7_ie_expOut,FReg1_fs_7_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_fs_8 = {_FReg1_fs_8_T_3,FReg1_fs_8_ie_rawIn__sign,FReg1_fs_8_ie_expOut,FReg1_fs_8_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_fs_9 = {_FReg1_fs_9_T_3,FReg1_fs_9_ie_rawIn__sign,FReg1_fs_9_ie_expOut,FReg1_fs_9_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_fs_10 = {_FReg1_fs_10_T_3,FReg1_fs_10_ie_rawIn__sign,FReg1_fs_10_ie_expOut,FReg1_fs_10_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_fs_11 = {_FReg1_fs_11_T_3,FReg1_fs_11_ie_rawIn__sign,FReg1_fs_11_ie_expOut,FReg1_fs_11_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_fa_0 = {_FReg1_fa_0_T_3,FReg1_fa_0_ie_rawIn__sign,FReg1_fa_0_ie_expOut,FReg1_fa_0_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_fa_1 = {_FReg1_fa_1_T_3,FReg1_fa_1_ie_rawIn__sign,FReg1_fa_1_ie_expOut,FReg1_fa_1_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_fa_2 = {_FReg1_fa_2_T_3,FReg1_fa_2_ie_rawIn__sign,FReg1_fa_2_ie_expOut,FReg1_fa_2_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_fa_3 = {_FReg1_fa_3_T_3,FReg1_fa_3_ie_rawIn__sign,FReg1_fa_3_ie_expOut,FReg1_fa_3_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_fa_4 = {_FReg1_fa_4_T_3,FReg1_fa_4_ie_rawIn__sign,FReg1_fa_4_ie_expOut,FReg1_fa_4_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_fa_5 = {_FReg1_fa_5_T_3,FReg1_fa_5_ie_rawIn__sign,FReg1_fa_5_ie_expOut,FReg1_fa_5_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_fa_6 = {_FReg1_fa_6_T_3,FReg1_fa_6_ie_rawIn__sign,FReg1_fa_6_ie_expOut,FReg1_fa_6_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg1_fa_7 = {_FReg1_fa_7_T_3,FReg1_fa_7_ie_rawIn__sign,FReg1_fa_7_ie_expOut,FReg1_fa_7_ie_fractOut}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_ft_0 = {FReg2_ft_0_unrecoded[63:32],_FReg2_ft_0_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_ft_1 = {FReg2_ft_1_unrecoded[63:32],_FReg2_ft_1_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_ft_2 = {FReg2_ft_2_unrecoded[63:32],_FReg2_ft_2_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_ft_3 = {FReg2_ft_3_unrecoded[63:32],_FReg2_ft_3_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_ft_4 = {FReg2_ft_4_unrecoded[63:32],_FReg2_ft_4_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_ft_5 = {FReg2_ft_5_unrecoded[63:32],_FReg2_ft_5_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_ft_6 = {FReg2_ft_6_unrecoded[63:32],_FReg2_ft_6_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_ft_7 = {FReg2_ft_7_unrecoded[63:32],_FReg2_ft_7_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_ft_8 = {FReg2_ft_8_unrecoded[63:32],_FReg2_ft_8_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_ft_9 = {FReg2_ft_9_unrecoded[63:32],_FReg2_ft_9_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_ft_10 = {FReg2_ft_10_unrecoded[63:32],_FReg2_ft_10_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_ft_11 = {FReg2_ft_11_unrecoded[63:32],_FReg2_ft_11_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_fs_0 = {FReg2_fs_0_unrecoded[63:32],_FReg2_fs_0_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_fs_1 = {FReg2_fs_1_unrecoded[63:32],_FReg2_fs_1_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_fs_2 = {FReg2_fs_2_unrecoded[63:32],_FReg2_fs_2_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_fs_3 = {FReg2_fs_3_unrecoded[63:32],_FReg2_fs_3_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_fs_4 = {FReg2_fs_4_unrecoded[63:32],_FReg2_fs_4_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_fs_5 = {FReg2_fs_5_unrecoded[63:32],_FReg2_fs_5_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_fs_6 = {FReg2_fs_6_unrecoded[63:32],_FReg2_fs_6_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_fs_7 = {FReg2_fs_7_unrecoded[63:32],_FReg2_fs_7_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_fs_8 = {FReg2_fs_8_unrecoded[63:32],_FReg2_fs_8_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_fs_9 = {FReg2_fs_9_unrecoded[63:32],_FReg2_fs_9_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_fs_10 = {FReg2_fs_10_unrecoded[63:32],_FReg2_fs_10_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_fs_11 = {FReg2_fs_11_unrecoded[63:32],_FReg2_fs_11_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_fa_0 = {FReg2_fa_0_unrecoded[63:32],_FReg2_fa_0_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_fa_1 = {FReg2_fa_1_unrecoded[63:32],_FReg2_fa_1_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_fa_2 = {FReg2_fa_2_unrecoded[63:32],_FReg2_fa_2_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_fa_3 = {FReg2_fa_3_unrecoded[63:32],_FReg2_fa_3_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_fa_4 = {FReg2_fa_4_unrecoded[63:32],_FReg2_fa_4_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_fa_5 = {FReg2_fa_5_unrecoded[63:32],_FReg2_fa_5_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_fa_6 = {FReg2_fa_6_unrecoded[63:32],_FReg2_fa_6_T_4}; // @[Cat.scala 33:92]
  wire [63:0] FReg2_fa_7 = {FReg2_fa_7_unrecoded[63:32],_FReg2_fa_7_T_4}; // @[Cat.scala 33:92]
endmodule
module Rift2Core(
  input         clock,
  input         reset,
  input         auto_mmu_client_out_a_ready,
  output        auto_mmu_client_out_a_valid,
  output        auto_mmu_client_out_a_bits_source,
  output [31:0] auto_mmu_client_out_a_bits_address,
  output        auto_mmu_client_out_d_ready,
  input         auto_mmu_client_out_d_valid,
  input  [2:0]  auto_mmu_client_out_d_bits_opcode,
  input  [2:0]  auto_mmu_client_out_d_bits_size,
  input         auto_mmu_client_out_d_bits_source,
  input  [63:0] auto_mmu_client_out_d_bits_data,
  input         auto_periph_client_out_a_ready,
  output        auto_periph_client_out_a_valid,
  output [2:0]  auto_periph_client_out_a_bits_opcode,
  output [31:0] auto_periph_client_out_a_bits_address,
  output [7:0]  auto_periph_client_out_a_bits_mask,
  output [63:0] auto_periph_client_out_a_bits_data,
  output        auto_periph_client_out_d_ready,
  input         auto_periph_client_out_d_valid,
  input  [2:0]  auto_periph_client_out_d_bits_opcode,
  input  [63:0] auto_periph_client_out_d_bits_data,
  input         auto_system_client_out_a_ready,
  output        auto_system_client_out_a_valid,
  output [2:0]  auto_system_client_out_a_bits_opcode,
  output [31:0] auto_system_client_out_a_bits_address,
  output [7:0]  auto_system_client_out_a_bits_mask,
  output [63:0] auto_system_client_out_a_bits_data,
  output        auto_system_client_out_d_ready,
  input         auto_system_client_out_d_valid,
  input  [2:0]  auto_system_client_out_d_bits_opcode,
  input  [63:0] auto_system_client_out_d_bits_data,
  input         auto_dcache_client_out_a_ready,
  output        auto_dcache_client_out_a_valid,
  output [31:0] auto_dcache_client_out_a_bits_address,
  output        auto_dcache_client_out_b_ready,
  input         auto_dcache_client_out_b_valid,
  input  [31:0] auto_dcache_client_out_b_bits_address,
  input         auto_dcache_client_out_c_ready,
  output        auto_dcache_client_out_c_valid,
  output [2:0]  auto_dcache_client_out_c_bits_opcode,
  output [2:0]  auto_dcache_client_out_c_bits_param,
  output [2:0]  auto_dcache_client_out_c_bits_size,
  output [31:0] auto_dcache_client_out_c_bits_address,
  output [63:0] auto_dcache_client_out_c_bits_data,
  output        auto_dcache_client_out_d_ready,
  input         auto_dcache_client_out_d_valid,
  input  [2:0]  auto_dcache_client_out_d_bits_opcode,
  input  [2:0]  auto_dcache_client_out_d_bits_size,
  input         auto_dcache_client_out_d_bits_source,
  input  [4:0]  auto_dcache_client_out_d_bits_sink,
  input  [63:0] auto_dcache_client_out_d_bits_data,
  input         auto_dcache_client_out_e_ready,
  output        auto_dcache_client_out_e_valid,
  output [4:0]  auto_dcache_client_out_e_bits_sink,
  input         auto_icache_client_out_a_ready,
  output        auto_icache_client_out_a_valid,
  output [31:0] auto_icache_client_out_a_bits_address,
  input         auto_icache_client_out_d_valid,
  input  [2:0]  auto_icache_client_out_d_bits_opcode,
  input  [2:0]  auto_icache_client_out_d_bits_size,
  input  [63:0] auto_icache_client_out_d_bits_data,
  output        io_dm_hartIsInReset,
  input         io_dm_hartResetReq,
  input         io_dm_hartHaltReq,
  input         io_rtc_clock,
  input         io_aclint_msi,
  input         io_aclint_mti,
  input         io_aclint_ssi,
  input         io_aclint_sti,
  input         io_plic_mei,
  input         io_plic_sei
);
  wire  if1_clock; // @[rift2Core.scala 112:64]
  wire  if1_reset; // @[rift2Core.scala 112:64]
  wire  if1_io_if4Redirect_valid; // @[rift2Core.scala 112:64]
  wire [38:0] if1_io_if4Redirect_bits_target; // @[rift2Core.scala 112:64]
  wire  if1_io_cmmRedirect_valid; // @[rift2Core.scala 112:64]
  wire [63:0] if1_io_cmmRedirect_bits_pc; // @[rift2Core.scala 112:64]
  wire  if1_io_pc_gen_ready; // @[rift2Core.scala 112:64]
  wire  if1_io_pc_gen_valid; // @[rift2Core.scala 112:64]
  wire  if1_io_pc_gen_bits_isActive_1; // @[rift2Core.scala 112:64]
  wire  if1_io_pc_gen_bits_isActive_2; // @[rift2Core.scala 112:64]
  wire  if1_io_pc_gen_bits_isActive_3; // @[rift2Core.scala 112:64]
  wire [63:0] if1_io_pc_gen_bits_pc; // @[rift2Core.scala 112:64]
  wire  if2_clock; // @[rift2Core.scala 113:19]
  wire  if2_reset; // @[rift2Core.scala 113:19]
  wire  if2_io_if2_req_ready; // @[rift2Core.scala 113:19]
  wire  if2_io_if2_req_bits_isActive_1; // @[rift2Core.scala 113:19]
  wire  if2_io_if2_req_bits_isActive_2; // @[rift2Core.scala 113:19]
  wire  if2_io_if2_req_bits_isActive_3; // @[rift2Core.scala 113:19]
  wire [63:0] if2_io_if2_req_bits_pc; // @[rift2Core.scala 113:19]
  wire  if2_io_if2_resp_0_ready; // @[rift2Core.scala 113:19]
  wire  if2_io_if2_resp_0_valid; // @[rift2Core.scala 113:19]
  wire [38:0] if2_io_if2_resp_0_bits_pc; // @[rift2Core.scala 113:19]
  wire [15:0] if2_io_if2_resp_0_bits_instr; // @[rift2Core.scala 113:19]
  wire  if2_io_if2_resp_0_bits_isRedirect; // @[rift2Core.scala 113:19]
  wire  if2_io_if2_resp_1_ready; // @[rift2Core.scala 113:19]
  wire  if2_io_if2_resp_1_valid; // @[rift2Core.scala 113:19]
  wire [38:0] if2_io_if2_resp_1_bits_pc; // @[rift2Core.scala 113:19]
  wire [15:0] if2_io_if2_resp_1_bits_instr; // @[rift2Core.scala 113:19]
  wire  if2_io_if2_resp_1_bits_isFault; // @[rift2Core.scala 113:19]
  wire  if2_io_if2_resp_1_bits_isRedirect; // @[rift2Core.scala 113:19]
  wire  if2_io_if2_resp_2_ready; // @[rift2Core.scala 113:19]
  wire  if2_io_if2_resp_2_valid; // @[rift2Core.scala 113:19]
  wire [38:0] if2_io_if2_resp_2_bits_pc; // @[rift2Core.scala 113:19]
  wire [15:0] if2_io_if2_resp_2_bits_instr; // @[rift2Core.scala 113:19]
  wire  if2_io_if2_resp_2_bits_isFault; // @[rift2Core.scala 113:19]
  wire  if2_io_if2_resp_2_bits_isRedirect; // @[rift2Core.scala 113:19]
  wire  if2_io_if2_resp_3_ready; // @[rift2Core.scala 113:19]
  wire  if2_io_if2_resp_3_valid; // @[rift2Core.scala 113:19]
  wire [38:0] if2_io_if2_resp_3_bits_pc; // @[rift2Core.scala 113:19]
  wire [15:0] if2_io_if2_resp_3_bits_instr; // @[rift2Core.scala 113:19]
  wire  if2_io_if2_resp_3_bits_isFault; // @[rift2Core.scala 113:19]
  wire  if2_io_if2_resp_3_bits_isRedirect; // @[rift2Core.scala 113:19]
  wire  if2_io_if_mmu_ready; // @[rift2Core.scala 113:19]
  wire [63:0] if2_io_if_mmu_bits_vaddr; // @[rift2Core.scala 113:19]
  wire  if2_io_mmu_if_ready; // @[rift2Core.scala 113:19]
  wire  if2_io_mmu_if_valid; // @[rift2Core.scala 113:19]
  wire [63:0] if2_io_mmu_if_bits_vaddr; // @[rift2Core.scala 113:19]
  wire [63:0] if2_io_mmu_if_bits_paddr; // @[rift2Core.scala 113:19]
  wire  if2_io_mmu_if_bits_is_paging_fault; // @[rift2Core.scala 113:19]
  wire  if2_io_mmu_if_bits_is_access_fault; // @[rift2Core.scala 113:19]
  wire [63:0] if2_io_if_cmm_ill_vaddr; // @[rift2Core.scala 113:19]
  wire  if2_io_icache_get_ready; // @[rift2Core.scala 113:19]
  wire  if2_io_icache_get_valid; // @[rift2Core.scala 113:19]
  wire [31:0] if2_io_icache_get_bits_address; // @[rift2Core.scala 113:19]
  wire  if2_io_icache_access_ready; // @[rift2Core.scala 113:19]
  wire  if2_io_icache_access_valid; // @[rift2Core.scala 113:19]
  wire [2:0] if2_io_icache_access_bits_opcode; // @[rift2Core.scala 113:19]
  wire [2:0] if2_io_icache_access_bits_size; // @[rift2Core.scala 113:19]
  wire [63:0] if2_io_icache_access_bits_data; // @[rift2Core.scala 113:19]
  wire  if2_io_flush; // @[rift2Core.scala 113:19]
  wire  if2_io_ifence; // @[rift2Core.scala 113:19]
  wire  if3_clock; // @[rift2Core.scala 114:19]
  wire  if3_reset; // @[rift2Core.scala 114:19]
  wire  if3_io_if3_req_0_ready; // @[rift2Core.scala 114:19]
  wire  if3_io_if3_req_0_valid; // @[rift2Core.scala 114:19]
  wire [38:0] if3_io_if3_req_0_bits_pc; // @[rift2Core.scala 114:19]
  wire [15:0] if3_io_if3_req_0_bits_instr; // @[rift2Core.scala 114:19]
  wire  if3_io_if3_req_0_bits_isRedirect; // @[rift2Core.scala 114:19]
  wire  if3_io_if3_req_1_ready; // @[rift2Core.scala 114:19]
  wire  if3_io_if3_req_1_valid; // @[rift2Core.scala 114:19]
  wire [38:0] if3_io_if3_req_1_bits_pc; // @[rift2Core.scala 114:19]
  wire [15:0] if3_io_if3_req_1_bits_instr; // @[rift2Core.scala 114:19]
  wire  if3_io_if3_req_1_bits_isFault; // @[rift2Core.scala 114:19]
  wire  if3_io_if3_req_1_bits_isRedirect; // @[rift2Core.scala 114:19]
  wire  if3_io_if3_req_2_ready; // @[rift2Core.scala 114:19]
  wire  if3_io_if3_req_2_valid; // @[rift2Core.scala 114:19]
  wire [38:0] if3_io_if3_req_2_bits_pc; // @[rift2Core.scala 114:19]
  wire [15:0] if3_io_if3_req_2_bits_instr; // @[rift2Core.scala 114:19]
  wire  if3_io_if3_req_2_bits_isFault; // @[rift2Core.scala 114:19]
  wire  if3_io_if3_req_2_bits_isRedirect; // @[rift2Core.scala 114:19]
  wire  if3_io_if3_req_3_ready; // @[rift2Core.scala 114:19]
  wire  if3_io_if3_req_3_valid; // @[rift2Core.scala 114:19]
  wire [38:0] if3_io_if3_req_3_bits_pc; // @[rift2Core.scala 114:19]
  wire [15:0] if3_io_if3_req_3_bits_instr; // @[rift2Core.scala 114:19]
  wire  if3_io_if3_req_3_bits_isFault; // @[rift2Core.scala 114:19]
  wire  if3_io_if3_req_3_bits_isRedirect; // @[rift2Core.scala 114:19]
  wire  if3_io_if3_resp_0_ready; // @[rift2Core.scala 114:19]
  wire  if3_io_if3_resp_0_valid; // @[rift2Core.scala 114:19]
  wire  if3_io_if3_resp_0_bits_isRVC; // @[rift2Core.scala 114:19]
  wire [31:0] if3_io_if3_resp_0_bits_instr; // @[rift2Core.scala 114:19]
  wire [38:0] if3_io_if3_resp_0_bits_pc; // @[rift2Core.scala 114:19]
  wire  if3_io_if3_resp_0_bits_isRedirect; // @[rift2Core.scala 114:19]
  wire [38:0] if3_io_if3_resp_0_bits_target; // @[rift2Core.scala 114:19]
  wire  if3_io_btbResp_0_ready; // @[rift2Core.scala 114:19]
  wire  if3_io_btbResp_0_valid; // @[rift2Core.scala 114:19]
  wire [38:0] if3_io_btbResp_0_bits_target; // @[rift2Core.scala 114:19]
  wire  if3_io_bimResp_0_ready; // @[rift2Core.scala 114:19]
  wire  if3_io_bimResp_0_valid; // @[rift2Core.scala 114:19]
  wire  if3_io_bimResp_0_bits_bim_p; // @[rift2Core.scala 114:19]
  wire  if3_io_bimResp_0_bits_bim_h; // @[rift2Core.scala 114:19]
  wire  if3_io_jcmm_update_valid; // @[rift2Core.scala 114:19]
  wire [38:0] if3_io_jcmm_update_bits_pc; // @[rift2Core.scala 114:19]
  wire [63:0] if3_io_jcmm_update_bits_finalTarget; // @[rift2Core.scala 114:19]
  wire  if3_io_bcmm_update_valid; // @[rift2Core.scala 114:19]
  wire [38:0] if3_io_bcmm_update_bits_pc; // @[rift2Core.scala 114:19]
  wire  if3_io_bcmm_update_bits_bimResp_bim_p; // @[rift2Core.scala 114:19]
  wire  if3_io_bcmm_update_bits_bimResp_bim_h; // @[rift2Core.scala 114:19]
  wire  if3_io_bcmm_update_bits_isFinalTaken; // @[rift2Core.scala 114:19]
  wire  if3_io_if4Redirect_valid; // @[rift2Core.scala 114:19]
  wire  if3_io_flush; // @[rift2Core.scala 114:19]
  wire  if4_clock; // @[rift2Core.scala 115:19]
  wire  if4_reset; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_req_0_ready; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_req_0_valid; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_req_0_bits_isRVC; // @[rift2Core.scala 115:19]
  wire [31:0] if4_io_if4_req_0_bits_instr; // @[rift2Core.scala 115:19]
  wire [38:0] if4_io_if4_req_0_bits_pc; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_req_0_bits_isRedirect; // @[rift2Core.scala 115:19]
  wire [38:0] if4_io_if4_req_0_bits_target; // @[rift2Core.scala 115:19]
  wire  if4_io_btbResp_0_ready; // @[rift2Core.scala 115:19]
  wire  if4_io_btbResp_0_valid; // @[rift2Core.scala 115:19]
  wire [38:0] if4_io_btbResp_0_bits_target; // @[rift2Core.scala 115:19]
  wire  if4_io_bimResp_0_ready; // @[rift2Core.scala 115:19]
  wire  if4_io_bimResp_0_valid; // @[rift2Core.scala 115:19]
  wire  if4_io_bimResp_0_bits_bim_p; // @[rift2Core.scala 115:19]
  wire  if4_io_bimResp_0_bits_bim_h; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_ready; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_valid; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_lui; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_auipc; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_addi; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_addiw; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_slti; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_sltiu; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_xori; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_ori; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_andi; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_slli; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_slliw; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_srli; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_srliw; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_srai; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_sraiw; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_add; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_addw; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_sub; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_subw; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_sll; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_sllw; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_slt; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_sltu; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_xor; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_srl; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_srlw; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_sra; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_sraw; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_or; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_and; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_alu_isa_wfi; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_bru_isa_jal; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_bru_isa_jalr; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_bru_isa_beq; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_bru_isa_bne; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_bru_isa_blt; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_bru_isa_bge; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_bru_isa_bltu; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_bru_isa_bgeu; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_lb; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_lh; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_lw; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_ld; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_lbu; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_lhu; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_lwu; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_sb; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_sh; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_sw; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_sd; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_fence; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_fence_i; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_sfence_vma; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_lr_w; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_sc_w; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_amoswap_w; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_amoadd_w; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_amoxor_w; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_amoand_w; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_amoor_w; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_amomin_w; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_amomax_w; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_amominu_w; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_amomaxu_w; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_lr_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_sc_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_amoswap_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_amoadd_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_amoxor_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_amoand_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_amoor_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_amomin_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_amomax_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_amominu_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_amomaxu_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_flw; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_fsw; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_fld; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_lsu_isa_fsd; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_csr_isa_rw; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_csr_isa_rs; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_csr_isa_rc; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_csr_isa_rwi; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_csr_isa_rsi; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_csr_isa_rci; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_mul_isa_mul; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_mul_isa_mulh; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_mul_isa_mulhsu; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_mul_isa_mulhu; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_mul_isa_div; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_mul_isa_divu; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_mul_isa_rem; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_mul_isa_remu; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_mul_isa_mulw; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_mul_isa_divw; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_mul_isa_divuw; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_mul_isa_remw; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_mul_isa_remuw; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_ecall; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_ebreak; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_mret; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_uret; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_sret; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_dret; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_hfence_vvma; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_hfence_gvma; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_hlv_b; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_hlv_bu; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_hlv_h; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_hlv_hu; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_hlvx_hu; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_hlv_w; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_hlvx_wu; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_hsv_b; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_hsv_h; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_hsv_w; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_hlv_wu; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_hlv_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_hsv_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_is_access_fault; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_privil_isa_is_paging_fault; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fmadd_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fmsub_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fnmsub_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fnmadd_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fadd_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fsub_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fmul_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fdiv_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fsqrt_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fsgnj_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fsgnjn_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fsgnjx_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fmin_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fmax_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcvt_w_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcvt_wu_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fmv_x_w; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_feq_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_flt_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fle_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fclass_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcvt_s_w; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcvt_s_wu; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fmv_w_x; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcvt_l_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcvt_lu_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcvt_s_l; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcvt_s_lu; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fmadd_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fmsub_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fnmsub_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fnmadd_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fadd_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fsub_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fmul_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fdiv_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fsqrt_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fsgnj_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fsgnjn_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fsgnjx_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fmin_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fmax_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcvt_s_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcvt_d_s; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_feq_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_flt_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fle_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fclass_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcvt_w_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcvt_wu_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcvt_d_w; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcvt_d_wu; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcvt_l_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcvt_lu_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fmv_x_d; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcvt_d_l; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcvt_d_lu; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fmv_d_x; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcsr_rw; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcsr_rs; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcsr_rc; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcsr_rwi; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcsr_rsi; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_fpu_isa_fcsr_rci; // @[rift2Core.scala 115:19]
  wire  if4_io_if4_resp_0_bits_param_is_rvc; // @[rift2Core.scala 115:19]
  wire [38:0] if4_io_if4_resp_0_bits_param_pc; // @[rift2Core.scala 115:19]
  wire [63:0] if4_io_if4_resp_0_bits_param_imm; // @[rift2Core.scala 115:19]
  wire [4:0] if4_io_if4_resp_0_bits_param_raw_rs1; // @[rift2Core.scala 115:19]
  wire [4:0] if4_io_if4_resp_0_bits_param_raw_rs2; // @[rift2Core.scala 115:19]
  wire [4:0] if4_io_if4_resp_0_bits_param_raw_rd0; // @[rift2Core.scala 115:19]
  wire  if4_io_if4Redirect_valid; // @[rift2Core.scala 115:19]
  wire [38:0] if4_io_if4Redirect_bits_target; // @[rift2Core.scala 115:19]
  wire  if4_io_bftq_ready; // @[rift2Core.scala 115:19]
  wire  if4_io_bftq_valid; // @[rift2Core.scala 115:19]
  wire [38:0] if4_io_bftq_bits_pc; // @[rift2Core.scala 115:19]
  wire  if4_io_bftq_bits_bimResp_bim_p; // @[rift2Core.scala 115:19]
  wire  if4_io_bftq_bits_bimResp_bim_h; // @[rift2Core.scala 115:19]
  wire  if4_io_bftq_bits_isPredictTaken; // @[rift2Core.scala 115:19]
  wire  if4_io_jftq_ready; // @[rift2Core.scala 115:19]
  wire  if4_io_jftq_valid; // @[rift2Core.scala 115:19]
  wire [38:0] if4_io_jftq_bits_pc; // @[rift2Core.scala 115:19]
  wire [38:0] if4_io_jftq_bits_btbResp_target; // @[rift2Core.scala 115:19]
  wire [38:0] if4_io_jftq_bits_rasResp_target; // @[rift2Core.scala 115:19]
  wire  if4_io_jftq_bits_isRas; // @[rift2Core.scala 115:19]
  wire  if4_io_flush; // @[rift2Core.scala 115:19]
  wire  rnm_stage_clock; // @[rift2Core.scala 138:21]
  wire  rnm_stage_reset; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_ready; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_valid; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_lui; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_auipc; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_addi; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_addiw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_slti; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_sltiu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_xori; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_ori; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_andi; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_slli; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_slliw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_srli; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_srliw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_srai; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_sraiw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_add; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_addw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_sub; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_subw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_sll; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_sllw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_slt; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_sltu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_xor; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_srl; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_srlw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_sra; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_sraw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_or; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_and; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_alu_isa_wfi; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_bru_isa_jal; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_bru_isa_jalr; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_bru_isa_beq; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_bru_isa_bne; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_bru_isa_blt; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_bru_isa_bge; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_bru_isa_bltu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_bru_isa_bgeu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_lb; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_lh; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_lw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_ld; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_lbu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_lhu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_lwu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_sb; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_sh; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_sw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_sd; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_fence; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_fence_i; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_sfence_vma; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_lr_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_sc_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_amoswap_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_amoadd_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_amoxor_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_amoand_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_amoor_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_amomin_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_amomax_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_amominu_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_amomaxu_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_lr_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_sc_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_amoswap_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_amoadd_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_amoxor_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_amoand_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_amoor_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_amomin_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_amomax_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_amominu_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_amomaxu_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_flw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_fsw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_fld; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_lsu_isa_fsd; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_csr_isa_rw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_csr_isa_rs; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_csr_isa_rc; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_csr_isa_rwi; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_csr_isa_rsi; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_csr_isa_rci; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_mul_isa_mul; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_mul_isa_mulh; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_mul_isa_mulhsu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_mul_isa_mulhu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_mul_isa_div; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_mul_isa_divu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_mul_isa_rem; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_mul_isa_remu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_mul_isa_mulw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_mul_isa_divw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_mul_isa_divuw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_mul_isa_remw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_mul_isa_remuw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_ecall; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_ebreak; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_mret; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_uret; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_sret; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_dret; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_hfence_vvma; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_hfence_gvma; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_hlv_b; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_hlv_bu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_hlv_h; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_hlv_hu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_hlvx_hu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_hlv_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_hlvx_wu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_hsv_b; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_hsv_h; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_hsv_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_hlv_wu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_hlv_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_hsv_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_is_access_fault; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_privil_isa_is_paging_fault; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fmadd_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fmsub_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fnmsub_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fnmadd_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fadd_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fsub_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fmul_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fdiv_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fsqrt_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fsgnj_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fsgnjn_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fsgnjx_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fmin_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fmax_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_w_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_wu_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fmv_x_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_feq_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_flt_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fle_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fclass_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_s_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_s_wu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fmv_w_x; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_l_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_lu_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_s_l; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_s_lu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fmadd_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fmsub_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fnmsub_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fnmadd_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fadd_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fsub_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fmul_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fdiv_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fsqrt_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fsgnj_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fsgnjn_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fsgnjx_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fmin_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fmax_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_s_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_d_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_feq_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_flt_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fle_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fclass_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_w_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_wu_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_d_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_d_wu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_l_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_lu_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fmv_x_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_d_l; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_d_lu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fmv_d_x; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcsr_rw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcsr_rs; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcsr_rc; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcsr_rwi; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcsr_rsi; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_fpu_isa_fcsr_rci; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnReq_0_bits_param_is_rvc; // @[rift2Core.scala 138:21]
  wire [38:0] rnm_stage_io_rnReq_0_bits_param_pc; // @[rift2Core.scala 138:21]
  wire [63:0] rnm_stage_io_rnReq_0_bits_param_imm; // @[rift2Core.scala 138:21]
  wire [4:0] rnm_stage_io_rnReq_0_bits_param_raw_rs1; // @[rift2Core.scala 138:21]
  wire [4:0] rnm_stage_io_rnReq_0_bits_param_raw_rs2; // @[rift2Core.scala 138:21]
  wire [4:0] rnm_stage_io_rnReq_0_bits_param_raw_rd0; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_valid; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_lui; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_auipc; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_addi; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_addiw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_slti; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_sltiu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_xori; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_ori; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_andi; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_slli; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_slliw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_srli; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_srliw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_srai; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_sraiw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_add; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_addw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_sub; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_subw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_sll; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_sllw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_slt; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_sltu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_xor; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_srl; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_srlw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_sra; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_sraw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_or; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_and; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_alu_isa_wfi; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_bru_isa_jal; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_bru_isa_jalr; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_bru_isa_beq; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_bru_isa_bne; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_bru_isa_blt; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_bru_isa_bge; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_bru_isa_bltu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_bru_isa_bgeu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_lb; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_lh; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_lw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_ld; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_lbu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_lhu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_lwu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_sb; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_sh; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_sw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_sd; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_fence; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_fence_i; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_sfence_vma; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_lr_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_sc_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_amoswap_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_amoadd_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_amoxor_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_amoand_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_amoor_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_amomin_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_amomax_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_amominu_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_amomaxu_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_lr_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_sc_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_amoswap_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_amoadd_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_amoxor_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_amoand_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_amoor_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_amomin_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_amomax_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_amominu_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_amomaxu_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_flw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_fsw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_fld; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_lsu_isa_fsd; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_csr_isa_rw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_csr_isa_rs; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_csr_isa_rc; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_csr_isa_rwi; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_csr_isa_rsi; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_csr_isa_rci; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_mul_isa_mul; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_mul_isa_mulh; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_mul_isa_mulhsu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_mul_isa_mulhu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_mul_isa_div; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_mul_isa_divu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_mul_isa_rem; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_mul_isa_remu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_mul_isa_mulw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_mul_isa_divw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_mul_isa_divuw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_mul_isa_remw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_mul_isa_remuw; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fmadd_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fmsub_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fnmsub_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fnmadd_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fadd_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fsub_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fmul_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fdiv_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fsqrt_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fsgnj_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fsgnjn_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fsgnjx_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fmin_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fmax_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_w_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_wu_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fmv_x_w; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_feq_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_flt_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fle_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fclass_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_l_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_lu_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fmadd_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fmsub_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fnmsub_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fnmadd_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fadd_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fsub_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fmul_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fdiv_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fsqrt_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fsgnj_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fsgnjn_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fsgnjx_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fmin_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fmax_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_s_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_d_s; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_feq_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_flt_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fle_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fclass_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_w_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_wu_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_l_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_lu_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_fpu_isa_fmv_x_d; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rnRsp_0_bits_param_is_rvc; // @[rift2Core.scala 138:21]
  wire [38:0] rnm_stage_io_rnRsp_0_bits_param_pc; // @[rift2Core.scala 138:21]
  wire [63:0] rnm_stage_io_rnRsp_0_bits_param_imm; // @[rift2Core.scala 138:21]
  wire [4:0] rnm_stage_io_rnRsp_0_bits_param_raw_rs1; // @[rift2Core.scala 138:21]
  wire [5:0] rnm_stage_io_rnRsp_0_bits_phy_rs1; // @[rift2Core.scala 138:21]
  wire [5:0] rnm_stage_io_rnRsp_0_bits_phy_rs2; // @[rift2Core.scala 138:21]
  wire [5:0] rnm_stage_io_rnRsp_0_bits_phy_rs3; // @[rift2Core.scala 138:21]
  wire [5:0] rnm_stage_io_rnRsp_0_bits_phy_rd0; // @[rift2Core.scala 138:21]
  wire [5:0] rnm_stage_io_xLookup_0_rsp_rs1; // @[rift2Core.scala 138:21]
  wire [5:0] rnm_stage_io_xLookup_0_rsp_rs2; // @[rift2Core.scala 138:21]
  wire [4:0] rnm_stage_io_xLookup_0_req_rs1; // @[rift2Core.scala 138:21]
  wire [4:0] rnm_stage_io_xLookup_0_req_rs2; // @[rift2Core.scala 138:21]
  wire [5:0] rnm_stage_io_xRename_0_rsp_rd0; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_xRename_0_req_ready; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_xRename_0_req_valid; // @[rift2Core.scala 138:21]
  wire [4:0] rnm_stage_io_xRename_0_req_bits_rd0; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_fRename_0_req_valid; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rod_i_0_ready; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rod_i_0_valid; // @[rift2Core.scala 138:21]
  wire [38:0] rnm_stage_io_rod_i_0_bits_pc; // @[rift2Core.scala 138:21]
  wire [4:0] rnm_stage_io_rod_i_0_bits_rd0_raw; // @[rift2Core.scala 138:21]
  wire [5:0] rnm_stage_io_rod_i_0_bits_rd0_phy; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rod_i_0_bits_is_branch; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rod_i_0_bits_is_jalr; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rod_i_0_bits_is_lu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rod_i_0_bits_is_su; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rod_i_0_bits_is_amo; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rod_i_0_bits_is_fence_i; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rod_i_0_bits_is_sfence_vma; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rod_i_0_bits_is_wfi; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rod_i_0_bits_is_csr; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rod_i_0_bits_is_fpu; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rod_i_0_bits_is_fcsr; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rod_i_0_bits_is_xcmm; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rod_i_0_bits_privil_ecall; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rod_i_0_bits_privil_ebreak; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rod_i_0_bits_privil_mret; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rod_i_0_bits_privil_sret; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rod_i_0_bits_privil_dret; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rod_i_0_bits_privil_is_access_fault; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rod_i_0_bits_privil_is_paging_fault; // @[rift2Core.scala 138:21]
  wire  rnm_stage_io_rod_i_0_bits_is_illeage; // @[rift2Core.scala 138:21]
  wire  iss_stage_clock; // @[rift2Core.scala 146:21]
  wire  iss_stage_reset; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_ready; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_valid; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_lui; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_auipc; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_addi; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_addiw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_slti; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_sltiu; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_xori; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_ori; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_andi; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_slli; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_slliw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_srli; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_srliw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_srai; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_sraiw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_add; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_addw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_sub; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_subw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_sll; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_sllw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_slt; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_sltu; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_xor; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_srl; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_srlw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_sra; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_sraw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_or; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_and; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_alu_isa_wfi; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_bru_isa_jal; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_bru_isa_jalr; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_bru_isa_beq; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_bru_isa_bne; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_bru_isa_blt; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_bru_isa_bge; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_bru_isa_bltu; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_bru_isa_bgeu; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_lb; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_lh; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_lw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_ld; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_lbu; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_lhu; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_lwu; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_sb; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_sh; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_sw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_sd; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_fence; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_fence_i; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_sfence_vma; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_lr_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_sc_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_amoswap_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_amoadd_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_amoxor_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_amoand_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_amoor_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_amomin_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_amomax_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_amominu_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_amomaxu_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_lr_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_sc_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_amoswap_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_amoadd_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_amoxor_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_amoand_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_amoor_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_amomin_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_amomax_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_amominu_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_amomaxu_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_flw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_fsw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_fld; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_lsu_isa_fsd; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_csr_isa_rw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_csr_isa_rs; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_csr_isa_rc; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_csr_isa_rwi; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_csr_isa_rsi; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_csr_isa_rci; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_mul_isa_mul; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_mul_isa_mulh; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_mul_isa_mulhsu; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_mul_isa_mulhu; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_mul_isa_div; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_mul_isa_divu; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_mul_isa_rem; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_mul_isa_remu; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_mul_isa_mulw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_mul_isa_divw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_mul_isa_divuw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_mul_isa_remw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_mul_isa_remuw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fmadd_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fmsub_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fnmsub_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fnmadd_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fadd_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fsub_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fmul_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fdiv_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fsqrt_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fsgnj_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fsgnjn_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fsgnjx_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fmin_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fmax_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_w_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_wu_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fmv_x_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_feq_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_flt_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fle_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fclass_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_l_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_lu_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fmadd_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fmsub_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fnmsub_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fnmadd_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fadd_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fsub_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fmul_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fdiv_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fsqrt_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fsgnj_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fsgnjn_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fsgnjx_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fmin_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fmax_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_s_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_d_s; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_feq_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_flt_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fle_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fclass_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_w_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_wu_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_l_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_lu_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_fpu_isa_fmv_x_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_dptReq_0_bits_param_is_rvc; // @[rift2Core.scala 146:21]
  wire [38:0] iss_stage_io_dptReq_0_bits_param_pc; // @[rift2Core.scala 146:21]
  wire [63:0] iss_stage_io_dptReq_0_bits_param_imm; // @[rift2Core.scala 146:21]
  wire [4:0] iss_stage_io_dptReq_0_bits_param_raw_rs1; // @[rift2Core.scala 146:21]
  wire [5:0] iss_stage_io_dptReq_0_bits_phy_rs1; // @[rift2Core.scala 146:21]
  wire [5:0] iss_stage_io_dptReq_0_bits_phy_rs2; // @[rift2Core.scala 146:21]
  wire [5:0] iss_stage_io_dptReq_0_bits_phy_rs3; // @[rift2Core.scala 146:21]
  wire [5:0] iss_stage_io_dptReq_0_bits_phy_rd0; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_alu_iss_exe_0_ready; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_alu_iss_exe_0_valid; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_alu_iss_exe_0_bits_fun_add; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_alu_iss_exe_0_bits_fun_slt; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_alu_iss_exe_0_bits_fun_xor; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_alu_iss_exe_0_bits_fun_or; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_alu_iss_exe_0_bits_fun_and; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_alu_iss_exe_0_bits_fun_sll; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_alu_iss_exe_0_bits_fun_srl; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_alu_iss_exe_0_bits_fun_sra; // @[rift2Core.scala 146:21]
  wire [5:0] iss_stage_io_alu_iss_exe_0_bits_param_rd0; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_alu_iss_exe_0_bits_param_is_32w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_alu_iss_exe_0_bits_param_is_usi; // @[rift2Core.scala 146:21]
  wire [63:0] iss_stage_io_alu_iss_exe_0_bits_param_dat_op1; // @[rift2Core.scala 146:21]
  wire [63:0] iss_stage_io_alu_iss_exe_0_bits_param_dat_op2; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_mul_iss_exe_0_ready; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_mul_iss_exe_0_valid; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_mul_iss_exe_0_bits_fun_mul; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_mul_iss_exe_0_bits_fun_mulh; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_mul_iss_exe_0_bits_fun_mulhsu; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_mul_iss_exe_0_bits_fun_mulhu; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_mul_iss_exe_0_bits_fun_div; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_mul_iss_exe_0_bits_fun_divu; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_mul_iss_exe_0_bits_fun_rem; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_mul_iss_exe_0_bits_fun_remu; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_mul_iss_exe_0_bits_fun_mulw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_mul_iss_exe_0_bits_fun_divw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_mul_iss_exe_0_bits_fun_divuw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_mul_iss_exe_0_bits_fun_remw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_mul_iss_exe_0_bits_fun_remuw; // @[rift2Core.scala 146:21]
  wire [5:0] iss_stage_io_mul_iss_exe_0_bits_param_rd0; // @[rift2Core.scala 146:21]
  wire [63:0] iss_stage_io_mul_iss_exe_0_bits_param_dat_op1; // @[rift2Core.scala 146:21]
  wire [63:0] iss_stage_io_mul_iss_exe_0_bits_param_dat_op2; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_bru_iss_exe_ready; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_bru_iss_exe_valid; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_bru_iss_exe_bits_fun_jalr; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_bru_iss_exe_bits_fun_beq; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_bru_iss_exe_bits_fun_bne; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_bru_iss_exe_bits_fun_blt; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_bru_iss_exe_bits_fun_bge; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_bru_iss_exe_bits_fun_bltu; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_bru_iss_exe_bits_fun_bgeu; // @[rift2Core.scala 146:21]
  wire [5:0] iss_stage_io_bru_iss_exe_bits_param_rd0; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_bru_iss_exe_bits_param_is_rvc; // @[rift2Core.scala 146:21]
  wire [63:0] iss_stage_io_bru_iss_exe_bits_param_pc; // @[rift2Core.scala 146:21]
  wire [63:0] iss_stage_io_bru_iss_exe_bits_param_imm; // @[rift2Core.scala 146:21]
  wire [63:0] iss_stage_io_bru_iss_exe_bits_param_dat_op1; // @[rift2Core.scala 146:21]
  wire [63:0] iss_stage_io_bru_iss_exe_bits_param_dat_op2; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_csr_iss_exe_ready; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_csr_iss_exe_valid; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_csr_iss_exe_bits_fun_rw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_csr_iss_exe_bits_fun_rs; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_csr_iss_exe_bits_fun_rc; // @[rift2Core.scala 146:21]
  wire [5:0] iss_stage_io_csr_iss_exe_bits_param_rd0; // @[rift2Core.scala 146:21]
  wire [63:0] iss_stage_io_csr_iss_exe_bits_param_dat_op1; // @[rift2Core.scala 146:21]
  wire [63:0] iss_stage_io_csr_iss_exe_bits_param_dat_op2; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_ready; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_valid; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_lb; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_lh; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_lw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_ld; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_lbu; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_lhu; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_lwu; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_sb; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_sh; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_sw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_sd; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_fence; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_fence_i; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_sfence_vma; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_lr_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_sc_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_amoswap_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_amoadd_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_amoxor_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_amoand_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_amoor_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_amomin_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_amomax_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_amominu_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_amomaxu_w; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_lr_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_sc_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_amoswap_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_amoadd_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_amoxor_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_amoand_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_amoor_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_amomin_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_amomax_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_amominu_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_amomaxu_d; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_flw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_fsw; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_fld; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_lsu_iss_exe_bits_fun_fsd; // @[rift2Core.scala 146:21]
  wire [5:0] iss_stage_io_lsu_iss_exe_bits_param_rd0; // @[rift2Core.scala 146:21]
  wire [63:0] iss_stage_io_lsu_iss_exe_bits_param_dat_op1; // @[rift2Core.scala 146:21]
  wire [63:0] iss_stage_io_lsu_iss_exe_bits_param_dat_op2; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_0; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_1; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_2; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_3; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_4; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_5; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_6; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_7; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_8; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_9; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_10; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_11; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_12; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_13; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_14; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_15; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_16; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_17; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_18; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_19; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_20; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_21; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_22; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_23; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_24; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_25; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_26; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_27; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_28; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_29; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_30; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_31; // @[rift2Core.scala 146:21]
  wire [1:0] iss_stage_io_irgLog_32; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_irgReq_0_valid; // @[rift2Core.scala 146:21]
  wire [5:0] iss_stage_io_irgReq_0_bits; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_irgReq_1_valid; // @[rift2Core.scala 146:21]
  wire [5:0] iss_stage_io_irgReq_1_bits; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_irgRsp_0_valid; // @[rift2Core.scala 146:21]
  wire [5:0] iss_stage_io_irgRsp_0_bits_phy; // @[rift2Core.scala 146:21]
  wire [63:0] iss_stage_io_irgRsp_0_bits_op; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_irgRsp_1_valid; // @[rift2Core.scala 146:21]
  wire [5:0] iss_stage_io_irgRsp_1_bits_phy; // @[rift2Core.scala 146:21]
  wire [63:0] iss_stage_io_irgRsp_1_bits_op; // @[rift2Core.scala 146:21]
  wire  iss_stage_io_flush; // @[rift2Core.scala 146:21]
  wire  exe_stage_clock; // @[rift2Core.scala 153:21]
  wire  exe_stage_reset; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_alu_iss_exe_0_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_alu_iss_exe_0_valid; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_alu_iss_exe_0_bits_fun_add; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_alu_iss_exe_0_bits_fun_slt; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_alu_iss_exe_0_bits_fun_xor; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_alu_iss_exe_0_bits_fun_or; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_alu_iss_exe_0_bits_fun_and; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_alu_iss_exe_0_bits_fun_sll; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_alu_iss_exe_0_bits_fun_srl; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_alu_iss_exe_0_bits_fun_sra; // @[rift2Core.scala 153:21]
  wire [5:0] exe_stage_io_alu_iss_exe_0_bits_param_rd0; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_alu_iss_exe_0_bits_param_is_32w; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_alu_iss_exe_0_bits_param_is_usi; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_alu_iss_exe_0_bits_param_dat_op1; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_alu_iss_exe_0_bits_param_dat_op2; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_alu_exe_iwb_0_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_alu_exe_iwb_0_valid; // @[rift2Core.scala 153:21]
  wire [5:0] exe_stage_io_alu_exe_iwb_0_bits_rd0; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_alu_exe_iwb_0_bits_res; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bru_iss_exe_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bru_iss_exe_valid; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bru_iss_exe_bits_fun_jalr; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bru_iss_exe_bits_fun_beq; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bru_iss_exe_bits_fun_bne; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bru_iss_exe_bits_fun_blt; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bru_iss_exe_bits_fun_bge; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bru_iss_exe_bits_fun_bltu; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bru_iss_exe_bits_fun_bgeu; // @[rift2Core.scala 153:21]
  wire [5:0] exe_stage_io_bru_iss_exe_bits_param_rd0; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bru_iss_exe_bits_param_is_rvc; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_bru_iss_exe_bits_param_pc; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_bru_iss_exe_bits_param_imm; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_bru_iss_exe_bits_param_dat_op1; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_bru_iss_exe_bits_param_dat_op2; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bru_exe_iwb_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bru_exe_iwb_valid; // @[rift2Core.scala 153:21]
  wire [5:0] exe_stage_io_bru_exe_iwb_bits_rd0; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_bru_exe_iwb_bits_res; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_csr_iss_exe_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_csr_iss_exe_valid; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_csr_iss_exe_bits_fun_rw; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_csr_iss_exe_bits_fun_rs; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_csr_iss_exe_bits_fun_rc; // @[rift2Core.scala 153:21]
  wire [5:0] exe_stage_io_csr_iss_exe_bits_param_rd0; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_csr_iss_exe_bits_param_dat_op1; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_csr_iss_exe_bits_param_dat_op2; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_csr_exe_iwb_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_csr_exe_iwb_valid; // @[rift2Core.scala 153:21]
  wire [5:0] exe_stage_io_csr_exe_iwb_bits_rd0; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_csr_exe_iwb_bits_res; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_valid; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_lb; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_lh; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_lw; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_ld; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_lbu; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_lhu; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_lwu; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_sb; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_sh; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_sw; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_sd; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_fence; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_fence_i; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_sfence_vma; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_lr_w; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_sc_w; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_amoswap_w; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_amoadd_w; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_amoxor_w; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_amoand_w; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_amoor_w; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_amomin_w; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_amomax_w; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_amominu_w; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_amomaxu_w; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_lr_d; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_sc_d; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_amoswap_d; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_amoadd_d; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_amoxor_d; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_amoand_d; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_amoor_d; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_amomin_d; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_amomax_d; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_amominu_d; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_amomaxu_d; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_flw; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_fsw; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_fld; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_iss_exe_bits_fun_fsd; // @[rift2Core.scala 153:21]
  wire [5:0] exe_stage_io_lsu_iss_exe_bits_param_rd0; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_lsu_iss_exe_bits_param_dat_op1; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_lsu_iss_exe_bits_param_dat_op2; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_exe_iwb_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_exe_iwb_valid; // @[rift2Core.scala 153:21]
  wire [5:0] exe_stage_io_lsu_exe_iwb_bits_rd0; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_lsu_exe_iwb_bits_res; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_exe_fwb_valid; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_mul_iss_exe_0_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_mul_iss_exe_0_valid; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_mul_iss_exe_0_bits_fun_mul; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_mul_iss_exe_0_bits_fun_mulh; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_mul_iss_exe_0_bits_fun_mulhsu; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_mul_iss_exe_0_bits_fun_mulhu; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_mul_iss_exe_0_bits_fun_div; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_mul_iss_exe_0_bits_fun_divu; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_mul_iss_exe_0_bits_fun_rem; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_mul_iss_exe_0_bits_fun_remu; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_mul_iss_exe_0_bits_fun_mulw; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_mul_iss_exe_0_bits_fun_divw; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_mul_iss_exe_0_bits_fun_divuw; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_mul_iss_exe_0_bits_fun_remw; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_mul_iss_exe_0_bits_fun_remuw; // @[rift2Core.scala 153:21]
  wire [5:0] exe_stage_io_mul_iss_exe_0_bits_param_rd0; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_mul_iss_exe_0_bits_param_dat_op1; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_mul_iss_exe_0_bits_param_dat_op2; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_mul_exe_iwb_0_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_mul_exe_iwb_0_valid; // @[rift2Core.scala 153:21]
  wire [5:0] exe_stage_io_mul_exe_iwb_0_bits_rd0; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_mul_exe_iwb_0_bits_res; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bftq_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bftq_valid; // @[rift2Core.scala 153:21]
  wire [38:0] exe_stage_io_bftq_bits_pc; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bftq_bits_bimResp_bim_p; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bftq_bits_bimResp_bim_h; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bftq_bits_isPredictTaken; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_jftq_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_jftq_valid; // @[rift2Core.scala 153:21]
  wire [38:0] exe_stage_io_jftq_bits_pc; // @[rift2Core.scala 153:21]
  wire [38:0] exe_stage_io_jftq_bits_btbResp_target; // @[rift2Core.scala 153:21]
  wire [38:0] exe_stage_io_jftq_bits_rasResp_target; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_jftq_bits_isRas; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bctq_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bctq_valid; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bctq_bits_isPredictTaken; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bctq_bits_isFinalTaken; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_bctq_bits_finalTarget; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_jctq_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_jctq_valid; // @[rift2Core.scala 153:21]
  wire [38:0] exe_stage_io_jctq_bits_btbResp_target; // @[rift2Core.scala 153:21]
  wire [38:0] exe_stage_io_jctq_bits_rasResp_target; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_jctq_bits_isRas; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_jctq_bits_finalTarget; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bcmm_update_valid; // @[rift2Core.scala 153:21]
  wire [38:0] exe_stage_io_bcmm_update_bits_pc; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bcmm_update_bits_bimResp_bim_p; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bcmm_update_bits_bimResp_bim_h; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_bcmm_update_bits_isFinalTaken; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_jcmm_update_valid; // @[rift2Core.scala 153:21]
  wire [38:0] exe_stage_io_jcmm_update_bits_pc; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_jcmm_update_bits_finalTarget; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_csr_addr_valid; // @[rift2Core.scala 153:21]
  wire [11:0] exe_stage_io_csr_addr_bits; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_csr_data_valid; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_csr_data_bits; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_csr_cmm_op_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_csr_cmm_op_valid; // @[rift2Core.scala 153:21]
  wire [11:0] exe_stage_io_csr_cmm_op_bits_addr; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_csr_cmm_op_bits_dat_i; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_csr_cmm_op_bits_op_rw; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_csr_cmm_op_bits_op_rs; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_csr_cmm_op_bits_op_rc; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_mmu_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_mmu_valid; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_mmu_bits_is_W; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_mmu_bits_is_R; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_lsu_mmu_bits_vaddr; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_mmu_lsu_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_mmu_lsu_valid; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_mmu_lsu_bits_paddr; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_mmu_lsu_bits_is_paging_fault; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_mmu_lsu_bits_is_access_fault; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_cmm_lsu_is_amo_pending; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_cmm_lsu_is_store_commit_0; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_cmm_is_access_fault; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_cmm_is_paging_fault; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_lsu_cmm_is_misAlign; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_lsu_cmm_trap_addr; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_missUnit_dcache_acquire_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_missUnit_dcache_acquire_valid; // @[rift2Core.scala 153:21]
  wire [31:0] exe_stage_io_missUnit_dcache_acquire_bits_address; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_missUnit_dcache_grant_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_missUnit_dcache_grant_valid; // @[rift2Core.scala 153:21]
  wire [2:0] exe_stage_io_missUnit_dcache_grant_bits_opcode; // @[rift2Core.scala 153:21]
  wire [2:0] exe_stage_io_missUnit_dcache_grant_bits_size; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_missUnit_dcache_grant_bits_source; // @[rift2Core.scala 153:21]
  wire [4:0] exe_stage_io_missUnit_dcache_grant_bits_sink; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_missUnit_dcache_grant_bits_data; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_missUnit_dcache_grantAck_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_missUnit_dcache_grantAck_valid; // @[rift2Core.scala 153:21]
  wire [4:0] exe_stage_io_missUnit_dcache_grantAck_bits_sink; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_probeUnit_dcache_probe_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_probeUnit_dcache_probe_valid; // @[rift2Core.scala 153:21]
  wire [31:0] exe_stage_io_probeUnit_dcache_probe_bits_address; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_writeBackUnit_dcache_release_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_writeBackUnit_dcache_release_valid; // @[rift2Core.scala 153:21]
  wire [2:0] exe_stage_io_writeBackUnit_dcache_release_bits_opcode; // @[rift2Core.scala 153:21]
  wire [2:0] exe_stage_io_writeBackUnit_dcache_release_bits_param; // @[rift2Core.scala 153:21]
  wire [2:0] exe_stage_io_writeBackUnit_dcache_release_bits_size; // @[rift2Core.scala 153:21]
  wire [31:0] exe_stage_io_writeBackUnit_dcache_release_bits_address; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_writeBackUnit_dcache_release_bits_data; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_writeBackUnit_dcache_grant_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_writeBackUnit_dcache_grant_valid; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_writeBackUnit_dcache_grant_bits_source; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_system_getPut_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_system_getPut_valid; // @[rift2Core.scala 153:21]
  wire [2:0] exe_stage_io_system_getPut_bits_opcode; // @[rift2Core.scala 153:21]
  wire [31:0] exe_stage_io_system_getPut_bits_address; // @[rift2Core.scala 153:21]
  wire [7:0] exe_stage_io_system_getPut_bits_mask; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_system_getPut_bits_data; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_system_access_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_system_access_valid; // @[rift2Core.scala 153:21]
  wire [2:0] exe_stage_io_system_access_bits_opcode; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_system_access_bits_data; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_periph_getPut_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_periph_getPut_valid; // @[rift2Core.scala 153:21]
  wire [2:0] exe_stage_io_periph_getPut_bits_opcode; // @[rift2Core.scala 153:21]
  wire [31:0] exe_stage_io_periph_getPut_bits_address; // @[rift2Core.scala 153:21]
  wire [7:0] exe_stage_io_periph_getPut_bits_mask; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_periph_getPut_bits_data; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_periph_access_ready; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_periph_access_valid; // @[rift2Core.scala 153:21]
  wire [2:0] exe_stage_io_periph_access_bits_opcode; // @[rift2Core.scala 153:21]
  wire [63:0] exe_stage_io_periph_access_bits_data; // @[rift2Core.scala 153:21]
  wire  exe_stage_io_flush; // @[rift2Core.scala 153:21]
  wire  iwb_stage_clock; // @[rift2Core.scala 165:21]
  wire  iwb_stage_reset; // @[rift2Core.scala 165:21]
  wire [5:0] iwb_stage_io_xLookup_0_rsp_rs1; // @[rift2Core.scala 165:21]
  wire [5:0] iwb_stage_io_xLookup_0_rsp_rs2; // @[rift2Core.scala 165:21]
  wire [4:0] iwb_stage_io_xLookup_0_req_rs1; // @[rift2Core.scala 165:21]
  wire [4:0] iwb_stage_io_xLookup_0_req_rs2; // @[rift2Core.scala 165:21]
  wire [5:0] iwb_stage_io_xRename_0_rsp_rd0; // @[rift2Core.scala 165:21]
  wire  iwb_stage_io_xRename_0_req_ready; // @[rift2Core.scala 165:21]
  wire  iwb_stage_io_xRename_0_req_valid; // @[rift2Core.scala 165:21]
  wire [4:0] iwb_stage_io_xRename_0_req_bits_rd0; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_0; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_1; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_2; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_3; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_4; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_5; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_6; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_7; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_8; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_9; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_10; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_11; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_12; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_13; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_14; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_15; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_16; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_17; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_18; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_19; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_20; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_21; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_22; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_23; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_24; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_25; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_26; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_27; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_28; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_29; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_30; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_31; // @[rift2Core.scala 165:21]
  wire [1:0] iwb_stage_io_irgLog_32; // @[rift2Core.scala 165:21]
  wire  iwb_stage_io_irgReq_0_valid; // @[rift2Core.scala 165:21]
  wire [5:0] iwb_stage_io_irgReq_0_bits; // @[rift2Core.scala 165:21]
  wire  iwb_stage_io_irgReq_1_valid; // @[rift2Core.scala 165:21]
  wire [5:0] iwb_stage_io_irgReq_1_bits; // @[rift2Core.scala 165:21]
  wire  iwb_stage_io_irgRsp_0_valid; // @[rift2Core.scala 165:21]
  wire [5:0] iwb_stage_io_irgRsp_0_bits_phy; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_irgRsp_0_bits_op; // @[rift2Core.scala 165:21]
  wire  iwb_stage_io_irgRsp_1_valid; // @[rift2Core.scala 165:21]
  wire [5:0] iwb_stage_io_irgRsp_1_bits_phy; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_irgRsp_1_bits_op; // @[rift2Core.scala 165:21]
  wire  iwb_stage_io_alu_iWriteBack_0_ready; // @[rift2Core.scala 165:21]
  wire  iwb_stage_io_alu_iWriteBack_0_valid; // @[rift2Core.scala 165:21]
  wire [5:0] iwb_stage_io_alu_iWriteBack_0_bits_rd0; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_alu_iWriteBack_0_bits_res; // @[rift2Core.scala 165:21]
  wire  iwb_stage_io_bru_iWriteBack_ready; // @[rift2Core.scala 165:21]
  wire  iwb_stage_io_bru_iWriteBack_valid; // @[rift2Core.scala 165:21]
  wire [5:0] iwb_stage_io_bru_iWriteBack_bits_rd0; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_bru_iWriteBack_bits_res; // @[rift2Core.scala 165:21]
  wire  iwb_stage_io_csr_iWriteBack_ready; // @[rift2Core.scala 165:21]
  wire  iwb_stage_io_csr_iWriteBack_valid; // @[rift2Core.scala 165:21]
  wire [5:0] iwb_stage_io_csr_iWriteBack_bits_rd0; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_csr_iWriteBack_bits_res; // @[rift2Core.scala 165:21]
  wire  iwb_stage_io_mem_iWriteBack_ready; // @[rift2Core.scala 165:21]
  wire  iwb_stage_io_mem_iWriteBack_valid; // @[rift2Core.scala 165:21]
  wire [5:0] iwb_stage_io_mem_iWriteBack_bits_rd0; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_mem_iWriteBack_bits_res; // @[rift2Core.scala 165:21]
  wire  iwb_stage_io_mul_iWriteBack_0_ready; // @[rift2Core.scala 165:21]
  wire  iwb_stage_io_mul_iWriteBack_0_valid; // @[rift2Core.scala 165:21]
  wire [5:0] iwb_stage_io_mul_iWriteBack_0_bits_rd0; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_mul_iWriteBack_0_bits_res; // @[rift2Core.scala 165:21]
  wire  iwb_stage_io_mem_fWriteBack_valid; // @[rift2Core.scala 165:21]
  wire  iwb_stage_io_commit_0_is_comfirm; // @[rift2Core.scala 165:21]
  wire  iwb_stage_io_commit_0_is_MisPredict; // @[rift2Core.scala 165:21]
  wire  iwb_stage_io_commit_0_is_abort; // @[rift2Core.scala 165:21]
  wire [4:0] iwb_stage_io_commit_0_raw; // @[rift2Core.scala 165:21]
  wire [5:0] iwb_stage_io_commit_0_phy; // @[rift2Core.scala 165:21]
  wire  iwb_stage_io_commit_0_toX; // @[rift2Core.scala 165:21]
  wire  iwb_stage_io_commit_0_is_writeback; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_0; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_1; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_2; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_3; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_4; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_5; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_6; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_7; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_8; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_9; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_10; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_11; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_12; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_13; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_14; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_15; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_16; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_17; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_18; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_19; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_20; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_21; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_22; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_23; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_24; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_25; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_26; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_27; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_28; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_29; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_30; // @[rift2Core.scala 165:21]
  wire [63:0] iwb_stage_io_diffXReg_31; // @[rift2Core.scala 165:21]
  wire  cmm_stage_clock; // @[rift2Core.scala 194:25]
  wire  cmm_stage_reset; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_cm_op_0_is_comfirm; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_cm_op_0_is_MisPredict; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_cm_op_0_is_abort; // @[rift2Core.scala 194:25]
  wire [4:0] cmm_stage_io_cm_op_0_raw; // @[rift2Core.scala 194:25]
  wire [5:0] cmm_stage_io_cm_op_0_phy; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_cm_op_0_toX; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_cm_op_0_is_writeback; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rod_0_ready; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rod_0_valid; // @[rift2Core.scala 194:25]
  wire [38:0] cmm_stage_io_rod_0_bits_pc; // @[rift2Core.scala 194:25]
  wire [4:0] cmm_stage_io_rod_0_bits_rd0_raw; // @[rift2Core.scala 194:25]
  wire [5:0] cmm_stage_io_rod_0_bits_rd0_phy; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rod_0_bits_is_branch; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rod_0_bits_is_jalr; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rod_0_bits_is_lu; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rod_0_bits_is_su; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rod_0_bits_is_amo; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rod_0_bits_is_fence_i; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rod_0_bits_is_sfence_vma; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rod_0_bits_is_wfi; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rod_0_bits_is_csr; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rod_0_bits_is_fpu; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rod_0_bits_is_fcsr; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rod_0_bits_is_xcmm; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rod_0_bits_privil_ecall; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rod_0_bits_privil_ebreak; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rod_0_bits_privil_mret; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rod_0_bits_privil_sret; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rod_0_bits_privil_dret; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rod_0_bits_privil_is_access_fault; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rod_0_bits_privil_is_paging_fault; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rod_0_bits_is_illeage; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_cmm_lsu_is_amo_pending; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_cmm_lsu_is_store_commit_0; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_lsu_cmm_is_access_fault; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_lsu_cmm_is_paging_fault; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_lsu_cmm_is_misAlign; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_lsu_cmm_trap_addr; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_csr_addr_valid; // @[rift2Core.scala 194:25]
  wire [11:0] cmm_stage_io_csr_addr_bits; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_csr_data_valid; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_csr_data_bits; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_csr_cmm_op_ready; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_csr_cmm_op_valid; // @[rift2Core.scala 194:25]
  wire [11:0] cmm_stage_io_csr_cmm_op_bits_addr; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_csr_cmm_op_bits_dat_i; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_csr_cmm_op_bits_op_rw; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_csr_cmm_op_bits_op_rs; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_csr_cmm_op_bits_op_rc; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_bctq_ready; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_bctq_valid; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_bctq_bits_isPredictTaken; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_bctq_bits_isFinalTaken; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_bctq_bits_finalTarget; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_jctq_ready; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_jctq_valid; // @[rift2Core.scala 194:25]
  wire [38:0] cmm_stage_io_jctq_bits_btbResp_target; // @[rift2Core.scala 194:25]
  wire [38:0] cmm_stage_io_jctq_bits_rasResp_target; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_jctq_bits_isRas; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_jctq_bits_finalTarget; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_cmmRedirect_valid; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_cmmRedirect_bits_pc; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_if_cmm_ill_vaddr; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_ifence; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_cmm_mmu_satp; // @[rift2Core.scala 194:25]
  wire [1:0] cmm_stage_io_cmm_mmu_priv_lvl_if; // @[rift2Core.scala 194:25]
  wire [1:0] cmm_stage_io_cmm_mmu_priv_lvl_ls; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_cmm_mmu_mstatus; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_cmm_mmu_sstatus; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_cmm_mmu_sfence_vma; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_dm_hartIsInReset; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_dm_hartResetReq; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_dm_hartHaltReq; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_rtc_clock; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_aclint_msi; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_aclint_mti; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_aclint_ssi; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_aclint_sti; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_plic_mei; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_plic_sei; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_diff_commit_pc_0; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_diff_commit_comfirm_0; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_diff_commit_abort_0; // @[rift2Core.scala 194:25]
  wire [1:0] cmm_stage_io_diff_commit_priv_lvl; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_diff_commit_is_ecall_M; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_diff_commit_is_ecall_S; // @[rift2Core.scala 194:25]
  wire  cmm_stage_io_diff_commit_is_ecall_U; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_diff_csr_mstatus; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_diff_csr_mtvec; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_diff_csr_mscratch; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_diff_csr_mepc; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_diff_csr_mcause; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_diff_csr_mtval; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_diff_csr_marchid; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_diff_csr_misa; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_diff_csr_mie; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_diff_csr_mip; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_diff_csr_medeleg; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_diff_csr_mideleg; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_diff_csr_stvec; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_diff_csr_sscratch; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_diff_csr_sepc; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_diff_csr_scause; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_diff_csr_stval; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_diff_csr_satp; // @[rift2Core.scala 194:25]
  wire [31:0] cmm_stage_io_diff_csr_fflags; // @[rift2Core.scala 194:25]
  wire [7:0] cmm_stage_io_diff_csr_frm; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_diff_csr_mcycle; // @[rift2Core.scala 194:25]
  wire [63:0] cmm_stage_io_diff_csr_minstret; // @[rift2Core.scala 194:25]
  wire  i_mmu_clock; // @[rift2Core.scala 197:21]
  wire  i_mmu_reset; // @[rift2Core.scala 197:21]
  wire  i_mmu_io_if_mmu_ready; // @[rift2Core.scala 197:21]
  wire [63:0] i_mmu_io_if_mmu_bits_vaddr; // @[rift2Core.scala 197:21]
  wire  i_mmu_io_mmu_if_ready; // @[rift2Core.scala 197:21]
  wire  i_mmu_io_mmu_if_valid; // @[rift2Core.scala 197:21]
  wire [63:0] i_mmu_io_mmu_if_bits_vaddr; // @[rift2Core.scala 197:21]
  wire [63:0] i_mmu_io_mmu_if_bits_paddr; // @[rift2Core.scala 197:21]
  wire  i_mmu_io_mmu_if_bits_is_paging_fault; // @[rift2Core.scala 197:21]
  wire  i_mmu_io_mmu_if_bits_is_access_fault; // @[rift2Core.scala 197:21]
  wire  i_mmu_io_if_flush; // @[rift2Core.scala 197:21]
  wire  i_mmu_io_lsu_mmu_ready; // @[rift2Core.scala 197:21]
  wire  i_mmu_io_lsu_mmu_valid; // @[rift2Core.scala 197:21]
  wire  i_mmu_io_lsu_mmu_bits_is_W; // @[rift2Core.scala 197:21]
  wire  i_mmu_io_lsu_mmu_bits_is_R; // @[rift2Core.scala 197:21]
  wire [63:0] i_mmu_io_lsu_mmu_bits_vaddr; // @[rift2Core.scala 197:21]
  wire  i_mmu_io_mmu_lsu_ready; // @[rift2Core.scala 197:21]
  wire  i_mmu_io_mmu_lsu_valid; // @[rift2Core.scala 197:21]
  wire [63:0] i_mmu_io_mmu_lsu_bits_paddr; // @[rift2Core.scala 197:21]
  wire  i_mmu_io_mmu_lsu_bits_is_paging_fault; // @[rift2Core.scala 197:21]
  wire  i_mmu_io_mmu_lsu_bits_is_access_fault; // @[rift2Core.scala 197:21]
  wire  i_mmu_io_lsu_flush; // @[rift2Core.scala 197:21]
  wire [63:0] i_mmu_io_cmm_mmu_satp; // @[rift2Core.scala 197:21]
  wire [1:0] i_mmu_io_cmm_mmu_priv_lvl_if; // @[rift2Core.scala 197:21]
  wire [1:0] i_mmu_io_cmm_mmu_priv_lvl_ls; // @[rift2Core.scala 197:21]
  wire [63:0] i_mmu_io_cmm_mmu_mstatus; // @[rift2Core.scala 197:21]
  wire [63:0] i_mmu_io_cmm_mmu_sstatus; // @[rift2Core.scala 197:21]
  wire  i_mmu_io_cmm_mmu_sfence_vma; // @[rift2Core.scala 197:21]
  wire  i_mmu_io_ptw_get_ready; // @[rift2Core.scala 197:21]
  wire  i_mmu_io_ptw_get_valid; // @[rift2Core.scala 197:21]
  wire  i_mmu_io_ptw_get_bits_source; // @[rift2Core.scala 197:21]
  wire [31:0] i_mmu_io_ptw_get_bits_address; // @[rift2Core.scala 197:21]
  wire  i_mmu_io_ptw_access_ready; // @[rift2Core.scala 197:21]
  wire  i_mmu_io_ptw_access_valid; // @[rift2Core.scala 197:21]
  wire [2:0] i_mmu_io_ptw_access_bits_opcode; // @[rift2Core.scala 197:21]
  wire [2:0] i_mmu_io_ptw_access_bits_size; // @[rift2Core.scala 197:21]
  wire  i_mmu_io_ptw_access_bits_source; // @[rift2Core.scala 197:21]
  wire [63:0] i_mmu_io_ptw_access_bits_data; // @[rift2Core.scala 197:21]
  wire [63:0] diff_io_diffXReg_0; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_1; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_2; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_3; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_4; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_5; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_6; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_7; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_8; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_9; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_10; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_11; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_12; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_13; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_14; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_15; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_16; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_17; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_18; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_19; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_20; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_21; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_22; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_23; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_24; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_25; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_26; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_27; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_28; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_29; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_30; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_diffXReg_31; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_0; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_1; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_2; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_3; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_4; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_5; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_6; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_7; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_8; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_9; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_10; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_11; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_12; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_13; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_14; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_15; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_16; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_17; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_18; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_19; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_20; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_21; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_22; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_23; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_24; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_25; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_26; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_27; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_28; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_29; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_30; // @[rift2Core.scala 354:21]
  wire [64:0] diff_io_diffFReg_31; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_commit_pc_0; // @[rift2Core.scala 354:21]
  wire  diff_io_commit_comfirm_0; // @[rift2Core.scala 354:21]
  wire  diff_io_commit_abort_0; // @[rift2Core.scala 354:21]
  wire [1:0] diff_io_commit_priv_lvl; // @[rift2Core.scala 354:21]
  wire  diff_io_commit_is_ecall_M; // @[rift2Core.scala 354:21]
  wire  diff_io_commit_is_ecall_S; // @[rift2Core.scala 354:21]
  wire  diff_io_commit_is_ecall_U; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mstatus; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mtvec; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mscratch; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mepc; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mcause; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mtval; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mvendorid; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_marchid; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mimpid; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhartid; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_misa; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mie; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mip; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_medeleg; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mideleg; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_pmpcfg_0; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_pmpaddr_0; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_pmpaddr_1; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_pmpaddr_2; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_pmpaddr_3; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_pmpaddr_4; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_pmpaddr_5; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_pmpaddr_6; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_pmpaddr_7; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_stvec; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_sscratch; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_sepc; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_scause; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_stval; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_satp; // @[rift2Core.scala 354:21]
  wire [31:0] diff_io_csr_fflags; // @[rift2Core.scala 354:21]
  wire [7:0] diff_io_csr_frm; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mcycle; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_minstret; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_0; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_1; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_2; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_3; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_4; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_5; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_6; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_7; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_8; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_9; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_10; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_11; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_12; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_13; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_14; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_15; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_16; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_17; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_18; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_19; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_20; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_21; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_22; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_23; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_24; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_25; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_26; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_27; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_28; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_29; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_30; // @[rift2Core.scala 354:21]
  wire [63:0] diff_io_csr_mhpmcounter_31; // @[rift2Core.scala 354:21]
  wire  _exe_stage_io_missUnit_dcache_grant_valid_T_2 = auto_dcache_client_out_d_bits_opcode == 3'h4 |
    auto_dcache_client_out_d_bits_opcode == 3'h5; // @[rift2Core.scala 274:122]
  wire  _exe_stage_io_writeBackUnit_dcache_grant_valid_T = auto_dcache_client_out_d_bits_opcode == 3'h6; // @[rift2Core.scala 277:106]
  IF1NPredict if1 ( // @[rift2Core.scala 112:64]
    .clock(if1_clock),
    .reset(if1_reset),
    .io_if4Redirect_valid(if1_io_if4Redirect_valid),
    .io_if4Redirect_bits_target(if1_io_if4Redirect_bits_target),
    .io_cmmRedirect_valid(if1_io_cmmRedirect_valid),
    .io_cmmRedirect_bits_pc(if1_io_cmmRedirect_bits_pc),
    .io_pc_gen_ready(if1_io_pc_gen_ready),
    .io_pc_gen_valid(if1_io_pc_gen_valid),
    .io_pc_gen_bits_isActive_1(if1_io_pc_gen_bits_isActive_1),
    .io_pc_gen_bits_isActive_2(if1_io_pc_gen_bits_isActive_2),
    .io_pc_gen_bits_isActive_3(if1_io_pc_gen_bits_isActive_3),
    .io_pc_gen_bits_pc(if1_io_pc_gen_bits_pc)
  );
  IF2 if2 ( // @[rift2Core.scala 113:19]
    .clock(if2_clock),
    .reset(if2_reset),
    .io_if2_req_ready(if2_io_if2_req_ready),
    .io_if2_req_bits_isActive_1(if2_io_if2_req_bits_isActive_1),
    .io_if2_req_bits_isActive_2(if2_io_if2_req_bits_isActive_2),
    .io_if2_req_bits_isActive_3(if2_io_if2_req_bits_isActive_3),
    .io_if2_req_bits_pc(if2_io_if2_req_bits_pc),
    .io_if2_resp_0_ready(if2_io_if2_resp_0_ready),
    .io_if2_resp_0_valid(if2_io_if2_resp_0_valid),
    .io_if2_resp_0_bits_pc(if2_io_if2_resp_0_bits_pc),
    .io_if2_resp_0_bits_instr(if2_io_if2_resp_0_bits_instr),
    .io_if2_resp_0_bits_isRedirect(if2_io_if2_resp_0_bits_isRedirect),
    .io_if2_resp_1_ready(if2_io_if2_resp_1_ready),
    .io_if2_resp_1_valid(if2_io_if2_resp_1_valid),
    .io_if2_resp_1_bits_pc(if2_io_if2_resp_1_bits_pc),
    .io_if2_resp_1_bits_instr(if2_io_if2_resp_1_bits_instr),
    .io_if2_resp_1_bits_isFault(if2_io_if2_resp_1_bits_isFault),
    .io_if2_resp_1_bits_isRedirect(if2_io_if2_resp_1_bits_isRedirect),
    .io_if2_resp_2_ready(if2_io_if2_resp_2_ready),
    .io_if2_resp_2_valid(if2_io_if2_resp_2_valid),
    .io_if2_resp_2_bits_pc(if2_io_if2_resp_2_bits_pc),
    .io_if2_resp_2_bits_instr(if2_io_if2_resp_2_bits_instr),
    .io_if2_resp_2_bits_isFault(if2_io_if2_resp_2_bits_isFault),
    .io_if2_resp_2_bits_isRedirect(if2_io_if2_resp_2_bits_isRedirect),
    .io_if2_resp_3_ready(if2_io_if2_resp_3_ready),
    .io_if2_resp_3_valid(if2_io_if2_resp_3_valid),
    .io_if2_resp_3_bits_pc(if2_io_if2_resp_3_bits_pc),
    .io_if2_resp_3_bits_instr(if2_io_if2_resp_3_bits_instr),
    .io_if2_resp_3_bits_isFault(if2_io_if2_resp_3_bits_isFault),
    .io_if2_resp_3_bits_isRedirect(if2_io_if2_resp_3_bits_isRedirect),
    .io_if_mmu_ready(if2_io_if_mmu_ready),
    .io_if_mmu_bits_vaddr(if2_io_if_mmu_bits_vaddr),
    .io_mmu_if_ready(if2_io_mmu_if_ready),
    .io_mmu_if_valid(if2_io_mmu_if_valid),
    .io_mmu_if_bits_vaddr(if2_io_mmu_if_bits_vaddr),
    .io_mmu_if_bits_paddr(if2_io_mmu_if_bits_paddr),
    .io_mmu_if_bits_is_paging_fault(if2_io_mmu_if_bits_is_paging_fault),
    .io_mmu_if_bits_is_access_fault(if2_io_mmu_if_bits_is_access_fault),
    .io_if_cmm_ill_vaddr(if2_io_if_cmm_ill_vaddr),
    .io_icache_get_ready(if2_io_icache_get_ready),
    .io_icache_get_valid(if2_io_icache_get_valid),
    .io_icache_get_bits_address(if2_io_icache_get_bits_address),
    .io_icache_access_ready(if2_io_icache_access_ready),
    .io_icache_access_valid(if2_io_icache_access_valid),
    .io_icache_access_bits_opcode(if2_io_icache_access_bits_opcode),
    .io_icache_access_bits_size(if2_io_icache_access_bits_size),
    .io_icache_access_bits_data(if2_io_icache_access_bits_data),
    .io_flush(if2_io_flush),
    .io_ifence(if2_io_ifence)
  );
  IF3 if3 ( // @[rift2Core.scala 114:19]
    .clock(if3_clock),
    .reset(if3_reset),
    .io_if3_req_0_ready(if3_io_if3_req_0_ready),
    .io_if3_req_0_valid(if3_io_if3_req_0_valid),
    .io_if3_req_0_bits_pc(if3_io_if3_req_0_bits_pc),
    .io_if3_req_0_bits_instr(if3_io_if3_req_0_bits_instr),
    .io_if3_req_0_bits_isRedirect(if3_io_if3_req_0_bits_isRedirect),
    .io_if3_req_1_ready(if3_io_if3_req_1_ready),
    .io_if3_req_1_valid(if3_io_if3_req_1_valid),
    .io_if3_req_1_bits_pc(if3_io_if3_req_1_bits_pc),
    .io_if3_req_1_bits_instr(if3_io_if3_req_1_bits_instr),
    .io_if3_req_1_bits_isFault(if3_io_if3_req_1_bits_isFault),
    .io_if3_req_1_bits_isRedirect(if3_io_if3_req_1_bits_isRedirect),
    .io_if3_req_2_ready(if3_io_if3_req_2_ready),
    .io_if3_req_2_valid(if3_io_if3_req_2_valid),
    .io_if3_req_2_bits_pc(if3_io_if3_req_2_bits_pc),
    .io_if3_req_2_bits_instr(if3_io_if3_req_2_bits_instr),
    .io_if3_req_2_bits_isFault(if3_io_if3_req_2_bits_isFault),
    .io_if3_req_2_bits_isRedirect(if3_io_if3_req_2_bits_isRedirect),
    .io_if3_req_3_ready(if3_io_if3_req_3_ready),
    .io_if3_req_3_valid(if3_io_if3_req_3_valid),
    .io_if3_req_3_bits_pc(if3_io_if3_req_3_bits_pc),
    .io_if3_req_3_bits_instr(if3_io_if3_req_3_bits_instr),
    .io_if3_req_3_bits_isFault(if3_io_if3_req_3_bits_isFault),
    .io_if3_req_3_bits_isRedirect(if3_io_if3_req_3_bits_isRedirect),
    .io_if3_resp_0_ready(if3_io_if3_resp_0_ready),
    .io_if3_resp_0_valid(if3_io_if3_resp_0_valid),
    .io_if3_resp_0_bits_isRVC(if3_io_if3_resp_0_bits_isRVC),
    .io_if3_resp_0_bits_instr(if3_io_if3_resp_0_bits_instr),
    .io_if3_resp_0_bits_pc(if3_io_if3_resp_0_bits_pc),
    .io_if3_resp_0_bits_isRedirect(if3_io_if3_resp_0_bits_isRedirect),
    .io_if3_resp_0_bits_target(if3_io_if3_resp_0_bits_target),
    .io_btbResp_0_ready(if3_io_btbResp_0_ready),
    .io_btbResp_0_valid(if3_io_btbResp_0_valid),
    .io_btbResp_0_bits_target(if3_io_btbResp_0_bits_target),
    .io_bimResp_0_ready(if3_io_bimResp_0_ready),
    .io_bimResp_0_valid(if3_io_bimResp_0_valid),
    .io_bimResp_0_bits_bim_p(if3_io_bimResp_0_bits_bim_p),
    .io_bimResp_0_bits_bim_h(if3_io_bimResp_0_bits_bim_h),
    .io_jcmm_update_valid(if3_io_jcmm_update_valid),
    .io_jcmm_update_bits_pc(if3_io_jcmm_update_bits_pc),
    .io_jcmm_update_bits_finalTarget(if3_io_jcmm_update_bits_finalTarget),
    .io_bcmm_update_valid(if3_io_bcmm_update_valid),
    .io_bcmm_update_bits_pc(if3_io_bcmm_update_bits_pc),
    .io_bcmm_update_bits_bimResp_bim_p(if3_io_bcmm_update_bits_bimResp_bim_p),
    .io_bcmm_update_bits_bimResp_bim_h(if3_io_bcmm_update_bits_bimResp_bim_h),
    .io_bcmm_update_bits_isFinalTaken(if3_io_bcmm_update_bits_isFinalTaken),
    .io_if4Redirect_valid(if3_io_if4Redirect_valid),
    .io_flush(if3_io_flush)
  );
  IF4 if4 ( // @[rift2Core.scala 115:19]
    .clock(if4_clock),
    .reset(if4_reset),
    .io_if4_req_0_ready(if4_io_if4_req_0_ready),
    .io_if4_req_0_valid(if4_io_if4_req_0_valid),
    .io_if4_req_0_bits_isRVC(if4_io_if4_req_0_bits_isRVC),
    .io_if4_req_0_bits_instr(if4_io_if4_req_0_bits_instr),
    .io_if4_req_0_bits_pc(if4_io_if4_req_0_bits_pc),
    .io_if4_req_0_bits_isRedirect(if4_io_if4_req_0_bits_isRedirect),
    .io_if4_req_0_bits_target(if4_io_if4_req_0_bits_target),
    .io_btbResp_0_ready(if4_io_btbResp_0_ready),
    .io_btbResp_0_valid(if4_io_btbResp_0_valid),
    .io_btbResp_0_bits_target(if4_io_btbResp_0_bits_target),
    .io_bimResp_0_ready(if4_io_bimResp_0_ready),
    .io_bimResp_0_valid(if4_io_bimResp_0_valid),
    .io_bimResp_0_bits_bim_p(if4_io_bimResp_0_bits_bim_p),
    .io_bimResp_0_bits_bim_h(if4_io_bimResp_0_bits_bim_h),
    .io_if4_resp_0_ready(if4_io_if4_resp_0_ready),
    .io_if4_resp_0_valid(if4_io_if4_resp_0_valid),
    .io_if4_resp_0_bits_alu_isa_lui(if4_io_if4_resp_0_bits_alu_isa_lui),
    .io_if4_resp_0_bits_alu_isa_auipc(if4_io_if4_resp_0_bits_alu_isa_auipc),
    .io_if4_resp_0_bits_alu_isa_addi(if4_io_if4_resp_0_bits_alu_isa_addi),
    .io_if4_resp_0_bits_alu_isa_addiw(if4_io_if4_resp_0_bits_alu_isa_addiw),
    .io_if4_resp_0_bits_alu_isa_slti(if4_io_if4_resp_0_bits_alu_isa_slti),
    .io_if4_resp_0_bits_alu_isa_sltiu(if4_io_if4_resp_0_bits_alu_isa_sltiu),
    .io_if4_resp_0_bits_alu_isa_xori(if4_io_if4_resp_0_bits_alu_isa_xori),
    .io_if4_resp_0_bits_alu_isa_ori(if4_io_if4_resp_0_bits_alu_isa_ori),
    .io_if4_resp_0_bits_alu_isa_andi(if4_io_if4_resp_0_bits_alu_isa_andi),
    .io_if4_resp_0_bits_alu_isa_slli(if4_io_if4_resp_0_bits_alu_isa_slli),
    .io_if4_resp_0_bits_alu_isa_slliw(if4_io_if4_resp_0_bits_alu_isa_slliw),
    .io_if4_resp_0_bits_alu_isa_srli(if4_io_if4_resp_0_bits_alu_isa_srli),
    .io_if4_resp_0_bits_alu_isa_srliw(if4_io_if4_resp_0_bits_alu_isa_srliw),
    .io_if4_resp_0_bits_alu_isa_srai(if4_io_if4_resp_0_bits_alu_isa_srai),
    .io_if4_resp_0_bits_alu_isa_sraiw(if4_io_if4_resp_0_bits_alu_isa_sraiw),
    .io_if4_resp_0_bits_alu_isa_add(if4_io_if4_resp_0_bits_alu_isa_add),
    .io_if4_resp_0_bits_alu_isa_addw(if4_io_if4_resp_0_bits_alu_isa_addw),
    .io_if4_resp_0_bits_alu_isa_sub(if4_io_if4_resp_0_bits_alu_isa_sub),
    .io_if4_resp_0_bits_alu_isa_subw(if4_io_if4_resp_0_bits_alu_isa_subw),
    .io_if4_resp_0_bits_alu_isa_sll(if4_io_if4_resp_0_bits_alu_isa_sll),
    .io_if4_resp_0_bits_alu_isa_sllw(if4_io_if4_resp_0_bits_alu_isa_sllw),
    .io_if4_resp_0_bits_alu_isa_slt(if4_io_if4_resp_0_bits_alu_isa_slt),
    .io_if4_resp_0_bits_alu_isa_sltu(if4_io_if4_resp_0_bits_alu_isa_sltu),
    .io_if4_resp_0_bits_alu_isa_xor(if4_io_if4_resp_0_bits_alu_isa_xor),
    .io_if4_resp_0_bits_alu_isa_srl(if4_io_if4_resp_0_bits_alu_isa_srl),
    .io_if4_resp_0_bits_alu_isa_srlw(if4_io_if4_resp_0_bits_alu_isa_srlw),
    .io_if4_resp_0_bits_alu_isa_sra(if4_io_if4_resp_0_bits_alu_isa_sra),
    .io_if4_resp_0_bits_alu_isa_sraw(if4_io_if4_resp_0_bits_alu_isa_sraw),
    .io_if4_resp_0_bits_alu_isa_or(if4_io_if4_resp_0_bits_alu_isa_or),
    .io_if4_resp_0_bits_alu_isa_and(if4_io_if4_resp_0_bits_alu_isa_and),
    .io_if4_resp_0_bits_alu_isa_wfi(if4_io_if4_resp_0_bits_alu_isa_wfi),
    .io_if4_resp_0_bits_bru_isa_jal(if4_io_if4_resp_0_bits_bru_isa_jal),
    .io_if4_resp_0_bits_bru_isa_jalr(if4_io_if4_resp_0_bits_bru_isa_jalr),
    .io_if4_resp_0_bits_bru_isa_beq(if4_io_if4_resp_0_bits_bru_isa_beq),
    .io_if4_resp_0_bits_bru_isa_bne(if4_io_if4_resp_0_bits_bru_isa_bne),
    .io_if4_resp_0_bits_bru_isa_blt(if4_io_if4_resp_0_bits_bru_isa_blt),
    .io_if4_resp_0_bits_bru_isa_bge(if4_io_if4_resp_0_bits_bru_isa_bge),
    .io_if4_resp_0_bits_bru_isa_bltu(if4_io_if4_resp_0_bits_bru_isa_bltu),
    .io_if4_resp_0_bits_bru_isa_bgeu(if4_io_if4_resp_0_bits_bru_isa_bgeu),
    .io_if4_resp_0_bits_lsu_isa_lb(if4_io_if4_resp_0_bits_lsu_isa_lb),
    .io_if4_resp_0_bits_lsu_isa_lh(if4_io_if4_resp_0_bits_lsu_isa_lh),
    .io_if4_resp_0_bits_lsu_isa_lw(if4_io_if4_resp_0_bits_lsu_isa_lw),
    .io_if4_resp_0_bits_lsu_isa_ld(if4_io_if4_resp_0_bits_lsu_isa_ld),
    .io_if4_resp_0_bits_lsu_isa_lbu(if4_io_if4_resp_0_bits_lsu_isa_lbu),
    .io_if4_resp_0_bits_lsu_isa_lhu(if4_io_if4_resp_0_bits_lsu_isa_lhu),
    .io_if4_resp_0_bits_lsu_isa_lwu(if4_io_if4_resp_0_bits_lsu_isa_lwu),
    .io_if4_resp_0_bits_lsu_isa_sb(if4_io_if4_resp_0_bits_lsu_isa_sb),
    .io_if4_resp_0_bits_lsu_isa_sh(if4_io_if4_resp_0_bits_lsu_isa_sh),
    .io_if4_resp_0_bits_lsu_isa_sw(if4_io_if4_resp_0_bits_lsu_isa_sw),
    .io_if4_resp_0_bits_lsu_isa_sd(if4_io_if4_resp_0_bits_lsu_isa_sd),
    .io_if4_resp_0_bits_lsu_isa_fence(if4_io_if4_resp_0_bits_lsu_isa_fence),
    .io_if4_resp_0_bits_lsu_isa_fence_i(if4_io_if4_resp_0_bits_lsu_isa_fence_i),
    .io_if4_resp_0_bits_lsu_isa_sfence_vma(if4_io_if4_resp_0_bits_lsu_isa_sfence_vma),
    .io_if4_resp_0_bits_lsu_isa_lr_w(if4_io_if4_resp_0_bits_lsu_isa_lr_w),
    .io_if4_resp_0_bits_lsu_isa_sc_w(if4_io_if4_resp_0_bits_lsu_isa_sc_w),
    .io_if4_resp_0_bits_lsu_isa_amoswap_w(if4_io_if4_resp_0_bits_lsu_isa_amoswap_w),
    .io_if4_resp_0_bits_lsu_isa_amoadd_w(if4_io_if4_resp_0_bits_lsu_isa_amoadd_w),
    .io_if4_resp_0_bits_lsu_isa_amoxor_w(if4_io_if4_resp_0_bits_lsu_isa_amoxor_w),
    .io_if4_resp_0_bits_lsu_isa_amoand_w(if4_io_if4_resp_0_bits_lsu_isa_amoand_w),
    .io_if4_resp_0_bits_lsu_isa_amoor_w(if4_io_if4_resp_0_bits_lsu_isa_amoor_w),
    .io_if4_resp_0_bits_lsu_isa_amomin_w(if4_io_if4_resp_0_bits_lsu_isa_amomin_w),
    .io_if4_resp_0_bits_lsu_isa_amomax_w(if4_io_if4_resp_0_bits_lsu_isa_amomax_w),
    .io_if4_resp_0_bits_lsu_isa_amominu_w(if4_io_if4_resp_0_bits_lsu_isa_amominu_w),
    .io_if4_resp_0_bits_lsu_isa_amomaxu_w(if4_io_if4_resp_0_bits_lsu_isa_amomaxu_w),
    .io_if4_resp_0_bits_lsu_isa_lr_d(if4_io_if4_resp_0_bits_lsu_isa_lr_d),
    .io_if4_resp_0_bits_lsu_isa_sc_d(if4_io_if4_resp_0_bits_lsu_isa_sc_d),
    .io_if4_resp_0_bits_lsu_isa_amoswap_d(if4_io_if4_resp_0_bits_lsu_isa_amoswap_d),
    .io_if4_resp_0_bits_lsu_isa_amoadd_d(if4_io_if4_resp_0_bits_lsu_isa_amoadd_d),
    .io_if4_resp_0_bits_lsu_isa_amoxor_d(if4_io_if4_resp_0_bits_lsu_isa_amoxor_d),
    .io_if4_resp_0_bits_lsu_isa_amoand_d(if4_io_if4_resp_0_bits_lsu_isa_amoand_d),
    .io_if4_resp_0_bits_lsu_isa_amoor_d(if4_io_if4_resp_0_bits_lsu_isa_amoor_d),
    .io_if4_resp_0_bits_lsu_isa_amomin_d(if4_io_if4_resp_0_bits_lsu_isa_amomin_d),
    .io_if4_resp_0_bits_lsu_isa_amomax_d(if4_io_if4_resp_0_bits_lsu_isa_amomax_d),
    .io_if4_resp_0_bits_lsu_isa_amominu_d(if4_io_if4_resp_0_bits_lsu_isa_amominu_d),
    .io_if4_resp_0_bits_lsu_isa_amomaxu_d(if4_io_if4_resp_0_bits_lsu_isa_amomaxu_d),
    .io_if4_resp_0_bits_lsu_isa_flw(if4_io_if4_resp_0_bits_lsu_isa_flw),
    .io_if4_resp_0_bits_lsu_isa_fsw(if4_io_if4_resp_0_bits_lsu_isa_fsw),
    .io_if4_resp_0_bits_lsu_isa_fld(if4_io_if4_resp_0_bits_lsu_isa_fld),
    .io_if4_resp_0_bits_lsu_isa_fsd(if4_io_if4_resp_0_bits_lsu_isa_fsd),
    .io_if4_resp_0_bits_csr_isa_rw(if4_io_if4_resp_0_bits_csr_isa_rw),
    .io_if4_resp_0_bits_csr_isa_rs(if4_io_if4_resp_0_bits_csr_isa_rs),
    .io_if4_resp_0_bits_csr_isa_rc(if4_io_if4_resp_0_bits_csr_isa_rc),
    .io_if4_resp_0_bits_csr_isa_rwi(if4_io_if4_resp_0_bits_csr_isa_rwi),
    .io_if4_resp_0_bits_csr_isa_rsi(if4_io_if4_resp_0_bits_csr_isa_rsi),
    .io_if4_resp_0_bits_csr_isa_rci(if4_io_if4_resp_0_bits_csr_isa_rci),
    .io_if4_resp_0_bits_mul_isa_mul(if4_io_if4_resp_0_bits_mul_isa_mul),
    .io_if4_resp_0_bits_mul_isa_mulh(if4_io_if4_resp_0_bits_mul_isa_mulh),
    .io_if4_resp_0_bits_mul_isa_mulhsu(if4_io_if4_resp_0_bits_mul_isa_mulhsu),
    .io_if4_resp_0_bits_mul_isa_mulhu(if4_io_if4_resp_0_bits_mul_isa_mulhu),
    .io_if4_resp_0_bits_mul_isa_div(if4_io_if4_resp_0_bits_mul_isa_div),
    .io_if4_resp_0_bits_mul_isa_divu(if4_io_if4_resp_0_bits_mul_isa_divu),
    .io_if4_resp_0_bits_mul_isa_rem(if4_io_if4_resp_0_bits_mul_isa_rem),
    .io_if4_resp_0_bits_mul_isa_remu(if4_io_if4_resp_0_bits_mul_isa_remu),
    .io_if4_resp_0_bits_mul_isa_mulw(if4_io_if4_resp_0_bits_mul_isa_mulw),
    .io_if4_resp_0_bits_mul_isa_divw(if4_io_if4_resp_0_bits_mul_isa_divw),
    .io_if4_resp_0_bits_mul_isa_divuw(if4_io_if4_resp_0_bits_mul_isa_divuw),
    .io_if4_resp_0_bits_mul_isa_remw(if4_io_if4_resp_0_bits_mul_isa_remw),
    .io_if4_resp_0_bits_mul_isa_remuw(if4_io_if4_resp_0_bits_mul_isa_remuw),
    .io_if4_resp_0_bits_privil_isa_ecall(if4_io_if4_resp_0_bits_privil_isa_ecall),
    .io_if4_resp_0_bits_privil_isa_ebreak(if4_io_if4_resp_0_bits_privil_isa_ebreak),
    .io_if4_resp_0_bits_privil_isa_mret(if4_io_if4_resp_0_bits_privil_isa_mret),
    .io_if4_resp_0_bits_privil_isa_uret(if4_io_if4_resp_0_bits_privil_isa_uret),
    .io_if4_resp_0_bits_privil_isa_sret(if4_io_if4_resp_0_bits_privil_isa_sret),
    .io_if4_resp_0_bits_privil_isa_dret(if4_io_if4_resp_0_bits_privil_isa_dret),
    .io_if4_resp_0_bits_privil_isa_hfence_vvma(if4_io_if4_resp_0_bits_privil_isa_hfence_vvma),
    .io_if4_resp_0_bits_privil_isa_hfence_gvma(if4_io_if4_resp_0_bits_privil_isa_hfence_gvma),
    .io_if4_resp_0_bits_privil_isa_hlv_b(if4_io_if4_resp_0_bits_privil_isa_hlv_b),
    .io_if4_resp_0_bits_privil_isa_hlv_bu(if4_io_if4_resp_0_bits_privil_isa_hlv_bu),
    .io_if4_resp_0_bits_privil_isa_hlv_h(if4_io_if4_resp_0_bits_privil_isa_hlv_h),
    .io_if4_resp_0_bits_privil_isa_hlv_hu(if4_io_if4_resp_0_bits_privil_isa_hlv_hu),
    .io_if4_resp_0_bits_privil_isa_hlvx_hu(if4_io_if4_resp_0_bits_privil_isa_hlvx_hu),
    .io_if4_resp_0_bits_privil_isa_hlv_w(if4_io_if4_resp_0_bits_privil_isa_hlv_w),
    .io_if4_resp_0_bits_privil_isa_hlvx_wu(if4_io_if4_resp_0_bits_privil_isa_hlvx_wu),
    .io_if4_resp_0_bits_privil_isa_hsv_b(if4_io_if4_resp_0_bits_privil_isa_hsv_b),
    .io_if4_resp_0_bits_privil_isa_hsv_h(if4_io_if4_resp_0_bits_privil_isa_hsv_h),
    .io_if4_resp_0_bits_privil_isa_hsv_w(if4_io_if4_resp_0_bits_privil_isa_hsv_w),
    .io_if4_resp_0_bits_privil_isa_hlv_wu(if4_io_if4_resp_0_bits_privil_isa_hlv_wu),
    .io_if4_resp_0_bits_privil_isa_hlv_d(if4_io_if4_resp_0_bits_privil_isa_hlv_d),
    .io_if4_resp_0_bits_privil_isa_hsv_d(if4_io_if4_resp_0_bits_privil_isa_hsv_d),
    .io_if4_resp_0_bits_privil_isa_is_access_fault(if4_io_if4_resp_0_bits_privil_isa_is_access_fault),
    .io_if4_resp_0_bits_privil_isa_is_paging_fault(if4_io_if4_resp_0_bits_privil_isa_is_paging_fault),
    .io_if4_resp_0_bits_fpu_isa_fmadd_s(if4_io_if4_resp_0_bits_fpu_isa_fmadd_s),
    .io_if4_resp_0_bits_fpu_isa_fmsub_s(if4_io_if4_resp_0_bits_fpu_isa_fmsub_s),
    .io_if4_resp_0_bits_fpu_isa_fnmsub_s(if4_io_if4_resp_0_bits_fpu_isa_fnmsub_s),
    .io_if4_resp_0_bits_fpu_isa_fnmadd_s(if4_io_if4_resp_0_bits_fpu_isa_fnmadd_s),
    .io_if4_resp_0_bits_fpu_isa_fadd_s(if4_io_if4_resp_0_bits_fpu_isa_fadd_s),
    .io_if4_resp_0_bits_fpu_isa_fsub_s(if4_io_if4_resp_0_bits_fpu_isa_fsub_s),
    .io_if4_resp_0_bits_fpu_isa_fmul_s(if4_io_if4_resp_0_bits_fpu_isa_fmul_s),
    .io_if4_resp_0_bits_fpu_isa_fdiv_s(if4_io_if4_resp_0_bits_fpu_isa_fdiv_s),
    .io_if4_resp_0_bits_fpu_isa_fsqrt_s(if4_io_if4_resp_0_bits_fpu_isa_fsqrt_s),
    .io_if4_resp_0_bits_fpu_isa_fsgnj_s(if4_io_if4_resp_0_bits_fpu_isa_fsgnj_s),
    .io_if4_resp_0_bits_fpu_isa_fsgnjn_s(if4_io_if4_resp_0_bits_fpu_isa_fsgnjn_s),
    .io_if4_resp_0_bits_fpu_isa_fsgnjx_s(if4_io_if4_resp_0_bits_fpu_isa_fsgnjx_s),
    .io_if4_resp_0_bits_fpu_isa_fmin_s(if4_io_if4_resp_0_bits_fpu_isa_fmin_s),
    .io_if4_resp_0_bits_fpu_isa_fmax_s(if4_io_if4_resp_0_bits_fpu_isa_fmax_s),
    .io_if4_resp_0_bits_fpu_isa_fcvt_w_s(if4_io_if4_resp_0_bits_fpu_isa_fcvt_w_s),
    .io_if4_resp_0_bits_fpu_isa_fcvt_wu_s(if4_io_if4_resp_0_bits_fpu_isa_fcvt_wu_s),
    .io_if4_resp_0_bits_fpu_isa_fmv_x_w(if4_io_if4_resp_0_bits_fpu_isa_fmv_x_w),
    .io_if4_resp_0_bits_fpu_isa_feq_s(if4_io_if4_resp_0_bits_fpu_isa_feq_s),
    .io_if4_resp_0_bits_fpu_isa_flt_s(if4_io_if4_resp_0_bits_fpu_isa_flt_s),
    .io_if4_resp_0_bits_fpu_isa_fle_s(if4_io_if4_resp_0_bits_fpu_isa_fle_s),
    .io_if4_resp_0_bits_fpu_isa_fclass_s(if4_io_if4_resp_0_bits_fpu_isa_fclass_s),
    .io_if4_resp_0_bits_fpu_isa_fcvt_s_w(if4_io_if4_resp_0_bits_fpu_isa_fcvt_s_w),
    .io_if4_resp_0_bits_fpu_isa_fcvt_s_wu(if4_io_if4_resp_0_bits_fpu_isa_fcvt_s_wu),
    .io_if4_resp_0_bits_fpu_isa_fmv_w_x(if4_io_if4_resp_0_bits_fpu_isa_fmv_w_x),
    .io_if4_resp_0_bits_fpu_isa_fcvt_l_s(if4_io_if4_resp_0_bits_fpu_isa_fcvt_l_s),
    .io_if4_resp_0_bits_fpu_isa_fcvt_lu_s(if4_io_if4_resp_0_bits_fpu_isa_fcvt_lu_s),
    .io_if4_resp_0_bits_fpu_isa_fcvt_s_l(if4_io_if4_resp_0_bits_fpu_isa_fcvt_s_l),
    .io_if4_resp_0_bits_fpu_isa_fcvt_s_lu(if4_io_if4_resp_0_bits_fpu_isa_fcvt_s_lu),
    .io_if4_resp_0_bits_fpu_isa_fmadd_d(if4_io_if4_resp_0_bits_fpu_isa_fmadd_d),
    .io_if4_resp_0_bits_fpu_isa_fmsub_d(if4_io_if4_resp_0_bits_fpu_isa_fmsub_d),
    .io_if4_resp_0_bits_fpu_isa_fnmsub_d(if4_io_if4_resp_0_bits_fpu_isa_fnmsub_d),
    .io_if4_resp_0_bits_fpu_isa_fnmadd_d(if4_io_if4_resp_0_bits_fpu_isa_fnmadd_d),
    .io_if4_resp_0_bits_fpu_isa_fadd_d(if4_io_if4_resp_0_bits_fpu_isa_fadd_d),
    .io_if4_resp_0_bits_fpu_isa_fsub_d(if4_io_if4_resp_0_bits_fpu_isa_fsub_d),
    .io_if4_resp_0_bits_fpu_isa_fmul_d(if4_io_if4_resp_0_bits_fpu_isa_fmul_d),
    .io_if4_resp_0_bits_fpu_isa_fdiv_d(if4_io_if4_resp_0_bits_fpu_isa_fdiv_d),
    .io_if4_resp_0_bits_fpu_isa_fsqrt_d(if4_io_if4_resp_0_bits_fpu_isa_fsqrt_d),
    .io_if4_resp_0_bits_fpu_isa_fsgnj_d(if4_io_if4_resp_0_bits_fpu_isa_fsgnj_d),
    .io_if4_resp_0_bits_fpu_isa_fsgnjn_d(if4_io_if4_resp_0_bits_fpu_isa_fsgnjn_d),
    .io_if4_resp_0_bits_fpu_isa_fsgnjx_d(if4_io_if4_resp_0_bits_fpu_isa_fsgnjx_d),
    .io_if4_resp_0_bits_fpu_isa_fmin_d(if4_io_if4_resp_0_bits_fpu_isa_fmin_d),
    .io_if4_resp_0_bits_fpu_isa_fmax_d(if4_io_if4_resp_0_bits_fpu_isa_fmax_d),
    .io_if4_resp_0_bits_fpu_isa_fcvt_s_d(if4_io_if4_resp_0_bits_fpu_isa_fcvt_s_d),
    .io_if4_resp_0_bits_fpu_isa_fcvt_d_s(if4_io_if4_resp_0_bits_fpu_isa_fcvt_d_s),
    .io_if4_resp_0_bits_fpu_isa_feq_d(if4_io_if4_resp_0_bits_fpu_isa_feq_d),
    .io_if4_resp_0_bits_fpu_isa_flt_d(if4_io_if4_resp_0_bits_fpu_isa_flt_d),
    .io_if4_resp_0_bits_fpu_isa_fle_d(if4_io_if4_resp_0_bits_fpu_isa_fle_d),
    .io_if4_resp_0_bits_fpu_isa_fclass_d(if4_io_if4_resp_0_bits_fpu_isa_fclass_d),
    .io_if4_resp_0_bits_fpu_isa_fcvt_w_d(if4_io_if4_resp_0_bits_fpu_isa_fcvt_w_d),
    .io_if4_resp_0_bits_fpu_isa_fcvt_wu_d(if4_io_if4_resp_0_bits_fpu_isa_fcvt_wu_d),
    .io_if4_resp_0_bits_fpu_isa_fcvt_d_w(if4_io_if4_resp_0_bits_fpu_isa_fcvt_d_w),
    .io_if4_resp_0_bits_fpu_isa_fcvt_d_wu(if4_io_if4_resp_0_bits_fpu_isa_fcvt_d_wu),
    .io_if4_resp_0_bits_fpu_isa_fcvt_l_d(if4_io_if4_resp_0_bits_fpu_isa_fcvt_l_d),
    .io_if4_resp_0_bits_fpu_isa_fcvt_lu_d(if4_io_if4_resp_0_bits_fpu_isa_fcvt_lu_d),
    .io_if4_resp_0_bits_fpu_isa_fmv_x_d(if4_io_if4_resp_0_bits_fpu_isa_fmv_x_d),
    .io_if4_resp_0_bits_fpu_isa_fcvt_d_l(if4_io_if4_resp_0_bits_fpu_isa_fcvt_d_l),
    .io_if4_resp_0_bits_fpu_isa_fcvt_d_lu(if4_io_if4_resp_0_bits_fpu_isa_fcvt_d_lu),
    .io_if4_resp_0_bits_fpu_isa_fmv_d_x(if4_io_if4_resp_0_bits_fpu_isa_fmv_d_x),
    .io_if4_resp_0_bits_fpu_isa_fcsr_rw(if4_io_if4_resp_0_bits_fpu_isa_fcsr_rw),
    .io_if4_resp_0_bits_fpu_isa_fcsr_rs(if4_io_if4_resp_0_bits_fpu_isa_fcsr_rs),
    .io_if4_resp_0_bits_fpu_isa_fcsr_rc(if4_io_if4_resp_0_bits_fpu_isa_fcsr_rc),
    .io_if4_resp_0_bits_fpu_isa_fcsr_rwi(if4_io_if4_resp_0_bits_fpu_isa_fcsr_rwi),
    .io_if4_resp_0_bits_fpu_isa_fcsr_rsi(if4_io_if4_resp_0_bits_fpu_isa_fcsr_rsi),
    .io_if4_resp_0_bits_fpu_isa_fcsr_rci(if4_io_if4_resp_0_bits_fpu_isa_fcsr_rci),
    .io_if4_resp_0_bits_param_is_rvc(if4_io_if4_resp_0_bits_param_is_rvc),
    .io_if4_resp_0_bits_param_pc(if4_io_if4_resp_0_bits_param_pc),
    .io_if4_resp_0_bits_param_imm(if4_io_if4_resp_0_bits_param_imm),
    .io_if4_resp_0_bits_param_raw_rs1(if4_io_if4_resp_0_bits_param_raw_rs1),
    .io_if4_resp_0_bits_param_raw_rs2(if4_io_if4_resp_0_bits_param_raw_rs2),
    .io_if4_resp_0_bits_param_raw_rd0(if4_io_if4_resp_0_bits_param_raw_rd0),
    .io_if4Redirect_valid(if4_io_if4Redirect_valid),
    .io_if4Redirect_bits_target(if4_io_if4Redirect_bits_target),
    .io_bftq_ready(if4_io_bftq_ready),
    .io_bftq_valid(if4_io_bftq_valid),
    .io_bftq_bits_pc(if4_io_bftq_bits_pc),
    .io_bftq_bits_bimResp_bim_p(if4_io_bftq_bits_bimResp_bim_p),
    .io_bftq_bits_bimResp_bim_h(if4_io_bftq_bits_bimResp_bim_h),
    .io_bftq_bits_isPredictTaken(if4_io_bftq_bits_isPredictTaken),
    .io_jftq_ready(if4_io_jftq_ready),
    .io_jftq_valid(if4_io_jftq_valid),
    .io_jftq_bits_pc(if4_io_jftq_bits_pc),
    .io_jftq_bits_btbResp_target(if4_io_jftq_bits_btbResp_target),
    .io_jftq_bits_rasResp_target(if4_io_jftq_bits_rasResp_target),
    .io_jftq_bits_isRas(if4_io_jftq_bits_isRas),
    .io_flush(if4_io_flush)
  );
  Rename rnm_stage ( // @[rift2Core.scala 138:21]
    .clock(rnm_stage_clock),
    .reset(rnm_stage_reset),
    .io_rnReq_0_ready(rnm_stage_io_rnReq_0_ready),
    .io_rnReq_0_valid(rnm_stage_io_rnReq_0_valid),
    .io_rnReq_0_bits_alu_isa_lui(rnm_stage_io_rnReq_0_bits_alu_isa_lui),
    .io_rnReq_0_bits_alu_isa_auipc(rnm_stage_io_rnReq_0_bits_alu_isa_auipc),
    .io_rnReq_0_bits_alu_isa_addi(rnm_stage_io_rnReq_0_bits_alu_isa_addi),
    .io_rnReq_0_bits_alu_isa_addiw(rnm_stage_io_rnReq_0_bits_alu_isa_addiw),
    .io_rnReq_0_bits_alu_isa_slti(rnm_stage_io_rnReq_0_bits_alu_isa_slti),
    .io_rnReq_0_bits_alu_isa_sltiu(rnm_stage_io_rnReq_0_bits_alu_isa_sltiu),
    .io_rnReq_0_bits_alu_isa_xori(rnm_stage_io_rnReq_0_bits_alu_isa_xori),
    .io_rnReq_0_bits_alu_isa_ori(rnm_stage_io_rnReq_0_bits_alu_isa_ori),
    .io_rnReq_0_bits_alu_isa_andi(rnm_stage_io_rnReq_0_bits_alu_isa_andi),
    .io_rnReq_0_bits_alu_isa_slli(rnm_stage_io_rnReq_0_bits_alu_isa_slli),
    .io_rnReq_0_bits_alu_isa_slliw(rnm_stage_io_rnReq_0_bits_alu_isa_slliw),
    .io_rnReq_0_bits_alu_isa_srli(rnm_stage_io_rnReq_0_bits_alu_isa_srli),
    .io_rnReq_0_bits_alu_isa_srliw(rnm_stage_io_rnReq_0_bits_alu_isa_srliw),
    .io_rnReq_0_bits_alu_isa_srai(rnm_stage_io_rnReq_0_bits_alu_isa_srai),
    .io_rnReq_0_bits_alu_isa_sraiw(rnm_stage_io_rnReq_0_bits_alu_isa_sraiw),
    .io_rnReq_0_bits_alu_isa_add(rnm_stage_io_rnReq_0_bits_alu_isa_add),
    .io_rnReq_0_bits_alu_isa_addw(rnm_stage_io_rnReq_0_bits_alu_isa_addw),
    .io_rnReq_0_bits_alu_isa_sub(rnm_stage_io_rnReq_0_bits_alu_isa_sub),
    .io_rnReq_0_bits_alu_isa_subw(rnm_stage_io_rnReq_0_bits_alu_isa_subw),
    .io_rnReq_0_bits_alu_isa_sll(rnm_stage_io_rnReq_0_bits_alu_isa_sll),
    .io_rnReq_0_bits_alu_isa_sllw(rnm_stage_io_rnReq_0_bits_alu_isa_sllw),
    .io_rnReq_0_bits_alu_isa_slt(rnm_stage_io_rnReq_0_bits_alu_isa_slt),
    .io_rnReq_0_bits_alu_isa_sltu(rnm_stage_io_rnReq_0_bits_alu_isa_sltu),
    .io_rnReq_0_bits_alu_isa_xor(rnm_stage_io_rnReq_0_bits_alu_isa_xor),
    .io_rnReq_0_bits_alu_isa_srl(rnm_stage_io_rnReq_0_bits_alu_isa_srl),
    .io_rnReq_0_bits_alu_isa_srlw(rnm_stage_io_rnReq_0_bits_alu_isa_srlw),
    .io_rnReq_0_bits_alu_isa_sra(rnm_stage_io_rnReq_0_bits_alu_isa_sra),
    .io_rnReq_0_bits_alu_isa_sraw(rnm_stage_io_rnReq_0_bits_alu_isa_sraw),
    .io_rnReq_0_bits_alu_isa_or(rnm_stage_io_rnReq_0_bits_alu_isa_or),
    .io_rnReq_0_bits_alu_isa_and(rnm_stage_io_rnReq_0_bits_alu_isa_and),
    .io_rnReq_0_bits_alu_isa_wfi(rnm_stage_io_rnReq_0_bits_alu_isa_wfi),
    .io_rnReq_0_bits_bru_isa_jal(rnm_stage_io_rnReq_0_bits_bru_isa_jal),
    .io_rnReq_0_bits_bru_isa_jalr(rnm_stage_io_rnReq_0_bits_bru_isa_jalr),
    .io_rnReq_0_bits_bru_isa_beq(rnm_stage_io_rnReq_0_bits_bru_isa_beq),
    .io_rnReq_0_bits_bru_isa_bne(rnm_stage_io_rnReq_0_bits_bru_isa_bne),
    .io_rnReq_0_bits_bru_isa_blt(rnm_stage_io_rnReq_0_bits_bru_isa_blt),
    .io_rnReq_0_bits_bru_isa_bge(rnm_stage_io_rnReq_0_bits_bru_isa_bge),
    .io_rnReq_0_bits_bru_isa_bltu(rnm_stage_io_rnReq_0_bits_bru_isa_bltu),
    .io_rnReq_0_bits_bru_isa_bgeu(rnm_stage_io_rnReq_0_bits_bru_isa_bgeu),
    .io_rnReq_0_bits_lsu_isa_lb(rnm_stage_io_rnReq_0_bits_lsu_isa_lb),
    .io_rnReq_0_bits_lsu_isa_lh(rnm_stage_io_rnReq_0_bits_lsu_isa_lh),
    .io_rnReq_0_bits_lsu_isa_lw(rnm_stage_io_rnReq_0_bits_lsu_isa_lw),
    .io_rnReq_0_bits_lsu_isa_ld(rnm_stage_io_rnReq_0_bits_lsu_isa_ld),
    .io_rnReq_0_bits_lsu_isa_lbu(rnm_stage_io_rnReq_0_bits_lsu_isa_lbu),
    .io_rnReq_0_bits_lsu_isa_lhu(rnm_stage_io_rnReq_0_bits_lsu_isa_lhu),
    .io_rnReq_0_bits_lsu_isa_lwu(rnm_stage_io_rnReq_0_bits_lsu_isa_lwu),
    .io_rnReq_0_bits_lsu_isa_sb(rnm_stage_io_rnReq_0_bits_lsu_isa_sb),
    .io_rnReq_0_bits_lsu_isa_sh(rnm_stage_io_rnReq_0_bits_lsu_isa_sh),
    .io_rnReq_0_bits_lsu_isa_sw(rnm_stage_io_rnReq_0_bits_lsu_isa_sw),
    .io_rnReq_0_bits_lsu_isa_sd(rnm_stage_io_rnReq_0_bits_lsu_isa_sd),
    .io_rnReq_0_bits_lsu_isa_fence(rnm_stage_io_rnReq_0_bits_lsu_isa_fence),
    .io_rnReq_0_bits_lsu_isa_fence_i(rnm_stage_io_rnReq_0_bits_lsu_isa_fence_i),
    .io_rnReq_0_bits_lsu_isa_sfence_vma(rnm_stage_io_rnReq_0_bits_lsu_isa_sfence_vma),
    .io_rnReq_0_bits_lsu_isa_lr_w(rnm_stage_io_rnReq_0_bits_lsu_isa_lr_w),
    .io_rnReq_0_bits_lsu_isa_sc_w(rnm_stage_io_rnReq_0_bits_lsu_isa_sc_w),
    .io_rnReq_0_bits_lsu_isa_amoswap_w(rnm_stage_io_rnReq_0_bits_lsu_isa_amoswap_w),
    .io_rnReq_0_bits_lsu_isa_amoadd_w(rnm_stage_io_rnReq_0_bits_lsu_isa_amoadd_w),
    .io_rnReq_0_bits_lsu_isa_amoxor_w(rnm_stage_io_rnReq_0_bits_lsu_isa_amoxor_w),
    .io_rnReq_0_bits_lsu_isa_amoand_w(rnm_stage_io_rnReq_0_bits_lsu_isa_amoand_w),
    .io_rnReq_0_bits_lsu_isa_amoor_w(rnm_stage_io_rnReq_0_bits_lsu_isa_amoor_w),
    .io_rnReq_0_bits_lsu_isa_amomin_w(rnm_stage_io_rnReq_0_bits_lsu_isa_amomin_w),
    .io_rnReq_0_bits_lsu_isa_amomax_w(rnm_stage_io_rnReq_0_bits_lsu_isa_amomax_w),
    .io_rnReq_0_bits_lsu_isa_amominu_w(rnm_stage_io_rnReq_0_bits_lsu_isa_amominu_w),
    .io_rnReq_0_bits_lsu_isa_amomaxu_w(rnm_stage_io_rnReq_0_bits_lsu_isa_amomaxu_w),
    .io_rnReq_0_bits_lsu_isa_lr_d(rnm_stage_io_rnReq_0_bits_lsu_isa_lr_d),
    .io_rnReq_0_bits_lsu_isa_sc_d(rnm_stage_io_rnReq_0_bits_lsu_isa_sc_d),
    .io_rnReq_0_bits_lsu_isa_amoswap_d(rnm_stage_io_rnReq_0_bits_lsu_isa_amoswap_d),
    .io_rnReq_0_bits_lsu_isa_amoadd_d(rnm_stage_io_rnReq_0_bits_lsu_isa_amoadd_d),
    .io_rnReq_0_bits_lsu_isa_amoxor_d(rnm_stage_io_rnReq_0_bits_lsu_isa_amoxor_d),
    .io_rnReq_0_bits_lsu_isa_amoand_d(rnm_stage_io_rnReq_0_bits_lsu_isa_amoand_d),
    .io_rnReq_0_bits_lsu_isa_amoor_d(rnm_stage_io_rnReq_0_bits_lsu_isa_amoor_d),
    .io_rnReq_0_bits_lsu_isa_amomin_d(rnm_stage_io_rnReq_0_bits_lsu_isa_amomin_d),
    .io_rnReq_0_bits_lsu_isa_amomax_d(rnm_stage_io_rnReq_0_bits_lsu_isa_amomax_d),
    .io_rnReq_0_bits_lsu_isa_amominu_d(rnm_stage_io_rnReq_0_bits_lsu_isa_amominu_d),
    .io_rnReq_0_bits_lsu_isa_amomaxu_d(rnm_stage_io_rnReq_0_bits_lsu_isa_amomaxu_d),
    .io_rnReq_0_bits_lsu_isa_flw(rnm_stage_io_rnReq_0_bits_lsu_isa_flw),
    .io_rnReq_0_bits_lsu_isa_fsw(rnm_stage_io_rnReq_0_bits_lsu_isa_fsw),
    .io_rnReq_0_bits_lsu_isa_fld(rnm_stage_io_rnReq_0_bits_lsu_isa_fld),
    .io_rnReq_0_bits_lsu_isa_fsd(rnm_stage_io_rnReq_0_bits_lsu_isa_fsd),
    .io_rnReq_0_bits_csr_isa_rw(rnm_stage_io_rnReq_0_bits_csr_isa_rw),
    .io_rnReq_0_bits_csr_isa_rs(rnm_stage_io_rnReq_0_bits_csr_isa_rs),
    .io_rnReq_0_bits_csr_isa_rc(rnm_stage_io_rnReq_0_bits_csr_isa_rc),
    .io_rnReq_0_bits_csr_isa_rwi(rnm_stage_io_rnReq_0_bits_csr_isa_rwi),
    .io_rnReq_0_bits_csr_isa_rsi(rnm_stage_io_rnReq_0_bits_csr_isa_rsi),
    .io_rnReq_0_bits_csr_isa_rci(rnm_stage_io_rnReq_0_bits_csr_isa_rci),
    .io_rnReq_0_bits_mul_isa_mul(rnm_stage_io_rnReq_0_bits_mul_isa_mul),
    .io_rnReq_0_bits_mul_isa_mulh(rnm_stage_io_rnReq_0_bits_mul_isa_mulh),
    .io_rnReq_0_bits_mul_isa_mulhsu(rnm_stage_io_rnReq_0_bits_mul_isa_mulhsu),
    .io_rnReq_0_bits_mul_isa_mulhu(rnm_stage_io_rnReq_0_bits_mul_isa_mulhu),
    .io_rnReq_0_bits_mul_isa_div(rnm_stage_io_rnReq_0_bits_mul_isa_div),
    .io_rnReq_0_bits_mul_isa_divu(rnm_stage_io_rnReq_0_bits_mul_isa_divu),
    .io_rnReq_0_bits_mul_isa_rem(rnm_stage_io_rnReq_0_bits_mul_isa_rem),
    .io_rnReq_0_bits_mul_isa_remu(rnm_stage_io_rnReq_0_bits_mul_isa_remu),
    .io_rnReq_0_bits_mul_isa_mulw(rnm_stage_io_rnReq_0_bits_mul_isa_mulw),
    .io_rnReq_0_bits_mul_isa_divw(rnm_stage_io_rnReq_0_bits_mul_isa_divw),
    .io_rnReq_0_bits_mul_isa_divuw(rnm_stage_io_rnReq_0_bits_mul_isa_divuw),
    .io_rnReq_0_bits_mul_isa_remw(rnm_stage_io_rnReq_0_bits_mul_isa_remw),
    .io_rnReq_0_bits_mul_isa_remuw(rnm_stage_io_rnReq_0_bits_mul_isa_remuw),
    .io_rnReq_0_bits_privil_isa_ecall(rnm_stage_io_rnReq_0_bits_privil_isa_ecall),
    .io_rnReq_0_bits_privil_isa_ebreak(rnm_stage_io_rnReq_0_bits_privil_isa_ebreak),
    .io_rnReq_0_bits_privil_isa_mret(rnm_stage_io_rnReq_0_bits_privil_isa_mret),
    .io_rnReq_0_bits_privil_isa_uret(rnm_stage_io_rnReq_0_bits_privil_isa_uret),
    .io_rnReq_0_bits_privil_isa_sret(rnm_stage_io_rnReq_0_bits_privil_isa_sret),
    .io_rnReq_0_bits_privil_isa_dret(rnm_stage_io_rnReq_0_bits_privil_isa_dret),
    .io_rnReq_0_bits_privil_isa_hfence_vvma(rnm_stage_io_rnReq_0_bits_privil_isa_hfence_vvma),
    .io_rnReq_0_bits_privil_isa_hfence_gvma(rnm_stage_io_rnReq_0_bits_privil_isa_hfence_gvma),
    .io_rnReq_0_bits_privil_isa_hlv_b(rnm_stage_io_rnReq_0_bits_privil_isa_hlv_b),
    .io_rnReq_0_bits_privil_isa_hlv_bu(rnm_stage_io_rnReq_0_bits_privil_isa_hlv_bu),
    .io_rnReq_0_bits_privil_isa_hlv_h(rnm_stage_io_rnReq_0_bits_privil_isa_hlv_h),
    .io_rnReq_0_bits_privil_isa_hlv_hu(rnm_stage_io_rnReq_0_bits_privil_isa_hlv_hu),
    .io_rnReq_0_bits_privil_isa_hlvx_hu(rnm_stage_io_rnReq_0_bits_privil_isa_hlvx_hu),
    .io_rnReq_0_bits_privil_isa_hlv_w(rnm_stage_io_rnReq_0_bits_privil_isa_hlv_w),
    .io_rnReq_0_bits_privil_isa_hlvx_wu(rnm_stage_io_rnReq_0_bits_privil_isa_hlvx_wu),
    .io_rnReq_0_bits_privil_isa_hsv_b(rnm_stage_io_rnReq_0_bits_privil_isa_hsv_b),
    .io_rnReq_0_bits_privil_isa_hsv_h(rnm_stage_io_rnReq_0_bits_privil_isa_hsv_h),
    .io_rnReq_0_bits_privil_isa_hsv_w(rnm_stage_io_rnReq_0_bits_privil_isa_hsv_w),
    .io_rnReq_0_bits_privil_isa_hlv_wu(rnm_stage_io_rnReq_0_bits_privil_isa_hlv_wu),
    .io_rnReq_0_bits_privil_isa_hlv_d(rnm_stage_io_rnReq_0_bits_privil_isa_hlv_d),
    .io_rnReq_0_bits_privil_isa_hsv_d(rnm_stage_io_rnReq_0_bits_privil_isa_hsv_d),
    .io_rnReq_0_bits_privil_isa_is_access_fault(rnm_stage_io_rnReq_0_bits_privil_isa_is_access_fault),
    .io_rnReq_0_bits_privil_isa_is_paging_fault(rnm_stage_io_rnReq_0_bits_privil_isa_is_paging_fault),
    .io_rnReq_0_bits_fpu_isa_fmadd_s(rnm_stage_io_rnReq_0_bits_fpu_isa_fmadd_s),
    .io_rnReq_0_bits_fpu_isa_fmsub_s(rnm_stage_io_rnReq_0_bits_fpu_isa_fmsub_s),
    .io_rnReq_0_bits_fpu_isa_fnmsub_s(rnm_stage_io_rnReq_0_bits_fpu_isa_fnmsub_s),
    .io_rnReq_0_bits_fpu_isa_fnmadd_s(rnm_stage_io_rnReq_0_bits_fpu_isa_fnmadd_s),
    .io_rnReq_0_bits_fpu_isa_fadd_s(rnm_stage_io_rnReq_0_bits_fpu_isa_fadd_s),
    .io_rnReq_0_bits_fpu_isa_fsub_s(rnm_stage_io_rnReq_0_bits_fpu_isa_fsub_s),
    .io_rnReq_0_bits_fpu_isa_fmul_s(rnm_stage_io_rnReq_0_bits_fpu_isa_fmul_s),
    .io_rnReq_0_bits_fpu_isa_fdiv_s(rnm_stage_io_rnReq_0_bits_fpu_isa_fdiv_s),
    .io_rnReq_0_bits_fpu_isa_fsqrt_s(rnm_stage_io_rnReq_0_bits_fpu_isa_fsqrt_s),
    .io_rnReq_0_bits_fpu_isa_fsgnj_s(rnm_stage_io_rnReq_0_bits_fpu_isa_fsgnj_s),
    .io_rnReq_0_bits_fpu_isa_fsgnjn_s(rnm_stage_io_rnReq_0_bits_fpu_isa_fsgnjn_s),
    .io_rnReq_0_bits_fpu_isa_fsgnjx_s(rnm_stage_io_rnReq_0_bits_fpu_isa_fsgnjx_s),
    .io_rnReq_0_bits_fpu_isa_fmin_s(rnm_stage_io_rnReq_0_bits_fpu_isa_fmin_s),
    .io_rnReq_0_bits_fpu_isa_fmax_s(rnm_stage_io_rnReq_0_bits_fpu_isa_fmax_s),
    .io_rnReq_0_bits_fpu_isa_fcvt_w_s(rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_w_s),
    .io_rnReq_0_bits_fpu_isa_fcvt_wu_s(rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_wu_s),
    .io_rnReq_0_bits_fpu_isa_fmv_x_w(rnm_stage_io_rnReq_0_bits_fpu_isa_fmv_x_w),
    .io_rnReq_0_bits_fpu_isa_feq_s(rnm_stage_io_rnReq_0_bits_fpu_isa_feq_s),
    .io_rnReq_0_bits_fpu_isa_flt_s(rnm_stage_io_rnReq_0_bits_fpu_isa_flt_s),
    .io_rnReq_0_bits_fpu_isa_fle_s(rnm_stage_io_rnReq_0_bits_fpu_isa_fle_s),
    .io_rnReq_0_bits_fpu_isa_fclass_s(rnm_stage_io_rnReq_0_bits_fpu_isa_fclass_s),
    .io_rnReq_0_bits_fpu_isa_fcvt_s_w(rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_s_w),
    .io_rnReq_0_bits_fpu_isa_fcvt_s_wu(rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_s_wu),
    .io_rnReq_0_bits_fpu_isa_fmv_w_x(rnm_stage_io_rnReq_0_bits_fpu_isa_fmv_w_x),
    .io_rnReq_0_bits_fpu_isa_fcvt_l_s(rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_l_s),
    .io_rnReq_0_bits_fpu_isa_fcvt_lu_s(rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_lu_s),
    .io_rnReq_0_bits_fpu_isa_fcvt_s_l(rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_s_l),
    .io_rnReq_0_bits_fpu_isa_fcvt_s_lu(rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_s_lu),
    .io_rnReq_0_bits_fpu_isa_fmadd_d(rnm_stage_io_rnReq_0_bits_fpu_isa_fmadd_d),
    .io_rnReq_0_bits_fpu_isa_fmsub_d(rnm_stage_io_rnReq_0_bits_fpu_isa_fmsub_d),
    .io_rnReq_0_bits_fpu_isa_fnmsub_d(rnm_stage_io_rnReq_0_bits_fpu_isa_fnmsub_d),
    .io_rnReq_0_bits_fpu_isa_fnmadd_d(rnm_stage_io_rnReq_0_bits_fpu_isa_fnmadd_d),
    .io_rnReq_0_bits_fpu_isa_fadd_d(rnm_stage_io_rnReq_0_bits_fpu_isa_fadd_d),
    .io_rnReq_0_bits_fpu_isa_fsub_d(rnm_stage_io_rnReq_0_bits_fpu_isa_fsub_d),
    .io_rnReq_0_bits_fpu_isa_fmul_d(rnm_stage_io_rnReq_0_bits_fpu_isa_fmul_d),
    .io_rnReq_0_bits_fpu_isa_fdiv_d(rnm_stage_io_rnReq_0_bits_fpu_isa_fdiv_d),
    .io_rnReq_0_bits_fpu_isa_fsqrt_d(rnm_stage_io_rnReq_0_bits_fpu_isa_fsqrt_d),
    .io_rnReq_0_bits_fpu_isa_fsgnj_d(rnm_stage_io_rnReq_0_bits_fpu_isa_fsgnj_d),
    .io_rnReq_0_bits_fpu_isa_fsgnjn_d(rnm_stage_io_rnReq_0_bits_fpu_isa_fsgnjn_d),
    .io_rnReq_0_bits_fpu_isa_fsgnjx_d(rnm_stage_io_rnReq_0_bits_fpu_isa_fsgnjx_d),
    .io_rnReq_0_bits_fpu_isa_fmin_d(rnm_stage_io_rnReq_0_bits_fpu_isa_fmin_d),
    .io_rnReq_0_bits_fpu_isa_fmax_d(rnm_stage_io_rnReq_0_bits_fpu_isa_fmax_d),
    .io_rnReq_0_bits_fpu_isa_fcvt_s_d(rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_s_d),
    .io_rnReq_0_bits_fpu_isa_fcvt_d_s(rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_d_s),
    .io_rnReq_0_bits_fpu_isa_feq_d(rnm_stage_io_rnReq_0_bits_fpu_isa_feq_d),
    .io_rnReq_0_bits_fpu_isa_flt_d(rnm_stage_io_rnReq_0_bits_fpu_isa_flt_d),
    .io_rnReq_0_bits_fpu_isa_fle_d(rnm_stage_io_rnReq_0_bits_fpu_isa_fle_d),
    .io_rnReq_0_bits_fpu_isa_fclass_d(rnm_stage_io_rnReq_0_bits_fpu_isa_fclass_d),
    .io_rnReq_0_bits_fpu_isa_fcvt_w_d(rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_w_d),
    .io_rnReq_0_bits_fpu_isa_fcvt_wu_d(rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_wu_d),
    .io_rnReq_0_bits_fpu_isa_fcvt_d_w(rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_d_w),
    .io_rnReq_0_bits_fpu_isa_fcvt_d_wu(rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_d_wu),
    .io_rnReq_0_bits_fpu_isa_fcvt_l_d(rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_l_d),
    .io_rnReq_0_bits_fpu_isa_fcvt_lu_d(rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_lu_d),
    .io_rnReq_0_bits_fpu_isa_fmv_x_d(rnm_stage_io_rnReq_0_bits_fpu_isa_fmv_x_d),
    .io_rnReq_0_bits_fpu_isa_fcvt_d_l(rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_d_l),
    .io_rnReq_0_bits_fpu_isa_fcvt_d_lu(rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_d_lu),
    .io_rnReq_0_bits_fpu_isa_fmv_d_x(rnm_stage_io_rnReq_0_bits_fpu_isa_fmv_d_x),
    .io_rnReq_0_bits_fpu_isa_fcsr_rw(rnm_stage_io_rnReq_0_bits_fpu_isa_fcsr_rw),
    .io_rnReq_0_bits_fpu_isa_fcsr_rs(rnm_stage_io_rnReq_0_bits_fpu_isa_fcsr_rs),
    .io_rnReq_0_bits_fpu_isa_fcsr_rc(rnm_stage_io_rnReq_0_bits_fpu_isa_fcsr_rc),
    .io_rnReq_0_bits_fpu_isa_fcsr_rwi(rnm_stage_io_rnReq_0_bits_fpu_isa_fcsr_rwi),
    .io_rnReq_0_bits_fpu_isa_fcsr_rsi(rnm_stage_io_rnReq_0_bits_fpu_isa_fcsr_rsi),
    .io_rnReq_0_bits_fpu_isa_fcsr_rci(rnm_stage_io_rnReq_0_bits_fpu_isa_fcsr_rci),
    .io_rnReq_0_bits_param_is_rvc(rnm_stage_io_rnReq_0_bits_param_is_rvc),
    .io_rnReq_0_bits_param_pc(rnm_stage_io_rnReq_0_bits_param_pc),
    .io_rnReq_0_bits_param_imm(rnm_stage_io_rnReq_0_bits_param_imm),
    .io_rnReq_0_bits_param_raw_rs1(rnm_stage_io_rnReq_0_bits_param_raw_rs1),
    .io_rnReq_0_bits_param_raw_rs2(rnm_stage_io_rnReq_0_bits_param_raw_rs2),
    .io_rnReq_0_bits_param_raw_rd0(rnm_stage_io_rnReq_0_bits_param_raw_rd0),
    .io_rnRsp_0_valid(rnm_stage_io_rnRsp_0_valid),
    .io_rnRsp_0_bits_alu_isa_lui(rnm_stage_io_rnRsp_0_bits_alu_isa_lui),
    .io_rnRsp_0_bits_alu_isa_auipc(rnm_stage_io_rnRsp_0_bits_alu_isa_auipc),
    .io_rnRsp_0_bits_alu_isa_addi(rnm_stage_io_rnRsp_0_bits_alu_isa_addi),
    .io_rnRsp_0_bits_alu_isa_addiw(rnm_stage_io_rnRsp_0_bits_alu_isa_addiw),
    .io_rnRsp_0_bits_alu_isa_slti(rnm_stage_io_rnRsp_0_bits_alu_isa_slti),
    .io_rnRsp_0_bits_alu_isa_sltiu(rnm_stage_io_rnRsp_0_bits_alu_isa_sltiu),
    .io_rnRsp_0_bits_alu_isa_xori(rnm_stage_io_rnRsp_0_bits_alu_isa_xori),
    .io_rnRsp_0_bits_alu_isa_ori(rnm_stage_io_rnRsp_0_bits_alu_isa_ori),
    .io_rnRsp_0_bits_alu_isa_andi(rnm_stage_io_rnRsp_0_bits_alu_isa_andi),
    .io_rnRsp_0_bits_alu_isa_slli(rnm_stage_io_rnRsp_0_bits_alu_isa_slli),
    .io_rnRsp_0_bits_alu_isa_slliw(rnm_stage_io_rnRsp_0_bits_alu_isa_slliw),
    .io_rnRsp_0_bits_alu_isa_srli(rnm_stage_io_rnRsp_0_bits_alu_isa_srli),
    .io_rnRsp_0_bits_alu_isa_srliw(rnm_stage_io_rnRsp_0_bits_alu_isa_srliw),
    .io_rnRsp_0_bits_alu_isa_srai(rnm_stage_io_rnRsp_0_bits_alu_isa_srai),
    .io_rnRsp_0_bits_alu_isa_sraiw(rnm_stage_io_rnRsp_0_bits_alu_isa_sraiw),
    .io_rnRsp_0_bits_alu_isa_add(rnm_stage_io_rnRsp_0_bits_alu_isa_add),
    .io_rnRsp_0_bits_alu_isa_addw(rnm_stage_io_rnRsp_0_bits_alu_isa_addw),
    .io_rnRsp_0_bits_alu_isa_sub(rnm_stage_io_rnRsp_0_bits_alu_isa_sub),
    .io_rnRsp_0_bits_alu_isa_subw(rnm_stage_io_rnRsp_0_bits_alu_isa_subw),
    .io_rnRsp_0_bits_alu_isa_sll(rnm_stage_io_rnRsp_0_bits_alu_isa_sll),
    .io_rnRsp_0_bits_alu_isa_sllw(rnm_stage_io_rnRsp_0_bits_alu_isa_sllw),
    .io_rnRsp_0_bits_alu_isa_slt(rnm_stage_io_rnRsp_0_bits_alu_isa_slt),
    .io_rnRsp_0_bits_alu_isa_sltu(rnm_stage_io_rnRsp_0_bits_alu_isa_sltu),
    .io_rnRsp_0_bits_alu_isa_xor(rnm_stage_io_rnRsp_0_bits_alu_isa_xor),
    .io_rnRsp_0_bits_alu_isa_srl(rnm_stage_io_rnRsp_0_bits_alu_isa_srl),
    .io_rnRsp_0_bits_alu_isa_srlw(rnm_stage_io_rnRsp_0_bits_alu_isa_srlw),
    .io_rnRsp_0_bits_alu_isa_sra(rnm_stage_io_rnRsp_0_bits_alu_isa_sra),
    .io_rnRsp_0_bits_alu_isa_sraw(rnm_stage_io_rnRsp_0_bits_alu_isa_sraw),
    .io_rnRsp_0_bits_alu_isa_or(rnm_stage_io_rnRsp_0_bits_alu_isa_or),
    .io_rnRsp_0_bits_alu_isa_and(rnm_stage_io_rnRsp_0_bits_alu_isa_and),
    .io_rnRsp_0_bits_alu_isa_wfi(rnm_stage_io_rnRsp_0_bits_alu_isa_wfi),
    .io_rnRsp_0_bits_bru_isa_jal(rnm_stage_io_rnRsp_0_bits_bru_isa_jal),
    .io_rnRsp_0_bits_bru_isa_jalr(rnm_stage_io_rnRsp_0_bits_bru_isa_jalr),
    .io_rnRsp_0_bits_bru_isa_beq(rnm_stage_io_rnRsp_0_bits_bru_isa_beq),
    .io_rnRsp_0_bits_bru_isa_bne(rnm_stage_io_rnRsp_0_bits_bru_isa_bne),
    .io_rnRsp_0_bits_bru_isa_blt(rnm_stage_io_rnRsp_0_bits_bru_isa_blt),
    .io_rnRsp_0_bits_bru_isa_bge(rnm_stage_io_rnRsp_0_bits_bru_isa_bge),
    .io_rnRsp_0_bits_bru_isa_bltu(rnm_stage_io_rnRsp_0_bits_bru_isa_bltu),
    .io_rnRsp_0_bits_bru_isa_bgeu(rnm_stage_io_rnRsp_0_bits_bru_isa_bgeu),
    .io_rnRsp_0_bits_lsu_isa_lb(rnm_stage_io_rnRsp_0_bits_lsu_isa_lb),
    .io_rnRsp_0_bits_lsu_isa_lh(rnm_stage_io_rnRsp_0_bits_lsu_isa_lh),
    .io_rnRsp_0_bits_lsu_isa_lw(rnm_stage_io_rnRsp_0_bits_lsu_isa_lw),
    .io_rnRsp_0_bits_lsu_isa_ld(rnm_stage_io_rnRsp_0_bits_lsu_isa_ld),
    .io_rnRsp_0_bits_lsu_isa_lbu(rnm_stage_io_rnRsp_0_bits_lsu_isa_lbu),
    .io_rnRsp_0_bits_lsu_isa_lhu(rnm_stage_io_rnRsp_0_bits_lsu_isa_lhu),
    .io_rnRsp_0_bits_lsu_isa_lwu(rnm_stage_io_rnRsp_0_bits_lsu_isa_lwu),
    .io_rnRsp_0_bits_lsu_isa_sb(rnm_stage_io_rnRsp_0_bits_lsu_isa_sb),
    .io_rnRsp_0_bits_lsu_isa_sh(rnm_stage_io_rnRsp_0_bits_lsu_isa_sh),
    .io_rnRsp_0_bits_lsu_isa_sw(rnm_stage_io_rnRsp_0_bits_lsu_isa_sw),
    .io_rnRsp_0_bits_lsu_isa_sd(rnm_stage_io_rnRsp_0_bits_lsu_isa_sd),
    .io_rnRsp_0_bits_lsu_isa_fence(rnm_stage_io_rnRsp_0_bits_lsu_isa_fence),
    .io_rnRsp_0_bits_lsu_isa_fence_i(rnm_stage_io_rnRsp_0_bits_lsu_isa_fence_i),
    .io_rnRsp_0_bits_lsu_isa_sfence_vma(rnm_stage_io_rnRsp_0_bits_lsu_isa_sfence_vma),
    .io_rnRsp_0_bits_lsu_isa_lr_w(rnm_stage_io_rnRsp_0_bits_lsu_isa_lr_w),
    .io_rnRsp_0_bits_lsu_isa_sc_w(rnm_stage_io_rnRsp_0_bits_lsu_isa_sc_w),
    .io_rnRsp_0_bits_lsu_isa_amoswap_w(rnm_stage_io_rnRsp_0_bits_lsu_isa_amoswap_w),
    .io_rnRsp_0_bits_lsu_isa_amoadd_w(rnm_stage_io_rnRsp_0_bits_lsu_isa_amoadd_w),
    .io_rnRsp_0_bits_lsu_isa_amoxor_w(rnm_stage_io_rnRsp_0_bits_lsu_isa_amoxor_w),
    .io_rnRsp_0_bits_lsu_isa_amoand_w(rnm_stage_io_rnRsp_0_bits_lsu_isa_amoand_w),
    .io_rnRsp_0_bits_lsu_isa_amoor_w(rnm_stage_io_rnRsp_0_bits_lsu_isa_amoor_w),
    .io_rnRsp_0_bits_lsu_isa_amomin_w(rnm_stage_io_rnRsp_0_bits_lsu_isa_amomin_w),
    .io_rnRsp_0_bits_lsu_isa_amomax_w(rnm_stage_io_rnRsp_0_bits_lsu_isa_amomax_w),
    .io_rnRsp_0_bits_lsu_isa_amominu_w(rnm_stage_io_rnRsp_0_bits_lsu_isa_amominu_w),
    .io_rnRsp_0_bits_lsu_isa_amomaxu_w(rnm_stage_io_rnRsp_0_bits_lsu_isa_amomaxu_w),
    .io_rnRsp_0_bits_lsu_isa_lr_d(rnm_stage_io_rnRsp_0_bits_lsu_isa_lr_d),
    .io_rnRsp_0_bits_lsu_isa_sc_d(rnm_stage_io_rnRsp_0_bits_lsu_isa_sc_d),
    .io_rnRsp_0_bits_lsu_isa_amoswap_d(rnm_stage_io_rnRsp_0_bits_lsu_isa_amoswap_d),
    .io_rnRsp_0_bits_lsu_isa_amoadd_d(rnm_stage_io_rnRsp_0_bits_lsu_isa_amoadd_d),
    .io_rnRsp_0_bits_lsu_isa_amoxor_d(rnm_stage_io_rnRsp_0_bits_lsu_isa_amoxor_d),
    .io_rnRsp_0_bits_lsu_isa_amoand_d(rnm_stage_io_rnRsp_0_bits_lsu_isa_amoand_d),
    .io_rnRsp_0_bits_lsu_isa_amoor_d(rnm_stage_io_rnRsp_0_bits_lsu_isa_amoor_d),
    .io_rnRsp_0_bits_lsu_isa_amomin_d(rnm_stage_io_rnRsp_0_bits_lsu_isa_amomin_d),
    .io_rnRsp_0_bits_lsu_isa_amomax_d(rnm_stage_io_rnRsp_0_bits_lsu_isa_amomax_d),
    .io_rnRsp_0_bits_lsu_isa_amominu_d(rnm_stage_io_rnRsp_0_bits_lsu_isa_amominu_d),
    .io_rnRsp_0_bits_lsu_isa_amomaxu_d(rnm_stage_io_rnRsp_0_bits_lsu_isa_amomaxu_d),
    .io_rnRsp_0_bits_lsu_isa_flw(rnm_stage_io_rnRsp_0_bits_lsu_isa_flw),
    .io_rnRsp_0_bits_lsu_isa_fsw(rnm_stage_io_rnRsp_0_bits_lsu_isa_fsw),
    .io_rnRsp_0_bits_lsu_isa_fld(rnm_stage_io_rnRsp_0_bits_lsu_isa_fld),
    .io_rnRsp_0_bits_lsu_isa_fsd(rnm_stage_io_rnRsp_0_bits_lsu_isa_fsd),
    .io_rnRsp_0_bits_csr_isa_rw(rnm_stage_io_rnRsp_0_bits_csr_isa_rw),
    .io_rnRsp_0_bits_csr_isa_rs(rnm_stage_io_rnRsp_0_bits_csr_isa_rs),
    .io_rnRsp_0_bits_csr_isa_rc(rnm_stage_io_rnRsp_0_bits_csr_isa_rc),
    .io_rnRsp_0_bits_csr_isa_rwi(rnm_stage_io_rnRsp_0_bits_csr_isa_rwi),
    .io_rnRsp_0_bits_csr_isa_rsi(rnm_stage_io_rnRsp_0_bits_csr_isa_rsi),
    .io_rnRsp_0_bits_csr_isa_rci(rnm_stage_io_rnRsp_0_bits_csr_isa_rci),
    .io_rnRsp_0_bits_mul_isa_mul(rnm_stage_io_rnRsp_0_bits_mul_isa_mul),
    .io_rnRsp_0_bits_mul_isa_mulh(rnm_stage_io_rnRsp_0_bits_mul_isa_mulh),
    .io_rnRsp_0_bits_mul_isa_mulhsu(rnm_stage_io_rnRsp_0_bits_mul_isa_mulhsu),
    .io_rnRsp_0_bits_mul_isa_mulhu(rnm_stage_io_rnRsp_0_bits_mul_isa_mulhu),
    .io_rnRsp_0_bits_mul_isa_div(rnm_stage_io_rnRsp_0_bits_mul_isa_div),
    .io_rnRsp_0_bits_mul_isa_divu(rnm_stage_io_rnRsp_0_bits_mul_isa_divu),
    .io_rnRsp_0_bits_mul_isa_rem(rnm_stage_io_rnRsp_0_bits_mul_isa_rem),
    .io_rnRsp_0_bits_mul_isa_remu(rnm_stage_io_rnRsp_0_bits_mul_isa_remu),
    .io_rnRsp_0_bits_mul_isa_mulw(rnm_stage_io_rnRsp_0_bits_mul_isa_mulw),
    .io_rnRsp_0_bits_mul_isa_divw(rnm_stage_io_rnRsp_0_bits_mul_isa_divw),
    .io_rnRsp_0_bits_mul_isa_divuw(rnm_stage_io_rnRsp_0_bits_mul_isa_divuw),
    .io_rnRsp_0_bits_mul_isa_remw(rnm_stage_io_rnRsp_0_bits_mul_isa_remw),
    .io_rnRsp_0_bits_mul_isa_remuw(rnm_stage_io_rnRsp_0_bits_mul_isa_remuw),
    .io_rnRsp_0_bits_fpu_isa_fmadd_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_fmadd_s),
    .io_rnRsp_0_bits_fpu_isa_fmsub_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_fmsub_s),
    .io_rnRsp_0_bits_fpu_isa_fnmsub_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_fnmsub_s),
    .io_rnRsp_0_bits_fpu_isa_fnmadd_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_fnmadd_s),
    .io_rnRsp_0_bits_fpu_isa_fadd_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_fadd_s),
    .io_rnRsp_0_bits_fpu_isa_fsub_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_fsub_s),
    .io_rnRsp_0_bits_fpu_isa_fmul_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_fmul_s),
    .io_rnRsp_0_bits_fpu_isa_fdiv_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_fdiv_s),
    .io_rnRsp_0_bits_fpu_isa_fsqrt_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_fsqrt_s),
    .io_rnRsp_0_bits_fpu_isa_fsgnj_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_fsgnj_s),
    .io_rnRsp_0_bits_fpu_isa_fsgnjn_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_fsgnjn_s),
    .io_rnRsp_0_bits_fpu_isa_fsgnjx_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_fsgnjx_s),
    .io_rnRsp_0_bits_fpu_isa_fmin_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_fmin_s),
    .io_rnRsp_0_bits_fpu_isa_fmax_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_fmax_s),
    .io_rnRsp_0_bits_fpu_isa_fcvt_w_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_w_s),
    .io_rnRsp_0_bits_fpu_isa_fcvt_wu_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_wu_s),
    .io_rnRsp_0_bits_fpu_isa_fmv_x_w(rnm_stage_io_rnRsp_0_bits_fpu_isa_fmv_x_w),
    .io_rnRsp_0_bits_fpu_isa_feq_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_feq_s),
    .io_rnRsp_0_bits_fpu_isa_flt_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_flt_s),
    .io_rnRsp_0_bits_fpu_isa_fle_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_fle_s),
    .io_rnRsp_0_bits_fpu_isa_fclass_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_fclass_s),
    .io_rnRsp_0_bits_fpu_isa_fcvt_l_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_l_s),
    .io_rnRsp_0_bits_fpu_isa_fcvt_lu_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_lu_s),
    .io_rnRsp_0_bits_fpu_isa_fmadd_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_fmadd_d),
    .io_rnRsp_0_bits_fpu_isa_fmsub_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_fmsub_d),
    .io_rnRsp_0_bits_fpu_isa_fnmsub_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_fnmsub_d),
    .io_rnRsp_0_bits_fpu_isa_fnmadd_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_fnmadd_d),
    .io_rnRsp_0_bits_fpu_isa_fadd_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_fadd_d),
    .io_rnRsp_0_bits_fpu_isa_fsub_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_fsub_d),
    .io_rnRsp_0_bits_fpu_isa_fmul_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_fmul_d),
    .io_rnRsp_0_bits_fpu_isa_fdiv_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_fdiv_d),
    .io_rnRsp_0_bits_fpu_isa_fsqrt_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_fsqrt_d),
    .io_rnRsp_0_bits_fpu_isa_fsgnj_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_fsgnj_d),
    .io_rnRsp_0_bits_fpu_isa_fsgnjn_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_fsgnjn_d),
    .io_rnRsp_0_bits_fpu_isa_fsgnjx_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_fsgnjx_d),
    .io_rnRsp_0_bits_fpu_isa_fmin_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_fmin_d),
    .io_rnRsp_0_bits_fpu_isa_fmax_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_fmax_d),
    .io_rnRsp_0_bits_fpu_isa_fcvt_s_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_s_d),
    .io_rnRsp_0_bits_fpu_isa_fcvt_d_s(rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_d_s),
    .io_rnRsp_0_bits_fpu_isa_feq_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_feq_d),
    .io_rnRsp_0_bits_fpu_isa_flt_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_flt_d),
    .io_rnRsp_0_bits_fpu_isa_fle_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_fle_d),
    .io_rnRsp_0_bits_fpu_isa_fclass_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_fclass_d),
    .io_rnRsp_0_bits_fpu_isa_fcvt_w_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_w_d),
    .io_rnRsp_0_bits_fpu_isa_fcvt_wu_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_wu_d),
    .io_rnRsp_0_bits_fpu_isa_fcvt_l_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_l_d),
    .io_rnRsp_0_bits_fpu_isa_fcvt_lu_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_lu_d),
    .io_rnRsp_0_bits_fpu_isa_fmv_x_d(rnm_stage_io_rnRsp_0_bits_fpu_isa_fmv_x_d),
    .io_rnRsp_0_bits_param_is_rvc(rnm_stage_io_rnRsp_0_bits_param_is_rvc),
    .io_rnRsp_0_bits_param_pc(rnm_stage_io_rnRsp_0_bits_param_pc),
    .io_rnRsp_0_bits_param_imm(rnm_stage_io_rnRsp_0_bits_param_imm),
    .io_rnRsp_0_bits_param_raw_rs1(rnm_stage_io_rnRsp_0_bits_param_raw_rs1),
    .io_rnRsp_0_bits_phy_rs1(rnm_stage_io_rnRsp_0_bits_phy_rs1),
    .io_rnRsp_0_bits_phy_rs2(rnm_stage_io_rnRsp_0_bits_phy_rs2),
    .io_rnRsp_0_bits_phy_rs3(rnm_stage_io_rnRsp_0_bits_phy_rs3),
    .io_rnRsp_0_bits_phy_rd0(rnm_stage_io_rnRsp_0_bits_phy_rd0),
    .io_xLookup_0_rsp_rs1(rnm_stage_io_xLookup_0_rsp_rs1),
    .io_xLookup_0_rsp_rs2(rnm_stage_io_xLookup_0_rsp_rs2),
    .io_xLookup_0_req_rs1(rnm_stage_io_xLookup_0_req_rs1),
    .io_xLookup_0_req_rs2(rnm_stage_io_xLookup_0_req_rs2),
    .io_xRename_0_rsp_rd0(rnm_stage_io_xRename_0_rsp_rd0),
    .io_xRename_0_req_ready(rnm_stage_io_xRename_0_req_ready),
    .io_xRename_0_req_valid(rnm_stage_io_xRename_0_req_valid),
    .io_xRename_0_req_bits_rd0(rnm_stage_io_xRename_0_req_bits_rd0),
    .io_fRename_0_req_valid(rnm_stage_io_fRename_0_req_valid),
    .io_rod_i_0_ready(rnm_stage_io_rod_i_0_ready),
    .io_rod_i_0_valid(rnm_stage_io_rod_i_0_valid),
    .io_rod_i_0_bits_pc(rnm_stage_io_rod_i_0_bits_pc),
    .io_rod_i_0_bits_rd0_raw(rnm_stage_io_rod_i_0_bits_rd0_raw),
    .io_rod_i_0_bits_rd0_phy(rnm_stage_io_rod_i_0_bits_rd0_phy),
    .io_rod_i_0_bits_is_branch(rnm_stage_io_rod_i_0_bits_is_branch),
    .io_rod_i_0_bits_is_jalr(rnm_stage_io_rod_i_0_bits_is_jalr),
    .io_rod_i_0_bits_is_lu(rnm_stage_io_rod_i_0_bits_is_lu),
    .io_rod_i_0_bits_is_su(rnm_stage_io_rod_i_0_bits_is_su),
    .io_rod_i_0_bits_is_amo(rnm_stage_io_rod_i_0_bits_is_amo),
    .io_rod_i_0_bits_is_fence_i(rnm_stage_io_rod_i_0_bits_is_fence_i),
    .io_rod_i_0_bits_is_sfence_vma(rnm_stage_io_rod_i_0_bits_is_sfence_vma),
    .io_rod_i_0_bits_is_wfi(rnm_stage_io_rod_i_0_bits_is_wfi),
    .io_rod_i_0_bits_is_csr(rnm_stage_io_rod_i_0_bits_is_csr),
    .io_rod_i_0_bits_is_fpu(rnm_stage_io_rod_i_0_bits_is_fpu),
    .io_rod_i_0_bits_is_fcsr(rnm_stage_io_rod_i_0_bits_is_fcsr),
    .io_rod_i_0_bits_is_xcmm(rnm_stage_io_rod_i_0_bits_is_xcmm),
    .io_rod_i_0_bits_privil_ecall(rnm_stage_io_rod_i_0_bits_privil_ecall),
    .io_rod_i_0_bits_privil_ebreak(rnm_stage_io_rod_i_0_bits_privil_ebreak),
    .io_rod_i_0_bits_privil_mret(rnm_stage_io_rod_i_0_bits_privil_mret),
    .io_rod_i_0_bits_privil_sret(rnm_stage_io_rod_i_0_bits_privil_sret),
    .io_rod_i_0_bits_privil_dret(rnm_stage_io_rod_i_0_bits_privil_dret),
    .io_rod_i_0_bits_privil_is_access_fault(rnm_stage_io_rod_i_0_bits_privil_is_access_fault),
    .io_rod_i_0_bits_privil_is_paging_fault(rnm_stage_io_rod_i_0_bits_privil_is_paging_fault),
    .io_rod_i_0_bits_is_illeage(rnm_stage_io_rod_i_0_bits_is_illeage)
  );
  Issue iss_stage ( // @[rift2Core.scala 146:21]
    .clock(iss_stage_clock),
    .reset(iss_stage_reset),
    .io_dptReq_0_ready(iss_stage_io_dptReq_0_ready),
    .io_dptReq_0_valid(iss_stage_io_dptReq_0_valid),
    .io_dptReq_0_bits_alu_isa_lui(iss_stage_io_dptReq_0_bits_alu_isa_lui),
    .io_dptReq_0_bits_alu_isa_auipc(iss_stage_io_dptReq_0_bits_alu_isa_auipc),
    .io_dptReq_0_bits_alu_isa_addi(iss_stage_io_dptReq_0_bits_alu_isa_addi),
    .io_dptReq_0_bits_alu_isa_addiw(iss_stage_io_dptReq_0_bits_alu_isa_addiw),
    .io_dptReq_0_bits_alu_isa_slti(iss_stage_io_dptReq_0_bits_alu_isa_slti),
    .io_dptReq_0_bits_alu_isa_sltiu(iss_stage_io_dptReq_0_bits_alu_isa_sltiu),
    .io_dptReq_0_bits_alu_isa_xori(iss_stage_io_dptReq_0_bits_alu_isa_xori),
    .io_dptReq_0_bits_alu_isa_ori(iss_stage_io_dptReq_0_bits_alu_isa_ori),
    .io_dptReq_0_bits_alu_isa_andi(iss_stage_io_dptReq_0_bits_alu_isa_andi),
    .io_dptReq_0_bits_alu_isa_slli(iss_stage_io_dptReq_0_bits_alu_isa_slli),
    .io_dptReq_0_bits_alu_isa_slliw(iss_stage_io_dptReq_0_bits_alu_isa_slliw),
    .io_dptReq_0_bits_alu_isa_srli(iss_stage_io_dptReq_0_bits_alu_isa_srli),
    .io_dptReq_0_bits_alu_isa_srliw(iss_stage_io_dptReq_0_bits_alu_isa_srliw),
    .io_dptReq_0_bits_alu_isa_srai(iss_stage_io_dptReq_0_bits_alu_isa_srai),
    .io_dptReq_0_bits_alu_isa_sraiw(iss_stage_io_dptReq_0_bits_alu_isa_sraiw),
    .io_dptReq_0_bits_alu_isa_add(iss_stage_io_dptReq_0_bits_alu_isa_add),
    .io_dptReq_0_bits_alu_isa_addw(iss_stage_io_dptReq_0_bits_alu_isa_addw),
    .io_dptReq_0_bits_alu_isa_sub(iss_stage_io_dptReq_0_bits_alu_isa_sub),
    .io_dptReq_0_bits_alu_isa_subw(iss_stage_io_dptReq_0_bits_alu_isa_subw),
    .io_dptReq_0_bits_alu_isa_sll(iss_stage_io_dptReq_0_bits_alu_isa_sll),
    .io_dptReq_0_bits_alu_isa_sllw(iss_stage_io_dptReq_0_bits_alu_isa_sllw),
    .io_dptReq_0_bits_alu_isa_slt(iss_stage_io_dptReq_0_bits_alu_isa_slt),
    .io_dptReq_0_bits_alu_isa_sltu(iss_stage_io_dptReq_0_bits_alu_isa_sltu),
    .io_dptReq_0_bits_alu_isa_xor(iss_stage_io_dptReq_0_bits_alu_isa_xor),
    .io_dptReq_0_bits_alu_isa_srl(iss_stage_io_dptReq_0_bits_alu_isa_srl),
    .io_dptReq_0_bits_alu_isa_srlw(iss_stage_io_dptReq_0_bits_alu_isa_srlw),
    .io_dptReq_0_bits_alu_isa_sra(iss_stage_io_dptReq_0_bits_alu_isa_sra),
    .io_dptReq_0_bits_alu_isa_sraw(iss_stage_io_dptReq_0_bits_alu_isa_sraw),
    .io_dptReq_0_bits_alu_isa_or(iss_stage_io_dptReq_0_bits_alu_isa_or),
    .io_dptReq_0_bits_alu_isa_and(iss_stage_io_dptReq_0_bits_alu_isa_and),
    .io_dptReq_0_bits_alu_isa_wfi(iss_stage_io_dptReq_0_bits_alu_isa_wfi),
    .io_dptReq_0_bits_bru_isa_jal(iss_stage_io_dptReq_0_bits_bru_isa_jal),
    .io_dptReq_0_bits_bru_isa_jalr(iss_stage_io_dptReq_0_bits_bru_isa_jalr),
    .io_dptReq_0_bits_bru_isa_beq(iss_stage_io_dptReq_0_bits_bru_isa_beq),
    .io_dptReq_0_bits_bru_isa_bne(iss_stage_io_dptReq_0_bits_bru_isa_bne),
    .io_dptReq_0_bits_bru_isa_blt(iss_stage_io_dptReq_0_bits_bru_isa_blt),
    .io_dptReq_0_bits_bru_isa_bge(iss_stage_io_dptReq_0_bits_bru_isa_bge),
    .io_dptReq_0_bits_bru_isa_bltu(iss_stage_io_dptReq_0_bits_bru_isa_bltu),
    .io_dptReq_0_bits_bru_isa_bgeu(iss_stage_io_dptReq_0_bits_bru_isa_bgeu),
    .io_dptReq_0_bits_lsu_isa_lb(iss_stage_io_dptReq_0_bits_lsu_isa_lb),
    .io_dptReq_0_bits_lsu_isa_lh(iss_stage_io_dptReq_0_bits_lsu_isa_lh),
    .io_dptReq_0_bits_lsu_isa_lw(iss_stage_io_dptReq_0_bits_lsu_isa_lw),
    .io_dptReq_0_bits_lsu_isa_ld(iss_stage_io_dptReq_0_bits_lsu_isa_ld),
    .io_dptReq_0_bits_lsu_isa_lbu(iss_stage_io_dptReq_0_bits_lsu_isa_lbu),
    .io_dptReq_0_bits_lsu_isa_lhu(iss_stage_io_dptReq_0_bits_lsu_isa_lhu),
    .io_dptReq_0_bits_lsu_isa_lwu(iss_stage_io_dptReq_0_bits_lsu_isa_lwu),
    .io_dptReq_0_bits_lsu_isa_sb(iss_stage_io_dptReq_0_bits_lsu_isa_sb),
    .io_dptReq_0_bits_lsu_isa_sh(iss_stage_io_dptReq_0_bits_lsu_isa_sh),
    .io_dptReq_0_bits_lsu_isa_sw(iss_stage_io_dptReq_0_bits_lsu_isa_sw),
    .io_dptReq_0_bits_lsu_isa_sd(iss_stage_io_dptReq_0_bits_lsu_isa_sd),
    .io_dptReq_0_bits_lsu_isa_fence(iss_stage_io_dptReq_0_bits_lsu_isa_fence),
    .io_dptReq_0_bits_lsu_isa_fence_i(iss_stage_io_dptReq_0_bits_lsu_isa_fence_i),
    .io_dptReq_0_bits_lsu_isa_sfence_vma(iss_stage_io_dptReq_0_bits_lsu_isa_sfence_vma),
    .io_dptReq_0_bits_lsu_isa_lr_w(iss_stage_io_dptReq_0_bits_lsu_isa_lr_w),
    .io_dptReq_0_bits_lsu_isa_sc_w(iss_stage_io_dptReq_0_bits_lsu_isa_sc_w),
    .io_dptReq_0_bits_lsu_isa_amoswap_w(iss_stage_io_dptReq_0_bits_lsu_isa_amoswap_w),
    .io_dptReq_0_bits_lsu_isa_amoadd_w(iss_stage_io_dptReq_0_bits_lsu_isa_amoadd_w),
    .io_dptReq_0_bits_lsu_isa_amoxor_w(iss_stage_io_dptReq_0_bits_lsu_isa_amoxor_w),
    .io_dptReq_0_bits_lsu_isa_amoand_w(iss_stage_io_dptReq_0_bits_lsu_isa_amoand_w),
    .io_dptReq_0_bits_lsu_isa_amoor_w(iss_stage_io_dptReq_0_bits_lsu_isa_amoor_w),
    .io_dptReq_0_bits_lsu_isa_amomin_w(iss_stage_io_dptReq_0_bits_lsu_isa_amomin_w),
    .io_dptReq_0_bits_lsu_isa_amomax_w(iss_stage_io_dptReq_0_bits_lsu_isa_amomax_w),
    .io_dptReq_0_bits_lsu_isa_amominu_w(iss_stage_io_dptReq_0_bits_lsu_isa_amominu_w),
    .io_dptReq_0_bits_lsu_isa_amomaxu_w(iss_stage_io_dptReq_0_bits_lsu_isa_amomaxu_w),
    .io_dptReq_0_bits_lsu_isa_lr_d(iss_stage_io_dptReq_0_bits_lsu_isa_lr_d),
    .io_dptReq_0_bits_lsu_isa_sc_d(iss_stage_io_dptReq_0_bits_lsu_isa_sc_d),
    .io_dptReq_0_bits_lsu_isa_amoswap_d(iss_stage_io_dptReq_0_bits_lsu_isa_amoswap_d),
    .io_dptReq_0_bits_lsu_isa_amoadd_d(iss_stage_io_dptReq_0_bits_lsu_isa_amoadd_d),
    .io_dptReq_0_bits_lsu_isa_amoxor_d(iss_stage_io_dptReq_0_bits_lsu_isa_amoxor_d),
    .io_dptReq_0_bits_lsu_isa_amoand_d(iss_stage_io_dptReq_0_bits_lsu_isa_amoand_d),
    .io_dptReq_0_bits_lsu_isa_amoor_d(iss_stage_io_dptReq_0_bits_lsu_isa_amoor_d),
    .io_dptReq_0_bits_lsu_isa_amomin_d(iss_stage_io_dptReq_0_bits_lsu_isa_amomin_d),
    .io_dptReq_0_bits_lsu_isa_amomax_d(iss_stage_io_dptReq_0_bits_lsu_isa_amomax_d),
    .io_dptReq_0_bits_lsu_isa_amominu_d(iss_stage_io_dptReq_0_bits_lsu_isa_amominu_d),
    .io_dptReq_0_bits_lsu_isa_amomaxu_d(iss_stage_io_dptReq_0_bits_lsu_isa_amomaxu_d),
    .io_dptReq_0_bits_lsu_isa_flw(iss_stage_io_dptReq_0_bits_lsu_isa_flw),
    .io_dptReq_0_bits_lsu_isa_fsw(iss_stage_io_dptReq_0_bits_lsu_isa_fsw),
    .io_dptReq_0_bits_lsu_isa_fld(iss_stage_io_dptReq_0_bits_lsu_isa_fld),
    .io_dptReq_0_bits_lsu_isa_fsd(iss_stage_io_dptReq_0_bits_lsu_isa_fsd),
    .io_dptReq_0_bits_csr_isa_rw(iss_stage_io_dptReq_0_bits_csr_isa_rw),
    .io_dptReq_0_bits_csr_isa_rs(iss_stage_io_dptReq_0_bits_csr_isa_rs),
    .io_dptReq_0_bits_csr_isa_rc(iss_stage_io_dptReq_0_bits_csr_isa_rc),
    .io_dptReq_0_bits_csr_isa_rwi(iss_stage_io_dptReq_0_bits_csr_isa_rwi),
    .io_dptReq_0_bits_csr_isa_rsi(iss_stage_io_dptReq_0_bits_csr_isa_rsi),
    .io_dptReq_0_bits_csr_isa_rci(iss_stage_io_dptReq_0_bits_csr_isa_rci),
    .io_dptReq_0_bits_mul_isa_mul(iss_stage_io_dptReq_0_bits_mul_isa_mul),
    .io_dptReq_0_bits_mul_isa_mulh(iss_stage_io_dptReq_0_bits_mul_isa_mulh),
    .io_dptReq_0_bits_mul_isa_mulhsu(iss_stage_io_dptReq_0_bits_mul_isa_mulhsu),
    .io_dptReq_0_bits_mul_isa_mulhu(iss_stage_io_dptReq_0_bits_mul_isa_mulhu),
    .io_dptReq_0_bits_mul_isa_div(iss_stage_io_dptReq_0_bits_mul_isa_div),
    .io_dptReq_0_bits_mul_isa_divu(iss_stage_io_dptReq_0_bits_mul_isa_divu),
    .io_dptReq_0_bits_mul_isa_rem(iss_stage_io_dptReq_0_bits_mul_isa_rem),
    .io_dptReq_0_bits_mul_isa_remu(iss_stage_io_dptReq_0_bits_mul_isa_remu),
    .io_dptReq_0_bits_mul_isa_mulw(iss_stage_io_dptReq_0_bits_mul_isa_mulw),
    .io_dptReq_0_bits_mul_isa_divw(iss_stage_io_dptReq_0_bits_mul_isa_divw),
    .io_dptReq_0_bits_mul_isa_divuw(iss_stage_io_dptReq_0_bits_mul_isa_divuw),
    .io_dptReq_0_bits_mul_isa_remw(iss_stage_io_dptReq_0_bits_mul_isa_remw),
    .io_dptReq_0_bits_mul_isa_remuw(iss_stage_io_dptReq_0_bits_mul_isa_remuw),
    .io_dptReq_0_bits_fpu_isa_fmadd_s(iss_stage_io_dptReq_0_bits_fpu_isa_fmadd_s),
    .io_dptReq_0_bits_fpu_isa_fmsub_s(iss_stage_io_dptReq_0_bits_fpu_isa_fmsub_s),
    .io_dptReq_0_bits_fpu_isa_fnmsub_s(iss_stage_io_dptReq_0_bits_fpu_isa_fnmsub_s),
    .io_dptReq_0_bits_fpu_isa_fnmadd_s(iss_stage_io_dptReq_0_bits_fpu_isa_fnmadd_s),
    .io_dptReq_0_bits_fpu_isa_fadd_s(iss_stage_io_dptReq_0_bits_fpu_isa_fadd_s),
    .io_dptReq_0_bits_fpu_isa_fsub_s(iss_stage_io_dptReq_0_bits_fpu_isa_fsub_s),
    .io_dptReq_0_bits_fpu_isa_fmul_s(iss_stage_io_dptReq_0_bits_fpu_isa_fmul_s),
    .io_dptReq_0_bits_fpu_isa_fdiv_s(iss_stage_io_dptReq_0_bits_fpu_isa_fdiv_s),
    .io_dptReq_0_bits_fpu_isa_fsqrt_s(iss_stage_io_dptReq_0_bits_fpu_isa_fsqrt_s),
    .io_dptReq_0_bits_fpu_isa_fsgnj_s(iss_stage_io_dptReq_0_bits_fpu_isa_fsgnj_s),
    .io_dptReq_0_bits_fpu_isa_fsgnjn_s(iss_stage_io_dptReq_0_bits_fpu_isa_fsgnjn_s),
    .io_dptReq_0_bits_fpu_isa_fsgnjx_s(iss_stage_io_dptReq_0_bits_fpu_isa_fsgnjx_s),
    .io_dptReq_0_bits_fpu_isa_fmin_s(iss_stage_io_dptReq_0_bits_fpu_isa_fmin_s),
    .io_dptReq_0_bits_fpu_isa_fmax_s(iss_stage_io_dptReq_0_bits_fpu_isa_fmax_s),
    .io_dptReq_0_bits_fpu_isa_fcvt_w_s(iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_w_s),
    .io_dptReq_0_bits_fpu_isa_fcvt_wu_s(iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_wu_s),
    .io_dptReq_0_bits_fpu_isa_fmv_x_w(iss_stage_io_dptReq_0_bits_fpu_isa_fmv_x_w),
    .io_dptReq_0_bits_fpu_isa_feq_s(iss_stage_io_dptReq_0_bits_fpu_isa_feq_s),
    .io_dptReq_0_bits_fpu_isa_flt_s(iss_stage_io_dptReq_0_bits_fpu_isa_flt_s),
    .io_dptReq_0_bits_fpu_isa_fle_s(iss_stage_io_dptReq_0_bits_fpu_isa_fle_s),
    .io_dptReq_0_bits_fpu_isa_fclass_s(iss_stage_io_dptReq_0_bits_fpu_isa_fclass_s),
    .io_dptReq_0_bits_fpu_isa_fcvt_l_s(iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_l_s),
    .io_dptReq_0_bits_fpu_isa_fcvt_lu_s(iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_lu_s),
    .io_dptReq_0_bits_fpu_isa_fmadd_d(iss_stage_io_dptReq_0_bits_fpu_isa_fmadd_d),
    .io_dptReq_0_bits_fpu_isa_fmsub_d(iss_stage_io_dptReq_0_bits_fpu_isa_fmsub_d),
    .io_dptReq_0_bits_fpu_isa_fnmsub_d(iss_stage_io_dptReq_0_bits_fpu_isa_fnmsub_d),
    .io_dptReq_0_bits_fpu_isa_fnmadd_d(iss_stage_io_dptReq_0_bits_fpu_isa_fnmadd_d),
    .io_dptReq_0_bits_fpu_isa_fadd_d(iss_stage_io_dptReq_0_bits_fpu_isa_fadd_d),
    .io_dptReq_0_bits_fpu_isa_fsub_d(iss_stage_io_dptReq_0_bits_fpu_isa_fsub_d),
    .io_dptReq_0_bits_fpu_isa_fmul_d(iss_stage_io_dptReq_0_bits_fpu_isa_fmul_d),
    .io_dptReq_0_bits_fpu_isa_fdiv_d(iss_stage_io_dptReq_0_bits_fpu_isa_fdiv_d),
    .io_dptReq_0_bits_fpu_isa_fsqrt_d(iss_stage_io_dptReq_0_bits_fpu_isa_fsqrt_d),
    .io_dptReq_0_bits_fpu_isa_fsgnj_d(iss_stage_io_dptReq_0_bits_fpu_isa_fsgnj_d),
    .io_dptReq_0_bits_fpu_isa_fsgnjn_d(iss_stage_io_dptReq_0_bits_fpu_isa_fsgnjn_d),
    .io_dptReq_0_bits_fpu_isa_fsgnjx_d(iss_stage_io_dptReq_0_bits_fpu_isa_fsgnjx_d),
    .io_dptReq_0_bits_fpu_isa_fmin_d(iss_stage_io_dptReq_0_bits_fpu_isa_fmin_d),
    .io_dptReq_0_bits_fpu_isa_fmax_d(iss_stage_io_dptReq_0_bits_fpu_isa_fmax_d),
    .io_dptReq_0_bits_fpu_isa_fcvt_s_d(iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_s_d),
    .io_dptReq_0_bits_fpu_isa_fcvt_d_s(iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_d_s),
    .io_dptReq_0_bits_fpu_isa_feq_d(iss_stage_io_dptReq_0_bits_fpu_isa_feq_d),
    .io_dptReq_0_bits_fpu_isa_flt_d(iss_stage_io_dptReq_0_bits_fpu_isa_flt_d),
    .io_dptReq_0_bits_fpu_isa_fle_d(iss_stage_io_dptReq_0_bits_fpu_isa_fle_d),
    .io_dptReq_0_bits_fpu_isa_fclass_d(iss_stage_io_dptReq_0_bits_fpu_isa_fclass_d),
    .io_dptReq_0_bits_fpu_isa_fcvt_w_d(iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_w_d),
    .io_dptReq_0_bits_fpu_isa_fcvt_wu_d(iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_wu_d),
    .io_dptReq_0_bits_fpu_isa_fcvt_l_d(iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_l_d),
    .io_dptReq_0_bits_fpu_isa_fcvt_lu_d(iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_lu_d),
    .io_dptReq_0_bits_fpu_isa_fmv_x_d(iss_stage_io_dptReq_0_bits_fpu_isa_fmv_x_d),
    .io_dptReq_0_bits_param_is_rvc(iss_stage_io_dptReq_0_bits_param_is_rvc),
    .io_dptReq_0_bits_param_pc(iss_stage_io_dptReq_0_bits_param_pc),
    .io_dptReq_0_bits_param_imm(iss_stage_io_dptReq_0_bits_param_imm),
    .io_dptReq_0_bits_param_raw_rs1(iss_stage_io_dptReq_0_bits_param_raw_rs1),
    .io_dptReq_0_bits_phy_rs1(iss_stage_io_dptReq_0_bits_phy_rs1),
    .io_dptReq_0_bits_phy_rs2(iss_stage_io_dptReq_0_bits_phy_rs2),
    .io_dptReq_0_bits_phy_rs3(iss_stage_io_dptReq_0_bits_phy_rs3),
    .io_dptReq_0_bits_phy_rd0(iss_stage_io_dptReq_0_bits_phy_rd0),
    .io_alu_iss_exe_0_ready(iss_stage_io_alu_iss_exe_0_ready),
    .io_alu_iss_exe_0_valid(iss_stage_io_alu_iss_exe_0_valid),
    .io_alu_iss_exe_0_bits_fun_add(iss_stage_io_alu_iss_exe_0_bits_fun_add),
    .io_alu_iss_exe_0_bits_fun_slt(iss_stage_io_alu_iss_exe_0_bits_fun_slt),
    .io_alu_iss_exe_0_bits_fun_xor(iss_stage_io_alu_iss_exe_0_bits_fun_xor),
    .io_alu_iss_exe_0_bits_fun_or(iss_stage_io_alu_iss_exe_0_bits_fun_or),
    .io_alu_iss_exe_0_bits_fun_and(iss_stage_io_alu_iss_exe_0_bits_fun_and),
    .io_alu_iss_exe_0_bits_fun_sll(iss_stage_io_alu_iss_exe_0_bits_fun_sll),
    .io_alu_iss_exe_0_bits_fun_srl(iss_stage_io_alu_iss_exe_0_bits_fun_srl),
    .io_alu_iss_exe_0_bits_fun_sra(iss_stage_io_alu_iss_exe_0_bits_fun_sra),
    .io_alu_iss_exe_0_bits_param_rd0(iss_stage_io_alu_iss_exe_0_bits_param_rd0),
    .io_alu_iss_exe_0_bits_param_is_32w(iss_stage_io_alu_iss_exe_0_bits_param_is_32w),
    .io_alu_iss_exe_0_bits_param_is_usi(iss_stage_io_alu_iss_exe_0_bits_param_is_usi),
    .io_alu_iss_exe_0_bits_param_dat_op1(iss_stage_io_alu_iss_exe_0_bits_param_dat_op1),
    .io_alu_iss_exe_0_bits_param_dat_op2(iss_stage_io_alu_iss_exe_0_bits_param_dat_op2),
    .io_mul_iss_exe_0_ready(iss_stage_io_mul_iss_exe_0_ready),
    .io_mul_iss_exe_0_valid(iss_stage_io_mul_iss_exe_0_valid),
    .io_mul_iss_exe_0_bits_fun_mul(iss_stage_io_mul_iss_exe_0_bits_fun_mul),
    .io_mul_iss_exe_0_bits_fun_mulh(iss_stage_io_mul_iss_exe_0_bits_fun_mulh),
    .io_mul_iss_exe_0_bits_fun_mulhsu(iss_stage_io_mul_iss_exe_0_bits_fun_mulhsu),
    .io_mul_iss_exe_0_bits_fun_mulhu(iss_stage_io_mul_iss_exe_0_bits_fun_mulhu),
    .io_mul_iss_exe_0_bits_fun_div(iss_stage_io_mul_iss_exe_0_bits_fun_div),
    .io_mul_iss_exe_0_bits_fun_divu(iss_stage_io_mul_iss_exe_0_bits_fun_divu),
    .io_mul_iss_exe_0_bits_fun_rem(iss_stage_io_mul_iss_exe_0_bits_fun_rem),
    .io_mul_iss_exe_0_bits_fun_remu(iss_stage_io_mul_iss_exe_0_bits_fun_remu),
    .io_mul_iss_exe_0_bits_fun_mulw(iss_stage_io_mul_iss_exe_0_bits_fun_mulw),
    .io_mul_iss_exe_0_bits_fun_divw(iss_stage_io_mul_iss_exe_0_bits_fun_divw),
    .io_mul_iss_exe_0_bits_fun_divuw(iss_stage_io_mul_iss_exe_0_bits_fun_divuw),
    .io_mul_iss_exe_0_bits_fun_remw(iss_stage_io_mul_iss_exe_0_bits_fun_remw),
    .io_mul_iss_exe_0_bits_fun_remuw(iss_stage_io_mul_iss_exe_0_bits_fun_remuw),
    .io_mul_iss_exe_0_bits_param_rd0(iss_stage_io_mul_iss_exe_0_bits_param_rd0),
    .io_mul_iss_exe_0_bits_param_dat_op1(iss_stage_io_mul_iss_exe_0_bits_param_dat_op1),
    .io_mul_iss_exe_0_bits_param_dat_op2(iss_stage_io_mul_iss_exe_0_bits_param_dat_op2),
    .io_bru_iss_exe_ready(iss_stage_io_bru_iss_exe_ready),
    .io_bru_iss_exe_valid(iss_stage_io_bru_iss_exe_valid),
    .io_bru_iss_exe_bits_fun_jalr(iss_stage_io_bru_iss_exe_bits_fun_jalr),
    .io_bru_iss_exe_bits_fun_beq(iss_stage_io_bru_iss_exe_bits_fun_beq),
    .io_bru_iss_exe_bits_fun_bne(iss_stage_io_bru_iss_exe_bits_fun_bne),
    .io_bru_iss_exe_bits_fun_blt(iss_stage_io_bru_iss_exe_bits_fun_blt),
    .io_bru_iss_exe_bits_fun_bge(iss_stage_io_bru_iss_exe_bits_fun_bge),
    .io_bru_iss_exe_bits_fun_bltu(iss_stage_io_bru_iss_exe_bits_fun_bltu),
    .io_bru_iss_exe_bits_fun_bgeu(iss_stage_io_bru_iss_exe_bits_fun_bgeu),
    .io_bru_iss_exe_bits_param_rd0(iss_stage_io_bru_iss_exe_bits_param_rd0),
    .io_bru_iss_exe_bits_param_is_rvc(iss_stage_io_bru_iss_exe_bits_param_is_rvc),
    .io_bru_iss_exe_bits_param_pc(iss_stage_io_bru_iss_exe_bits_param_pc),
    .io_bru_iss_exe_bits_param_imm(iss_stage_io_bru_iss_exe_bits_param_imm),
    .io_bru_iss_exe_bits_param_dat_op1(iss_stage_io_bru_iss_exe_bits_param_dat_op1),
    .io_bru_iss_exe_bits_param_dat_op2(iss_stage_io_bru_iss_exe_bits_param_dat_op2),
    .io_csr_iss_exe_ready(iss_stage_io_csr_iss_exe_ready),
    .io_csr_iss_exe_valid(iss_stage_io_csr_iss_exe_valid),
    .io_csr_iss_exe_bits_fun_rw(iss_stage_io_csr_iss_exe_bits_fun_rw),
    .io_csr_iss_exe_bits_fun_rs(iss_stage_io_csr_iss_exe_bits_fun_rs),
    .io_csr_iss_exe_bits_fun_rc(iss_stage_io_csr_iss_exe_bits_fun_rc),
    .io_csr_iss_exe_bits_param_rd0(iss_stage_io_csr_iss_exe_bits_param_rd0),
    .io_csr_iss_exe_bits_param_dat_op1(iss_stage_io_csr_iss_exe_bits_param_dat_op1),
    .io_csr_iss_exe_bits_param_dat_op2(iss_stage_io_csr_iss_exe_bits_param_dat_op2),
    .io_lsu_iss_exe_ready(iss_stage_io_lsu_iss_exe_ready),
    .io_lsu_iss_exe_valid(iss_stage_io_lsu_iss_exe_valid),
    .io_lsu_iss_exe_bits_fun_lb(iss_stage_io_lsu_iss_exe_bits_fun_lb),
    .io_lsu_iss_exe_bits_fun_lh(iss_stage_io_lsu_iss_exe_bits_fun_lh),
    .io_lsu_iss_exe_bits_fun_lw(iss_stage_io_lsu_iss_exe_bits_fun_lw),
    .io_lsu_iss_exe_bits_fun_ld(iss_stage_io_lsu_iss_exe_bits_fun_ld),
    .io_lsu_iss_exe_bits_fun_lbu(iss_stage_io_lsu_iss_exe_bits_fun_lbu),
    .io_lsu_iss_exe_bits_fun_lhu(iss_stage_io_lsu_iss_exe_bits_fun_lhu),
    .io_lsu_iss_exe_bits_fun_lwu(iss_stage_io_lsu_iss_exe_bits_fun_lwu),
    .io_lsu_iss_exe_bits_fun_sb(iss_stage_io_lsu_iss_exe_bits_fun_sb),
    .io_lsu_iss_exe_bits_fun_sh(iss_stage_io_lsu_iss_exe_bits_fun_sh),
    .io_lsu_iss_exe_bits_fun_sw(iss_stage_io_lsu_iss_exe_bits_fun_sw),
    .io_lsu_iss_exe_bits_fun_sd(iss_stage_io_lsu_iss_exe_bits_fun_sd),
    .io_lsu_iss_exe_bits_fun_fence(iss_stage_io_lsu_iss_exe_bits_fun_fence),
    .io_lsu_iss_exe_bits_fun_fence_i(iss_stage_io_lsu_iss_exe_bits_fun_fence_i),
    .io_lsu_iss_exe_bits_fun_sfence_vma(iss_stage_io_lsu_iss_exe_bits_fun_sfence_vma),
    .io_lsu_iss_exe_bits_fun_lr_w(iss_stage_io_lsu_iss_exe_bits_fun_lr_w),
    .io_lsu_iss_exe_bits_fun_sc_w(iss_stage_io_lsu_iss_exe_bits_fun_sc_w),
    .io_lsu_iss_exe_bits_fun_amoswap_w(iss_stage_io_lsu_iss_exe_bits_fun_amoswap_w),
    .io_lsu_iss_exe_bits_fun_amoadd_w(iss_stage_io_lsu_iss_exe_bits_fun_amoadd_w),
    .io_lsu_iss_exe_bits_fun_amoxor_w(iss_stage_io_lsu_iss_exe_bits_fun_amoxor_w),
    .io_lsu_iss_exe_bits_fun_amoand_w(iss_stage_io_lsu_iss_exe_bits_fun_amoand_w),
    .io_lsu_iss_exe_bits_fun_amoor_w(iss_stage_io_lsu_iss_exe_bits_fun_amoor_w),
    .io_lsu_iss_exe_bits_fun_amomin_w(iss_stage_io_lsu_iss_exe_bits_fun_amomin_w),
    .io_lsu_iss_exe_bits_fun_amomax_w(iss_stage_io_lsu_iss_exe_bits_fun_amomax_w),
    .io_lsu_iss_exe_bits_fun_amominu_w(iss_stage_io_lsu_iss_exe_bits_fun_amominu_w),
    .io_lsu_iss_exe_bits_fun_amomaxu_w(iss_stage_io_lsu_iss_exe_bits_fun_amomaxu_w),
    .io_lsu_iss_exe_bits_fun_lr_d(iss_stage_io_lsu_iss_exe_bits_fun_lr_d),
    .io_lsu_iss_exe_bits_fun_sc_d(iss_stage_io_lsu_iss_exe_bits_fun_sc_d),
    .io_lsu_iss_exe_bits_fun_amoswap_d(iss_stage_io_lsu_iss_exe_bits_fun_amoswap_d),
    .io_lsu_iss_exe_bits_fun_amoadd_d(iss_stage_io_lsu_iss_exe_bits_fun_amoadd_d),
    .io_lsu_iss_exe_bits_fun_amoxor_d(iss_stage_io_lsu_iss_exe_bits_fun_amoxor_d),
    .io_lsu_iss_exe_bits_fun_amoand_d(iss_stage_io_lsu_iss_exe_bits_fun_amoand_d),
    .io_lsu_iss_exe_bits_fun_amoor_d(iss_stage_io_lsu_iss_exe_bits_fun_amoor_d),
    .io_lsu_iss_exe_bits_fun_amomin_d(iss_stage_io_lsu_iss_exe_bits_fun_amomin_d),
    .io_lsu_iss_exe_bits_fun_amomax_d(iss_stage_io_lsu_iss_exe_bits_fun_amomax_d),
    .io_lsu_iss_exe_bits_fun_amominu_d(iss_stage_io_lsu_iss_exe_bits_fun_amominu_d),
    .io_lsu_iss_exe_bits_fun_amomaxu_d(iss_stage_io_lsu_iss_exe_bits_fun_amomaxu_d),
    .io_lsu_iss_exe_bits_fun_flw(iss_stage_io_lsu_iss_exe_bits_fun_flw),
    .io_lsu_iss_exe_bits_fun_fsw(iss_stage_io_lsu_iss_exe_bits_fun_fsw),
    .io_lsu_iss_exe_bits_fun_fld(iss_stage_io_lsu_iss_exe_bits_fun_fld),
    .io_lsu_iss_exe_bits_fun_fsd(iss_stage_io_lsu_iss_exe_bits_fun_fsd),
    .io_lsu_iss_exe_bits_param_rd0(iss_stage_io_lsu_iss_exe_bits_param_rd0),
    .io_lsu_iss_exe_bits_param_dat_op1(iss_stage_io_lsu_iss_exe_bits_param_dat_op1),
    .io_lsu_iss_exe_bits_param_dat_op2(iss_stage_io_lsu_iss_exe_bits_param_dat_op2),
    .io_irgLog_0(iss_stage_io_irgLog_0),
    .io_irgLog_1(iss_stage_io_irgLog_1),
    .io_irgLog_2(iss_stage_io_irgLog_2),
    .io_irgLog_3(iss_stage_io_irgLog_3),
    .io_irgLog_4(iss_stage_io_irgLog_4),
    .io_irgLog_5(iss_stage_io_irgLog_5),
    .io_irgLog_6(iss_stage_io_irgLog_6),
    .io_irgLog_7(iss_stage_io_irgLog_7),
    .io_irgLog_8(iss_stage_io_irgLog_8),
    .io_irgLog_9(iss_stage_io_irgLog_9),
    .io_irgLog_10(iss_stage_io_irgLog_10),
    .io_irgLog_11(iss_stage_io_irgLog_11),
    .io_irgLog_12(iss_stage_io_irgLog_12),
    .io_irgLog_13(iss_stage_io_irgLog_13),
    .io_irgLog_14(iss_stage_io_irgLog_14),
    .io_irgLog_15(iss_stage_io_irgLog_15),
    .io_irgLog_16(iss_stage_io_irgLog_16),
    .io_irgLog_17(iss_stage_io_irgLog_17),
    .io_irgLog_18(iss_stage_io_irgLog_18),
    .io_irgLog_19(iss_stage_io_irgLog_19),
    .io_irgLog_20(iss_stage_io_irgLog_20),
    .io_irgLog_21(iss_stage_io_irgLog_21),
    .io_irgLog_22(iss_stage_io_irgLog_22),
    .io_irgLog_23(iss_stage_io_irgLog_23),
    .io_irgLog_24(iss_stage_io_irgLog_24),
    .io_irgLog_25(iss_stage_io_irgLog_25),
    .io_irgLog_26(iss_stage_io_irgLog_26),
    .io_irgLog_27(iss_stage_io_irgLog_27),
    .io_irgLog_28(iss_stage_io_irgLog_28),
    .io_irgLog_29(iss_stage_io_irgLog_29),
    .io_irgLog_30(iss_stage_io_irgLog_30),
    .io_irgLog_31(iss_stage_io_irgLog_31),
    .io_irgLog_32(iss_stage_io_irgLog_32),
    .io_irgReq_0_valid(iss_stage_io_irgReq_0_valid),
    .io_irgReq_0_bits(iss_stage_io_irgReq_0_bits),
    .io_irgReq_1_valid(iss_stage_io_irgReq_1_valid),
    .io_irgReq_1_bits(iss_stage_io_irgReq_1_bits),
    .io_irgRsp_0_valid(iss_stage_io_irgRsp_0_valid),
    .io_irgRsp_0_bits_phy(iss_stage_io_irgRsp_0_bits_phy),
    .io_irgRsp_0_bits_op(iss_stage_io_irgRsp_0_bits_op),
    .io_irgRsp_1_valid(iss_stage_io_irgRsp_1_valid),
    .io_irgRsp_1_bits_phy(iss_stage_io_irgRsp_1_bits_phy),
    .io_irgRsp_1_bits_op(iss_stage_io_irgRsp_1_bits_op),
    .io_flush(iss_stage_io_flush)
  );
  Execute exe_stage ( // @[rift2Core.scala 153:21]
    .clock(exe_stage_clock),
    .reset(exe_stage_reset),
    .io_alu_iss_exe_0_ready(exe_stage_io_alu_iss_exe_0_ready),
    .io_alu_iss_exe_0_valid(exe_stage_io_alu_iss_exe_0_valid),
    .io_alu_iss_exe_0_bits_fun_add(exe_stage_io_alu_iss_exe_0_bits_fun_add),
    .io_alu_iss_exe_0_bits_fun_slt(exe_stage_io_alu_iss_exe_0_bits_fun_slt),
    .io_alu_iss_exe_0_bits_fun_xor(exe_stage_io_alu_iss_exe_0_bits_fun_xor),
    .io_alu_iss_exe_0_bits_fun_or(exe_stage_io_alu_iss_exe_0_bits_fun_or),
    .io_alu_iss_exe_0_bits_fun_and(exe_stage_io_alu_iss_exe_0_bits_fun_and),
    .io_alu_iss_exe_0_bits_fun_sll(exe_stage_io_alu_iss_exe_0_bits_fun_sll),
    .io_alu_iss_exe_0_bits_fun_srl(exe_stage_io_alu_iss_exe_0_bits_fun_srl),
    .io_alu_iss_exe_0_bits_fun_sra(exe_stage_io_alu_iss_exe_0_bits_fun_sra),
    .io_alu_iss_exe_0_bits_param_rd0(exe_stage_io_alu_iss_exe_0_bits_param_rd0),
    .io_alu_iss_exe_0_bits_param_is_32w(exe_stage_io_alu_iss_exe_0_bits_param_is_32w),
    .io_alu_iss_exe_0_bits_param_is_usi(exe_stage_io_alu_iss_exe_0_bits_param_is_usi),
    .io_alu_iss_exe_0_bits_param_dat_op1(exe_stage_io_alu_iss_exe_0_bits_param_dat_op1),
    .io_alu_iss_exe_0_bits_param_dat_op2(exe_stage_io_alu_iss_exe_0_bits_param_dat_op2),
    .io_alu_exe_iwb_0_ready(exe_stage_io_alu_exe_iwb_0_ready),
    .io_alu_exe_iwb_0_valid(exe_stage_io_alu_exe_iwb_0_valid),
    .io_alu_exe_iwb_0_bits_rd0(exe_stage_io_alu_exe_iwb_0_bits_rd0),
    .io_alu_exe_iwb_0_bits_res(exe_stage_io_alu_exe_iwb_0_bits_res),
    .io_bru_iss_exe_ready(exe_stage_io_bru_iss_exe_ready),
    .io_bru_iss_exe_valid(exe_stage_io_bru_iss_exe_valid),
    .io_bru_iss_exe_bits_fun_jalr(exe_stage_io_bru_iss_exe_bits_fun_jalr),
    .io_bru_iss_exe_bits_fun_beq(exe_stage_io_bru_iss_exe_bits_fun_beq),
    .io_bru_iss_exe_bits_fun_bne(exe_stage_io_bru_iss_exe_bits_fun_bne),
    .io_bru_iss_exe_bits_fun_blt(exe_stage_io_bru_iss_exe_bits_fun_blt),
    .io_bru_iss_exe_bits_fun_bge(exe_stage_io_bru_iss_exe_bits_fun_bge),
    .io_bru_iss_exe_bits_fun_bltu(exe_stage_io_bru_iss_exe_bits_fun_bltu),
    .io_bru_iss_exe_bits_fun_bgeu(exe_stage_io_bru_iss_exe_bits_fun_bgeu),
    .io_bru_iss_exe_bits_param_rd0(exe_stage_io_bru_iss_exe_bits_param_rd0),
    .io_bru_iss_exe_bits_param_is_rvc(exe_stage_io_bru_iss_exe_bits_param_is_rvc),
    .io_bru_iss_exe_bits_param_pc(exe_stage_io_bru_iss_exe_bits_param_pc),
    .io_bru_iss_exe_bits_param_imm(exe_stage_io_bru_iss_exe_bits_param_imm),
    .io_bru_iss_exe_bits_param_dat_op1(exe_stage_io_bru_iss_exe_bits_param_dat_op1),
    .io_bru_iss_exe_bits_param_dat_op2(exe_stage_io_bru_iss_exe_bits_param_dat_op2),
    .io_bru_exe_iwb_ready(exe_stage_io_bru_exe_iwb_ready),
    .io_bru_exe_iwb_valid(exe_stage_io_bru_exe_iwb_valid),
    .io_bru_exe_iwb_bits_rd0(exe_stage_io_bru_exe_iwb_bits_rd0),
    .io_bru_exe_iwb_bits_res(exe_stage_io_bru_exe_iwb_bits_res),
    .io_csr_iss_exe_ready(exe_stage_io_csr_iss_exe_ready),
    .io_csr_iss_exe_valid(exe_stage_io_csr_iss_exe_valid),
    .io_csr_iss_exe_bits_fun_rw(exe_stage_io_csr_iss_exe_bits_fun_rw),
    .io_csr_iss_exe_bits_fun_rs(exe_stage_io_csr_iss_exe_bits_fun_rs),
    .io_csr_iss_exe_bits_fun_rc(exe_stage_io_csr_iss_exe_bits_fun_rc),
    .io_csr_iss_exe_bits_param_rd0(exe_stage_io_csr_iss_exe_bits_param_rd0),
    .io_csr_iss_exe_bits_param_dat_op1(exe_stage_io_csr_iss_exe_bits_param_dat_op1),
    .io_csr_iss_exe_bits_param_dat_op2(exe_stage_io_csr_iss_exe_bits_param_dat_op2),
    .io_csr_exe_iwb_ready(exe_stage_io_csr_exe_iwb_ready),
    .io_csr_exe_iwb_valid(exe_stage_io_csr_exe_iwb_valid),
    .io_csr_exe_iwb_bits_rd0(exe_stage_io_csr_exe_iwb_bits_rd0),
    .io_csr_exe_iwb_bits_res(exe_stage_io_csr_exe_iwb_bits_res),
    .io_lsu_iss_exe_ready(exe_stage_io_lsu_iss_exe_ready),
    .io_lsu_iss_exe_valid(exe_stage_io_lsu_iss_exe_valid),
    .io_lsu_iss_exe_bits_fun_lb(exe_stage_io_lsu_iss_exe_bits_fun_lb),
    .io_lsu_iss_exe_bits_fun_lh(exe_stage_io_lsu_iss_exe_bits_fun_lh),
    .io_lsu_iss_exe_bits_fun_lw(exe_stage_io_lsu_iss_exe_bits_fun_lw),
    .io_lsu_iss_exe_bits_fun_ld(exe_stage_io_lsu_iss_exe_bits_fun_ld),
    .io_lsu_iss_exe_bits_fun_lbu(exe_stage_io_lsu_iss_exe_bits_fun_lbu),
    .io_lsu_iss_exe_bits_fun_lhu(exe_stage_io_lsu_iss_exe_bits_fun_lhu),
    .io_lsu_iss_exe_bits_fun_lwu(exe_stage_io_lsu_iss_exe_bits_fun_lwu),
    .io_lsu_iss_exe_bits_fun_sb(exe_stage_io_lsu_iss_exe_bits_fun_sb),
    .io_lsu_iss_exe_bits_fun_sh(exe_stage_io_lsu_iss_exe_bits_fun_sh),
    .io_lsu_iss_exe_bits_fun_sw(exe_stage_io_lsu_iss_exe_bits_fun_sw),
    .io_lsu_iss_exe_bits_fun_sd(exe_stage_io_lsu_iss_exe_bits_fun_sd),
    .io_lsu_iss_exe_bits_fun_fence(exe_stage_io_lsu_iss_exe_bits_fun_fence),
    .io_lsu_iss_exe_bits_fun_fence_i(exe_stage_io_lsu_iss_exe_bits_fun_fence_i),
    .io_lsu_iss_exe_bits_fun_sfence_vma(exe_stage_io_lsu_iss_exe_bits_fun_sfence_vma),
    .io_lsu_iss_exe_bits_fun_lr_w(exe_stage_io_lsu_iss_exe_bits_fun_lr_w),
    .io_lsu_iss_exe_bits_fun_sc_w(exe_stage_io_lsu_iss_exe_bits_fun_sc_w),
    .io_lsu_iss_exe_bits_fun_amoswap_w(exe_stage_io_lsu_iss_exe_bits_fun_amoswap_w),
    .io_lsu_iss_exe_bits_fun_amoadd_w(exe_stage_io_lsu_iss_exe_bits_fun_amoadd_w),
    .io_lsu_iss_exe_bits_fun_amoxor_w(exe_stage_io_lsu_iss_exe_bits_fun_amoxor_w),
    .io_lsu_iss_exe_bits_fun_amoand_w(exe_stage_io_lsu_iss_exe_bits_fun_amoand_w),
    .io_lsu_iss_exe_bits_fun_amoor_w(exe_stage_io_lsu_iss_exe_bits_fun_amoor_w),
    .io_lsu_iss_exe_bits_fun_amomin_w(exe_stage_io_lsu_iss_exe_bits_fun_amomin_w),
    .io_lsu_iss_exe_bits_fun_amomax_w(exe_stage_io_lsu_iss_exe_bits_fun_amomax_w),
    .io_lsu_iss_exe_bits_fun_amominu_w(exe_stage_io_lsu_iss_exe_bits_fun_amominu_w),
    .io_lsu_iss_exe_bits_fun_amomaxu_w(exe_stage_io_lsu_iss_exe_bits_fun_amomaxu_w),
    .io_lsu_iss_exe_bits_fun_lr_d(exe_stage_io_lsu_iss_exe_bits_fun_lr_d),
    .io_lsu_iss_exe_bits_fun_sc_d(exe_stage_io_lsu_iss_exe_bits_fun_sc_d),
    .io_lsu_iss_exe_bits_fun_amoswap_d(exe_stage_io_lsu_iss_exe_bits_fun_amoswap_d),
    .io_lsu_iss_exe_bits_fun_amoadd_d(exe_stage_io_lsu_iss_exe_bits_fun_amoadd_d),
    .io_lsu_iss_exe_bits_fun_amoxor_d(exe_stage_io_lsu_iss_exe_bits_fun_amoxor_d),
    .io_lsu_iss_exe_bits_fun_amoand_d(exe_stage_io_lsu_iss_exe_bits_fun_amoand_d),
    .io_lsu_iss_exe_bits_fun_amoor_d(exe_stage_io_lsu_iss_exe_bits_fun_amoor_d),
    .io_lsu_iss_exe_bits_fun_amomin_d(exe_stage_io_lsu_iss_exe_bits_fun_amomin_d),
    .io_lsu_iss_exe_bits_fun_amomax_d(exe_stage_io_lsu_iss_exe_bits_fun_amomax_d),
    .io_lsu_iss_exe_bits_fun_amominu_d(exe_stage_io_lsu_iss_exe_bits_fun_amominu_d),
    .io_lsu_iss_exe_bits_fun_amomaxu_d(exe_stage_io_lsu_iss_exe_bits_fun_amomaxu_d),
    .io_lsu_iss_exe_bits_fun_flw(exe_stage_io_lsu_iss_exe_bits_fun_flw),
    .io_lsu_iss_exe_bits_fun_fsw(exe_stage_io_lsu_iss_exe_bits_fun_fsw),
    .io_lsu_iss_exe_bits_fun_fld(exe_stage_io_lsu_iss_exe_bits_fun_fld),
    .io_lsu_iss_exe_bits_fun_fsd(exe_stage_io_lsu_iss_exe_bits_fun_fsd),
    .io_lsu_iss_exe_bits_param_rd0(exe_stage_io_lsu_iss_exe_bits_param_rd0),
    .io_lsu_iss_exe_bits_param_dat_op1(exe_stage_io_lsu_iss_exe_bits_param_dat_op1),
    .io_lsu_iss_exe_bits_param_dat_op2(exe_stage_io_lsu_iss_exe_bits_param_dat_op2),
    .io_lsu_exe_iwb_ready(exe_stage_io_lsu_exe_iwb_ready),
    .io_lsu_exe_iwb_valid(exe_stage_io_lsu_exe_iwb_valid),
    .io_lsu_exe_iwb_bits_rd0(exe_stage_io_lsu_exe_iwb_bits_rd0),
    .io_lsu_exe_iwb_bits_res(exe_stage_io_lsu_exe_iwb_bits_res),
    .io_lsu_exe_fwb_valid(exe_stage_io_lsu_exe_fwb_valid),
    .io_mul_iss_exe_0_ready(exe_stage_io_mul_iss_exe_0_ready),
    .io_mul_iss_exe_0_valid(exe_stage_io_mul_iss_exe_0_valid),
    .io_mul_iss_exe_0_bits_fun_mul(exe_stage_io_mul_iss_exe_0_bits_fun_mul),
    .io_mul_iss_exe_0_bits_fun_mulh(exe_stage_io_mul_iss_exe_0_bits_fun_mulh),
    .io_mul_iss_exe_0_bits_fun_mulhsu(exe_stage_io_mul_iss_exe_0_bits_fun_mulhsu),
    .io_mul_iss_exe_0_bits_fun_mulhu(exe_stage_io_mul_iss_exe_0_bits_fun_mulhu),
    .io_mul_iss_exe_0_bits_fun_div(exe_stage_io_mul_iss_exe_0_bits_fun_div),
    .io_mul_iss_exe_0_bits_fun_divu(exe_stage_io_mul_iss_exe_0_bits_fun_divu),
    .io_mul_iss_exe_0_bits_fun_rem(exe_stage_io_mul_iss_exe_0_bits_fun_rem),
    .io_mul_iss_exe_0_bits_fun_remu(exe_stage_io_mul_iss_exe_0_bits_fun_remu),
    .io_mul_iss_exe_0_bits_fun_mulw(exe_stage_io_mul_iss_exe_0_bits_fun_mulw),
    .io_mul_iss_exe_0_bits_fun_divw(exe_stage_io_mul_iss_exe_0_bits_fun_divw),
    .io_mul_iss_exe_0_bits_fun_divuw(exe_stage_io_mul_iss_exe_0_bits_fun_divuw),
    .io_mul_iss_exe_0_bits_fun_remw(exe_stage_io_mul_iss_exe_0_bits_fun_remw),
    .io_mul_iss_exe_0_bits_fun_remuw(exe_stage_io_mul_iss_exe_0_bits_fun_remuw),
    .io_mul_iss_exe_0_bits_param_rd0(exe_stage_io_mul_iss_exe_0_bits_param_rd0),
    .io_mul_iss_exe_0_bits_param_dat_op1(exe_stage_io_mul_iss_exe_0_bits_param_dat_op1),
    .io_mul_iss_exe_0_bits_param_dat_op2(exe_stage_io_mul_iss_exe_0_bits_param_dat_op2),
    .io_mul_exe_iwb_0_ready(exe_stage_io_mul_exe_iwb_0_ready),
    .io_mul_exe_iwb_0_valid(exe_stage_io_mul_exe_iwb_0_valid),
    .io_mul_exe_iwb_0_bits_rd0(exe_stage_io_mul_exe_iwb_0_bits_rd0),
    .io_mul_exe_iwb_0_bits_res(exe_stage_io_mul_exe_iwb_0_bits_res),
    .io_bftq_ready(exe_stage_io_bftq_ready),
    .io_bftq_valid(exe_stage_io_bftq_valid),
    .io_bftq_bits_pc(exe_stage_io_bftq_bits_pc),
    .io_bftq_bits_bimResp_bim_p(exe_stage_io_bftq_bits_bimResp_bim_p),
    .io_bftq_bits_bimResp_bim_h(exe_stage_io_bftq_bits_bimResp_bim_h),
    .io_bftq_bits_isPredictTaken(exe_stage_io_bftq_bits_isPredictTaken),
    .io_jftq_ready(exe_stage_io_jftq_ready),
    .io_jftq_valid(exe_stage_io_jftq_valid),
    .io_jftq_bits_pc(exe_stage_io_jftq_bits_pc),
    .io_jftq_bits_btbResp_target(exe_stage_io_jftq_bits_btbResp_target),
    .io_jftq_bits_rasResp_target(exe_stage_io_jftq_bits_rasResp_target),
    .io_jftq_bits_isRas(exe_stage_io_jftq_bits_isRas),
    .io_bctq_ready(exe_stage_io_bctq_ready),
    .io_bctq_valid(exe_stage_io_bctq_valid),
    .io_bctq_bits_isPredictTaken(exe_stage_io_bctq_bits_isPredictTaken),
    .io_bctq_bits_isFinalTaken(exe_stage_io_bctq_bits_isFinalTaken),
    .io_bctq_bits_finalTarget(exe_stage_io_bctq_bits_finalTarget),
    .io_jctq_ready(exe_stage_io_jctq_ready),
    .io_jctq_valid(exe_stage_io_jctq_valid),
    .io_jctq_bits_btbResp_target(exe_stage_io_jctq_bits_btbResp_target),
    .io_jctq_bits_rasResp_target(exe_stage_io_jctq_bits_rasResp_target),
    .io_jctq_bits_isRas(exe_stage_io_jctq_bits_isRas),
    .io_jctq_bits_finalTarget(exe_stage_io_jctq_bits_finalTarget),
    .io_bcmm_update_valid(exe_stage_io_bcmm_update_valid),
    .io_bcmm_update_bits_pc(exe_stage_io_bcmm_update_bits_pc),
    .io_bcmm_update_bits_bimResp_bim_p(exe_stage_io_bcmm_update_bits_bimResp_bim_p),
    .io_bcmm_update_bits_bimResp_bim_h(exe_stage_io_bcmm_update_bits_bimResp_bim_h),
    .io_bcmm_update_bits_isFinalTaken(exe_stage_io_bcmm_update_bits_isFinalTaken),
    .io_jcmm_update_valid(exe_stage_io_jcmm_update_valid),
    .io_jcmm_update_bits_pc(exe_stage_io_jcmm_update_bits_pc),
    .io_jcmm_update_bits_finalTarget(exe_stage_io_jcmm_update_bits_finalTarget),
    .io_csr_addr_valid(exe_stage_io_csr_addr_valid),
    .io_csr_addr_bits(exe_stage_io_csr_addr_bits),
    .io_csr_data_valid(exe_stage_io_csr_data_valid),
    .io_csr_data_bits(exe_stage_io_csr_data_bits),
    .io_csr_cmm_op_ready(exe_stage_io_csr_cmm_op_ready),
    .io_csr_cmm_op_valid(exe_stage_io_csr_cmm_op_valid),
    .io_csr_cmm_op_bits_addr(exe_stage_io_csr_cmm_op_bits_addr),
    .io_csr_cmm_op_bits_dat_i(exe_stage_io_csr_cmm_op_bits_dat_i),
    .io_csr_cmm_op_bits_op_rw(exe_stage_io_csr_cmm_op_bits_op_rw),
    .io_csr_cmm_op_bits_op_rs(exe_stage_io_csr_cmm_op_bits_op_rs),
    .io_csr_cmm_op_bits_op_rc(exe_stage_io_csr_cmm_op_bits_op_rc),
    .io_lsu_mmu_ready(exe_stage_io_lsu_mmu_ready),
    .io_lsu_mmu_valid(exe_stage_io_lsu_mmu_valid),
    .io_lsu_mmu_bits_is_W(exe_stage_io_lsu_mmu_bits_is_W),
    .io_lsu_mmu_bits_is_R(exe_stage_io_lsu_mmu_bits_is_R),
    .io_lsu_mmu_bits_vaddr(exe_stage_io_lsu_mmu_bits_vaddr),
    .io_mmu_lsu_ready(exe_stage_io_mmu_lsu_ready),
    .io_mmu_lsu_valid(exe_stage_io_mmu_lsu_valid),
    .io_mmu_lsu_bits_paddr(exe_stage_io_mmu_lsu_bits_paddr),
    .io_mmu_lsu_bits_is_paging_fault(exe_stage_io_mmu_lsu_bits_is_paging_fault),
    .io_mmu_lsu_bits_is_access_fault(exe_stage_io_mmu_lsu_bits_is_access_fault),
    .io_cmm_lsu_is_amo_pending(exe_stage_io_cmm_lsu_is_amo_pending),
    .io_cmm_lsu_is_store_commit_0(exe_stage_io_cmm_lsu_is_store_commit_0),
    .io_lsu_cmm_is_access_fault(exe_stage_io_lsu_cmm_is_access_fault),
    .io_lsu_cmm_is_paging_fault(exe_stage_io_lsu_cmm_is_paging_fault),
    .io_lsu_cmm_is_misAlign(exe_stage_io_lsu_cmm_is_misAlign),
    .io_lsu_cmm_trap_addr(exe_stage_io_lsu_cmm_trap_addr),
    .io_missUnit_dcache_acquire_ready(exe_stage_io_missUnit_dcache_acquire_ready),
    .io_missUnit_dcache_acquire_valid(exe_stage_io_missUnit_dcache_acquire_valid),
    .io_missUnit_dcache_acquire_bits_address(exe_stage_io_missUnit_dcache_acquire_bits_address),
    .io_missUnit_dcache_grant_ready(exe_stage_io_missUnit_dcache_grant_ready),
    .io_missUnit_dcache_grant_valid(exe_stage_io_missUnit_dcache_grant_valid),
    .io_missUnit_dcache_grant_bits_opcode(exe_stage_io_missUnit_dcache_grant_bits_opcode),
    .io_missUnit_dcache_grant_bits_size(exe_stage_io_missUnit_dcache_grant_bits_size),
    .io_missUnit_dcache_grant_bits_source(exe_stage_io_missUnit_dcache_grant_bits_source),
    .io_missUnit_dcache_grant_bits_sink(exe_stage_io_missUnit_dcache_grant_bits_sink),
    .io_missUnit_dcache_grant_bits_data(exe_stage_io_missUnit_dcache_grant_bits_data),
    .io_missUnit_dcache_grantAck_ready(exe_stage_io_missUnit_dcache_grantAck_ready),
    .io_missUnit_dcache_grantAck_valid(exe_stage_io_missUnit_dcache_grantAck_valid),
    .io_missUnit_dcache_grantAck_bits_sink(exe_stage_io_missUnit_dcache_grantAck_bits_sink),
    .io_probeUnit_dcache_probe_ready(exe_stage_io_probeUnit_dcache_probe_ready),
    .io_probeUnit_dcache_probe_valid(exe_stage_io_probeUnit_dcache_probe_valid),
    .io_probeUnit_dcache_probe_bits_address(exe_stage_io_probeUnit_dcache_probe_bits_address),
    .io_writeBackUnit_dcache_release_ready(exe_stage_io_writeBackUnit_dcache_release_ready),
    .io_writeBackUnit_dcache_release_valid(exe_stage_io_writeBackUnit_dcache_release_valid),
    .io_writeBackUnit_dcache_release_bits_opcode(exe_stage_io_writeBackUnit_dcache_release_bits_opcode),
    .io_writeBackUnit_dcache_release_bits_param(exe_stage_io_writeBackUnit_dcache_release_bits_param),
    .io_writeBackUnit_dcache_release_bits_size(exe_stage_io_writeBackUnit_dcache_release_bits_size),
    .io_writeBackUnit_dcache_release_bits_address(exe_stage_io_writeBackUnit_dcache_release_bits_address),
    .io_writeBackUnit_dcache_release_bits_data(exe_stage_io_writeBackUnit_dcache_release_bits_data),
    .io_writeBackUnit_dcache_grant_ready(exe_stage_io_writeBackUnit_dcache_grant_ready),
    .io_writeBackUnit_dcache_grant_valid(exe_stage_io_writeBackUnit_dcache_grant_valid),
    .io_writeBackUnit_dcache_grant_bits_source(exe_stage_io_writeBackUnit_dcache_grant_bits_source),
    .io_system_getPut_ready(exe_stage_io_system_getPut_ready),
    .io_system_getPut_valid(exe_stage_io_system_getPut_valid),
    .io_system_getPut_bits_opcode(exe_stage_io_system_getPut_bits_opcode),
    .io_system_getPut_bits_address(exe_stage_io_system_getPut_bits_address),
    .io_system_getPut_bits_mask(exe_stage_io_system_getPut_bits_mask),
    .io_system_getPut_bits_data(exe_stage_io_system_getPut_bits_data),
    .io_system_access_ready(exe_stage_io_system_access_ready),
    .io_system_access_valid(exe_stage_io_system_access_valid),
    .io_system_access_bits_opcode(exe_stage_io_system_access_bits_opcode),
    .io_system_access_bits_data(exe_stage_io_system_access_bits_data),
    .io_periph_getPut_ready(exe_stage_io_periph_getPut_ready),
    .io_periph_getPut_valid(exe_stage_io_periph_getPut_valid),
    .io_periph_getPut_bits_opcode(exe_stage_io_periph_getPut_bits_opcode),
    .io_periph_getPut_bits_address(exe_stage_io_periph_getPut_bits_address),
    .io_periph_getPut_bits_mask(exe_stage_io_periph_getPut_bits_mask),
    .io_periph_getPut_bits_data(exe_stage_io_periph_getPut_bits_data),
    .io_periph_access_ready(exe_stage_io_periph_access_ready),
    .io_periph_access_valid(exe_stage_io_periph_access_valid),
    .io_periph_access_bits_opcode(exe_stage_io_periph_access_bits_opcode),
    .io_periph_access_bits_data(exe_stage_io_periph_access_bits_data),
    .io_flush(exe_stage_io_flush)
  );
  WriteBack iwb_stage ( // @[rift2Core.scala 165:21]
    .clock(iwb_stage_clock),
    .reset(iwb_stage_reset),
    .io_xLookup_0_rsp_rs1(iwb_stage_io_xLookup_0_rsp_rs1),
    .io_xLookup_0_rsp_rs2(iwb_stage_io_xLookup_0_rsp_rs2),
    .io_xLookup_0_req_rs1(iwb_stage_io_xLookup_0_req_rs1),
    .io_xLookup_0_req_rs2(iwb_stage_io_xLookup_0_req_rs2),
    .io_xRename_0_rsp_rd0(iwb_stage_io_xRename_0_rsp_rd0),
    .io_xRename_0_req_ready(iwb_stage_io_xRename_0_req_ready),
    .io_xRename_0_req_valid(iwb_stage_io_xRename_0_req_valid),
    .io_xRename_0_req_bits_rd0(iwb_stage_io_xRename_0_req_bits_rd0),
    .io_irgLog_0(iwb_stage_io_irgLog_0),
    .io_irgLog_1(iwb_stage_io_irgLog_1),
    .io_irgLog_2(iwb_stage_io_irgLog_2),
    .io_irgLog_3(iwb_stage_io_irgLog_3),
    .io_irgLog_4(iwb_stage_io_irgLog_4),
    .io_irgLog_5(iwb_stage_io_irgLog_5),
    .io_irgLog_6(iwb_stage_io_irgLog_6),
    .io_irgLog_7(iwb_stage_io_irgLog_7),
    .io_irgLog_8(iwb_stage_io_irgLog_8),
    .io_irgLog_9(iwb_stage_io_irgLog_9),
    .io_irgLog_10(iwb_stage_io_irgLog_10),
    .io_irgLog_11(iwb_stage_io_irgLog_11),
    .io_irgLog_12(iwb_stage_io_irgLog_12),
    .io_irgLog_13(iwb_stage_io_irgLog_13),
    .io_irgLog_14(iwb_stage_io_irgLog_14),
    .io_irgLog_15(iwb_stage_io_irgLog_15),
    .io_irgLog_16(iwb_stage_io_irgLog_16),
    .io_irgLog_17(iwb_stage_io_irgLog_17),
    .io_irgLog_18(iwb_stage_io_irgLog_18),
    .io_irgLog_19(iwb_stage_io_irgLog_19),
    .io_irgLog_20(iwb_stage_io_irgLog_20),
    .io_irgLog_21(iwb_stage_io_irgLog_21),
    .io_irgLog_22(iwb_stage_io_irgLog_22),
    .io_irgLog_23(iwb_stage_io_irgLog_23),
    .io_irgLog_24(iwb_stage_io_irgLog_24),
    .io_irgLog_25(iwb_stage_io_irgLog_25),
    .io_irgLog_26(iwb_stage_io_irgLog_26),
    .io_irgLog_27(iwb_stage_io_irgLog_27),
    .io_irgLog_28(iwb_stage_io_irgLog_28),
    .io_irgLog_29(iwb_stage_io_irgLog_29),
    .io_irgLog_30(iwb_stage_io_irgLog_30),
    .io_irgLog_31(iwb_stage_io_irgLog_31),
    .io_irgLog_32(iwb_stage_io_irgLog_32),
    .io_irgReq_0_valid(iwb_stage_io_irgReq_0_valid),
    .io_irgReq_0_bits(iwb_stage_io_irgReq_0_bits),
    .io_irgReq_1_valid(iwb_stage_io_irgReq_1_valid),
    .io_irgReq_1_bits(iwb_stage_io_irgReq_1_bits),
    .io_irgRsp_0_valid(iwb_stage_io_irgRsp_0_valid),
    .io_irgRsp_0_bits_phy(iwb_stage_io_irgRsp_0_bits_phy),
    .io_irgRsp_0_bits_op(iwb_stage_io_irgRsp_0_bits_op),
    .io_irgRsp_1_valid(iwb_stage_io_irgRsp_1_valid),
    .io_irgRsp_1_bits_phy(iwb_stage_io_irgRsp_1_bits_phy),
    .io_irgRsp_1_bits_op(iwb_stage_io_irgRsp_1_bits_op),
    .io_alu_iWriteBack_0_ready(iwb_stage_io_alu_iWriteBack_0_ready),
    .io_alu_iWriteBack_0_valid(iwb_stage_io_alu_iWriteBack_0_valid),
    .io_alu_iWriteBack_0_bits_rd0(iwb_stage_io_alu_iWriteBack_0_bits_rd0),
    .io_alu_iWriteBack_0_bits_res(iwb_stage_io_alu_iWriteBack_0_bits_res),
    .io_bru_iWriteBack_ready(iwb_stage_io_bru_iWriteBack_ready),
    .io_bru_iWriteBack_valid(iwb_stage_io_bru_iWriteBack_valid),
    .io_bru_iWriteBack_bits_rd0(iwb_stage_io_bru_iWriteBack_bits_rd0),
    .io_bru_iWriteBack_bits_res(iwb_stage_io_bru_iWriteBack_bits_res),
    .io_csr_iWriteBack_ready(iwb_stage_io_csr_iWriteBack_ready),
    .io_csr_iWriteBack_valid(iwb_stage_io_csr_iWriteBack_valid),
    .io_csr_iWriteBack_bits_rd0(iwb_stage_io_csr_iWriteBack_bits_rd0),
    .io_csr_iWriteBack_bits_res(iwb_stage_io_csr_iWriteBack_bits_res),
    .io_mem_iWriteBack_ready(iwb_stage_io_mem_iWriteBack_ready),
    .io_mem_iWriteBack_valid(iwb_stage_io_mem_iWriteBack_valid),
    .io_mem_iWriteBack_bits_rd0(iwb_stage_io_mem_iWriteBack_bits_rd0),
    .io_mem_iWriteBack_bits_res(iwb_stage_io_mem_iWriteBack_bits_res),
    .io_mul_iWriteBack_0_ready(iwb_stage_io_mul_iWriteBack_0_ready),
    .io_mul_iWriteBack_0_valid(iwb_stage_io_mul_iWriteBack_0_valid),
    .io_mul_iWriteBack_0_bits_rd0(iwb_stage_io_mul_iWriteBack_0_bits_rd0),
    .io_mul_iWriteBack_0_bits_res(iwb_stage_io_mul_iWriteBack_0_bits_res),
    .io_mem_fWriteBack_valid(iwb_stage_io_mem_fWriteBack_valid),
    .io_commit_0_is_comfirm(iwb_stage_io_commit_0_is_comfirm),
    .io_commit_0_is_MisPredict(iwb_stage_io_commit_0_is_MisPredict),
    .io_commit_0_is_abort(iwb_stage_io_commit_0_is_abort),
    .io_commit_0_raw(iwb_stage_io_commit_0_raw),
    .io_commit_0_phy(iwb_stage_io_commit_0_phy),
    .io_commit_0_toX(iwb_stage_io_commit_0_toX),
    .io_commit_0_is_writeback(iwb_stage_io_commit_0_is_writeback),
    .io_diffXReg_0(iwb_stage_io_diffXReg_0),
    .io_diffXReg_1(iwb_stage_io_diffXReg_1),
    .io_diffXReg_2(iwb_stage_io_diffXReg_2),
    .io_diffXReg_3(iwb_stage_io_diffXReg_3),
    .io_diffXReg_4(iwb_stage_io_diffXReg_4),
    .io_diffXReg_5(iwb_stage_io_diffXReg_5),
    .io_diffXReg_6(iwb_stage_io_diffXReg_6),
    .io_diffXReg_7(iwb_stage_io_diffXReg_7),
    .io_diffXReg_8(iwb_stage_io_diffXReg_8),
    .io_diffXReg_9(iwb_stage_io_diffXReg_9),
    .io_diffXReg_10(iwb_stage_io_diffXReg_10),
    .io_diffXReg_11(iwb_stage_io_diffXReg_11),
    .io_diffXReg_12(iwb_stage_io_diffXReg_12),
    .io_diffXReg_13(iwb_stage_io_diffXReg_13),
    .io_diffXReg_14(iwb_stage_io_diffXReg_14),
    .io_diffXReg_15(iwb_stage_io_diffXReg_15),
    .io_diffXReg_16(iwb_stage_io_diffXReg_16),
    .io_diffXReg_17(iwb_stage_io_diffXReg_17),
    .io_diffXReg_18(iwb_stage_io_diffXReg_18),
    .io_diffXReg_19(iwb_stage_io_diffXReg_19),
    .io_diffXReg_20(iwb_stage_io_diffXReg_20),
    .io_diffXReg_21(iwb_stage_io_diffXReg_21),
    .io_diffXReg_22(iwb_stage_io_diffXReg_22),
    .io_diffXReg_23(iwb_stage_io_diffXReg_23),
    .io_diffXReg_24(iwb_stage_io_diffXReg_24),
    .io_diffXReg_25(iwb_stage_io_diffXReg_25),
    .io_diffXReg_26(iwb_stage_io_diffXReg_26),
    .io_diffXReg_27(iwb_stage_io_diffXReg_27),
    .io_diffXReg_28(iwb_stage_io_diffXReg_28),
    .io_diffXReg_29(iwb_stage_io_diffXReg_29),
    .io_diffXReg_30(iwb_stage_io_diffXReg_30),
    .io_diffXReg_31(iwb_stage_io_diffXReg_31)
  );
  Commit cmm_stage ( // @[rift2Core.scala 194:25]
    .clock(cmm_stage_clock),
    .reset(cmm_stage_reset),
    .io_cm_op_0_is_comfirm(cmm_stage_io_cm_op_0_is_comfirm),
    .io_cm_op_0_is_MisPredict(cmm_stage_io_cm_op_0_is_MisPredict),
    .io_cm_op_0_is_abort(cmm_stage_io_cm_op_0_is_abort),
    .io_cm_op_0_raw(cmm_stage_io_cm_op_0_raw),
    .io_cm_op_0_phy(cmm_stage_io_cm_op_0_phy),
    .io_cm_op_0_toX(cmm_stage_io_cm_op_0_toX),
    .io_cm_op_0_is_writeback(cmm_stage_io_cm_op_0_is_writeback),
    .io_rod_0_ready(cmm_stage_io_rod_0_ready),
    .io_rod_0_valid(cmm_stage_io_rod_0_valid),
    .io_rod_0_bits_pc(cmm_stage_io_rod_0_bits_pc),
    .io_rod_0_bits_rd0_raw(cmm_stage_io_rod_0_bits_rd0_raw),
    .io_rod_0_bits_rd0_phy(cmm_stage_io_rod_0_bits_rd0_phy),
    .io_rod_0_bits_is_branch(cmm_stage_io_rod_0_bits_is_branch),
    .io_rod_0_bits_is_jalr(cmm_stage_io_rod_0_bits_is_jalr),
    .io_rod_0_bits_is_lu(cmm_stage_io_rod_0_bits_is_lu),
    .io_rod_0_bits_is_su(cmm_stage_io_rod_0_bits_is_su),
    .io_rod_0_bits_is_amo(cmm_stage_io_rod_0_bits_is_amo),
    .io_rod_0_bits_is_fence_i(cmm_stage_io_rod_0_bits_is_fence_i),
    .io_rod_0_bits_is_sfence_vma(cmm_stage_io_rod_0_bits_is_sfence_vma),
    .io_rod_0_bits_is_wfi(cmm_stage_io_rod_0_bits_is_wfi),
    .io_rod_0_bits_is_csr(cmm_stage_io_rod_0_bits_is_csr),
    .io_rod_0_bits_is_fpu(cmm_stage_io_rod_0_bits_is_fpu),
    .io_rod_0_bits_is_fcsr(cmm_stage_io_rod_0_bits_is_fcsr),
    .io_rod_0_bits_is_xcmm(cmm_stage_io_rod_0_bits_is_xcmm),
    .io_rod_0_bits_privil_ecall(cmm_stage_io_rod_0_bits_privil_ecall),
    .io_rod_0_bits_privil_ebreak(cmm_stage_io_rod_0_bits_privil_ebreak),
    .io_rod_0_bits_privil_mret(cmm_stage_io_rod_0_bits_privil_mret),
    .io_rod_0_bits_privil_sret(cmm_stage_io_rod_0_bits_privil_sret),
    .io_rod_0_bits_privil_dret(cmm_stage_io_rod_0_bits_privil_dret),
    .io_rod_0_bits_privil_is_access_fault(cmm_stage_io_rod_0_bits_privil_is_access_fault),
    .io_rod_0_bits_privil_is_paging_fault(cmm_stage_io_rod_0_bits_privil_is_paging_fault),
    .io_rod_0_bits_is_illeage(cmm_stage_io_rod_0_bits_is_illeage),
    .io_cmm_lsu_is_amo_pending(cmm_stage_io_cmm_lsu_is_amo_pending),
    .io_cmm_lsu_is_store_commit_0(cmm_stage_io_cmm_lsu_is_store_commit_0),
    .io_lsu_cmm_is_access_fault(cmm_stage_io_lsu_cmm_is_access_fault),
    .io_lsu_cmm_is_paging_fault(cmm_stage_io_lsu_cmm_is_paging_fault),
    .io_lsu_cmm_is_misAlign(cmm_stage_io_lsu_cmm_is_misAlign),
    .io_lsu_cmm_trap_addr(cmm_stage_io_lsu_cmm_trap_addr),
    .io_csr_addr_valid(cmm_stage_io_csr_addr_valid),
    .io_csr_addr_bits(cmm_stage_io_csr_addr_bits),
    .io_csr_data_valid(cmm_stage_io_csr_data_valid),
    .io_csr_data_bits(cmm_stage_io_csr_data_bits),
    .io_csr_cmm_op_ready(cmm_stage_io_csr_cmm_op_ready),
    .io_csr_cmm_op_valid(cmm_stage_io_csr_cmm_op_valid),
    .io_csr_cmm_op_bits_addr(cmm_stage_io_csr_cmm_op_bits_addr),
    .io_csr_cmm_op_bits_dat_i(cmm_stage_io_csr_cmm_op_bits_dat_i),
    .io_csr_cmm_op_bits_op_rw(cmm_stage_io_csr_cmm_op_bits_op_rw),
    .io_csr_cmm_op_bits_op_rs(cmm_stage_io_csr_cmm_op_bits_op_rs),
    .io_csr_cmm_op_bits_op_rc(cmm_stage_io_csr_cmm_op_bits_op_rc),
    .io_bctq_ready(cmm_stage_io_bctq_ready),
    .io_bctq_valid(cmm_stage_io_bctq_valid),
    .io_bctq_bits_isPredictTaken(cmm_stage_io_bctq_bits_isPredictTaken),
    .io_bctq_bits_isFinalTaken(cmm_stage_io_bctq_bits_isFinalTaken),
    .io_bctq_bits_finalTarget(cmm_stage_io_bctq_bits_finalTarget),
    .io_jctq_ready(cmm_stage_io_jctq_ready),
    .io_jctq_valid(cmm_stage_io_jctq_valid),
    .io_jctq_bits_btbResp_target(cmm_stage_io_jctq_bits_btbResp_target),
    .io_jctq_bits_rasResp_target(cmm_stage_io_jctq_bits_rasResp_target),
    .io_jctq_bits_isRas(cmm_stage_io_jctq_bits_isRas),
    .io_jctq_bits_finalTarget(cmm_stage_io_jctq_bits_finalTarget),
    .io_cmmRedirect_valid(cmm_stage_io_cmmRedirect_valid),
    .io_cmmRedirect_bits_pc(cmm_stage_io_cmmRedirect_bits_pc),
    .io_if_cmm_ill_vaddr(cmm_stage_io_if_cmm_ill_vaddr),
    .io_ifence(cmm_stage_io_ifence),
    .io_cmm_mmu_satp(cmm_stage_io_cmm_mmu_satp),
    .io_cmm_mmu_priv_lvl_if(cmm_stage_io_cmm_mmu_priv_lvl_if),
    .io_cmm_mmu_priv_lvl_ls(cmm_stage_io_cmm_mmu_priv_lvl_ls),
    .io_cmm_mmu_mstatus(cmm_stage_io_cmm_mmu_mstatus),
    .io_cmm_mmu_sstatus(cmm_stage_io_cmm_mmu_sstatus),
    .io_cmm_mmu_sfence_vma(cmm_stage_io_cmm_mmu_sfence_vma),
    .io_dm_hartIsInReset(cmm_stage_io_dm_hartIsInReset),
    .io_dm_hartResetReq(cmm_stage_io_dm_hartResetReq),
    .io_dm_hartHaltReq(cmm_stage_io_dm_hartHaltReq),
    .io_rtc_clock(cmm_stage_io_rtc_clock),
    .io_aclint_msi(cmm_stage_io_aclint_msi),
    .io_aclint_mti(cmm_stage_io_aclint_mti),
    .io_aclint_ssi(cmm_stage_io_aclint_ssi),
    .io_aclint_sti(cmm_stage_io_aclint_sti),
    .io_plic_mei(cmm_stage_io_plic_mei),
    .io_plic_sei(cmm_stage_io_plic_sei),
    .io_diff_commit_pc_0(cmm_stage_io_diff_commit_pc_0),
    .io_diff_commit_comfirm_0(cmm_stage_io_diff_commit_comfirm_0),
    .io_diff_commit_abort_0(cmm_stage_io_diff_commit_abort_0),
    .io_diff_commit_priv_lvl(cmm_stage_io_diff_commit_priv_lvl),
    .io_diff_commit_is_ecall_M(cmm_stage_io_diff_commit_is_ecall_M),
    .io_diff_commit_is_ecall_S(cmm_stage_io_diff_commit_is_ecall_S),
    .io_diff_commit_is_ecall_U(cmm_stage_io_diff_commit_is_ecall_U),
    .io_diff_csr_mstatus(cmm_stage_io_diff_csr_mstatus),
    .io_diff_csr_mtvec(cmm_stage_io_diff_csr_mtvec),
    .io_diff_csr_mscratch(cmm_stage_io_diff_csr_mscratch),
    .io_diff_csr_mepc(cmm_stage_io_diff_csr_mepc),
    .io_diff_csr_mcause(cmm_stage_io_diff_csr_mcause),
    .io_diff_csr_mtval(cmm_stage_io_diff_csr_mtval),
    .io_diff_csr_marchid(cmm_stage_io_diff_csr_marchid),
    .io_diff_csr_misa(cmm_stage_io_diff_csr_misa),
    .io_diff_csr_mie(cmm_stage_io_diff_csr_mie),
    .io_diff_csr_mip(cmm_stage_io_diff_csr_mip),
    .io_diff_csr_medeleg(cmm_stage_io_diff_csr_medeleg),
    .io_diff_csr_mideleg(cmm_stage_io_diff_csr_mideleg),
    .io_diff_csr_stvec(cmm_stage_io_diff_csr_stvec),
    .io_diff_csr_sscratch(cmm_stage_io_diff_csr_sscratch),
    .io_diff_csr_sepc(cmm_stage_io_diff_csr_sepc),
    .io_diff_csr_scause(cmm_stage_io_diff_csr_scause),
    .io_diff_csr_stval(cmm_stage_io_diff_csr_stval),
    .io_diff_csr_satp(cmm_stage_io_diff_csr_satp),
    .io_diff_csr_fflags(cmm_stage_io_diff_csr_fflags),
    .io_diff_csr_frm(cmm_stage_io_diff_csr_frm),
    .io_diff_csr_mcycle(cmm_stage_io_diff_csr_mcycle),
    .io_diff_csr_minstret(cmm_stage_io_diff_csr_minstret)
  );
  MMU i_mmu ( // @[rift2Core.scala 197:21]
    .clock(i_mmu_clock),
    .reset(i_mmu_reset),
    .io_if_mmu_ready(i_mmu_io_if_mmu_ready),
    .io_if_mmu_bits_vaddr(i_mmu_io_if_mmu_bits_vaddr),
    .io_mmu_if_ready(i_mmu_io_mmu_if_ready),
    .io_mmu_if_valid(i_mmu_io_mmu_if_valid),
    .io_mmu_if_bits_vaddr(i_mmu_io_mmu_if_bits_vaddr),
    .io_mmu_if_bits_paddr(i_mmu_io_mmu_if_bits_paddr),
    .io_mmu_if_bits_is_paging_fault(i_mmu_io_mmu_if_bits_is_paging_fault),
    .io_mmu_if_bits_is_access_fault(i_mmu_io_mmu_if_bits_is_access_fault),
    .io_if_flush(i_mmu_io_if_flush),
    .io_lsu_mmu_ready(i_mmu_io_lsu_mmu_ready),
    .io_lsu_mmu_valid(i_mmu_io_lsu_mmu_valid),
    .io_lsu_mmu_bits_is_W(i_mmu_io_lsu_mmu_bits_is_W),
    .io_lsu_mmu_bits_is_R(i_mmu_io_lsu_mmu_bits_is_R),
    .io_lsu_mmu_bits_vaddr(i_mmu_io_lsu_mmu_bits_vaddr),
    .io_mmu_lsu_ready(i_mmu_io_mmu_lsu_ready),
    .io_mmu_lsu_valid(i_mmu_io_mmu_lsu_valid),
    .io_mmu_lsu_bits_paddr(i_mmu_io_mmu_lsu_bits_paddr),
    .io_mmu_lsu_bits_is_paging_fault(i_mmu_io_mmu_lsu_bits_is_paging_fault),
    .io_mmu_lsu_bits_is_access_fault(i_mmu_io_mmu_lsu_bits_is_access_fault),
    .io_lsu_flush(i_mmu_io_lsu_flush),
    .io_cmm_mmu_satp(i_mmu_io_cmm_mmu_satp),
    .io_cmm_mmu_priv_lvl_if(i_mmu_io_cmm_mmu_priv_lvl_if),
    .io_cmm_mmu_priv_lvl_ls(i_mmu_io_cmm_mmu_priv_lvl_ls),
    .io_cmm_mmu_mstatus(i_mmu_io_cmm_mmu_mstatus),
    .io_cmm_mmu_sstatus(i_mmu_io_cmm_mmu_sstatus),
    .io_cmm_mmu_sfence_vma(i_mmu_io_cmm_mmu_sfence_vma),
    .io_ptw_get_ready(i_mmu_io_ptw_get_ready),
    .io_ptw_get_valid(i_mmu_io_ptw_get_valid),
    .io_ptw_get_bits_source(i_mmu_io_ptw_get_bits_source),
    .io_ptw_get_bits_address(i_mmu_io_ptw_get_bits_address),
    .io_ptw_access_ready(i_mmu_io_ptw_access_ready),
    .io_ptw_access_valid(i_mmu_io_ptw_access_valid),
    .io_ptw_access_bits_opcode(i_mmu_io_ptw_access_bits_opcode),
    .io_ptw_access_bits_size(i_mmu_io_ptw_access_bits_size),
    .io_ptw_access_bits_source(i_mmu_io_ptw_access_bits_source),
    .io_ptw_access_bits_data(i_mmu_io_ptw_access_bits_data)
  );
  diff diff ( // @[rift2Core.scala 354:21]
    .io_diffXReg_0(diff_io_diffXReg_0),
    .io_diffXReg_1(diff_io_diffXReg_1),
    .io_diffXReg_2(diff_io_diffXReg_2),
    .io_diffXReg_3(diff_io_diffXReg_3),
    .io_diffXReg_4(diff_io_diffXReg_4),
    .io_diffXReg_5(diff_io_diffXReg_5),
    .io_diffXReg_6(diff_io_diffXReg_6),
    .io_diffXReg_7(diff_io_diffXReg_7),
    .io_diffXReg_8(diff_io_diffXReg_8),
    .io_diffXReg_9(diff_io_diffXReg_9),
    .io_diffXReg_10(diff_io_diffXReg_10),
    .io_diffXReg_11(diff_io_diffXReg_11),
    .io_diffXReg_12(diff_io_diffXReg_12),
    .io_diffXReg_13(diff_io_diffXReg_13),
    .io_diffXReg_14(diff_io_diffXReg_14),
    .io_diffXReg_15(diff_io_diffXReg_15),
    .io_diffXReg_16(diff_io_diffXReg_16),
    .io_diffXReg_17(diff_io_diffXReg_17),
    .io_diffXReg_18(diff_io_diffXReg_18),
    .io_diffXReg_19(diff_io_diffXReg_19),
    .io_diffXReg_20(diff_io_diffXReg_20),
    .io_diffXReg_21(diff_io_diffXReg_21),
    .io_diffXReg_22(diff_io_diffXReg_22),
    .io_diffXReg_23(diff_io_diffXReg_23),
    .io_diffXReg_24(diff_io_diffXReg_24),
    .io_diffXReg_25(diff_io_diffXReg_25),
    .io_diffXReg_26(diff_io_diffXReg_26),
    .io_diffXReg_27(diff_io_diffXReg_27),
    .io_diffXReg_28(diff_io_diffXReg_28),
    .io_diffXReg_29(diff_io_diffXReg_29),
    .io_diffXReg_30(diff_io_diffXReg_30),
    .io_diffXReg_31(diff_io_diffXReg_31),
    .io_diffFReg_0(diff_io_diffFReg_0),
    .io_diffFReg_1(diff_io_diffFReg_1),
    .io_diffFReg_2(diff_io_diffFReg_2),
    .io_diffFReg_3(diff_io_diffFReg_3),
    .io_diffFReg_4(diff_io_diffFReg_4),
    .io_diffFReg_5(diff_io_diffFReg_5),
    .io_diffFReg_6(diff_io_diffFReg_6),
    .io_diffFReg_7(diff_io_diffFReg_7),
    .io_diffFReg_8(diff_io_diffFReg_8),
    .io_diffFReg_9(diff_io_diffFReg_9),
    .io_diffFReg_10(diff_io_diffFReg_10),
    .io_diffFReg_11(diff_io_diffFReg_11),
    .io_diffFReg_12(diff_io_diffFReg_12),
    .io_diffFReg_13(diff_io_diffFReg_13),
    .io_diffFReg_14(diff_io_diffFReg_14),
    .io_diffFReg_15(diff_io_diffFReg_15),
    .io_diffFReg_16(diff_io_diffFReg_16),
    .io_diffFReg_17(diff_io_diffFReg_17),
    .io_diffFReg_18(diff_io_diffFReg_18),
    .io_diffFReg_19(diff_io_diffFReg_19),
    .io_diffFReg_20(diff_io_diffFReg_20),
    .io_diffFReg_21(diff_io_diffFReg_21),
    .io_diffFReg_22(diff_io_diffFReg_22),
    .io_diffFReg_23(diff_io_diffFReg_23),
    .io_diffFReg_24(diff_io_diffFReg_24),
    .io_diffFReg_25(diff_io_diffFReg_25),
    .io_diffFReg_26(diff_io_diffFReg_26),
    .io_diffFReg_27(diff_io_diffFReg_27),
    .io_diffFReg_28(diff_io_diffFReg_28),
    .io_diffFReg_29(diff_io_diffFReg_29),
    .io_diffFReg_30(diff_io_diffFReg_30),
    .io_diffFReg_31(diff_io_diffFReg_31),
    .io_commit_pc_0(diff_io_commit_pc_0),
    .io_commit_comfirm_0(diff_io_commit_comfirm_0),
    .io_commit_abort_0(diff_io_commit_abort_0),
    .io_commit_priv_lvl(diff_io_commit_priv_lvl),
    .io_commit_is_ecall_M(diff_io_commit_is_ecall_M),
    .io_commit_is_ecall_S(diff_io_commit_is_ecall_S),
    .io_commit_is_ecall_U(diff_io_commit_is_ecall_U),
    .io_csr_mstatus(diff_io_csr_mstatus),
    .io_csr_mtvec(diff_io_csr_mtvec),
    .io_csr_mscratch(diff_io_csr_mscratch),
    .io_csr_mepc(diff_io_csr_mepc),
    .io_csr_mcause(diff_io_csr_mcause),
    .io_csr_mtval(diff_io_csr_mtval),
    .io_csr_mvendorid(diff_io_csr_mvendorid),
    .io_csr_marchid(diff_io_csr_marchid),
    .io_csr_mimpid(diff_io_csr_mimpid),
    .io_csr_mhartid(diff_io_csr_mhartid),
    .io_csr_misa(diff_io_csr_misa),
    .io_csr_mie(diff_io_csr_mie),
    .io_csr_mip(diff_io_csr_mip),
    .io_csr_medeleg(diff_io_csr_medeleg),
    .io_csr_mideleg(diff_io_csr_mideleg),
    .io_csr_pmpcfg_0(diff_io_csr_pmpcfg_0),
    .io_csr_pmpaddr_0(diff_io_csr_pmpaddr_0),
    .io_csr_pmpaddr_1(diff_io_csr_pmpaddr_1),
    .io_csr_pmpaddr_2(diff_io_csr_pmpaddr_2),
    .io_csr_pmpaddr_3(diff_io_csr_pmpaddr_3),
    .io_csr_pmpaddr_4(diff_io_csr_pmpaddr_4),
    .io_csr_pmpaddr_5(diff_io_csr_pmpaddr_5),
    .io_csr_pmpaddr_6(diff_io_csr_pmpaddr_6),
    .io_csr_pmpaddr_7(diff_io_csr_pmpaddr_7),
    .io_csr_stvec(diff_io_csr_stvec),
    .io_csr_sscratch(diff_io_csr_sscratch),
    .io_csr_sepc(diff_io_csr_sepc),
    .io_csr_scause(diff_io_csr_scause),
    .io_csr_stval(diff_io_csr_stval),
    .io_csr_satp(diff_io_csr_satp),
    .io_csr_fflags(diff_io_csr_fflags),
    .io_csr_frm(diff_io_csr_frm),
    .io_csr_mcycle(diff_io_csr_mcycle),
    .io_csr_minstret(diff_io_csr_minstret),
    .io_csr_mhpmcounter_0(diff_io_csr_mhpmcounter_0),
    .io_csr_mhpmcounter_1(diff_io_csr_mhpmcounter_1),
    .io_csr_mhpmcounter_2(diff_io_csr_mhpmcounter_2),
    .io_csr_mhpmcounter_3(diff_io_csr_mhpmcounter_3),
    .io_csr_mhpmcounter_4(diff_io_csr_mhpmcounter_4),
    .io_csr_mhpmcounter_5(diff_io_csr_mhpmcounter_5),
    .io_csr_mhpmcounter_6(diff_io_csr_mhpmcounter_6),
    .io_csr_mhpmcounter_7(diff_io_csr_mhpmcounter_7),
    .io_csr_mhpmcounter_8(diff_io_csr_mhpmcounter_8),
    .io_csr_mhpmcounter_9(diff_io_csr_mhpmcounter_9),
    .io_csr_mhpmcounter_10(diff_io_csr_mhpmcounter_10),
    .io_csr_mhpmcounter_11(diff_io_csr_mhpmcounter_11),
    .io_csr_mhpmcounter_12(diff_io_csr_mhpmcounter_12),
    .io_csr_mhpmcounter_13(diff_io_csr_mhpmcounter_13),
    .io_csr_mhpmcounter_14(diff_io_csr_mhpmcounter_14),
    .io_csr_mhpmcounter_15(diff_io_csr_mhpmcounter_15),
    .io_csr_mhpmcounter_16(diff_io_csr_mhpmcounter_16),
    .io_csr_mhpmcounter_17(diff_io_csr_mhpmcounter_17),
    .io_csr_mhpmcounter_18(diff_io_csr_mhpmcounter_18),
    .io_csr_mhpmcounter_19(diff_io_csr_mhpmcounter_19),
    .io_csr_mhpmcounter_20(diff_io_csr_mhpmcounter_20),
    .io_csr_mhpmcounter_21(diff_io_csr_mhpmcounter_21),
    .io_csr_mhpmcounter_22(diff_io_csr_mhpmcounter_22),
    .io_csr_mhpmcounter_23(diff_io_csr_mhpmcounter_23),
    .io_csr_mhpmcounter_24(diff_io_csr_mhpmcounter_24),
    .io_csr_mhpmcounter_25(diff_io_csr_mhpmcounter_25),
    .io_csr_mhpmcounter_26(diff_io_csr_mhpmcounter_26),
    .io_csr_mhpmcounter_27(diff_io_csr_mhpmcounter_27),
    .io_csr_mhpmcounter_28(diff_io_csr_mhpmcounter_28),
    .io_csr_mhpmcounter_29(diff_io_csr_mhpmcounter_29),
    .io_csr_mhpmcounter_30(diff_io_csr_mhpmcounter_30),
    .io_csr_mhpmcounter_31(diff_io_csr_mhpmcounter_31)
  );
  assign auto_mmu_client_out_a_valid = i_mmu_io_ptw_get_valid; // @[Nodes.scala 1207:84 rift2Core.scala 331:19]
  assign auto_mmu_client_out_a_bits_source = i_mmu_io_ptw_get_bits_source; // @[Nodes.scala 1207:84 rift2Core.scala 332:18]
  assign auto_mmu_client_out_a_bits_address = i_mmu_io_ptw_get_bits_address; // @[Nodes.scala 1207:84 rift2Core.scala 332:18]
  assign auto_mmu_client_out_d_ready = i_mmu_io_ptw_access_ready; // @[Nodes.scala 1207:84 rift2Core.scala 334:19]
  assign auto_periph_client_out_a_valid = exe_stage_io_periph_getPut_valid; // @[Nodes.scala 1207:84 rift2Core.scala 327:22]
  assign auto_periph_client_out_a_bits_opcode = exe_stage_io_periph_getPut_bits_opcode; // @[Nodes.scala 1207:84 rift2Core.scala 328:22]
  assign auto_periph_client_out_a_bits_address = exe_stage_io_periph_getPut_bits_address; // @[Nodes.scala 1207:84 rift2Core.scala 328:22]
  assign auto_periph_client_out_a_bits_mask = exe_stage_io_periph_getPut_bits_mask; // @[Nodes.scala 1207:84 rift2Core.scala 328:22]
  assign auto_periph_client_out_a_bits_data = exe_stage_io_periph_getPut_bits_data; // @[Nodes.scala 1207:84 rift2Core.scala 328:22]
  assign auto_periph_client_out_d_ready = exe_stage_io_periph_access_ready; // @[Nodes.scala 1207:84 rift2Core.scala 326:22]
  assign auto_system_client_out_a_valid = exe_stage_io_system_getPut_valid; // @[Nodes.scala 1207:84 rift2Core.scala 320:22]
  assign auto_system_client_out_a_bits_opcode = exe_stage_io_system_getPut_bits_opcode; // @[Nodes.scala 1207:84 rift2Core.scala 321:22]
  assign auto_system_client_out_a_bits_address = exe_stage_io_system_getPut_bits_address; // @[Nodes.scala 1207:84 rift2Core.scala 321:22]
  assign auto_system_client_out_a_bits_mask = exe_stage_io_system_getPut_bits_mask; // @[Nodes.scala 1207:84 rift2Core.scala 321:22]
  assign auto_system_client_out_a_bits_data = exe_stage_io_system_getPut_bits_data; // @[Nodes.scala 1207:84 rift2Core.scala 321:22]
  assign auto_system_client_out_d_ready = exe_stage_io_system_access_ready; // @[Nodes.scala 1207:84 rift2Core.scala 319:22]
  assign auto_dcache_client_out_a_valid = exe_stage_io_missUnit_dcache_acquire_valid; // @[Nodes.scala 1207:84 rift2Core.scala 285:24]
  assign auto_dcache_client_out_a_bits_address = exe_stage_io_missUnit_dcache_acquire_bits_address; // @[Nodes.scala 1207:84 rift2Core.scala 286:24]
  assign auto_dcache_client_out_b_ready = exe_stage_io_probeUnit_dcache_probe_ready; // @[Nodes.scala 1207:84 rift2Core.scala 291:24]
  assign auto_dcache_client_out_c_valid = exe_stage_io_writeBackUnit_dcache_release_valid; // @[Nodes.scala 1207:84 rift2Core.scala 293:24]
  assign auto_dcache_client_out_c_bits_opcode = exe_stage_io_writeBackUnit_dcache_release_bits_opcode; // @[Nodes.scala 1207:84 rift2Core.scala 294:24]
  assign auto_dcache_client_out_c_bits_param = exe_stage_io_writeBackUnit_dcache_release_bits_param; // @[Nodes.scala 1207:84 rift2Core.scala 294:24]
  assign auto_dcache_client_out_c_bits_size = exe_stage_io_writeBackUnit_dcache_release_bits_size; // @[Nodes.scala 1207:84 rift2Core.scala 294:24]
  assign auto_dcache_client_out_c_bits_address = exe_stage_io_writeBackUnit_dcache_release_bits_address; // @[Nodes.scala 1207:84 rift2Core.scala 294:24]
  assign auto_dcache_client_out_c_bits_data = exe_stage_io_writeBackUnit_dcache_release_bits_data; // @[Nodes.scala 1207:84 rift2Core.scala 294:24]
  assign auto_dcache_client_out_d_ready = _exe_stage_io_missUnit_dcache_grant_valid_T_2 &
    exe_stage_io_missUnit_dcache_grant_ready | _exe_stage_io_writeBackUnit_dcache_grant_valid_T &
    exe_stage_io_writeBackUnit_dcache_grant_ready; // @[Mux.scala 27:73]
  assign auto_dcache_client_out_e_valid = exe_stage_io_missUnit_dcache_grantAck_valid; // @[Nodes.scala 1207:84 rift2Core.scala 297:24]
  assign auto_dcache_client_out_e_bits_sink = exe_stage_io_missUnit_dcache_grantAck_bits_sink; // @[Nodes.scala 1207:84 rift2Core.scala 298:24]
  assign auto_icache_client_out_a_valid = if2_io_icache_get_valid; // @[Nodes.scala 1207:84 rift2Core.scala 265:22]
  assign auto_icache_client_out_a_bits_address = if2_io_icache_get_bits_address; // @[Nodes.scala 1207:84 rift2Core.scala 266:21]
  assign io_dm_hartIsInReset = cmm_stage_io_dm_hartIsInReset; // @[rift2Core.scala 254:37]
  assign if1_clock = clock;
  assign if1_reset = reset;
  assign if1_io_if4Redirect_valid = if4_io_if4Redirect_valid; // @[rift2Core.scala 118:22]
  assign if1_io_if4Redirect_bits_target = if4_io_if4Redirect_bits_target; // @[rift2Core.scala 118:22]
  assign if1_io_cmmRedirect_valid = cmm_stage_io_cmmRedirect_valid; // @[rift2Core.scala 246:28]
  assign if1_io_cmmRedirect_bits_pc = cmm_stage_io_cmmRedirect_bits_pc; // @[rift2Core.scala 246:28]
  assign if1_io_pc_gen_ready = if2_io_if2_req_ready; // @[rift2Core.scala 120:17]
  assign if2_clock = clock;
  assign if2_reset = reset;
  assign if2_io_if2_req_bits_isActive_1 = if1_io_pc_gen_bits_isActive_1; // @[rift2Core.scala 120:17]
  assign if2_io_if2_req_bits_isActive_2 = if1_io_pc_gen_bits_isActive_2; // @[rift2Core.scala 120:17]
  assign if2_io_if2_req_bits_isActive_3 = if1_io_pc_gen_bits_isActive_3; // @[rift2Core.scala 120:17]
  assign if2_io_if2_req_bits_pc = if1_io_pc_gen_bits_pc; // @[rift2Core.scala 120:17]
  assign if2_io_if2_resp_0_ready = if3_io_if3_req_0_ready; // @[rift2Core.scala 121:19]
  assign if2_io_if2_resp_1_ready = if3_io_if3_req_1_ready; // @[rift2Core.scala 121:19]
  assign if2_io_if2_resp_2_ready = if3_io_if3_req_2_ready; // @[rift2Core.scala 121:19]
  assign if2_io_if2_resp_3_ready = if3_io_if3_req_3_ready; // @[rift2Core.scala 121:19]
  assign if2_io_if_mmu_ready = i_mmu_io_if_mmu_ready; // @[rift2Core.scala 198:19]
  assign if2_io_mmu_if_valid = i_mmu_io_mmu_if_valid; // @[rift2Core.scala 199:19]
  assign if2_io_mmu_if_bits_vaddr = i_mmu_io_mmu_if_bits_vaddr; // @[rift2Core.scala 199:19]
  assign if2_io_mmu_if_bits_paddr = i_mmu_io_mmu_if_bits_paddr; // @[rift2Core.scala 199:19]
  assign if2_io_mmu_if_bits_is_paging_fault = i_mmu_io_mmu_if_bits_is_paging_fault; // @[rift2Core.scala 199:19]
  assign if2_io_mmu_if_bits_is_access_fault = i_mmu_io_mmu_if_bits_is_access_fault; // @[rift2Core.scala 199:19]
  assign if2_io_icache_get_ready = auto_icache_client_out_a_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign if2_io_icache_access_valid = auto_icache_client_out_d_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign if2_io_icache_access_bits_opcode = auto_icache_client_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign if2_io_icache_access_bits_size = auto_icache_client_out_d_bits_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign if2_io_icache_access_bits_data = auto_icache_client_out_d_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign if2_io_flush = cmm_stage_io_cmmRedirect_valid | if4_io_if4Redirect_valid; // @[rift2Core.scala 225:49]
  assign if2_io_ifence = cmm_stage_io_ifence; // @[rift2Core.scala 250:17]
  assign if3_clock = clock;
  assign if3_reset = reset;
  assign if3_io_if3_req_0_valid = if2_io_if2_resp_0_valid; // @[rift2Core.scala 121:19]
  assign if3_io_if3_req_0_bits_pc = if2_io_if2_resp_0_bits_pc; // @[rift2Core.scala 121:19]
  assign if3_io_if3_req_0_bits_instr = if2_io_if2_resp_0_bits_instr; // @[rift2Core.scala 121:19]
  assign if3_io_if3_req_0_bits_isRedirect = if2_io_if2_resp_0_bits_isRedirect; // @[rift2Core.scala 121:19]
  assign if3_io_if3_req_1_valid = if2_io_if2_resp_1_valid; // @[rift2Core.scala 121:19]
  assign if3_io_if3_req_1_bits_pc = if2_io_if2_resp_1_bits_pc; // @[rift2Core.scala 121:19]
  assign if3_io_if3_req_1_bits_instr = if2_io_if2_resp_1_bits_instr; // @[rift2Core.scala 121:19]
  assign if3_io_if3_req_1_bits_isFault = if2_io_if2_resp_1_bits_isFault; // @[rift2Core.scala 121:19]
  assign if3_io_if3_req_1_bits_isRedirect = if2_io_if2_resp_1_bits_isRedirect; // @[rift2Core.scala 121:19]
  assign if3_io_if3_req_2_valid = if2_io_if2_resp_2_valid; // @[rift2Core.scala 121:19]
  assign if3_io_if3_req_2_bits_pc = if2_io_if2_resp_2_bits_pc; // @[rift2Core.scala 121:19]
  assign if3_io_if3_req_2_bits_instr = if2_io_if2_resp_2_bits_instr; // @[rift2Core.scala 121:19]
  assign if3_io_if3_req_2_bits_isFault = if2_io_if2_resp_2_bits_isFault; // @[rift2Core.scala 121:19]
  assign if3_io_if3_req_2_bits_isRedirect = if2_io_if2_resp_2_bits_isRedirect; // @[rift2Core.scala 121:19]
  assign if3_io_if3_req_3_valid = if2_io_if2_resp_3_valid; // @[rift2Core.scala 121:19]
  assign if3_io_if3_req_3_bits_pc = if2_io_if2_resp_3_bits_pc; // @[rift2Core.scala 121:19]
  assign if3_io_if3_req_3_bits_instr = if2_io_if2_resp_3_bits_instr; // @[rift2Core.scala 121:19]
  assign if3_io_if3_req_3_bits_isFault = if2_io_if2_resp_3_bits_isFault; // @[rift2Core.scala 121:19]
  assign if3_io_if3_req_3_bits_isRedirect = if2_io_if2_resp_3_bits_isRedirect; // @[rift2Core.scala 121:19]
  assign if3_io_if3_resp_0_ready = if4_io_if4_req_0_ready; // @[rift2Core.scala 122:19]
  assign if3_io_btbResp_0_ready = if4_io_btbResp_0_ready; // @[rift2Core.scala 128:19]
  assign if3_io_bimResp_0_ready = if4_io_bimResp_0_ready; // @[rift2Core.scala 129:19]
  assign if3_io_jcmm_update_valid = exe_stage_io_jcmm_update_valid; // @[rift2Core.scala 209:24]
  assign if3_io_jcmm_update_bits_pc = exe_stage_io_jcmm_update_bits_pc; // @[rift2Core.scala 209:24]
  assign if3_io_jcmm_update_bits_finalTarget = exe_stage_io_jcmm_update_bits_finalTarget; // @[rift2Core.scala 209:24]
  assign if3_io_bcmm_update_valid = exe_stage_io_bcmm_update_valid; // @[rift2Core.scala 210:24]
  assign if3_io_bcmm_update_bits_pc = exe_stage_io_bcmm_update_bits_pc; // @[rift2Core.scala 210:24]
  assign if3_io_bcmm_update_bits_bimResp_bim_p = exe_stage_io_bcmm_update_bits_bimResp_bim_p; // @[rift2Core.scala 210:24]
  assign if3_io_bcmm_update_bits_bimResp_bim_h = exe_stage_io_bcmm_update_bits_bimResp_bim_h; // @[rift2Core.scala 210:24]
  assign if3_io_bcmm_update_bits_isFinalTaken = exe_stage_io_bcmm_update_bits_isFinalTaken; // @[rift2Core.scala 210:24]
  assign if3_io_if4Redirect_valid = if4_io_if4Redirect_valid; // @[rift2Core.scala 134:22]
  assign if3_io_flush = cmm_stage_io_cmmRedirect_valid; // @[rift2Core.scala 226:16]
  assign if4_clock = clock;
  assign if4_reset = reset;
  assign if4_io_if4_req_0_valid = if3_io_if3_resp_0_valid; // @[rift2Core.scala 122:19]
  assign if4_io_if4_req_0_bits_isRVC = if3_io_if3_resp_0_bits_isRVC; // @[rift2Core.scala 122:19]
  assign if4_io_if4_req_0_bits_instr = if3_io_if3_resp_0_bits_instr; // @[rift2Core.scala 122:19]
  assign if4_io_if4_req_0_bits_pc = if3_io_if3_resp_0_bits_pc; // @[rift2Core.scala 122:19]
  assign if4_io_if4_req_0_bits_isRedirect = if3_io_if3_resp_0_bits_isRedirect; // @[rift2Core.scala 122:19]
  assign if4_io_if4_req_0_bits_target = if3_io_if3_resp_0_bits_target; // @[rift2Core.scala 122:19]
  assign if4_io_btbResp_0_valid = if3_io_btbResp_0_valid; // @[rift2Core.scala 128:19]
  assign if4_io_btbResp_0_bits_target = if3_io_btbResp_0_bits_target; // @[rift2Core.scala 128:19]
  assign if4_io_bimResp_0_valid = if3_io_bimResp_0_valid; // @[rift2Core.scala 129:19]
  assign if4_io_bimResp_0_bits_bim_p = if3_io_bimResp_0_bits_bim_p; // @[rift2Core.scala 129:19]
  assign if4_io_bimResp_0_bits_bim_h = if3_io_bimResp_0_bits_bim_h; // @[rift2Core.scala 129:19]
  assign if4_io_if4_resp_0_ready = rnm_stage_io_rnReq_0_ready; // @[rift2Core.scala 139:18]
  assign if4_io_bftq_ready = exe_stage_io_bftq_ready; // @[rift2Core.scala 216:23]
  assign if4_io_jftq_ready = exe_stage_io_jftq_ready; // @[rift2Core.scala 217:23]
  assign if4_io_flush = cmm_stage_io_cmmRedirect_valid; // @[rift2Core.scala 227:16]
  assign rnm_stage_clock = clock;
  assign rnm_stage_reset = cmm_stage_io_cmmRedirect_valid | reset; // @[rift2Core.scala 229:52]
  assign rnm_stage_io_rnReq_0_valid = if4_io_if4_resp_0_valid; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_lui = if4_io_if4_resp_0_bits_alu_isa_lui; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_auipc = if4_io_if4_resp_0_bits_alu_isa_auipc; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_addi = if4_io_if4_resp_0_bits_alu_isa_addi; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_addiw = if4_io_if4_resp_0_bits_alu_isa_addiw; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_slti = if4_io_if4_resp_0_bits_alu_isa_slti; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_sltiu = if4_io_if4_resp_0_bits_alu_isa_sltiu; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_xori = if4_io_if4_resp_0_bits_alu_isa_xori; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_ori = if4_io_if4_resp_0_bits_alu_isa_ori; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_andi = if4_io_if4_resp_0_bits_alu_isa_andi; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_slli = if4_io_if4_resp_0_bits_alu_isa_slli; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_slliw = if4_io_if4_resp_0_bits_alu_isa_slliw; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_srli = if4_io_if4_resp_0_bits_alu_isa_srli; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_srliw = if4_io_if4_resp_0_bits_alu_isa_srliw; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_srai = if4_io_if4_resp_0_bits_alu_isa_srai; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_sraiw = if4_io_if4_resp_0_bits_alu_isa_sraiw; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_add = if4_io_if4_resp_0_bits_alu_isa_add; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_addw = if4_io_if4_resp_0_bits_alu_isa_addw; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_sub = if4_io_if4_resp_0_bits_alu_isa_sub; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_subw = if4_io_if4_resp_0_bits_alu_isa_subw; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_sll = if4_io_if4_resp_0_bits_alu_isa_sll; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_sllw = if4_io_if4_resp_0_bits_alu_isa_sllw; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_slt = if4_io_if4_resp_0_bits_alu_isa_slt; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_sltu = if4_io_if4_resp_0_bits_alu_isa_sltu; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_xor = if4_io_if4_resp_0_bits_alu_isa_xor; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_srl = if4_io_if4_resp_0_bits_alu_isa_srl; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_srlw = if4_io_if4_resp_0_bits_alu_isa_srlw; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_sra = if4_io_if4_resp_0_bits_alu_isa_sra; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_sraw = if4_io_if4_resp_0_bits_alu_isa_sraw; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_or = if4_io_if4_resp_0_bits_alu_isa_or; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_and = if4_io_if4_resp_0_bits_alu_isa_and; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_alu_isa_wfi = if4_io_if4_resp_0_bits_alu_isa_wfi; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_bru_isa_jal = if4_io_if4_resp_0_bits_bru_isa_jal; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_bru_isa_jalr = if4_io_if4_resp_0_bits_bru_isa_jalr; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_bru_isa_beq = if4_io_if4_resp_0_bits_bru_isa_beq; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_bru_isa_bne = if4_io_if4_resp_0_bits_bru_isa_bne; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_bru_isa_blt = if4_io_if4_resp_0_bits_bru_isa_blt; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_bru_isa_bge = if4_io_if4_resp_0_bits_bru_isa_bge; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_bru_isa_bltu = if4_io_if4_resp_0_bits_bru_isa_bltu; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_bru_isa_bgeu = if4_io_if4_resp_0_bits_bru_isa_bgeu; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_lb = if4_io_if4_resp_0_bits_lsu_isa_lb; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_lh = if4_io_if4_resp_0_bits_lsu_isa_lh; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_lw = if4_io_if4_resp_0_bits_lsu_isa_lw; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_ld = if4_io_if4_resp_0_bits_lsu_isa_ld; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_lbu = if4_io_if4_resp_0_bits_lsu_isa_lbu; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_lhu = if4_io_if4_resp_0_bits_lsu_isa_lhu; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_lwu = if4_io_if4_resp_0_bits_lsu_isa_lwu; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_sb = if4_io_if4_resp_0_bits_lsu_isa_sb; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_sh = if4_io_if4_resp_0_bits_lsu_isa_sh; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_sw = if4_io_if4_resp_0_bits_lsu_isa_sw; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_sd = if4_io_if4_resp_0_bits_lsu_isa_sd; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_fence = if4_io_if4_resp_0_bits_lsu_isa_fence; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_fence_i = if4_io_if4_resp_0_bits_lsu_isa_fence_i; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_sfence_vma = if4_io_if4_resp_0_bits_lsu_isa_sfence_vma; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_lr_w = if4_io_if4_resp_0_bits_lsu_isa_lr_w; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_sc_w = if4_io_if4_resp_0_bits_lsu_isa_sc_w; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_amoswap_w = if4_io_if4_resp_0_bits_lsu_isa_amoswap_w; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_amoadd_w = if4_io_if4_resp_0_bits_lsu_isa_amoadd_w; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_amoxor_w = if4_io_if4_resp_0_bits_lsu_isa_amoxor_w; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_amoand_w = if4_io_if4_resp_0_bits_lsu_isa_amoand_w; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_amoor_w = if4_io_if4_resp_0_bits_lsu_isa_amoor_w; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_amomin_w = if4_io_if4_resp_0_bits_lsu_isa_amomin_w; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_amomax_w = if4_io_if4_resp_0_bits_lsu_isa_amomax_w; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_amominu_w = if4_io_if4_resp_0_bits_lsu_isa_amominu_w; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_amomaxu_w = if4_io_if4_resp_0_bits_lsu_isa_amomaxu_w; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_lr_d = if4_io_if4_resp_0_bits_lsu_isa_lr_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_sc_d = if4_io_if4_resp_0_bits_lsu_isa_sc_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_amoswap_d = if4_io_if4_resp_0_bits_lsu_isa_amoswap_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_amoadd_d = if4_io_if4_resp_0_bits_lsu_isa_amoadd_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_amoxor_d = if4_io_if4_resp_0_bits_lsu_isa_amoxor_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_amoand_d = if4_io_if4_resp_0_bits_lsu_isa_amoand_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_amoor_d = if4_io_if4_resp_0_bits_lsu_isa_amoor_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_amomin_d = if4_io_if4_resp_0_bits_lsu_isa_amomin_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_amomax_d = if4_io_if4_resp_0_bits_lsu_isa_amomax_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_amominu_d = if4_io_if4_resp_0_bits_lsu_isa_amominu_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_amomaxu_d = if4_io_if4_resp_0_bits_lsu_isa_amomaxu_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_flw = if4_io_if4_resp_0_bits_lsu_isa_flw; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_fsw = if4_io_if4_resp_0_bits_lsu_isa_fsw; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_fld = if4_io_if4_resp_0_bits_lsu_isa_fld; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_lsu_isa_fsd = if4_io_if4_resp_0_bits_lsu_isa_fsd; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_csr_isa_rw = if4_io_if4_resp_0_bits_csr_isa_rw; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_csr_isa_rs = if4_io_if4_resp_0_bits_csr_isa_rs; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_csr_isa_rc = if4_io_if4_resp_0_bits_csr_isa_rc; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_csr_isa_rwi = if4_io_if4_resp_0_bits_csr_isa_rwi; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_csr_isa_rsi = if4_io_if4_resp_0_bits_csr_isa_rsi; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_csr_isa_rci = if4_io_if4_resp_0_bits_csr_isa_rci; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_mul_isa_mul = if4_io_if4_resp_0_bits_mul_isa_mul; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_mul_isa_mulh = if4_io_if4_resp_0_bits_mul_isa_mulh; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_mul_isa_mulhsu = if4_io_if4_resp_0_bits_mul_isa_mulhsu; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_mul_isa_mulhu = if4_io_if4_resp_0_bits_mul_isa_mulhu; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_mul_isa_div = if4_io_if4_resp_0_bits_mul_isa_div; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_mul_isa_divu = if4_io_if4_resp_0_bits_mul_isa_divu; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_mul_isa_rem = if4_io_if4_resp_0_bits_mul_isa_rem; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_mul_isa_remu = if4_io_if4_resp_0_bits_mul_isa_remu; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_mul_isa_mulw = if4_io_if4_resp_0_bits_mul_isa_mulw; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_mul_isa_divw = if4_io_if4_resp_0_bits_mul_isa_divw; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_mul_isa_divuw = if4_io_if4_resp_0_bits_mul_isa_divuw; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_mul_isa_remw = if4_io_if4_resp_0_bits_mul_isa_remw; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_mul_isa_remuw = if4_io_if4_resp_0_bits_mul_isa_remuw; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_ecall = if4_io_if4_resp_0_bits_privil_isa_ecall; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_ebreak = if4_io_if4_resp_0_bits_privil_isa_ebreak; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_mret = if4_io_if4_resp_0_bits_privil_isa_mret; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_uret = if4_io_if4_resp_0_bits_privil_isa_uret; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_sret = if4_io_if4_resp_0_bits_privil_isa_sret; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_dret = if4_io_if4_resp_0_bits_privil_isa_dret; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_hfence_vvma = if4_io_if4_resp_0_bits_privil_isa_hfence_vvma; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_hfence_gvma = if4_io_if4_resp_0_bits_privil_isa_hfence_gvma; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_hlv_b = if4_io_if4_resp_0_bits_privil_isa_hlv_b; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_hlv_bu = if4_io_if4_resp_0_bits_privil_isa_hlv_bu; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_hlv_h = if4_io_if4_resp_0_bits_privil_isa_hlv_h; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_hlv_hu = if4_io_if4_resp_0_bits_privil_isa_hlv_hu; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_hlvx_hu = if4_io_if4_resp_0_bits_privil_isa_hlvx_hu; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_hlv_w = if4_io_if4_resp_0_bits_privil_isa_hlv_w; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_hlvx_wu = if4_io_if4_resp_0_bits_privil_isa_hlvx_wu; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_hsv_b = if4_io_if4_resp_0_bits_privil_isa_hsv_b; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_hsv_h = if4_io_if4_resp_0_bits_privil_isa_hsv_h; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_hsv_w = if4_io_if4_resp_0_bits_privil_isa_hsv_w; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_hlv_wu = if4_io_if4_resp_0_bits_privil_isa_hlv_wu; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_hlv_d = if4_io_if4_resp_0_bits_privil_isa_hlv_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_hsv_d = if4_io_if4_resp_0_bits_privil_isa_hsv_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_is_access_fault = if4_io_if4_resp_0_bits_privil_isa_is_access_fault; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_privil_isa_is_paging_fault = if4_io_if4_resp_0_bits_privil_isa_is_paging_fault; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fmadd_s = if4_io_if4_resp_0_bits_fpu_isa_fmadd_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fmsub_s = if4_io_if4_resp_0_bits_fpu_isa_fmsub_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fnmsub_s = if4_io_if4_resp_0_bits_fpu_isa_fnmsub_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fnmadd_s = if4_io_if4_resp_0_bits_fpu_isa_fnmadd_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fadd_s = if4_io_if4_resp_0_bits_fpu_isa_fadd_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fsub_s = if4_io_if4_resp_0_bits_fpu_isa_fsub_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fmul_s = if4_io_if4_resp_0_bits_fpu_isa_fmul_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fdiv_s = if4_io_if4_resp_0_bits_fpu_isa_fdiv_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fsqrt_s = if4_io_if4_resp_0_bits_fpu_isa_fsqrt_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fsgnj_s = if4_io_if4_resp_0_bits_fpu_isa_fsgnj_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fsgnjn_s = if4_io_if4_resp_0_bits_fpu_isa_fsgnjn_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fsgnjx_s = if4_io_if4_resp_0_bits_fpu_isa_fsgnjx_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fmin_s = if4_io_if4_resp_0_bits_fpu_isa_fmin_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fmax_s = if4_io_if4_resp_0_bits_fpu_isa_fmax_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_w_s = if4_io_if4_resp_0_bits_fpu_isa_fcvt_w_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_wu_s = if4_io_if4_resp_0_bits_fpu_isa_fcvt_wu_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fmv_x_w = if4_io_if4_resp_0_bits_fpu_isa_fmv_x_w; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_feq_s = if4_io_if4_resp_0_bits_fpu_isa_feq_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_flt_s = if4_io_if4_resp_0_bits_fpu_isa_flt_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fle_s = if4_io_if4_resp_0_bits_fpu_isa_fle_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fclass_s = if4_io_if4_resp_0_bits_fpu_isa_fclass_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_s_w = if4_io_if4_resp_0_bits_fpu_isa_fcvt_s_w; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_s_wu = if4_io_if4_resp_0_bits_fpu_isa_fcvt_s_wu; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fmv_w_x = if4_io_if4_resp_0_bits_fpu_isa_fmv_w_x; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_l_s = if4_io_if4_resp_0_bits_fpu_isa_fcvt_l_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_lu_s = if4_io_if4_resp_0_bits_fpu_isa_fcvt_lu_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_s_l = if4_io_if4_resp_0_bits_fpu_isa_fcvt_s_l; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_s_lu = if4_io_if4_resp_0_bits_fpu_isa_fcvt_s_lu; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fmadd_d = if4_io_if4_resp_0_bits_fpu_isa_fmadd_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fmsub_d = if4_io_if4_resp_0_bits_fpu_isa_fmsub_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fnmsub_d = if4_io_if4_resp_0_bits_fpu_isa_fnmsub_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fnmadd_d = if4_io_if4_resp_0_bits_fpu_isa_fnmadd_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fadd_d = if4_io_if4_resp_0_bits_fpu_isa_fadd_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fsub_d = if4_io_if4_resp_0_bits_fpu_isa_fsub_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fmul_d = if4_io_if4_resp_0_bits_fpu_isa_fmul_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fdiv_d = if4_io_if4_resp_0_bits_fpu_isa_fdiv_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fsqrt_d = if4_io_if4_resp_0_bits_fpu_isa_fsqrt_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fsgnj_d = if4_io_if4_resp_0_bits_fpu_isa_fsgnj_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fsgnjn_d = if4_io_if4_resp_0_bits_fpu_isa_fsgnjn_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fsgnjx_d = if4_io_if4_resp_0_bits_fpu_isa_fsgnjx_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fmin_d = if4_io_if4_resp_0_bits_fpu_isa_fmin_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fmax_d = if4_io_if4_resp_0_bits_fpu_isa_fmax_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_s_d = if4_io_if4_resp_0_bits_fpu_isa_fcvt_s_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_d_s = if4_io_if4_resp_0_bits_fpu_isa_fcvt_d_s; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_feq_d = if4_io_if4_resp_0_bits_fpu_isa_feq_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_flt_d = if4_io_if4_resp_0_bits_fpu_isa_flt_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fle_d = if4_io_if4_resp_0_bits_fpu_isa_fle_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fclass_d = if4_io_if4_resp_0_bits_fpu_isa_fclass_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_w_d = if4_io_if4_resp_0_bits_fpu_isa_fcvt_w_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_wu_d = if4_io_if4_resp_0_bits_fpu_isa_fcvt_wu_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_d_w = if4_io_if4_resp_0_bits_fpu_isa_fcvt_d_w; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_d_wu = if4_io_if4_resp_0_bits_fpu_isa_fcvt_d_wu; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_l_d = if4_io_if4_resp_0_bits_fpu_isa_fcvt_l_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_lu_d = if4_io_if4_resp_0_bits_fpu_isa_fcvt_lu_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fmv_x_d = if4_io_if4_resp_0_bits_fpu_isa_fmv_x_d; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_d_l = if4_io_if4_resp_0_bits_fpu_isa_fcvt_d_l; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcvt_d_lu = if4_io_if4_resp_0_bits_fpu_isa_fcvt_d_lu; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fmv_d_x = if4_io_if4_resp_0_bits_fpu_isa_fmv_d_x; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcsr_rw = if4_io_if4_resp_0_bits_fpu_isa_fcsr_rw; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcsr_rs = if4_io_if4_resp_0_bits_fpu_isa_fcsr_rs; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcsr_rc = if4_io_if4_resp_0_bits_fpu_isa_fcsr_rc; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcsr_rwi = if4_io_if4_resp_0_bits_fpu_isa_fcsr_rwi; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcsr_rsi = if4_io_if4_resp_0_bits_fpu_isa_fcsr_rsi; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_fpu_isa_fcsr_rci = if4_io_if4_resp_0_bits_fpu_isa_fcsr_rci; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_param_is_rvc = if4_io_if4_resp_0_bits_param_is_rvc; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_param_pc = if4_io_if4_resp_0_bits_param_pc; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_param_imm = if4_io_if4_resp_0_bits_param_imm; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_param_raw_rs1 = if4_io_if4_resp_0_bits_param_raw_rs1; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_param_raw_rs2 = if4_io_if4_resp_0_bits_param_raw_rs2; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_rnReq_0_bits_param_raw_rd0 = if4_io_if4_resp_0_bits_param_raw_rd0; // @[rift2Core.scala 139:18]
  assign rnm_stage_io_xLookup_0_rsp_rs1 = iwb_stage_io_xLookup_0_rsp_rs1; // @[rift2Core.scala 166:20]
  assign rnm_stage_io_xLookup_0_rsp_rs2 = iwb_stage_io_xLookup_0_rsp_rs2; // @[rift2Core.scala 166:20]
  assign rnm_stage_io_xRename_0_rsp_rd0 = iwb_stage_io_xRename_0_rsp_rd0; // @[rift2Core.scala 168:20]
  assign rnm_stage_io_xRename_0_req_ready = iwb_stage_io_xRename_0_req_ready; // @[rift2Core.scala 168:20]
  assign rnm_stage_io_rod_i_0_ready = cmm_stage_io_rod_0_ready; // @[rift2Core.scala 236:20]
  assign iss_stage_clock = clock;
  assign iss_stage_reset = reset;
  assign iss_stage_io_dptReq_0_valid = rnm_stage_io_rnRsp_0_valid; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_lui = rnm_stage_io_rnRsp_0_bits_alu_isa_lui; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_auipc = rnm_stage_io_rnRsp_0_bits_alu_isa_auipc; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_addi = rnm_stage_io_rnRsp_0_bits_alu_isa_addi; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_addiw = rnm_stage_io_rnRsp_0_bits_alu_isa_addiw; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_slti = rnm_stage_io_rnRsp_0_bits_alu_isa_slti; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_sltiu = rnm_stage_io_rnRsp_0_bits_alu_isa_sltiu; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_xori = rnm_stage_io_rnRsp_0_bits_alu_isa_xori; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_ori = rnm_stage_io_rnRsp_0_bits_alu_isa_ori; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_andi = rnm_stage_io_rnRsp_0_bits_alu_isa_andi; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_slli = rnm_stage_io_rnRsp_0_bits_alu_isa_slli; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_slliw = rnm_stage_io_rnRsp_0_bits_alu_isa_slliw; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_srli = rnm_stage_io_rnRsp_0_bits_alu_isa_srli; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_srliw = rnm_stage_io_rnRsp_0_bits_alu_isa_srliw; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_srai = rnm_stage_io_rnRsp_0_bits_alu_isa_srai; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_sraiw = rnm_stage_io_rnRsp_0_bits_alu_isa_sraiw; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_add = rnm_stage_io_rnRsp_0_bits_alu_isa_add; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_addw = rnm_stage_io_rnRsp_0_bits_alu_isa_addw; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_sub = rnm_stage_io_rnRsp_0_bits_alu_isa_sub; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_subw = rnm_stage_io_rnRsp_0_bits_alu_isa_subw; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_sll = rnm_stage_io_rnRsp_0_bits_alu_isa_sll; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_sllw = rnm_stage_io_rnRsp_0_bits_alu_isa_sllw; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_slt = rnm_stage_io_rnRsp_0_bits_alu_isa_slt; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_sltu = rnm_stage_io_rnRsp_0_bits_alu_isa_sltu; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_xor = rnm_stage_io_rnRsp_0_bits_alu_isa_xor; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_srl = rnm_stage_io_rnRsp_0_bits_alu_isa_srl; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_srlw = rnm_stage_io_rnRsp_0_bits_alu_isa_srlw; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_sra = rnm_stage_io_rnRsp_0_bits_alu_isa_sra; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_sraw = rnm_stage_io_rnRsp_0_bits_alu_isa_sraw; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_or = rnm_stage_io_rnRsp_0_bits_alu_isa_or; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_and = rnm_stage_io_rnRsp_0_bits_alu_isa_and; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_alu_isa_wfi = rnm_stage_io_rnRsp_0_bits_alu_isa_wfi; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_bru_isa_jal = rnm_stage_io_rnRsp_0_bits_bru_isa_jal; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_bru_isa_jalr = rnm_stage_io_rnRsp_0_bits_bru_isa_jalr; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_bru_isa_beq = rnm_stage_io_rnRsp_0_bits_bru_isa_beq; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_bru_isa_bne = rnm_stage_io_rnRsp_0_bits_bru_isa_bne; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_bru_isa_blt = rnm_stage_io_rnRsp_0_bits_bru_isa_blt; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_bru_isa_bge = rnm_stage_io_rnRsp_0_bits_bru_isa_bge; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_bru_isa_bltu = rnm_stage_io_rnRsp_0_bits_bru_isa_bltu; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_bru_isa_bgeu = rnm_stage_io_rnRsp_0_bits_bru_isa_bgeu; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_lb = rnm_stage_io_rnRsp_0_bits_lsu_isa_lb; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_lh = rnm_stage_io_rnRsp_0_bits_lsu_isa_lh; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_lw = rnm_stage_io_rnRsp_0_bits_lsu_isa_lw; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_ld = rnm_stage_io_rnRsp_0_bits_lsu_isa_ld; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_lbu = rnm_stage_io_rnRsp_0_bits_lsu_isa_lbu; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_lhu = rnm_stage_io_rnRsp_0_bits_lsu_isa_lhu; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_lwu = rnm_stage_io_rnRsp_0_bits_lsu_isa_lwu; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_sb = rnm_stage_io_rnRsp_0_bits_lsu_isa_sb; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_sh = rnm_stage_io_rnRsp_0_bits_lsu_isa_sh; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_sw = rnm_stage_io_rnRsp_0_bits_lsu_isa_sw; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_sd = rnm_stage_io_rnRsp_0_bits_lsu_isa_sd; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_fence = rnm_stage_io_rnRsp_0_bits_lsu_isa_fence; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_fence_i = rnm_stage_io_rnRsp_0_bits_lsu_isa_fence_i; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_sfence_vma = rnm_stage_io_rnRsp_0_bits_lsu_isa_sfence_vma; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_lr_w = rnm_stage_io_rnRsp_0_bits_lsu_isa_lr_w; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_sc_w = rnm_stage_io_rnRsp_0_bits_lsu_isa_sc_w; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_amoswap_w = rnm_stage_io_rnRsp_0_bits_lsu_isa_amoswap_w; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_amoadd_w = rnm_stage_io_rnRsp_0_bits_lsu_isa_amoadd_w; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_amoxor_w = rnm_stage_io_rnRsp_0_bits_lsu_isa_amoxor_w; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_amoand_w = rnm_stage_io_rnRsp_0_bits_lsu_isa_amoand_w; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_amoor_w = rnm_stage_io_rnRsp_0_bits_lsu_isa_amoor_w; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_amomin_w = rnm_stage_io_rnRsp_0_bits_lsu_isa_amomin_w; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_amomax_w = rnm_stage_io_rnRsp_0_bits_lsu_isa_amomax_w; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_amominu_w = rnm_stage_io_rnRsp_0_bits_lsu_isa_amominu_w; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_amomaxu_w = rnm_stage_io_rnRsp_0_bits_lsu_isa_amomaxu_w; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_lr_d = rnm_stage_io_rnRsp_0_bits_lsu_isa_lr_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_sc_d = rnm_stage_io_rnRsp_0_bits_lsu_isa_sc_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_amoswap_d = rnm_stage_io_rnRsp_0_bits_lsu_isa_amoswap_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_amoadd_d = rnm_stage_io_rnRsp_0_bits_lsu_isa_amoadd_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_amoxor_d = rnm_stage_io_rnRsp_0_bits_lsu_isa_amoxor_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_amoand_d = rnm_stage_io_rnRsp_0_bits_lsu_isa_amoand_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_amoor_d = rnm_stage_io_rnRsp_0_bits_lsu_isa_amoor_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_amomin_d = rnm_stage_io_rnRsp_0_bits_lsu_isa_amomin_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_amomax_d = rnm_stage_io_rnRsp_0_bits_lsu_isa_amomax_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_amominu_d = rnm_stage_io_rnRsp_0_bits_lsu_isa_amominu_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_amomaxu_d = rnm_stage_io_rnRsp_0_bits_lsu_isa_amomaxu_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_flw = rnm_stage_io_rnRsp_0_bits_lsu_isa_flw; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_fsw = rnm_stage_io_rnRsp_0_bits_lsu_isa_fsw; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_fld = rnm_stage_io_rnRsp_0_bits_lsu_isa_fld; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_lsu_isa_fsd = rnm_stage_io_rnRsp_0_bits_lsu_isa_fsd; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_csr_isa_rw = rnm_stage_io_rnRsp_0_bits_csr_isa_rw; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_csr_isa_rs = rnm_stage_io_rnRsp_0_bits_csr_isa_rs; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_csr_isa_rc = rnm_stage_io_rnRsp_0_bits_csr_isa_rc; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_csr_isa_rwi = rnm_stage_io_rnRsp_0_bits_csr_isa_rwi; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_csr_isa_rsi = rnm_stage_io_rnRsp_0_bits_csr_isa_rsi; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_csr_isa_rci = rnm_stage_io_rnRsp_0_bits_csr_isa_rci; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_mul_isa_mul = rnm_stage_io_rnRsp_0_bits_mul_isa_mul; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_mul_isa_mulh = rnm_stage_io_rnRsp_0_bits_mul_isa_mulh; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_mul_isa_mulhsu = rnm_stage_io_rnRsp_0_bits_mul_isa_mulhsu; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_mul_isa_mulhu = rnm_stage_io_rnRsp_0_bits_mul_isa_mulhu; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_mul_isa_div = rnm_stage_io_rnRsp_0_bits_mul_isa_div; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_mul_isa_divu = rnm_stage_io_rnRsp_0_bits_mul_isa_divu; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_mul_isa_rem = rnm_stage_io_rnRsp_0_bits_mul_isa_rem; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_mul_isa_remu = rnm_stage_io_rnRsp_0_bits_mul_isa_remu; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_mul_isa_mulw = rnm_stage_io_rnRsp_0_bits_mul_isa_mulw; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_mul_isa_divw = rnm_stage_io_rnRsp_0_bits_mul_isa_divw; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_mul_isa_divuw = rnm_stage_io_rnRsp_0_bits_mul_isa_divuw; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_mul_isa_remw = rnm_stage_io_rnRsp_0_bits_mul_isa_remw; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_mul_isa_remuw = rnm_stage_io_rnRsp_0_bits_mul_isa_remuw; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fmadd_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_fmadd_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fmsub_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_fmsub_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fnmsub_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_fnmsub_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fnmadd_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_fnmadd_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fadd_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_fadd_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fsub_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_fsub_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fmul_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_fmul_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fdiv_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_fdiv_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fsqrt_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_fsqrt_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fsgnj_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_fsgnj_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fsgnjn_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_fsgnjn_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fsgnjx_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_fsgnjx_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fmin_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_fmin_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fmax_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_fmax_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_w_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_w_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_wu_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_wu_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fmv_x_w = rnm_stage_io_rnRsp_0_bits_fpu_isa_fmv_x_w; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_feq_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_feq_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_flt_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_flt_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fle_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_fle_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fclass_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_fclass_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_l_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_l_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_lu_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_lu_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fmadd_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_fmadd_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fmsub_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_fmsub_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fnmsub_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_fnmsub_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fnmadd_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_fnmadd_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fadd_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_fadd_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fsub_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_fsub_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fmul_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_fmul_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fdiv_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_fdiv_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fsqrt_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_fsqrt_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fsgnj_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_fsgnj_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fsgnjn_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_fsgnjn_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fsgnjx_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_fsgnjx_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fmin_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_fmin_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fmax_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_fmax_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_s_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_s_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_d_s = rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_d_s; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_feq_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_feq_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_flt_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_flt_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fle_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_fle_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fclass_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_fclass_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_w_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_w_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_wu_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_wu_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_l_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_l_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fcvt_lu_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_fcvt_lu_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_fpu_isa_fmv_x_d = rnm_stage_io_rnRsp_0_bits_fpu_isa_fmv_x_d; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_param_is_rvc = rnm_stage_io_rnRsp_0_bits_param_is_rvc; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_param_pc = rnm_stage_io_rnRsp_0_bits_param_pc; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_param_imm = rnm_stage_io_rnRsp_0_bits_param_imm; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_param_raw_rs1 = rnm_stage_io_rnRsp_0_bits_param_raw_rs1; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_phy_rs1 = rnm_stage_io_rnRsp_0_bits_phy_rs1; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_phy_rs2 = rnm_stage_io_rnRsp_0_bits_phy_rs2; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_phy_rs3 = rnm_stage_io_rnRsp_0_bits_phy_rs3; // @[rift2Core.scala 147:19]
  assign iss_stage_io_dptReq_0_bits_phy_rd0 = rnm_stage_io_rnRsp_0_bits_phy_rd0; // @[rift2Core.scala 147:19]
  assign iss_stage_io_alu_iss_exe_0_ready = exe_stage_io_alu_iss_exe_0_ready; // @[rift2Core.scala 154:30]
  assign iss_stage_io_mul_iss_exe_0_ready = exe_stage_io_mul_iss_exe_0_ready; // @[rift2Core.scala 158:30]
  assign iss_stage_io_bru_iss_exe_ready = exe_stage_io_bru_iss_exe_ready; // @[rift2Core.scala 155:30]
  assign iss_stage_io_csr_iss_exe_ready = exe_stage_io_csr_iss_exe_ready; // @[rift2Core.scala 157:30]
  assign iss_stage_io_lsu_iss_exe_ready = exe_stage_io_lsu_iss_exe_ready; // @[rift2Core.scala 156:30]
  assign iss_stage_io_irgLog_0 = iwb_stage_io_irgLog_0; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_1 = iwb_stage_io_irgLog_1; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_2 = iwb_stage_io_irgLog_2; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_3 = iwb_stage_io_irgLog_3; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_4 = iwb_stage_io_irgLog_4; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_5 = iwb_stage_io_irgLog_5; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_6 = iwb_stage_io_irgLog_6; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_7 = iwb_stage_io_irgLog_7; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_8 = iwb_stage_io_irgLog_8; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_9 = iwb_stage_io_irgLog_9; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_10 = iwb_stage_io_irgLog_10; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_11 = iwb_stage_io_irgLog_11; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_12 = iwb_stage_io_irgLog_12; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_13 = iwb_stage_io_irgLog_13; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_14 = iwb_stage_io_irgLog_14; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_15 = iwb_stage_io_irgLog_15; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_16 = iwb_stage_io_irgLog_16; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_17 = iwb_stage_io_irgLog_17; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_18 = iwb_stage_io_irgLog_18; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_19 = iwb_stage_io_irgLog_19; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_20 = iwb_stage_io_irgLog_20; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_21 = iwb_stage_io_irgLog_21; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_22 = iwb_stage_io_irgLog_22; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_23 = iwb_stage_io_irgLog_23; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_24 = iwb_stage_io_irgLog_24; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_25 = iwb_stage_io_irgLog_25; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_26 = iwb_stage_io_irgLog_26; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_27 = iwb_stage_io_irgLog_27; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_28 = iwb_stage_io_irgLog_28; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_29 = iwb_stage_io_irgLog_29; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_30 = iwb_stage_io_irgLog_30; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_31 = iwb_stage_io_irgLog_31; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgLog_32 = iwb_stage_io_irgLog_32; // @[rift2Core.scala 171:25]
  assign iss_stage_io_irgRsp_0_valid = iwb_stage_io_irgRsp_0_valid; // @[rift2Core.scala 175:25]
  assign iss_stage_io_irgRsp_0_bits_phy = iwb_stage_io_irgRsp_0_bits_phy; // @[rift2Core.scala 175:25]
  assign iss_stage_io_irgRsp_0_bits_op = iwb_stage_io_irgRsp_0_bits_op; // @[rift2Core.scala 175:25]
  assign iss_stage_io_irgRsp_1_valid = iwb_stage_io_irgRsp_1_valid; // @[rift2Core.scala 175:25]
  assign iss_stage_io_irgRsp_1_bits_phy = iwb_stage_io_irgRsp_1_bits_phy; // @[rift2Core.scala 175:25]
  assign iss_stage_io_irgRsp_1_bits_op = iwb_stage_io_irgRsp_1_bits_op; // @[rift2Core.scala 175:25]
  assign iss_stage_io_flush = cmm_stage_io_cmmRedirect_valid; // @[rift2Core.scala 230:22]
  assign exe_stage_clock = clock;
  assign exe_stage_reset = reset;
  assign exe_stage_io_alu_iss_exe_0_valid = iss_stage_io_alu_iss_exe_0_valid; // @[rift2Core.scala 154:30]
  assign exe_stage_io_alu_iss_exe_0_bits_fun_add = iss_stage_io_alu_iss_exe_0_bits_fun_add; // @[rift2Core.scala 154:30]
  assign exe_stage_io_alu_iss_exe_0_bits_fun_slt = iss_stage_io_alu_iss_exe_0_bits_fun_slt; // @[rift2Core.scala 154:30]
  assign exe_stage_io_alu_iss_exe_0_bits_fun_xor = iss_stage_io_alu_iss_exe_0_bits_fun_xor; // @[rift2Core.scala 154:30]
  assign exe_stage_io_alu_iss_exe_0_bits_fun_or = iss_stage_io_alu_iss_exe_0_bits_fun_or; // @[rift2Core.scala 154:30]
  assign exe_stage_io_alu_iss_exe_0_bits_fun_and = iss_stage_io_alu_iss_exe_0_bits_fun_and; // @[rift2Core.scala 154:30]
  assign exe_stage_io_alu_iss_exe_0_bits_fun_sll = iss_stage_io_alu_iss_exe_0_bits_fun_sll; // @[rift2Core.scala 154:30]
  assign exe_stage_io_alu_iss_exe_0_bits_fun_srl = iss_stage_io_alu_iss_exe_0_bits_fun_srl; // @[rift2Core.scala 154:30]
  assign exe_stage_io_alu_iss_exe_0_bits_fun_sra = iss_stage_io_alu_iss_exe_0_bits_fun_sra; // @[rift2Core.scala 154:30]
  assign exe_stage_io_alu_iss_exe_0_bits_param_rd0 = iss_stage_io_alu_iss_exe_0_bits_param_rd0; // @[rift2Core.scala 154:30]
  assign exe_stage_io_alu_iss_exe_0_bits_param_is_32w = iss_stage_io_alu_iss_exe_0_bits_param_is_32w; // @[rift2Core.scala 154:30]
  assign exe_stage_io_alu_iss_exe_0_bits_param_is_usi = iss_stage_io_alu_iss_exe_0_bits_param_is_usi; // @[rift2Core.scala 154:30]
  assign exe_stage_io_alu_iss_exe_0_bits_param_dat_op1 = iss_stage_io_alu_iss_exe_0_bits_param_dat_op1; // @[rift2Core.scala 154:30]
  assign exe_stage_io_alu_iss_exe_0_bits_param_dat_op2 = iss_stage_io_alu_iss_exe_0_bits_param_dat_op2; // @[rift2Core.scala 154:30]
  assign exe_stage_io_alu_exe_iwb_0_ready = iwb_stage_io_alu_iWriteBack_0_ready; // @[rift2Core.scala 179:27]
  assign exe_stage_io_bru_iss_exe_valid = iss_stage_io_bru_iss_exe_valid; // @[rift2Core.scala 155:30]
  assign exe_stage_io_bru_iss_exe_bits_fun_jalr = iss_stage_io_bru_iss_exe_bits_fun_jalr; // @[rift2Core.scala 155:30]
  assign exe_stage_io_bru_iss_exe_bits_fun_beq = iss_stage_io_bru_iss_exe_bits_fun_beq; // @[rift2Core.scala 155:30]
  assign exe_stage_io_bru_iss_exe_bits_fun_bne = iss_stage_io_bru_iss_exe_bits_fun_bne; // @[rift2Core.scala 155:30]
  assign exe_stage_io_bru_iss_exe_bits_fun_blt = iss_stage_io_bru_iss_exe_bits_fun_blt; // @[rift2Core.scala 155:30]
  assign exe_stage_io_bru_iss_exe_bits_fun_bge = iss_stage_io_bru_iss_exe_bits_fun_bge; // @[rift2Core.scala 155:30]
  assign exe_stage_io_bru_iss_exe_bits_fun_bltu = iss_stage_io_bru_iss_exe_bits_fun_bltu; // @[rift2Core.scala 155:30]
  assign exe_stage_io_bru_iss_exe_bits_fun_bgeu = iss_stage_io_bru_iss_exe_bits_fun_bgeu; // @[rift2Core.scala 155:30]
  assign exe_stage_io_bru_iss_exe_bits_param_rd0 = iss_stage_io_bru_iss_exe_bits_param_rd0; // @[rift2Core.scala 155:30]
  assign exe_stage_io_bru_iss_exe_bits_param_is_rvc = iss_stage_io_bru_iss_exe_bits_param_is_rvc; // @[rift2Core.scala 155:30]
  assign exe_stage_io_bru_iss_exe_bits_param_pc = iss_stage_io_bru_iss_exe_bits_param_pc; // @[rift2Core.scala 155:30]
  assign exe_stage_io_bru_iss_exe_bits_param_imm = iss_stage_io_bru_iss_exe_bits_param_imm; // @[rift2Core.scala 155:30]
  assign exe_stage_io_bru_iss_exe_bits_param_dat_op1 = iss_stage_io_bru_iss_exe_bits_param_dat_op1; // @[rift2Core.scala 155:30]
  assign exe_stage_io_bru_iss_exe_bits_param_dat_op2 = iss_stage_io_bru_iss_exe_bits_param_dat_op2; // @[rift2Core.scala 155:30]
  assign exe_stage_io_bru_exe_iwb_ready = iwb_stage_io_bru_iWriteBack_ready; // @[rift2Core.scala 180:27]
  assign exe_stage_io_csr_iss_exe_valid = iss_stage_io_csr_iss_exe_valid; // @[rift2Core.scala 157:30]
  assign exe_stage_io_csr_iss_exe_bits_fun_rw = iss_stage_io_csr_iss_exe_bits_fun_rw; // @[rift2Core.scala 157:30]
  assign exe_stage_io_csr_iss_exe_bits_fun_rs = iss_stage_io_csr_iss_exe_bits_fun_rs; // @[rift2Core.scala 157:30]
  assign exe_stage_io_csr_iss_exe_bits_fun_rc = iss_stage_io_csr_iss_exe_bits_fun_rc; // @[rift2Core.scala 157:30]
  assign exe_stage_io_csr_iss_exe_bits_param_rd0 = iss_stage_io_csr_iss_exe_bits_param_rd0; // @[rift2Core.scala 157:30]
  assign exe_stage_io_csr_iss_exe_bits_param_dat_op1 = iss_stage_io_csr_iss_exe_bits_param_dat_op1; // @[rift2Core.scala 157:30]
  assign exe_stage_io_csr_iss_exe_bits_param_dat_op2 = iss_stage_io_csr_iss_exe_bits_param_dat_op2; // @[rift2Core.scala 157:30]
  assign exe_stage_io_csr_exe_iwb_ready = iwb_stage_io_csr_iWriteBack_ready; // @[rift2Core.scala 181:27]
  assign exe_stage_io_lsu_iss_exe_valid = iss_stage_io_lsu_iss_exe_valid; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_lb = iss_stage_io_lsu_iss_exe_bits_fun_lb; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_lh = iss_stage_io_lsu_iss_exe_bits_fun_lh; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_lw = iss_stage_io_lsu_iss_exe_bits_fun_lw; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_ld = iss_stage_io_lsu_iss_exe_bits_fun_ld; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_lbu = iss_stage_io_lsu_iss_exe_bits_fun_lbu; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_lhu = iss_stage_io_lsu_iss_exe_bits_fun_lhu; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_lwu = iss_stage_io_lsu_iss_exe_bits_fun_lwu; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_sb = iss_stage_io_lsu_iss_exe_bits_fun_sb; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_sh = iss_stage_io_lsu_iss_exe_bits_fun_sh; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_sw = iss_stage_io_lsu_iss_exe_bits_fun_sw; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_sd = iss_stage_io_lsu_iss_exe_bits_fun_sd; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_fence = iss_stage_io_lsu_iss_exe_bits_fun_fence; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_fence_i = iss_stage_io_lsu_iss_exe_bits_fun_fence_i; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_sfence_vma = iss_stage_io_lsu_iss_exe_bits_fun_sfence_vma; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_lr_w = iss_stage_io_lsu_iss_exe_bits_fun_lr_w; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_sc_w = iss_stage_io_lsu_iss_exe_bits_fun_sc_w; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_amoswap_w = iss_stage_io_lsu_iss_exe_bits_fun_amoswap_w; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_amoadd_w = iss_stage_io_lsu_iss_exe_bits_fun_amoadd_w; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_amoxor_w = iss_stage_io_lsu_iss_exe_bits_fun_amoxor_w; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_amoand_w = iss_stage_io_lsu_iss_exe_bits_fun_amoand_w; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_amoor_w = iss_stage_io_lsu_iss_exe_bits_fun_amoor_w; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_amomin_w = iss_stage_io_lsu_iss_exe_bits_fun_amomin_w; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_amomax_w = iss_stage_io_lsu_iss_exe_bits_fun_amomax_w; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_amominu_w = iss_stage_io_lsu_iss_exe_bits_fun_amominu_w; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_amomaxu_w = iss_stage_io_lsu_iss_exe_bits_fun_amomaxu_w; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_lr_d = iss_stage_io_lsu_iss_exe_bits_fun_lr_d; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_sc_d = iss_stage_io_lsu_iss_exe_bits_fun_sc_d; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_amoswap_d = iss_stage_io_lsu_iss_exe_bits_fun_amoswap_d; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_amoadd_d = iss_stage_io_lsu_iss_exe_bits_fun_amoadd_d; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_amoxor_d = iss_stage_io_lsu_iss_exe_bits_fun_amoxor_d; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_amoand_d = iss_stage_io_lsu_iss_exe_bits_fun_amoand_d; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_amoor_d = iss_stage_io_lsu_iss_exe_bits_fun_amoor_d; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_amomin_d = iss_stage_io_lsu_iss_exe_bits_fun_amomin_d; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_amomax_d = iss_stage_io_lsu_iss_exe_bits_fun_amomax_d; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_amominu_d = iss_stage_io_lsu_iss_exe_bits_fun_amominu_d; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_amomaxu_d = iss_stage_io_lsu_iss_exe_bits_fun_amomaxu_d; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_flw = iss_stage_io_lsu_iss_exe_bits_fun_flw; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_fsw = iss_stage_io_lsu_iss_exe_bits_fun_fsw; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_fld = iss_stage_io_lsu_iss_exe_bits_fun_fld; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_fun_fsd = iss_stage_io_lsu_iss_exe_bits_fun_fsd; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_param_rd0 = iss_stage_io_lsu_iss_exe_bits_param_rd0; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_param_dat_op1 = iss_stage_io_lsu_iss_exe_bits_param_dat_op1; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_iss_exe_bits_param_dat_op2 = iss_stage_io_lsu_iss_exe_bits_param_dat_op2; // @[rift2Core.scala 156:30]
  assign exe_stage_io_lsu_exe_iwb_ready = iwb_stage_io_mem_iWriteBack_ready; // @[rift2Core.scala 182:27]
  assign exe_stage_io_mul_iss_exe_0_valid = iss_stage_io_mul_iss_exe_0_valid; // @[rift2Core.scala 158:30]
  assign exe_stage_io_mul_iss_exe_0_bits_fun_mul = iss_stage_io_mul_iss_exe_0_bits_fun_mul; // @[rift2Core.scala 158:30]
  assign exe_stage_io_mul_iss_exe_0_bits_fun_mulh = iss_stage_io_mul_iss_exe_0_bits_fun_mulh; // @[rift2Core.scala 158:30]
  assign exe_stage_io_mul_iss_exe_0_bits_fun_mulhsu = iss_stage_io_mul_iss_exe_0_bits_fun_mulhsu; // @[rift2Core.scala 158:30]
  assign exe_stage_io_mul_iss_exe_0_bits_fun_mulhu = iss_stage_io_mul_iss_exe_0_bits_fun_mulhu; // @[rift2Core.scala 158:30]
  assign exe_stage_io_mul_iss_exe_0_bits_fun_div = iss_stage_io_mul_iss_exe_0_bits_fun_div; // @[rift2Core.scala 158:30]
  assign exe_stage_io_mul_iss_exe_0_bits_fun_divu = iss_stage_io_mul_iss_exe_0_bits_fun_divu; // @[rift2Core.scala 158:30]
  assign exe_stage_io_mul_iss_exe_0_bits_fun_rem = iss_stage_io_mul_iss_exe_0_bits_fun_rem; // @[rift2Core.scala 158:30]
  assign exe_stage_io_mul_iss_exe_0_bits_fun_remu = iss_stage_io_mul_iss_exe_0_bits_fun_remu; // @[rift2Core.scala 158:30]
  assign exe_stage_io_mul_iss_exe_0_bits_fun_mulw = iss_stage_io_mul_iss_exe_0_bits_fun_mulw; // @[rift2Core.scala 158:30]
  assign exe_stage_io_mul_iss_exe_0_bits_fun_divw = iss_stage_io_mul_iss_exe_0_bits_fun_divw; // @[rift2Core.scala 158:30]
  assign exe_stage_io_mul_iss_exe_0_bits_fun_divuw = iss_stage_io_mul_iss_exe_0_bits_fun_divuw; // @[rift2Core.scala 158:30]
  assign exe_stage_io_mul_iss_exe_0_bits_fun_remw = iss_stage_io_mul_iss_exe_0_bits_fun_remw; // @[rift2Core.scala 158:30]
  assign exe_stage_io_mul_iss_exe_0_bits_fun_remuw = iss_stage_io_mul_iss_exe_0_bits_fun_remuw; // @[rift2Core.scala 158:30]
  assign exe_stage_io_mul_iss_exe_0_bits_param_rd0 = iss_stage_io_mul_iss_exe_0_bits_param_rd0; // @[rift2Core.scala 158:30]
  assign exe_stage_io_mul_iss_exe_0_bits_param_dat_op1 = iss_stage_io_mul_iss_exe_0_bits_param_dat_op1; // @[rift2Core.scala 158:30]
  assign exe_stage_io_mul_iss_exe_0_bits_param_dat_op2 = iss_stage_io_mul_iss_exe_0_bits_param_dat_op2; // @[rift2Core.scala 158:30]
  assign exe_stage_io_mul_exe_iwb_0_ready = iwb_stage_io_mul_iWriteBack_0_ready; // @[rift2Core.scala 184:27]
  assign exe_stage_io_bftq_valid = if4_io_bftq_valid; // @[rift2Core.scala 216:23]
  assign exe_stage_io_bftq_bits_pc = if4_io_bftq_bits_pc; // @[rift2Core.scala 216:23]
  assign exe_stage_io_bftq_bits_bimResp_bim_p = if4_io_bftq_bits_bimResp_bim_p; // @[rift2Core.scala 216:23]
  assign exe_stage_io_bftq_bits_bimResp_bim_h = if4_io_bftq_bits_bimResp_bim_h; // @[rift2Core.scala 216:23]
  assign exe_stage_io_bftq_bits_isPredictTaken = if4_io_bftq_bits_isPredictTaken; // @[rift2Core.scala 216:23]
  assign exe_stage_io_jftq_valid = if4_io_jftq_valid; // @[rift2Core.scala 217:23]
  assign exe_stage_io_jftq_bits_pc = if4_io_jftq_bits_pc; // @[rift2Core.scala 217:23]
  assign exe_stage_io_jftq_bits_btbResp_target = if4_io_jftq_bits_btbResp_target; // @[rift2Core.scala 217:23]
  assign exe_stage_io_jftq_bits_rasResp_target = if4_io_jftq_bits_rasResp_target; // @[rift2Core.scala 217:23]
  assign exe_stage_io_jftq_bits_isRas = if4_io_jftq_bits_isRas; // @[rift2Core.scala 217:23]
  assign exe_stage_io_bctq_ready = cmm_stage_io_bctq_ready; // @[rift2Core.scala 244:21]
  assign exe_stage_io_jctq_ready = cmm_stage_io_jctq_ready; // @[rift2Core.scala 245:21]
  assign exe_stage_io_csr_data_valid = cmm_stage_io_csr_data_valid; // @[rift2Core.scala 240:25]
  assign exe_stage_io_csr_data_bits = cmm_stage_io_csr_data_bits; // @[rift2Core.scala 240:25]
  assign exe_stage_io_csr_cmm_op_ready = cmm_stage_io_csr_cmm_op_ready; // @[rift2Core.scala 241:27]
  assign exe_stage_io_lsu_mmu_ready = i_mmu_io_lsu_mmu_ready; // @[rift2Core.scala 200:20]
  assign exe_stage_io_mmu_lsu_valid = i_mmu_io_mmu_lsu_valid; // @[rift2Core.scala 201:20]
  assign exe_stage_io_mmu_lsu_bits_paddr = i_mmu_io_mmu_lsu_bits_paddr; // @[rift2Core.scala 201:20]
  assign exe_stage_io_mmu_lsu_bits_is_paging_fault = i_mmu_io_mmu_lsu_bits_is_paging_fault; // @[rift2Core.scala 201:20]
  assign exe_stage_io_mmu_lsu_bits_is_access_fault = i_mmu_io_mmu_lsu_bits_is_access_fault; // @[rift2Core.scala 201:20]
  assign exe_stage_io_cmm_lsu_is_amo_pending = cmm_stage_io_cmm_lsu_is_amo_pending; // @[rift2Core.scala 237:24]
  assign exe_stage_io_cmm_lsu_is_store_commit_0 = cmm_stage_io_cmm_lsu_is_store_commit_0; // @[rift2Core.scala 237:24]
  assign exe_stage_io_missUnit_dcache_acquire_ready = auto_dcache_client_out_a_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign exe_stage_io_missUnit_dcache_grant_valid = auto_dcache_client_out_d_valid & (
    auto_dcache_client_out_d_bits_opcode == 3'h4 | auto_dcache_client_out_d_bits_opcode == 3'h5); // @[rift2Core.scala 274:72]
  assign exe_stage_io_missUnit_dcache_grant_bits_opcode = auto_dcache_client_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign exe_stage_io_missUnit_dcache_grant_bits_size = auto_dcache_client_out_d_bits_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign exe_stage_io_missUnit_dcache_grant_bits_source = auto_dcache_client_out_d_bits_source; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign exe_stage_io_missUnit_dcache_grant_bits_sink = auto_dcache_client_out_d_bits_sink; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign exe_stage_io_missUnit_dcache_grant_bits_data = auto_dcache_client_out_d_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign exe_stage_io_missUnit_dcache_grantAck_ready = auto_dcache_client_out_e_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign exe_stage_io_probeUnit_dcache_probe_valid = auto_dcache_client_out_b_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign exe_stage_io_probeUnit_dcache_probe_bits_address = auto_dcache_client_out_b_bits_address; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign exe_stage_io_writeBackUnit_dcache_release_ready = auto_dcache_client_out_c_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign exe_stage_io_writeBackUnit_dcache_grant_valid = auto_dcache_client_out_d_valid &
    auto_dcache_client_out_d_bits_opcode == 3'h6; // @[rift2Core.scala 277:77]
  assign exe_stage_io_writeBackUnit_dcache_grant_bits_source = auto_dcache_client_out_d_bits_source; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign exe_stage_io_system_getPut_ready = auto_system_client_out_a_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign exe_stage_io_system_access_valid = auto_system_client_out_d_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign exe_stage_io_system_access_bits_opcode = auto_system_client_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign exe_stage_io_system_access_bits_data = auto_system_client_out_d_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign exe_stage_io_periph_getPut_ready = auto_periph_client_out_a_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign exe_stage_io_periph_access_valid = auto_periph_client_out_d_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign exe_stage_io_periph_access_bits_opcode = auto_periph_client_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign exe_stage_io_periph_access_bits_data = auto_periph_client_out_d_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign exe_stage_io_flush = cmm_stage_io_cmmRedirect_valid; // @[rift2Core.scala 231:22]
  assign iwb_stage_clock = clock;
  assign iwb_stage_reset = reset;
  assign iwb_stage_io_xLookup_0_req_rs1 = rnm_stage_io_xLookup_0_req_rs1; // @[rift2Core.scala 166:20]
  assign iwb_stage_io_xLookup_0_req_rs2 = rnm_stage_io_xLookup_0_req_rs2; // @[rift2Core.scala 166:20]
  assign iwb_stage_io_xRename_0_req_valid = rnm_stage_io_xRename_0_req_valid; // @[rift2Core.scala 168:20]
  assign iwb_stage_io_xRename_0_req_bits_rd0 = rnm_stage_io_xRename_0_req_bits_rd0; // @[rift2Core.scala 168:20]
  assign iwb_stage_io_irgReq_0_valid = iss_stage_io_irgReq_0_valid; // @[rift2Core.scala 173:19]
  assign iwb_stage_io_irgReq_0_bits = iss_stage_io_irgReq_0_bits; // @[rift2Core.scala 173:19]
  assign iwb_stage_io_irgReq_1_valid = iss_stage_io_irgReq_1_valid; // @[rift2Core.scala 173:19]
  assign iwb_stage_io_irgReq_1_bits = iss_stage_io_irgReq_1_bits; // @[rift2Core.scala 173:19]
  assign iwb_stage_io_alu_iWriteBack_0_valid = exe_stage_io_alu_exe_iwb_0_valid; // @[rift2Core.scala 179:27]
  assign iwb_stage_io_alu_iWriteBack_0_bits_rd0 = exe_stage_io_alu_exe_iwb_0_bits_rd0; // @[rift2Core.scala 179:27]
  assign iwb_stage_io_alu_iWriteBack_0_bits_res = exe_stage_io_alu_exe_iwb_0_bits_res; // @[rift2Core.scala 179:27]
  assign iwb_stage_io_bru_iWriteBack_valid = exe_stage_io_bru_exe_iwb_valid; // @[rift2Core.scala 180:27]
  assign iwb_stage_io_bru_iWriteBack_bits_rd0 = exe_stage_io_bru_exe_iwb_bits_rd0; // @[rift2Core.scala 180:27]
  assign iwb_stage_io_bru_iWriteBack_bits_res = exe_stage_io_bru_exe_iwb_bits_res; // @[rift2Core.scala 180:27]
  assign iwb_stage_io_csr_iWriteBack_valid = exe_stage_io_csr_exe_iwb_valid; // @[rift2Core.scala 181:27]
  assign iwb_stage_io_csr_iWriteBack_bits_rd0 = exe_stage_io_csr_exe_iwb_bits_rd0; // @[rift2Core.scala 181:27]
  assign iwb_stage_io_csr_iWriteBack_bits_res = exe_stage_io_csr_exe_iwb_bits_res; // @[rift2Core.scala 181:27]
  assign iwb_stage_io_mem_iWriteBack_valid = exe_stage_io_lsu_exe_iwb_valid; // @[rift2Core.scala 182:27]
  assign iwb_stage_io_mem_iWriteBack_bits_rd0 = exe_stage_io_lsu_exe_iwb_bits_rd0; // @[rift2Core.scala 182:27]
  assign iwb_stage_io_mem_iWriteBack_bits_res = exe_stage_io_lsu_exe_iwb_bits_res; // @[rift2Core.scala 182:27]
  assign iwb_stage_io_mul_iWriteBack_0_valid = exe_stage_io_mul_exe_iwb_0_valid; // @[rift2Core.scala 184:27]
  assign iwb_stage_io_mul_iWriteBack_0_bits_rd0 = exe_stage_io_mul_exe_iwb_0_bits_rd0; // @[rift2Core.scala 184:27]
  assign iwb_stage_io_mul_iWriteBack_0_bits_res = exe_stage_io_mul_exe_iwb_0_bits_res; // @[rift2Core.scala 184:27]
  assign iwb_stage_io_mem_fWriteBack_valid = exe_stage_io_lsu_exe_fwb_valid; // @[rift2Core.scala 183:27]
  assign iwb_stage_io_commit_0_is_comfirm = cmm_stage_io_cm_op_0_is_comfirm; // @[rift2Core.scala 235:22]
  assign iwb_stage_io_commit_0_is_MisPredict = cmm_stage_io_cm_op_0_is_MisPredict; // @[rift2Core.scala 235:22]
  assign iwb_stage_io_commit_0_is_abort = cmm_stage_io_cm_op_0_is_abort; // @[rift2Core.scala 235:22]
  assign iwb_stage_io_commit_0_raw = cmm_stage_io_cm_op_0_raw; // @[rift2Core.scala 235:22]
  assign iwb_stage_io_commit_0_phy = cmm_stage_io_cm_op_0_phy; // @[rift2Core.scala 235:22]
  assign iwb_stage_io_commit_0_toX = cmm_stage_io_cm_op_0_toX; // @[rift2Core.scala 235:22]
  assign cmm_stage_clock = clock;
  assign cmm_stage_reset = reset;
  assign cmm_stage_io_cm_op_0_is_writeback = iwb_stage_io_commit_0_is_writeback; // @[rift2Core.scala 235:22]
  assign cmm_stage_io_rod_0_valid = rnm_stage_io_rod_i_0_valid; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_pc = rnm_stage_io_rod_i_0_bits_pc; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_rd0_raw = rnm_stage_io_rod_i_0_bits_rd0_raw; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_rd0_phy = rnm_stage_io_rod_i_0_bits_rd0_phy; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_is_branch = rnm_stage_io_rod_i_0_bits_is_branch; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_is_jalr = rnm_stage_io_rod_i_0_bits_is_jalr; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_is_lu = rnm_stage_io_rod_i_0_bits_is_lu; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_is_su = rnm_stage_io_rod_i_0_bits_is_su; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_is_amo = rnm_stage_io_rod_i_0_bits_is_amo; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_is_fence_i = rnm_stage_io_rod_i_0_bits_is_fence_i; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_is_sfence_vma = rnm_stage_io_rod_i_0_bits_is_sfence_vma; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_is_wfi = rnm_stage_io_rod_i_0_bits_is_wfi; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_is_csr = rnm_stage_io_rod_i_0_bits_is_csr; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_is_fpu = rnm_stage_io_rod_i_0_bits_is_fpu; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_is_fcsr = rnm_stage_io_rod_i_0_bits_is_fcsr; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_is_xcmm = rnm_stage_io_rod_i_0_bits_is_xcmm; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_privil_ecall = rnm_stage_io_rod_i_0_bits_privil_ecall; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_privil_ebreak = rnm_stage_io_rod_i_0_bits_privil_ebreak; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_privil_mret = rnm_stage_io_rod_i_0_bits_privil_mret; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_privil_sret = rnm_stage_io_rod_i_0_bits_privil_sret; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_privil_dret = rnm_stage_io_rod_i_0_bits_privil_dret; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_privil_is_access_fault = rnm_stage_io_rod_i_0_bits_privil_is_access_fault; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_privil_is_paging_fault = rnm_stage_io_rod_i_0_bits_privil_is_paging_fault; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_rod_0_bits_is_illeage = rnm_stage_io_rod_i_0_bits_is_illeage; // @[rift2Core.scala 236:20]
  assign cmm_stage_io_lsu_cmm_is_access_fault = exe_stage_io_lsu_cmm_is_access_fault; // @[rift2Core.scala 238:24]
  assign cmm_stage_io_lsu_cmm_is_paging_fault = exe_stage_io_lsu_cmm_is_paging_fault; // @[rift2Core.scala 238:24]
  assign cmm_stage_io_lsu_cmm_is_misAlign = exe_stage_io_lsu_cmm_is_misAlign; // @[rift2Core.scala 238:24]
  assign cmm_stage_io_lsu_cmm_trap_addr = exe_stage_io_lsu_cmm_trap_addr; // @[rift2Core.scala 238:24]
  assign cmm_stage_io_csr_addr_valid = exe_stage_io_csr_addr_valid; // @[rift2Core.scala 239:25]
  assign cmm_stage_io_csr_addr_bits = exe_stage_io_csr_addr_bits; // @[rift2Core.scala 239:25]
  assign cmm_stage_io_csr_cmm_op_valid = exe_stage_io_csr_cmm_op_valid; // @[rift2Core.scala 241:27]
  assign cmm_stage_io_csr_cmm_op_bits_addr = exe_stage_io_csr_cmm_op_bits_addr; // @[rift2Core.scala 241:27]
  assign cmm_stage_io_csr_cmm_op_bits_dat_i = exe_stage_io_csr_cmm_op_bits_dat_i; // @[rift2Core.scala 241:27]
  assign cmm_stage_io_csr_cmm_op_bits_op_rw = exe_stage_io_csr_cmm_op_bits_op_rw; // @[rift2Core.scala 241:27]
  assign cmm_stage_io_csr_cmm_op_bits_op_rs = exe_stage_io_csr_cmm_op_bits_op_rs; // @[rift2Core.scala 241:27]
  assign cmm_stage_io_csr_cmm_op_bits_op_rc = exe_stage_io_csr_cmm_op_bits_op_rc; // @[rift2Core.scala 241:27]
  assign cmm_stage_io_bctq_valid = exe_stage_io_bctq_valid; // @[rift2Core.scala 244:21]
  assign cmm_stage_io_bctq_bits_isPredictTaken = exe_stage_io_bctq_bits_isPredictTaken; // @[rift2Core.scala 244:21]
  assign cmm_stage_io_bctq_bits_isFinalTaken = exe_stage_io_bctq_bits_isFinalTaken; // @[rift2Core.scala 244:21]
  assign cmm_stage_io_bctq_bits_finalTarget = exe_stage_io_bctq_bits_finalTarget; // @[rift2Core.scala 244:21]
  assign cmm_stage_io_jctq_valid = exe_stage_io_jctq_valid; // @[rift2Core.scala 245:21]
  assign cmm_stage_io_jctq_bits_btbResp_target = exe_stage_io_jctq_bits_btbResp_target; // @[rift2Core.scala 245:21]
  assign cmm_stage_io_jctq_bits_rasResp_target = exe_stage_io_jctq_bits_rasResp_target; // @[rift2Core.scala 245:21]
  assign cmm_stage_io_jctq_bits_isRas = exe_stage_io_jctq_bits_isRas; // @[rift2Core.scala 245:21]
  assign cmm_stage_io_jctq_bits_finalTarget = exe_stage_io_jctq_bits_finalTarget; // @[rift2Core.scala 245:21]
  assign cmm_stage_io_if_cmm_ill_vaddr = if2_io_if_cmm_ill_vaddr; // @[rift2Core.scala 247:23]
  assign cmm_stage_io_dm_hartResetReq = io_dm_hartResetReq; // @[rift2Core.scala 254:37]
  assign cmm_stage_io_dm_hartHaltReq = io_dm_hartHaltReq; // @[rift2Core.scala 254:37]
  assign cmm_stage_io_rtc_clock = io_rtc_clock; // @[rift2Core.scala 253:26]
  assign cmm_stage_io_aclint_msi = io_aclint_msi; // @[rift2Core.scala 248:23]
  assign cmm_stage_io_aclint_mti = io_aclint_mti; // @[rift2Core.scala 248:23]
  assign cmm_stage_io_aclint_ssi = io_aclint_ssi; // @[rift2Core.scala 248:23]
  assign cmm_stage_io_aclint_sti = io_aclint_sti; // @[rift2Core.scala 248:23]
  assign cmm_stage_io_plic_mei = io_plic_mei; // @[rift2Core.scala 249:21]
  assign cmm_stage_io_plic_sei = io_plic_sei; // @[rift2Core.scala 249:21]
  assign i_mmu_clock = clock;
  assign i_mmu_reset = reset;
  assign i_mmu_io_if_mmu_bits_vaddr = if2_io_if_mmu_bits_vaddr; // @[rift2Core.scala 198:19]
  assign i_mmu_io_mmu_if_ready = if2_io_mmu_if_ready; // @[rift2Core.scala 199:19]
  assign i_mmu_io_if_flush = if2_io_flush; // @[rift2Core.scala 222:21]
  assign i_mmu_io_lsu_mmu_valid = exe_stage_io_lsu_mmu_valid; // @[rift2Core.scala 200:20]
  assign i_mmu_io_lsu_mmu_bits_is_W = exe_stage_io_lsu_mmu_bits_is_W; // @[rift2Core.scala 200:20]
  assign i_mmu_io_lsu_mmu_bits_is_R = exe_stage_io_lsu_mmu_bits_is_R; // @[rift2Core.scala 200:20]
  assign i_mmu_io_lsu_mmu_bits_vaddr = exe_stage_io_lsu_mmu_bits_vaddr; // @[rift2Core.scala 200:20]
  assign i_mmu_io_mmu_lsu_ready = exe_stage_io_mmu_lsu_ready; // @[rift2Core.scala 201:20]
  assign i_mmu_io_lsu_flush = exe_stage_io_flush; // @[rift2Core.scala 223:22]
  assign i_mmu_io_cmm_mmu_satp = cmm_stage_io_cmm_mmu_satp; // @[rift2Core.scala 202:20]
  assign i_mmu_io_cmm_mmu_priv_lvl_if = cmm_stage_io_cmm_mmu_priv_lvl_if; // @[rift2Core.scala 202:20]
  assign i_mmu_io_cmm_mmu_priv_lvl_ls = cmm_stage_io_cmm_mmu_priv_lvl_ls; // @[rift2Core.scala 202:20]
  assign i_mmu_io_cmm_mmu_mstatus = cmm_stage_io_cmm_mmu_mstatus; // @[rift2Core.scala 202:20]
  assign i_mmu_io_cmm_mmu_sstatus = cmm_stage_io_cmm_mmu_sstatus; // @[rift2Core.scala 202:20]
  assign i_mmu_io_cmm_mmu_sfence_vma = cmm_stage_io_cmm_mmu_sfence_vma; // @[rift2Core.scala 202:20]
  assign i_mmu_io_ptw_get_ready = auto_mmu_client_out_a_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign i_mmu_io_ptw_access_valid = auto_mmu_client_out_d_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign i_mmu_io_ptw_access_bits_opcode = auto_mmu_client_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign i_mmu_io_ptw_access_bits_size = auto_mmu_client_out_d_bits_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign i_mmu_io_ptw_access_bits_source = auto_mmu_client_out_d_bits_source; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign i_mmu_io_ptw_access_bits_data = auto_mmu_client_out_d_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign diff_io_diffXReg_0 = iwb_stage_io_diffXReg_0; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_1 = iwb_stage_io_diffXReg_1; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_2 = iwb_stage_io_diffXReg_2; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_3 = iwb_stage_io_diffXReg_3; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_4 = iwb_stage_io_diffXReg_4; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_5 = iwb_stage_io_diffXReg_5; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_6 = iwb_stage_io_diffXReg_6; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_7 = iwb_stage_io_diffXReg_7; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_8 = iwb_stage_io_diffXReg_8; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_9 = iwb_stage_io_diffXReg_9; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_10 = iwb_stage_io_diffXReg_10; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_11 = iwb_stage_io_diffXReg_11; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_12 = iwb_stage_io_diffXReg_12; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_13 = iwb_stage_io_diffXReg_13; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_14 = iwb_stage_io_diffXReg_14; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_15 = iwb_stage_io_diffXReg_15; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_16 = iwb_stage_io_diffXReg_16; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_17 = iwb_stage_io_diffXReg_17; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_18 = iwb_stage_io_diffXReg_18; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_19 = iwb_stage_io_diffXReg_19; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_20 = iwb_stage_io_diffXReg_20; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_21 = iwb_stage_io_diffXReg_21; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_22 = iwb_stage_io_diffXReg_22; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_23 = iwb_stage_io_diffXReg_23; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_24 = iwb_stage_io_diffXReg_24; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_25 = iwb_stage_io_diffXReg_25; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_26 = iwb_stage_io_diffXReg_26; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_27 = iwb_stage_io_diffXReg_27; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_28 = iwb_stage_io_diffXReg_28; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_29 = iwb_stage_io_diffXReg_29; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_30 = iwb_stage_io_diffXReg_30; // @[rift2Core.scala 355:21]
  assign diff_io_diffXReg_31 = iwb_stage_io_diffXReg_31; // @[rift2Core.scala 355:21]
  assign diff_io_diffFReg_0 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_1 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_2 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_3 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_4 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_5 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_6 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_7 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_8 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_9 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_10 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_11 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_12 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_13 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_14 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_15 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_16 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_17 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_18 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_19 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_20 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_21 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_22 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_23 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_24 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_25 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_26 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_27 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_28 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_29 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_30 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_diffFReg_31 = 65'h0; // @[rift2Core.scala 356:21]
  assign diff_io_commit_pc_0 = cmm_stage_io_diff_commit_pc_0; // @[rift2Core.scala 357:21]
  assign diff_io_commit_comfirm_0 = cmm_stage_io_diff_commit_comfirm_0; // @[rift2Core.scala 357:21]
  assign diff_io_commit_abort_0 = cmm_stage_io_diff_commit_abort_0; // @[rift2Core.scala 357:21]
  assign diff_io_commit_priv_lvl = cmm_stage_io_diff_commit_priv_lvl; // @[rift2Core.scala 357:21]
  assign diff_io_commit_is_ecall_M = cmm_stage_io_diff_commit_is_ecall_M; // @[rift2Core.scala 357:21]
  assign diff_io_commit_is_ecall_S = cmm_stage_io_diff_commit_is_ecall_S; // @[rift2Core.scala 357:21]
  assign diff_io_commit_is_ecall_U = cmm_stage_io_diff_commit_is_ecall_U; // @[rift2Core.scala 357:21]
  assign diff_io_csr_mstatus = cmm_stage_io_diff_csr_mstatus; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mtvec = cmm_stage_io_diff_csr_mtvec; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mscratch = cmm_stage_io_diff_csr_mscratch; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mepc = cmm_stage_io_diff_csr_mepc; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mcause = cmm_stage_io_diff_csr_mcause; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mtval = cmm_stage_io_diff_csr_mtval; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mvendorid = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_marchid = cmm_stage_io_diff_csr_marchid; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mimpid = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhartid = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_misa = cmm_stage_io_diff_csr_misa; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mie = cmm_stage_io_diff_csr_mie; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mip = cmm_stage_io_diff_csr_mip; // @[rift2Core.scala 358:21]
  assign diff_io_csr_medeleg = cmm_stage_io_diff_csr_medeleg; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mideleg = cmm_stage_io_diff_csr_mideleg; // @[rift2Core.scala 358:21]
  assign diff_io_csr_pmpcfg_0 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_pmpaddr_0 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_pmpaddr_1 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_pmpaddr_2 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_pmpaddr_3 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_pmpaddr_4 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_pmpaddr_5 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_pmpaddr_6 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_pmpaddr_7 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_stvec = cmm_stage_io_diff_csr_stvec; // @[rift2Core.scala 358:21]
  assign diff_io_csr_sscratch = cmm_stage_io_diff_csr_sscratch; // @[rift2Core.scala 358:21]
  assign diff_io_csr_sepc = cmm_stage_io_diff_csr_sepc; // @[rift2Core.scala 358:21]
  assign diff_io_csr_scause = cmm_stage_io_diff_csr_scause; // @[rift2Core.scala 358:21]
  assign diff_io_csr_stval = cmm_stage_io_diff_csr_stval; // @[rift2Core.scala 358:21]
  assign diff_io_csr_satp = cmm_stage_io_diff_csr_satp; // @[rift2Core.scala 358:21]
  assign diff_io_csr_fflags = cmm_stage_io_diff_csr_fflags; // @[rift2Core.scala 358:21]
  assign diff_io_csr_frm = cmm_stage_io_diff_csr_frm; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mcycle = cmm_stage_io_diff_csr_mcycle; // @[rift2Core.scala 358:21]
  assign diff_io_csr_minstret = cmm_stage_io_diff_csr_minstret; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_0 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_1 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_2 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_3 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_4 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_5 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_6 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_7 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_8 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_9 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_10 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_11 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_12 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_13 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_14 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_15 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_16 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_17 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_18 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_19 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_20 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_21 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_22 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_23 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_24 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_25 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_26 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_27 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_28 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_29 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_30 = 64'h0; // @[rift2Core.scala 358:21]
  assign diff_io_csr_mhpmcounter_31 = 64'h0; // @[rift2Core.scala 358:21]
endmodule
module TLMonitor(
  input         clock,
  input         reset,
  input         io_in_a_ready,
  input         io_in_a_valid,
  input  [2:0]  io_in_a_bits_opcode,
  input  [2:0]  io_in_a_bits_param,
  input  [2:0]  io_in_a_bits_size,
  input  [2:0]  io_in_a_bits_source,
  input  [31:0] io_in_a_bits_address,
  input  [7:0]  io_in_a_bits_mask,
  input         io_in_a_bits_corrupt,
  input         io_in_b_ready,
  input         io_in_b_valid,
  input  [1:0]  io_in_b_bits_param,
  input  [31:0] io_in_b_bits_address,
  input         io_in_c_ready,
  input         io_in_c_valid,
  input  [2:0]  io_in_c_bits_opcode,
  input  [2:0]  io_in_c_bits_param,
  input  [2:0]  io_in_c_bits_size,
  input  [31:0] io_in_c_bits_address,
  input         io_in_c_bits_corrupt,
  input         io_in_d_ready,
  input         io_in_d_valid,
  input  [2:0]  io_in_d_bits_opcode,
  input  [1:0]  io_in_d_bits_param,
  input  [2:0]  io_in_d_bits_size,
  input  [2:0]  io_in_d_bits_source,
  input  [4:0]  io_in_d_bits_sink,
  input         io_in_d_bits_denied,
  input         io_in_d_bits_corrupt,
  input         io_in_e_valid,
  input  [4:0]  io_in_e_bits_sink
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
  reg [31:0] _RAND_33;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire  _source_ok_T = io_in_a_bits_source == 3'h4; // @[Parameters.scala 46:9]
  wire  _source_ok_T_1 = io_in_a_bits_source == 3'h3; // @[Parameters.scala 46:9]
  wire  _source_ok_T_3 = io_in_a_bits_source[2:1] == 2'h0; // @[Parameters.scala 54:32]
  wire  _source_ok_T_8 = io_in_a_bits_source == 3'h2; // @[Parameters.scala 46:9]
  wire  source_ok = _source_ok_T | _source_ok_T_1 | _source_ok_T_3 | _source_ok_T_8; // @[Parameters.scala 1125:46]
  wire [10:0] _is_aligned_mask_T_1 = 11'hf << io_in_a_bits_size; // @[package.scala 234:77]
  wire [3:0] is_aligned_mask = ~_is_aligned_mask_T_1[3:0]; // @[package.scala 234:46]
  wire [31:0] _GEN_74 = {{28'd0}, is_aligned_mask}; // @[Edges.scala 20:16]
  wire [31:0] _is_aligned_T = io_in_a_bits_address & _GEN_74; // @[Edges.scala 20:16]
  wire  is_aligned = _is_aligned_T == 32'h0; // @[Edges.scala 20:24]
  wire [1:0] mask_sizeOH_shiftAmount = io_in_a_bits_size[1:0]; // @[OneHot.scala 63:49]
  wire [3:0] _mask_sizeOH_T_1 = 4'h1 << mask_sizeOH_shiftAmount; // @[OneHot.scala 64:12]
  wire [2:0] mask_sizeOH = _mask_sizeOH_T_1[2:0] | 3'h1; // @[Misc.scala 201:81]
  wire  _mask_T = io_in_a_bits_size >= 3'h3; // @[Misc.scala 205:21]
  wire  mask_size = mask_sizeOH[2]; // @[Misc.scala 208:26]
  wire  mask_bit = io_in_a_bits_address[2]; // @[Misc.scala 209:26]
  wire  mask_nbit = ~mask_bit; // @[Misc.scala 210:20]
  wire  mask_acc = _mask_T | mask_size & mask_nbit; // @[Misc.scala 214:29]
  wire  mask_acc_1 = _mask_T | mask_size & mask_bit; // @[Misc.scala 214:29]
  wire  mask_size_1 = mask_sizeOH[1]; // @[Misc.scala 208:26]
  wire  mask_bit_1 = io_in_a_bits_address[1]; // @[Misc.scala 209:26]
  wire  mask_nbit_1 = ~mask_bit_1; // @[Misc.scala 210:20]
  wire  mask_eq_2 = mask_nbit & mask_nbit_1; // @[Misc.scala 213:27]
  wire  mask_acc_2 = mask_acc | mask_size_1 & mask_eq_2; // @[Misc.scala 214:29]
  wire  mask_eq_3 = mask_nbit & mask_bit_1; // @[Misc.scala 213:27]
  wire  mask_acc_3 = mask_acc | mask_size_1 & mask_eq_3; // @[Misc.scala 214:29]
  wire  mask_eq_4 = mask_bit & mask_nbit_1; // @[Misc.scala 213:27]
  wire  mask_acc_4 = mask_acc_1 | mask_size_1 & mask_eq_4; // @[Misc.scala 214:29]
  wire  mask_eq_5 = mask_bit & mask_bit_1; // @[Misc.scala 213:27]
  wire  mask_acc_5 = mask_acc_1 | mask_size_1 & mask_eq_5; // @[Misc.scala 214:29]
  wire  mask_size_2 = mask_sizeOH[0]; // @[Misc.scala 208:26]
  wire  mask_bit_2 = io_in_a_bits_address[0]; // @[Misc.scala 209:26]
  wire  mask_nbit_2 = ~mask_bit_2; // @[Misc.scala 210:20]
  wire  mask_eq_6 = mask_eq_2 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_6 = mask_acc_2 | mask_size_2 & mask_eq_6; // @[Misc.scala 214:29]
  wire  mask_eq_7 = mask_eq_2 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_7 = mask_acc_2 | mask_size_2 & mask_eq_7; // @[Misc.scala 214:29]
  wire  mask_eq_8 = mask_eq_3 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_8 = mask_acc_3 | mask_size_2 & mask_eq_8; // @[Misc.scala 214:29]
  wire  mask_eq_9 = mask_eq_3 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_9 = mask_acc_3 | mask_size_2 & mask_eq_9; // @[Misc.scala 214:29]
  wire  mask_eq_10 = mask_eq_4 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_10 = mask_acc_4 | mask_size_2 & mask_eq_10; // @[Misc.scala 214:29]
  wire  mask_eq_11 = mask_eq_4 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_11 = mask_acc_4 | mask_size_2 & mask_eq_11; // @[Misc.scala 214:29]
  wire  mask_eq_12 = mask_eq_5 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_12 = mask_acc_5 | mask_size_2 & mask_eq_12; // @[Misc.scala 214:29]
  wire  mask_eq_13 = mask_eq_5 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_13 = mask_acc_5 | mask_size_2 & mask_eq_13; // @[Misc.scala 214:29]
  wire [7:0] mask = {mask_acc_13,mask_acc_12,mask_acc_11,mask_acc_10,mask_acc_9,mask_acc_8,mask_acc_7,mask_acc_6}; // @[Cat.scala 33:92]
  wire [32:0] _T_7 = {1'b0,$signed(io_in_a_bits_address)}; // @[Parameters.scala 137:49]
  wire  _T_47 = io_in_a_bits_opcode == 3'h6; // @[Monitor.scala 81:25]
  wire  _T_65 = 3'h4 == io_in_a_bits_size; // @[Parameters.scala 91:48]
  wire [32:0] _T_70 = $signed(_T_7) & 33'sh100000000; // @[Parameters.scala 137:52]
  wire  _T_71 = $signed(_T_70) == 33'sh0; // @[Parameters.scala 137:67]
  wire  _T_72 = _T_65 & _T_71; // @[Parameters.scala 670:56]
  wire  _T_74 = source_ok & _T_72; // @[Monitor.scala 82:72]
  wire  _T_89 = _source_ok_T_1 & _T_65; // @[Mux.scala 27:73]
  wire  _T_106 = _T_89 & _T_71; // @[Monitor.scala 83:78]
  wire  _T_120 = io_in_a_bits_param <= 3'h2; // @[Bundles.scala 108:27]
  wire [7:0] _T_124 = ~io_in_a_bits_mask; // @[Monitor.scala 88:18]
  wire  _T_125 = _T_124 == 8'h0; // @[Monitor.scala 88:31]
  wire  _T_129 = ~io_in_a_bits_corrupt; // @[Monitor.scala 89:18]
  wire  _T_133 = io_in_a_bits_opcode == 3'h7; // @[Monitor.scala 92:25]
  wire  _T_210 = io_in_a_bits_param != 3'h0; // @[Monitor.scala 99:31]
  wire  _T_223 = io_in_a_bits_opcode == 3'h4; // @[Monitor.scala 104:25]
  wire  _T_245 = io_in_a_bits_size <= 3'h4; // @[Parameters.scala 92:42]
  wire  _T_253 = _T_245 & _T_71; // @[Parameters.scala 670:56]
  wire  _T_264 = io_in_a_bits_param == 3'h0; // @[Monitor.scala 109:31]
  wire  _T_268 = io_in_a_bits_mask == mask; // @[Monitor.scala 110:30]
  wire  _T_276 = io_in_a_bits_opcode == 3'h0; // @[Monitor.scala 114:25]
  wire  _T_305 = source_ok & _T_253; // @[Monitor.scala 115:71]
  wire  _T_323 = io_in_a_bits_opcode == 3'h1; // @[Monitor.scala 122:25]
  wire [7:0] _T_366 = ~mask; // @[Monitor.scala 127:33]
  wire [7:0] _T_367 = io_in_a_bits_mask & _T_366; // @[Monitor.scala 127:31]
  wire  _T_368 = _T_367 == 8'h0; // @[Monitor.scala 127:40]
  wire  _T_372 = io_in_a_bits_opcode == 3'h2; // @[Monitor.scala 130:25]
  wire  _T_391 = io_in_a_bits_size <= 3'h3; // @[Parameters.scala 92:42]
  wire  _T_399 = _T_391 & _T_71; // @[Parameters.scala 670:56]
  wire  _T_401 = source_ok & _T_399; // @[Monitor.scala 131:74]
  wire  _T_411 = io_in_a_bits_param <= 3'h4; // @[Bundles.scala 138:33]
  wire  _T_419 = io_in_a_bits_opcode == 3'h3; // @[Monitor.scala 138:25]
  wire  _T_458 = io_in_a_bits_param <= 3'h3; // @[Bundles.scala 145:30]
  wire  _T_466 = io_in_a_bits_opcode == 3'h5; // @[Monitor.scala 146:25]
  wire  _T_505 = io_in_a_bits_param <= 3'h1; // @[Bundles.scala 158:28]
  wire  _T_517 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire  _source_ok_T_11 = io_in_d_bits_source == 3'h4; // @[Parameters.scala 46:9]
  wire  _source_ok_T_12 = io_in_d_bits_source == 3'h3; // @[Parameters.scala 46:9]
  wire  _source_ok_T_14 = io_in_d_bits_source[2:1] == 2'h0; // @[Parameters.scala 54:32]
  wire  _source_ok_T_19 = io_in_d_bits_source == 3'h2; // @[Parameters.scala 46:9]
  wire  source_ok_1 = _source_ok_T_11 | _source_ok_T_12 | _source_ok_T_14 | _source_ok_T_19; // @[Parameters.scala 1125:46]
  wire  sink_ok = io_in_d_bits_sink < 5'h16; // @[Monitor.scala 306:31]
  wire  _T_521 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_525 = io_in_d_bits_size >= 3'h3; // @[Monitor.scala 312:27]
  wire  _T_529 = io_in_d_bits_param == 2'h0; // @[Monitor.scala 313:28]
  wire  _T_533 = ~io_in_d_bits_corrupt; // @[Monitor.scala 314:15]
  wire  _T_537 = ~io_in_d_bits_denied; // @[Monitor.scala 315:15]
  wire  _T_541 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_552 = io_in_d_bits_param <= 2'h2; // @[Bundles.scala 102:26]
  wire  _T_556 = io_in_d_bits_param != 2'h2; // @[Monitor.scala 323:28]
  wire  _T_569 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _T_589 = _T_537 | io_in_d_bits_corrupt; // @[Monitor.scala 334:30]
  wire  _T_598 = io_in_d_bits_opcode == 3'h0; // @[Monitor.scala 338:25]
  wire  _T_615 = io_in_d_bits_opcode == 3'h1; // @[Monitor.scala 346:25]
  wire  _T_633 = io_in_d_bits_opcode == 3'h2; // @[Monitor.scala 354:25]
  wire [32:0] _T_657 = {1'b0,$signed(io_in_b_bits_address)}; // @[Parameters.scala 137:49]
  wire [32:0] _address_ok_T_3 = $signed(_T_657) & 33'sh100000000; // @[Parameters.scala 137:52]
  wire  _address_ok_T_4 = $signed(_address_ok_T_3) == 33'sh0; // @[Parameters.scala 137:67]
  wire [31:0] _is_aligned_T_1 = io_in_b_bits_address & 32'hf; // @[Edges.scala 20:16]
  wire  is_aligned_1 = _is_aligned_T_1 == 32'h0; // @[Edges.scala 20:24]
  wire  _T_739 = io_in_b_bits_param <= 2'h2; // @[Bundles.scala 102:26]
  wire [10:0] _is_aligned_mask_T_7 = 11'hf << io_in_c_bits_size; // @[package.scala 234:77]
  wire [3:0] is_aligned_mask_2 = ~_is_aligned_mask_T_7[3:0]; // @[package.scala 234:46]
  wire [31:0] _GEN_76 = {{28'd0}, is_aligned_mask_2}; // @[Edges.scala 20:16]
  wire [31:0] _is_aligned_T_2 = io_in_c_bits_address & _GEN_76; // @[Edges.scala 20:16]
  wire  is_aligned_2 = _is_aligned_T_2 == 32'h0; // @[Edges.scala 20:24]
  wire [32:0] _address_ok_T_6 = {1'b0,$signed(io_in_c_bits_address)}; // @[Parameters.scala 137:49]
  wire [32:0] _address_ok_T_8 = $signed(_address_ok_T_6) & 33'sh100000000; // @[Parameters.scala 137:52]
  wire  _address_ok_T_9 = $signed(_address_ok_T_8) == 33'sh0; // @[Parameters.scala 137:67]
  wire  _T_1002 = io_in_c_bits_opcode == 3'h4; // @[Monitor.scala 242:25]
  wire  _T_1009 = io_in_c_bits_size >= 3'h3; // @[Monitor.scala 245:30]
  wire  _T_1016 = io_in_c_bits_param <= 3'h5; // @[Bundles.scala 120:29]
  wire  _T_1020 = ~io_in_c_bits_corrupt; // @[Monitor.scala 248:18]
  wire  _T_1024 = io_in_c_bits_opcode == 3'h5; // @[Monitor.scala 251:25]
  wire  _T_1042 = io_in_c_bits_opcode == 3'h6; // @[Monitor.scala 259:25]
  wire  _T_1060 = 3'h4 == io_in_c_bits_size; // @[Parameters.scala 91:48]
  wire  _T_1067 = _T_1060 & _address_ok_T_9; // @[Parameters.scala 670:56]
  wire  _T_1123 = io_in_c_bits_opcode == 3'h7; // @[Monitor.scala 269:25]
  wire  _T_1200 = io_in_c_bits_opcode == 3'h0; // @[Monitor.scala 278:25]
  wire  _T_1210 = io_in_c_bits_param == 3'h0; // @[Monitor.scala 282:31]
  wire  _T_1218 = io_in_c_bits_opcode == 3'h1; // @[Monitor.scala 286:25]
  wire  _T_1232 = io_in_c_bits_opcode == 3'h2; // @[Monitor.scala 293:25]
  wire  sink_ok_1 = io_in_e_bits_sink < 5'h16; // @[Monitor.scala 364:31]
  wire  _a_first_T = io_in_a_ready & io_in_a_valid; // @[Decoupled.scala 52:35]
  wire  a_first_beats1_decode = is_aligned_mask[3]; // @[Edges.scala 219:59]
  wire  a_first_beats1_opdata = ~io_in_a_bits_opcode[2]; // @[Edges.scala 91:28]
  wire  a_first_beats1 = a_first_beats1_opdata & a_first_beats1_decode; // @[Edges.scala 220:14]
  reg  a_first_counter; // @[Edges.scala 228:27]
  wire  a_first_counter1 = a_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  a_first = ~a_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode; // @[Monitor.scala 384:22]
  reg [2:0] param; // @[Monitor.scala 385:22]
  reg [2:0] size; // @[Monitor.scala 386:22]
  reg [2:0] source; // @[Monitor.scala 387:22]
  reg [31:0] address; // @[Monitor.scala 388:22]
  wire  _T_1254 = io_in_a_valid & ~a_first; // @[Monitor.scala 389:19]
  wire  _T_1255 = io_in_a_bits_opcode == opcode; // @[Monitor.scala 390:32]
  wire  _T_1259 = io_in_a_bits_param == param; // @[Monitor.scala 391:32]
  wire  _T_1263 = io_in_a_bits_size == size; // @[Monitor.scala 392:32]
  wire  _T_1267 = io_in_a_bits_source == source; // @[Monitor.scala 393:32]
  wire  _T_1271 = io_in_a_bits_address == address; // @[Monitor.scala 394:32]
  wire  _d_first_T = io_in_d_ready & io_in_d_valid; // @[Decoupled.scala 52:35]
  wire [10:0] _d_first_beats1_decode_T_1 = 11'hf << io_in_d_bits_size; // @[package.scala 234:77]
  wire [3:0] _d_first_beats1_decode_T_3 = ~_d_first_beats1_decode_T_1[3:0]; // @[package.scala 234:46]
  wire  d_first_beats1_decode = _d_first_beats1_decode_T_3[3]; // @[Edges.scala 219:59]
  wire  d_first_beats1_opdata = io_in_d_bits_opcode[0]; // @[Edges.scala 105:36]
  wire  d_first_beats1 = d_first_beats1_opdata & d_first_beats1_decode; // @[Edges.scala 220:14]
  reg  d_first_counter; // @[Edges.scala 228:27]
  wire  d_first_counter1 = d_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  d_first = ~d_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  reg [1:0] param_1; // @[Monitor.scala 536:22]
  reg [2:0] size_1; // @[Monitor.scala 537:22]
  reg [2:0] source_1; // @[Monitor.scala 538:22]
  reg [4:0] sink; // @[Monitor.scala 539:22]
  reg  denied; // @[Monitor.scala 540:22]
  wire  _T_1278 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_1279 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  wire  _T_1283 = io_in_d_bits_param == param_1; // @[Monitor.scala 543:29]
  wire  _T_1287 = io_in_d_bits_size == size_1; // @[Monitor.scala 544:29]
  wire  _T_1291 = io_in_d_bits_source == source_1; // @[Monitor.scala 545:29]
  wire  _T_1295 = io_in_d_bits_sink == sink; // @[Monitor.scala 546:29]
  wire  _T_1299 = io_in_d_bits_denied == denied; // @[Monitor.scala 547:29]
  wire  _b_first_T = io_in_b_ready & io_in_b_valid; // @[Decoupled.scala 52:35]
  reg  b_first_counter; // @[Edges.scala 228:27]
  wire  b_first_counter1 = b_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  b_first = ~b_first_counter; // @[Edges.scala 230:25]
  reg [1:0] param_2; // @[Monitor.scala 408:22]
  reg [31:0] address_1; // @[Monitor.scala 411:22]
  wire  _T_1306 = io_in_b_valid & ~b_first; // @[Monitor.scala 412:19]
  wire  _T_1311 = io_in_b_bits_param == param_2; // @[Monitor.scala 414:32]
  wire  _T_1323 = io_in_b_bits_address == address_1; // @[Monitor.scala 417:32]
  wire  _c_first_T = io_in_c_ready & io_in_c_valid; // @[Decoupled.scala 52:35]
  wire  c_first_beats1_decode = is_aligned_mask_2[3]; // @[Edges.scala 219:59]
  wire  c_first_beats1_opdata = io_in_c_bits_opcode[0]; // @[Edges.scala 101:36]
  wire  c_first_beats1 = c_first_beats1_opdata & c_first_beats1_decode; // @[Edges.scala 220:14]
  reg  c_first_counter; // @[Edges.scala 228:27]
  wire  c_first_counter1 = c_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  c_first = ~c_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode_3; // @[Monitor.scala 512:22]
  reg [2:0] param_3; // @[Monitor.scala 513:22]
  reg [2:0] size_3; // @[Monitor.scala 514:22]
  reg [31:0] address_2; // @[Monitor.scala 516:22]
  wire  _T_1330 = io_in_c_valid & ~c_first; // @[Monitor.scala 517:19]
  wire  _T_1331 = io_in_c_bits_opcode == opcode_3; // @[Monitor.scala 518:32]
  wire  _T_1335 = io_in_c_bits_param == param_3; // @[Monitor.scala 519:32]
  wire  _T_1339 = io_in_c_bits_size == size_3; // @[Monitor.scala 520:32]
  wire  _T_1347 = io_in_c_bits_address == address_2; // @[Monitor.scala 522:32]
  reg [4:0] inflight; // @[Monitor.scala 611:27]
  reg [19:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [19:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg  a_first_counter_1; // @[Edges.scala 228:27]
  wire  a_first_counter1_1 = a_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  a_first_1 = ~a_first_counter_1; // @[Edges.scala 230:25]
  reg  d_first_counter_1; // @[Edges.scala 228:27]
  wire  d_first_counter1_1 = d_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = ~d_first_counter_1; // @[Edges.scala 230:25]
  wire [4:0] _GEN_80 = {io_in_d_bits_source, 2'h0}; // @[Monitor.scala 634:69]
  wire [5:0] _a_opcode_lookup_T = {{1'd0}, _GEN_80}; // @[Monitor.scala 634:69]
  wire [19:0] _a_opcode_lookup_T_1 = inflight_opcodes >> _a_opcode_lookup_T; // @[Monitor.scala 634:44]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [19:0] _GEN_86 = {{4'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 634:97]
  wire [19:0] _a_opcode_lookup_T_6 = _a_opcode_lookup_T_1 & _GEN_86; // @[Monitor.scala 634:97]
  wire [19:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[19:1]}; // @[Monitor.scala 634:152]
  wire [19:0] _a_size_lookup_T_1 = inflight_sizes >> _a_opcode_lookup_T; // @[Monitor.scala 638:40]
  wire [19:0] _a_size_lookup_T_6 = _a_size_lookup_T_1 & _GEN_86; // @[Monitor.scala 638:91]
  wire [19:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[19:1]}; // @[Monitor.scala 638:144]
  wire  _T_1353 = io_in_a_valid & a_first_1; // @[Monitor.scala 648:26]
  wire [7:0] _a_set_wo_ready_T = 8'h1 << io_in_a_bits_source; // @[OneHot.scala 57:35]
  wire [7:0] _GEN_27 = io_in_a_valid & a_first_1 ? _a_set_wo_ready_T : 8'h0; // @[Monitor.scala 648:71 649:22]
  wire  _T_1356 = _a_first_T & a_first_1; // @[Monitor.scala 652:27]
  wire [3:0] _a_opcodes_set_interm_T = {io_in_a_bits_opcode, 1'h0}; // @[Monitor.scala 654:53]
  wire [3:0] _a_opcodes_set_interm_T_1 = _a_opcodes_set_interm_T | 4'h1; // @[Monitor.scala 654:61]
  wire [3:0] _a_sizes_set_interm_T = {io_in_a_bits_size, 1'h0}; // @[Monitor.scala 655:51]
  wire [3:0] _a_sizes_set_interm_T_1 = _a_sizes_set_interm_T | 4'h1; // @[Monitor.scala 655:59]
  wire [4:0] _GEN_91 = {io_in_a_bits_source, 2'h0}; // @[Monitor.scala 656:79]
  wire [5:0] _a_opcodes_set_T = {{1'd0}, _GEN_91}; // @[Monitor.scala 656:79]
  wire [3:0] a_opcodes_set_interm = _a_first_T & a_first_1 ? _a_opcodes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 654:28]
  wire [66:0] _GEN_798 = {{63'd0}, a_opcodes_set_interm}; // @[Monitor.scala 656:54]
  wire [66:0] _a_opcodes_set_T_1 = _GEN_798 << _a_opcodes_set_T; // @[Monitor.scala 656:54]
  wire [3:0] a_sizes_set_interm = _a_first_T & a_first_1 ? _a_sizes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 655:28]
  wire [66:0] _GEN_799 = {{63'd0}, a_sizes_set_interm}; // @[Monitor.scala 657:52]
  wire [66:0] _a_sizes_set_T_1 = _GEN_799 << _a_opcodes_set_T; // @[Monitor.scala 657:52]
  wire [4:0] _T_1358 = inflight >> io_in_a_bits_source; // @[Monitor.scala 658:26]
  wire  _T_1360 = ~_T_1358[0]; // @[Monitor.scala 658:17]
  wire [7:0] _GEN_28 = _a_first_T & a_first_1 ? _a_set_wo_ready_T : 8'h0; // @[Monitor.scala 652:72 653:28]
  wire [66:0] _GEN_31 = _a_first_T & a_first_1 ? _a_opcodes_set_T_1 : 67'h0; // @[Monitor.scala 652:72 656:28]
  wire [66:0] _GEN_32 = _a_first_T & a_first_1 ? _a_sizes_set_T_1 : 67'h0; // @[Monitor.scala 652:72 657:28]
  wire  _T_1364 = io_in_d_valid & d_first_1; // @[Monitor.scala 671:26]
  wire  _T_1366 = ~_T_521; // @[Monitor.scala 671:74]
  wire  _T_1367 = io_in_d_valid & d_first_1 & ~_T_521; // @[Monitor.scala 671:71]
  wire [7:0] _d_clr_wo_ready_T = 8'h1 << io_in_d_bits_source; // @[OneHot.scala 57:35]
  wire [7:0] _GEN_33 = io_in_d_valid & d_first_1 & ~_T_521 ? _d_clr_wo_ready_T : 8'h0; // @[Monitor.scala 671:90 672:22]
  wire [78:0] _GEN_800 = {{63'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [78:0] _d_opcodes_clr_T_5 = _GEN_800 << _a_opcode_lookup_T; // @[Monitor.scala 677:76]
  wire [7:0] _GEN_34 = _d_first_T & d_first_1 & _T_1366 ? _d_clr_wo_ready_T : 8'h0; // @[Monitor.scala 675:91 676:21]
  wire [78:0] _GEN_35 = _d_first_T & d_first_1 & _T_1366 ? _d_opcodes_clr_T_5 : 79'h0; // @[Monitor.scala 675:91 677:21]
  wire  _same_cycle_resp_T_2 = io_in_a_bits_source == io_in_d_bits_source; // @[Monitor.scala 681:113]
  wire  same_cycle_resp = _T_1353 & io_in_a_bits_source == io_in_d_bits_source; // @[Monitor.scala 681:88]
  wire [4:0] _T_1377 = inflight >> io_in_d_bits_source; // @[Monitor.scala 682:25]
  wire  _T_1379 = _T_1377[0] | same_cycle_resp; // @[Monitor.scala 682:49]
  wire [2:0] _GEN_39 = 3'h2 == io_in_a_bits_opcode ? 3'h1 : 3'h0; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_40 = 3'h3 == io_in_a_bits_opcode ? 3'h1 : _GEN_39; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_41 = 3'h4 == io_in_a_bits_opcode ? 3'h1 : _GEN_40; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_42 = 3'h5 == io_in_a_bits_opcode ? 3'h2 : _GEN_41; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_43 = 3'h6 == io_in_a_bits_opcode ? 3'h4 : _GEN_42; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_44 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_43; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_51 = 3'h6 == io_in_a_bits_opcode ? 3'h5 : _GEN_42; // @[Monitor.scala 686:{39,39}]
  wire [2:0] _GEN_52 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_51; // @[Monitor.scala 686:{39,39}]
  wire  _T_1384 = io_in_d_bits_opcode == _GEN_52; // @[Monitor.scala 686:39]
  wire  _T_1385 = io_in_d_bits_opcode == _GEN_44 | _T_1384; // @[Monitor.scala 685:77]
  wire  _T_1389 = io_in_a_bits_size == io_in_d_bits_size; // @[Monitor.scala 687:36]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_55 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_56 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_55; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_57 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_56; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_58 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_57; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_59 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_58; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_60 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_59; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_67 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_58; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_68 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_67; // @[Monitor.scala 690:{38,38}]
  wire  _T_1396 = io_in_d_bits_opcode == _GEN_68; // @[Monitor.scala 690:38]
  wire  _T_1397 = io_in_d_bits_opcode == _GEN_60 | _T_1396; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire [3:0] _GEN_95 = {{1'd0}, io_in_d_bits_size}; // @[Monitor.scala 691:36]
  wire  _T_1401 = _GEN_95 == a_size_lookup; // @[Monitor.scala 691:36]
  wire  _T_1411 = _T_1364 & a_first_1 & io_in_a_valid & _same_cycle_resp_T_2 & _T_1366; // @[Monitor.scala 694:116]
  wire  _T_1412 = ~io_in_d_ready; // @[Monitor.scala 695:15]
  wire  _T_1413 = ~io_in_d_ready | io_in_a_ready; // @[Monitor.scala 695:32]
  wire [4:0] a_set_wo_ready = _GEN_27[4:0];
  wire [4:0] d_clr_wo_ready = _GEN_33[4:0];
  wire  _T_1420 = a_set_wo_ready != d_clr_wo_ready | ~(|a_set_wo_ready); // @[Monitor.scala 699:48]
  wire [4:0] a_set = _GEN_28[4:0];
  wire [4:0] _inflight_T = inflight | a_set; // @[Monitor.scala 702:27]
  wire [4:0] d_clr = _GEN_34[4:0];
  wire [4:0] _inflight_T_1 = ~d_clr; // @[Monitor.scala 702:38]
  wire [4:0] _inflight_T_2 = _inflight_T & _inflight_T_1; // @[Monitor.scala 702:36]
  wire [19:0] a_opcodes_set = _GEN_31[19:0];
  wire [19:0] _inflight_opcodes_T = inflight_opcodes | a_opcodes_set; // @[Monitor.scala 703:43]
  wire [19:0] d_opcodes_clr = _GEN_35[19:0];
  wire [19:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [19:0] _inflight_opcodes_T_2 = _inflight_opcodes_T & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [19:0] a_sizes_set = _GEN_32[19:0];
  wire [19:0] _inflight_sizes_T = inflight_sizes | a_sizes_set; // @[Monitor.scala 704:39]
  wire [19:0] _inflight_sizes_T_2 = _inflight_sizes_T & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [31:0] watchdog; // @[Monitor.scala 706:27]
  wire  _T_1429 = ~(|inflight) | plusarg_reader_out == 32'h0 | watchdog < plusarg_reader_out; // @[Monitor.scala 709:47]
  wire [31:0] _watchdog_T_1 = watchdog + 32'h1; // @[Monitor.scala 711:26]
  reg [4:0] inflight_1; // @[Monitor.scala 723:35]
  reg [19:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg  c_first_counter_1; // @[Edges.scala 228:27]
  wire  c_first_counter1_1 = c_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  c_first_1 = ~c_first_counter_1; // @[Edges.scala 230:25]
  reg  d_first_counter_2; // @[Edges.scala 228:27]
  wire  d_first_counter1_2 = d_first_counter_2 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = ~d_first_counter_2; // @[Edges.scala 230:25]
  wire [19:0] _c_size_lookup_T_1 = inflight_sizes_1 >> _a_opcode_lookup_T; // @[Monitor.scala 747:42]
  wire [19:0] _c_size_lookup_T_6 = _c_size_lookup_T_1 & _GEN_86; // @[Monitor.scala 747:93]
  wire [19:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[19:1]}; // @[Monitor.scala 747:146]
  wire  _T_1439 = io_in_c_bits_opcode[2] & io_in_c_bits_opcode[1]; // @[Edges.scala 67:40]
  wire  _T_1440 = io_in_c_valid & c_first_1 & _T_1439; // @[Monitor.scala 756:37]
  wire [7:0] _GEN_72 = io_in_c_valid & c_first_1 & _T_1439 ? 8'h8 : 8'h0; // @[Monitor.scala 756:71 757:22]
  wire  _T_1446 = _c_first_T & c_first_1 & _T_1439; // @[Monitor.scala 760:38]
  wire [3:0] _c_sizes_set_interm_T = {io_in_c_bits_size, 1'h0}; // @[Monitor.scala 763:51]
  wire [3:0] _c_sizes_set_interm_T_1 = _c_sizes_set_interm_T | 4'h1; // @[Monitor.scala 763:59]
  wire [3:0] c_sizes_set_interm = _c_first_T & c_first_1 & _T_1439 ? _c_sizes_set_interm_T_1 : 4'h0; // @[Monitor.scala 760:72 763:28]
  wire [15:0] _GEN_99 = {c_sizes_set_interm, 12'h0}; // @[Monitor.scala 765:52]
  wire [66:0] _c_sizes_set_T_1 = {{51'd0}, _GEN_99}; // @[Monitor.scala 765:52]
  wire [4:0] _T_1447 = {{3'd0}, inflight_1[4:3]}; // @[Monitor.scala 766:26]
  wire  _T_1449 = ~_T_1447[0]; // @[Monitor.scala 766:17]
  wire [7:0] _GEN_73 = _c_first_T & c_first_1 & _T_1439 ? 8'h8 : 8'h0; // @[Monitor.scala 760:72 761:28]
  wire [66:0] _GEN_77 = _c_first_T & c_first_1 & _T_1439 ? _c_sizes_set_T_1 : 67'h0; // @[Monitor.scala 760:72 765:28]
  wire  _T_1453 = io_in_d_valid & d_first_2; // @[Monitor.scala 779:26]
  wire  _T_1455 = io_in_d_valid & d_first_2 & _T_521; // @[Monitor.scala 779:71]
  wire [7:0] _GEN_78 = io_in_d_valid & d_first_2 & _T_521 ? _d_clr_wo_ready_T : 8'h0; // @[Monitor.scala 779:89 780:22]
  wire [7:0] _GEN_79 = _d_first_T & d_first_2 & _T_521 ? _d_clr_wo_ready_T : 8'h0; // @[Monitor.scala 783:90 784:21]
  wire [78:0] _GEN_81 = _d_first_T & d_first_2 & _T_521 ? _d_opcodes_clr_T_5 : 79'h0; // @[Monitor.scala 783:90 786:21]
  wire  _same_cycle_resp_T_8 = 3'h3 == io_in_d_bits_source; // @[Monitor.scala 790:113]
  wire  same_cycle_resp_1 = _T_1440 & 3'h3 == io_in_d_bits_source; // @[Monitor.scala 790:88]
  wire [4:0] _T_1463 = inflight_1 >> io_in_d_bits_source; // @[Monitor.scala 791:25]
  wire  _T_1465 = _T_1463[0] | same_cycle_resp_1; // @[Monitor.scala 791:49]
  wire  _T_1469 = io_in_d_bits_size == io_in_c_bits_size; // @[Monitor.scala 793:36]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_1473 = _GEN_95 == c_size_lookup; // @[Monitor.scala 795:36]
  wire  _T_1482 = _T_1453 & c_first_1 & io_in_c_valid & _same_cycle_resp_T_8 & _T_521; // @[Monitor.scala 799:116]
  wire  _T_1484 = _T_1412 | io_in_c_ready; // @[Monitor.scala 800:32]
  wire [4:0] c_set_wo_ready = _GEN_72[4:0];
  wire  _T_1488 = |c_set_wo_ready; // @[Monitor.scala 804:28]
  wire [4:0] d_clr_wo_ready_1 = _GEN_78[4:0];
  wire  _T_1489 = c_set_wo_ready != d_clr_wo_ready_1; // @[Monitor.scala 805:31]
  wire [4:0] c_set = _GEN_73[4:0];
  wire [4:0] _inflight_T_3 = inflight_1 | c_set; // @[Monitor.scala 809:35]
  wire [4:0] d_clr_1 = _GEN_79[4:0];
  wire [4:0] _inflight_T_4 = ~d_clr_1; // @[Monitor.scala 809:46]
  wire [4:0] _inflight_T_5 = _inflight_T_3 & _inflight_T_4; // @[Monitor.scala 809:44]
  wire [19:0] c_sizes_set = _GEN_77[19:0];
  wire [19:0] _inflight_sizes_T_3 = inflight_sizes_1 | c_sizes_set; // @[Monitor.scala 811:41]
  wire [19:0] d_sizes_clr_1 = _GEN_81[19:0];
  wire [19:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [19:0] _inflight_sizes_T_5 = _inflight_sizes_T_3 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  reg [31:0] watchdog_1; // @[Monitor.scala 813:27]
  wire  _T_1498 = ~(|inflight_1) | plusarg_reader_1_out == 32'h0 | watchdog_1 < plusarg_reader_1_out; // @[Monitor.scala 816:47]
  wire [31:0] _watchdog_T_3 = watchdog_1 + 32'h1; // @[Monitor.scala 818:26]
  reg [21:0] inflight_2; // @[Monitor.scala 823:27]
  reg  d_first_counter_3; // @[Edges.scala 228:27]
  wire  d_first_counter1_3 = d_first_counter_3 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_3 = ~d_first_counter_3; // @[Edges.scala 230:25]
  wire  _T_1510 = io_in_d_bits_opcode[2] & ~io_in_d_bits_opcode[1]; // @[Edges.scala 70:40]
  wire  _T_1511 = _d_first_T & d_first_3 & _T_1510; // @[Monitor.scala 829:38]
  wire [31:0] _d_set_T = 32'h1 << io_in_d_bits_sink; // @[OneHot.scala 57:35]
  wire [21:0] _T_1512 = inflight_2 >> io_in_d_bits_sink; // @[Monitor.scala 831:23]
  wire  _T_1514 = ~_T_1512[0]; // @[Monitor.scala 831:14]
  wire [31:0] _GEN_84 = _d_first_T & d_first_3 & _T_1510 ? _d_set_T : 32'h0; // @[Monitor.scala 829:72 830:13]
  wire [31:0] _e_clr_T = 32'h1 << io_in_e_bits_sink; // @[OneHot.scala 57:35]
  wire [21:0] d_set = _GEN_84[21:0];
  wire [21:0] _T_1521 = d_set | inflight_2; // @[Monitor.scala 837:24]
  wire [21:0] _T_1522 = _T_1521 >> io_in_e_bits_sink; // @[Monitor.scala 837:35]
  wire [31:0] _GEN_85 = io_in_e_valid ? _e_clr_T : 32'h0; // @[Monitor.scala 835:73 836:13]
  wire [21:0] _inflight_T_6 = inflight_2 | d_set; // @[Monitor.scala 842:27]
  wire [21:0] e_clr = _GEN_85[21:0];
  wire [21:0] _inflight_T_7 = ~e_clr; // @[Monitor.scala 842:38]
  wire [21:0] _inflight_T_8 = _inflight_T_6 & _inflight_T_7; // @[Monitor.scala 842:36]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        a_first_counter <= a_first_beats1;
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      opcode <= io_in_a_bits_opcode; // @[Monitor.scala 397:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      param <= io_in_a_bits_param; // @[Monitor.scala 398:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      size <= io_in_a_bits_size; // @[Monitor.scala 399:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      source <= io_in_a_bits_source; // @[Monitor.scala 400:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      address <= io_in_a_bits_address; // @[Monitor.scala 401:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        d_first_counter <= d_first_beats1;
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      param_1 <= io_in_d_bits_param; // @[Monitor.scala 551:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      size_1 <= io_in_d_bits_size; // @[Monitor.scala 552:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      source_1 <= io_in_d_bits_source; // @[Monitor.scala 553:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      sink <= io_in_d_bits_sink; // @[Monitor.scala 554:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      denied <= io_in_d_bits_denied; // @[Monitor.scala 555:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      b_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_b_first_T) begin // @[Edges.scala 234:17]
      if (b_first) begin // @[Edges.scala 235:21]
        b_first_counter <= 1'h0;
      end else begin
        b_first_counter <= b_first_counter1;
      end
    end
    if (_b_first_T & b_first) begin // @[Monitor.scala 419:32]
      param_2 <= io_in_b_bits_param; // @[Monitor.scala 421:15]
    end
    if (_b_first_T & b_first) begin // @[Monitor.scala 419:32]
      address_1 <= io_in_b_bits_address; // @[Monitor.scala 424:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      c_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_c_first_T) begin // @[Edges.scala 234:17]
      if (c_first) begin // @[Edges.scala 235:21]
        c_first_counter <= c_first_beats1;
      end else begin
        c_first_counter <= c_first_counter1;
      end
    end
    if (_c_first_T & c_first) begin // @[Monitor.scala 524:32]
      opcode_3 <= io_in_c_bits_opcode; // @[Monitor.scala 525:15]
    end
    if (_c_first_T & c_first) begin // @[Monitor.scala 524:32]
      param_3 <= io_in_c_bits_param; // @[Monitor.scala 526:15]
    end
    if (_c_first_T & c_first) begin // @[Monitor.scala 524:32]
      size_3 <= io_in_c_bits_size; // @[Monitor.scala 527:15]
    end
    if (_c_first_T & c_first) begin // @[Monitor.scala 524:32]
      address_2 <= io_in_c_bits_address; // @[Monitor.scala 529:15]
    end
    if (reset) begin // @[Monitor.scala 611:27]
      inflight <= 5'h0; // @[Monitor.scala 611:27]
    end else begin
      inflight <= _inflight_T_2; // @[Monitor.scala 702:14]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 20'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 20'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first_1) begin // @[Edges.scala 235:21]
        a_first_counter_1 <= a_first_beats1;
      end else begin
        a_first_counter_1 <= a_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        d_first_counter_1 <= d_first_beats1;
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 706:27]
      watchdog <= 32'h0; // @[Monitor.scala 706:27]
    end else if (_a_first_T | _d_first_T) begin // @[Monitor.scala 712:47]
      watchdog <= 32'h0; // @[Monitor.scala 712:58]
    end else begin
      watchdog <= _watchdog_T_1; // @[Monitor.scala 711:14]
    end
    if (reset) begin // @[Monitor.scala 723:35]
      inflight_1 <= 5'h0; // @[Monitor.scala 723:35]
    end else begin
      inflight_1 <= _inflight_T_5; // @[Monitor.scala 809:22]
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 20'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      c_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_c_first_T) begin // @[Edges.scala 234:17]
      if (c_first_1) begin // @[Edges.scala 235:21]
        c_first_counter_1 <= c_first_beats1;
      end else begin
        c_first_counter_1 <= c_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        d_first_counter_2 <= d_first_beats1;
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    if (reset) begin // @[Monitor.scala 813:27]
      watchdog_1 <= 32'h0; // @[Monitor.scala 813:27]
    end else if (_c_first_T | _d_first_T) begin // @[Monitor.scala 819:47]
      watchdog_1 <= 32'h0; // @[Monitor.scala 819:58]
    end else begin
      watchdog_1 <= _watchdog_T_3; // @[Monitor.scala 818:14]
    end
    if (reset) begin // @[Monitor.scala 823:27]
      inflight_2 <= 22'h0; // @[Monitor.scala 823:27]
    end else begin
      inflight_2 <= _inflight_T_8; // @[Monitor.scala 842:14]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_3 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_3) begin // @[Edges.scala 235:21]
        d_first_counter_3 <= d_first_beats1;
      end else begin
        d_first_counter_3 <= d_first_counter1_3;
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_47 & ~reset & ~_T_74) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_74 & (io_in_a_valid & _T_47 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_47 & ~reset & ~_T_106) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock from a client which does not support Probe (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_106 & (io_in_a_valid & _T_47 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_47 & ~reset & ~source_ok) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock carries invalid source ID (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok & (io_in_a_valid & _T_47 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_47 & ~reset & ~_mask_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock smaller than a beat (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_mask_T & (io_in_a_valid & _T_47 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_47 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock address not aligned to size (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_47 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_47 & ~reset & ~_T_120) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock carries invalid grow param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_120 & (io_in_a_valid & _T_47 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_47 & ~reset & ~_T_125) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock contains invalid mask (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_125 & (io_in_a_valid & _T_47 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_47 & ~reset & ~_T_129) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock is corrupt (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_129 & (io_in_a_valid & _T_47 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~_T_74) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_74 & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~_T_106) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm from a client which does not support Probe (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_106 & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~source_ok) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm carries invalid source ID (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~_mask_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm smaller than a beat (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_mask_T & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm address not aligned to size (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~_T_120) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm carries invalid grow param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_120 & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~_T_210) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm requests NtoB (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_210 & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~_T_125) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm contains invalid mask (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_125 & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~_T_129) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm is corrupt (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_129 & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_223 & ~reset & ~source_ok) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which master claims it can't emit (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok & (io_in_a_valid & _T_223 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_223 & ~reset & ~_T_253) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which slave claims it can't support (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_253 & (io_in_a_valid & _T_223 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_223 & ~reset & ~source_ok) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get carries invalid source ID (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok & (io_in_a_valid & _T_223 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_223 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get address not aligned to size (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_223 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_223 & ~reset & ~_T_264) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get carries invalid param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_264 & (io_in_a_valid & _T_223 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_223 & ~reset & ~_T_268) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get contains invalid mask (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_268 & (io_in_a_valid & _T_223 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_223 & ~reset & ~_T_129) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get is corrupt (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_129 & (io_in_a_valid & _T_223 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_276 & ~reset & ~_T_305) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutFull type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_305 & (io_in_a_valid & _T_276 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_276 & ~reset & ~source_ok) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull carries invalid source ID (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok & (io_in_a_valid & _T_276 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_276 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull address not aligned to size (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_276 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_276 & ~reset & ~_T_264) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull carries invalid param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_264 & (io_in_a_valid & _T_276 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_276 & ~reset & ~_T_268) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull contains invalid mask (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_268 & (io_in_a_valid & _T_276 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_323 & ~reset & ~_T_305) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutPartial type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_305 & (io_in_a_valid & _T_323 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_323 & ~reset & ~source_ok) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial carries invalid source ID (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok & (io_in_a_valid & _T_323 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_323 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial address not aligned to size (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_323 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_323 & ~reset & ~_T_264) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial carries invalid param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_264 & (io_in_a_valid & _T_323 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_323 & ~reset & ~_T_368) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial contains invalid mask (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_368 & (io_in_a_valid & _T_323 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_372 & ~reset & ~_T_401) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Arithmetic type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_401 & (io_in_a_valid & _T_372 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_372 & ~reset & ~source_ok) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic carries invalid source ID (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok & (io_in_a_valid & _T_372 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_372 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic address not aligned to size (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_372 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_372 & ~reset & ~_T_411) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic carries invalid opcode param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_411 & (io_in_a_valid & _T_372 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_372 & ~reset & ~_T_268) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic contains invalid mask (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_268 & (io_in_a_valid & _T_372 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_419 & ~reset & ~_T_401) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Logical type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_401 & (io_in_a_valid & _T_419 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_419 & ~reset & ~source_ok) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical carries invalid source ID (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok & (io_in_a_valid & _T_419 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_419 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical address not aligned to size (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_419 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_419 & ~reset & ~_T_458) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical carries invalid opcode param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_458 & (io_in_a_valid & _T_419 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_419 & ~reset & ~_T_268) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical contains invalid mask (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_268 & (io_in_a_valid & _T_419 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_466 & ~reset & ~_T_305) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Hint type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_305 & (io_in_a_valid & _T_466 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_466 & ~reset & ~source_ok) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint carries invalid source ID (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok & (io_in_a_valid & _T_466 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_466 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint address not aligned to size (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_466 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_466 & ~reset & ~_T_505) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint carries invalid opcode param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_505 & (io_in_a_valid & _T_466 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_466 & ~reset & ~_T_268) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint contains invalid mask (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_268 & (io_in_a_valid & _T_466 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_466 & ~reset & ~_T_129) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint is corrupt (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_129 & (io_in_a_valid & _T_466 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_517) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_517 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_521 & _T_2 & ~source_ok_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck carries invalid source ID (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok_1 & (io_in_d_valid & _T_521 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_521 & _T_2 & ~_T_525) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck smaller than a beat (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_525 & (io_in_d_valid & _T_521 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_521 & _T_2 & ~_T_529) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseeAck carries invalid param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_529 & (io_in_d_valid & _T_521 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_521 & _T_2 & ~_T_533) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is corrupt (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_533 & (io_in_d_valid & _T_521 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_521 & _T_2 & ~_T_537) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is denied (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_537 & (io_in_d_valid & _T_521 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_541 & _T_2 & ~source_ok_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid source ID (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok_1 & (io_in_d_valid & _T_541 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_541 & _T_2 & ~sink_ok) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid sink ID (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~sink_ok & (io_in_d_valid & _T_541 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_541 & _T_2 & ~_T_525) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant smaller than a beat (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_525 & (io_in_d_valid & _T_541 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_541 & _T_2 & ~_T_552) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid cap param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_552 & (io_in_d_valid & _T_541 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_541 & _T_2 & ~_T_556) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries toN param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_556 & (io_in_d_valid & _T_541 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_541 & _T_2 & ~_T_533) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant is corrupt (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_533 & (io_in_d_valid & _T_541 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_541 & _T_2 & ~_T_537) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant is denied (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_537 & (io_in_d_valid & _T_541 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_569 & _T_2 & ~source_ok_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid source ID (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok_1 & (io_in_d_valid & _T_569 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_569 & _T_2 & ~sink_ok) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid sink ID (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~sink_ok & (io_in_d_valid & _T_569 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_569 & _T_2 & ~_T_525) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData smaller than a beat (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_525 & (io_in_d_valid & _T_569 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_569 & _T_2 & ~_T_552) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid cap param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_552 & (io_in_d_valid & _T_569 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_569 & _T_2 & ~_T_556) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries toN param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_556 & (io_in_d_valid & _T_569 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_569 & _T_2 & ~_T_589) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData is denied but not corrupt (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_589 & (io_in_d_valid & _T_569 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_569 & _T_2 & ~_T_537) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData is denied (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_537 & (io_in_d_valid & _T_569 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_598 & _T_2 & ~source_ok_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck carries invalid source ID (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok_1 & (io_in_d_valid & _T_598 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_598 & _T_2 & ~_T_529) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck carries invalid param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_529 & (io_in_d_valid & _T_598 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_598 & _T_2 & ~_T_533) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck is corrupt (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_533 & (io_in_d_valid & _T_598 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_598 & _T_2 & ~_T_537) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck is denied (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_537 & (io_in_d_valid & _T_598 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_615 & _T_2 & ~source_ok_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData carries invalid source ID (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok_1 & (io_in_d_valid & _T_615 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_615 & _T_2 & ~_T_529) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData carries invalid param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_529 & (io_in_d_valid & _T_615 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_615 & _T_2 & ~_T_589) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData is denied but not corrupt (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_589 & (io_in_d_valid & _T_615 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_615 & _T_2 & ~_T_537) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData is denied (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_537 & (io_in_d_valid & _T_615 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_633 & _T_2 & ~source_ok_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck carries invalid source ID (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok_1 & (io_in_d_valid & _T_633 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_633 & _T_2 & ~_T_529) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck carries invalid param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_529 & (io_in_d_valid & _T_633 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_633 & _T_2 & ~_T_533) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck is corrupt (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_533 & (io_in_d_valid & _T_633 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_633 & _T_2 & ~_T_537) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck is denied (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_537 & (io_in_d_valid & _T_633 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_2 & ~_address_ok_T_4) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel carries Probe type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_4 & (io_in_b_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_2 & ~_address_ok_T_4) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Probe carries unmanaged address (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_4 & (io_in_b_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_2 & ~is_aligned_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Probe address not aligned to size (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_1 & (io_in_b_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_2 & ~_T_739) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Probe carries invalid cap param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_739 & (io_in_b_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1002 & ~reset & ~_address_ok_T_9) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAck carries unmanaged address (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_9 & (io_in_c_valid & _T_1002 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1002 & ~reset & ~_T_1009) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAck smaller than a beat (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1009 & (io_in_c_valid & _T_1002 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1002 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAck address not aligned to size (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_1002 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1002 & ~reset & ~_T_1016) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAck carries invalid report param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1016 & (io_in_c_valid & _T_1002 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1002 & ~reset & ~_T_1020) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAck is corrupt (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1020 & (io_in_c_valid & _T_1002 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1024 & ~reset & ~_address_ok_T_9) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAckData carries unmanaged address (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_9 & (io_in_c_valid & _T_1024 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1024 & ~reset & ~_T_1009) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAckData smaller than a beat (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1009 & (io_in_c_valid & _T_1024 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1024 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAckData address not aligned to size (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_1024 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1024 & ~reset & ~_T_1016) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAckData carries invalid report param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1016 & (io_in_c_valid & _T_1024 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1042 & ~reset & ~_T_1067) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel carries Release type unsupported by manager (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1067 & (io_in_c_valid & _T_1042 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1042 & ~reset & ~_T_1067) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel carries Release from a client which does not support Probe (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1067 & (io_in_c_valid & _T_1042 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1042 & ~reset & ~_T_1009) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel Release smaller than a beat (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1009 & (io_in_c_valid & _T_1042 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1042 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel Release address not aligned to size (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_1042 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1042 & ~reset & ~_T_1016) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel Release carries invalid report param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1016 & (io_in_c_valid & _T_1042 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1042 & ~reset & ~_T_1020) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel Release is corrupt (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1020 & (io_in_c_valid & _T_1042 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1123 & ~reset & ~_T_1067) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel carries ReleaseData type unsupported by manager (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1067 & (io_in_c_valid & _T_1123 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1123 & ~reset & ~_T_1067) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel carries Release from a client which does not support Probe (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1067 & (io_in_c_valid & _T_1123 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1123 & ~reset & ~_T_1009) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ReleaseData smaller than a beat (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1009 & (io_in_c_valid & _T_1123 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1123 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ReleaseData address not aligned to size (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_1123 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1123 & ~reset & ~_T_1016) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ReleaseData carries invalid report param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1016 & (io_in_c_valid & _T_1123 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1200 & ~reset & ~_address_ok_T_9) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAck carries unmanaged address (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_9 & (io_in_c_valid & _T_1200 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1200 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAck address not aligned to size (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_1200 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1200 & ~reset & ~_T_1210) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAck carries invalid param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1210 & (io_in_c_valid & _T_1200 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1200 & ~reset & ~_T_1020) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAck is corrupt (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1020 & (io_in_c_valid & _T_1200 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1218 & ~reset & ~_address_ok_T_9) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAckData carries unmanaged address (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_9 & (io_in_c_valid & _T_1218 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1218 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAckData address not aligned to size (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_1218 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1218 & ~reset & ~_T_1210) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAckData carries invalid param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1210 & (io_in_c_valid & _T_1218 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1232 & ~reset & ~_address_ok_T_9) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel HintAck carries unmanaged address (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_9 & (io_in_c_valid & _T_1232 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1232 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel HintAck address not aligned to size (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_1232 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1232 & ~reset & ~_T_1210) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel HintAck carries invalid param (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1210 & (io_in_c_valid & _T_1232 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1232 & ~reset & ~_T_1020) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel HintAck is corrupt (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1020 & (io_in_c_valid & _T_1232 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_e_valid & ~reset & ~sink_ok_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'E' channels carries invalid sink ID (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~sink_ok_1 & (io_in_e_valid & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1254 & ~reset & ~_T_1255) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel opcode changed within multibeat operation (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1255 & (_T_1254 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1254 & ~reset & ~_T_1259) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel param changed within multibeat operation (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1259 & (_T_1254 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1254 & ~reset & ~_T_1263) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel size changed within multibeat operation (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1263 & (_T_1254 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1254 & ~reset & ~_T_1267) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel source changed within multibeat operation (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1267 & (_T_1254 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1254 & ~reset & ~_T_1271) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel address changed with multibeat operation (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1271 & (_T_1254 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1278 & _T_2 & ~_T_1279) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1279 & (_T_1278 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1278 & _T_2 & ~_T_1283) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel param changed within multibeat operation (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1283 & (_T_1278 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1278 & _T_2 & ~_T_1287) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel size changed within multibeat operation (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1287 & (_T_1278 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1278 & _T_2 & ~_T_1291) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel source changed within multibeat operation (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1291 & (_T_1278 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1278 & _T_2 & ~_T_1295) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel sink changed with multibeat operation (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1295 & (_T_1278 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1278 & _T_2 & ~_T_1299) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel denied changed with multibeat operation (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1299 & (_T_1278 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1306 & ~reset & ~_T_1311) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel param changed within multibeat operation (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1311 & (_T_1306 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1306 & ~reset & ~_T_1323) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel addresss changed with multibeat operation (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1323 & (_T_1306 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1330 & ~reset & ~_T_1331) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel opcode changed within multibeat operation (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1331 & (_T_1330 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1330 & ~reset & ~_T_1335) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel param changed within multibeat operation (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1335 & (_T_1330 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1330 & ~reset & ~_T_1339) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel size changed within multibeat operation (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1339 & (_T_1330 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1330 & ~reset & ~_T_1347) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel address changed with multibeat operation (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1347 & (_T_1330 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1356 & ~reset & ~_T_1360) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel re-used a source ID (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1360 & (_T_1356 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1367 & _T_2 & ~_T_1379) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1379 & (_T_1367 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1367 & same_cycle_resp & _T_2 & ~_T_1385) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1385 & (_T_1367 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1367 & same_cycle_resp & _T_2 & ~_T_1389) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1389 & (_T_1367 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1367 & ~same_cycle_resp & _T_2 & ~_T_1397) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1397 & (_T_1367 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1367 & ~same_cycle_resp & _T_2 & ~_T_1401) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1401 & (_T_1367 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1411 & _T_2 & ~_T_1413) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1413 & (_T_1411 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_2 & ~_T_1420) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' and 'D' concurrent, despite minlatency 2 (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1420 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_1429) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1429 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1446 & ~reset & ~_T_1449) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel re-used a source ID (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1449 & (_T_1446 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1455 & _T_2 & ~_T_1465) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1465 & (_T_1455 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1455 & same_cycle_resp_1 & _T_2 & ~_T_1469) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1469 & (_T_1455 & same_cycle_resp_1 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1455 & ~same_cycle_resp_1 & _T_2 & ~_T_1473) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1473 & (_T_1455 & ~same_cycle_resp_1 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1482 & _T_2 & ~_T_1484) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1484 & (_T_1482 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1488 & _T_2 & ~_T_1489) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' and 'D' concurrent, despite minlatency 2 (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1489 & (_T_1488 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_1498) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1498 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1511 & _T_2 & ~_T_1514) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel re-used a sink ID (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1514 & (_T_1511 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_e_valid & ~reset & ~_T_1522[0]) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'E' channel acknowledged for nothing inflight (connected at Rift2Link.scala:72:80)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1522[0] & (io_in_e_valid & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  opcode = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  param = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  size = _RAND_3[2:0];
  _RAND_4 = {1{`RANDOM}};
  source = _RAND_4[2:0];
  _RAND_5 = {1{`RANDOM}};
  address = _RAND_5[31:0];
  _RAND_6 = {1{`RANDOM}};
  d_first_counter = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  opcode_1 = _RAND_7[2:0];
  _RAND_8 = {1{`RANDOM}};
  param_1 = _RAND_8[1:0];
  _RAND_9 = {1{`RANDOM}};
  size_1 = _RAND_9[2:0];
  _RAND_10 = {1{`RANDOM}};
  source_1 = _RAND_10[2:0];
  _RAND_11 = {1{`RANDOM}};
  sink = _RAND_11[4:0];
  _RAND_12 = {1{`RANDOM}};
  denied = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  b_first_counter = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  param_2 = _RAND_14[1:0];
  _RAND_15 = {1{`RANDOM}};
  address_1 = _RAND_15[31:0];
  _RAND_16 = {1{`RANDOM}};
  c_first_counter = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  opcode_3 = _RAND_17[2:0];
  _RAND_18 = {1{`RANDOM}};
  param_3 = _RAND_18[2:0];
  _RAND_19 = {1{`RANDOM}};
  size_3 = _RAND_19[2:0];
  _RAND_20 = {1{`RANDOM}};
  address_2 = _RAND_20[31:0];
  _RAND_21 = {1{`RANDOM}};
  inflight = _RAND_21[4:0];
  _RAND_22 = {1{`RANDOM}};
  inflight_opcodes = _RAND_22[19:0];
  _RAND_23 = {1{`RANDOM}};
  inflight_sizes = _RAND_23[19:0];
  _RAND_24 = {1{`RANDOM}};
  a_first_counter_1 = _RAND_24[0:0];
  _RAND_25 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_25[0:0];
  _RAND_26 = {1{`RANDOM}};
  watchdog = _RAND_26[31:0];
  _RAND_27 = {1{`RANDOM}};
  inflight_1 = _RAND_27[4:0];
  _RAND_28 = {1{`RANDOM}};
  inflight_sizes_1 = _RAND_28[19:0];
  _RAND_29 = {1{`RANDOM}};
  c_first_counter_1 = _RAND_29[0:0];
  _RAND_30 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_30[0:0];
  _RAND_31 = {1{`RANDOM}};
  watchdog_1 = _RAND_31[31:0];
  _RAND_32 = {1{`RANDOM}};
  inflight_2 = _RAND_32[21:0];
  _RAND_33 = {1{`RANDOM}};
  d_first_counter_3 = _RAND_33[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_23(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [2:0]  io_enq_bits_opcode,
  input  [2:0]  io_enq_bits_param,
  input  [4:0]  io_enq_bits_source,
  input  [31:0] io_enq_bits_address,
  input         io_deq_ready,
  output        io_deq_valid,
  output [2:0]  io_deq_bits_opcode,
  output [2:0]  io_deq_bits_param,
  output [2:0]  io_deq_bits_size,
  output [4:0]  io_deq_bits_source,
  output [31:0] io_deq_bits_address,
  output [7:0]  io_deq_bits_mask,
  output [63:0] io_deq_bits_data,
  output        io_deq_bits_corrupt
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [63:0] _RAND_6;
  reg [31:0] _RAND_7;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
`endif // RANDOMIZE_REG_INIT
  reg [2:0] ram_opcode [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_opcode_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_opcode_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_opcode_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_opcode_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] ram_param [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_param_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_param_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_param_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] ram_size [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_size_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_size_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_en; // @[Decoupled.scala 275:95]
  reg [4:0] ram_source [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_source_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_source_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [4:0] ram_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [4:0] ram_source_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_en; // @[Decoupled.scala 275:95]
  reg [31:0] ram_address [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_address_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_address_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [31:0] ram_address_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [31:0] ram_address_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_address_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_address_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_address_MPORT_en; // @[Decoupled.scala 275:95]
  reg [7:0] ram_mask [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_mask_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_mask_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [7:0] ram_mask_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [7:0] ram_mask_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_mask_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_mask_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_mask_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_data [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_corrupt [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_en; // @[Decoupled.scala 275:95]
  reg  enq_ptr_value; // @[Counter.scala 61:40]
  reg  deq_ptr_value; // @[Counter.scala 61:40]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  ptr_match = enq_ptr_value == deq_ptr_value; // @[Decoupled.scala 279:33]
  wire  empty = ptr_match & ~maybe_full; // @[Decoupled.scala 280:25]
  wire  full = ptr_match & maybe_full; // @[Decoupled.scala 281:24]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_deq = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign ram_opcode_io_deq_bits_MPORT_en = 1'h1;
  assign ram_opcode_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_opcode_io_deq_bits_MPORT_data = ram_opcode[ram_opcode_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_opcode_MPORT_data = io_enq_bits_opcode;
  assign ram_opcode_MPORT_addr = enq_ptr_value;
  assign ram_opcode_MPORT_mask = 1'h1;
  assign ram_opcode_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_param_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_param_io_deq_bits_MPORT_data = ram_param[ram_param_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_MPORT_data = io_enq_bits_param;
  assign ram_param_MPORT_addr = enq_ptr_value;
  assign ram_param_MPORT_mask = 1'h1;
  assign ram_param_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_size_io_deq_bits_MPORT_en = 1'h1;
  assign ram_size_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_size_io_deq_bits_MPORT_data = ram_size[ram_size_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_size_MPORT_data = 3'h4;
  assign ram_size_MPORT_addr = enq_ptr_value;
  assign ram_size_MPORT_mask = 1'h1;
  assign ram_size_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_source_io_deq_bits_MPORT_en = 1'h1;
  assign ram_source_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_source_io_deq_bits_MPORT_data = ram_source[ram_source_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_source_MPORT_data = io_enq_bits_source;
  assign ram_source_MPORT_addr = enq_ptr_value;
  assign ram_source_MPORT_mask = 1'h1;
  assign ram_source_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_address_io_deq_bits_MPORT_en = 1'h1;
  assign ram_address_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_address_io_deq_bits_MPORT_data = ram_address[ram_address_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_address_MPORT_data = io_enq_bits_address;
  assign ram_address_MPORT_addr = enq_ptr_value;
  assign ram_address_MPORT_mask = 1'h1;
  assign ram_address_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_mask_io_deq_bits_MPORT_en = 1'h1;
  assign ram_mask_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_mask_io_deq_bits_MPORT_data = ram_mask[ram_mask_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_mask_MPORT_data = 8'hff;
  assign ram_mask_MPORT_addr = enq_ptr_value;
  assign ram_mask_MPORT_mask = 1'h1;
  assign ram_mask_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_data_io_deq_bits_MPORT_en = 1'h1;
  assign ram_data_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_data_io_deq_bits_MPORT_data = ram_data[ram_data_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_data_MPORT_data = 64'h0;
  assign ram_data_MPORT_addr = enq_ptr_value;
  assign ram_data_MPORT_mask = 1'h1;
  assign ram_data_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_corrupt_io_deq_bits_MPORT_en = 1'h1;
  assign ram_corrupt_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_corrupt_io_deq_bits_MPORT_data = ram_corrupt[ram_corrupt_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_corrupt_MPORT_data = 1'h0;
  assign ram_corrupt_MPORT_addr = enq_ptr_value;
  assign ram_corrupt_MPORT_mask = 1'h1;
  assign ram_corrupt_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = ~full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_opcode = ram_opcode_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_param = ram_param_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_size = ram_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_source = ram_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_address = ram_address_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_mask = ram_mask_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_data = ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_corrupt = ram_corrupt_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_opcode_MPORT_en & ram_opcode_MPORT_mask) begin
      ram_opcode[ram_opcode_MPORT_addr] <= ram_opcode_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_MPORT_en & ram_param_MPORT_mask) begin
      ram_param[ram_param_MPORT_addr] <= ram_param_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_size_MPORT_en & ram_size_MPORT_mask) begin
      ram_size[ram_size_MPORT_addr] <= ram_size_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_source_MPORT_en & ram_source_MPORT_mask) begin
      ram_source[ram_source_MPORT_addr] <= ram_source_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_address_MPORT_en & ram_address_MPORT_mask) begin
      ram_address[ram_address_MPORT_addr] <= ram_address_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_mask_MPORT_en & ram_mask_MPORT_mask) begin
      ram_mask[ram_mask_MPORT_addr] <= ram_mask_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_data_MPORT_en & ram_data_MPORT_mask) begin
      ram_data[ram_data_MPORT_addr] <= ram_data_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_corrupt_MPORT_en & ram_corrupt_MPORT_mask) begin
      ram_corrupt[ram_corrupt_MPORT_addr] <= ram_corrupt_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Counter.scala 61:40]
      enq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_enq) begin // @[Decoupled.scala 288:16]
      enq_ptr_value <= enq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Counter.scala 61:40]
      deq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_deq) begin // @[Decoupled.scala 292:16]
      deq_ptr_value <= deq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_opcode[initvar] = _RAND_0[2:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_param[initvar] = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_size[initvar] = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_source[initvar] = _RAND_3[4:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_address[initvar] = _RAND_4[31:0];
  _RAND_5 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_mask[initvar] = _RAND_5[7:0];
  _RAND_6 = {2{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_data[initvar] = _RAND_6[63:0];
  _RAND_7 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_corrupt[initvar] = _RAND_7[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_8 = {1{`RANDOM}};
  enq_ptr_value = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  deq_ptr_value = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  maybe_full = _RAND_10[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module SourceA(
  input         clock,
  input         reset,
  output        io_req_ready,
  input         io_req_valid,
  input  [24:0] io_req_bits_tag,
  input  [2:0]  io_req_bits_set,
  input  [2:0]  io_req_bits_param,
  input  [4:0]  io_req_bits_source,
  input         io_req_bits_block,
  input         io_a_ready,
  output        io_a_valid,
  output [2:0]  io_a_bits_opcode,
  output [2:0]  io_a_bits_param,
  output [2:0]  io_a_bits_size,
  output [4:0]  io_a_bits_source,
  output [31:0] io_a_bits_address,
  output [7:0]  io_a_bits_mask,
  output [63:0] io_a_bits_data,
  output        io_a_bits_corrupt
);
  wire  io_a_q_clock; // @[Decoupled.scala 377:21]
  wire  io_a_q_reset; // @[Decoupled.scala 377:21]
  wire  io_a_q_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  io_a_q_io_enq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] io_a_q_io_enq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [2:0] io_a_q_io_enq_bits_param; // @[Decoupled.scala 377:21]
  wire [4:0] io_a_q_io_enq_bits_source; // @[Decoupled.scala 377:21]
  wire [31:0] io_a_q_io_enq_bits_address; // @[Decoupled.scala 377:21]
  wire  io_a_q_io_deq_ready; // @[Decoupled.scala 377:21]
  wire  io_a_q_io_deq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] io_a_q_io_deq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [2:0] io_a_q_io_deq_bits_param; // @[Decoupled.scala 377:21]
  wire [2:0] io_a_q_io_deq_bits_size; // @[Decoupled.scala 377:21]
  wire [4:0] io_a_q_io_deq_bits_source; // @[Decoupled.scala 377:21]
  wire [31:0] io_a_q_io_deq_bits_address; // @[Decoupled.scala 377:21]
  wire [7:0] io_a_q_io_deq_bits_mask; // @[Decoupled.scala 377:21]
  wire [63:0] io_a_q_io_deq_bits_data; // @[Decoupled.scala 377:21]
  wire  io_a_q_io_deq_bits_corrupt; // @[Decoupled.scala 377:21]
  wire [31:0] a_bits_address_base = {io_req_bits_tag,io_req_bits_set,4'h0}; // @[Cat.scala 33:92]
  wire [7:0] a_bits_address_lo_lo = {a_bits_address_base[7],a_bits_address_base[6],a_bits_address_base[5],
    a_bits_address_base[4],a_bits_address_base[3],a_bits_address_base[2],a_bits_address_base[1],a_bits_address_base[0]}; // @[Cat.scala 33:92]
  wire [15:0] a_bits_address_lo = {a_bits_address_base[15],a_bits_address_base[14],a_bits_address_base[13],
    a_bits_address_base[12],a_bits_address_base[11],a_bits_address_base[10],a_bits_address_base[9],a_bits_address_base[8
    ],a_bits_address_lo_lo}; // @[Cat.scala 33:92]
  wire [7:0] a_bits_address_hi_lo = {a_bits_address_base[23],a_bits_address_base[22],a_bits_address_base[21],
    a_bits_address_base[20],a_bits_address_base[19],a_bits_address_base[18],a_bits_address_base[17],a_bits_address_base[
    16]}; // @[Cat.scala 33:92]
  wire [15:0] a_bits_address_hi = {a_bits_address_base[31],a_bits_address_base[30],a_bits_address_base[29],
    a_bits_address_base[28],a_bits_address_base[27],a_bits_address_base[26],a_bits_address_base[25],a_bits_address_base[
    24],a_bits_address_hi_lo}; // @[Cat.scala 33:92]
  Queue_23 io_a_q ( // @[Decoupled.scala 377:21]
    .clock(io_a_q_clock),
    .reset(io_a_q_reset),
    .io_enq_ready(io_a_q_io_enq_ready),
    .io_enq_valid(io_a_q_io_enq_valid),
    .io_enq_bits_opcode(io_a_q_io_enq_bits_opcode),
    .io_enq_bits_param(io_a_q_io_enq_bits_param),
    .io_enq_bits_source(io_a_q_io_enq_bits_source),
    .io_enq_bits_address(io_a_q_io_enq_bits_address),
    .io_deq_ready(io_a_q_io_deq_ready),
    .io_deq_valid(io_a_q_io_deq_valid),
    .io_deq_bits_opcode(io_a_q_io_deq_bits_opcode),
    .io_deq_bits_param(io_a_q_io_deq_bits_param),
    .io_deq_bits_size(io_a_q_io_deq_bits_size),
    .io_deq_bits_source(io_a_q_io_deq_bits_source),
    .io_deq_bits_address(io_a_q_io_deq_bits_address),
    .io_deq_bits_mask(io_a_q_io_deq_bits_mask),
    .io_deq_bits_data(io_a_q_io_deq_bits_data),
    .io_deq_bits_corrupt(io_a_q_io_deq_bits_corrupt)
  );
  assign io_req_ready = io_a_q_io_enq_ready; // @[SourceA.scala 42:15 Decoupled.scala 381:17]
  assign io_a_valid = io_a_q_io_deq_valid; // @[SourceA.scala 43:8]
  assign io_a_bits_opcode = io_a_q_io_deq_bits_opcode; // @[SourceA.scala 43:8]
  assign io_a_bits_param = io_a_q_io_deq_bits_param; // @[SourceA.scala 43:8]
  assign io_a_bits_size = io_a_q_io_deq_bits_size; // @[SourceA.scala 43:8]
  assign io_a_bits_source = io_a_q_io_deq_bits_source; // @[SourceA.scala 43:8]
  assign io_a_bits_address = io_a_q_io_deq_bits_address; // @[SourceA.scala 43:8]
  assign io_a_bits_mask = io_a_q_io_deq_bits_mask; // @[SourceA.scala 43:8]
  assign io_a_bits_data = io_a_q_io_deq_bits_data; // @[SourceA.scala 43:8]
  assign io_a_bits_corrupt = io_a_q_io_deq_bits_corrupt; // @[SourceA.scala 43:8]
  assign io_a_q_clock = clock;
  assign io_a_q_reset = reset;
  assign io_a_q_io_enq_valid = io_req_valid; // @[SourceA.scala 42:15 46:11]
  assign io_a_q_io_enq_bits_opcode = io_req_bits_block ? 3'h6 : 3'h7; // @[SourceA.scala 49:24]
  assign io_a_q_io_enq_bits_param = io_req_bits_param; // @[SourceA.scala 42:15 50:18]
  assign io_a_q_io_enq_bits_source = io_req_bits_source; // @[SourceA.scala 42:15 52:18]
  assign io_a_q_io_enq_bits_address = {a_bits_address_hi,a_bits_address_lo}; // @[Cat.scala 33:92]
  assign io_a_q_io_deq_ready = io_a_ready; // @[SourceA.scala 43:8]
endmodule
module SourceB(
  input         clock,
  input         reset,
  output        io_req_ready,
  input         io_req_valid,
  input  [2:0]  io_req_bits_param,
  input  [24:0] io_req_bits_tag,
  input  [2:0]  io_req_bits_set,
  input         io_req_bits_clients,
  input         io_b_ready,
  output        io_b_valid,
  output [1:0]  io_b_bits_param,
  output [31:0] io_b_bits_address
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
`endif // RANDOMIZE_REG_INIT
  reg  remain; // @[SourceB.scala 44:25]
  wire  _T_6 = io_req_ready & io_req_valid; // @[Decoupled.scala 52:35]
  wire  remain_set = _T_6 & io_req_bits_clients; // @[SourceB.scala 60:{26,39}]
  wire  busy = |remain; // @[SourceB.scala 49:26]
  wire  b_valid = busy | io_req_valid; // @[SourceB.scala 66:21]
  wire  _T_7 = io_b_ready & b_valid; // @[Decoupled.scala 52:35]
  wire  todo = busy ? remain : io_req_bits_clients; // @[SourceB.scala 50:19]
  wire [1:0] _next_T_1 = {todo, 1'h0}; // @[SourceB.scala 51:31]
  wire [1:0] _next_T_2 = ~_next_T_1; // @[SourceB.scala 51:16]
  wire [1:0] _GEN_5 = {{1'd0}, todo}; // @[SourceB.scala 51:37]
  wire [1:0] next = _next_T_2 & _GEN_5; // @[SourceB.scala 51:37]
  wire [1:0] _GEN_1 = _T_7 ? next : 2'h0; // @[SourceB.scala 67:{21,34}]
  wire  remain_clr = _GEN_1[0];
  wire  _io_req_ready_T = ~busy; // @[SourceB.scala 59:21]
  reg [24:0] tag_r; // @[Reg.scala 19:16]
  wire [24:0] tag = _io_req_ready_T ? io_req_bits_tag : tag_r; // @[SourceB.scala 70:18]
  reg [2:0] set_r; // @[Reg.scala 19:16]
  wire [2:0] set = _io_req_ready_T ? io_req_bits_set : set_r; // @[SourceB.scala 71:18]
  reg [2:0] param_r; // @[Reg.scala 19:16]
  wire [2:0] param = _io_req_ready_T ? io_req_bits_param : param_r; // @[SourceB.scala 72:20]
  wire [31:0] b_bits_address_base = {tag,set,4'h0}; // @[Cat.scala 33:92]
  wire [7:0] b_bits_address_lo_lo = {b_bits_address_base[7],b_bits_address_base[6],b_bits_address_base[5],
    b_bits_address_base[4],b_bits_address_base[3],b_bits_address_base[2],b_bits_address_base[1],b_bits_address_base[0]}; // @[Cat.scala 33:92]
  wire [15:0] b_bits_address_lo = {b_bits_address_base[15],b_bits_address_base[14],b_bits_address_base[13],
    b_bits_address_base[12],b_bits_address_base[11],b_bits_address_base[10],b_bits_address_base[9],b_bits_address_base[8
    ],b_bits_address_lo_lo}; // @[Cat.scala 33:92]
  wire [7:0] b_bits_address_hi_lo = {b_bits_address_base[23],b_bits_address_base[22],b_bits_address_base[21],
    b_bits_address_base[20],b_bits_address_base[19],b_bits_address_base[18],b_bits_address_base[17],b_bits_address_base[
    16]}; // @[Cat.scala 33:92]
  wire [15:0] b_bits_address_hi = {b_bits_address_base[31],b_bits_address_base[30],b_bits_address_base[29],
    b_bits_address_base[28],b_bits_address_base[27],b_bits_address_base[26],b_bits_address_base[25],b_bits_address_base[
    24],b_bits_address_hi_lo}; // @[Cat.scala 33:92]
  assign io_req_ready = ~busy; // @[SourceB.scala 59:21]
  assign io_b_valid = busy | io_req_valid; // @[SourceB.scala 66:21]
  assign io_b_bits_param = param[1:0]; // @[SourceB.scala 63:17 75:20]
  assign io_b_bits_address = {b_bits_address_hi,b_bits_address_lo}; // @[Cat.scala 33:92]
  always @(posedge clock) begin
    if (reset) begin // @[SourceB.scala 44:25]
      remain <= 1'h0; // @[SourceB.scala 44:25]
    end else begin
      remain <= (remain | remain_set) & ~remain_clr; // @[SourceB.scala 47:12]
    end
    if (_T_6) begin // @[Reg.scala 20:18]
      tag_r <= io_req_bits_tag; // @[Reg.scala 20:22]
    end
    if (_T_6) begin // @[Reg.scala 20:18]
      set_r <= io_req_bits_set; // @[Reg.scala 20:22]
    end
    if (_T_6) begin // @[Reg.scala 20:18]
      param_r <= io_req_bits_param; // @[Reg.scala 20:22]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~io_req_valid | io_req_bits_clients)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at SourceB.scala:57 assert (!io.req.valid || io.req.bits.clients =/= UInt(0))\n"); // @[SourceB.scala 57:12]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~io_req_valid | io_req_bits_clients) & ~reset) begin
          $fatal; // @[SourceB.scala 57:12]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  remain = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  tag_r = _RAND_1[24:0];
  _RAND_2 = {1{`RANDOM}};
  set_r = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  param_r = _RAND_3[2:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module QueueCompatibility(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [2:0]  io_enq_bits_opcode,
  input  [2:0]  io_enq_bits_param,
  input  [4:0]  io_enq_bits_source,
  input  [31:0] io_enq_bits_address,
  input  [63:0] io_enq_bits_data,
  input         io_deq_ready,
  output        io_deq_valid,
  output [2:0]  io_deq_bits_opcode,
  output [2:0]  io_deq_bits_param,
  output [2:0]  io_deq_bits_size,
  output [4:0]  io_deq_bits_source,
  output [31:0] io_deq_bits_address,
  output [63:0] io_deq_bits_data,
  output        io_deq_bits_corrupt,
  output [2:0]  io_count
);
`ifdef RANDOMIZE_GARBAGE_ASSIGN
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_9;
  reg [63:0] _RAND_11;
  reg [31:0] _RAND_13;
`endif // RANDOMIZE_GARBAGE_ASSIGN
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_8;
  reg [63:0] _RAND_10;
  reg [31:0] _RAND_12;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
`endif // RANDOMIZE_REG_INIT
  reg [2:0] ram_opcode [0:5]; // @[Decoupled.scala 275:95]
  wire  ram_opcode_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire [2:0] ram_opcode_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_opcode_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_opcode_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_opcode_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] ram_param [0:5]; // @[Decoupled.scala 275:95]
  wire  ram_param_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire [2:0] ram_param_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_param_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_param_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_param_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] ram_size [0:5]; // @[Decoupled.scala 275:95]
  wire  ram_size_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_en; // @[Decoupled.scala 275:95]
  reg [4:0] ram_source [0:5]; // @[Decoupled.scala 275:95]
  wire  ram_source_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire [2:0] ram_source_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [4:0] ram_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [4:0] ram_source_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_source_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_en; // @[Decoupled.scala 275:95]
  reg [31:0] ram_address [0:5]; // @[Decoupled.scala 275:95]
  wire  ram_address_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire [2:0] ram_address_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [31:0] ram_address_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [31:0] ram_address_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_address_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_address_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_address_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_data [0:5]; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire [2:0] ram_data_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_data_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_corrupt [0:5]; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire [2:0] ram_corrupt_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_corrupt_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] enq_ptr_value; // @[Counter.scala 61:40]
  reg [2:0] deq_ptr_value; // @[Counter.scala 61:40]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  ptr_match = enq_ptr_value == deq_ptr_value; // @[Decoupled.scala 279:33]
  wire  empty = ptr_match & ~maybe_full; // @[Decoupled.scala 280:25]
  wire  full = ptr_match & maybe_full; // @[Decoupled.scala 281:24]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_deq = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire  wrap = enq_ptr_value == 3'h5; // @[Counter.scala 73:24]
  wire [2:0] _value_T_1 = enq_ptr_value + 3'h1; // @[Counter.scala 77:24]
  wire  wrap_1 = deq_ptr_value == 3'h5; // @[Counter.scala 73:24]
  wire [2:0] _value_T_3 = deq_ptr_value + 3'h1; // @[Counter.scala 77:24]
  wire [2:0] ptr_diff = enq_ptr_value - deq_ptr_value; // @[Decoupled.scala 328:32]
  wire [2:0] _io_count_T = maybe_full ? 3'h6 : 3'h0; // @[Decoupled.scala 335:10]
  wire [2:0] _io_count_T_3 = 3'h6 + ptr_diff; // @[Decoupled.scala 336:57]
  wire [2:0] _io_count_T_4 = deq_ptr_value > enq_ptr_value ? _io_count_T_3 : ptr_diff; // @[Decoupled.scala 336:10]
  assign ram_opcode_io_deq_bits_MPORT_en = 1'h1;
  assign ram_opcode_io_deq_bits_MPORT_addr = deq_ptr_value;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign ram_opcode_io_deq_bits_MPORT_data = ram_opcode[ram_opcode_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  `else
  assign ram_opcode_io_deq_bits_MPORT_data = ram_opcode_io_deq_bits_MPORT_addr >= 3'h6 ? _RAND_1[2:0] :
    ram_opcode[ram_opcode_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign ram_opcode_MPORT_data = io_enq_bits_opcode;
  assign ram_opcode_MPORT_addr = enq_ptr_value;
  assign ram_opcode_MPORT_mask = 1'h1;
  assign ram_opcode_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_param_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_io_deq_bits_MPORT_addr = deq_ptr_value;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign ram_param_io_deq_bits_MPORT_data = ram_param[ram_param_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  `else
  assign ram_param_io_deq_bits_MPORT_data = ram_param_io_deq_bits_MPORT_addr >= 3'h6 ? _RAND_3[2:0] :
    ram_param[ram_param_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign ram_param_MPORT_data = io_enq_bits_param;
  assign ram_param_MPORT_addr = enq_ptr_value;
  assign ram_param_MPORT_mask = 1'h1;
  assign ram_param_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_size_io_deq_bits_MPORT_en = 1'h1;
  assign ram_size_io_deq_bits_MPORT_addr = deq_ptr_value;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign ram_size_io_deq_bits_MPORT_data = ram_size[ram_size_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  `else
  assign ram_size_io_deq_bits_MPORT_data = ram_size_io_deq_bits_MPORT_addr >= 3'h6 ? _RAND_5[2:0] :
    ram_size[ram_size_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign ram_size_MPORT_data = 3'h4;
  assign ram_size_MPORT_addr = enq_ptr_value;
  assign ram_size_MPORT_mask = 1'h1;
  assign ram_size_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_source_io_deq_bits_MPORT_en = 1'h1;
  assign ram_source_io_deq_bits_MPORT_addr = deq_ptr_value;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign ram_source_io_deq_bits_MPORT_data = ram_source[ram_source_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  `else
  assign ram_source_io_deq_bits_MPORT_data = ram_source_io_deq_bits_MPORT_addr >= 3'h6 ? _RAND_7[4:0] :
    ram_source[ram_source_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign ram_source_MPORT_data = io_enq_bits_source;
  assign ram_source_MPORT_addr = enq_ptr_value;
  assign ram_source_MPORT_mask = 1'h1;
  assign ram_source_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_address_io_deq_bits_MPORT_en = 1'h1;
  assign ram_address_io_deq_bits_MPORT_addr = deq_ptr_value;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign ram_address_io_deq_bits_MPORT_data = ram_address[ram_address_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  `else
  assign ram_address_io_deq_bits_MPORT_data = ram_address_io_deq_bits_MPORT_addr >= 3'h6 ? _RAND_9[31:0] :
    ram_address[ram_address_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign ram_address_MPORT_data = io_enq_bits_address;
  assign ram_address_MPORT_addr = enq_ptr_value;
  assign ram_address_MPORT_mask = 1'h1;
  assign ram_address_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_data_io_deq_bits_MPORT_en = 1'h1;
  assign ram_data_io_deq_bits_MPORT_addr = deq_ptr_value;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign ram_data_io_deq_bits_MPORT_data = ram_data[ram_data_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  `else
  assign ram_data_io_deq_bits_MPORT_data = ram_data_io_deq_bits_MPORT_addr >= 3'h6 ? _RAND_11[63:0] :
    ram_data[ram_data_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign ram_data_MPORT_data = io_enq_bits_data;
  assign ram_data_MPORT_addr = enq_ptr_value;
  assign ram_data_MPORT_mask = 1'h1;
  assign ram_data_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_corrupt_io_deq_bits_MPORT_en = 1'h1;
  assign ram_corrupt_io_deq_bits_MPORT_addr = deq_ptr_value;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign ram_corrupt_io_deq_bits_MPORT_data = ram_corrupt[ram_corrupt_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  `else
  assign ram_corrupt_io_deq_bits_MPORT_data = ram_corrupt_io_deq_bits_MPORT_addr >= 3'h6 ? _RAND_13[0:0] :
    ram_corrupt[ram_corrupt_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign ram_corrupt_MPORT_data = 1'h0;
  assign ram_corrupt_MPORT_addr = enq_ptr_value;
  assign ram_corrupt_MPORT_mask = 1'h1;
  assign ram_corrupt_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = ~full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_opcode = ram_opcode_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_param = ram_param_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_size = ram_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_source = ram_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_address = ram_address_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_data = ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_corrupt = ram_corrupt_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_count = ptr_match ? _io_count_T : _io_count_T_4; // @[Decoupled.scala 333:20]
  always @(posedge clock) begin
    if (ram_opcode_MPORT_en & ram_opcode_MPORT_mask) begin
      ram_opcode[ram_opcode_MPORT_addr] <= ram_opcode_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_MPORT_en & ram_param_MPORT_mask) begin
      ram_param[ram_param_MPORT_addr] <= ram_param_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_size_MPORT_en & ram_size_MPORT_mask) begin
      ram_size[ram_size_MPORT_addr] <= ram_size_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_source_MPORT_en & ram_source_MPORT_mask) begin
      ram_source[ram_source_MPORT_addr] <= ram_source_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_address_MPORT_en & ram_address_MPORT_mask) begin
      ram_address[ram_address_MPORT_addr] <= ram_address_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_data_MPORT_en & ram_data_MPORT_mask) begin
      ram_data[ram_data_MPORT_addr] <= ram_data_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_corrupt_MPORT_en & ram_corrupt_MPORT_mask) begin
      ram_corrupt[ram_corrupt_MPORT_addr] <= ram_corrupt_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Counter.scala 61:40]
      enq_ptr_value <= 3'h0; // @[Counter.scala 61:40]
    end else if (do_enq) begin // @[Decoupled.scala 288:16]
      if (wrap) begin // @[Counter.scala 87:20]
        enq_ptr_value <= 3'h0; // @[Counter.scala 87:28]
      end else begin
        enq_ptr_value <= _value_T_1; // @[Counter.scala 77:15]
      end
    end
    if (reset) begin // @[Counter.scala 61:40]
      deq_ptr_value <= 3'h0; // @[Counter.scala 61:40]
    end else if (do_deq) begin // @[Decoupled.scala 292:16]
      if (wrap_1) begin // @[Counter.scala 87:20]
        deq_ptr_value <= 3'h0; // @[Counter.scala 87:28]
      end else begin
        deq_ptr_value <= _value_T_3; // @[Counter.scala 77:15]
      end
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_GARBAGE_ASSIGN
  _RAND_1 = {1{`RANDOM}};
  _RAND_3 = {1{`RANDOM}};
  _RAND_5 = {1{`RANDOM}};
  _RAND_7 = {1{`RANDOM}};
  _RAND_9 = {1{`RANDOM}};
  _RAND_11 = {2{`RANDOM}};
  _RAND_13 = {1{`RANDOM}};
`endif // RANDOMIZE_GARBAGE_ASSIGN
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 6; initvar = initvar+1)
    ram_opcode[initvar] = _RAND_0[2:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 6; initvar = initvar+1)
    ram_param[initvar] = _RAND_2[2:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 6; initvar = initvar+1)
    ram_size[initvar] = _RAND_4[2:0];
  _RAND_6 = {1{`RANDOM}};
  for (initvar = 0; initvar < 6; initvar = initvar+1)
    ram_source[initvar] = _RAND_6[4:0];
  _RAND_8 = {1{`RANDOM}};
  for (initvar = 0; initvar < 6; initvar = initvar+1)
    ram_address[initvar] = _RAND_8[31:0];
  _RAND_10 = {2{`RANDOM}};
  for (initvar = 0; initvar < 6; initvar = initvar+1)
    ram_data[initvar] = _RAND_10[63:0];
  _RAND_12 = {1{`RANDOM}};
  for (initvar = 0; initvar < 6; initvar = initvar+1)
    ram_corrupt[initvar] = _RAND_12[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_14 = {1{`RANDOM}};
  enq_ptr_value = _RAND_14[2:0];
  _RAND_15 = {1{`RANDOM}};
  deq_ptr_value = _RAND_15[2:0];
  _RAND_16 = {1{`RANDOM}};
  maybe_full = _RAND_16[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module SourceC(
  input         clock,
  input         reset,
  output        io_req_ready,
  input         io_req_valid,
  input  [2:0]  io_req_bits_opcode,
  input  [2:0]  io_req_bits_param,
  input  [4:0]  io_req_bits_source,
  input  [24:0] io_req_bits_tag,
  input  [2:0]  io_req_bits_set,
  input         io_req_bits_way,
  input         io_req_bits_dirty,
  input         io_c_ready,
  output        io_c_valid,
  output [2:0]  io_c_bits_opcode,
  output [2:0]  io_c_bits_param,
  output [2:0]  io_c_bits_size,
  output [4:0]  io_c_bits_source,
  output [31:0] io_c_bits_address,
  output [63:0] io_c_bits_data,
  output        io_c_bits_corrupt,
  input         io_bs_adr_ready,
  output        io_bs_adr_valid,
  output        io_bs_adr_bits_way,
  output [2:0]  io_bs_adr_bits_set,
  output        io_bs_adr_bits_beat,
  input  [63:0] io_bs_dat_data,
  output [2:0]  io_evict_req_set,
  output        io_evict_req_way,
  input         io_evict_safe
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
`endif // RANDOMIZE_REG_INIT
  wire  queue_clock; // @[SourceC.scala 53:21]
  wire  queue_reset; // @[SourceC.scala 53:21]
  wire  queue_io_enq_ready; // @[SourceC.scala 53:21]
  wire  queue_io_enq_valid; // @[SourceC.scala 53:21]
  wire [2:0] queue_io_enq_bits_opcode; // @[SourceC.scala 53:21]
  wire [2:0] queue_io_enq_bits_param; // @[SourceC.scala 53:21]
  wire [4:0] queue_io_enq_bits_source; // @[SourceC.scala 53:21]
  wire [31:0] queue_io_enq_bits_address; // @[SourceC.scala 53:21]
  wire [63:0] queue_io_enq_bits_data; // @[SourceC.scala 53:21]
  wire  queue_io_deq_ready; // @[SourceC.scala 53:21]
  wire  queue_io_deq_valid; // @[SourceC.scala 53:21]
  wire [2:0] queue_io_deq_bits_opcode; // @[SourceC.scala 53:21]
  wire [2:0] queue_io_deq_bits_param; // @[SourceC.scala 53:21]
  wire [2:0] queue_io_deq_bits_size; // @[SourceC.scala 53:21]
  wire [4:0] queue_io_deq_bits_source; // @[SourceC.scala 53:21]
  wire [31:0] queue_io_deq_bits_address; // @[SourceC.scala 53:21]
  wire [63:0] queue_io_deq_bits_data; // @[SourceC.scala 53:21]
  wire  queue_io_deq_bits_corrupt; // @[SourceC.scala 53:21]
  wire [2:0] queue_io_count; // @[SourceC.scala 53:21]
  reg [2:0] fill; // @[SourceC.scala 57:21]
  reg  room; // @[SourceC.scala 58:21]
  wire  _T = queue_io_enq_ready & queue_io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _T_1 = queue_io_deq_ready & queue_io_deq_valid; // @[Decoupled.scala 52:35]
  wire [2:0] _fill_T_2 = _T ? 3'h1 : 3'h7; // @[SourceC.scala 60:23]
  wire [2:0] _fill_T_4 = fill + _fill_T_2; // @[SourceC.scala 60:18]
  wire  _GEN_1 = _T != _T_1 ? fill == 3'h0 | (fill == 3'h1 | fill == 3'h2) & ~_T : room; // @[SourceC.scala 59:54 61:10 58:21]
  wire  _T_6 = ~reset; // @[SourceC.scala 63:10]
  reg  busy; // @[SourceC.scala 65:21]
  reg  beat; // @[SourceC.scala 66:21]
  wire  last = &beat; // @[SourceC.scala 67:19]
  wire  _req_T = ~busy; // @[SourceC.scala 68:18]
  wire  _req_T_2 = ~busy & io_req_valid; // @[SourceC.scala 68:67]
  reg [2:0] req_r_opcode; // @[Reg.scala 19:16]
  reg [2:0] req_r_param; // @[Reg.scala 19:16]
  reg [4:0] req_r_source; // @[Reg.scala 19:16]
  reg [24:0] req_r_tag; // @[Reg.scala 19:16]
  reg [2:0] req_r_set; // @[Reg.scala 19:16]
  reg  req_r_way; // @[Reg.scala 19:16]
  wire  _want_data_T_1 = io_req_valid & room & io_req_bits_dirty; // @[SourceC.scala 69:49]
  wire  want_data = busy | io_req_valid & room & io_req_bits_dirty; // @[SourceC.scala 69:24]
  wire  _GEN_9 = _want_data_T_1 | busy; // @[SourceC.scala 65:21 86:{52,59}]
  wire  _T_16 = io_bs_adr_ready & io_bs_adr_valid; // @[Decoupled.scala 52:35]
  wire  _s2_latch_T_1 = io_req_ready & io_req_valid; // @[Decoupled.scala 52:35]
  wire  s2_latch = want_data ? _T_16 : _s2_latch_T_1; // @[SourceC.scala 92:21]
  reg  s2_valid; // @[SourceC.scala 93:25]
  reg [2:0] s2_req_opcode; // @[Reg.scala 19:16]
  reg [2:0] s2_req_param; // @[Reg.scala 19:16]
  reg [4:0] s2_req_source; // @[Reg.scala 19:16]
  reg [24:0] s2_req_tag; // @[Reg.scala 19:16]
  reg [2:0] s2_req_set; // @[Reg.scala 19:16]
  reg  s3_valid; // @[SourceC.scala 99:25]
  reg [2:0] s3_req_opcode; // @[Reg.scala 19:16]
  reg [2:0] s3_req_param; // @[Reg.scala 19:16]
  reg [4:0] s3_req_source; // @[Reg.scala 19:16]
  reg [24:0] s3_req_tag; // @[Reg.scala 19:16]
  reg [2:0] s3_req_set; // @[Reg.scala 19:16]
  wire [31:0] c_bits_address_base = {s3_req_tag,s3_req_set,4'h0}; // @[Cat.scala 33:92]
  wire [7:0] c_bits_address_lo_lo = {c_bits_address_base[7],c_bits_address_base[6],c_bits_address_base[5],
    c_bits_address_base[4],c_bits_address_base[3],c_bits_address_base[2],c_bits_address_base[1],c_bits_address_base[0]}; // @[Cat.scala 33:92]
  wire [15:0] c_bits_address_lo = {c_bits_address_base[15],c_bits_address_base[14],c_bits_address_base[13],
    c_bits_address_base[12],c_bits_address_base[11],c_bits_address_base[10],c_bits_address_base[9],c_bits_address_base[8
    ],c_bits_address_lo_lo}; // @[Cat.scala 33:92]
  wire [7:0] c_bits_address_hi_lo = {c_bits_address_base[23],c_bits_address_base[22],c_bits_address_base[21],
    c_bits_address_base[20],c_bits_address_base[19],c_bits_address_base[18],c_bits_address_base[17],c_bits_address_base[
    16]}; // @[Cat.scala 33:92]
  wire [15:0] c_bits_address_hi = {c_bits_address_base[31],c_bits_address_base[30],c_bits_address_base[29],
    c_bits_address_base[28],c_bits_address_base[27],c_bits_address_base[26],c_bits_address_base[25],c_bits_address_base[
    24],c_bits_address_hi_lo}; // @[Cat.scala 33:92]
  wire  c_ready = queue_io_enq_ready; // @[SourceC.scala 104:15 118:16]
  QueueCompatibility queue ( // @[SourceC.scala 53:21]
    .clock(queue_clock),
    .reset(queue_reset),
    .io_enq_ready(queue_io_enq_ready),
    .io_enq_valid(queue_io_enq_valid),
    .io_enq_bits_opcode(queue_io_enq_bits_opcode),
    .io_enq_bits_param(queue_io_enq_bits_param),
    .io_enq_bits_source(queue_io_enq_bits_source),
    .io_enq_bits_address(queue_io_enq_bits_address),
    .io_enq_bits_data(queue_io_enq_bits_data),
    .io_deq_ready(queue_io_deq_ready),
    .io_deq_valid(queue_io_deq_valid),
    .io_deq_bits_opcode(queue_io_deq_bits_opcode),
    .io_deq_bits_param(queue_io_deq_bits_param),
    .io_deq_bits_size(queue_io_deq_bits_size),
    .io_deq_bits_source(queue_io_deq_bits_source),
    .io_deq_bits_address(queue_io_deq_bits_address),
    .io_deq_bits_data(queue_io_deq_bits_data),
    .io_deq_bits_corrupt(queue_io_deq_bits_corrupt),
    .io_count(queue_io_count)
  );
  assign io_req_ready = _req_T & room; // @[SourceC.scala 71:25]
  assign io_c_valid = queue_io_deq_valid; // @[SourceC.scala 119:8]
  assign io_c_bits_opcode = queue_io_deq_bits_opcode; // @[SourceC.scala 119:8]
  assign io_c_bits_param = queue_io_deq_bits_param; // @[SourceC.scala 119:8]
  assign io_c_bits_size = queue_io_deq_bits_size; // @[SourceC.scala 119:8]
  assign io_c_bits_source = queue_io_deq_bits_source; // @[SourceC.scala 119:8]
  assign io_c_bits_address = queue_io_deq_bits_address; // @[SourceC.scala 119:8]
  assign io_c_bits_data = queue_io_deq_bits_data; // @[SourceC.scala 119:8]
  assign io_c_bits_corrupt = queue_io_deq_bits_corrupt; // @[SourceC.scala 119:8]
  assign io_bs_adr_valid = (|beat | io_evict_safe) & want_data; // @[SourceC.scala 76:50]
  assign io_bs_adr_bits_way = ~busy ? io_req_bits_way : req_r_way; // @[SourceC.scala 68:17]
  assign io_bs_adr_bits_set = ~busy ? io_req_bits_set : req_r_set; // @[SourceC.scala 68:17]
  assign io_bs_adr_bits_beat = beat; // @[SourceC.scala 80:23]
  assign io_evict_req_set = ~busy ? io_req_bits_set : req_r_set; // @[SourceC.scala 68:17]
  assign io_evict_req_way = ~busy ? io_req_bits_way : req_r_way; // @[SourceC.scala 68:17]
  assign queue_clock = clock;
  assign queue_reset = reset;
  assign queue_io_enq_valid = s3_valid; // @[SourceC.scala 104:15 105:18]
  assign queue_io_enq_bits_opcode = s3_req_opcode; // @[SourceC.scala 104:15 106:18]
  assign queue_io_enq_bits_param = s3_req_param; // @[SourceC.scala 104:15 107:18]
  assign queue_io_enq_bits_source = s3_req_source; // @[SourceC.scala 104:15 109:18]
  assign queue_io_enq_bits_address = {c_bits_address_hi,c_bits_address_lo}; // @[Cat.scala 33:92]
  assign queue_io_enq_bits_data = io_bs_dat_data; // @[SourceC.scala 104:15 111:18]
  assign queue_io_deq_ready = io_c_ready; // @[SourceC.scala 119:8]
  always @(posedge clock) begin
    if (reset) begin // @[SourceC.scala 57:21]
      fill <= 3'h0; // @[SourceC.scala 57:21]
    end else if (_T != _T_1) begin // @[SourceC.scala 59:54]
      fill <= _fill_T_4; // @[SourceC.scala 60:10]
    end
    room <= reset | _GEN_1; // @[SourceC.scala 58:{21,21}]
    if (reset) begin // @[SourceC.scala 65:21]
      busy <= 1'h0; // @[SourceC.scala 65:21]
    end else if (_T_16) begin // @[SourceC.scala 87:27]
      if (last) begin // @[SourceC.scala 88:17]
        busy <= 1'h0; // @[SourceC.scala 88:24]
      end else begin
        busy <= _GEN_9;
      end
    end else begin
      busy <= _GEN_9;
    end
    if (reset) begin // @[SourceC.scala 66:21]
      beat <= 1'h0; // @[SourceC.scala 66:21]
    end else if (_T_16) begin // @[SourceC.scala 87:27]
      beat <= beat + 1'h1; // @[SourceC.scala 89:10]
    end
    if (_req_T_2) begin // @[Reg.scala 20:18]
      req_r_opcode <= io_req_bits_opcode; // @[Reg.scala 20:22]
    end
    if (_req_T_2) begin // @[Reg.scala 20:18]
      req_r_param <= io_req_bits_param; // @[Reg.scala 20:22]
    end
    if (_req_T_2) begin // @[Reg.scala 20:18]
      req_r_source <= io_req_bits_source; // @[Reg.scala 20:22]
    end
    if (_req_T_2) begin // @[Reg.scala 20:18]
      req_r_tag <= io_req_bits_tag; // @[Reg.scala 20:22]
    end
    if (_req_T_2) begin // @[Reg.scala 20:18]
      req_r_set <= io_req_bits_set; // @[Reg.scala 20:22]
    end
    if (_req_T_2) begin // @[Reg.scala 20:18]
      req_r_way <= io_req_bits_way; // @[Reg.scala 20:22]
    end
    if (want_data) begin // @[SourceC.scala 92:21]
      s2_valid <= _T_16;
    end else begin
      s2_valid <= _s2_latch_T_1;
    end
    if (s2_latch) begin // @[Reg.scala 20:18]
      if (~busy) begin // @[SourceC.scala 68:17]
        s2_req_opcode <= io_req_bits_opcode;
      end else begin
        s2_req_opcode <= req_r_opcode;
      end
    end
    if (s2_latch) begin // @[Reg.scala 20:18]
      if (~busy) begin // @[SourceC.scala 68:17]
        s2_req_param <= io_req_bits_param;
      end else begin
        s2_req_param <= req_r_param;
      end
    end
    if (s2_latch) begin // @[Reg.scala 20:18]
      if (~busy) begin // @[SourceC.scala 68:17]
        s2_req_source <= io_req_bits_source;
      end else begin
        s2_req_source <= req_r_source;
      end
    end
    if (s2_latch) begin // @[Reg.scala 20:18]
      if (~busy) begin // @[SourceC.scala 68:17]
        s2_req_tag <= io_req_bits_tag;
      end else begin
        s2_req_tag <= req_r_tag;
      end
    end
    if (s2_latch) begin // @[Reg.scala 20:18]
      if (~busy) begin // @[SourceC.scala 68:17]
        s2_req_set <= io_req_bits_set;
      end else begin
        s2_req_set <= req_r_set;
      end
    end
    s3_valid <= s2_valid; // @[SourceC.scala 99:25]
    if (s2_valid) begin // @[Reg.scala 20:18]
      s3_req_opcode <= s2_req_opcode; // @[Reg.scala 20:22]
    end
    if (s2_valid) begin // @[Reg.scala 20:18]
      s3_req_param <= s2_req_param; // @[Reg.scala 20:22]
    end
    if (s2_valid) begin // @[Reg.scala 20:18]
      s3_req_source <= s2_req_source; // @[Reg.scala 20:22]
    end
    if (s2_valid) begin // @[Reg.scala 20:18]
      s3_req_tag <= s2_req_tag; // @[Reg.scala 20:22]
    end
    if (s2_valid) begin // @[Reg.scala 20:18]
      s3_req_set <= s2_req_set; // @[Reg.scala 20:22]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(room == queue_io_count <= 3'h1)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at SourceC.scala:63 assert (room === queue.io.count <= UInt(1))\n"
            ); // @[SourceC.scala 63:10]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(room == queue_io_count <= 3'h1) & ~reset) begin
          $fatal; // @[SourceC.scala 63:10]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_6 & ~(~s3_valid | c_ready)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at SourceC.scala:115 assert(!c.valid || c.ready)\n"); // @[SourceC.scala 115:9]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~s3_valid | c_ready) & _T_6) begin
          $fatal; // @[SourceC.scala 115:9]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  fill = _RAND_0[2:0];
  _RAND_1 = {1{`RANDOM}};
  room = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  busy = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  beat = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  req_r_opcode = _RAND_4[2:0];
  _RAND_5 = {1{`RANDOM}};
  req_r_param = _RAND_5[2:0];
  _RAND_6 = {1{`RANDOM}};
  req_r_source = _RAND_6[4:0];
  _RAND_7 = {1{`RANDOM}};
  req_r_tag = _RAND_7[24:0];
  _RAND_8 = {1{`RANDOM}};
  req_r_set = _RAND_8[2:0];
  _RAND_9 = {1{`RANDOM}};
  req_r_way = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  s2_valid = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  s2_req_opcode = _RAND_11[2:0];
  _RAND_12 = {1{`RANDOM}};
  s2_req_param = _RAND_12[2:0];
  _RAND_13 = {1{`RANDOM}};
  s2_req_source = _RAND_13[4:0];
  _RAND_14 = {1{`RANDOM}};
  s2_req_tag = _RAND_14[24:0];
  _RAND_15 = {1{`RANDOM}};
  s2_req_set = _RAND_15[2:0];
  _RAND_16 = {1{`RANDOM}};
  s3_valid = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  s3_req_opcode = _RAND_17[2:0];
  _RAND_18 = {1{`RANDOM}};
  s3_req_param = _RAND_18[2:0];
  _RAND_19 = {1{`RANDOM}};
  s3_req_source = _RAND_19[4:0];
  _RAND_20 = {1{`RANDOM}};
  s3_req_tag = _RAND_20[24:0];
  _RAND_21 = {1{`RANDOM}};
  s3_req_set = _RAND_21[2:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module QueueCompatibility_1(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [63:0] io_enq_bits_data,
  input         io_deq_ready,
  output        io_deq_valid,
  output [63:0] io_deq_bits_data
);
`ifdef RANDOMIZE_GARBAGE_ASSIGN
  reg [63:0] _RAND_1;
`endif // RANDOMIZE_GARBAGE_ASSIGN
`ifdef RANDOMIZE_MEM_INIT
  reg [63:0] _RAND_0;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
`endif // RANDOMIZE_REG_INIT
  reg [63:0] ram_data [0:2]; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire [1:0] ram_data_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_MPORT_data; // @[Decoupled.scala 275:95]
  wire [1:0] ram_data_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_en; // @[Decoupled.scala 275:95]
  reg [1:0] enq_ptr_value; // @[Counter.scala 61:40]
  reg [1:0] deq_ptr_value; // @[Counter.scala 61:40]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  ptr_match = enq_ptr_value == deq_ptr_value; // @[Decoupled.scala 279:33]
  wire  empty = ptr_match & ~maybe_full; // @[Decoupled.scala 280:25]
  wire  full = ptr_match & maybe_full; // @[Decoupled.scala 281:24]
  wire  _do_enq_T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _do_deq_T = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire  wrap = enq_ptr_value == 2'h2; // @[Counter.scala 73:24]
  wire [1:0] _value_T_1 = enq_ptr_value + 2'h1; // @[Counter.scala 77:24]
  wire  _GEN_14 = io_deq_ready ? 1'h0 : _do_enq_T; // @[Decoupled.scala 320:{26,35}]
  wire  do_enq = empty ? _GEN_14 : _do_enq_T; // @[Decoupled.scala 317:17]
  wire  wrap_1 = deq_ptr_value == 2'h2; // @[Counter.scala 73:24]
  wire [1:0] _value_T_3 = deq_ptr_value + 2'h1; // @[Counter.scala 77:24]
  wire  do_deq = empty ? 1'h0 : _do_deq_T; // @[Decoupled.scala 317:17 319:14]
  assign ram_data_io_deq_bits_MPORT_en = 1'h1;
  assign ram_data_io_deq_bits_MPORT_addr = deq_ptr_value;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign ram_data_io_deq_bits_MPORT_data = ram_data[ram_data_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  `else
  assign ram_data_io_deq_bits_MPORT_data = ram_data_io_deq_bits_MPORT_addr >= 2'h3 ? _RAND_1[63:0] :
    ram_data[ram_data_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign ram_data_MPORT_data = io_enq_bits_data;
  assign ram_data_MPORT_addr = enq_ptr_value;
  assign ram_data_MPORT_mask = 1'h1;
  assign ram_data_MPORT_en = empty ? _GEN_14 : _do_enq_T;
  assign io_enq_ready = ~full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = io_enq_valid | ~empty; // @[Decoupled.scala 304:16 316:{24,39}]
  assign io_deq_bits_data = empty ? io_enq_bits_data : ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  always @(posedge clock) begin
    if (ram_data_MPORT_en & ram_data_MPORT_mask) begin
      ram_data[ram_data_MPORT_addr] <= ram_data_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Counter.scala 61:40]
      enq_ptr_value <= 2'h0; // @[Counter.scala 61:40]
    end else if (do_enq) begin // @[Decoupled.scala 288:16]
      if (wrap) begin // @[Counter.scala 87:20]
        enq_ptr_value <= 2'h0; // @[Counter.scala 87:28]
      end else begin
        enq_ptr_value <= _value_T_1; // @[Counter.scala 77:15]
      end
    end
    if (reset) begin // @[Counter.scala 61:40]
      deq_ptr_value <= 2'h0; // @[Counter.scala 61:40]
    end else if (do_deq) begin // @[Decoupled.scala 292:16]
      if (wrap_1) begin // @[Counter.scala 87:20]
        deq_ptr_value <= 2'h0; // @[Counter.scala 87:28]
      end else begin
        deq_ptr_value <= _value_T_3; // @[Counter.scala 77:15]
      end
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      if (empty) begin // @[Decoupled.scala 317:17]
        if (io_deq_ready) begin // @[Decoupled.scala 320:26]
          maybe_full <= 1'h0; // @[Decoupled.scala 320:35]
        end else begin
          maybe_full <= _do_enq_T;
        end
      end else begin
        maybe_full <= _do_enq_T;
      end
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_GARBAGE_ASSIGN
  _RAND_1 = {2{`RANDOM}};
`endif // RANDOMIZE_GARBAGE_ASSIGN
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {2{`RANDOM}};
  for (initvar = 0; initvar < 3; initvar = initvar+1)
    ram_data[initvar] = _RAND_0[63:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_2 = {1{`RANDOM}};
  enq_ptr_value = _RAND_2[1:0];
  _RAND_3 = {1{`RANDOM}};
  deq_ptr_value = _RAND_3[1:0];
  _RAND_4 = {1{`RANDOM}};
  maybe_full = _RAND_4[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Atomics(
  input         io_write,
  input  [2:0]  io_a_opcode,
  input  [2:0]  io_a_param,
  input  [7:0]  io_a_mask,
  input  [63:0] io_a_data,
  input  [63:0] io_data_in,
  output [63:0] io_data_out
);
  wire  adder = io_a_param[2]; // @[Atomics.scala 19:28]
  wire  unsigned_ = io_a_param[1]; // @[Atomics.scala 20:28]
  wire  take_max = io_a_param[0]; // @[Atomics.scala 21:28]
  wire [7:0] _signBit_T = ~io_a_mask; // @[Atomics.scala 23:42]
  wire [7:0] _signBit_T_2 = {1'h1,_signBit_T[7:1]}; // @[Cat.scala 33:92]
  wire [7:0] signBit = io_a_mask & _signBit_T_2; // @[Atomics.scala 23:27]
  wire [63:0] _inv_d_T = ~io_data_in; // @[Atomics.scala 24:38]
  wire [63:0] inv_d = adder ? io_data_in : _inv_d_T; // @[Atomics.scala 24:18]
  wire [7:0] _sum_T_9 = io_a_mask[0] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _sum_T_11 = io_a_mask[1] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _sum_T_13 = io_a_mask[2] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _sum_T_15 = io_a_mask[3] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _sum_T_17 = io_a_mask[4] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _sum_T_19 = io_a_mask[5] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _sum_T_21 = io_a_mask[6] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _sum_T_23 = io_a_mask[7] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [63:0] _sum_T_24 = {_sum_T_23,_sum_T_21,_sum_T_19,_sum_T_17,_sum_T_15,_sum_T_13,_sum_T_11,_sum_T_9}; // @[Cat.scala 33:92]
  wire [63:0] _sum_T_25 = _sum_T_24 & io_a_data; // @[Atomics.scala 25:44]
  wire [63:0] sum = _sum_T_25 + inv_d; // @[Atomics.scala 25:57]
  wire [7:0] _sign_a_T_64 = {io_a_data[63],io_a_data[55],io_a_data[47],io_a_data[39],io_a_data[31],io_a_data[23],
    io_a_data[15],io_a_data[7]}; // @[Cat.scala 33:92]
  wire [7:0] _sign_a_T_65 = _sign_a_T_64 & signBit; // @[Atomics.scala 26:83]
  wire  sign_a = |_sign_a_T_65; // @[Atomics.scala 26:97]
  wire [7:0] _sign_d_T_64 = {io_data_in[63],io_data_in[55],io_data_in[47],io_data_in[39],io_data_in[31],io_data_in[23],
    io_data_in[15],io_data_in[7]}; // @[Cat.scala 33:92]
  wire [7:0] _sign_d_T_65 = _sign_d_T_64 & signBit; // @[Atomics.scala 26:83]
  wire  sign_d = |_sign_d_T_65; // @[Atomics.scala 26:97]
  wire [7:0] _sign_s_T_64 = {sum[63],sum[55],sum[47],sum[39],sum[31],sum[23],sum[15],sum[7]}; // @[Cat.scala 33:92]
  wire [7:0] _sign_s_T_65 = _sign_s_T_64 & signBit; // @[Atomics.scala 26:83]
  wire  sign_s = |_sign_s_T_65; // @[Atomics.scala 26:97]
  wire  a_bigger_uneq = unsigned_ == sign_a; // @[Atomics.scala 30:32]
  wire  a_bigger = sign_a == sign_d ? ~sign_s : a_bigger_uneq; // @[Atomics.scala 31:21]
  wire  pick_a = take_max == a_bigger; // @[Atomics.scala 32:25]
  wire [1:0] _logical_T_128 = {io_a_data[0],io_data_in[0]}; // @[Cat.scala 33:92]
  wire [3:0] _GEN_1 = 2'h1 == io_a_param[1:0] ? 4'he : 4'h6; // @[Atomics.scala 42:{8,8}]
  wire [3:0] _GEN_2 = 2'h2 == io_a_param[1:0] ? 4'h8 : _GEN_1; // @[Atomics.scala 42:{8,8}]
  wire [3:0] _GEN_3 = 2'h3 == io_a_param[1:0] ? 4'hc : _GEN_2; // @[Atomics.scala 42:{8,8}]
  wire [3:0] _logical_T_129 = _GEN_3 >> _logical_T_128; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_131 = {io_a_data[1],io_data_in[1]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_132 = _GEN_3 >> _logical_T_131; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_134 = {io_a_data[2],io_data_in[2]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_135 = _GEN_3 >> _logical_T_134; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_137 = {io_a_data[3],io_data_in[3]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_138 = _GEN_3 >> _logical_T_137; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_140 = {io_a_data[4],io_data_in[4]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_141 = _GEN_3 >> _logical_T_140; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_143 = {io_a_data[5],io_data_in[5]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_144 = _GEN_3 >> _logical_T_143; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_146 = {io_a_data[6],io_data_in[6]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_147 = _GEN_3 >> _logical_T_146; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_149 = {io_a_data[7],io_data_in[7]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_150 = _GEN_3 >> _logical_T_149; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_152 = {io_a_data[8],io_data_in[8]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_153 = _GEN_3 >> _logical_T_152; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_155 = {io_a_data[9],io_data_in[9]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_156 = _GEN_3 >> _logical_T_155; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_158 = {io_a_data[10],io_data_in[10]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_159 = _GEN_3 >> _logical_T_158; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_161 = {io_a_data[11],io_data_in[11]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_162 = _GEN_3 >> _logical_T_161; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_164 = {io_a_data[12],io_data_in[12]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_165 = _GEN_3 >> _logical_T_164; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_167 = {io_a_data[13],io_data_in[13]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_168 = _GEN_3 >> _logical_T_167; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_170 = {io_a_data[14],io_data_in[14]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_171 = _GEN_3 >> _logical_T_170; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_173 = {io_a_data[15],io_data_in[15]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_174 = _GEN_3 >> _logical_T_173; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_176 = {io_a_data[16],io_data_in[16]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_177 = _GEN_3 >> _logical_T_176; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_179 = {io_a_data[17],io_data_in[17]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_180 = _GEN_3 >> _logical_T_179; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_182 = {io_a_data[18],io_data_in[18]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_183 = _GEN_3 >> _logical_T_182; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_185 = {io_a_data[19],io_data_in[19]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_186 = _GEN_3 >> _logical_T_185; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_188 = {io_a_data[20],io_data_in[20]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_189 = _GEN_3 >> _logical_T_188; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_191 = {io_a_data[21],io_data_in[21]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_192 = _GEN_3 >> _logical_T_191; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_194 = {io_a_data[22],io_data_in[22]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_195 = _GEN_3 >> _logical_T_194; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_197 = {io_a_data[23],io_data_in[23]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_198 = _GEN_3 >> _logical_T_197; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_200 = {io_a_data[24],io_data_in[24]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_201 = _GEN_3 >> _logical_T_200; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_203 = {io_a_data[25],io_data_in[25]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_204 = _GEN_3 >> _logical_T_203; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_206 = {io_a_data[26],io_data_in[26]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_207 = _GEN_3 >> _logical_T_206; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_209 = {io_a_data[27],io_data_in[27]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_210 = _GEN_3 >> _logical_T_209; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_212 = {io_a_data[28],io_data_in[28]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_213 = _GEN_3 >> _logical_T_212; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_215 = {io_a_data[29],io_data_in[29]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_216 = _GEN_3 >> _logical_T_215; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_218 = {io_a_data[30],io_data_in[30]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_219 = _GEN_3 >> _logical_T_218; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_221 = {io_a_data[31],io_data_in[31]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_222 = _GEN_3 >> _logical_T_221; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_224 = {io_a_data[32],io_data_in[32]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_225 = _GEN_3 >> _logical_T_224; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_227 = {io_a_data[33],io_data_in[33]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_228 = _GEN_3 >> _logical_T_227; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_230 = {io_a_data[34],io_data_in[34]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_231 = _GEN_3 >> _logical_T_230; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_233 = {io_a_data[35],io_data_in[35]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_234 = _GEN_3 >> _logical_T_233; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_236 = {io_a_data[36],io_data_in[36]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_237 = _GEN_3 >> _logical_T_236; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_239 = {io_a_data[37],io_data_in[37]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_240 = _GEN_3 >> _logical_T_239; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_242 = {io_a_data[38],io_data_in[38]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_243 = _GEN_3 >> _logical_T_242; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_245 = {io_a_data[39],io_data_in[39]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_246 = _GEN_3 >> _logical_T_245; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_248 = {io_a_data[40],io_data_in[40]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_249 = _GEN_3 >> _logical_T_248; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_251 = {io_a_data[41],io_data_in[41]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_252 = _GEN_3 >> _logical_T_251; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_254 = {io_a_data[42],io_data_in[42]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_255 = _GEN_3 >> _logical_T_254; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_257 = {io_a_data[43],io_data_in[43]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_258 = _GEN_3 >> _logical_T_257; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_260 = {io_a_data[44],io_data_in[44]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_261 = _GEN_3 >> _logical_T_260; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_263 = {io_a_data[45],io_data_in[45]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_264 = _GEN_3 >> _logical_T_263; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_266 = {io_a_data[46],io_data_in[46]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_267 = _GEN_3 >> _logical_T_266; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_269 = {io_a_data[47],io_data_in[47]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_270 = _GEN_3 >> _logical_T_269; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_272 = {io_a_data[48],io_data_in[48]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_273 = _GEN_3 >> _logical_T_272; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_275 = {io_a_data[49],io_data_in[49]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_276 = _GEN_3 >> _logical_T_275; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_278 = {io_a_data[50],io_data_in[50]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_279 = _GEN_3 >> _logical_T_278; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_281 = {io_a_data[51],io_data_in[51]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_282 = _GEN_3 >> _logical_T_281; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_284 = {io_a_data[52],io_data_in[52]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_285 = _GEN_3 >> _logical_T_284; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_287 = {io_a_data[53],io_data_in[53]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_288 = _GEN_3 >> _logical_T_287; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_290 = {io_a_data[54],io_data_in[54]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_291 = _GEN_3 >> _logical_T_290; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_293 = {io_a_data[55],io_data_in[55]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_294 = _GEN_3 >> _logical_T_293; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_296 = {io_a_data[56],io_data_in[56]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_297 = _GEN_3 >> _logical_T_296; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_299 = {io_a_data[57],io_data_in[57]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_300 = _GEN_3 >> _logical_T_299; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_302 = {io_a_data[58],io_data_in[58]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_303 = _GEN_3 >> _logical_T_302; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_305 = {io_a_data[59],io_data_in[59]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_306 = _GEN_3 >> _logical_T_305; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_308 = {io_a_data[60],io_data_in[60]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_309 = _GEN_3 >> _logical_T_308; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_311 = {io_a_data[61],io_data_in[61]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_312 = _GEN_3 >> _logical_T_311; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_314 = {io_a_data[62],io_data_in[62]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_315 = _GEN_3 >> _logical_T_314; // @[Atomics.scala 42:8]
  wire [1:0] _logical_T_317 = {io_a_data[63],io_data_in[63]}; // @[Cat.scala 33:92]
  wire [3:0] _logical_T_318 = _GEN_3 >> _logical_T_317; // @[Atomics.scala 42:8]
  wire [7:0] logical_lo_lo_lo = {_logical_T_150[0],_logical_T_147[0],_logical_T_144[0],_logical_T_141[0],_logical_T_138[
    0],_logical_T_135[0],_logical_T_132[0],_logical_T_129[0]}; // @[Cat.scala 33:92]
  wire [15:0] logical_lo_lo = {_logical_T_174[0],_logical_T_171[0],_logical_T_168[0],_logical_T_165[0],_logical_T_162[0]
    ,_logical_T_159[0],_logical_T_156[0],_logical_T_153[0],logical_lo_lo_lo}; // @[Cat.scala 33:92]
  wire [7:0] logical_lo_hi_lo = {_logical_T_198[0],_logical_T_195[0],_logical_T_192[0],_logical_T_189[0],_logical_T_186[
    0],_logical_T_183[0],_logical_T_180[0],_logical_T_177[0]}; // @[Cat.scala 33:92]
  wire [31:0] logical_lo = {_logical_T_222[0],_logical_T_219[0],_logical_T_216[0],_logical_T_213[0],_logical_T_210[0],
    _logical_T_207[0],_logical_T_204[0],_logical_T_201[0],logical_lo_hi_lo,logical_lo_lo}; // @[Cat.scala 33:92]
  wire [7:0] logical_hi_lo_lo = {_logical_T_246[0],_logical_T_243[0],_logical_T_240[0],_logical_T_237[0],_logical_T_234[
    0],_logical_T_231[0],_logical_T_228[0],_logical_T_225[0]}; // @[Cat.scala 33:92]
  wire [15:0] logical_hi_lo = {_logical_T_270[0],_logical_T_267[0],_logical_T_264[0],_logical_T_261[0],_logical_T_258[0]
    ,_logical_T_255[0],_logical_T_252[0],_logical_T_249[0],logical_hi_lo_lo}; // @[Cat.scala 33:92]
  wire [7:0] logical_hi_hi_lo = {_logical_T_294[0],_logical_T_291[0],_logical_T_288[0],_logical_T_285[0],_logical_T_282[
    0],_logical_T_279[0],_logical_T_276[0],_logical_T_273[0]}; // @[Cat.scala 33:92]
  wire [31:0] logical_hi = {_logical_T_318[0],_logical_T_315[0],_logical_T_312[0],_logical_T_309[0],_logical_T_306[0],
    _logical_T_303[0],_logical_T_300[0],_logical_T_297[0],logical_hi_hi_lo,logical_hi_lo}; // @[Cat.scala 33:92]
  wire [63:0] logical = {logical_hi,logical_lo}; // @[Cat.scala 33:92]
  wire [1:0] _select_T_1 = adder ? 2'h2 : {{1'd0}, pick_a}; // @[Atomics.scala 49:8]
  wire [1:0] _GEN_6 = 3'h2 == io_a_opcode ? _select_T_1 : 2'h1; // @[Atomics.scala 46:{19,19}]
  wire [1:0] _GEN_7 = 3'h3 == io_a_opcode ? 2'h3 : _GEN_6; // @[Atomics.scala 46:{19,19}]
  wire [1:0] _GEN_8 = 3'h4 == io_a_opcode ? 2'h0 : _GEN_7; // @[Atomics.scala 46:{19,19}]
  wire [1:0] _GEN_9 = 3'h5 == io_a_opcode ? 2'h0 : _GEN_8; // @[Atomics.scala 46:{19,19}]
  wire [1:0] _GEN_10 = 3'h6 == io_a_opcode ? 2'h0 : _GEN_9; // @[Atomics.scala 46:{19,19}]
  wire [1:0] _GEN_11 = 3'h7 == io_a_opcode ? 2'h0 : _GEN_10; // @[Atomics.scala 46:{19,19}]
  wire [1:0] select = io_write ? 2'h1 : _GEN_11; // @[Atomics.scala 46:19]
  wire [1:0] selects_0 = io_a_mask[0] ? select : 2'h0; // @[Atomics.scala 58:47]
  wire [1:0] selects_1 = io_a_mask[1] ? select : 2'h0; // @[Atomics.scala 58:47]
  wire [1:0] selects_2 = io_a_mask[2] ? select : 2'h0; // @[Atomics.scala 58:47]
  wire [1:0] selects_3 = io_a_mask[3] ? select : 2'h0; // @[Atomics.scala 58:47]
  wire [1:0] selects_4 = io_a_mask[4] ? select : 2'h0; // @[Atomics.scala 58:47]
  wire [1:0] selects_5 = io_a_mask[5] ? select : 2'h0; // @[Atomics.scala 58:47]
  wire [1:0] selects_6 = io_a_mask[6] ? select : 2'h0; // @[Atomics.scala 58:47]
  wire [1:0] selects_7 = io_a_mask[7] ? select : 2'h0; // @[Atomics.scala 58:47]
  wire [7:0] _GEN_13 = 2'h1 == selects_1 ? io_a_data[15:8] : io_data_in[15:8]; // @[Cat.scala 33:{92,92}]
  wire [7:0] _GEN_14 = 2'h2 == selects_1 ? sum[15:8] : _GEN_13; // @[Cat.scala 33:{92,92}]
  wire [7:0] _GEN_15 = 2'h3 == selects_1 ? logical[15:8] : _GEN_14; // @[Cat.scala 33:{92,92}]
  wire [7:0] _GEN_17 = 2'h1 == selects_0 ? io_a_data[7:0] : io_data_in[7:0]; // @[Cat.scala 33:{92,92}]
  wire [7:0] _GEN_18 = 2'h2 == selects_0 ? sum[7:0] : _GEN_17; // @[Cat.scala 33:{92,92}]
  wire [7:0] _GEN_19 = 2'h3 == selects_0 ? logical[7:0] : _GEN_18; // @[Cat.scala 33:{92,92}]
  wire [7:0] _GEN_21 = 2'h1 == selects_3 ? io_a_data[31:24] : io_data_in[31:24]; // @[Cat.scala 33:{92,92}]
  wire [7:0] _GEN_22 = 2'h2 == selects_3 ? sum[31:24] : _GEN_21; // @[Cat.scala 33:{92,92}]
  wire [7:0] _GEN_23 = 2'h3 == selects_3 ? logical[31:24] : _GEN_22; // @[Cat.scala 33:{92,92}]
  wire [7:0] _GEN_25 = 2'h1 == selects_2 ? io_a_data[23:16] : io_data_in[23:16]; // @[Cat.scala 33:{92,92}]
  wire [7:0] _GEN_26 = 2'h2 == selects_2 ? sum[23:16] : _GEN_25; // @[Cat.scala 33:{92,92}]
  wire [7:0] _GEN_27 = 2'h3 == selects_2 ? logical[23:16] : _GEN_26; // @[Cat.scala 33:{92,92}]
  wire [31:0] io_data_out_lo = {_GEN_23,_GEN_27,_GEN_15,_GEN_19}; // @[Cat.scala 33:92]
  wire [7:0] _GEN_29 = 2'h1 == selects_5 ? io_a_data[47:40] : io_data_in[47:40]; // @[Cat.scala 33:{92,92}]
  wire [7:0] _GEN_30 = 2'h2 == selects_5 ? sum[47:40] : _GEN_29; // @[Cat.scala 33:{92,92}]
  wire [7:0] _GEN_31 = 2'h3 == selects_5 ? logical[47:40] : _GEN_30; // @[Cat.scala 33:{92,92}]
  wire [7:0] _GEN_33 = 2'h1 == selects_4 ? io_a_data[39:32] : io_data_in[39:32]; // @[Cat.scala 33:{92,92}]
  wire [7:0] _GEN_34 = 2'h2 == selects_4 ? sum[39:32] : _GEN_33; // @[Cat.scala 33:{92,92}]
  wire [7:0] _GEN_35 = 2'h3 == selects_4 ? logical[39:32] : _GEN_34; // @[Cat.scala 33:{92,92}]
  wire [7:0] _GEN_37 = 2'h1 == selects_7 ? io_a_data[63:56] : io_data_in[63:56]; // @[Cat.scala 33:{92,92}]
  wire [7:0] _GEN_38 = 2'h2 == selects_7 ? sum[63:56] : _GEN_37; // @[Cat.scala 33:{92,92}]
  wire [7:0] _GEN_39 = 2'h3 == selects_7 ? logical[63:56] : _GEN_38; // @[Cat.scala 33:{92,92}]
  wire [7:0] _GEN_41 = 2'h1 == selects_6 ? io_a_data[55:48] : io_data_in[55:48]; // @[Cat.scala 33:{92,92}]
  wire [7:0] _GEN_42 = 2'h2 == selects_6 ? sum[55:48] : _GEN_41; // @[Cat.scala 33:{92,92}]
  wire [7:0] _GEN_43 = 2'h3 == selects_6 ? logical[55:48] : _GEN_42; // @[Cat.scala 33:{92,92}]
  wire [31:0] io_data_out_hi = {_GEN_39,_GEN_43,_GEN_31,_GEN_35}; // @[Cat.scala 33:92]
  assign io_data_out = {io_data_out_hi,io_data_out_lo}; // @[Cat.scala 33:92]
endmodule
module SourceD(
  input         clock,
  input         reset,
  output        io_req_ready,
  input         io_req_valid,
  input         io_req_bits_prio_0,
  input         io_req_bits_prio_2,
  input  [2:0]  io_req_bits_opcode,
  input  [2:0]  io_req_bits_param,
  input  [2:0]  io_req_bits_size,
  input  [2:0]  io_req_bits_source,
  input  [3:0]  io_req_bits_offset,
  input  [5:0]  io_req_bits_put,
  input  [2:0]  io_req_bits_set,
  input  [4:0]  io_req_bits_sink,
  input         io_req_bits_way,
  input         io_req_bits_bad,
  input         io_d_ready,
  output        io_d_valid,
  output [2:0]  io_d_bits_opcode,
  output [1:0]  io_d_bits_param,
  output [2:0]  io_d_bits_size,
  output [2:0]  io_d_bits_source,
  output [4:0]  io_d_bits_sink,
  output        io_d_bits_denied,
  output [63:0] io_d_bits_data,
  output        io_d_bits_corrupt,
  input         io_pb_pop_ready,
  output        io_pb_pop_valid,
  output [5:0]  io_pb_pop_bits_index,
  output        io_pb_pop_bits_last,
  input  [63:0] io_pb_beat_data,
  input  [7:0]  io_pb_beat_mask,
  input         io_pb_beat_corrupt,
  input         io_rel_pop_ready,
  output        io_rel_pop_valid,
  output [5:0]  io_rel_pop_bits_index,
  output        io_rel_pop_bits_last,
  input  [63:0] io_rel_beat_data,
  input         io_rel_beat_corrupt,
  input         io_bs_radr_ready,
  output        io_bs_radr_valid,
  output        io_bs_radr_bits_way,
  output [2:0]  io_bs_radr_bits_set,
  output        io_bs_radr_bits_beat,
  output        io_bs_radr_bits_mask,
  input  [63:0] io_bs_rdat_data,
  input         io_bs_wadr_ready,
  output        io_bs_wadr_valid,
  output        io_bs_wadr_bits_way,
  output [2:0]  io_bs_wadr_bits_set,
  output        io_bs_wadr_bits_beat,
  output        io_bs_wadr_bits_mask,
  output [63:0] io_bs_wdat_data,
  input  [2:0]  io_evict_req_set,
  input         io_evict_req_way,
  output        io_evict_safe,
  input  [2:0]  io_grant_req_set,
  input         io_grant_req_way,
  output        io_grant_safe
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
  reg [31:0] _RAND_33;
  reg [31:0] _RAND_34;
  reg [31:0] _RAND_35;
  reg [31:0] _RAND_36;
  reg [31:0] _RAND_37;
  reg [31:0] _RAND_38;
  reg [31:0] _RAND_39;
  reg [31:0] _RAND_40;
  reg [31:0] _RAND_41;
  reg [31:0] _RAND_42;
  reg [31:0] _RAND_43;
  reg [31:0] _RAND_44;
  reg [31:0] _RAND_45;
  reg [31:0] _RAND_46;
  reg [31:0] _RAND_47;
  reg [31:0] _RAND_48;
  reg [31:0] _RAND_49;
  reg [63:0] _RAND_50;
  reg [31:0] _RAND_51;
  reg [31:0] _RAND_52;
  reg [31:0] _RAND_53;
  reg [31:0] _RAND_54;
  reg [31:0] _RAND_55;
  reg [31:0] _RAND_56;
  reg [31:0] _RAND_57;
  reg [31:0] _RAND_58;
  reg [31:0] _RAND_59;
  reg [31:0] _RAND_60;
  reg [31:0] _RAND_61;
  reg [63:0] _RAND_62;
  reg [31:0] _RAND_63;
  reg [31:0] _RAND_64;
  reg [31:0] _RAND_65;
  reg [31:0] _RAND_66;
  reg [31:0] _RAND_67;
  reg [63:0] _RAND_68;
  reg [31:0] _RAND_69;
  reg [31:0] _RAND_70;
  reg [31:0] _RAND_71;
  reg [31:0] _RAND_72;
  reg [63:0] _RAND_73;
  reg [31:0] _RAND_74;
  reg [31:0] _RAND_75;
  reg [63:0] _RAND_76;
  reg [31:0] _RAND_77;
  reg [31:0] _RAND_78;
  reg [31:0] _RAND_79;
  reg [63:0] _RAND_80;
  reg [31:0] _RAND_81;
  reg [31:0] _RAND_82;
  reg [31:0] _RAND_83;
  reg [63:0] _RAND_84;
  reg [63:0] _RAND_85;
`endif // RANDOMIZE_REG_INIT
  wire  queue_clock; // @[SourceD.scala 119:21]
  wire  queue_reset; // @[SourceD.scala 119:21]
  wire  queue_io_enq_ready; // @[SourceD.scala 119:21]
  wire  queue_io_enq_valid; // @[SourceD.scala 119:21]
  wire [63:0] queue_io_enq_bits_data; // @[SourceD.scala 119:21]
  wire  queue_io_deq_ready; // @[SourceD.scala 119:21]
  wire  queue_io_deq_valid; // @[SourceD.scala 119:21]
  wire [63:0] queue_io_deq_bits_data; // @[SourceD.scala 119:21]
  wire  atomics_io_write; // @[SourceD.scala 257:23]
  wire [2:0] atomics_io_a_opcode; // @[SourceD.scala 257:23]
  wire [2:0] atomics_io_a_param; // @[SourceD.scala 257:23]
  wire [7:0] atomics_io_a_mask; // @[SourceD.scala 257:23]
  wire [63:0] atomics_io_a_data; // @[SourceD.scala 257:23]
  wire [63:0] atomics_io_data_in; // @[SourceD.scala 257:23]
  wire [63:0] atomics_io_data_out; // @[SourceD.scala 257:23]
  reg  busy; // @[SourceD.scala 83:21]
  reg  s1_block_r; // @[SourceD.scala 84:27]
  reg  s1_counter; // @[SourceD.scala 85:27]
  wire  _s1_req_reg_T = ~busy; // @[SourceD.scala 86:43]
  wire  _s1_req_reg_T_1 = ~busy & io_req_valid; // @[SourceD.scala 86:49]
  reg  s1_req_reg_prio_0; // @[Reg.scala 19:16]
  reg  s1_req_reg_prio_2; // @[Reg.scala 19:16]
  reg [2:0] s1_req_reg_opcode; // @[Reg.scala 19:16]
  reg [2:0] s1_req_reg_param; // @[Reg.scala 19:16]
  reg [2:0] s1_req_reg_size; // @[Reg.scala 19:16]
  reg [2:0] s1_req_reg_source; // @[Reg.scala 19:16]
  reg [3:0] s1_req_reg_offset; // @[Reg.scala 19:16]
  reg [5:0] s1_req_reg_put; // @[Reg.scala 19:16]
  reg [2:0] s1_req_reg_set; // @[Reg.scala 19:16]
  reg [4:0] s1_req_reg_sink; // @[Reg.scala 19:16]
  reg  s1_req_reg_way; // @[Reg.scala 19:16]
  reg  s1_req_reg_bad; // @[Reg.scala 19:16]
  wire  s1_req_prio_0 = _s1_req_reg_T ? io_req_bits_prio_0 : s1_req_reg_prio_0; // @[SourceD.scala 87:19]
  wire [2:0] s1_req_opcode = _s1_req_reg_T ? io_req_bits_opcode : s1_req_reg_opcode; // @[SourceD.scala 87:19]
  wire [2:0] s1_req_param = _s1_req_reg_T ? io_req_bits_param : s1_req_reg_param; // @[SourceD.scala 87:19]
  wire [2:0] s1_req_size = _s1_req_reg_T ? io_req_bits_size : s1_req_reg_size; // @[SourceD.scala 87:19]
  wire [3:0] s1_req_offset = _s1_req_reg_T ? io_req_bits_offset : s1_req_reg_offset; // @[SourceD.scala 87:19]
  wire [2:0] s1_req_set = _s1_req_reg_T ? io_req_bits_set : s1_req_reg_set; // @[SourceD.scala 87:19]
  wire  s1_req_way = _s1_req_reg_T ? io_req_bits_way : s1_req_reg_way; // @[SourceD.scala 87:19]
  wire  _s1_latch_bypass_T = busy | io_req_valid; // @[SourceD.scala 89:40]
  reg  s2_full; // @[SourceD.scala 146:24]
  wire  _s2_ready_T = ~s2_full; // @[SourceD.scala 183:15]
  reg  s3_full; // @[SourceD.scala 189:24]
  wire  _s3_ready_T = ~s3_full; // @[SourceD.scala 241:15]
  reg  s3_retires; // @[Reg.scala 19:16]
  reg  s4_full; // @[SourceD.scala 247:24]
  wire  _s4_ready_T_1 = ~s4_full; // @[SourceD.scala 291:30]
  reg  s4_need_bs; // @[Reg.scala 19:16]
  wire  _s4_ready_T_4 = ~s4_need_bs; // @[SourceD.scala 291:62]
  wire  s4_ready = ~s3_retires | ~s4_full | io_bs_wadr_ready | ~s4_need_bs; // @[SourceD.scala 291:59]
  reg  s3_valid_d; // @[SourceD.scala 190:27]
  wire  _s3_ready_T_2 = ~s3_valid_d | io_d_ready; // @[SourceD.scala 241:53]
  wire  s3_ready = ~s3_full | s4_ready & (~s3_valid_d | io_d_ready); // @[SourceD.scala 241:24]
  reg  s2_valid_pb; // @[SourceD.scala 147:28]
  reg  s2_req_prio_0; // @[Reg.scala 19:16]
  wire  pb_ready = s2_req_prio_0 ? io_pb_pop_ready : io_rel_pop_ready; // @[SourceD.scala 174:21]
  wire  _s2_ready_T_2 = ~s2_valid_pb | pb_ready; // @[SourceD.scala 183:54]
  wire  s2_ready = ~s2_full | s3_ready & (~s2_valid_pb | pb_ready); // @[SourceD.scala 183:24]
  reg  s1_latch_bypass; // @[SourceD.scala 89:32]
  reg  s1_bypass_r; // @[Reg.scala 19:16]
  reg [2:0] s2_req_set; // @[Reg.scala 19:16]
  reg  s2_req_way; // @[Reg.scala 19:16]
  reg  s2_beat; // @[Reg.scala 19:16]
  wire  s1_beat = s1_req_offset[3] | s1_counter; // @[SourceD.scala 101:56]
  reg  s2_retires; // @[Reg.scala 19:16]
  wire  s1_2_match = s2_req_set == s1_req_set & s2_req_way == s1_req_way & s2_beat == s1_beat & s2_full & s2_retires; // @[SourceD.scala 342:110]
  reg [2:0] s3_req_set; // @[Reg.scala 19:16]
  reg  s3_req_way; // @[Reg.scala 19:16]
  reg  s3_beat; // @[Reg.scala 19:16]
  wire  s1_3_match = s3_req_set == s1_req_set & s3_req_way == s1_req_way & s3_beat == s1_beat & s3_full & s3_retires; // @[SourceD.scala 343:110]
  reg [2:0] s4_req_set; // @[Reg.scala 19:16]
  reg  s4_req_way; // @[Reg.scala 19:16]
  reg  s4_beat; // @[Reg.scala 19:16]
  wire  s1_4_match = s4_req_set == s1_req_set & s4_req_way == s1_req_way & s4_beat == s1_beat & s4_full; // @[SourceD.scala 344:99]
  wire  s1_x_bypass = s1_2_match | s1_3_match | s1_4_match; // @[SourceD.scala 358:44]
  wire  _GEN_15 = s1_latch_bypass ? s1_x_bypass : s1_bypass_r; // @[Reg.scala 19:16 20:{18,22}]
  wire  s1_mask = ~_GEN_15; // @[SourceD.scala 91:78]
  wire  _s1_grant_T = s1_req_opcode == 3'h6; // @[SourceD.scala 92:33]
  wire  s1_grant = s1_req_opcode == 3'h6 & s1_req_param == 3'h2 | s1_req_opcode == 3'h7; // @[SourceD.scala 92:76]
  wire  _s1_need_r_T_8 = s1_req_opcode != 3'h0 | s1_req_size < 3'h3; // @[SourceD.scala 94:50]
  wire  s1_need_r = |s1_mask & s1_req_prio_0 & s1_req_opcode != 3'h5 & ~s1_grant & _s1_need_r_T_8; // @[SourceD.scala 93:88]
  wire  s1_valid_r = _s1_latch_bypass_T & s1_need_r & ~s1_block_r; // @[SourceD.scala 95:56]
  wire  s1_need_pb = s1_req_prio_0 ? ~s1_req_opcode[2] : s1_req_opcode[0]; // @[SourceD.scala 96:23]
  wire  s1_single = s1_req_prio_0 ? s1_req_opcode == 3'h5 | s1_grant : _s1_grant_T; // @[SourceD.scala 97:22]
  wire  s1_retires = ~s1_single; // @[SourceD.scala 98:20]
  wire [10:0] _s1_beats1_T_1 = 11'hf << s1_req_size; // @[package.scala 234:77]
  wire [3:0] _s1_beats1_T_3 = ~_s1_beats1_T_1[3:0]; // @[package.scala 234:46]
  wire  s1_beats1 = s1_single ? 1'h0 : _s1_beats1_T_3[3]; // @[SourceD.scala 100:22]
  wire  s1_last = s1_counter == s1_beats1; // @[SourceD.scala 102:28]
  wire  s1_first = ~s1_counter; // @[SourceD.scala 103:29]
  wire  _queue_io_enq_valid_T = io_bs_radr_ready & io_bs_radr_valid; // @[Decoupled.scala 52:35]
  reg  queue_io_enq_valid_REG; // @[SourceD.scala 120:40]
  reg  queue_io_enq_valid_REG_1; // @[SourceD.scala 120:32]
  wire  _T_9 = ~reset; // @[SourceD.scala 122:10]
  wire  _GEN_16 = _queue_io_enq_valid_T | s1_block_r; // @[SourceD.scala 126:{28,41} 84:27]
  wire  _GEN_17 = io_req_valid | busy; // @[SourceD.scala 127:{23,30} 83:21]
  wire  s1_valid = _s1_latch_bypass_T & (~s1_valid_r | io_bs_radr_ready); // @[SourceD.scala 140:38]
  wire  _T_13 = s1_valid & s2_ready; // @[SourceD.scala 128:18]
  reg  s2_bypass; // @[Reg.scala 19:16]
  reg  s2_req_prio_2; // @[Reg.scala 19:16]
  reg [2:0] s2_req_opcode; // @[Reg.scala 19:16]
  reg [2:0] s2_req_param; // @[Reg.scala 19:16]
  reg [2:0] s2_req_size; // @[Reg.scala 19:16]
  reg [2:0] s2_req_source; // @[Reg.scala 19:16]
  reg [5:0] s2_req_put; // @[Reg.scala 19:16]
  reg [4:0] s2_req_sink; // @[Reg.scala 19:16]
  reg  s2_req_bad; // @[Reg.scala 19:16]
  reg  s2_last; // @[Reg.scala 19:16]
  reg  s2_need_r; // @[Reg.scala 19:16]
  reg  s2_need_pb; // @[Reg.scala 19:16]
  wire  _s2_need_d_T_1 = ~s1_need_pb | s1_first; // @[SourceD.scala 155:41]
  reg  s2_need_d; // @[Reg.scala 19:16]
  reg [63:0] s2_pdata_r_data; // @[Reg.scala 19:16]
  reg [7:0] s2_pdata_r_mask; // @[Reg.scala 19:16]
  reg  s2_pdata_r_corrupt; // @[Reg.scala 19:16]
  wire  s2_valid = s2_full & _s2_ready_T_2; // @[SourceD.scala 182:23]
  wire  _T_20 = s2_valid & s3_ready; // @[SourceD.scala 176:18]
  wire  _GEN_49 = s2_valid & s3_ready ? 1'h0 : s2_full; // @[SourceD.scala 146:24 176:{31,41}]
  wire  _GEN_51 = _T_13 | _GEN_49; // @[SourceD.scala 178:{19,29}]
  wire  _GEN_52 = _T_20 ? s2_beat : s3_beat; // @[Reg.scala 19:16 20:{18,22}]
  reg  s3_bypass; // @[Reg.scala 19:16]
  reg  s3_req_prio_0; // @[Reg.scala 19:16]
  reg  s3_req_prio_2; // @[Reg.scala 19:16]
  reg [2:0] s3_req_opcode; // @[Reg.scala 19:16]
  reg [2:0] s3_req_param; // @[Reg.scala 19:16]
  reg [2:0] s3_req_size; // @[Reg.scala 19:16]
  reg [2:0] s3_req_source; // @[Reg.scala 19:16]
  reg [4:0] s3_req_sink; // @[Reg.scala 19:16]
  reg  s3_req_bad; // @[Reg.scala 19:16]
  wire [2:0] _GEN_65 = _T_20 ? s2_req_set : s3_req_set; // @[Reg.scala 19:16 20:{18,22}]
  wire  _GEN_67 = _T_20 ? s2_req_way : s3_req_way; // @[Reg.scala 19:16 20:{18,22}]
  reg [63:0] s3_pdata_data; // @[Reg.scala 19:16]
  reg [7:0] s3_pdata_mask; // @[Reg.scala 19:16]
  reg  s3_pdata_corrupt; // @[Reg.scala 19:16]
  reg  s3_need_bs; // @[Reg.scala 19:16]
  reg  s3_need_r; // @[Reg.scala 19:16]
  wire  s3_acq = s3_req_opcode == 3'h6 | s3_req_opcode == 3'h7; // @[SourceD.scala 201:47]
  reg  s3_bypass_data_REG; // @[SourceD.scala 335:19]
  wire [63:0] _s3_bypass_data_T_9 = atomics_io_data_out; // @[SourceD.scala 206:78]
  reg [63:0] s3_bypass_data_REG_1; // @[SourceD.scala 335:66]
  wire [63:0] s3_bypass_data = s3_bypass_data_REG ? _s3_bypass_data_T_9 : s3_bypass_data_REG_1; // @[SourceD.scala 209:75]
  wire [63:0] _s3_rdata_T_2 = queue_io_deq_bits_data; // @[SourceD.scala 206:78]
  wire [2:0] grant = s3_req_param == 3'h2 ? 3'h4 : 3'h5; // @[SourceD.scala 213:18]
  wire [2:0] _GEN_78 = 3'h2 == s3_req_opcode ? 3'h1 : 3'h0; // @[SourceD.scala 221:{24,24}]
  wire [2:0] _GEN_79 = 3'h3 == s3_req_opcode ? 3'h1 : _GEN_78; // @[SourceD.scala 221:{24,24}]
  wire [2:0] _GEN_80 = 3'h4 == s3_req_opcode ? 3'h1 : _GEN_79; // @[SourceD.scala 221:{24,24}]
  wire [2:0] _GEN_81 = 3'h5 == s3_req_opcode ? 3'h2 : _GEN_80; // @[SourceD.scala 221:{24,24}]
  wire [2:0] _GEN_82 = 3'h6 == s3_req_opcode ? grant : _GEN_81; // @[SourceD.scala 221:{24,24}]
  wire [2:0] _GEN_83 = 3'h7 == s3_req_opcode ? 3'h4 : _GEN_82; // @[SourceD.scala 221:{24,24}]
  wire [2:0] d_bits_opcode = s3_req_prio_0 ? _GEN_83 : 3'h6; // @[SourceD.scala 221:24]
  wire [1:0] _d_bits_param_T_2 = s3_req_param != 3'h0 ? 2'h0 : 2'h1; // @[SourceD.scala 222:54]
  wire  s3_valid = s3_full & _s3_ready_T_2; // @[SourceD.scala 240:23]
  wire  _queue_io_deq_ready_T = s3_valid & s4_ready; // @[SourceD.scala 230:34]
  wire  _GEN_85 = _queue_io_deq_ready_T ? 1'h0 : s3_full; // @[SourceD.scala 189:24 234:{31,41}]
  wire  _GEN_87 = _T_20 | _GEN_85; // @[SourceD.scala 236:{19,29}]
  wire  s4_latch = s3_valid & s3_retires & s4_ready; // @[SourceD.scala 246:41]
  wire  _GEN_88 = s4_latch ? s3_beat : s4_beat; // @[Reg.scala 19:16 20:{18,22}]
  reg  s4_need_pb; // @[Reg.scala 19:16]
  reg  s4_req_prio_2; // @[Reg.scala 19:16]
  reg [2:0] s4_req_param; // @[Reg.scala 19:16]
  wire [2:0] _GEN_103 = s4_latch ? s3_req_set : s4_req_set; // @[Reg.scala 19:16 20:{18,22}]
  wire  _GEN_105 = s4_latch ? s3_req_way : s4_req_way; // @[Reg.scala 19:16 20:{18,22}]
  reg [2:0] s4_adjusted_opcode; // @[Reg.scala 19:16]
  reg [63:0] s4_pdata_data; // @[Reg.scala 19:16]
  reg [7:0] s4_pdata_mask; // @[Reg.scala 19:16]
  reg  s4_pdata_corrupt; // @[Reg.scala 19:16]
  reg [63:0] s4_rdata; // @[Reg.scala 19:16]
  wire  _T_78 = io_bs_wadr_ready | _s4_ready_T_4; // @[SourceD.scala 288:26]
  wire  _GEN_112 = io_bs_wadr_ready | _s4_ready_T_4 ? 1'h0 : s4_full; // @[SourceD.scala 247:24 288:{42,52}]
  wire  _GEN_113 = s4_latch | _GEN_112; // @[SourceD.scala 289:{19,29}]
  wire  retire = s4_full & _T_78; // @[SourceD.scala 298:24]
  reg [2:0] s5_req_set; // @[Reg.scala 19:16]
  reg  s5_req_way; // @[Reg.scala 19:16]
  wire [2:0] _GEN_125 = retire ? s4_req_set : s5_req_set; // @[Reg.scala 19:16 20:{18,22}]
  wire  _GEN_127 = retire ? s4_req_way : s5_req_way; // @[Reg.scala 19:16 20:{18,22}]
  reg  s5_beat; // @[Reg.scala 19:16]
  wire  _GEN_129 = retire ? s4_beat : s5_beat; // @[Reg.scala 19:16 20:{18,22}]
  reg [63:0] s5_dat; // @[Reg.scala 19:16]
  reg [2:0] s6_req_set; // @[Reg.scala 19:16]
  reg  s6_req_way; // @[Reg.scala 19:16]
  wire [2:0] _GEN_142 = retire ? s5_req_set : s6_req_set; // @[Reg.scala 19:16 20:{18,22}]
  wire  _GEN_144 = retire ? s5_req_way : s6_req_way; // @[Reg.scala 19:16 20:{18,22}]
  reg  s6_beat; // @[Reg.scala 19:16]
  wire  _GEN_146 = retire ? s5_beat : s6_beat; // @[Reg.scala 19:16 20:{18,22}]
  reg [63:0] s6_dat; // @[Reg.scala 19:16]
  reg [63:0] s7_dat; // @[Reg.scala 19:16]
  wire  pre_s4_full = s4_latch | ~_T_78 & s4_full; // @[SourceD.scala 324:30]
  wire  pre_s3_5_match = _GEN_125 == _GEN_65 & _GEN_127 == _GEN_67 & _GEN_129 == _GEN_52; // @[SourceD.scala 327:96]
  wire  pre_s3_6_match = _GEN_142 == _GEN_65 & _GEN_144 == _GEN_67 & _GEN_146 == _GEN_52; // @[SourceD.scala 328:96]
  wire  _io_evict_safe_T_9 = _s2_ready_T | io_evict_req_way != s2_req_way | io_evict_req_set != s2_req_set; // @[SourceD.scala 375:54]
  wire  _io_evict_safe_T_10 = (_s1_req_reg_T | io_evict_req_way != s1_req_reg_way | io_evict_req_set != s1_req_reg_set)
     & _io_evict_safe_T_9; // @[SourceD.scala 374:94]
  wire  _io_evict_safe_T_15 = _s3_ready_T | io_evict_req_way != s3_req_way | io_evict_req_set != s3_req_set; // @[SourceD.scala 376:54]
  wire  _io_evict_safe_T_16 = _io_evict_safe_T_10 & _io_evict_safe_T_15; // @[SourceD.scala 375:90]
  wire  _io_evict_safe_T_21 = _s4_ready_T_1 | io_evict_req_way != s4_req_way | io_evict_req_set != s4_req_set; // @[SourceD.scala 377:54]
  wire  _io_grant_safe_T_9 = _s2_ready_T | io_grant_req_way != s2_req_way | io_grant_req_set != s2_req_set; // @[SourceD.scala 382:54]
  wire  _io_grant_safe_T_10 = (_s1_req_reg_T | io_grant_req_way != s1_req_reg_way | io_grant_req_set != s1_req_reg_set)
     & _io_grant_safe_T_9; // @[SourceD.scala 381:94]
  wire  _io_grant_safe_T_15 = _s3_ready_T | io_grant_req_way != s3_req_way | io_grant_req_set != s3_req_set; // @[SourceD.scala 383:54]
  wire  _io_grant_safe_T_16 = _io_grant_safe_T_10 & _io_grant_safe_T_15; // @[SourceD.scala 382:90]
  wire  _io_grant_safe_T_21 = _s4_ready_T_1 | io_grant_req_way != s4_req_way | io_grant_req_set != s4_req_set; // @[SourceD.scala 384:54]
  QueueCompatibility_1 queue ( // @[SourceD.scala 119:21]
    .clock(queue_clock),
    .reset(queue_reset),
    .io_enq_ready(queue_io_enq_ready),
    .io_enq_valid(queue_io_enq_valid),
    .io_enq_bits_data(queue_io_enq_bits_data),
    .io_deq_ready(queue_io_deq_ready),
    .io_deq_valid(queue_io_deq_valid),
    .io_deq_bits_data(queue_io_deq_bits_data)
  );
  Atomics atomics ( // @[SourceD.scala 257:23]
    .io_write(atomics_io_write),
    .io_a_opcode(atomics_io_a_opcode),
    .io_a_param(atomics_io_a_param),
    .io_a_mask(atomics_io_a_mask),
    .io_a_data(atomics_io_a_data),
    .io_data_in(atomics_io_data_in),
    .io_data_out(atomics_io_data_out)
  );
  assign io_req_ready = ~busy; // @[SourceD.scala 139:19]
  assign io_d_valid = s3_valid_d; // @[SourceD.scala 217:15 220:11]
  assign io_d_bits_opcode = s3_req_prio_0 ? _GEN_83 : 3'h6; // @[SourceD.scala 221:24]
  assign io_d_bits_param = s3_req_prio_0 & s3_acq ? _d_bits_param_T_2 : 2'h0; // @[SourceD.scala 222:24]
  assign io_d_bits_size = s3_req_size; // @[SourceD.scala 217:15 223:18]
  assign io_d_bits_source = s3_req_source; // @[SourceD.scala 217:15 224:18]
  assign io_d_bits_sink = s3_req_sink; // @[SourceD.scala 217:15 225:18]
  assign io_d_bits_denied = s3_req_bad; // @[SourceD.scala 217:15 226:18]
  assign io_d_bits_data = s3_bypass ? s3_bypass_data : _s3_rdata_T_2; // @[SourceD.scala 209:75]
  assign io_d_bits_corrupt = s3_req_bad & d_bits_opcode[0]; // @[SourceD.scala 228:32]
  assign io_pb_pop_valid = s2_valid_pb & s2_req_prio_0; // @[SourceD.scala 163:34]
  assign io_pb_pop_bits_index = s2_req_put; // @[SourceD.scala 164:24]
  assign io_pb_pop_bits_last = s2_last; // @[SourceD.scala 165:24]
  assign io_rel_pop_valid = s2_valid_pb & ~s2_req_prio_0; // @[SourceD.scala 166:35]
  assign io_rel_pop_bits_index = s2_req_put; // @[SourceD.scala 167:25]
  assign io_rel_pop_bits_last = s2_last; // @[SourceD.scala 168:25]
  assign io_bs_radr_valid = _s1_latch_bypass_T & s1_need_r & ~s1_block_r; // @[SourceD.scala 95:56]
  assign io_bs_radr_bits_way = _s1_req_reg_T ? io_req_bits_way : s1_req_reg_way; // @[SourceD.scala 87:19]
  assign io_bs_radr_bits_set = _s1_req_reg_T ? io_req_bits_set : s1_req_reg_set; // @[SourceD.scala 87:19]
  assign io_bs_radr_bits_beat = s1_req_offset[3] | s1_counter; // @[SourceD.scala 101:56]
  assign io_bs_radr_bits_mask = ~_GEN_15; // @[SourceD.scala 91:78]
  assign io_bs_wadr_valid = s4_full & s4_need_bs; // @[SourceD.scala 268:31]
  assign io_bs_wadr_bits_way = s4_req_way; // @[SourceD.scala 270:24]
  assign io_bs_wadr_bits_set = s4_req_set; // @[SourceD.scala 271:24]
  assign io_bs_wadr_bits_beat = s4_beat; // @[SourceD.scala 272:24]
  assign io_bs_wadr_bits_mask = s4_pdata_mask[0] | s4_pdata_mask[1] | s4_pdata_mask[2] | s4_pdata_mask[3] |
    s4_pdata_mask[4] | s4_pdata_mask[5] | s4_pdata_mask[6] | s4_pdata_mask[7]; // @[SourceD.scala 273:87]
  assign io_bs_wdat_data = atomics_io_data_out; // @[SourceD.scala 274:19]
  assign io_evict_safe = _io_evict_safe_T_16 & _io_evict_safe_T_21; // @[SourceD.scala 376:90]
  assign io_grant_safe = _io_grant_safe_T_16 & _io_grant_safe_T_21; // @[SourceD.scala 383:90]
  assign queue_clock = clock;
  assign queue_reset = reset;
  assign queue_io_enq_valid = queue_io_enq_valid_REG_1; // @[SourceD.scala 120:22]
  assign queue_io_enq_bits_data = io_bs_rdat_data; // @[SourceD.scala 121:21]
  assign queue_io_deq_ready = s3_valid & s4_ready & s3_need_r; // @[SourceD.scala 230:46]
  assign atomics_io_write = s4_req_prio_2; // @[SourceD.scala 258:24]
  assign atomics_io_a_opcode = s4_adjusted_opcode; // @[SourceD.scala 259:24]
  assign atomics_io_a_param = s4_req_param; // @[SourceD.scala 260:24]
  assign atomics_io_a_mask = s4_pdata_mask; // @[SourceD.scala 264:24]
  assign atomics_io_a_data = s4_pdata_data; // @[SourceD.scala 265:24]
  assign atomics_io_data_in = s4_rdata; // @[SourceD.scala 266:24]
  always @(posedge clock) begin
    if (reset) begin // @[SourceD.scala 83:21]
      busy <= 1'h0; // @[SourceD.scala 83:21]
    end else if (s1_valid & s2_ready) begin // @[SourceD.scala 128:31]
      if (s1_last) begin // @[SourceD.scala 131:20]
        busy <= 1'h0; // @[SourceD.scala 133:12]
      end else begin
        busy <= _GEN_17;
      end
    end else begin
      busy <= _GEN_17;
    end
    if (reset) begin // @[SourceD.scala 84:27]
      s1_block_r <= 1'h0; // @[SourceD.scala 84:27]
    end else if (s1_valid & s2_ready) begin // @[SourceD.scala 128:31]
      s1_block_r <= 1'h0; // @[SourceD.scala 130:16]
    end else begin
      s1_block_r <= _GEN_16;
    end
    if (reset) begin // @[SourceD.scala 85:27]
      s1_counter <= 1'h0; // @[SourceD.scala 85:27]
    end else if (s1_valid & s2_ready) begin // @[SourceD.scala 128:31]
      if (s1_last) begin // @[SourceD.scala 131:20]
        s1_counter <= 1'h0; // @[SourceD.scala 132:18]
      end else begin
        s1_counter <= s1_counter + 1'h1; // @[SourceD.scala 129:16]
      end
    end
    if (_s1_req_reg_T_1) begin // @[Reg.scala 20:18]
      s1_req_reg_prio_0 <= io_req_bits_prio_0; // @[Reg.scala 20:22]
    end
    if (_s1_req_reg_T_1) begin // @[Reg.scala 20:18]
      s1_req_reg_prio_2 <= io_req_bits_prio_2; // @[Reg.scala 20:22]
    end
    if (_s1_req_reg_T_1) begin // @[Reg.scala 20:18]
      s1_req_reg_opcode <= io_req_bits_opcode; // @[Reg.scala 20:22]
    end
    if (_s1_req_reg_T_1) begin // @[Reg.scala 20:18]
      s1_req_reg_param <= io_req_bits_param; // @[Reg.scala 20:22]
    end
    if (_s1_req_reg_T_1) begin // @[Reg.scala 20:18]
      s1_req_reg_size <= io_req_bits_size; // @[Reg.scala 20:22]
    end
    if (_s1_req_reg_T_1) begin // @[Reg.scala 20:18]
      s1_req_reg_source <= io_req_bits_source; // @[Reg.scala 20:22]
    end
    if (_s1_req_reg_T_1) begin // @[Reg.scala 20:18]
      s1_req_reg_offset <= io_req_bits_offset; // @[Reg.scala 20:22]
    end
    if (_s1_req_reg_T_1) begin // @[Reg.scala 20:18]
      s1_req_reg_put <= io_req_bits_put; // @[Reg.scala 20:22]
    end
    if (_s1_req_reg_T_1) begin // @[Reg.scala 20:18]
      s1_req_reg_set <= io_req_bits_set; // @[Reg.scala 20:22]
    end
    if (_s1_req_reg_T_1) begin // @[Reg.scala 20:18]
      s1_req_reg_sink <= io_req_bits_sink; // @[Reg.scala 20:22]
    end
    if (_s1_req_reg_T_1) begin // @[Reg.scala 20:18]
      s1_req_reg_way <= io_req_bits_way; // @[Reg.scala 20:22]
    end
    if (_s1_req_reg_T_1) begin // @[Reg.scala 20:18]
      s1_req_reg_bad <= io_req_bits_bad; // @[Reg.scala 20:22]
    end
    if (reset) begin // @[SourceD.scala 146:24]
      s2_full <= 1'h0; // @[SourceD.scala 146:24]
    end else begin
      s2_full <= _GEN_51;
    end
    if (reset) begin // @[SourceD.scala 189:24]
      s3_full <= 1'h0; // @[SourceD.scala 189:24]
    end else begin
      s3_full <= _GEN_87;
    end
    if (_T_20) begin // @[Reg.scala 20:18]
      s3_retires <= s2_retires; // @[Reg.scala 20:22]
    end
    if (reset) begin // @[SourceD.scala 247:24]
      s4_full <= 1'h0; // @[SourceD.scala 247:24]
    end else begin
      s4_full <= _GEN_113;
    end
    if (s4_latch) begin // @[Reg.scala 20:18]
      s4_need_bs <= s3_need_bs; // @[Reg.scala 20:22]
    end
    if (reset) begin // @[SourceD.scala 190:27]
      s3_valid_d <= 1'h0; // @[SourceD.scala 190:27]
    end else if (_T_20) begin // @[SourceD.scala 235:19]
      s3_valid_d <= s2_need_d; // @[SourceD.scala 235:32]
    end else if (io_d_ready) begin // @[SourceD.scala 233:18]
      s3_valid_d <= 1'h0; // @[SourceD.scala 233:31]
    end
    if (reset) begin // @[SourceD.scala 147:28]
      s2_valid_pb <= 1'h0; // @[SourceD.scala 147:28]
    end else if (_T_13) begin // @[SourceD.scala 177:19]
      if (s1_req_prio_0) begin // @[SourceD.scala 96:23]
        s2_valid_pb <= ~s1_req_opcode[2];
      end else begin
        s2_valid_pb <= s1_req_opcode[0];
      end
    end else if (pb_ready) begin // @[SourceD.scala 175:19]
      s2_valid_pb <= 1'h0; // @[SourceD.scala 175:33]
    end
    if (_T_13) begin // @[Reg.scala 20:18]
      if (_s1_req_reg_T) begin // @[SourceD.scala 87:19]
        s2_req_prio_0 <= io_req_bits_prio_0;
      end else begin
        s2_req_prio_0 <= s1_req_reg_prio_0;
      end
    end
    s1_latch_bypass <= ~(busy | io_req_valid) | s2_ready; // @[SourceD.scala 89:57]
    if (s1_latch_bypass) begin // @[Reg.scala 20:18]
      s1_bypass_r <= s1_x_bypass; // @[Reg.scala 20:22]
    end
    if (_T_13) begin // @[Reg.scala 20:18]
      if (_s1_req_reg_T) begin // @[SourceD.scala 87:19]
        s2_req_set <= io_req_bits_set;
      end else begin
        s2_req_set <= s1_req_reg_set;
      end
    end
    if (_T_13) begin // @[Reg.scala 20:18]
      if (_s1_req_reg_T) begin // @[SourceD.scala 87:19]
        s2_req_way <= io_req_bits_way;
      end else begin
        s2_req_way <= s1_req_reg_way;
      end
    end
    if (_T_13) begin // @[Reg.scala 20:18]
      s2_beat <= s1_beat; // @[Reg.scala 20:22]
    end
    if (_T_13) begin // @[Reg.scala 20:18]
      s2_retires <= s1_retires; // @[Reg.scala 20:22]
    end
    if (_T_20) begin // @[Reg.scala 20:18]
      s3_req_set <= s2_req_set; // @[Reg.scala 20:22]
    end
    if (_T_20) begin // @[Reg.scala 20:18]
      s3_req_way <= s2_req_way; // @[Reg.scala 20:22]
    end
    if (_T_20) begin // @[Reg.scala 20:18]
      s3_beat <= s2_beat; // @[Reg.scala 20:22]
    end
    if (s4_latch) begin // @[Reg.scala 20:18]
      s4_req_set <= s3_req_set; // @[Reg.scala 20:22]
    end
    if (s4_latch) begin // @[Reg.scala 20:18]
      s4_req_way <= s3_req_way; // @[Reg.scala 20:22]
    end
    if (s4_latch) begin // @[Reg.scala 20:18]
      s4_beat <= s3_beat; // @[Reg.scala 20:22]
    end
    queue_io_enq_valid_REG <= io_bs_radr_ready & io_bs_radr_valid; // @[Decoupled.scala 52:35]
    queue_io_enq_valid_REG_1 <= queue_io_enq_valid_REG; // @[SourceD.scala 120:32]
    if (_T_13) begin // @[Reg.scala 20:18]
      if (s1_latch_bypass) begin // @[Reg.scala 20:18]
        s2_bypass <= s1_x_bypass; // @[Reg.scala 20:22]
      end else begin
        s2_bypass <= s1_bypass_r; // @[Reg.scala 19:16]
      end
    end
    if (_T_13) begin // @[Reg.scala 20:18]
      if (_s1_req_reg_T) begin // @[SourceD.scala 87:19]
        s2_req_prio_2 <= io_req_bits_prio_2;
      end else begin
        s2_req_prio_2 <= s1_req_reg_prio_2;
      end
    end
    if (_T_13) begin // @[Reg.scala 20:18]
      if (_s1_req_reg_T) begin // @[SourceD.scala 87:19]
        s2_req_opcode <= io_req_bits_opcode;
      end else begin
        s2_req_opcode <= s1_req_reg_opcode;
      end
    end
    if (_T_13) begin // @[Reg.scala 20:18]
      if (_s1_req_reg_T) begin // @[SourceD.scala 87:19]
        s2_req_param <= io_req_bits_param;
      end else begin
        s2_req_param <= s1_req_reg_param;
      end
    end
    if (_T_13) begin // @[Reg.scala 20:18]
      if (_s1_req_reg_T) begin // @[SourceD.scala 87:19]
        s2_req_size <= io_req_bits_size;
      end else begin
        s2_req_size <= s1_req_reg_size;
      end
    end
    if (_T_13) begin // @[Reg.scala 20:18]
      if (_s1_req_reg_T) begin // @[SourceD.scala 87:19]
        s2_req_source <= io_req_bits_source;
      end else begin
        s2_req_source <= s1_req_reg_source;
      end
    end
    if (_T_13) begin // @[Reg.scala 20:18]
      if (_s1_req_reg_T) begin // @[SourceD.scala 87:19]
        s2_req_put <= io_req_bits_put;
      end else begin
        s2_req_put <= s1_req_reg_put;
      end
    end
    if (_T_13) begin // @[Reg.scala 20:18]
      if (_s1_req_reg_T) begin // @[SourceD.scala 87:19]
        s2_req_sink <= io_req_bits_sink;
      end else begin
        s2_req_sink <= s1_req_reg_sink;
      end
    end
    if (_T_13) begin // @[Reg.scala 20:18]
      if (_s1_req_reg_T) begin // @[SourceD.scala 87:19]
        s2_req_bad <= io_req_bits_bad;
      end else begin
        s2_req_bad <= s1_req_reg_bad;
      end
    end
    if (_T_13) begin // @[Reg.scala 20:18]
      s2_last <= s1_last; // @[Reg.scala 20:22]
    end
    if (_T_13) begin // @[Reg.scala 20:18]
      s2_need_r <= s1_need_r; // @[Reg.scala 20:22]
    end
    if (_T_13) begin // @[Reg.scala 20:18]
      if (s1_req_prio_0) begin // @[SourceD.scala 96:23]
        s2_need_pb <= ~s1_req_opcode[2];
      end else begin
        s2_need_pb <= s1_req_opcode[0];
      end
    end
    if (_T_13) begin // @[Reg.scala 20:18]
      s2_need_d <= _s2_need_d_T_1; // @[Reg.scala 20:22]
    end
    if (s2_valid_pb) begin // @[Reg.scala 20:18]
      if (s2_req_prio_0) begin // @[SourceD.scala 159:30]
        s2_pdata_r_data <= io_pb_beat_data;
      end else begin
        s2_pdata_r_data <= io_rel_beat_data;
      end
    end
    if (s2_valid_pb) begin // @[Reg.scala 20:18]
      if (s2_req_prio_0) begin // @[SourceD.scala 160:30]
        s2_pdata_r_mask <= io_pb_beat_mask;
      end else begin
        s2_pdata_r_mask <= 8'hff;
      end
    end
    if (s2_valid_pb) begin // @[Reg.scala 20:18]
      if (s2_req_prio_0) begin // @[SourceD.scala 161:30]
        s2_pdata_r_corrupt <= io_pb_beat_corrupt;
      end else begin
        s2_pdata_r_corrupt <= io_rel_beat_corrupt;
      end
    end
    if (_T_20) begin // @[Reg.scala 20:18]
      s3_bypass <= s2_bypass; // @[Reg.scala 20:22]
    end
    if (_T_20) begin // @[Reg.scala 20:18]
      s3_req_prio_0 <= s2_req_prio_0; // @[Reg.scala 20:22]
    end
    if (_T_20) begin // @[Reg.scala 20:18]
      s3_req_prio_2 <= s2_req_prio_2; // @[Reg.scala 20:22]
    end
    if (_T_20) begin // @[Reg.scala 20:18]
      s3_req_opcode <= s2_req_opcode; // @[Reg.scala 20:22]
    end
    if (_T_20) begin // @[Reg.scala 20:18]
      s3_req_param <= s2_req_param; // @[Reg.scala 20:22]
    end
    if (_T_20) begin // @[Reg.scala 20:18]
      s3_req_size <= s2_req_size; // @[Reg.scala 20:22]
    end
    if (_T_20) begin // @[Reg.scala 20:18]
      s3_req_source <= s2_req_source; // @[Reg.scala 20:22]
    end
    if (_T_20) begin // @[Reg.scala 20:18]
      s3_req_sink <= s2_req_sink; // @[Reg.scala 20:22]
    end
    if (_T_20) begin // @[Reg.scala 20:18]
      s3_req_bad <= s2_req_bad; // @[Reg.scala 20:22]
    end
    if (_T_20) begin // @[Reg.scala 20:18]
      if (s2_valid_pb) begin // @[Reg.scala 20:18]
        if (s2_req_prio_0) begin // @[SourceD.scala 159:30]
          s3_pdata_data <= io_pb_beat_data;
        end else begin
          s3_pdata_data <= io_rel_beat_data;
        end
      end else begin
        s3_pdata_data <= s2_pdata_r_data; // @[Reg.scala 19:16]
      end
    end
    if (_T_20) begin // @[Reg.scala 20:18]
      if (s2_valid_pb) begin // @[Reg.scala 20:18]
        if (s2_req_prio_0) begin // @[SourceD.scala 160:30]
          s3_pdata_mask <= io_pb_beat_mask;
        end else begin
          s3_pdata_mask <= 8'hff;
        end
      end else begin
        s3_pdata_mask <= s2_pdata_r_mask; // @[Reg.scala 19:16]
      end
    end
    if (_T_20) begin // @[Reg.scala 20:18]
      if (s2_valid_pb) begin // @[Reg.scala 20:18]
        if (s2_req_prio_0) begin // @[SourceD.scala 161:30]
          s3_pdata_corrupt <= io_pb_beat_corrupt;
        end else begin
          s3_pdata_corrupt <= io_rel_beat_corrupt;
        end
      end else begin
        s3_pdata_corrupt <= s2_pdata_r_corrupt; // @[Reg.scala 19:16]
      end
    end
    if (_T_20) begin // @[Reg.scala 20:18]
      s3_need_bs <= s2_need_pb; // @[Reg.scala 20:22]
    end
    if (_T_20) begin // @[Reg.scala 20:18]
      s3_need_r <= s2_need_r; // @[Reg.scala 20:22]
    end
    s3_bypass_data_REG <= _GEN_103 == _GEN_65 & _GEN_105 == _GEN_67 & _GEN_88 == _GEN_52 & pre_s4_full; // @[SourceD.scala 326:127]
    if (pre_s3_5_match) begin // @[SourceD.scala 209:75]
      if (retire) begin // @[Reg.scala 20:18]
        s3_bypass_data_REG_1 <= atomics_io_data_out; // @[Reg.scala 20:22]
      end else begin
        s3_bypass_data_REG_1 <= s5_dat; // @[Reg.scala 19:16]
      end
    end else if (pre_s3_6_match) begin // @[SourceD.scala 209:75]
      if (retire) begin // @[Reg.scala 20:18]
        s3_bypass_data_REG_1 <= s5_dat; // @[Reg.scala 20:22]
      end else begin
        s3_bypass_data_REG_1 <= s6_dat; // @[Reg.scala 19:16]
      end
    end else if (retire) begin // @[Reg.scala 20:18]
      s3_bypass_data_REG_1 <= s6_dat; // @[Reg.scala 20:22]
    end else begin
      s3_bypass_data_REG_1 <= s7_dat; // @[Reg.scala 19:16]
    end
    if (s4_latch) begin // @[Reg.scala 20:18]
      s4_need_pb <= s3_need_bs; // @[Reg.scala 20:22]
    end
    if (s4_latch) begin // @[Reg.scala 20:18]
      s4_req_prio_2 <= s3_req_prio_2; // @[Reg.scala 20:22]
    end
    if (s4_latch) begin // @[Reg.scala 20:18]
      s4_req_param <= s3_req_param; // @[Reg.scala 20:22]
    end
    if (s4_latch) begin // @[Reg.scala 20:18]
      if (s3_req_bad) begin // @[SourceD.scala 194:31]
        s4_adjusted_opcode <= 3'h4;
      end else begin
        s4_adjusted_opcode <= s3_req_opcode;
      end
    end
    if (s4_latch) begin // @[Reg.scala 20:18]
      s4_pdata_data <= s3_pdata_data; // @[Reg.scala 20:22]
    end
    if (s4_latch) begin // @[Reg.scala 20:18]
      s4_pdata_mask <= s3_pdata_mask; // @[Reg.scala 20:22]
    end
    if (s4_latch) begin // @[Reg.scala 20:18]
      s4_pdata_corrupt <= s3_pdata_corrupt; // @[Reg.scala 20:22]
    end
    if (s4_latch) begin // @[Reg.scala 20:18]
      if (s3_bypass) begin // @[SourceD.scala 209:75]
        if (s3_bypass_data_REG) begin // @[SourceD.scala 209:75]
          s4_rdata <= _s3_bypass_data_T_9;
        end else begin
          s4_rdata <= s3_bypass_data_REG_1;
        end
      end else begin
        s4_rdata <= _s3_rdata_T_2;
      end
    end
    if (retire) begin // @[Reg.scala 20:18]
      s5_req_set <= s4_req_set; // @[Reg.scala 20:22]
    end
    if (retire) begin // @[Reg.scala 20:18]
      s5_req_way <= s4_req_way; // @[Reg.scala 20:22]
    end
    if (retire) begin // @[Reg.scala 20:18]
      s5_beat <= s4_beat; // @[Reg.scala 20:22]
    end
    if (retire) begin // @[Reg.scala 20:18]
      s5_dat <= atomics_io_data_out; // @[Reg.scala 20:22]
    end
    if (retire) begin // @[Reg.scala 20:18]
      s6_req_set <= s5_req_set; // @[Reg.scala 20:22]
    end
    if (retire) begin // @[Reg.scala 20:18]
      s6_req_way <= s5_req_way; // @[Reg.scala 20:22]
    end
    if (retire) begin // @[Reg.scala 20:18]
      s6_beat <= s5_beat; // @[Reg.scala 20:22]
    end
    if (retire) begin // @[Reg.scala 20:18]
      s6_dat <= s5_dat; // @[Reg.scala 20:22]
    end
    if (retire) begin // @[Reg.scala 20:18]
      s7_dat <= s6_dat; // @[Reg.scala 20:22]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~queue_io_enq_valid | queue_io_enq_ready)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at SourceD.scala:122 assert (!queue.io.enq.valid || queue.io.enq.ready)\n"); // @[SourceD.scala 122:10]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~queue_io_enq_valid | queue_io_enq_ready) & ~reset) begin
          $fatal; // @[SourceD.scala 122:10]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_9 & ~(_s3_ready_T | ~s3_need_r | queue_io_deq_valid)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at SourceD.scala:231 assert (!s3_full || !s3_need_r || queue.io.deq.valid)\n"); // @[SourceD.scala 231:10]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_s3_ready_T | ~s3_need_r | queue_io_deq_valid) & _T_9) begin
          $fatal; // @[SourceD.scala 231:10]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_9 & ~(~(s4_full & s4_need_pb & s4_pdata_corrupt))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Data poisoning unsupported\n    at SourceD.scala:275 assert (!(s4_full && s4_need_pb && s4_pdata.corrupt), \"Data poisoning unsupported\")\n"
            ); // @[SourceD.scala 275:10]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(s4_full & s4_need_pb & s4_pdata_corrupt)) & _T_9) begin
          $fatal; // @[SourceD.scala 275:10]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  busy = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  s1_block_r = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  s1_counter = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  s1_req_reg_prio_0 = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  s1_req_reg_prio_2 = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  s1_req_reg_opcode = _RAND_5[2:0];
  _RAND_6 = {1{`RANDOM}};
  s1_req_reg_param = _RAND_6[2:0];
  _RAND_7 = {1{`RANDOM}};
  s1_req_reg_size = _RAND_7[2:0];
  _RAND_8 = {1{`RANDOM}};
  s1_req_reg_source = _RAND_8[2:0];
  _RAND_9 = {1{`RANDOM}};
  s1_req_reg_offset = _RAND_9[3:0];
  _RAND_10 = {1{`RANDOM}};
  s1_req_reg_put = _RAND_10[5:0];
  _RAND_11 = {1{`RANDOM}};
  s1_req_reg_set = _RAND_11[2:0];
  _RAND_12 = {1{`RANDOM}};
  s1_req_reg_sink = _RAND_12[4:0];
  _RAND_13 = {1{`RANDOM}};
  s1_req_reg_way = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  s1_req_reg_bad = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  s2_full = _RAND_15[0:0];
  _RAND_16 = {1{`RANDOM}};
  s3_full = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  s3_retires = _RAND_17[0:0];
  _RAND_18 = {1{`RANDOM}};
  s4_full = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  s4_need_bs = _RAND_19[0:0];
  _RAND_20 = {1{`RANDOM}};
  s3_valid_d = _RAND_20[0:0];
  _RAND_21 = {1{`RANDOM}};
  s2_valid_pb = _RAND_21[0:0];
  _RAND_22 = {1{`RANDOM}};
  s2_req_prio_0 = _RAND_22[0:0];
  _RAND_23 = {1{`RANDOM}};
  s1_latch_bypass = _RAND_23[0:0];
  _RAND_24 = {1{`RANDOM}};
  s1_bypass_r = _RAND_24[0:0];
  _RAND_25 = {1{`RANDOM}};
  s2_req_set = _RAND_25[2:0];
  _RAND_26 = {1{`RANDOM}};
  s2_req_way = _RAND_26[0:0];
  _RAND_27 = {1{`RANDOM}};
  s2_beat = _RAND_27[0:0];
  _RAND_28 = {1{`RANDOM}};
  s2_retires = _RAND_28[0:0];
  _RAND_29 = {1{`RANDOM}};
  s3_req_set = _RAND_29[2:0];
  _RAND_30 = {1{`RANDOM}};
  s3_req_way = _RAND_30[0:0];
  _RAND_31 = {1{`RANDOM}};
  s3_beat = _RAND_31[0:0];
  _RAND_32 = {1{`RANDOM}};
  s4_req_set = _RAND_32[2:0];
  _RAND_33 = {1{`RANDOM}};
  s4_req_way = _RAND_33[0:0];
  _RAND_34 = {1{`RANDOM}};
  s4_beat = _RAND_34[0:0];
  _RAND_35 = {1{`RANDOM}};
  queue_io_enq_valid_REG = _RAND_35[0:0];
  _RAND_36 = {1{`RANDOM}};
  queue_io_enq_valid_REG_1 = _RAND_36[0:0];
  _RAND_37 = {1{`RANDOM}};
  s2_bypass = _RAND_37[0:0];
  _RAND_38 = {1{`RANDOM}};
  s2_req_prio_2 = _RAND_38[0:0];
  _RAND_39 = {1{`RANDOM}};
  s2_req_opcode = _RAND_39[2:0];
  _RAND_40 = {1{`RANDOM}};
  s2_req_param = _RAND_40[2:0];
  _RAND_41 = {1{`RANDOM}};
  s2_req_size = _RAND_41[2:0];
  _RAND_42 = {1{`RANDOM}};
  s2_req_source = _RAND_42[2:0];
  _RAND_43 = {1{`RANDOM}};
  s2_req_put = _RAND_43[5:0];
  _RAND_44 = {1{`RANDOM}};
  s2_req_sink = _RAND_44[4:0];
  _RAND_45 = {1{`RANDOM}};
  s2_req_bad = _RAND_45[0:0];
  _RAND_46 = {1{`RANDOM}};
  s2_last = _RAND_46[0:0];
  _RAND_47 = {1{`RANDOM}};
  s2_need_r = _RAND_47[0:0];
  _RAND_48 = {1{`RANDOM}};
  s2_need_pb = _RAND_48[0:0];
  _RAND_49 = {1{`RANDOM}};
  s2_need_d = _RAND_49[0:0];
  _RAND_50 = {2{`RANDOM}};
  s2_pdata_r_data = _RAND_50[63:0];
  _RAND_51 = {1{`RANDOM}};
  s2_pdata_r_mask = _RAND_51[7:0];
  _RAND_52 = {1{`RANDOM}};
  s2_pdata_r_corrupt = _RAND_52[0:0];
  _RAND_53 = {1{`RANDOM}};
  s3_bypass = _RAND_53[0:0];
  _RAND_54 = {1{`RANDOM}};
  s3_req_prio_0 = _RAND_54[0:0];
  _RAND_55 = {1{`RANDOM}};
  s3_req_prio_2 = _RAND_55[0:0];
  _RAND_56 = {1{`RANDOM}};
  s3_req_opcode = _RAND_56[2:0];
  _RAND_57 = {1{`RANDOM}};
  s3_req_param = _RAND_57[2:0];
  _RAND_58 = {1{`RANDOM}};
  s3_req_size = _RAND_58[2:0];
  _RAND_59 = {1{`RANDOM}};
  s3_req_source = _RAND_59[2:0];
  _RAND_60 = {1{`RANDOM}};
  s3_req_sink = _RAND_60[4:0];
  _RAND_61 = {1{`RANDOM}};
  s3_req_bad = _RAND_61[0:0];
  _RAND_62 = {2{`RANDOM}};
  s3_pdata_data = _RAND_62[63:0];
  _RAND_63 = {1{`RANDOM}};
  s3_pdata_mask = _RAND_63[7:0];
  _RAND_64 = {1{`RANDOM}};
  s3_pdata_corrupt = _RAND_64[0:0];
  _RAND_65 = {1{`RANDOM}};
  s3_need_bs = _RAND_65[0:0];
  _RAND_66 = {1{`RANDOM}};
  s3_need_r = _RAND_66[0:0];
  _RAND_67 = {1{`RANDOM}};
  s3_bypass_data_REG = _RAND_67[0:0];
  _RAND_68 = {2{`RANDOM}};
  s3_bypass_data_REG_1 = _RAND_68[63:0];
  _RAND_69 = {1{`RANDOM}};
  s4_need_pb = _RAND_69[0:0];
  _RAND_70 = {1{`RANDOM}};
  s4_req_prio_2 = _RAND_70[0:0];
  _RAND_71 = {1{`RANDOM}};
  s4_req_param = _RAND_71[2:0];
  _RAND_72 = {1{`RANDOM}};
  s4_adjusted_opcode = _RAND_72[2:0];
  _RAND_73 = {2{`RANDOM}};
  s4_pdata_data = _RAND_73[63:0];
  _RAND_74 = {1{`RANDOM}};
  s4_pdata_mask = _RAND_74[7:0];
  _RAND_75 = {1{`RANDOM}};
  s4_pdata_corrupt = _RAND_75[0:0];
  _RAND_76 = {2{`RANDOM}};
  s4_rdata = _RAND_76[63:0];
  _RAND_77 = {1{`RANDOM}};
  s5_req_set = _RAND_77[2:0];
  _RAND_78 = {1{`RANDOM}};
  s5_req_way = _RAND_78[0:0];
  _RAND_79 = {1{`RANDOM}};
  s5_beat = _RAND_79[0:0];
  _RAND_80 = {2{`RANDOM}};
  s5_dat = _RAND_80[63:0];
  _RAND_81 = {1{`RANDOM}};
  s6_req_set = _RAND_81[2:0];
  _RAND_82 = {1{`RANDOM}};
  s6_req_way = _RAND_82[0:0];
  _RAND_83 = {1{`RANDOM}};
  s6_beat = _RAND_83[0:0];
  _RAND_84 = {2{`RANDOM}};
  s6_dat = _RAND_84[63:0];
  _RAND_85 = {2{`RANDOM}};
  s7_dat = _RAND_85[63:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_24(
  input        clock,
  input        reset,
  output       io_enq_ready,
  input        io_enq_valid,
  input  [2:0] io_enq_bits_sink,
  output       io_deq_valid,
  output [2:0] io_deq_bits_sink
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
`endif // RANDOMIZE_REG_INIT
  reg [2:0] ram_sink [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_sink_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_sink_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_sink_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_sink_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_sink_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_sink_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_sink_MPORT_en; // @[Decoupled.scala 275:95]
  reg  enq_ptr_value; // @[Counter.scala 61:40]
  reg  deq_ptr_value; // @[Counter.scala 61:40]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  ptr_match = enq_ptr_value == deq_ptr_value; // @[Decoupled.scala 279:33]
  wire  empty = ptr_match & ~maybe_full; // @[Decoupled.scala 280:25]
  wire  full = ptr_match & maybe_full; // @[Decoupled.scala 281:24]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  assign ram_sink_io_deq_bits_MPORT_en = 1'h1;
  assign ram_sink_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_sink_io_deq_bits_MPORT_data = ram_sink[ram_sink_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_sink_MPORT_data = io_enq_bits_sink;
  assign ram_sink_MPORT_addr = enq_ptr_value;
  assign ram_sink_MPORT_mask = 1'h1;
  assign ram_sink_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = ~full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_sink = ram_sink_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_sink_MPORT_en & ram_sink_MPORT_mask) begin
      ram_sink[ram_sink_MPORT_addr] <= ram_sink_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Counter.scala 61:40]
      enq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_enq) begin // @[Decoupled.scala 288:16]
      enq_ptr_value <= enq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Counter.scala 61:40]
      deq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (io_deq_valid) begin // @[Decoupled.scala 292:16]
      deq_ptr_value <= deq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != io_deq_valid) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_sink[initvar] = _RAND_0[2:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_1 = {1{`RANDOM}};
  enq_ptr_value = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  deq_ptr_value = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  maybe_full = _RAND_3[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module SourceE(
  input        clock,
  input        reset,
  output       io_req_ready,
  input        io_req_valid,
  input  [2:0] io_req_bits_sink,
  output       io_e_valid,
  output [2:0] io_e_bits_sink
);
  wire  io_e_q_clock; // @[Decoupled.scala 377:21]
  wire  io_e_q_reset; // @[Decoupled.scala 377:21]
  wire  io_e_q_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  io_e_q_io_enq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] io_e_q_io_enq_bits_sink; // @[Decoupled.scala 377:21]
  wire  io_e_q_io_deq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] io_e_q_io_deq_bits_sink; // @[Decoupled.scala 377:21]
  Queue_24 io_e_q ( // @[Decoupled.scala 377:21]
    .clock(io_e_q_clock),
    .reset(io_e_q_reset),
    .io_enq_ready(io_e_q_io_enq_ready),
    .io_enq_valid(io_e_q_io_enq_valid),
    .io_enq_bits_sink(io_e_q_io_enq_bits_sink),
    .io_deq_valid(io_e_q_io_deq_valid),
    .io_deq_bits_sink(io_e_q_io_deq_bits_sink)
  );
  assign io_req_ready = io_e_q_io_enq_ready; // @[SourceE.scala 38:15 Decoupled.scala 381:17]
  assign io_e_valid = io_e_q_io_deq_valid; // @[SourceE.scala 39:8]
  assign io_e_bits_sink = io_e_q_io_deq_bits_sink; // @[SourceE.scala 39:8]
  assign io_e_q_clock = clock;
  assign io_e_q_reset = reset;
  assign io_e_q_io_enq_valid = io_req_valid; // @[SourceE.scala 38:15 42:11]
  assign io_e_q_io_enq_bits_sink = io_req_bits_sink; // @[SourceE.scala 38:15 44:15]
endmodule
module ListBuffer(
  input         clock,
  input         reset,
  output        io_push_ready,
  input         io_push_valid,
  input  [5:0]  io_push_bits_index,
  input  [63:0] io_push_bits_data_data,
  input  [7:0]  io_push_bits_data_mask,
  input         io_push_bits_data_corrupt,
  output [39:0] io_valid,
  input         io_pop_valid,
  input  [5:0]  io_pop_bits,
  output [63:0] io_data_data,
  output [7:0]  io_data_mask,
  output        io_data_corrupt
);
`ifdef RANDOMIZE_GARBAGE_ASSIGN
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_6;
  reg [63:0] _RAND_8;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_12;
`endif // RANDOMIZE_GARBAGE_ASSIGN
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_5;
  reg [63:0] _RAND_7;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_11;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [63:0] _RAND_13;
  reg [63:0] _RAND_14;
`endif // RANDOMIZE_REG_INIT
  reg [5:0] head [0:39]; // @[ListBuffer.scala 46:18]
  wire  head_pop_head_en; // @[ListBuffer.scala 46:18]
  wire [5:0] head_pop_head_addr; // @[ListBuffer.scala 46:18]
  wire [5:0] head_pop_head_data; // @[ListBuffer.scala 46:18]
  wire [5:0] head_MPORT_2_data; // @[ListBuffer.scala 46:18]
  wire [5:0] head_MPORT_2_addr; // @[ListBuffer.scala 46:18]
  wire  head_MPORT_2_mask; // @[ListBuffer.scala 46:18]
  wire  head_MPORT_2_en; // @[ListBuffer.scala 46:18]
  wire [5:0] head_MPORT_6_data; // @[ListBuffer.scala 46:18]
  wire [5:0] head_MPORT_6_addr; // @[ListBuffer.scala 46:18]
  wire  head_MPORT_6_mask; // @[ListBuffer.scala 46:18]
  wire  head_MPORT_6_en; // @[ListBuffer.scala 46:18]
  reg [5:0] tail [0:39]; // @[ListBuffer.scala 47:18]
  wire  tail_push_tail_en; // @[ListBuffer.scala 47:18]
  wire [5:0] tail_push_tail_addr; // @[ListBuffer.scala 47:18]
  wire [5:0] tail_push_tail_data; // @[ListBuffer.scala 47:18]
  wire  tail_MPORT_4_en; // @[ListBuffer.scala 47:18]
  wire [5:0] tail_MPORT_4_addr; // @[ListBuffer.scala 47:18]
  wire [5:0] tail_MPORT_4_data; // @[ListBuffer.scala 47:18]
  wire [5:0] tail_MPORT_3_data; // @[ListBuffer.scala 47:18]
  wire [5:0] tail_MPORT_3_addr; // @[ListBuffer.scala 47:18]
  wire  tail_MPORT_3_mask; // @[ListBuffer.scala 47:18]
  wire  tail_MPORT_3_en; // @[ListBuffer.scala 47:18]
  reg [5:0] next [0:39]; // @[ListBuffer.scala 49:18]
  wire  next_MPORT_5_en; // @[ListBuffer.scala 49:18]
  wire [5:0] next_MPORT_5_addr; // @[ListBuffer.scala 49:18]
  wire [5:0] next_MPORT_5_data; // @[ListBuffer.scala 49:18]
  wire [5:0] next_MPORT_1_data; // @[ListBuffer.scala 49:18]
  wire [5:0] next_MPORT_1_addr; // @[ListBuffer.scala 49:18]
  wire  next_MPORT_1_mask; // @[ListBuffer.scala 49:18]
  wire  next_MPORT_1_en; // @[ListBuffer.scala 49:18]
  reg [63:0] data_data [0:39]; // @[ListBuffer.scala 50:18]
  wire  data_data_io_data_MPORT_en; // @[ListBuffer.scala 50:18]
  wire [5:0] data_data_io_data_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire [63:0] data_data_io_data_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [63:0] data_data_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [5:0] data_data_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire  data_data_MPORT_mask; // @[ListBuffer.scala 50:18]
  wire  data_data_MPORT_en; // @[ListBuffer.scala 50:18]
  reg [7:0] data_mask [0:39]; // @[ListBuffer.scala 50:18]
  wire  data_mask_io_data_MPORT_en; // @[ListBuffer.scala 50:18]
  wire [5:0] data_mask_io_data_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire [7:0] data_mask_io_data_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [7:0] data_mask_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [5:0] data_mask_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire  data_mask_MPORT_mask; // @[ListBuffer.scala 50:18]
  wire  data_mask_MPORT_en; // @[ListBuffer.scala 50:18]
  reg  data_corrupt [0:39]; // @[ListBuffer.scala 50:18]
  wire  data_corrupt_io_data_MPORT_en; // @[ListBuffer.scala 50:18]
  wire [5:0] data_corrupt_io_data_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire  data_corrupt_io_data_MPORT_data; // @[ListBuffer.scala 50:18]
  wire  data_corrupt_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [5:0] data_corrupt_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire  data_corrupt_MPORT_mask; // @[ListBuffer.scala 50:18]
  wire  data_corrupt_MPORT_en; // @[ListBuffer.scala 50:18]
  reg [39:0] valid; // @[ListBuffer.scala 45:22]
  reg [39:0] used; // @[ListBuffer.scala 48:22]
  wire [39:0] _freeOH_T = ~used; // @[ListBuffer.scala 52:25]
  wire [40:0] _freeOH_T_1 = {_freeOH_T, 1'h0}; // @[package.scala 244:48]
  wire [39:0] _freeOH_T_3 = _freeOH_T | _freeOH_T_1[39:0]; // @[package.scala 244:43]
  wire [41:0] _freeOH_T_4 = {_freeOH_T_3, 2'h0}; // @[package.scala 244:48]
  wire [39:0] _freeOH_T_6 = _freeOH_T_3 | _freeOH_T_4[39:0]; // @[package.scala 244:43]
  wire [43:0] _freeOH_T_7 = {_freeOH_T_6, 4'h0}; // @[package.scala 244:48]
  wire [39:0] _freeOH_T_9 = _freeOH_T_6 | _freeOH_T_7[39:0]; // @[package.scala 244:43]
  wire [47:0] _freeOH_T_10 = {_freeOH_T_9, 8'h0}; // @[package.scala 244:48]
  wire [39:0] _freeOH_T_12 = _freeOH_T_9 | _freeOH_T_10[39:0]; // @[package.scala 244:43]
  wire [55:0] _freeOH_T_13 = {_freeOH_T_12, 16'h0}; // @[package.scala 244:48]
  wire [39:0] _freeOH_T_15 = _freeOH_T_12 | _freeOH_T_13[39:0]; // @[package.scala 244:43]
  wire [71:0] _freeOH_T_16 = {_freeOH_T_15, 32'h0}; // @[package.scala 244:48]
  wire [39:0] _freeOH_T_18 = _freeOH_T_15 | _freeOH_T_16[39:0]; // @[package.scala 244:43]
  wire [40:0] _freeOH_T_20 = {_freeOH_T_18, 1'h0}; // @[ListBuffer.scala 52:32]
  wire [40:0] _freeOH_T_21 = ~_freeOH_T_20; // @[ListBuffer.scala 52:16]
  wire [40:0] _GEN_41 = {{1'd0}, _freeOH_T}; // @[ListBuffer.scala 52:38]
  wire [40:0] freeOH = _freeOH_T_21 & _GEN_41; // @[ListBuffer.scala 52:38]
  wire [8:0] freeIdx_hi = freeOH[40:32]; // @[OneHot.scala 30:18]
  wire [31:0] freeIdx_lo = freeOH[31:0]; // @[OneHot.scala 31:18]
  wire  _freeIdx_T = |freeIdx_hi; // @[OneHot.scala 32:14]
  wire [31:0] _GEN_42 = {{23'd0}, freeIdx_hi}; // @[OneHot.scala 32:28]
  wire [31:0] _freeIdx_T_1 = _GEN_42 | freeIdx_lo; // @[OneHot.scala 32:28]
  wire [15:0] freeIdx_hi_1 = _freeIdx_T_1[31:16]; // @[OneHot.scala 30:18]
  wire [15:0] freeIdx_lo_1 = _freeIdx_T_1[15:0]; // @[OneHot.scala 31:18]
  wire  _freeIdx_T_2 = |freeIdx_hi_1; // @[OneHot.scala 32:14]
  wire [15:0] _freeIdx_T_3 = freeIdx_hi_1 | freeIdx_lo_1; // @[OneHot.scala 32:28]
  wire [7:0] freeIdx_hi_2 = _freeIdx_T_3[15:8]; // @[OneHot.scala 30:18]
  wire [7:0] freeIdx_lo_2 = _freeIdx_T_3[7:0]; // @[OneHot.scala 31:18]
  wire  _freeIdx_T_4 = |freeIdx_hi_2; // @[OneHot.scala 32:14]
  wire [7:0] _freeIdx_T_5 = freeIdx_hi_2 | freeIdx_lo_2; // @[OneHot.scala 32:28]
  wire [3:0] freeIdx_hi_3 = _freeIdx_T_5[7:4]; // @[OneHot.scala 30:18]
  wire [3:0] freeIdx_lo_3 = _freeIdx_T_5[3:0]; // @[OneHot.scala 31:18]
  wire  _freeIdx_T_6 = |freeIdx_hi_3; // @[OneHot.scala 32:14]
  wire [3:0] _freeIdx_T_7 = freeIdx_hi_3 | freeIdx_lo_3; // @[OneHot.scala 32:28]
  wire [1:0] freeIdx_hi_4 = _freeIdx_T_7[3:2]; // @[OneHot.scala 30:18]
  wire [1:0] freeIdx_lo_4 = _freeIdx_T_7[1:0]; // @[OneHot.scala 31:18]
  wire  _freeIdx_T_8 = |freeIdx_hi_4; // @[OneHot.scala 32:14]
  wire [1:0] _freeIdx_T_9 = freeIdx_hi_4 | freeIdx_lo_4; // @[OneHot.scala 32:28]
  wire [4:0] _freeIdx_T_14 = {_freeIdx_T_2,_freeIdx_T_4,_freeIdx_T_6,_freeIdx_T_8,_freeIdx_T_9[1]}; // @[Cat.scala 33:92]
  wire [5:0] freeIdx = {_freeIdx_T,_freeIdx_T_2,_freeIdx_T_4,_freeIdx_T_6,_freeIdx_T_8,_freeIdx_T_9[1]}; // @[Cat.scala 33:92]
  wire [39:0] _push_valid_T = valid >> io_push_bits_index; // @[ListBuffer.scala 61:25]
  wire  push_valid = _push_valid_T[0]; // @[ListBuffer.scala 61:25]
  wire  _T = io_push_ready & io_push_valid; // @[Decoupled.scala 52:35]
  wire [63:0] _valid_set_T = 64'h1 << io_push_bits_index; // @[OneHot.scala 64:12]
  wire  _GEN_7 = push_valid ? 1'h0 : 1'h1; // @[ListBuffer.scala 46:18 68:23]
  wire [39:0] valid_set = _T ? _valid_set_T[39:0] : 40'h0; // @[ListBuffer.scala 64:25 65:15]
  wire [40:0] _GEN_11 = _T ? freeOH : 41'h0; // @[ListBuffer.scala 64:25 66:14]
  wire  _GEN_21 = _T & push_valid; // @[ListBuffer.scala 49:18 64:25]
  wire [39:0] _T_2 = io_valid >> io_pop_bits; // @[ListBuffer.scala 84:39]
  wire [5:0] used_clr_shiftAmount = head_pop_head_data; // @[OneHot.scala 63:49]
  wire [63:0] _used_clr_T = 64'h1 << used_clr_shiftAmount; // @[OneHot.scala 64:12]
  wire [63:0] _valid_clr_T = 64'h1 << io_pop_bits; // @[OneHot.scala 64:12]
  wire [39:0] _GEN_30 = head_pop_head_data == tail_MPORT_4_data ? _valid_clr_T[39:0] : 40'h0; // @[ListBuffer.scala 88:48 89:17]
  wire  _T_12 = _GEN_21 & tail_push_tail_data == head_pop_head_data; // @[ListBuffer.scala 91:62]
  wire [39:0] used_clr = io_pop_valid ? _used_clr_T[39:0] : 40'h0; // @[ListBuffer.scala 86:24 87:14]
  wire [39:0] valid_clr = io_pop_valid ? _GEN_30 : 40'h0; // @[ListBuffer.scala 86:24]
  wire [39:0] _used_T = ~used_clr; // @[ListBuffer.scala 96:23]
  wire [39:0] _used_T_1 = used & _used_T; // @[ListBuffer.scala 96:21]
  wire [39:0] used_set = _GEN_11[39:0];
  wire [39:0] _used_T_2 = _used_T_1 | used_set; // @[ListBuffer.scala 96:35]
  wire [39:0] _valid_T = ~valid_clr; // @[ListBuffer.scala 97:23]
  wire [39:0] _valid_T_1 = valid & _valid_T; // @[ListBuffer.scala 97:21]
  wire [39:0] _valid_T_2 = _valid_T_1 | valid_set; // @[ListBuffer.scala 97:35]
  assign head_pop_head_en = 1'h1;
  assign head_pop_head_addr = io_pop_bits;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign head_pop_head_data = head[head_pop_head_addr]; // @[ListBuffer.scala 46:18]
  `else
  assign head_pop_head_data = head_pop_head_addr >= 6'h28 ? _RAND_1[5:0] : head[head_pop_head_addr]; // @[ListBuffer.scala 46:18]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign head_MPORT_2_data = {_freeIdx_T,_freeIdx_T_14};
  assign head_MPORT_2_addr = io_push_bits_index;
  assign head_MPORT_2_mask = 1'h1;
  assign head_MPORT_2_en = _T & _GEN_7;
  assign head_MPORT_6_data = _T_12 ? freeIdx : next_MPORT_5_data;
  assign head_MPORT_6_addr = io_pop_bits;
  assign head_MPORT_6_mask = 1'h1;
  assign head_MPORT_6_en = io_pop_valid;
  assign tail_push_tail_en = 1'h1;
  assign tail_push_tail_addr = io_push_bits_index;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign tail_push_tail_data = tail[tail_push_tail_addr]; // @[ListBuffer.scala 47:18]
  `else
  assign tail_push_tail_data = tail_push_tail_addr >= 6'h28 ? _RAND_3[5:0] : tail[tail_push_tail_addr]; // @[ListBuffer.scala 47:18]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign tail_MPORT_4_en = io_pop_valid;
  assign tail_MPORT_4_addr = io_pop_bits;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign tail_MPORT_4_data = tail[tail_MPORT_4_addr]; // @[ListBuffer.scala 47:18]
  `else
  assign tail_MPORT_4_data = tail_MPORT_4_addr >= 6'h28 ? _RAND_4[5:0] : tail[tail_MPORT_4_addr]; // @[ListBuffer.scala 47:18]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign tail_MPORT_3_data = {_freeIdx_T,_freeIdx_T_14};
  assign tail_MPORT_3_addr = io_push_bits_index;
  assign tail_MPORT_3_mask = 1'h1;
  assign tail_MPORT_3_en = io_push_ready & io_push_valid;
  assign next_MPORT_5_en = io_pop_valid;
  assign next_MPORT_5_addr = head_pop_head_data;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign next_MPORT_5_data = next[next_MPORT_5_addr]; // @[ListBuffer.scala 49:18]
  `else
  assign next_MPORT_5_data = next_MPORT_5_addr >= 6'h28 ? _RAND_6[5:0] : next[next_MPORT_5_addr]; // @[ListBuffer.scala 49:18]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign next_MPORT_1_data = {_freeIdx_T,_freeIdx_T_14};
  assign next_MPORT_1_addr = tail_push_tail_data;
  assign next_MPORT_1_mask = 1'h1;
  assign next_MPORT_1_en = _T & push_valid;
  assign data_data_io_data_MPORT_en = 1'h1;
  assign data_data_io_data_MPORT_addr = head_pop_head_data;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign data_data_io_data_MPORT_data = data_data[data_data_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `else
  assign data_data_io_data_MPORT_data = data_data_io_data_MPORT_addr >= 6'h28 ? _RAND_8[63:0] :
    data_data[data_data_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign data_data_MPORT_data = io_push_bits_data_data;
  assign data_data_MPORT_addr = {_freeIdx_T,_freeIdx_T_14};
  assign data_data_MPORT_mask = 1'h1;
  assign data_data_MPORT_en = io_push_ready & io_push_valid;
  assign data_mask_io_data_MPORT_en = 1'h1;
  assign data_mask_io_data_MPORT_addr = head_pop_head_data;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign data_mask_io_data_MPORT_data = data_mask[data_mask_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `else
  assign data_mask_io_data_MPORT_data = data_mask_io_data_MPORT_addr >= 6'h28 ? _RAND_10[7:0] :
    data_mask[data_mask_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign data_mask_MPORT_data = io_push_bits_data_mask;
  assign data_mask_MPORT_addr = {_freeIdx_T,_freeIdx_T_14};
  assign data_mask_MPORT_mask = 1'h1;
  assign data_mask_MPORT_en = io_push_ready & io_push_valid;
  assign data_corrupt_io_data_MPORT_en = 1'h1;
  assign data_corrupt_io_data_MPORT_addr = head_pop_head_data;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign data_corrupt_io_data_MPORT_data = data_corrupt[data_corrupt_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `else
  assign data_corrupt_io_data_MPORT_data = data_corrupt_io_data_MPORT_addr >= 6'h28 ? _RAND_12[0:0] :
    data_corrupt[data_corrupt_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign data_corrupt_MPORT_data = io_push_bits_data_corrupt;
  assign data_corrupt_MPORT_addr = {_freeIdx_T,_freeIdx_T_14};
  assign data_corrupt_MPORT_mask = 1'h1;
  assign data_corrupt_MPORT_en = io_push_ready & io_push_valid;
  assign io_push_ready = ~(&used); // @[ListBuffer.scala 63:20]
  assign io_valid = valid; // @[ListBuffer.scala 81:12]
  assign io_data_data = data_data_io_data_MPORT_data; // @[ListBuffer.scala 80:11]
  assign io_data_mask = data_mask_io_data_MPORT_data; // @[ListBuffer.scala 80:11]
  assign io_data_corrupt = data_corrupt_io_data_MPORT_data; // @[ListBuffer.scala 80:11]
  always @(posedge clock) begin
    if (head_MPORT_2_en & head_MPORT_2_mask) begin
      head[head_MPORT_2_addr] <= head_MPORT_2_data; // @[ListBuffer.scala 46:18]
    end
    if (head_MPORT_6_en & head_MPORT_6_mask) begin
      head[head_MPORT_6_addr] <= head_MPORT_6_data; // @[ListBuffer.scala 46:18]
    end
    if (tail_MPORT_3_en & tail_MPORT_3_mask) begin
      tail[tail_MPORT_3_addr] <= tail_MPORT_3_data; // @[ListBuffer.scala 47:18]
    end
    if (next_MPORT_1_en & next_MPORT_1_mask) begin
      next[next_MPORT_1_addr] <= next_MPORT_1_data; // @[ListBuffer.scala 49:18]
    end
    if (data_data_MPORT_en & data_data_MPORT_mask) begin
      data_data[data_data_MPORT_addr] <= data_data_MPORT_data; // @[ListBuffer.scala 50:18]
    end
    if (data_mask_MPORT_en & data_mask_MPORT_mask) begin
      data_mask[data_mask_MPORT_addr] <= data_mask_MPORT_data; // @[ListBuffer.scala 50:18]
    end
    if (data_corrupt_MPORT_en & data_corrupt_MPORT_mask) begin
      data_corrupt[data_corrupt_MPORT_addr] <= data_corrupt_MPORT_data; // @[ListBuffer.scala 50:18]
    end
    if (reset) begin // @[ListBuffer.scala 45:22]
      valid <= 40'h0; // @[ListBuffer.scala 45:22]
    end else begin
      valid <= _valid_T_2;
    end
    if (reset) begin // @[ListBuffer.scala 48:22]
      used <= 40'h0; // @[ListBuffer.scala 48:22]
    end else begin
      used <= _used_T_2;
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~io_pop_valid | _T_2[0])) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at ListBuffer.scala:84 assert (!io.pop.fire() || (io.valid)(io.pop.bits))\n"); // @[ListBuffer.scala 84:10]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~io_pop_valid | _T_2[0]) & ~reset) begin
          $fatal; // @[ListBuffer.scala 84:10]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_GARBAGE_ASSIGN
  _RAND_1 = {1{`RANDOM}};
  _RAND_3 = {1{`RANDOM}};
  _RAND_4 = {1{`RANDOM}};
  _RAND_6 = {1{`RANDOM}};
  _RAND_8 = {2{`RANDOM}};
  _RAND_10 = {1{`RANDOM}};
  _RAND_12 = {1{`RANDOM}};
`endif // RANDOMIZE_GARBAGE_ASSIGN
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 40; initvar = initvar+1)
    head[initvar] = _RAND_0[5:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 40; initvar = initvar+1)
    tail[initvar] = _RAND_2[5:0];
  _RAND_5 = {1{`RANDOM}};
  for (initvar = 0; initvar < 40; initvar = initvar+1)
    next[initvar] = _RAND_5[5:0];
  _RAND_7 = {2{`RANDOM}};
  for (initvar = 0; initvar < 40; initvar = initvar+1)
    data_data[initvar] = _RAND_7[63:0];
  _RAND_9 = {1{`RANDOM}};
  for (initvar = 0; initvar < 40; initvar = initvar+1)
    data_mask[initvar] = _RAND_9[7:0];
  _RAND_11 = {1{`RANDOM}};
  for (initvar = 0; initvar < 40; initvar = initvar+1)
    data_corrupt[initvar] = _RAND_11[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_13 = {2{`RANDOM}};
  valid = _RAND_13[39:0];
  _RAND_14 = {2{`RANDOM}};
  used = _RAND_14[39:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module SinkA(
  input         clock,
  input         reset,
  input         io_req_ready,
  output        io_req_valid,
  output [2:0]  io_req_bits_opcode,
  output [2:0]  io_req_bits_param,
  output [2:0]  io_req_bits_size,
  output [2:0]  io_req_bits_source,
  output [24:0] io_req_bits_tag,
  output [3:0]  io_req_bits_offset,
  output [5:0]  io_req_bits_put,
  output [2:0]  io_req_bits_set,
  output        io_a_ready,
  input         io_a_valid,
  input  [2:0]  io_a_bits_opcode,
  input  [2:0]  io_a_bits_param,
  input  [2:0]  io_a_bits_size,
  input  [2:0]  io_a_bits_source,
  input  [31:0] io_a_bits_address,
  input  [7:0]  io_a_bits_mask,
  input  [63:0] io_a_bits_data,
  input         io_a_bits_corrupt,
  output        io_pb_pop_ready,
  input         io_pb_pop_valid,
  input  [5:0]  io_pb_pop_bits_index,
  input         io_pb_pop_bits_last,
  output [63:0] io_pb_beat_data,
  output [7:0]  io_pb_beat_mask,
  output        io_pb_beat_corrupt
);
`ifdef RANDOMIZE_REG_INIT
  reg [63:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
`endif // RANDOMIZE_REG_INIT
  wire  putbuffer_clock; // @[SinkA.scala 50:25]
  wire  putbuffer_reset; // @[SinkA.scala 50:25]
  wire  putbuffer_io_push_ready; // @[SinkA.scala 50:25]
  wire  putbuffer_io_push_valid; // @[SinkA.scala 50:25]
  wire [5:0] putbuffer_io_push_bits_index; // @[SinkA.scala 50:25]
  wire [63:0] putbuffer_io_push_bits_data_data; // @[SinkA.scala 50:25]
  wire [7:0] putbuffer_io_push_bits_data_mask; // @[SinkA.scala 50:25]
  wire  putbuffer_io_push_bits_data_corrupt; // @[SinkA.scala 50:25]
  wire [39:0] putbuffer_io_valid; // @[SinkA.scala 50:25]
  wire  putbuffer_io_pop_valid; // @[SinkA.scala 50:25]
  wire [5:0] putbuffer_io_pop_bits; // @[SinkA.scala 50:25]
  wire [63:0] putbuffer_io_data_data; // @[SinkA.scala 50:25]
  wire [7:0] putbuffer_io_data_mask; // @[SinkA.scala 50:25]
  wire  putbuffer_io_data_corrupt; // @[SinkA.scala 50:25]
  reg [39:0] lists; // @[SinkA.scala 51:22]
  reg  first_counter; // @[Edges.scala 228:27]
  wire  first = ~first_counter; // @[Edges.scala 230:25]
  wire  _T_3 = io_a_valid & first; // @[SinkA.scala 80:17]
  wire  hasData = ~io_a_bits_opcode[2]; // @[Edges.scala 91:28]
  wire  req_block = first & ~io_req_ready; // @[SinkA.scala 69:25]
  wire  _T_5 = ~req_block; // @[SinkA.scala 80:40]
  wire  buf_block = hasData & ~putbuffer_io_push_ready; // @[SinkA.scala 70:27]
  wire  _T_7 = ~buf_block; // @[SinkA.scala 80:54]
  wire [39:0] _freeOH_T = ~lists; // @[SinkA.scala 58:25]
  wire [40:0] _freeOH_T_1 = {_freeOH_T, 1'h0}; // @[package.scala 244:48]
  wire [39:0] _freeOH_T_3 = _freeOH_T | _freeOH_T_1[39:0]; // @[package.scala 244:43]
  wire [41:0] _freeOH_T_4 = {_freeOH_T_3, 2'h0}; // @[package.scala 244:48]
  wire [39:0] _freeOH_T_6 = _freeOH_T_3 | _freeOH_T_4[39:0]; // @[package.scala 244:43]
  wire [43:0] _freeOH_T_7 = {_freeOH_T_6, 4'h0}; // @[package.scala 244:48]
  wire [39:0] _freeOH_T_9 = _freeOH_T_6 | _freeOH_T_7[39:0]; // @[package.scala 244:43]
  wire [47:0] _freeOH_T_10 = {_freeOH_T_9, 8'h0}; // @[package.scala 244:48]
  wire [39:0] _freeOH_T_12 = _freeOH_T_9 | _freeOH_T_10[39:0]; // @[package.scala 244:43]
  wire [55:0] _freeOH_T_13 = {_freeOH_T_12, 16'h0}; // @[package.scala 244:48]
  wire [39:0] _freeOH_T_15 = _freeOH_T_12 | _freeOH_T_13[39:0]; // @[package.scala 244:43]
  wire [71:0] _freeOH_T_16 = {_freeOH_T_15, 32'h0}; // @[package.scala 244:48]
  wire [39:0] _freeOH_T_18 = _freeOH_T_15 | _freeOH_T_16[39:0]; // @[package.scala 244:43]
  wire [40:0] _freeOH_T_20 = {_freeOH_T_18, 1'h0}; // @[SinkA.scala 58:33]
  wire [40:0] _freeOH_T_21 = ~_freeOH_T_20; // @[SinkA.scala 58:16]
  wire [40:0] _GEN_4 = {{1'd0}, _freeOH_T}; // @[SinkA.scala 58:39]
  wire [40:0] freeOH = _freeOH_T_21 & _GEN_4; // @[SinkA.scala 58:39]
  wire [40:0] _GEN_1 = io_a_valid & first & hasData & ~req_block & ~buf_block ? freeOH : 41'h0; // @[SinkA.scala 80:{66,78}]
  wire [39:0] lists_set = _GEN_1[39:0];
  wire [39:0] _lists_T = lists | lists_set; // @[SinkA.scala 55:19]
  wire  _T_9 = io_pb_pop_ready & io_pb_pop_valid; // @[Decoupled.scala 52:35]
  wire [63:0] _lists_clr_T = 64'h1 << io_pb_pop_bits_index; // @[OneHot.scala 64:12]
  wire [39:0] lists_clr = _T_9 & io_pb_pop_bits_last ? _lists_clr_T[39:0] : 40'h0; // @[SinkA.scala 107:50 108:15]
  wire [39:0] _lists_T_1 = ~lists_clr; // @[SinkA.scala 55:34]
  wire [39:0] _lists_T_2 = _lists_T & _lists_T_1; // @[SinkA.scala 55:32]
  wire  free = ~(&lists); // @[SinkA.scala 57:14]
  wire [8:0] freeIdx_hi = freeOH[40:32]; // @[OneHot.scala 30:18]
  wire [31:0] freeIdx_lo = freeOH[31:0]; // @[OneHot.scala 31:18]
  wire  _freeIdx_T = |freeIdx_hi; // @[OneHot.scala 32:14]
  wire [31:0] _GEN_5 = {{23'd0}, freeIdx_hi}; // @[OneHot.scala 32:28]
  wire [31:0] _freeIdx_T_1 = _GEN_5 | freeIdx_lo; // @[OneHot.scala 32:28]
  wire [15:0] freeIdx_hi_1 = _freeIdx_T_1[31:16]; // @[OneHot.scala 30:18]
  wire [15:0] freeIdx_lo_1 = _freeIdx_T_1[15:0]; // @[OneHot.scala 31:18]
  wire  _freeIdx_T_2 = |freeIdx_hi_1; // @[OneHot.scala 32:14]
  wire [15:0] _freeIdx_T_3 = freeIdx_hi_1 | freeIdx_lo_1; // @[OneHot.scala 32:28]
  wire [7:0] freeIdx_hi_2 = _freeIdx_T_3[15:8]; // @[OneHot.scala 30:18]
  wire [7:0] freeIdx_lo_2 = _freeIdx_T_3[7:0]; // @[OneHot.scala 31:18]
  wire  _freeIdx_T_4 = |freeIdx_hi_2; // @[OneHot.scala 32:14]
  wire [7:0] _freeIdx_T_5 = freeIdx_hi_2 | freeIdx_lo_2; // @[OneHot.scala 32:28]
  wire [3:0] freeIdx_hi_3 = _freeIdx_T_5[7:4]; // @[OneHot.scala 30:18]
  wire [3:0] freeIdx_lo_3 = _freeIdx_T_5[3:0]; // @[OneHot.scala 31:18]
  wire  _freeIdx_T_6 = |freeIdx_hi_3; // @[OneHot.scala 32:14]
  wire [3:0] _freeIdx_T_7 = freeIdx_hi_3 | freeIdx_lo_3; // @[OneHot.scala 32:28]
  wire [1:0] freeIdx_hi_4 = _freeIdx_T_7[3:2]; // @[OneHot.scala 30:18]
  wire [1:0] freeIdx_lo_4 = _freeIdx_T_7[1:0]; // @[OneHot.scala 31:18]
  wire  _freeIdx_T_8 = |freeIdx_hi_4; // @[OneHot.scala 32:14]
  wire [1:0] _freeIdx_T_9 = freeIdx_hi_4 | freeIdx_lo_4; // @[OneHot.scala 32:28]
  wire [5:0] freeIdx = {_freeIdx_T,_freeIdx_T_2,_freeIdx_T_4,_freeIdx_T_6,_freeIdx_T_8,_freeIdx_T_9[1]}; // @[Cat.scala 33:92]
  wire  _first_T = io_a_ready & io_a_valid; // @[Decoupled.scala 52:35]
  wire [10:0] _first_beats1_decode_T_1 = 11'hf << io_a_bits_size; // @[package.scala 234:77]
  wire [3:0] _first_beats1_decode_T_3 = ~_first_beats1_decode_T_1[3:0]; // @[package.scala 234:46]
  wire  first_beats1_decode = _first_beats1_decode_T_3[3]; // @[Edges.scala 219:59]
  wire  first_beats1 = hasData & first_beats1_decode; // @[Edges.scala 220:14]
  wire  first_counter1 = first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  set_block = hasData & first & ~free; // @[SinkA.scala 71:36]
  wire  _io_a_ready_T_3 = ~set_block; // @[SinkA.scala 77:42]
  wire [7:0] offset_lo_lo = {io_a_bits_address[7],io_a_bits_address[6],io_a_bits_address[5],io_a_bits_address[4],
    io_a_bits_address[3],io_a_bits_address[2],io_a_bits_address[1],io_a_bits_address[0]}; // @[Cat.scala 33:92]
  wire [15:0] offset_lo = {io_a_bits_address[15],io_a_bits_address[14],io_a_bits_address[13],io_a_bits_address[12],
    io_a_bits_address[11],io_a_bits_address[10],io_a_bits_address[9],io_a_bits_address[8],offset_lo_lo}; // @[Cat.scala 33:92]
  wire [7:0] offset_hi_lo = {io_a_bits_address[23],io_a_bits_address[22],io_a_bits_address[21],io_a_bits_address[20],
    io_a_bits_address[19],io_a_bits_address[18],io_a_bits_address[17],io_a_bits_address[16]}; // @[Cat.scala 33:92]
  wire [31:0] offset = {io_a_bits_address[31],io_a_bits_address[30],io_a_bits_address[29],io_a_bits_address[28],
    io_a_bits_address[27],io_a_bits_address[26],io_a_bits_address[25],io_a_bits_address[24],offset_hi_lo,offset_lo}; // @[Cat.scala 33:92]
  wire [27:0] set = offset[31:4]; // @[Parameters.scala 212:22]
  reg [5:0] put_r; // @[Reg.scala 19:16]
  wire [39:0] _io_pb_pop_ready_T = putbuffer_io_valid >> io_pb_pop_bits_index; // @[SinkA.scala 104:40]
  ListBuffer putbuffer ( // @[SinkA.scala 50:25]
    .clock(putbuffer_clock),
    .reset(putbuffer_reset),
    .io_push_ready(putbuffer_io_push_ready),
    .io_push_valid(putbuffer_io_push_valid),
    .io_push_bits_index(putbuffer_io_push_bits_index),
    .io_push_bits_data_data(putbuffer_io_push_bits_data_data),
    .io_push_bits_data_mask(putbuffer_io_push_bits_data_mask),
    .io_push_bits_data_corrupt(putbuffer_io_push_bits_data_corrupt),
    .io_valid(putbuffer_io_valid),
    .io_pop_valid(putbuffer_io_pop_valid),
    .io_pop_bits(putbuffer_io_pop_bits),
    .io_data_data(putbuffer_io_data_data),
    .io_data_mask(putbuffer_io_data_mask),
    .io_data_corrupt(putbuffer_io_data_corrupt)
  );
  assign io_req_valid = _T_3 & _T_7 & _io_a_ready_T_3; // @[SinkA.scala 78:50]
  assign io_req_bits_opcode = io_a_bits_opcode; // @[SinkA.scala 87:22]
  assign io_req_bits_param = io_a_bits_param; // @[SinkA.scala 88:22]
  assign io_req_bits_size = io_a_bits_size; // @[SinkA.scala 89:22]
  assign io_req_bits_source = io_a_bits_source; // @[SinkA.scala 90:22]
  assign io_req_bits_tag = set[27:3]; // @[Parameters.scala 213:19]
  assign io_req_bits_offset = offset[3:0]; // @[Parameters.scala 214:50]
  assign io_req_bits_put = first ? freeIdx : put_r; // @[SinkA.scala 83:16]
  assign io_req_bits_set = set[2:0]; // @[Parameters.scala 214:28]
  assign io_a_ready = _T_5 & _T_7 & ~set_block; // @[SinkA.scala 77:39]
  assign io_pb_pop_ready = _io_pb_pop_ready_T[0]; // @[SinkA.scala 104:40]
  assign io_pb_beat_data = putbuffer_io_data_data; // @[SinkA.scala 105:14]
  assign io_pb_beat_mask = putbuffer_io_data_mask; // @[SinkA.scala 105:14]
  assign io_pb_beat_corrupt = putbuffer_io_data_corrupt; // @[SinkA.scala 105:14]
  assign putbuffer_clock = clock;
  assign putbuffer_reset = reset;
  assign putbuffer_io_push_valid = io_a_valid & hasData & _T_5 & _io_a_ready_T_3; // @[SinkA.scala 79:63]
  assign putbuffer_io_push_bits_index = first ? freeIdx : put_r; // @[SinkA.scala 83:16]
  assign putbuffer_io_push_bits_data_data = io_a_bits_data; // @[SinkA.scala 97:39]
  assign putbuffer_io_push_bits_data_mask = io_a_bits_mask; // @[SinkA.scala 98:39]
  assign putbuffer_io_push_bits_data_corrupt = io_a_bits_corrupt; // @[SinkA.scala 99:39]
  assign putbuffer_io_pop_valid = io_pb_pop_ready & io_pb_pop_valid; // @[Decoupled.scala 52:35]
  assign putbuffer_io_pop_bits = io_pb_pop_bits_index; // @[SinkA.scala 102:25]
  always @(posedge clock) begin
    if (reset) begin // @[SinkA.scala 51:22]
      lists <= 40'h0; // @[SinkA.scala 51:22]
    end else begin
      lists <= _lists_T_2; // @[SinkA.scala 55:9]
    end
    if (reset) begin // @[Edges.scala 228:27]
      first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_first_T) begin // @[Edges.scala 234:17]
      if (first) begin // @[Edges.scala 235:21]
        first_counter <= first_beats1;
      end else begin
        first_counter <= first_counter1;
      end
    end
    if (first) begin // @[Reg.scala 20:18]
      put_r <= freeIdx; // @[Reg.scala 20:22]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {2{`RANDOM}};
  lists = _RAND_0[39:0];
  _RAND_1 = {1{`RANDOM}};
  first_counter = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  put_r = _RAND_2[5:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_26(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [2:0]  io_enq_bits_opcode,
  input  [2:0]  io_enq_bits_param,
  input  [2:0]  io_enq_bits_size,
  input  [31:0] io_enq_bits_address,
  input  [63:0] io_enq_bits_data,
  input         io_enq_bits_corrupt,
  input         io_deq_ready,
  output        io_deq_valid,
  output [2:0]  io_deq_bits_opcode,
  output [2:0]  io_deq_bits_param,
  output [2:0]  io_deq_bits_size,
  output [2:0]  io_deq_bits_source,
  output [31:0] io_deq_bits_address,
  output [63:0] io_deq_bits_data,
  output        io_deq_bits_corrupt
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [63:0] _RAND_5;
  reg [31:0] _RAND_6;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
`endif // RANDOMIZE_REG_INIT
  reg [2:0] ram_opcode [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_opcode_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_opcode_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_opcode_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_opcode_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] ram_param [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_param_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_param_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_param_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] ram_size [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_size_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_size_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] ram_source [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_source_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_source_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_source_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_en; // @[Decoupled.scala 275:95]
  reg [31:0] ram_address [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_address_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_address_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [31:0] ram_address_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [31:0] ram_address_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_address_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_address_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_address_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_data [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_corrupt [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_en; // @[Decoupled.scala 275:95]
  reg  enq_ptr_value; // @[Counter.scala 61:40]
  reg  deq_ptr_value; // @[Counter.scala 61:40]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  ptr_match = enq_ptr_value == deq_ptr_value; // @[Decoupled.scala 279:33]
  wire  empty = ptr_match & ~maybe_full; // @[Decoupled.scala 280:25]
  wire  full = ptr_match & maybe_full; // @[Decoupled.scala 281:24]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_deq = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign ram_opcode_io_deq_bits_MPORT_en = 1'h1;
  assign ram_opcode_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_opcode_io_deq_bits_MPORT_data = ram_opcode[ram_opcode_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_opcode_MPORT_data = io_enq_bits_opcode;
  assign ram_opcode_MPORT_addr = enq_ptr_value;
  assign ram_opcode_MPORT_mask = 1'h1;
  assign ram_opcode_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_param_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_param_io_deq_bits_MPORT_data = ram_param[ram_param_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_MPORT_data = io_enq_bits_param;
  assign ram_param_MPORT_addr = enq_ptr_value;
  assign ram_param_MPORT_mask = 1'h1;
  assign ram_param_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_size_io_deq_bits_MPORT_en = 1'h1;
  assign ram_size_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_size_io_deq_bits_MPORT_data = ram_size[ram_size_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_size_MPORT_data = io_enq_bits_size;
  assign ram_size_MPORT_addr = enq_ptr_value;
  assign ram_size_MPORT_mask = 1'h1;
  assign ram_size_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_source_io_deq_bits_MPORT_en = 1'h1;
  assign ram_source_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_source_io_deq_bits_MPORT_data = ram_source[ram_source_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_source_MPORT_data = 3'h3;
  assign ram_source_MPORT_addr = enq_ptr_value;
  assign ram_source_MPORT_mask = 1'h1;
  assign ram_source_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_address_io_deq_bits_MPORT_en = 1'h1;
  assign ram_address_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_address_io_deq_bits_MPORT_data = ram_address[ram_address_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_address_MPORT_data = io_enq_bits_address;
  assign ram_address_MPORT_addr = enq_ptr_value;
  assign ram_address_MPORT_mask = 1'h1;
  assign ram_address_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_data_io_deq_bits_MPORT_en = 1'h1;
  assign ram_data_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_data_io_deq_bits_MPORT_data = ram_data[ram_data_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_data_MPORT_data = io_enq_bits_data;
  assign ram_data_MPORT_addr = enq_ptr_value;
  assign ram_data_MPORT_mask = 1'h1;
  assign ram_data_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_corrupt_io_deq_bits_MPORT_en = 1'h1;
  assign ram_corrupt_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_corrupt_io_deq_bits_MPORT_data = ram_corrupt[ram_corrupt_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_corrupt_MPORT_data = io_enq_bits_corrupt;
  assign ram_corrupt_MPORT_addr = enq_ptr_value;
  assign ram_corrupt_MPORT_mask = 1'h1;
  assign ram_corrupt_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = ~full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_opcode = ram_opcode_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_param = ram_param_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_size = ram_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_source = ram_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_address = ram_address_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_data = ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_corrupt = ram_corrupt_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_opcode_MPORT_en & ram_opcode_MPORT_mask) begin
      ram_opcode[ram_opcode_MPORT_addr] <= ram_opcode_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_MPORT_en & ram_param_MPORT_mask) begin
      ram_param[ram_param_MPORT_addr] <= ram_param_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_size_MPORT_en & ram_size_MPORT_mask) begin
      ram_size[ram_size_MPORT_addr] <= ram_size_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_source_MPORT_en & ram_source_MPORT_mask) begin
      ram_source[ram_source_MPORT_addr] <= ram_source_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_address_MPORT_en & ram_address_MPORT_mask) begin
      ram_address[ram_address_MPORT_addr] <= ram_address_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_data_MPORT_en & ram_data_MPORT_mask) begin
      ram_data[ram_data_MPORT_addr] <= ram_data_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_corrupt_MPORT_en & ram_corrupt_MPORT_mask) begin
      ram_corrupt[ram_corrupt_MPORT_addr] <= ram_corrupt_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Counter.scala 61:40]
      enq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_enq) begin // @[Decoupled.scala 288:16]
      enq_ptr_value <= enq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Counter.scala 61:40]
      deq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_deq) begin // @[Decoupled.scala 292:16]
      deq_ptr_value <= deq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_opcode[initvar] = _RAND_0[2:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_param[initvar] = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_size[initvar] = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_source[initvar] = _RAND_3[2:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_address[initvar] = _RAND_4[31:0];
  _RAND_5 = {2{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_data[initvar] = _RAND_5[63:0];
  _RAND_6 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_corrupt[initvar] = _RAND_6[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_7 = {1{`RANDOM}};
  enq_ptr_value = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  deq_ptr_value = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  maybe_full = _RAND_9[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_27(
  input        clock,
  input        reset,
  output       io_enq_ready,
  input        io_enq_valid,
  input        io_enq_bits_noop,
  input        io_enq_bits_way,
  input  [2:0] io_enq_bits_set,
  input        io_enq_bits_beat,
  input        io_deq_ready,
  output       io_deq_valid,
  output       io_deq_bits_noop,
  output       io_deq_bits_way,
  output [2:0] io_deq_bits_set,
  output       io_deq_bits_beat,
  output       io_deq_bits_mask
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_5;
`endif // RANDOMIZE_REG_INIT
  reg  ram_noop [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_noop_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_noop_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_noop_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_noop_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_noop_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_noop_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_noop_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_way [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_way_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_way_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_way_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_way_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_way_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_way_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_way_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] ram_set [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_set_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_set_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_set_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_set_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_set_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_set_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_set_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_beat [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_beat_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_beat_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_beat_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_beat_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_beat_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_beat_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_beat_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_mask [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_mask_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_mask_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_mask_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_mask_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_mask_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_mask_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_mask_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_deq = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign ram_noop_io_deq_bits_MPORT_en = 1'h1;
  assign ram_noop_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_noop_io_deq_bits_MPORT_data = ram_noop[ram_noop_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_noop_MPORT_data = io_enq_bits_noop;
  assign ram_noop_MPORT_addr = 1'h0;
  assign ram_noop_MPORT_mask = 1'h1;
  assign ram_noop_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_way_io_deq_bits_MPORT_en = 1'h1;
  assign ram_way_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_way_io_deq_bits_MPORT_data = ram_way[ram_way_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_way_MPORT_data = io_enq_bits_way;
  assign ram_way_MPORT_addr = 1'h0;
  assign ram_way_MPORT_mask = 1'h1;
  assign ram_way_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_set_io_deq_bits_MPORT_en = 1'h1;
  assign ram_set_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_set_io_deq_bits_MPORT_data = ram_set[ram_set_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_set_MPORT_data = io_enq_bits_set;
  assign ram_set_MPORT_addr = 1'h0;
  assign ram_set_MPORT_mask = 1'h1;
  assign ram_set_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_beat_io_deq_bits_MPORT_en = 1'h1;
  assign ram_beat_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_beat_io_deq_bits_MPORT_data = ram_beat[ram_beat_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_beat_MPORT_data = io_enq_bits_beat;
  assign ram_beat_MPORT_addr = 1'h0;
  assign ram_beat_MPORT_mask = 1'h1;
  assign ram_beat_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_mask_io_deq_bits_MPORT_en = 1'h1;
  assign ram_mask_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_mask_io_deq_bits_MPORT_data = ram_mask[ram_mask_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_mask_MPORT_data = 1'h1;
  assign ram_mask_MPORT_addr = 1'h0;
  assign ram_mask_MPORT_mask = 1'h1;
  assign ram_mask_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = io_deq_ready | empty; // @[Decoupled.scala 305:16 325:{24,39}]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_noop = ram_noop_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_way = ram_way_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_set = ram_set_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_beat = ram_beat_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_mask = ram_mask_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_noop_MPORT_en & ram_noop_MPORT_mask) begin
      ram_noop[ram_noop_MPORT_addr] <= ram_noop_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_way_MPORT_en & ram_way_MPORT_mask) begin
      ram_way[ram_way_MPORT_addr] <= ram_way_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_set_MPORT_en & ram_set_MPORT_mask) begin
      ram_set[ram_set_MPORT_addr] <= ram_set_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_beat_MPORT_en & ram_beat_MPORT_mask) begin
      ram_beat[ram_beat_MPORT_addr] <= ram_beat_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_mask_MPORT_en & ram_mask_MPORT_mask) begin
      ram_mask[ram_mask_MPORT_addr] <= ram_mask_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_noop[initvar] = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_way[initvar] = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_set[initvar] = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_beat[initvar] = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_mask[initvar] = _RAND_4[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_5 = {1{`RANDOM}};
  maybe_full = _RAND_5[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module ListBuffer_1(
  input         clock,
  input         reset,
  output        io_push_ready,
  input         io_push_valid,
  input         io_push_bits_index,
  input  [63:0] io_push_bits_data_data,
  input         io_push_bits_data_corrupt,
  output [1:0]  io_valid,
  input         io_pop_valid,
  input         io_pop_bits,
  output [63:0] io_data_data,
  output        io_data_corrupt
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [63:0] _RAND_3;
  reg [31:0] _RAND_4;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
`endif // RANDOMIZE_REG_INIT
  reg [1:0] head [0:1]; // @[ListBuffer.scala 46:18]
  wire  head_pop_head_en; // @[ListBuffer.scala 46:18]
  wire  head_pop_head_addr; // @[ListBuffer.scala 46:18]
  wire [1:0] head_pop_head_data; // @[ListBuffer.scala 46:18]
  wire [1:0] head_MPORT_2_data; // @[ListBuffer.scala 46:18]
  wire  head_MPORT_2_addr; // @[ListBuffer.scala 46:18]
  wire  head_MPORT_2_mask; // @[ListBuffer.scala 46:18]
  wire  head_MPORT_2_en; // @[ListBuffer.scala 46:18]
  wire [1:0] head_MPORT_6_data; // @[ListBuffer.scala 46:18]
  wire  head_MPORT_6_addr; // @[ListBuffer.scala 46:18]
  wire  head_MPORT_6_mask; // @[ListBuffer.scala 46:18]
  wire  head_MPORT_6_en; // @[ListBuffer.scala 46:18]
  reg [1:0] tail [0:1]; // @[ListBuffer.scala 47:18]
  wire  tail_push_tail_en; // @[ListBuffer.scala 47:18]
  wire  tail_push_tail_addr; // @[ListBuffer.scala 47:18]
  wire [1:0] tail_push_tail_data; // @[ListBuffer.scala 47:18]
  wire  tail_MPORT_4_en; // @[ListBuffer.scala 47:18]
  wire  tail_MPORT_4_addr; // @[ListBuffer.scala 47:18]
  wire [1:0] tail_MPORT_4_data; // @[ListBuffer.scala 47:18]
  wire [1:0] tail_MPORT_3_data; // @[ListBuffer.scala 47:18]
  wire  tail_MPORT_3_addr; // @[ListBuffer.scala 47:18]
  wire  tail_MPORT_3_mask; // @[ListBuffer.scala 47:18]
  wire  tail_MPORT_3_en; // @[ListBuffer.scala 47:18]
  reg [1:0] next [0:3]; // @[ListBuffer.scala 49:18]
  wire  next_MPORT_5_en; // @[ListBuffer.scala 49:18]
  wire [1:0] next_MPORT_5_addr; // @[ListBuffer.scala 49:18]
  wire [1:0] next_MPORT_5_data; // @[ListBuffer.scala 49:18]
  wire [1:0] next_MPORT_1_data; // @[ListBuffer.scala 49:18]
  wire [1:0] next_MPORT_1_addr; // @[ListBuffer.scala 49:18]
  wire  next_MPORT_1_mask; // @[ListBuffer.scala 49:18]
  wire  next_MPORT_1_en; // @[ListBuffer.scala 49:18]
  reg [63:0] data_data [0:3]; // @[ListBuffer.scala 50:18]
  wire  data_data_io_data_MPORT_en; // @[ListBuffer.scala 50:18]
  wire [1:0] data_data_io_data_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire [63:0] data_data_io_data_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [63:0] data_data_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [1:0] data_data_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire  data_data_MPORT_mask; // @[ListBuffer.scala 50:18]
  wire  data_data_MPORT_en; // @[ListBuffer.scala 50:18]
  reg  data_corrupt [0:3]; // @[ListBuffer.scala 50:18]
  wire  data_corrupt_io_data_MPORT_en; // @[ListBuffer.scala 50:18]
  wire [1:0] data_corrupt_io_data_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire  data_corrupt_io_data_MPORT_data; // @[ListBuffer.scala 50:18]
  wire  data_corrupt_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [1:0] data_corrupt_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire  data_corrupt_MPORT_mask; // @[ListBuffer.scala 50:18]
  wire  data_corrupt_MPORT_en; // @[ListBuffer.scala 50:18]
  reg [1:0] valid; // @[ListBuffer.scala 45:22]
  reg [3:0] used; // @[ListBuffer.scala 48:22]
  wire [3:0] _freeOH_T = ~used; // @[ListBuffer.scala 52:25]
  wire [4:0] _freeOH_T_1 = {_freeOH_T, 1'h0}; // @[package.scala 244:48]
  wire [3:0] _freeOH_T_3 = _freeOH_T | _freeOH_T_1[3:0]; // @[package.scala 244:43]
  wire [5:0] _freeOH_T_4 = {_freeOH_T_3, 2'h0}; // @[package.scala 244:48]
  wire [3:0] _freeOH_T_6 = _freeOH_T_3 | _freeOH_T_4[3:0]; // @[package.scala 244:43]
  wire [4:0] _freeOH_T_8 = {_freeOH_T_6, 1'h0}; // @[ListBuffer.scala 52:32]
  wire [4:0] _freeOH_T_9 = ~_freeOH_T_8; // @[ListBuffer.scala 52:16]
  wire [4:0] _GEN_41 = {{1'd0}, _freeOH_T}; // @[ListBuffer.scala 52:38]
  wire [4:0] freeOH = _freeOH_T_9 & _GEN_41; // @[ListBuffer.scala 52:38]
  wire  freeIdx_hi = freeOH[4]; // @[OneHot.scala 30:18]
  wire [3:0] freeIdx_lo = freeOH[3:0]; // @[OneHot.scala 31:18]
  wire  _freeIdx_T = |freeIdx_hi; // @[OneHot.scala 32:14]
  wire [3:0] _GEN_42 = {{3'd0}, freeIdx_hi}; // @[OneHot.scala 32:28]
  wire [3:0] _freeIdx_T_1 = _GEN_42 | freeIdx_lo; // @[OneHot.scala 32:28]
  wire [1:0] freeIdx_hi_1 = _freeIdx_T_1[3:2]; // @[OneHot.scala 30:18]
  wire [1:0] freeIdx_lo_1 = _freeIdx_T_1[1:0]; // @[OneHot.scala 31:18]
  wire  _freeIdx_T_2 = |freeIdx_hi_1; // @[OneHot.scala 32:14]
  wire [1:0] _freeIdx_T_3 = freeIdx_hi_1 | freeIdx_lo_1; // @[OneHot.scala 32:28]
  wire [2:0] freeIdx = {_freeIdx_T,_freeIdx_T_2,_freeIdx_T_3[1]}; // @[Cat.scala 33:92]
  wire [1:0] _push_valid_T = valid >> io_push_bits_index; // @[ListBuffer.scala 61:25]
  wire  push_valid = _push_valid_T[0]; // @[ListBuffer.scala 61:25]
  wire  _T = io_push_ready & io_push_valid; // @[Decoupled.scala 52:35]
  wire [1:0] _valid_set_T = 2'h1 << io_push_bits_index; // @[OneHot.scala 64:12]
  wire  _GEN_7 = push_valid ? 1'h0 : 1'h1; // @[ListBuffer.scala 46:18 68:23]
  wire [1:0] valid_set = _T ? _valid_set_T : 2'h0; // @[ListBuffer.scala 64:25 65:15]
  wire [4:0] _GEN_11 = _T ? freeOH : 5'h0; // @[ListBuffer.scala 64:25 66:14]
  wire  _GEN_20 = _T & push_valid; // @[ListBuffer.scala 49:18 64:25]
  wire [1:0] _T_3 = io_valid >> io_pop_bits; // @[ListBuffer.scala 84:39]
  wire [1:0] used_clr_shiftAmount = head_pop_head_data; // @[OneHot.scala 63:49]
  wire [3:0] _used_clr_T = 4'h1 << used_clr_shiftAmount; // @[OneHot.scala 64:12]
  wire [1:0] _valid_clr_T = 2'h1 << io_pop_bits; // @[OneHot.scala 64:12]
  wire [1:0] _GEN_30 = head_pop_head_data == tail_MPORT_4_data ? _valid_clr_T : 2'h0; // @[ListBuffer.scala 88:48 89:17]
  wire [2:0] _T_14 = _GEN_20 & tail_push_tail_data == head_pop_head_data ? freeIdx : {{1'd0}, next_MPORT_5_data}; // @[ListBuffer.scala 91:32]
  wire [3:0] used_clr = io_pop_valid ? _used_clr_T : 4'h0; // @[ListBuffer.scala 86:24 87:14]
  wire [1:0] valid_clr = io_pop_valid ? _GEN_30 : 2'h0; // @[ListBuffer.scala 86:24]
  wire [3:0] _used_T = ~used_clr; // @[ListBuffer.scala 96:23]
  wire [3:0] _used_T_1 = used & _used_T; // @[ListBuffer.scala 96:21]
  wire [3:0] used_set = _GEN_11[3:0];
  wire [3:0] _used_T_2 = _used_T_1 | used_set; // @[ListBuffer.scala 96:35]
  wire [1:0] _valid_T = ~valid_clr; // @[ListBuffer.scala 97:23]
  wire [1:0] _valid_T_1 = valid & _valid_T; // @[ListBuffer.scala 97:21]
  wire [1:0] _valid_T_2 = _valid_T_1 | valid_set; // @[ListBuffer.scala 97:35]
  assign head_pop_head_en = 1'h1;
  assign head_pop_head_addr = io_pop_bits;
  assign head_pop_head_data = head[head_pop_head_addr]; // @[ListBuffer.scala 46:18]
  assign head_MPORT_2_data = freeIdx[1:0];
  assign head_MPORT_2_addr = io_push_bits_index;
  assign head_MPORT_2_mask = 1'h1;
  assign head_MPORT_2_en = _T & _GEN_7;
  assign head_MPORT_6_data = _T_14[1:0];
  assign head_MPORT_6_addr = io_pop_bits;
  assign head_MPORT_6_mask = 1'h1;
  assign head_MPORT_6_en = io_pop_valid;
  assign tail_push_tail_en = 1'h1;
  assign tail_push_tail_addr = io_push_bits_index;
  assign tail_push_tail_data = tail[tail_push_tail_addr]; // @[ListBuffer.scala 47:18]
  assign tail_MPORT_4_en = io_pop_valid;
  assign tail_MPORT_4_addr = io_pop_bits;
  assign tail_MPORT_4_data = tail[tail_MPORT_4_addr]; // @[ListBuffer.scala 47:18]
  assign tail_MPORT_3_data = freeIdx[1:0];
  assign tail_MPORT_3_addr = io_push_bits_index;
  assign tail_MPORT_3_mask = 1'h1;
  assign tail_MPORT_3_en = io_push_ready & io_push_valid;
  assign next_MPORT_5_en = io_pop_valid;
  assign next_MPORT_5_addr = head_pop_head_data;
  assign next_MPORT_5_data = next[next_MPORT_5_addr]; // @[ListBuffer.scala 49:18]
  assign next_MPORT_1_data = freeIdx[1:0];
  assign next_MPORT_1_addr = tail_push_tail_data;
  assign next_MPORT_1_mask = 1'h1;
  assign next_MPORT_1_en = _T & push_valid;
  assign data_data_io_data_MPORT_en = 1'h1;
  assign data_data_io_data_MPORT_addr = head_pop_head_data;
  assign data_data_io_data_MPORT_data = data_data[data_data_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  assign data_data_MPORT_data = io_push_bits_data_data;
  assign data_data_MPORT_addr = freeIdx[1:0];
  assign data_data_MPORT_mask = 1'h1;
  assign data_data_MPORT_en = io_push_ready & io_push_valid;
  assign data_corrupt_io_data_MPORT_en = 1'h1;
  assign data_corrupt_io_data_MPORT_addr = head_pop_head_data;
  assign data_corrupt_io_data_MPORT_data = data_corrupt[data_corrupt_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  assign data_corrupt_MPORT_data = io_push_bits_data_corrupt;
  assign data_corrupt_MPORT_addr = freeIdx[1:0];
  assign data_corrupt_MPORT_mask = 1'h1;
  assign data_corrupt_MPORT_en = io_push_ready & io_push_valid;
  assign io_push_ready = ~(&used); // @[ListBuffer.scala 63:20]
  assign io_valid = valid; // @[ListBuffer.scala 81:12]
  assign io_data_data = data_data_io_data_MPORT_data; // @[ListBuffer.scala 80:11]
  assign io_data_corrupt = data_corrupt_io_data_MPORT_data; // @[ListBuffer.scala 80:11]
  always @(posedge clock) begin
    if (head_MPORT_2_en & head_MPORT_2_mask) begin
      head[head_MPORT_2_addr] <= head_MPORT_2_data; // @[ListBuffer.scala 46:18]
    end
    if (head_MPORT_6_en & head_MPORT_6_mask) begin
      head[head_MPORT_6_addr] <= head_MPORT_6_data; // @[ListBuffer.scala 46:18]
    end
    if (tail_MPORT_3_en & tail_MPORT_3_mask) begin
      tail[tail_MPORT_3_addr] <= tail_MPORT_3_data; // @[ListBuffer.scala 47:18]
    end
    if (next_MPORT_1_en & next_MPORT_1_mask) begin
      next[next_MPORT_1_addr] <= next_MPORT_1_data; // @[ListBuffer.scala 49:18]
    end
    if (data_data_MPORT_en & data_data_MPORT_mask) begin
      data_data[data_data_MPORT_addr] <= data_data_MPORT_data; // @[ListBuffer.scala 50:18]
    end
    if (data_corrupt_MPORT_en & data_corrupt_MPORT_mask) begin
      data_corrupt[data_corrupt_MPORT_addr] <= data_corrupt_MPORT_data; // @[ListBuffer.scala 50:18]
    end
    if (reset) begin // @[ListBuffer.scala 45:22]
      valid <= 2'h0; // @[ListBuffer.scala 45:22]
    end else begin
      valid <= _valid_T_2;
    end
    if (reset) begin // @[ListBuffer.scala 48:22]
      used <= 4'h0; // @[ListBuffer.scala 48:22]
    end else begin
      used <= _used_T_2;
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~io_pop_valid | _T_3[0])) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at ListBuffer.scala:84 assert (!io.pop.fire() || (io.valid)(io.pop.bits))\n"); // @[ListBuffer.scala 84:10]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~io_pop_valid | _T_3[0]) & ~reset) begin
          $fatal; // @[ListBuffer.scala 84:10]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    head[initvar] = _RAND_0[1:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    tail[initvar] = _RAND_1[1:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    next[initvar] = _RAND_2[1:0];
  _RAND_3 = {2{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    data_data[initvar] = _RAND_3[63:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    data_corrupt[initvar] = _RAND_4[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_5 = {1{`RANDOM}};
  valid = _RAND_5[1:0];
  _RAND_6 = {1{`RANDOM}};
  used = _RAND_6[3:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module SinkC(
  input         clock,
  input         reset,
  input         io_req_ready,
  output        io_req_valid,
  output [2:0]  io_req_bits_opcode,
  output [2:0]  io_req_bits_param,
  output [2:0]  io_req_bits_size,
  output [2:0]  io_req_bits_source,
  output [24:0] io_req_bits_tag,
  output [3:0]  io_req_bits_offset,
  output [5:0]  io_req_bits_put,
  output [2:0]  io_req_bits_set,
  output        io_resp_valid,
  output        io_resp_bits_last,
  output [2:0]  io_resp_bits_set,
  output [24:0] io_resp_bits_tag,
  output [2:0]  io_resp_bits_source,
  output [2:0]  io_resp_bits_param,
  output        io_resp_bits_data,
  output        io_c_ready,
  input         io_c_valid,
  input  [2:0]  io_c_bits_opcode,
  input  [2:0]  io_c_bits_param,
  input  [2:0]  io_c_bits_size,
  input  [31:0] io_c_bits_address,
  input  [63:0] io_c_bits_data,
  input         io_c_bits_corrupt,
  output [2:0]  io_set,
  input         io_way,
  input         io_bs_adr_ready,
  output        io_bs_adr_valid,
  output        io_bs_adr_bits_noop,
  output        io_bs_adr_bits_way,
  output [2:0]  io_bs_adr_bits_set,
  output        io_bs_adr_bits_beat,
  output        io_bs_adr_bits_mask,
  output [63:0] io_bs_dat_data,
  output        io_rel_pop_ready,
  input         io_rel_pop_valid,
  input  [5:0]  io_rel_pop_bits_index,
  input         io_rel_pop_bits_last,
  output [63:0] io_rel_beat_data,
  output        io_rel_beat_corrupt
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [63:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
`endif // RANDOMIZE_REG_INIT
  wire  c_clock; // @[Decoupled.scala 377:21]
  wire  c_reset; // @[Decoupled.scala 377:21]
  wire  c_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  c_io_enq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] c_io_enq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [2:0] c_io_enq_bits_param; // @[Decoupled.scala 377:21]
  wire [2:0] c_io_enq_bits_size; // @[Decoupled.scala 377:21]
  wire [31:0] c_io_enq_bits_address; // @[Decoupled.scala 377:21]
  wire [63:0] c_io_enq_bits_data; // @[Decoupled.scala 377:21]
  wire  c_io_enq_bits_corrupt; // @[Decoupled.scala 377:21]
  wire  c_io_deq_ready; // @[Decoupled.scala 377:21]
  wire  c_io_deq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] c_io_deq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [2:0] c_io_deq_bits_param; // @[Decoupled.scala 377:21]
  wire [2:0] c_io_deq_bits_size; // @[Decoupled.scala 377:21]
  wire [2:0] c_io_deq_bits_source; // @[Decoupled.scala 377:21]
  wire [31:0] c_io_deq_bits_address; // @[Decoupled.scala 377:21]
  wire [63:0] c_io_deq_bits_data; // @[Decoupled.scala 377:21]
  wire  c_io_deq_bits_corrupt; // @[Decoupled.scala 377:21]
  wire  io_bs_adr_q_clock; // @[Decoupled.scala 377:21]
  wire  io_bs_adr_q_reset; // @[Decoupled.scala 377:21]
  wire  io_bs_adr_q_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  io_bs_adr_q_io_enq_valid; // @[Decoupled.scala 377:21]
  wire  io_bs_adr_q_io_enq_bits_noop; // @[Decoupled.scala 377:21]
  wire  io_bs_adr_q_io_enq_bits_way; // @[Decoupled.scala 377:21]
  wire [2:0] io_bs_adr_q_io_enq_bits_set; // @[Decoupled.scala 377:21]
  wire  io_bs_adr_q_io_enq_bits_beat; // @[Decoupled.scala 377:21]
  wire  io_bs_adr_q_io_deq_ready; // @[Decoupled.scala 377:21]
  wire  io_bs_adr_q_io_deq_valid; // @[Decoupled.scala 377:21]
  wire  io_bs_adr_q_io_deq_bits_noop; // @[Decoupled.scala 377:21]
  wire  io_bs_adr_q_io_deq_bits_way; // @[Decoupled.scala 377:21]
  wire [2:0] io_bs_adr_q_io_deq_bits_set; // @[Decoupled.scala 377:21]
  wire  io_bs_adr_q_io_deq_bits_beat; // @[Decoupled.scala 377:21]
  wire  io_bs_adr_q_io_deq_bits_mask; // @[Decoupled.scala 377:21]
  wire  putbuffer_clock; // @[SinkC.scala 109:27]
  wire  putbuffer_reset; // @[SinkC.scala 109:27]
  wire  putbuffer_io_push_ready; // @[SinkC.scala 109:27]
  wire  putbuffer_io_push_valid; // @[SinkC.scala 109:27]
  wire  putbuffer_io_push_bits_index; // @[SinkC.scala 109:27]
  wire [63:0] putbuffer_io_push_bits_data_data; // @[SinkC.scala 109:27]
  wire  putbuffer_io_push_bits_data_corrupt; // @[SinkC.scala 109:27]
  wire [1:0] putbuffer_io_valid; // @[SinkC.scala 109:27]
  wire  putbuffer_io_pop_valid; // @[SinkC.scala 109:27]
  wire  putbuffer_io_pop_bits; // @[SinkC.scala 109:27]
  wire [63:0] putbuffer_io_data_data; // @[SinkC.scala 109:27]
  wire  putbuffer_io_data_corrupt; // @[SinkC.scala 109:27]
  wire [7:0] offset_lo_lo = {c_io_deq_bits_address[7],c_io_deq_bits_address[6],c_io_deq_bits_address[5],
    c_io_deq_bits_address[4],c_io_deq_bits_address[3],c_io_deq_bits_address[2],c_io_deq_bits_address[1],
    c_io_deq_bits_address[0]}; // @[Cat.scala 33:92]
  wire [15:0] offset_lo = {c_io_deq_bits_address[15],c_io_deq_bits_address[14],c_io_deq_bits_address[13],
    c_io_deq_bits_address[12],c_io_deq_bits_address[11],c_io_deq_bits_address[10],c_io_deq_bits_address[9],
    c_io_deq_bits_address[8],offset_lo_lo}; // @[Cat.scala 33:92]
  wire [7:0] offset_hi_lo = {c_io_deq_bits_address[23],c_io_deq_bits_address[22],c_io_deq_bits_address[21],
    c_io_deq_bits_address[20],c_io_deq_bits_address[19],c_io_deq_bits_address[18],c_io_deq_bits_address[17],
    c_io_deq_bits_address[16]}; // @[Cat.scala 33:92]
  wire [31:0] offset = {c_io_deq_bits_address[31],c_io_deq_bits_address[30],c_io_deq_bits_address[29],
    c_io_deq_bits_address[28],c_io_deq_bits_address[27],c_io_deq_bits_address[26],c_io_deq_bits_address[25],
    c_io_deq_bits_address[24],offset_hi_lo,offset_lo}; // @[Cat.scala 33:92]
  wire [27:0] set = offset[31:4]; // @[Parameters.scala 212:22]
  wire [2:0] set_1 = set[2:0]; // @[Parameters.scala 214:28]
  wire  _T = c_io_deq_ready & c_io_deq_valid; // @[Decoupled.scala 52:35]
  wire [10:0] _beats1_decode_T_1 = 11'hf << c_io_deq_bits_size; // @[package.scala 234:77]
  wire [3:0] _beats1_decode_T_3 = ~_beats1_decode_T_1[3:0]; // @[package.scala 234:46]
  wire  beats1_decode = _beats1_decode_T_3[3]; // @[Edges.scala 219:59]
  wire  beats1_opdata = c_io_deq_bits_opcode[0]; // @[Edges.scala 101:36]
  wire  beats1 = beats1_opdata & beats1_decode; // @[Edges.scala 220:14]
  reg  counter; // @[Edges.scala 228:27]
  wire  counter1 = counter - 1'h1; // @[Edges.scala 229:28]
  wire  first = ~counter; // @[Edges.scala 230:25]
  wire  last = counter | ~beats1; // @[Edges.scala 231:37]
  wire  beat = beats1 & ~counter1; // @[Edges.scala 233:25]
  wire  raw_resp = c_io_deq_bits_opcode == 3'h4 | c_io_deq_bits_opcode == 3'h5; // @[SinkC.scala 72:58]
  reg  resp_r; // @[Reg.scala 19:16]
  wire  _GEN_1 = c_io_deq_valid ? raw_resp : resp_r; // @[Reg.scala 19:16 20:{18,22}]
  reg [2:0] io_set_r; // @[Reg.scala 19:16]
  wire  bs_adr_ready = io_bs_adr_q_io_enq_ready; // @[Decoupled.scala 381:17 SinkC.scala 90:22]
  wire  bs_adr_valid = _GEN_1 & (~first | c_io_deq_valid & beats1_opdata); // @[SinkC.scala 93:30]
  wire  _io_bs_dat_data_T = bs_adr_ready & bs_adr_valid; // @[Decoupled.scala 52:35]
  reg [63:0] io_bs_dat_data_r; // @[Reg.scala 19:16]
  wire  _bs_adr_bits_beat_T_1 = beat + bs_adr_ready; // @[SinkC.scala 97:59]
  reg  bs_adr_bits_beat_r; // @[Reg.scala 19:16]
  wire  _io_resp_valid_T_4 = ~beats1_opdata | bs_adr_ready; // @[SinkC.scala 101:70]
  reg [1:0] lists; // @[SinkC.scala 110:24]
  wire  _T_18 = ~_GEN_1 & c_io_deq_valid; // @[SinkC.scala 132:17]
  wire  _T_19 = ~_GEN_1 & c_io_deq_valid & first; // @[SinkC.scala 132:28]
  wire  req_block = first & ~io_req_ready; // @[SinkC.scala 120:27]
  wire  _T_21 = ~req_block; // @[SinkC.scala 132:51]
  wire  buf_block = beats1_opdata & ~putbuffer_io_push_ready; // @[SinkC.scala 121:29]
  wire  _T_23 = ~buf_block; // @[SinkC.scala 132:65]
  wire [1:0] _freeOH_T = ~lists; // @[SinkC.scala 117:27]
  wire [2:0] _freeOH_T_1 = {_freeOH_T, 1'h0}; // @[package.scala 244:48]
  wire [1:0] _freeOH_T_3 = _freeOH_T | _freeOH_T_1[1:0]; // @[package.scala 244:43]
  wire [2:0] _freeOH_T_5 = {_freeOH_T_3, 1'h0}; // @[SinkC.scala 117:35]
  wire [2:0] _freeOH_T_6 = ~_freeOH_T_5; // @[SinkC.scala 117:18]
  wire [2:0] _GEN_8 = {{1'd0}, _freeOH_T}; // @[SinkC.scala 117:41]
  wire [2:0] freeOH = _freeOH_T_6 & _GEN_8; // @[SinkC.scala 117:41]
  wire [2:0] _GEN_5 = ~_GEN_1 & c_io_deq_valid & first & beats1_opdata & ~req_block & ~buf_block ? freeOH : 3'h0; // @[SinkC.scala 132:{77,89}]
  wire [1:0] lists_set = _GEN_5[1:0];
  wire [1:0] _lists_T = lists | lists_set; // @[SinkC.scala 114:21]
  wire  _T_25 = io_rel_pop_ready & io_rel_pop_valid; // @[Decoupled.scala 52:35]
  wire  lists_clr_shiftAmount = io_rel_pop_bits_index[0]; // @[OneHot.scala 63:49]
  wire [1:0] _lists_clr_T = 2'h1 << lists_clr_shiftAmount; // @[OneHot.scala 64:12]
  wire [1:0] lists_clr = _T_25 & io_rel_pop_bits_last ? _lists_clr_T : 2'h0; // @[SinkC.scala 157:54 158:17]
  wire [1:0] _lists_T_1 = ~lists_clr; // @[SinkC.scala 114:36]
  wire [1:0] _lists_T_2 = _lists_T & _lists_T_1; // @[SinkC.scala 114:34]
  wire  free = ~(&lists); // @[SinkC.scala 116:16]
  wire  freeIdx_hi = freeOH[2]; // @[OneHot.scala 30:18]
  wire [1:0] freeIdx_lo = freeOH[1:0]; // @[OneHot.scala 31:18]
  wire  _freeIdx_T = |freeIdx_hi; // @[OneHot.scala 32:14]
  wire [1:0] _GEN_9 = {{1'd0}, freeIdx_hi}; // @[OneHot.scala 32:28]
  wire [1:0] _freeIdx_T_1 = _GEN_9 | freeIdx_lo; // @[OneHot.scala 32:28]
  wire [1:0] freeIdx = {_freeIdx_T,_freeIdx_T_1[1]}; // @[Cat.scala 33:92]
  wire  set_block = beats1_opdata & first & ~free; // @[SinkC.scala 122:38]
  wire  _c_io_deq_ready_T_5 = ~set_block; // @[SinkC.scala 128:84]
  reg [1:0] put_r; // @[Reg.scala 19:16]
  wire [1:0] _GEN_6 = first ? freeIdx : put_r; // @[Reg.scala 19:16 20:{18,22}]
  wire [1:0] _io_rel_pop_ready_T = putbuffer_io_valid >> io_rel_pop_bits_index; // @[SinkC.scala 154:43]
  Queue_26 c ( // @[Decoupled.scala 377:21]
    .clock(c_clock),
    .reset(c_reset),
    .io_enq_ready(c_io_enq_ready),
    .io_enq_valid(c_io_enq_valid),
    .io_enq_bits_opcode(c_io_enq_bits_opcode),
    .io_enq_bits_param(c_io_enq_bits_param),
    .io_enq_bits_size(c_io_enq_bits_size),
    .io_enq_bits_address(c_io_enq_bits_address),
    .io_enq_bits_data(c_io_enq_bits_data),
    .io_enq_bits_corrupt(c_io_enq_bits_corrupt),
    .io_deq_ready(c_io_deq_ready),
    .io_deq_valid(c_io_deq_valid),
    .io_deq_bits_opcode(c_io_deq_bits_opcode),
    .io_deq_bits_param(c_io_deq_bits_param),
    .io_deq_bits_size(c_io_deq_bits_size),
    .io_deq_bits_source(c_io_deq_bits_source),
    .io_deq_bits_address(c_io_deq_bits_address),
    .io_deq_bits_data(c_io_deq_bits_data),
    .io_deq_bits_corrupt(c_io_deq_bits_corrupt)
  );
  Queue_27 io_bs_adr_q ( // @[Decoupled.scala 377:21]
    .clock(io_bs_adr_q_clock),
    .reset(io_bs_adr_q_reset),
    .io_enq_ready(io_bs_adr_q_io_enq_ready),
    .io_enq_valid(io_bs_adr_q_io_enq_valid),
    .io_enq_bits_noop(io_bs_adr_q_io_enq_bits_noop),
    .io_enq_bits_way(io_bs_adr_q_io_enq_bits_way),
    .io_enq_bits_set(io_bs_adr_q_io_enq_bits_set),
    .io_enq_bits_beat(io_bs_adr_q_io_enq_bits_beat),
    .io_deq_ready(io_bs_adr_q_io_deq_ready),
    .io_deq_valid(io_bs_adr_q_io_deq_valid),
    .io_deq_bits_noop(io_bs_adr_q_io_deq_bits_noop),
    .io_deq_bits_way(io_bs_adr_q_io_deq_bits_way),
    .io_deq_bits_set(io_bs_adr_q_io_deq_bits_set),
    .io_deq_bits_beat(io_bs_adr_q_io_deq_bits_beat),
    .io_deq_bits_mask(io_bs_adr_q_io_deq_bits_mask)
  );
  ListBuffer_1 putbuffer ( // @[SinkC.scala 109:27]
    .clock(putbuffer_clock),
    .reset(putbuffer_reset),
    .io_push_ready(putbuffer_io_push_ready),
    .io_push_valid(putbuffer_io_push_valid),
    .io_push_bits_index(putbuffer_io_push_bits_index),
    .io_push_bits_data_data(putbuffer_io_push_bits_data_data),
    .io_push_bits_data_corrupt(putbuffer_io_push_bits_data_corrupt),
    .io_valid(putbuffer_io_valid),
    .io_pop_valid(putbuffer_io_pop_valid),
    .io_pop_bits(putbuffer_io_pop_bits),
    .io_data_data(putbuffer_io_data_data),
    .io_data_corrupt(putbuffer_io_data_corrupt)
  );
  assign io_req_valid = _T_19 & _T_23 & _c_io_deq_ready_T_5; // @[SinkC.scala 130:61]
  assign io_req_bits_opcode = c_io_deq_bits_opcode; // @[SinkC.scala 138:24]
  assign io_req_bits_param = c_io_deq_bits_param; // @[SinkC.scala 139:24]
  assign io_req_bits_size = c_io_deq_bits_size; // @[SinkC.scala 140:24]
  assign io_req_bits_source = c_io_deq_bits_source; // @[SinkC.scala 141:24]
  assign io_req_bits_tag = set[27:3]; // @[Parameters.scala 213:19]
  assign io_req_bits_offset = offset[3:0]; // @[Parameters.scala 214:50]
  assign io_req_bits_put = {{4'd0}, _GEN_6}; // @[SinkC.scala 145:24]
  assign io_req_bits_set = set[2:0]; // @[Parameters.scala 214:28]
  assign io_resp_valid = _GEN_1 & c_io_deq_valid & (first | last) & (~beats1_opdata | bs_adr_ready); // @[SinkC.scala 101:57]
  assign io_resp_bits_last = counter | ~beats1; // @[Edges.scala 231:37]
  assign io_resp_bits_set = set[2:0]; // @[Parameters.scala 214:28]
  assign io_resp_bits_tag = set[27:3]; // @[Parameters.scala 213:19]
  assign io_resp_bits_source = c_io_deq_bits_source; // @[SinkC.scala 105:25]
  assign io_resp_bits_param = c_io_deq_bits_param; // @[SinkC.scala 106:25]
  assign io_resp_bits_data = c_io_deq_bits_opcode[0]; // @[Edges.scala 101:36]
  assign io_c_ready = c_io_enq_ready; // @[Decoupled.scala 381:17]
  assign io_set = c_io_deq_valid ? set_1 : io_set_r; // @[SinkC.scala 86:18]
  assign io_bs_adr_valid = io_bs_adr_q_io_deq_valid; // @[SinkC.scala 91:15]
  assign io_bs_adr_bits_noop = io_bs_adr_q_io_deq_bits_noop; // @[SinkC.scala 91:15]
  assign io_bs_adr_bits_way = io_bs_adr_q_io_deq_bits_way; // @[SinkC.scala 91:15]
  assign io_bs_adr_bits_set = io_bs_adr_q_io_deq_bits_set; // @[SinkC.scala 91:15]
  assign io_bs_adr_bits_beat = io_bs_adr_q_io_deq_bits_beat; // @[SinkC.scala 91:15]
  assign io_bs_adr_bits_mask = io_bs_adr_q_io_deq_bits_mask; // @[SinkC.scala 91:15]
  assign io_bs_dat_data = io_bs_dat_data_r; // @[SinkC.scala 92:22]
  assign io_rel_pop_ready = _io_rel_pop_ready_T[0]; // @[SinkC.scala 154:43]
  assign io_rel_beat_data = putbuffer_io_data_data; // @[SinkC.scala 155:17]
  assign io_rel_beat_corrupt = putbuffer_io_data_corrupt; // @[SinkC.scala 155:17]
  assign c_clock = clock;
  assign c_reset = reset;
  assign c_io_enq_valid = io_c_valid; // @[Decoupled.scala 379:22]
  assign c_io_enq_bits_opcode = io_c_bits_opcode; // @[Decoupled.scala 380:21]
  assign c_io_enq_bits_param = io_c_bits_param; // @[Decoupled.scala 380:21]
  assign c_io_enq_bits_size = io_c_bits_size; // @[Decoupled.scala 380:21]
  assign c_io_enq_bits_address = io_c_bits_address; // @[Decoupled.scala 380:21]
  assign c_io_enq_bits_data = io_c_bits_data; // @[Decoupled.scala 380:21]
  assign c_io_enq_bits_corrupt = io_c_bits_corrupt; // @[Decoupled.scala 380:21]
  assign c_io_deq_ready = raw_resp ? _io_resp_valid_T_4 : _T_21 & _T_23 & ~set_block; // @[SinkC.scala 128:19]
  assign io_bs_adr_q_clock = clock;
  assign io_bs_adr_q_reset = reset;
  assign io_bs_adr_q_io_enq_valid = _GEN_1 & (~first | c_io_deq_valid & beats1_opdata); // @[SinkC.scala 93:30]
  assign io_bs_adr_q_io_enq_bits_noop = ~c_io_deq_valid; // @[SinkC.scala 94:25]
  assign io_bs_adr_q_io_enq_bits_way = io_way; // @[SinkC.scala 90:22 95:22]
  assign io_bs_adr_q_io_enq_bits_set = io_set; // @[SinkC.scala 90:22 96:22]
  assign io_bs_adr_q_io_enq_bits_beat = c_io_deq_valid ? beat : bs_adr_bits_beat_r; // @[SinkC.scala 97:28]
  assign io_bs_adr_q_io_deq_ready = io_bs_adr_ready; // @[SinkC.scala 91:15]
  assign putbuffer_clock = clock;
  assign putbuffer_reset = reset;
  assign putbuffer_io_push_valid = _T_18 & beats1_opdata & _T_21 & _c_io_deq_ready_T_5; // @[SinkC.scala 131:74]
  assign putbuffer_io_push_bits_index = _GEN_6[0]; // @[SinkC.scala 147:34]
  assign putbuffer_io_push_bits_data_data = c_io_deq_bits_data; // @[SinkC.scala 148:41]
  assign putbuffer_io_push_bits_data_corrupt = c_io_deq_bits_corrupt; // @[SinkC.scala 149:41]
  assign putbuffer_io_pop_valid = io_rel_pop_ready & io_rel_pop_valid; // @[Decoupled.scala 52:35]
  assign putbuffer_io_pop_bits = io_rel_pop_bits_index[0]; // @[SinkC.scala 152:27]
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_T) begin // @[Edges.scala 234:17]
      if (first) begin // @[Edges.scala 235:21]
        counter <= beats1;
      end else begin
        counter <= counter1;
      end
    end
    if (c_io_deq_valid) begin // @[Reg.scala 20:18]
      resp_r <= raw_resp; // @[Reg.scala 20:22]
    end
    if (c_io_deq_valid) begin // @[Reg.scala 20:18]
      io_set_r <= set_1; // @[Reg.scala 20:22]
    end
    if (_io_bs_dat_data_T) begin // @[Reg.scala 20:18]
      io_bs_dat_data_r <= c_io_deq_bits_data; // @[Reg.scala 20:22]
    end
    if (c_io_deq_valid) begin // @[Reg.scala 20:18]
      bs_adr_bits_beat_r <= _bs_adr_bits_beat_T_1; // @[Reg.scala 20:22]
    end
    if (reset) begin // @[SinkC.scala 110:24]
      lists <= 2'h0; // @[SinkC.scala 110:24]
    end else begin
      lists <= _lists_T_2; // @[SinkC.scala 114:11]
    end
    if (first) begin // @[Reg.scala 20:18]
      put_r <= freeIdx; // @[Reg.scala 20:22]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(c_io_deq_valid & c_io_deq_bits_corrupt))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Data poisoning unavailable\n    at SinkC.scala:84 assert (!(c.valid && c.bits.corrupt), \"Data poisoning unavailable\")\n"
            ); // @[SinkC.scala 84:12]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(c_io_deq_valid & c_io_deq_bits_corrupt)) & ~reset) begin
          $fatal; // @[SinkC.scala 84:12]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  counter = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  resp_r = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  io_set_r = _RAND_2[2:0];
  _RAND_3 = {2{`RANDOM}};
  io_bs_dat_data_r = _RAND_3[63:0];
  _RAND_4 = {1{`RANDOM}};
  bs_adr_bits_beat_r = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  lists = _RAND_5[1:0];
  _RAND_6 = {1{`RANDOM}};
  put_r = _RAND_6[1:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_28(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [2:0]  io_enq_bits_opcode,
  input  [1:0]  io_enq_bits_param,
  input  [2:0]  io_enq_bits_size,
  input  [4:0]  io_enq_bits_source,
  input  [2:0]  io_enq_bits_sink,
  input         io_enq_bits_denied,
  input  [63:0] io_enq_bits_data,
  input         io_enq_bits_corrupt,
  input         io_deq_ready,
  output        io_deq_valid,
  output [2:0]  io_deq_bits_opcode,
  output [1:0]  io_deq_bits_param,
  output [2:0]  io_deq_bits_size,
  output [4:0]  io_deq_bits_source,
  output [2:0]  io_deq_bits_sink,
  output        io_deq_bits_denied,
  output [63:0] io_deq_bits_data,
  output        io_deq_bits_corrupt
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [63:0] _RAND_6;
  reg [31:0] _RAND_7;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
`endif // RANDOMIZE_REG_INIT
  reg [2:0] ram_opcode [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_opcode_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_opcode_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_opcode_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_opcode_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_en; // @[Decoupled.scala 275:95]
  reg [1:0] ram_param [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_param_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [1:0] ram_param_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [1:0] ram_param_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] ram_size [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_size_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_size_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_en; // @[Decoupled.scala 275:95]
  reg [4:0] ram_source [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_source_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_source_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [4:0] ram_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [4:0] ram_source_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] ram_sink [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_sink_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_sink_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_sink_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_sink_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_sink_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_sink_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_sink_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_denied [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_denied_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_denied_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_denied_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_denied_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_denied_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_denied_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_denied_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_data [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_corrupt [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_en; // @[Decoupled.scala 275:95]
  reg  enq_ptr_value; // @[Counter.scala 61:40]
  reg  deq_ptr_value; // @[Counter.scala 61:40]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  ptr_match = enq_ptr_value == deq_ptr_value; // @[Decoupled.scala 279:33]
  wire  empty = ptr_match & ~maybe_full; // @[Decoupled.scala 280:25]
  wire  full = ptr_match & maybe_full; // @[Decoupled.scala 281:24]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_deq = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign ram_opcode_io_deq_bits_MPORT_en = 1'h1;
  assign ram_opcode_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_opcode_io_deq_bits_MPORT_data = ram_opcode[ram_opcode_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_opcode_MPORT_data = io_enq_bits_opcode;
  assign ram_opcode_MPORT_addr = enq_ptr_value;
  assign ram_opcode_MPORT_mask = 1'h1;
  assign ram_opcode_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_param_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_param_io_deq_bits_MPORT_data = ram_param[ram_param_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_MPORT_data = io_enq_bits_param;
  assign ram_param_MPORT_addr = enq_ptr_value;
  assign ram_param_MPORT_mask = 1'h1;
  assign ram_param_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_size_io_deq_bits_MPORT_en = 1'h1;
  assign ram_size_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_size_io_deq_bits_MPORT_data = ram_size[ram_size_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_size_MPORT_data = io_enq_bits_size;
  assign ram_size_MPORT_addr = enq_ptr_value;
  assign ram_size_MPORT_mask = 1'h1;
  assign ram_size_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_source_io_deq_bits_MPORT_en = 1'h1;
  assign ram_source_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_source_io_deq_bits_MPORT_data = ram_source[ram_source_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_source_MPORT_data = io_enq_bits_source;
  assign ram_source_MPORT_addr = enq_ptr_value;
  assign ram_source_MPORT_mask = 1'h1;
  assign ram_source_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_sink_io_deq_bits_MPORT_en = 1'h1;
  assign ram_sink_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_sink_io_deq_bits_MPORT_data = ram_sink[ram_sink_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_sink_MPORT_data = io_enq_bits_sink;
  assign ram_sink_MPORT_addr = enq_ptr_value;
  assign ram_sink_MPORT_mask = 1'h1;
  assign ram_sink_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_denied_io_deq_bits_MPORT_en = 1'h1;
  assign ram_denied_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_denied_io_deq_bits_MPORT_data = ram_denied[ram_denied_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_denied_MPORT_data = io_enq_bits_denied;
  assign ram_denied_MPORT_addr = enq_ptr_value;
  assign ram_denied_MPORT_mask = 1'h1;
  assign ram_denied_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_data_io_deq_bits_MPORT_en = 1'h1;
  assign ram_data_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_data_io_deq_bits_MPORT_data = ram_data[ram_data_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_data_MPORT_data = io_enq_bits_data;
  assign ram_data_MPORT_addr = enq_ptr_value;
  assign ram_data_MPORT_mask = 1'h1;
  assign ram_data_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_corrupt_io_deq_bits_MPORT_en = 1'h1;
  assign ram_corrupt_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_corrupt_io_deq_bits_MPORT_data = ram_corrupt[ram_corrupt_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_corrupt_MPORT_data = io_enq_bits_corrupt;
  assign ram_corrupt_MPORT_addr = enq_ptr_value;
  assign ram_corrupt_MPORT_mask = 1'h1;
  assign ram_corrupt_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = ~full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_opcode = ram_opcode_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_param = ram_param_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_size = ram_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_source = ram_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_sink = ram_sink_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_denied = ram_denied_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_data = ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_corrupt = ram_corrupt_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_opcode_MPORT_en & ram_opcode_MPORT_mask) begin
      ram_opcode[ram_opcode_MPORT_addr] <= ram_opcode_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_MPORT_en & ram_param_MPORT_mask) begin
      ram_param[ram_param_MPORT_addr] <= ram_param_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_size_MPORT_en & ram_size_MPORT_mask) begin
      ram_size[ram_size_MPORT_addr] <= ram_size_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_source_MPORT_en & ram_source_MPORT_mask) begin
      ram_source[ram_source_MPORT_addr] <= ram_source_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_sink_MPORT_en & ram_sink_MPORT_mask) begin
      ram_sink[ram_sink_MPORT_addr] <= ram_sink_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_denied_MPORT_en & ram_denied_MPORT_mask) begin
      ram_denied[ram_denied_MPORT_addr] <= ram_denied_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_data_MPORT_en & ram_data_MPORT_mask) begin
      ram_data[ram_data_MPORT_addr] <= ram_data_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_corrupt_MPORT_en & ram_corrupt_MPORT_mask) begin
      ram_corrupt[ram_corrupt_MPORT_addr] <= ram_corrupt_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Counter.scala 61:40]
      enq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_enq) begin // @[Decoupled.scala 288:16]
      enq_ptr_value <= enq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Counter.scala 61:40]
      deq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_deq) begin // @[Decoupled.scala 292:16]
      deq_ptr_value <= deq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_opcode[initvar] = _RAND_0[2:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_param[initvar] = _RAND_1[1:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_size[initvar] = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_source[initvar] = _RAND_3[4:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_sink[initvar] = _RAND_4[2:0];
  _RAND_5 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_denied[initvar] = _RAND_5[0:0];
  _RAND_6 = {2{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_data[initvar] = _RAND_6[63:0];
  _RAND_7 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_corrupt[initvar] = _RAND_7[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_8 = {1{`RANDOM}};
  enq_ptr_value = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  deq_ptr_value = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  maybe_full = _RAND_10[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module SinkD(
  input         clock,
  input         reset,
  output        io_resp_valid,
  output        io_resp_bits_last,
  output [2:0]  io_resp_bits_opcode,
  output [2:0]  io_resp_bits_param,
  output [4:0]  io_resp_bits_source,
  output [2:0]  io_resp_bits_sink,
  output        io_resp_bits_denied,
  output        io_d_ready,
  input         io_d_valid,
  input  [2:0]  io_d_bits_opcode,
  input  [1:0]  io_d_bits_param,
  input  [2:0]  io_d_bits_size,
  input  [4:0]  io_d_bits_source,
  input  [2:0]  io_d_bits_sink,
  input         io_d_bits_denied,
  input  [63:0] io_d_bits_data,
  input         io_d_bits_corrupt,
  output [4:0]  io_source,
  input         io_way,
  input  [2:0]  io_set,
  input         io_bs_adr_ready,
  output        io_bs_adr_valid,
  output        io_bs_adr_bits_noop,
  output        io_bs_adr_bits_way,
  output [2:0]  io_bs_adr_bits_set,
  output        io_bs_adr_bits_beat,
  output [63:0] io_bs_dat_data,
  output [2:0]  io_grant_req_set,
  output        io_grant_req_way,
  input         io_grant_safe
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
`endif // RANDOMIZE_REG_INIT
  wire  d_clock; // @[Decoupled.scala 377:21]
  wire  d_reset; // @[Decoupled.scala 377:21]
  wire  d_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  d_io_enq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] d_io_enq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [1:0] d_io_enq_bits_param; // @[Decoupled.scala 377:21]
  wire [2:0] d_io_enq_bits_size; // @[Decoupled.scala 377:21]
  wire [4:0] d_io_enq_bits_source; // @[Decoupled.scala 377:21]
  wire [2:0] d_io_enq_bits_sink; // @[Decoupled.scala 377:21]
  wire  d_io_enq_bits_denied; // @[Decoupled.scala 377:21]
  wire [63:0] d_io_enq_bits_data; // @[Decoupled.scala 377:21]
  wire  d_io_enq_bits_corrupt; // @[Decoupled.scala 377:21]
  wire  d_io_deq_ready; // @[Decoupled.scala 377:21]
  wire  d_io_deq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] d_io_deq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [1:0] d_io_deq_bits_param; // @[Decoupled.scala 377:21]
  wire [2:0] d_io_deq_bits_size; // @[Decoupled.scala 377:21]
  wire [4:0] d_io_deq_bits_source; // @[Decoupled.scala 377:21]
  wire [2:0] d_io_deq_bits_sink; // @[Decoupled.scala 377:21]
  wire  d_io_deq_bits_denied; // @[Decoupled.scala 377:21]
  wire [63:0] d_io_deq_bits_data; // @[Decoupled.scala 377:21]
  wire  d_io_deq_bits_corrupt; // @[Decoupled.scala 377:21]
  wire  _T = d_io_deq_ready & d_io_deq_valid; // @[Decoupled.scala 52:35]
  wire [11:0] _beats1_decode_T_1 = 12'h1f << d_io_deq_bits_size; // @[package.scala 234:77]
  wire [4:0] _beats1_decode_T_3 = ~_beats1_decode_T_1[4:0]; // @[package.scala 234:46]
  wire [1:0] beats1_decode = _beats1_decode_T_3[4:3]; // @[Edges.scala 219:59]
  wire  beats1_opdata = d_io_deq_bits_opcode[0]; // @[Edges.scala 105:36]
  wire [1:0] beats1 = beats1_opdata ? beats1_decode : 2'h0; // @[Edges.scala 220:14]
  reg [1:0] counter; // @[Edges.scala 228:27]
  wire [1:0] counter1 = counter - 2'h1; // @[Edges.scala 229:28]
  wire  first = counter == 2'h0; // @[Edges.scala 230:25]
  wire  last = counter == 2'h1 | beats1 == 2'h0; // @[Edges.scala 231:37]
  wire [1:0] _count_T = ~counter1; // @[Edges.scala 233:27]
  wire [1:0] beat = beats1 & _count_T; // @[Edges.scala 233:25]
  reg [4:0] io_source_r; // @[Reg.scala 19:16]
  wire  _d_io_deq_ready_T = ~first; // @[SinkD.scala 62:34]
  wire [1:0] _GEN_3 = {{1'd0}, io_bs_adr_ready}; // @[SinkD.scala 77:60]
  wire [1:0] _io_bs_adr_bits_beat_T_1 = beat + _GEN_3; // @[SinkD.scala 77:60]
  reg [1:0] io_bs_adr_bits_beat_r; // @[Reg.scala 19:16]
  wire [1:0] _io_bs_adr_bits_beat_T_2 = d_io_deq_valid ? beat : io_bs_adr_bits_beat_r; // @[SinkD.scala 77:29]
  Queue_28 d ( // @[Decoupled.scala 377:21]
    .clock(d_clock),
    .reset(d_reset),
    .io_enq_ready(d_io_enq_ready),
    .io_enq_valid(d_io_enq_valid),
    .io_enq_bits_opcode(d_io_enq_bits_opcode),
    .io_enq_bits_param(d_io_enq_bits_param),
    .io_enq_bits_size(d_io_enq_bits_size),
    .io_enq_bits_source(d_io_enq_bits_source),
    .io_enq_bits_sink(d_io_enq_bits_sink),
    .io_enq_bits_denied(d_io_enq_bits_denied),
    .io_enq_bits_data(d_io_enq_bits_data),
    .io_enq_bits_corrupt(d_io_enq_bits_corrupt),
    .io_deq_ready(d_io_deq_ready),
    .io_deq_valid(d_io_deq_valid),
    .io_deq_bits_opcode(d_io_deq_bits_opcode),
    .io_deq_bits_param(d_io_deq_bits_param),
    .io_deq_bits_size(d_io_deq_bits_size),
    .io_deq_bits_source(d_io_deq_bits_source),
    .io_deq_bits_sink(d_io_deq_bits_sink),
    .io_deq_bits_denied(d_io_deq_bits_denied),
    .io_deq_bits_data(d_io_deq_bits_data),
    .io_deq_bits_corrupt(d_io_deq_bits_corrupt)
  );
  assign io_resp_valid = (first | last) & _T; // @[SinkD.scala 61:36]
  assign io_resp_bits_last = counter == 2'h1 | beats1 == 2'h0; // @[Edges.scala 231:37]
  assign io_resp_bits_opcode = d_io_deq_bits_opcode; // @[SinkD.scala 68:23]
  assign io_resp_bits_param = {{1'd0}, d_io_deq_bits_param}; // @[SinkD.scala 69:23]
  assign io_resp_bits_source = d_io_deq_bits_source; // @[SinkD.scala 70:23]
  assign io_resp_bits_sink = d_io_deq_bits_sink; // @[SinkD.scala 71:23]
  assign io_resp_bits_denied = d_io_deq_bits_denied; // @[SinkD.scala 72:23]
  assign io_d_ready = d_io_enq_ready; // @[Decoupled.scala 381:17]
  assign io_source = d_io_deq_valid ? d_io_deq_bits_source : io_source_r; // @[SinkD.scala 56:19]
  assign io_bs_adr_valid = _d_io_deq_ready_T | d_io_deq_valid & io_grant_safe; // @[SinkD.scala 63:29]
  assign io_bs_adr_bits_noop = ~d_io_deq_valid | ~beats1_opdata; // @[SinkD.scala 74:35]
  assign io_bs_adr_bits_way = io_way; // @[SinkD.scala 75:23]
  assign io_bs_adr_bits_set = io_set; // @[SinkD.scala 76:23]
  assign io_bs_adr_bits_beat = _io_bs_adr_bits_beat_T_2[0]; // @[SinkD.scala 77:23]
  assign io_bs_dat_data = d_io_deq_bits_data; // @[SinkD.scala 79:23]
  assign io_grant_req_set = io_set; // @[SinkD.scala 58:20]
  assign io_grant_req_way = io_way; // @[SinkD.scala 57:20]
  assign d_clock = clock;
  assign d_reset = reset;
  assign d_io_enq_valid = io_d_valid; // @[Decoupled.scala 379:22]
  assign d_io_enq_bits_opcode = io_d_bits_opcode; // @[Decoupled.scala 380:21]
  assign d_io_enq_bits_param = io_d_bits_param; // @[Decoupled.scala 380:21]
  assign d_io_enq_bits_size = io_d_bits_size; // @[Decoupled.scala 380:21]
  assign d_io_enq_bits_source = io_d_bits_source; // @[Decoupled.scala 380:21]
  assign d_io_enq_bits_sink = io_d_bits_sink; // @[Decoupled.scala 380:21]
  assign d_io_enq_bits_denied = io_d_bits_denied; // @[Decoupled.scala 380:21]
  assign d_io_enq_bits_data = io_d_bits_data; // @[Decoupled.scala 380:21]
  assign d_io_enq_bits_corrupt = io_d_bits_corrupt; // @[Decoupled.scala 380:21]
  assign d_io_deq_ready = io_bs_adr_ready & (~first | io_grant_safe); // @[SinkD.scala 62:30]
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      counter <= 2'h0; // @[Edges.scala 228:27]
    end else if (_T) begin // @[Edges.scala 234:17]
      if (first) begin // @[Edges.scala 235:21]
        if (beats1_opdata) begin // @[Edges.scala 220:14]
          counter <= beats1_decode;
        end else begin
          counter <= 2'h0;
        end
      end else begin
        counter <= counter1;
      end
    end
    if (d_io_deq_valid) begin // @[Reg.scala 20:18]
      io_source_r <= d_io_deq_bits_source; // @[Reg.scala 20:22]
    end
    if (d_io_deq_valid) begin // @[Reg.scala 20:18]
      io_bs_adr_bits_beat_r <= _io_bs_adr_bits_beat_T_1; // @[Reg.scala 20:22]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~(d_io_deq_valid & d_io_deq_bits_corrupt & ~d_io_deq_bits_denied))) begin
          $fwrite(32'h80000002,
            "Assertion failed: Data poisoning unsupported\n    at SinkD.scala:81 assert (!(d.valid && d.bits.corrupt && !d.bits.denied), \"Data poisoning unsupported\")\n"
            ); // @[SinkD.scala 81:10]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(d_io_deq_valid & d_io_deq_bits_corrupt & ~d_io_deq_bits_denied)) & ~reset) begin
          $fatal; // @[SinkD.scala 81:10]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  counter = _RAND_0[1:0];
  _RAND_1 = {1{`RANDOM}};
  io_source_r = _RAND_1[4:0];
  _RAND_2 = {1{`RANDOM}};
  io_bs_adr_bits_beat_r = _RAND_2[1:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module SinkE(
  output       io_resp_valid,
  output [4:0] io_resp_bits_sink,
  input        io_e_valid,
  input  [4:0] io_e_bits_sink
);
  assign io_resp_valid = io_e_valid; // @[SinkE.scala 44:19]
  assign io_resp_bits_sink = io_e_bits_sink; // @[SinkE.scala 45:23]
endmodule
module Queue_30(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [2:0]  io_enq_bits_set,
  input         io_enq_bits_way,
  input         io_enq_bits_data_dirty,
  input  [1:0]  io_enq_bits_data_state,
  input         io_enq_bits_data_clients,
  input  [24:0] io_enq_bits_data_tag,
  input         io_deq_ready,
  output        io_deq_valid,
  output [2:0]  io_deq_bits_set,
  output        io_deq_bits_way,
  output        io_deq_bits_data_dirty,
  output [1:0]  io_deq_bits_data_state,
  output        io_deq_bits_data_clients,
  output [24:0] io_deq_bits_data_tag
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_6;
`endif // RANDOMIZE_REG_INIT
  reg [2:0] ram_set [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_set_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_set_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_set_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_set_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_set_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_set_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_set_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_way [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_way_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_way_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_way_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_way_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_way_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_way_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_way_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_data_dirty [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_data_dirty_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_data_dirty_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_data_dirty_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_data_dirty_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_data_dirty_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_data_dirty_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_data_dirty_MPORT_en; // @[Decoupled.scala 275:95]
  reg [1:0] ram_data_state [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_data_state_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_data_state_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [1:0] ram_data_state_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [1:0] ram_data_state_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_data_state_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_data_state_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_data_state_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_data_clients [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_data_clients_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_data_clients_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_data_clients_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_data_clients_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_data_clients_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_data_clients_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_data_clients_MPORT_en; // @[Decoupled.scala 275:95]
  reg [24:0] ram_data_tag [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_data_tag_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_data_tag_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [24:0] ram_data_tag_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [24:0] ram_data_tag_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_data_tag_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_data_tag_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_data_tag_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_deq = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign ram_set_io_deq_bits_MPORT_en = 1'h1;
  assign ram_set_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_set_io_deq_bits_MPORT_data = ram_set[ram_set_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_set_MPORT_data = io_enq_bits_set;
  assign ram_set_MPORT_addr = 1'h0;
  assign ram_set_MPORT_mask = 1'h1;
  assign ram_set_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_way_io_deq_bits_MPORT_en = 1'h1;
  assign ram_way_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_way_io_deq_bits_MPORT_data = ram_way[ram_way_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_way_MPORT_data = io_enq_bits_way;
  assign ram_way_MPORT_addr = 1'h0;
  assign ram_way_MPORT_mask = 1'h1;
  assign ram_way_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_data_dirty_io_deq_bits_MPORT_en = 1'h1;
  assign ram_data_dirty_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_data_dirty_io_deq_bits_MPORT_data = ram_data_dirty[ram_data_dirty_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_data_dirty_MPORT_data = io_enq_bits_data_dirty;
  assign ram_data_dirty_MPORT_addr = 1'h0;
  assign ram_data_dirty_MPORT_mask = 1'h1;
  assign ram_data_dirty_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_data_state_io_deq_bits_MPORT_en = 1'h1;
  assign ram_data_state_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_data_state_io_deq_bits_MPORT_data = ram_data_state[ram_data_state_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_data_state_MPORT_data = io_enq_bits_data_state;
  assign ram_data_state_MPORT_addr = 1'h0;
  assign ram_data_state_MPORT_mask = 1'h1;
  assign ram_data_state_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_data_clients_io_deq_bits_MPORT_en = 1'h1;
  assign ram_data_clients_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_data_clients_io_deq_bits_MPORT_data = ram_data_clients[ram_data_clients_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_data_clients_MPORT_data = io_enq_bits_data_clients;
  assign ram_data_clients_MPORT_addr = 1'h0;
  assign ram_data_clients_MPORT_mask = 1'h1;
  assign ram_data_clients_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_data_tag_io_deq_bits_MPORT_en = 1'h1;
  assign ram_data_tag_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_data_tag_io_deq_bits_MPORT_data = ram_data_tag[ram_data_tag_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_data_tag_MPORT_data = io_enq_bits_data_tag;
  assign ram_data_tag_MPORT_addr = 1'h0;
  assign ram_data_tag_MPORT_mask = 1'h1;
  assign ram_data_tag_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = ~maybe_full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_set = ram_set_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_way = ram_way_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_data_dirty = ram_data_dirty_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_data_state = ram_data_state_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_data_clients = ram_data_clients_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_data_tag = ram_data_tag_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_set_MPORT_en & ram_set_MPORT_mask) begin
      ram_set[ram_set_MPORT_addr] <= ram_set_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_way_MPORT_en & ram_way_MPORT_mask) begin
      ram_way[ram_way_MPORT_addr] <= ram_way_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_data_dirty_MPORT_en & ram_data_dirty_MPORT_mask) begin
      ram_data_dirty[ram_data_dirty_MPORT_addr] <= ram_data_dirty_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_data_state_MPORT_en & ram_data_state_MPORT_mask) begin
      ram_data_state[ram_data_state_MPORT_addr] <= ram_data_state_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_data_clients_MPORT_en & ram_data_clients_MPORT_mask) begin
      ram_data_clients[ram_data_clients_MPORT_addr] <= ram_data_clients_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_data_tag_MPORT_en & ram_data_tag_MPORT_mask) begin
      ram_data_tag[ram_data_tag_MPORT_addr] <= ram_data_tag_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_set[initvar] = _RAND_0[2:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_way[initvar] = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_data_dirty[initvar] = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_data_state[initvar] = _RAND_3[1:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_data_clients[initvar] = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_data_tag[initvar] = _RAND_5[24:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_6 = {1{`RANDOM}};
  maybe_full = _RAND_6[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module MaxPeriodFibonacciLFSR_10(
  input   clock,
  input   reset,
  input   io_increment,
  output  io_out_0,
  output  io_out_1,
  output  io_out_2,
  output  io_out_3,
  output  io_out_4,
  output  io_out_5,
  output  io_out_6,
  output  io_out_7,
  output  io_out_8,
  output  io_out_9,
  output  io_out_10,
  output  io_out_11,
  output  io_out_12,
  output  io_out_13,
  output  io_out_14,
  output  io_out_15
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
`endif // RANDOMIZE_REG_INIT
  reg  state_0; // @[PRNG.scala 55:49]
  reg  state_1; // @[PRNG.scala 55:49]
  reg  state_2; // @[PRNG.scala 55:49]
  reg  state_3; // @[PRNG.scala 55:49]
  reg  state_4; // @[PRNG.scala 55:49]
  reg  state_5; // @[PRNG.scala 55:49]
  reg  state_6; // @[PRNG.scala 55:49]
  reg  state_7; // @[PRNG.scala 55:49]
  reg  state_8; // @[PRNG.scala 55:49]
  reg  state_9; // @[PRNG.scala 55:49]
  reg  state_10; // @[PRNG.scala 55:49]
  reg  state_11; // @[PRNG.scala 55:49]
  reg  state_12; // @[PRNG.scala 55:49]
  reg  state_13; // @[PRNG.scala 55:49]
  reg  state_14; // @[PRNG.scala 55:49]
  reg  state_15; // @[PRNG.scala 55:49]
  wire  _T_2 = state_15 ^ state_13 ^ state_12 ^ state_10; // @[LFSR.scala 15:41]
  wire  _GEN_15 = io_increment ? state_14 : state_15; // @[PRNG.scala 69:22 70:11 55:49]
  assign io_out_0 = state_0; // @[PRNG.scala 78:10]
  assign io_out_1 = state_1; // @[PRNG.scala 78:10]
  assign io_out_2 = state_2; // @[PRNG.scala 78:10]
  assign io_out_3 = state_3; // @[PRNG.scala 78:10]
  assign io_out_4 = state_4; // @[PRNG.scala 78:10]
  assign io_out_5 = state_5; // @[PRNG.scala 78:10]
  assign io_out_6 = state_6; // @[PRNG.scala 78:10]
  assign io_out_7 = state_7; // @[PRNG.scala 78:10]
  assign io_out_8 = state_8; // @[PRNG.scala 78:10]
  assign io_out_9 = state_9; // @[PRNG.scala 78:10]
  assign io_out_10 = state_10; // @[PRNG.scala 78:10]
  assign io_out_11 = state_11; // @[PRNG.scala 78:10]
  assign io_out_12 = state_12; // @[PRNG.scala 78:10]
  assign io_out_13 = state_13; // @[PRNG.scala 78:10]
  assign io_out_14 = state_14; // @[PRNG.scala 78:10]
  assign io_out_15 = state_15; // @[PRNG.scala 78:10]
  always @(posedge clock) begin
    if (reset) begin // @[PRNG.scala 55:49]
      state_0 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_0 <= _T_2; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_1 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_1 <= state_0; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_2 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_2 <= state_1; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_3 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_3 <= state_2; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_4 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_4 <= state_3; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_5 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_5 <= state_4; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_6 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_6 <= state_5; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_7 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_7 <= state_6; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_8 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_8 <= state_7; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_9 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_9 <= state_8; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_10 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_10 <= state_9; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_11 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_11 <= state_10; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_12 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_12 <= state_11; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_13 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_13 <= state_12; // @[PRNG.scala 70:11]
    end
    if (reset) begin // @[PRNG.scala 55:49]
      state_14 <= 1'h0; // @[PRNG.scala 55:49]
    end else if (io_increment) begin // @[PRNG.scala 69:22]
      state_14 <= state_13; // @[PRNG.scala 70:11]
    end
    state_15 <= reset | _GEN_15; // @[PRNG.scala 55:{49,49}]
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  state_0 = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  state_1 = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  state_2 = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  state_3 = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  state_4 = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  state_5 = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  state_6 = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  state_7 = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  state_8 = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  state_9 = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  state_10 = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  state_11 = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  state_12 = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  state_13 = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  state_14 = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  state_15 = _RAND_15[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Directory(
  input         clock,
  input         reset,
  output        io_write_ready,
  input         io_write_valid,
  input  [2:0]  io_write_bits_set,
  input         io_write_bits_way,
  input         io_write_bits_data_dirty,
  input  [1:0]  io_write_bits_data_state,
  input         io_write_bits_data_clients,
  input  [24:0] io_write_bits_data_tag,
  input         io_read_valid,
  input  [2:0]  io_read_bits_set,
  input  [24:0] io_read_bits_tag,
  output        io_result_bits_dirty,
  output [1:0]  io_result_bits_state,
  output        io_result_bits_clients,
  output [24:0] io_result_bits_tag,
  output        io_result_bits_hit,
  output        io_result_bits_way,
  output        io_ready
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_3;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
`endif // RANDOMIZE_REG_INIT
  reg [28:0] cc_dir_0 [0:7]; // @[DescribedSRAM.scala 19:26]
  wire  cc_dir_0_regout_en; // @[DescribedSRAM.scala 19:26]
  wire [2:0] cc_dir_0_regout_addr; // @[DescribedSRAM.scala 19:26]
  wire [28:0] cc_dir_0_regout_data; // @[DescribedSRAM.scala 19:26]
  wire [28:0] cc_dir_0_MPORT_data; // @[DescribedSRAM.scala 19:26]
  wire [2:0] cc_dir_0_MPORT_addr; // @[DescribedSRAM.scala 19:26]
  wire  cc_dir_0_MPORT_mask; // @[DescribedSRAM.scala 19:26]
  wire  cc_dir_0_MPORT_en; // @[DescribedSRAM.scala 19:26]
  reg  cc_dir_0_regout_en_pipe_0;
  reg [2:0] cc_dir_0_regout_addr_pipe_0;
  reg [28:0] cc_dir_1 [0:7]; // @[DescribedSRAM.scala 19:26]
  wire  cc_dir_1_regout_en; // @[DescribedSRAM.scala 19:26]
  wire [2:0] cc_dir_1_regout_addr; // @[DescribedSRAM.scala 19:26]
  wire [28:0] cc_dir_1_regout_data; // @[DescribedSRAM.scala 19:26]
  wire [28:0] cc_dir_1_MPORT_data; // @[DescribedSRAM.scala 19:26]
  wire [2:0] cc_dir_1_MPORT_addr; // @[DescribedSRAM.scala 19:26]
  wire  cc_dir_1_MPORT_mask; // @[DescribedSRAM.scala 19:26]
  wire  cc_dir_1_MPORT_en; // @[DescribedSRAM.scala 19:26]
  reg  cc_dir_1_regout_en_pipe_0;
  reg [2:0] cc_dir_1_regout_addr_pipe_0;
  wire  write_clock; // @[Decoupled.scala 377:21]
  wire  write_reset; // @[Decoupled.scala 377:21]
  wire  write_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  write_io_enq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] write_io_enq_bits_set; // @[Decoupled.scala 377:21]
  wire  write_io_enq_bits_way; // @[Decoupled.scala 377:21]
  wire  write_io_enq_bits_data_dirty; // @[Decoupled.scala 377:21]
  wire [1:0] write_io_enq_bits_data_state; // @[Decoupled.scala 377:21]
  wire  write_io_enq_bits_data_clients; // @[Decoupled.scala 377:21]
  wire [24:0] write_io_enq_bits_data_tag; // @[Decoupled.scala 377:21]
  wire  write_io_deq_ready; // @[Decoupled.scala 377:21]
  wire  write_io_deq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] write_io_deq_bits_set; // @[Decoupled.scala 377:21]
  wire  write_io_deq_bits_way; // @[Decoupled.scala 377:21]
  wire  write_io_deq_bits_data_dirty; // @[Decoupled.scala 377:21]
  wire [1:0] write_io_deq_bits_data_state; // @[Decoupled.scala 377:21]
  wire  write_io_deq_bits_data_clients; // @[Decoupled.scala 377:21]
  wire [24:0] write_io_deq_bits_data_tag; // @[Decoupled.scala 377:21]
  wire  victimLFSR_prng_clock; // @[PRNG.scala 91:22]
  wire  victimLFSR_prng_reset; // @[PRNG.scala 91:22]
  wire  victimLFSR_prng_io_increment; // @[PRNG.scala 91:22]
  wire  victimLFSR_prng_io_out_0; // @[PRNG.scala 91:22]
  wire  victimLFSR_prng_io_out_1; // @[PRNG.scala 91:22]
  wire  victimLFSR_prng_io_out_2; // @[PRNG.scala 91:22]
  wire  victimLFSR_prng_io_out_3; // @[PRNG.scala 91:22]
  wire  victimLFSR_prng_io_out_4; // @[PRNG.scala 91:22]
  wire  victimLFSR_prng_io_out_5; // @[PRNG.scala 91:22]
  wire  victimLFSR_prng_io_out_6; // @[PRNG.scala 91:22]
  wire  victimLFSR_prng_io_out_7; // @[PRNG.scala 91:22]
  wire  victimLFSR_prng_io_out_8; // @[PRNG.scala 91:22]
  wire  victimLFSR_prng_io_out_9; // @[PRNG.scala 91:22]
  wire  victimLFSR_prng_io_out_10; // @[PRNG.scala 91:22]
  wire  victimLFSR_prng_io_out_11; // @[PRNG.scala 91:22]
  wire  victimLFSR_prng_io_out_12; // @[PRNG.scala 91:22]
  wire  victimLFSR_prng_io_out_13; // @[PRNG.scala 91:22]
  wire  victimLFSR_prng_io_out_14; // @[PRNG.scala 91:22]
  wire  victimLFSR_prng_io_out_15; // @[PRNG.scala 91:22]
  reg [3:0] wipeCount; // @[Directory.scala 77:26]
  reg  wipeOff; // @[Directory.scala 78:24]
  wire  wipeDone = wipeCount[3]; // @[Directory.scala 79:27]
  wire [2:0] wipeSet = wipeCount[2:0]; // @[Directory.scala 80:26]
  wire  _T = ~wipeDone; // @[Directory.scala 83:9]
  wire  _T_2 = ~wipeDone & ~wipeOff; // @[Directory.scala 83:19]
  wire [3:0] _wipeCount_T_1 = wipeCount + 4'h1; // @[Directory.scala 83:57]
  wire  _T_3 = ~io_read_valid; // @[Directory.scala 84:23]
  wire  _T_6 = ~reset; // @[Directory.scala 84:10]
  wire  wen = _T_2 | write_io_deq_valid; // @[Directory.scala 88:37]
  wire [28:0] _T_16 = {write_io_deq_bits_data_dirty,write_io_deq_bits_data_state,write_io_deq_bits_data_clients,
    write_io_deq_bits_data_tag}; // @[Directory.scala 97:67]
  wire  shiftAmount = write_io_deq_bits_way; // @[OneHot.scala 63:49]
  wire [1:0] _T_20 = 2'h1 << shiftAmount; // @[OneHot.scala 64:12]
  reg  ren1; // @[Directory.scala 101:21]
  reg [24:0] tag; // @[Reg.scala 19:16]
  reg [2:0] set; // @[Reg.scala 19:16]
  wire [7:0] victimLFSR_lo = {victimLFSR_prng_io_out_7,victimLFSR_prng_io_out_6,victimLFSR_prng_io_out_5,
    victimLFSR_prng_io_out_4,victimLFSR_prng_io_out_3,victimLFSR_prng_io_out_2,victimLFSR_prng_io_out_1,
    victimLFSR_prng_io_out_0}; // @[PRNG.scala 95:17]
  wire [15:0] _victimLFSR_T = {victimLFSR_prng_io_out_15,victimLFSR_prng_io_out_14,victimLFSR_prng_io_out_13,
    victimLFSR_prng_io_out_12,victimLFSR_prng_io_out_11,victimLFSR_prng_io_out_10,victimLFSR_prng_io_out_9,
    victimLFSR_prng_io_out_8,victimLFSR_lo}; // @[PRNG.scala 95:17]
  wire [7:0] victimLFSR_lo_1 = {_victimLFSR_T[8],_victimLFSR_T[9],_victimLFSR_T[10],_victimLFSR_T[11],_victimLFSR_T[12],
    _victimLFSR_T[13],_victimLFSR_T[14],_victimLFSR_T[15]}; // @[compatibility.scala 627:9]
  wire [15:0] _victimLFSR_T_17 = {_victimLFSR_T[0],_victimLFSR_T[1],_victimLFSR_T[2],_victimLFSR_T[3],_victimLFSR_T[4],
    _victimLFSR_T[5],_victimLFSR_T[6],_victimLFSR_T[7],victimLFSR_lo_1}; // @[compatibility.scala 627:9]
  wire [9:0] victimLFSR = _victimLFSR_T_17[9:0]; // @[Directory.scala 113:46]
  wire  _victimLTE_T_1 = 10'h200 <= victimLFSR; // @[Directory.scala 115:43]
  wire [1:0] victimLTE = {_victimLTE_T_1,1'h1}; // @[Cat.scala 33:92]
  wire [2:0] victimSimp = {1'h0,victimLTE[1],1'h1}; // @[Cat.scala 33:92]
  wire [1:0] _victimWayOH_T_2 = ~victimSimp[2:1]; // @[Directory.scala 117:57]
  wire [1:0] victimWayOH = victimSimp[1:0] & _victimWayOH_T_2; // @[Directory.scala 117:55]
  wire  victimWay = victimWayOH[1]; // @[CircuitMath.scala 28:8]
  wire  _T_28 = ~ren1; // @[Directory.scala 119:11]
  wire [2:0] _T_37 = ~victimSimp; // @[Directory.scala 120:41]
  wire [2:0] _GEN_18 = {{1'd0}, victimSimp[2:1]}; // @[Directory.scala 120:39]
  wire [2:0] _T_38 = _GEN_18 & _T_37; // @[Directory.scala 120:39]
  wire [1:0] _T_47 = victimWayOH[0] + victimWay; // @[Bitwise.scala 51:90]
  wire  setQuash = write_io_deq_valid & write_io_deq_bits_set == set; // @[Directory.scala 123:31]
  wire  tagMatch = write_io_deq_bits_data_tag == tag; // @[Directory.scala 124:34]
  wire  wayMatch = write_io_deq_bits_way == victimWay; // @[Directory.scala 125:29]
  wire [28:0] _ways_WIRE_1 = cc_dir_0_regout_data;
  wire [24:0] ways_0_tag = _ways_WIRE_1[24:0]; // @[Directory.scala 127:69]
  wire  ways_0_clients = _ways_WIRE_1[25]; // @[Directory.scala 127:69]
  wire [1:0] ways_0_state = _ways_WIRE_1[27:26]; // @[Directory.scala 127:69]
  wire  ways_0_dirty = _ways_WIRE_1[28]; // @[Directory.scala 127:69]
  wire [28:0] _ways_WIRE_3 = cc_dir_1_regout_data;
  wire [24:0] ways_1_tag = _ways_WIRE_3[24:0]; // @[Directory.scala 127:69]
  wire  ways_1_clients = _ways_WIRE_3[25]; // @[Directory.scala 127:69]
  wire [1:0] ways_1_state = _ways_WIRE_3[27:26]; // @[Directory.scala 127:69]
  wire  ways_1_dirty = _ways_WIRE_3[28]; // @[Directory.scala 127:69]
  wire  _hits_T_6 = ways_0_tag == tag & ways_0_state != 2'h0 & (~setQuash | shiftAmount); // @[Directory.scala 129:42]
  wire  _hits_T_13 = ways_1_tag == tag & ways_1_state != 2'h0 & (~setQuash | ~write_io_deq_bits_way); // @[Directory.scala 129:42]
  wire [1:0] hits = {_hits_T_13,_hits_T_6}; // @[Cat.scala 33:92]
  wire  hit = |hits; // @[Directory.scala 131:21]
  wire [24:0] _io_result_bits_T_2 = hits[0] ? ways_0_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _io_result_bits_T_3 = hits[1] ? ways_1_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _io_result_bits_T_4 = _io_result_bits_T_2 | _io_result_bits_T_3; // @[Mux.scala 27:73]
  wire  _io_result_bits_T_7 = hits[0] & ways_0_clients | hits[1] & ways_1_clients; // @[Mux.scala 27:73]
  wire [1:0] _io_result_bits_T_8 = hits[0] ? ways_0_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _io_result_bits_T_9 = hits[1] ? ways_1_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _io_result_bits_T_10 = _io_result_bits_T_8 | _io_result_bits_T_9; // @[Mux.scala 27:73]
  wire  _io_result_bits_T_13 = hits[0] & ways_0_dirty | hits[1] & ways_1_dirty; // @[Mux.scala 27:73]
  wire [24:0] _io_result_bits_T_18 = victimWayOH[0] ? ways_0_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _io_result_bits_T_19 = victimWay ? ways_1_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _io_result_bits_T_20 = _io_result_bits_T_18 | _io_result_bits_T_19; // @[Mux.scala 27:73]
  wire  _io_result_bits_T_23 = victimWayOH[0] & ways_0_clients | victimWay & ways_1_clients; // @[Mux.scala 27:73]
  wire [1:0] _io_result_bits_T_24 = victimWayOH[0] ? ways_0_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _io_result_bits_T_25 = victimWay ? ways_1_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _io_result_bits_T_26 = _io_result_bits_T_24 | _io_result_bits_T_25; // @[Mux.scala 27:73]
  wire  _io_result_bits_T_29 = victimWayOH[0] & ways_0_dirty | victimWay & ways_1_dirty; // @[Mux.scala 27:73]
  wire  _io_result_bits_T_30_dirty = setQuash & (tagMatch | wayMatch) ? write_io_deq_bits_data_dirty :
    _io_result_bits_T_29; // @[Directory.scala 134:52]
  wire [1:0] _io_result_bits_T_30_state = setQuash & (tagMatch | wayMatch) ? write_io_deq_bits_data_state :
    _io_result_bits_T_26; // @[Directory.scala 134:52]
  wire  _io_result_bits_T_30_clients = setQuash & (tagMatch | wayMatch) ? write_io_deq_bits_data_clients :
    _io_result_bits_T_23; // @[Directory.scala 134:52]
  wire [24:0] _io_result_bits_T_30_tag = setQuash & (tagMatch | wayMatch) ? write_io_deq_bits_data_tag :
    _io_result_bits_T_20; // @[Directory.scala 134:52]
  wire  _io_result_bits_hit_T = setQuash & tagMatch; // @[Directory.scala 135:42]
  wire  _io_result_bits_way_T_2 = _io_result_bits_hit_T ? write_io_deq_bits_way : victimWay; // @[Directory.scala 136:53]
  Queue_30 write ( // @[Decoupled.scala 377:21]
    .clock(write_clock),
    .reset(write_reset),
    .io_enq_ready(write_io_enq_ready),
    .io_enq_valid(write_io_enq_valid),
    .io_enq_bits_set(write_io_enq_bits_set),
    .io_enq_bits_way(write_io_enq_bits_way),
    .io_enq_bits_data_dirty(write_io_enq_bits_data_dirty),
    .io_enq_bits_data_state(write_io_enq_bits_data_state),
    .io_enq_bits_data_clients(write_io_enq_bits_data_clients),
    .io_enq_bits_data_tag(write_io_enq_bits_data_tag),
    .io_deq_ready(write_io_deq_ready),
    .io_deq_valid(write_io_deq_valid),
    .io_deq_bits_set(write_io_deq_bits_set),
    .io_deq_bits_way(write_io_deq_bits_way),
    .io_deq_bits_data_dirty(write_io_deq_bits_data_dirty),
    .io_deq_bits_data_state(write_io_deq_bits_data_state),
    .io_deq_bits_data_clients(write_io_deq_bits_data_clients),
    .io_deq_bits_data_tag(write_io_deq_bits_data_tag)
  );
  MaxPeriodFibonacciLFSR_10 victimLFSR_prng ( // @[PRNG.scala 91:22]
    .clock(victimLFSR_prng_clock),
    .reset(victimLFSR_prng_reset),
    .io_increment(victimLFSR_prng_io_increment),
    .io_out_0(victimLFSR_prng_io_out_0),
    .io_out_1(victimLFSR_prng_io_out_1),
    .io_out_2(victimLFSR_prng_io_out_2),
    .io_out_3(victimLFSR_prng_io_out_3),
    .io_out_4(victimLFSR_prng_io_out_4),
    .io_out_5(victimLFSR_prng_io_out_5),
    .io_out_6(victimLFSR_prng_io_out_6),
    .io_out_7(victimLFSR_prng_io_out_7),
    .io_out_8(victimLFSR_prng_io_out_8),
    .io_out_9(victimLFSR_prng_io_out_9),
    .io_out_10(victimLFSR_prng_io_out_10),
    .io_out_11(victimLFSR_prng_io_out_11),
    .io_out_12(victimLFSR_prng_io_out_12),
    .io_out_13(victimLFSR_prng_io_out_13),
    .io_out_14(victimLFSR_prng_io_out_14),
    .io_out_15(victimLFSR_prng_io_out_15)
  );
  assign cc_dir_0_regout_en = cc_dir_0_regout_en_pipe_0;
  assign cc_dir_0_regout_addr = cc_dir_0_regout_addr_pipe_0;
  assign cc_dir_0_regout_data = cc_dir_0[cc_dir_0_regout_addr]; // @[DescribedSRAM.scala 19:26]
  assign cc_dir_0_MPORT_data = wipeDone ? _T_16 : 29'h0;
  assign cc_dir_0_MPORT_addr = wipeDone ? write_io_deq_bits_set : wipeSet;
  assign cc_dir_0_MPORT_mask = _T_20[0] | _T;
  assign cc_dir_0_MPORT_en = _T_3 & wen;
  assign cc_dir_1_regout_en = cc_dir_1_regout_en_pipe_0;
  assign cc_dir_1_regout_addr = cc_dir_1_regout_addr_pipe_0;
  assign cc_dir_1_regout_data = cc_dir_1[cc_dir_1_regout_addr]; // @[DescribedSRAM.scala 19:26]
  assign cc_dir_1_MPORT_data = wipeDone ? _T_16 : 29'h0;
  assign cc_dir_1_MPORT_addr = wipeDone ? write_io_deq_bits_set : wipeSet;
  assign cc_dir_1_MPORT_mask = _T_20[1] | _T;
  assign cc_dir_1_MPORT_en = _T_3 & wen;
  assign io_write_ready = write_io_enq_ready; // @[Decoupled.scala 381:17]
  assign io_result_bits_dirty = hit ? _io_result_bits_T_13 : _io_result_bits_T_30_dirty; // @[Directory.scala 134:24]
  assign io_result_bits_state = hit ? _io_result_bits_T_10 : _io_result_bits_T_30_state; // @[Directory.scala 134:24]
  assign io_result_bits_clients = hit ? _io_result_bits_T_7 : _io_result_bits_T_30_clients; // @[Directory.scala 134:24]
  assign io_result_bits_tag = hit ? _io_result_bits_T_4 : _io_result_bits_T_30_tag; // @[Directory.scala 134:24]
  assign io_result_bits_hit = hit | setQuash & tagMatch & write_io_deq_bits_data_state != 2'h0; // @[Directory.scala 135:29]
  assign io_result_bits_way = hit ? hits[1] : _io_result_bits_way_T_2; // @[Directory.scala 136:28]
  assign io_ready = wipeCount[3]; // @[Directory.scala 79:27]
  assign write_clock = clock;
  assign write_reset = reset;
  assign write_io_enq_valid = io_write_valid; // @[Decoupled.scala 379:22]
  assign write_io_enq_bits_set = io_write_bits_set; // @[Decoupled.scala 380:21]
  assign write_io_enq_bits_way = io_write_bits_way; // @[Decoupled.scala 380:21]
  assign write_io_enq_bits_data_dirty = io_write_bits_data_dirty; // @[Decoupled.scala 380:21]
  assign write_io_enq_bits_data_state = io_write_bits_data_state; // @[Decoupled.scala 380:21]
  assign write_io_enq_bits_data_clients = io_write_bits_data_clients; // @[Decoupled.scala 380:21]
  assign write_io_enq_bits_data_tag = io_write_bits_data_tag; // @[Decoupled.scala 380:21]
  assign write_io_deq_ready = ~io_read_valid; // @[Directory.scala 93:18]
  assign victimLFSR_prng_clock = clock;
  assign victimLFSR_prng_reset = reset;
  assign victimLFSR_prng_io_increment = io_read_valid; // @[PRNG.scala 94:23]
  always @(posedge clock) begin
    if (cc_dir_0_MPORT_en & cc_dir_0_MPORT_mask) begin
      cc_dir_0[cc_dir_0_MPORT_addr] <= cc_dir_0_MPORT_data; // @[DescribedSRAM.scala 19:26]
    end
    cc_dir_0_regout_en_pipe_0 <= io_read_valid;
    if (io_read_valid) begin
      cc_dir_0_regout_addr_pipe_0 <= io_read_bits_set;
    end
    if (cc_dir_1_MPORT_en & cc_dir_1_MPORT_mask) begin
      cc_dir_1[cc_dir_1_MPORT_addr] <= cc_dir_1_MPORT_data; // @[DescribedSRAM.scala 19:26]
    end
    cc_dir_1_regout_en_pipe_0 <= io_read_valid;
    if (io_read_valid) begin
      cc_dir_1_regout_addr_pipe_0 <= io_read_bits_set;
    end
    if (reset) begin // @[Directory.scala 77:26]
      wipeCount <= 4'h0; // @[Directory.scala 77:26]
    end else if (~wipeDone & ~wipeOff) begin // @[Directory.scala 83:32]
      wipeCount <= _wipeCount_T_1; // @[Directory.scala 83:44]
    end
    wipeOff <= reset; // @[Directory.scala 78:{24,24,24}]
    if (reset) begin // @[Directory.scala 101:21]
      ren1 <= 1'h0; // @[Directory.scala 101:21]
    end else begin
      ren1 <= io_read_valid; // @[Directory.scala 104:8]
    end
    if (io_read_valid) begin // @[Reg.scala 20:18]
      tag <= io_read_bits_tag; // @[Reg.scala 20:22]
    end
    if (io_read_valid) begin // @[Reg.scala 20:18]
      set <= io_read_bits_set; // @[Reg.scala 20:22]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(wipeDone | ~io_read_valid)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Directory.scala:84 assert (wipeDone || !io.read.valid)\n"); // @[Directory.scala 84:10]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(wipeDone | ~io_read_valid) & ~reset) begin
          $fatal; // @[Directory.scala 84:10]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_6 & ~(_T_3 | wipeDone)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Directory.scala:89 assert (!io.read.valid || wipeDone)\n"); // @[Directory.scala 89:10]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_3 | wipeDone) & _T_6) begin
          $fatal; // @[Directory.scala 89:10]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_6 & ~(~ren1 | victimLTE[0])) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Directory.scala:119 assert (!ren2 || victimLTE(0) === UInt(1))\n"); // @[Directory.scala 119:10]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~ren1 | victimLTE[0]) & _T_6) begin
          $fatal; // @[Directory.scala 119:10]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_6 & ~(_T_28 | _T_38 == 3'h0)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Directory.scala:120 assert (!ren2 || ((victimSimp >> 1) & ~victimSimp) === UInt(0)) // monotone\n"
            ); // @[Directory.scala 120:10]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_28 | _T_38 == 3'h0) & _T_6) begin
          $fatal; // @[Directory.scala 120:10]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_6 & ~(_T_28 | _T_47 == 2'h1)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Directory.scala:121 assert (!ren2 || PopCount(victimWayOH) === UInt(1))\n"); // @[Directory.scala 121:10]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_28 | _T_47 == 2'h1) & _T_6) begin
          $fatal; // @[Directory.scala 121:10]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 8; initvar = initvar+1)
    cc_dir_0[initvar] = _RAND_0[28:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 8; initvar = initvar+1)
    cc_dir_1[initvar] = _RAND_3[28:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_1 = {1{`RANDOM}};
  cc_dir_0_regout_en_pipe_0 = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  cc_dir_0_regout_addr_pipe_0 = _RAND_2[2:0];
  _RAND_4 = {1{`RANDOM}};
  cc_dir_1_regout_en_pipe_0 = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  cc_dir_1_regout_addr_pipe_0 = _RAND_5[2:0];
  _RAND_6 = {1{`RANDOM}};
  wipeCount = _RAND_6[3:0];
  _RAND_7 = {1{`RANDOM}};
  wipeOff = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  ren1 = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  tag = _RAND_9[24:0];
  _RAND_10 = {1{`RANDOM}};
  set = _RAND_10[2:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module BankedStore(
  input         clock,
  output        io_sinkC_adr_ready,
  input         io_sinkC_adr_valid,
  input         io_sinkC_adr_bits_noop,
  input         io_sinkC_adr_bits_way,
  input  [2:0]  io_sinkC_adr_bits_set,
  input         io_sinkC_adr_bits_beat,
  input         io_sinkC_adr_bits_mask,
  input  [63:0] io_sinkC_dat_data,
  output        io_sinkD_adr_ready,
  input         io_sinkD_adr_valid,
  input         io_sinkD_adr_bits_noop,
  input         io_sinkD_adr_bits_way,
  input  [2:0]  io_sinkD_adr_bits_set,
  input         io_sinkD_adr_bits_beat,
  input  [63:0] io_sinkD_dat_data,
  output        io_sourceC_adr_ready,
  input         io_sourceC_adr_valid,
  input         io_sourceC_adr_bits_way,
  input  [2:0]  io_sourceC_adr_bits_set,
  input         io_sourceC_adr_bits_beat,
  output [63:0] io_sourceC_dat_data,
  output        io_sourceD_radr_ready,
  input         io_sourceD_radr_valid,
  input         io_sourceD_radr_bits_way,
  input  [2:0]  io_sourceD_radr_bits_set,
  input         io_sourceD_radr_bits_beat,
  input         io_sourceD_radr_bits_mask,
  output [63:0] io_sourceD_rdat_data,
  output        io_sourceD_wadr_ready,
  input         io_sourceD_wadr_valid,
  input         io_sourceD_wadr_bits_way,
  input  [2:0]  io_sourceD_wadr_bits_set,
  input         io_sourceD_wadr_bits_beat,
  input         io_sourceD_wadr_bits_mask,
  input  [63:0] io_sourceD_wdat_data
);
`ifdef RANDOMIZE_MEM_INIT
  reg [63:0] _RAND_0;
  reg [63:0] _RAND_3;
  reg [63:0] _RAND_6;
  reg [63:0] _RAND_9;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [63:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [63:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [63:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [63:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
`endif // RANDOMIZE_REG_INIT
  reg [63:0] cc_banks_0 [0:7]; // @[DescribedSRAM.scala 19:26]
  wire  cc_banks_0_regout_MPORT_1_en; // @[DescribedSRAM.scala 19:26]
  wire [2:0] cc_banks_0_regout_MPORT_1_addr; // @[DescribedSRAM.scala 19:26]
  wire [63:0] cc_banks_0_regout_MPORT_1_data; // @[DescribedSRAM.scala 19:26]
  wire [63:0] cc_banks_0_regout_MPORT_data; // @[DescribedSRAM.scala 19:26]
  wire [2:0] cc_banks_0_regout_MPORT_addr; // @[DescribedSRAM.scala 19:26]
  wire  cc_banks_0_regout_MPORT_mask; // @[DescribedSRAM.scala 19:26]
  wire  cc_banks_0_regout_MPORT_en; // @[DescribedSRAM.scala 19:26]
  reg  cc_banks_0_regout_MPORT_1_en_pipe_0;
  reg [2:0] cc_banks_0_regout_MPORT_1_addr_pipe_0;
  reg [63:0] cc_banks_1 [0:7]; // @[DescribedSRAM.scala 19:26]
  wire  cc_banks_1_regout_MPORT_3_en; // @[DescribedSRAM.scala 19:26]
  wire [2:0] cc_banks_1_regout_MPORT_3_addr; // @[DescribedSRAM.scala 19:26]
  wire [63:0] cc_banks_1_regout_MPORT_3_data; // @[DescribedSRAM.scala 19:26]
  wire [63:0] cc_banks_1_regout_MPORT_2_data; // @[DescribedSRAM.scala 19:26]
  wire [2:0] cc_banks_1_regout_MPORT_2_addr; // @[DescribedSRAM.scala 19:26]
  wire  cc_banks_1_regout_MPORT_2_mask; // @[DescribedSRAM.scala 19:26]
  wire  cc_banks_1_regout_MPORT_2_en; // @[DescribedSRAM.scala 19:26]
  reg  cc_banks_1_regout_MPORT_3_en_pipe_0;
  reg [2:0] cc_banks_1_regout_MPORT_3_addr_pipe_0;
  reg [63:0] cc_banks_2 [0:7]; // @[DescribedSRAM.scala 19:26]
  wire  cc_banks_2_regout_MPORT_5_en; // @[DescribedSRAM.scala 19:26]
  wire [2:0] cc_banks_2_regout_MPORT_5_addr; // @[DescribedSRAM.scala 19:26]
  wire [63:0] cc_banks_2_regout_MPORT_5_data; // @[DescribedSRAM.scala 19:26]
  wire [63:0] cc_banks_2_regout_MPORT_4_data; // @[DescribedSRAM.scala 19:26]
  wire [2:0] cc_banks_2_regout_MPORT_4_addr; // @[DescribedSRAM.scala 19:26]
  wire  cc_banks_2_regout_MPORT_4_mask; // @[DescribedSRAM.scala 19:26]
  wire  cc_banks_2_regout_MPORT_4_en; // @[DescribedSRAM.scala 19:26]
  reg  cc_banks_2_regout_MPORT_5_en_pipe_0;
  reg [2:0] cc_banks_2_regout_MPORT_5_addr_pipe_0;
  reg [63:0] cc_banks_3 [0:7]; // @[DescribedSRAM.scala 19:26]
  wire  cc_banks_3_regout_MPORT_7_en; // @[DescribedSRAM.scala 19:26]
  wire [2:0] cc_banks_3_regout_MPORT_7_addr; // @[DescribedSRAM.scala 19:26]
  wire [63:0] cc_banks_3_regout_MPORT_7_data; // @[DescribedSRAM.scala 19:26]
  wire [63:0] cc_banks_3_regout_MPORT_6_data; // @[DescribedSRAM.scala 19:26]
  wire [2:0] cc_banks_3_regout_MPORT_6_addr; // @[DescribedSRAM.scala 19:26]
  wire  cc_banks_3_regout_MPORT_6_mask; // @[DescribedSRAM.scala 19:26]
  wire  cc_banks_3_regout_MPORT_6_en; // @[DescribedSRAM.scala 19:26]
  reg  cc_banks_3_regout_MPORT_7_en_pipe_0;
  reg [2:0] cc_banks_3_regout_MPORT_7_addr_pipe_0;
  wire [4:0] sinkC_req_a = {io_sinkC_adr_bits_way,io_sinkC_adr_bits_set,io_sinkC_adr_bits_beat}; // @[Cat.scala 33:92]
  wire [1:0] sinkC_req_select_shiftAmount = sinkC_req_a[1:0]; // @[BankedStore.scala 129:28]
  wire [3:0] sinkC_req_select = 4'h1 << sinkC_req_select_shiftAmount; // @[OneHot.scala 64:12]
  wire [3:0] _sinkC_req_io_sinkC_adr_ready_T_1 = 4'hf >> sinkC_req_select_shiftAmount; // @[BankedStore.scala 131:21]
  wire [2:0] reqs_0_index = sinkC_req_a[4:2]; // @[BankedStore.scala 134:23]
  wire [3:0] _sinkC_req_out_bankSel_T_4 = {sinkC_req_select[3],sinkC_req_select[2],sinkC_req_select[1],sinkC_req_select[
    0]}; // @[Cat.scala 33:92]
  wire [3:0] _sinkC_req_out_bankSel_T_6 = io_sinkC_adr_bits_mask ? 4'hf : 4'h0; // @[Bitwise.scala 77:12]
  wire [3:0] _sinkC_req_out_bankSel_T_7 = _sinkC_req_out_bankSel_T_4 & _sinkC_req_out_bankSel_T_6; // @[BankedStore.scala 135:65]
  wire [3:0] reqs_0_bankSel = io_sinkC_adr_valid ? _sinkC_req_out_bankSel_T_7 : 4'h0; // @[BankedStore.scala 135:24]
  wire [3:0] reqs_0_bankEn = io_sinkC_adr_bits_noop ? 4'h0 : reqs_0_bankSel; // @[BankedStore.scala 136:24]
  wire [4:0] sinkD_req_a = {io_sinkD_adr_bits_way,io_sinkD_adr_bits_set,io_sinkD_adr_bits_beat}; // @[Cat.scala 33:92]
  wire [1:0] sinkD_req_select_shiftAmount = sinkD_req_a[1:0]; // @[BankedStore.scala 129:28]
  wire [3:0] sinkD_req_select = 4'h1 << sinkD_req_select_shiftAmount; // @[OneHot.scala 64:12]
  wire [4:0] sourceC_req_a = {io_sourceC_adr_bits_way,io_sourceC_adr_bits_set,io_sourceC_adr_bits_beat}; // @[Cat.scala 33:92]
  wire [1:0] sourceC_req_select_shiftAmount = sourceC_req_a[1:0]; // @[BankedStore.scala 129:28]
  wire [3:0] sourceC_req_select = 4'h1 << sourceC_req_select_shiftAmount; // @[OneHot.scala 64:12]
  wire [3:0] _sourceC_req_out_bankSel_T_4 = {sourceC_req_select[3],sourceC_req_select[2],sourceC_req_select[1],
    sourceC_req_select[0]}; // @[Cat.scala 33:92]
  wire [3:0] reqs_1_bankSel = io_sourceC_adr_valid ? _sourceC_req_out_bankSel_T_4 : 4'h0; // @[BankedStore.scala 135:24]
  wire [3:0] reqs_2_bankSum = reqs_1_bankSel | reqs_0_bankSel; // @[BankedStore.scala 160:17]
  wire  _sinkD_req_ready_T_3 = ~(|reqs_2_bankSum[0]); // @[BankedStore.scala 130:58]
  wire  _sinkD_req_ready_T_7 = ~(|reqs_2_bankSum[1]); // @[BankedStore.scala 130:58]
  wire  _sinkD_req_ready_T_11 = ~(|reqs_2_bankSum[2]); // @[BankedStore.scala 130:58]
  wire  _sinkD_req_ready_T_15 = ~(|reqs_2_bankSum[3]); // @[BankedStore.scala 130:58]
  wire [3:0] sinkD_req_ready = {_sinkD_req_ready_T_15,_sinkD_req_ready_T_11,_sinkD_req_ready_T_7,_sinkD_req_ready_T_3}; // @[Cat.scala 33:92]
  wire [3:0] _sinkD_req_io_sinkD_adr_ready_T_1 = sinkD_req_ready >> sinkD_req_select_shiftAmount; // @[BankedStore.scala 131:21]
  wire [2:0] reqs_2_index = sinkD_req_a[4:2]; // @[BankedStore.scala 134:23]
  wire [3:0] _sinkD_req_out_bankSel_T_4 = {sinkD_req_select[3],sinkD_req_select[2],sinkD_req_select[1],sinkD_req_select[
    0]}; // @[Cat.scala 33:92]
  wire [3:0] reqs_2_bankSel = io_sinkD_adr_valid ? _sinkD_req_out_bankSel_T_4 : 4'h0; // @[BankedStore.scala 135:24]
  wire [3:0] _sinkD_req_out_bankEn_T_4 = {sinkD_req_ready[3],sinkD_req_ready[2],sinkD_req_ready[1],sinkD_req_ready[0]}; // @[Cat.scala 33:92]
  wire [3:0] _sinkD_req_out_bankEn_T_5 = reqs_2_bankSel & _sinkD_req_out_bankEn_T_4; // @[BankedStore.scala 136:59]
  wire [3:0] reqs_2_bankEn = io_sinkD_adr_bits_noop ? 4'h0 : _sinkD_req_out_bankEn_T_5; // @[BankedStore.scala 136:24]
  wire  _sourceC_req_ready_T_3 = ~(|reqs_0_bankSel[0]); // @[BankedStore.scala 130:58]
  wire  _sourceC_req_ready_T_7 = ~(|reqs_0_bankSel[1]); // @[BankedStore.scala 130:58]
  wire  _sourceC_req_ready_T_11 = ~(|reqs_0_bankSel[2]); // @[BankedStore.scala 130:58]
  wire  _sourceC_req_ready_T_15 = ~(|reqs_0_bankSel[3]); // @[BankedStore.scala 130:58]
  wire [3:0] sourceC_req_ready = {_sourceC_req_ready_T_15,_sourceC_req_ready_T_11,_sourceC_req_ready_T_7,
    _sourceC_req_ready_T_3}; // @[Cat.scala 33:92]
  wire [3:0] _sourceC_req_io_sourceC_adr_ready_T_1 = sourceC_req_ready >> sourceC_req_select_shiftAmount; // @[BankedStore.scala 131:21]
  wire [2:0] reqs_1_index = sourceC_req_a[4:2]; // @[BankedStore.scala 134:23]
  wire [3:0] _sourceC_req_out_bankEn_T_4 = {sourceC_req_ready[3],sourceC_req_ready[2],sourceC_req_ready[1],
    sourceC_req_ready[0]}; // @[Cat.scala 33:92]
  wire [3:0] reqs_1_bankEn = reqs_1_bankSel & _sourceC_req_out_bankEn_T_4; // @[BankedStore.scala 136:59]
  wire [4:0] sourceD_rreq_a = {io_sourceD_radr_bits_way,io_sourceD_radr_bits_set,io_sourceD_radr_bits_beat}; // @[Cat.scala 33:92]
  wire [1:0] sourceD_rreq_select_shiftAmount = sourceD_rreq_a[1:0]; // @[BankedStore.scala 129:28]
  wire [3:0] sourceD_rreq_select = 4'h1 << sourceD_rreq_select_shiftAmount; // @[OneHot.scala 64:12]
  wire [4:0] sourceD_wreq_a = {io_sourceD_wadr_bits_way,io_sourceD_wadr_bits_set,io_sourceD_wadr_bits_beat}; // @[Cat.scala 33:92]
  wire [1:0] sourceD_wreq_select_shiftAmount = sourceD_wreq_a[1:0]; // @[BankedStore.scala 129:28]
  wire [3:0] sourceD_wreq_select = 4'h1 << sourceD_wreq_select_shiftAmount; // @[OneHot.scala 64:12]
  wire [3:0] _sourceD_wreq_out_bankSel_T_4 = {sourceD_wreq_select[3],sourceD_wreq_select[2],sourceD_wreq_select[1],
    sourceD_wreq_select[0]}; // @[Cat.scala 33:92]
  wire [3:0] _sourceD_wreq_out_bankSel_T_6 = io_sourceD_wadr_bits_mask ? 4'hf : 4'h0; // @[Bitwise.scala 77:12]
  wire [3:0] _sourceD_wreq_out_bankSel_T_7 = _sourceD_wreq_out_bankSel_T_4 & _sourceD_wreq_out_bankSel_T_6; // @[BankedStore.scala 135:65]
  wire [3:0] reqs_3_bankSel = io_sourceD_wadr_valid ? _sourceD_wreq_out_bankSel_T_7 : 4'h0; // @[BankedStore.scala 135:24]
  wire [3:0] reqs_3_bankSum = reqs_2_bankSel | reqs_2_bankSum; // @[BankedStore.scala 160:17]
  wire [3:0] reqs_4_bankSum = reqs_3_bankSel | reqs_3_bankSum; // @[BankedStore.scala 160:17]
  wire  _sourceD_rreq_ready_T_3 = ~(|(reqs_4_bankSum[0] & io_sourceD_radr_bits_mask)); // @[BankedStore.scala 130:58]
  wire  _sourceD_rreq_ready_T_7 = ~(|(reqs_4_bankSum[1] & io_sourceD_radr_bits_mask)); // @[BankedStore.scala 130:58]
  wire  _sourceD_rreq_ready_T_11 = ~(|(reqs_4_bankSum[2] & io_sourceD_radr_bits_mask)); // @[BankedStore.scala 130:58]
  wire  _sourceD_rreq_ready_T_15 = ~(|(reqs_4_bankSum[3] & io_sourceD_radr_bits_mask)); // @[BankedStore.scala 130:58]
  wire [3:0] sourceD_rreq_ready = {_sourceD_rreq_ready_T_15,_sourceD_rreq_ready_T_11,_sourceD_rreq_ready_T_7,
    _sourceD_rreq_ready_T_3}; // @[Cat.scala 33:92]
  wire [3:0] _sourceD_rreq_io_sourceD_radr_ready_T_1 = sourceD_rreq_ready >> sourceD_rreq_select_shiftAmount; // @[BankedStore.scala 131:21]
  wire [2:0] reqs_4_index = sourceD_rreq_a[4:2]; // @[BankedStore.scala 134:23]
  wire [3:0] _sourceD_rreq_out_bankSel_T_4 = {sourceD_rreq_select[3],sourceD_rreq_select[2],sourceD_rreq_select[1],
    sourceD_rreq_select[0]}; // @[Cat.scala 33:92]
  wire [3:0] _sourceD_rreq_out_bankSel_T_6 = io_sourceD_radr_bits_mask ? 4'hf : 4'h0; // @[Bitwise.scala 77:12]
  wire [3:0] _sourceD_rreq_out_bankSel_T_7 = _sourceD_rreq_out_bankSel_T_4 & _sourceD_rreq_out_bankSel_T_6; // @[BankedStore.scala 135:65]
  wire [3:0] reqs_4_bankSel = io_sourceD_radr_valid ? _sourceD_rreq_out_bankSel_T_7 : 4'h0; // @[BankedStore.scala 135:24]
  wire [3:0] _sourceD_rreq_out_bankEn_T_4 = {sourceD_rreq_ready[3],sourceD_rreq_ready[2],sourceD_rreq_ready[1],
    sourceD_rreq_ready[0]}; // @[Cat.scala 33:92]
  wire [3:0] reqs_4_bankEn = reqs_4_bankSel & _sourceD_rreq_out_bankEn_T_4; // @[BankedStore.scala 136:59]
  wire  _sourceD_wreq_ready_T_3 = ~(|(reqs_3_bankSum[0] & io_sourceD_wadr_bits_mask)); // @[BankedStore.scala 130:58]
  wire  _sourceD_wreq_ready_T_7 = ~(|(reqs_3_bankSum[1] & io_sourceD_wadr_bits_mask)); // @[BankedStore.scala 130:58]
  wire  _sourceD_wreq_ready_T_11 = ~(|(reqs_3_bankSum[2] & io_sourceD_wadr_bits_mask)); // @[BankedStore.scala 130:58]
  wire  _sourceD_wreq_ready_T_15 = ~(|(reqs_3_bankSum[3] & io_sourceD_wadr_bits_mask)); // @[BankedStore.scala 130:58]
  wire [3:0] sourceD_wreq_ready = {_sourceD_wreq_ready_T_15,_sourceD_wreq_ready_T_11,_sourceD_wreq_ready_T_7,
    _sourceD_wreq_ready_T_3}; // @[Cat.scala 33:92]
  wire [3:0] _sourceD_wreq_io_sourceD_wadr_ready_T_1 = sourceD_wreq_ready >> sourceD_wreq_select_shiftAmount; // @[BankedStore.scala 131:21]
  wire [2:0] reqs_3_index = sourceD_wreq_a[4:2]; // @[BankedStore.scala 134:23]
  wire [3:0] _sourceD_wreq_out_bankEn_T_4 = {sourceD_wreq_ready[3],sourceD_wreq_ready[2],sourceD_wreq_ready[1],
    sourceD_wreq_ready[0]}; // @[Cat.scala 33:92]
  wire [3:0] reqs_3_bankEn = reqs_3_bankSel & _sourceD_wreq_out_bankEn_T_4; // @[BankedStore.scala 136:59]
  wire  regout_en = reqs_0_bankEn[0] | reqs_1_bankEn[0] | reqs_2_bankEn[0] | reqs_3_bankEn[0] | reqs_4_bankEn[0]; // @[BankedStore.scala 164:45]
  wire  regout_sel_1 = reqs_1_bankSel[0]; // @[BankedStore.scala 165:33]
  wire  regout_sel_2 = reqs_2_bankSel[0]; // @[BankedStore.scala 165:33]
  wire  regout_sel_3 = reqs_3_bankSel[0]; // @[BankedStore.scala 165:33]
  wire  _regout_wen_T_2 = regout_sel_1 ? 1'h0 : regout_sel_2 | regout_sel_3; // @[Mux.scala 47:70]
  wire  regout_wen = reqs_0_bankSel[0] | _regout_wen_T_2; // @[Mux.scala 47:70]
  wire [2:0] _regout_idx_T = regout_sel_3 ? reqs_3_index : reqs_4_index; // @[Mux.scala 47:70]
  wire [2:0] _regout_idx_T_1 = regout_sel_2 ? reqs_2_index : _regout_idx_T; // @[Mux.scala 47:70]
  wire [2:0] _regout_idx_T_2 = regout_sel_1 ? reqs_1_index : _regout_idx_T_1; // @[Mux.scala 47:70]
  wire [63:0] _regout_data_T = regout_sel_3 ? io_sourceD_wdat_data : 64'h0; // @[Mux.scala 47:70]
  wire [63:0] _regout_data_T_1 = regout_sel_2 ? io_sinkD_dat_data : _regout_data_T; // @[Mux.scala 47:70]
  wire [63:0] _regout_data_T_2 = regout_sel_1 ? 64'h0 : _regout_data_T_1; // @[Mux.scala 47:70]
  wire  _regout_T_1 = ~regout_wen; // @[BankedStore.scala 171:27]
  reg  regout_REG; // @[BankedStore.scala 171:47]
  reg [63:0] regout_r; // @[Reg.scala 19:16]
  wire  regout_en_1 = reqs_0_bankEn[1] | reqs_1_bankEn[1] | reqs_2_bankEn[1] | reqs_3_bankEn[1] | reqs_4_bankEn[1]; // @[BankedStore.scala 164:45]
  wire  regout_sel_1_1 = reqs_1_bankSel[1]; // @[BankedStore.scala 165:33]
  wire  regout_sel_2_1 = reqs_2_bankSel[1]; // @[BankedStore.scala 165:33]
  wire  regout_sel_3_1 = reqs_3_bankSel[1]; // @[BankedStore.scala 165:33]
  wire  _regout_wen_T_5 = regout_sel_1_1 ? 1'h0 : regout_sel_2_1 | regout_sel_3_1; // @[Mux.scala 47:70]
  wire  regout_wen_1 = reqs_0_bankSel[1] | _regout_wen_T_5; // @[Mux.scala 47:70]
  wire [2:0] _regout_idx_T_3 = regout_sel_3_1 ? reqs_3_index : reqs_4_index; // @[Mux.scala 47:70]
  wire [2:0] _regout_idx_T_4 = regout_sel_2_1 ? reqs_2_index : _regout_idx_T_3; // @[Mux.scala 47:70]
  wire [2:0] _regout_idx_T_5 = regout_sel_1_1 ? reqs_1_index : _regout_idx_T_4; // @[Mux.scala 47:70]
  wire [63:0] _regout_data_T_3 = regout_sel_3_1 ? io_sourceD_wdat_data : 64'h0; // @[Mux.scala 47:70]
  wire [63:0] _regout_data_T_4 = regout_sel_2_1 ? io_sinkD_dat_data : _regout_data_T_3; // @[Mux.scala 47:70]
  wire [63:0] _regout_data_T_5 = regout_sel_1_1 ? 64'h0 : _regout_data_T_4; // @[Mux.scala 47:70]
  wire  _regout_T_8 = ~regout_wen_1; // @[BankedStore.scala 171:27]
  reg  regout_REG_1; // @[BankedStore.scala 171:47]
  reg [63:0] regout_r_1; // @[Reg.scala 19:16]
  wire  regout_en_2 = reqs_0_bankEn[2] | reqs_1_bankEn[2] | reqs_2_bankEn[2] | reqs_3_bankEn[2] | reqs_4_bankEn[2]; // @[BankedStore.scala 164:45]
  wire  regout_sel_1_2 = reqs_1_bankSel[2]; // @[BankedStore.scala 165:33]
  wire  regout_sel_2_2 = reqs_2_bankSel[2]; // @[BankedStore.scala 165:33]
  wire  regout_sel_3_2 = reqs_3_bankSel[2]; // @[BankedStore.scala 165:33]
  wire  _regout_wen_T_8 = regout_sel_1_2 ? 1'h0 : regout_sel_2_2 | regout_sel_3_2; // @[Mux.scala 47:70]
  wire  regout_wen_2 = reqs_0_bankSel[2] | _regout_wen_T_8; // @[Mux.scala 47:70]
  wire [2:0] _regout_idx_T_6 = regout_sel_3_2 ? reqs_3_index : reqs_4_index; // @[Mux.scala 47:70]
  wire [2:0] _regout_idx_T_7 = regout_sel_2_2 ? reqs_2_index : _regout_idx_T_6; // @[Mux.scala 47:70]
  wire [2:0] _regout_idx_T_8 = regout_sel_1_2 ? reqs_1_index : _regout_idx_T_7; // @[Mux.scala 47:70]
  wire [63:0] _regout_data_T_6 = regout_sel_3_2 ? io_sourceD_wdat_data : 64'h0; // @[Mux.scala 47:70]
  wire [63:0] _regout_data_T_7 = regout_sel_2_2 ? io_sinkD_dat_data : _regout_data_T_6; // @[Mux.scala 47:70]
  wire [63:0] _regout_data_T_8 = regout_sel_1_2 ? 64'h0 : _regout_data_T_7; // @[Mux.scala 47:70]
  wire  _regout_T_15 = ~regout_wen_2; // @[BankedStore.scala 171:27]
  reg  regout_REG_2; // @[BankedStore.scala 171:47]
  reg [63:0] regout_r_2; // @[Reg.scala 19:16]
  wire  regout_en_3 = reqs_0_bankEn[3] | reqs_1_bankEn[3] | reqs_2_bankEn[3] | reqs_3_bankEn[3] | reqs_4_bankEn[3]; // @[BankedStore.scala 164:45]
  wire  regout_sel_1_3 = reqs_1_bankSel[3]; // @[BankedStore.scala 165:33]
  wire  regout_sel_2_3 = reqs_2_bankSel[3]; // @[BankedStore.scala 165:33]
  wire  regout_sel_3_3 = reqs_3_bankSel[3]; // @[BankedStore.scala 165:33]
  wire  _regout_wen_T_11 = regout_sel_1_3 ? 1'h0 : regout_sel_2_3 | regout_sel_3_3; // @[Mux.scala 47:70]
  wire  regout_wen_3 = reqs_0_bankSel[3] | _regout_wen_T_11; // @[Mux.scala 47:70]
  wire [2:0] _regout_idx_T_9 = regout_sel_3_3 ? reqs_3_index : reqs_4_index; // @[Mux.scala 47:70]
  wire [2:0] _regout_idx_T_10 = regout_sel_2_3 ? reqs_2_index : _regout_idx_T_9; // @[Mux.scala 47:70]
  wire [2:0] _regout_idx_T_11 = regout_sel_1_3 ? reqs_1_index : _regout_idx_T_10; // @[Mux.scala 47:70]
  wire [63:0] _regout_data_T_9 = regout_sel_3_3 ? io_sourceD_wdat_data : 64'h0; // @[Mux.scala 47:70]
  wire [63:0] _regout_data_T_10 = regout_sel_2_3 ? io_sinkD_dat_data : _regout_data_T_9; // @[Mux.scala 47:70]
  wire [63:0] _regout_data_T_11 = regout_sel_1_3 ? 64'h0 : _regout_data_T_10; // @[Mux.scala 47:70]
  wire  _regout_T_22 = ~regout_wen_3; // @[BankedStore.scala 171:27]
  reg  regout_REG_3; // @[BankedStore.scala 171:47]
  reg [63:0] regout_r_3; // @[Reg.scala 19:16]
  reg [3:0] regsel_sourceC_REG; // @[BankedStore.scala 174:39]
  reg [3:0] regsel_sourceC; // @[BankedStore.scala 174:31]
  reg [3:0] regsel_sourceD_REG; // @[BankedStore.scala 175:39]
  reg [3:0] regsel_sourceD; // @[BankedStore.scala 175:31]
  wire [63:0] _decodeC_T_1 = regsel_sourceC[0] ? regout_r : 64'h0; // @[BankedStore.scala 178:23]
  wire [63:0] _decodeC_T_3 = regsel_sourceC[1] ? regout_r_1 : 64'h0; // @[BankedStore.scala 178:23]
  wire [63:0] _decodeC_T_5 = regsel_sourceC[2] ? regout_r_2 : 64'h0; // @[BankedStore.scala 178:23]
  wire [63:0] _decodeC_T_7 = regsel_sourceC[3] ? regout_r_3 : 64'h0; // @[BankedStore.scala 178:23]
  wire [63:0] _decodeC_T_8 = _decodeC_T_1 | _decodeC_T_3; // @[BankedStore.scala 179:85]
  wire [63:0] _decodeC_T_9 = _decodeC_T_8 | _decodeC_T_5; // @[BankedStore.scala 179:85]
  wire [63:0] _decodeD_T_1 = regsel_sourceD[0] ? regout_r : 64'h0; // @[BankedStore.scala 185:23]
  wire [63:0] _decodeD_T_3 = regsel_sourceD[1] ? regout_r_1 : 64'h0; // @[BankedStore.scala 185:23]
  wire [63:0] _decodeD_T_5 = regsel_sourceD[2] ? regout_r_2 : 64'h0; // @[BankedStore.scala 185:23]
  wire [63:0] _decodeD_T_7 = regsel_sourceD[3] ? regout_r_3 : 64'h0; // @[BankedStore.scala 185:23]
  wire [63:0] _decodeD_T_8 = _decodeD_T_1 | _decodeD_T_3; // @[BankedStore.scala 186:85]
  wire [63:0] _decodeD_T_9 = _decodeD_T_8 | _decodeD_T_5; // @[BankedStore.scala 186:85]
  assign cc_banks_0_regout_MPORT_1_en = cc_banks_0_regout_MPORT_1_en_pipe_0;
  assign cc_banks_0_regout_MPORT_1_addr = cc_banks_0_regout_MPORT_1_addr_pipe_0;
  assign cc_banks_0_regout_MPORT_1_data = cc_banks_0[cc_banks_0_regout_MPORT_1_addr]; // @[DescribedSRAM.scala 19:26]
  assign cc_banks_0_regout_MPORT_data = reqs_0_bankSel[0] ? io_sinkC_dat_data : _regout_data_T_2;
  assign cc_banks_0_regout_MPORT_addr = reqs_0_bankSel[0] ? reqs_0_index : _regout_idx_T_2;
  assign cc_banks_0_regout_MPORT_mask = 1'h1;
  assign cc_banks_0_regout_MPORT_en = regout_wen & regout_en;
  assign cc_banks_1_regout_MPORT_3_en = cc_banks_1_regout_MPORT_3_en_pipe_0;
  assign cc_banks_1_regout_MPORT_3_addr = cc_banks_1_regout_MPORT_3_addr_pipe_0;
  assign cc_banks_1_regout_MPORT_3_data = cc_banks_1[cc_banks_1_regout_MPORT_3_addr]; // @[DescribedSRAM.scala 19:26]
  assign cc_banks_1_regout_MPORT_2_data = reqs_0_bankSel[1] ? io_sinkC_dat_data : _regout_data_T_5;
  assign cc_banks_1_regout_MPORT_2_addr = reqs_0_bankSel[1] ? reqs_0_index : _regout_idx_T_5;
  assign cc_banks_1_regout_MPORT_2_mask = 1'h1;
  assign cc_banks_1_regout_MPORT_2_en = regout_wen_1 & regout_en_1;
  assign cc_banks_2_regout_MPORT_5_en = cc_banks_2_regout_MPORT_5_en_pipe_0;
  assign cc_banks_2_regout_MPORT_5_addr = cc_banks_2_regout_MPORT_5_addr_pipe_0;
  assign cc_banks_2_regout_MPORT_5_data = cc_banks_2[cc_banks_2_regout_MPORT_5_addr]; // @[DescribedSRAM.scala 19:26]
  assign cc_banks_2_regout_MPORT_4_data = reqs_0_bankSel[2] ? io_sinkC_dat_data : _regout_data_T_8;
  assign cc_banks_2_regout_MPORT_4_addr = reqs_0_bankSel[2] ? reqs_0_index : _regout_idx_T_8;
  assign cc_banks_2_regout_MPORT_4_mask = 1'h1;
  assign cc_banks_2_regout_MPORT_4_en = regout_wen_2 & regout_en_2;
  assign cc_banks_3_regout_MPORT_7_en = cc_banks_3_regout_MPORT_7_en_pipe_0;
  assign cc_banks_3_regout_MPORT_7_addr = cc_banks_3_regout_MPORT_7_addr_pipe_0;
  assign cc_banks_3_regout_MPORT_7_data = cc_banks_3[cc_banks_3_regout_MPORT_7_addr]; // @[DescribedSRAM.scala 19:26]
  assign cc_banks_3_regout_MPORT_6_data = reqs_0_bankSel[3] ? io_sinkC_dat_data : _regout_data_T_11;
  assign cc_banks_3_regout_MPORT_6_addr = reqs_0_bankSel[3] ? reqs_0_index : _regout_idx_T_11;
  assign cc_banks_3_regout_MPORT_6_mask = 1'h1;
  assign cc_banks_3_regout_MPORT_6_en = regout_wen_3 & regout_en_3;
  assign io_sinkC_adr_ready = _sinkC_req_io_sinkC_adr_ready_T_1[0]; // @[BankedStore.scala 131:21]
  assign io_sinkD_adr_ready = _sinkD_req_io_sinkD_adr_ready_T_1[0]; // @[BankedStore.scala 131:21]
  assign io_sourceC_adr_ready = _sourceC_req_io_sourceC_adr_ready_T_1[0]; // @[BankedStore.scala 131:21]
  assign io_sourceC_dat_data = _decodeC_T_9 | _decodeC_T_7; // @[BankedStore.scala 179:85]
  assign io_sourceD_radr_ready = _sourceD_rreq_io_sourceD_radr_ready_T_1[0]; // @[BankedStore.scala 131:21]
  assign io_sourceD_rdat_data = _decodeD_T_9 | _decodeD_T_7; // @[BankedStore.scala 186:85]
  assign io_sourceD_wadr_ready = _sourceD_wreq_io_sourceD_wadr_ready_T_1[0]; // @[BankedStore.scala 131:21]
  always @(posedge clock) begin
    if (cc_banks_0_regout_MPORT_en & cc_banks_0_regout_MPORT_mask) begin
      cc_banks_0[cc_banks_0_regout_MPORT_addr] <= cc_banks_0_regout_MPORT_data; // @[DescribedSRAM.scala 19:26]
    end
    cc_banks_0_regout_MPORT_1_en_pipe_0 <= _regout_T_1 & regout_en;
    if (_regout_T_1 & regout_en) begin
      if (reqs_0_bankSel[0]) begin
        cc_banks_0_regout_MPORT_1_addr_pipe_0 <= reqs_0_index;
      end else if (regout_sel_1) begin // @[Mux.scala 47:70]
        cc_banks_0_regout_MPORT_1_addr_pipe_0 <= reqs_1_index;
      end else if (regout_sel_2) begin // @[Mux.scala 47:70]
        cc_banks_0_regout_MPORT_1_addr_pipe_0 <= reqs_2_index;
      end else begin
        cc_banks_0_regout_MPORT_1_addr_pipe_0 <= _regout_idx_T;
      end
    end
    if (cc_banks_1_regout_MPORT_2_en & cc_banks_1_regout_MPORT_2_mask) begin
      cc_banks_1[cc_banks_1_regout_MPORT_2_addr] <= cc_banks_1_regout_MPORT_2_data; // @[DescribedSRAM.scala 19:26]
    end
    cc_banks_1_regout_MPORT_3_en_pipe_0 <= _regout_T_8 & regout_en_1;
    if (_regout_T_8 & regout_en_1) begin
      if (reqs_0_bankSel[1]) begin
        cc_banks_1_regout_MPORT_3_addr_pipe_0 <= reqs_0_index;
      end else if (regout_sel_1_1) begin // @[Mux.scala 47:70]
        cc_banks_1_regout_MPORT_3_addr_pipe_0 <= reqs_1_index;
      end else if (regout_sel_2_1) begin // @[Mux.scala 47:70]
        cc_banks_1_regout_MPORT_3_addr_pipe_0 <= reqs_2_index;
      end else begin
        cc_banks_1_regout_MPORT_3_addr_pipe_0 <= _regout_idx_T_3;
      end
    end
    if (cc_banks_2_regout_MPORT_4_en & cc_banks_2_regout_MPORT_4_mask) begin
      cc_banks_2[cc_banks_2_regout_MPORT_4_addr] <= cc_banks_2_regout_MPORT_4_data; // @[DescribedSRAM.scala 19:26]
    end
    cc_banks_2_regout_MPORT_5_en_pipe_0 <= _regout_T_15 & regout_en_2;
    if (_regout_T_15 & regout_en_2) begin
      if (reqs_0_bankSel[2]) begin
        cc_banks_2_regout_MPORT_5_addr_pipe_0 <= reqs_0_index;
      end else if (regout_sel_1_2) begin // @[Mux.scala 47:70]
        cc_banks_2_regout_MPORT_5_addr_pipe_0 <= reqs_1_index;
      end else if (regout_sel_2_2) begin // @[Mux.scala 47:70]
        cc_banks_2_regout_MPORT_5_addr_pipe_0 <= reqs_2_index;
      end else begin
        cc_banks_2_regout_MPORT_5_addr_pipe_0 <= _regout_idx_T_6;
      end
    end
    if (cc_banks_3_regout_MPORT_6_en & cc_banks_3_regout_MPORT_6_mask) begin
      cc_banks_3[cc_banks_3_regout_MPORT_6_addr] <= cc_banks_3_regout_MPORT_6_data; // @[DescribedSRAM.scala 19:26]
    end
    cc_banks_3_regout_MPORT_7_en_pipe_0 <= _regout_T_22 & regout_en_3;
    if (_regout_T_22 & regout_en_3) begin
      if (reqs_0_bankSel[3]) begin
        cc_banks_3_regout_MPORT_7_addr_pipe_0 <= reqs_0_index;
      end else if (regout_sel_1_3) begin // @[Mux.scala 47:70]
        cc_banks_3_regout_MPORT_7_addr_pipe_0 <= reqs_1_index;
      end else if (regout_sel_2_3) begin // @[Mux.scala 47:70]
        cc_banks_3_regout_MPORT_7_addr_pipe_0 <= reqs_2_index;
      end else begin
        cc_banks_3_regout_MPORT_7_addr_pipe_0 <= _regout_idx_T_9;
      end
    end
    regout_REG <= ~regout_wen & regout_en; // @[BankedStore.scala 171:53]
    if (regout_REG) begin // @[Reg.scala 20:18]
      regout_r <= cc_banks_0_regout_MPORT_1_data; // @[Reg.scala 20:22]
    end
    regout_REG_1 <= ~regout_wen_1 & regout_en_1; // @[BankedStore.scala 171:53]
    if (regout_REG_1) begin // @[Reg.scala 20:18]
      regout_r_1 <= cc_banks_1_regout_MPORT_3_data; // @[Reg.scala 20:22]
    end
    regout_REG_2 <= ~regout_wen_2 & regout_en_2; // @[BankedStore.scala 171:53]
    if (regout_REG_2) begin // @[Reg.scala 20:18]
      regout_r_2 <= cc_banks_2_regout_MPORT_5_data; // @[Reg.scala 20:22]
    end
    regout_REG_3 <= ~regout_wen_3 & regout_en_3; // @[BankedStore.scala 171:53]
    if (regout_REG_3) begin // @[Reg.scala 20:18]
      regout_r_3 <= cc_banks_3_regout_MPORT_7_data; // @[Reg.scala 20:22]
    end
    regsel_sourceC_REG <= reqs_1_bankSel & _sourceC_req_out_bankEn_T_4; // @[BankedStore.scala 136:59]
    regsel_sourceC <= regsel_sourceC_REG; // @[BankedStore.scala 174:31]
    regsel_sourceD_REG <= reqs_4_bankSel & _sourceD_rreq_out_bankEn_T_4; // @[BankedStore.scala 136:59]
    regsel_sourceD <= regsel_sourceD_REG; // @[BankedStore.scala 175:31]
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {2{`RANDOM}};
  for (initvar = 0; initvar < 8; initvar = initvar+1)
    cc_banks_0[initvar] = _RAND_0[63:0];
  _RAND_3 = {2{`RANDOM}};
  for (initvar = 0; initvar < 8; initvar = initvar+1)
    cc_banks_1[initvar] = _RAND_3[63:0];
  _RAND_6 = {2{`RANDOM}};
  for (initvar = 0; initvar < 8; initvar = initvar+1)
    cc_banks_2[initvar] = _RAND_6[63:0];
  _RAND_9 = {2{`RANDOM}};
  for (initvar = 0; initvar < 8; initvar = initvar+1)
    cc_banks_3[initvar] = _RAND_9[63:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_1 = {1{`RANDOM}};
  cc_banks_0_regout_MPORT_1_en_pipe_0 = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  cc_banks_0_regout_MPORT_1_addr_pipe_0 = _RAND_2[2:0];
  _RAND_4 = {1{`RANDOM}};
  cc_banks_1_regout_MPORT_3_en_pipe_0 = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  cc_banks_1_regout_MPORT_3_addr_pipe_0 = _RAND_5[2:0];
  _RAND_7 = {1{`RANDOM}};
  cc_banks_2_regout_MPORT_5_en_pipe_0 = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  cc_banks_2_regout_MPORT_5_addr_pipe_0 = _RAND_8[2:0];
  _RAND_10 = {1{`RANDOM}};
  cc_banks_3_regout_MPORT_7_en_pipe_0 = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  cc_banks_3_regout_MPORT_7_addr_pipe_0 = _RAND_11[2:0];
  _RAND_12 = {1{`RANDOM}};
  regout_REG = _RAND_12[0:0];
  _RAND_13 = {2{`RANDOM}};
  regout_r = _RAND_13[63:0];
  _RAND_14 = {1{`RANDOM}};
  regout_REG_1 = _RAND_14[0:0];
  _RAND_15 = {2{`RANDOM}};
  regout_r_1 = _RAND_15[63:0];
  _RAND_16 = {1{`RANDOM}};
  regout_REG_2 = _RAND_16[0:0];
  _RAND_17 = {2{`RANDOM}};
  regout_r_2 = _RAND_17[63:0];
  _RAND_18 = {1{`RANDOM}};
  regout_REG_3 = _RAND_18[0:0];
  _RAND_19 = {2{`RANDOM}};
  regout_r_3 = _RAND_19[63:0];
  _RAND_20 = {1{`RANDOM}};
  regsel_sourceC_REG = _RAND_20[3:0];
  _RAND_21 = {1{`RANDOM}};
  regsel_sourceC = _RAND_21[3:0];
  _RAND_22 = {1{`RANDOM}};
  regsel_sourceD_REG = _RAND_22[3:0];
  _RAND_23 = {1{`RANDOM}};
  regsel_sourceD = _RAND_23[3:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module ListBuffer_2(
  input         clock,
  input         reset,
  output        io_push_ready,
  input         io_push_valid,
  input  [6:0]  io_push_bits_index,
  input         io_push_bits_data_prio_0,
  input         io_push_bits_data_prio_2,
  input  [2:0]  io_push_bits_data_opcode,
  input  [2:0]  io_push_bits_data_param,
  input  [2:0]  io_push_bits_data_size,
  input  [2:0]  io_push_bits_data_source,
  input  [24:0] io_push_bits_data_tag,
  input  [3:0]  io_push_bits_data_offset,
  input  [5:0]  io_push_bits_data_put,
  output [65:0] io_valid,
  input         io_pop_valid,
  input  [6:0]  io_pop_bits,
  output        io_data_prio_0,
  output        io_data_prio_1,
  output        io_data_prio_2,
  output [2:0]  io_data_opcode,
  output [2:0]  io_data_param,
  output [2:0]  io_data_size,
  output [2:0]  io_data_source,
  output [24:0] io_data_tag,
  output [3:0]  io_data_offset,
  output [5:0]  io_data_put
);
`ifdef RANDOMIZE_GARBAGE_ASSIGN
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_26;
`endif // RANDOMIZE_GARBAGE_ASSIGN
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_25;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [95:0] _RAND_27;
  reg [31:0] _RAND_28;
`endif // RANDOMIZE_REG_INIT
  reg [4:0] head [0:65]; // @[ListBuffer.scala 46:18]
  wire  head_pop_head_en; // @[ListBuffer.scala 46:18]
  wire [6:0] head_pop_head_addr; // @[ListBuffer.scala 46:18]
  wire [4:0] head_pop_head_data; // @[ListBuffer.scala 46:18]
  wire [4:0] head_MPORT_2_data; // @[ListBuffer.scala 46:18]
  wire [6:0] head_MPORT_2_addr; // @[ListBuffer.scala 46:18]
  wire  head_MPORT_2_mask; // @[ListBuffer.scala 46:18]
  wire  head_MPORT_2_en; // @[ListBuffer.scala 46:18]
  wire [4:0] head_MPORT_6_data; // @[ListBuffer.scala 46:18]
  wire [6:0] head_MPORT_6_addr; // @[ListBuffer.scala 46:18]
  wire  head_MPORT_6_mask; // @[ListBuffer.scala 46:18]
  wire  head_MPORT_6_en; // @[ListBuffer.scala 46:18]
  reg [4:0] tail [0:65]; // @[ListBuffer.scala 47:18]
  wire  tail_push_tail_en; // @[ListBuffer.scala 47:18]
  wire [6:0] tail_push_tail_addr; // @[ListBuffer.scala 47:18]
  wire [4:0] tail_push_tail_data; // @[ListBuffer.scala 47:18]
  wire  tail_MPORT_4_en; // @[ListBuffer.scala 47:18]
  wire [6:0] tail_MPORT_4_addr; // @[ListBuffer.scala 47:18]
  wire [4:0] tail_MPORT_4_data; // @[ListBuffer.scala 47:18]
  wire [4:0] tail_MPORT_3_data; // @[ListBuffer.scala 47:18]
  wire [6:0] tail_MPORT_3_addr; // @[ListBuffer.scala 47:18]
  wire  tail_MPORT_3_mask; // @[ListBuffer.scala 47:18]
  wire  tail_MPORT_3_en; // @[ListBuffer.scala 47:18]
  reg [4:0] next [0:21]; // @[ListBuffer.scala 49:18]
  wire  next_MPORT_5_en; // @[ListBuffer.scala 49:18]
  wire [4:0] next_MPORT_5_addr; // @[ListBuffer.scala 49:18]
  wire [4:0] next_MPORT_5_data; // @[ListBuffer.scala 49:18]
  wire [4:0] next_MPORT_1_data; // @[ListBuffer.scala 49:18]
  wire [4:0] next_MPORT_1_addr; // @[ListBuffer.scala 49:18]
  wire  next_MPORT_1_mask; // @[ListBuffer.scala 49:18]
  wire  next_MPORT_1_en; // @[ListBuffer.scala 49:18]
  reg  data_prio_0 [0:21]; // @[ListBuffer.scala 50:18]
  wire  data_prio_0_io_data_MPORT_en; // @[ListBuffer.scala 50:18]
  wire [4:0] data_prio_0_io_data_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire  data_prio_0_io_data_MPORT_data; // @[ListBuffer.scala 50:18]
  wire  data_prio_0_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [4:0] data_prio_0_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire  data_prio_0_MPORT_mask; // @[ListBuffer.scala 50:18]
  wire  data_prio_0_MPORT_en; // @[ListBuffer.scala 50:18]
  reg  data_prio_1 [0:21]; // @[ListBuffer.scala 50:18]
  wire  data_prio_1_io_data_MPORT_en; // @[ListBuffer.scala 50:18]
  wire [4:0] data_prio_1_io_data_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire  data_prio_1_io_data_MPORT_data; // @[ListBuffer.scala 50:18]
  wire  data_prio_1_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [4:0] data_prio_1_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire  data_prio_1_MPORT_mask; // @[ListBuffer.scala 50:18]
  wire  data_prio_1_MPORT_en; // @[ListBuffer.scala 50:18]
  reg  data_prio_2 [0:21]; // @[ListBuffer.scala 50:18]
  wire  data_prio_2_io_data_MPORT_en; // @[ListBuffer.scala 50:18]
  wire [4:0] data_prio_2_io_data_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire  data_prio_2_io_data_MPORT_data; // @[ListBuffer.scala 50:18]
  wire  data_prio_2_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [4:0] data_prio_2_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire  data_prio_2_MPORT_mask; // @[ListBuffer.scala 50:18]
  wire  data_prio_2_MPORT_en; // @[ListBuffer.scala 50:18]
  reg [2:0] data_opcode [0:21]; // @[ListBuffer.scala 50:18]
  wire  data_opcode_io_data_MPORT_en; // @[ListBuffer.scala 50:18]
  wire [4:0] data_opcode_io_data_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire [2:0] data_opcode_io_data_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [2:0] data_opcode_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [4:0] data_opcode_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire  data_opcode_MPORT_mask; // @[ListBuffer.scala 50:18]
  wire  data_opcode_MPORT_en; // @[ListBuffer.scala 50:18]
  reg [2:0] data_param [0:21]; // @[ListBuffer.scala 50:18]
  wire  data_param_io_data_MPORT_en; // @[ListBuffer.scala 50:18]
  wire [4:0] data_param_io_data_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire [2:0] data_param_io_data_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [2:0] data_param_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [4:0] data_param_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire  data_param_MPORT_mask; // @[ListBuffer.scala 50:18]
  wire  data_param_MPORT_en; // @[ListBuffer.scala 50:18]
  reg [2:0] data_size [0:21]; // @[ListBuffer.scala 50:18]
  wire  data_size_io_data_MPORT_en; // @[ListBuffer.scala 50:18]
  wire [4:0] data_size_io_data_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire [2:0] data_size_io_data_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [2:0] data_size_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [4:0] data_size_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire  data_size_MPORT_mask; // @[ListBuffer.scala 50:18]
  wire  data_size_MPORT_en; // @[ListBuffer.scala 50:18]
  reg [2:0] data_source [0:21]; // @[ListBuffer.scala 50:18]
  wire  data_source_io_data_MPORT_en; // @[ListBuffer.scala 50:18]
  wire [4:0] data_source_io_data_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire [2:0] data_source_io_data_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [2:0] data_source_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [4:0] data_source_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire  data_source_MPORT_mask; // @[ListBuffer.scala 50:18]
  wire  data_source_MPORT_en; // @[ListBuffer.scala 50:18]
  reg [24:0] data_tag [0:21]; // @[ListBuffer.scala 50:18]
  wire  data_tag_io_data_MPORT_en; // @[ListBuffer.scala 50:18]
  wire [4:0] data_tag_io_data_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire [24:0] data_tag_io_data_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [24:0] data_tag_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [4:0] data_tag_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire  data_tag_MPORT_mask; // @[ListBuffer.scala 50:18]
  wire  data_tag_MPORT_en; // @[ListBuffer.scala 50:18]
  reg [3:0] data_offset [0:21]; // @[ListBuffer.scala 50:18]
  wire  data_offset_io_data_MPORT_en; // @[ListBuffer.scala 50:18]
  wire [4:0] data_offset_io_data_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire [3:0] data_offset_io_data_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [3:0] data_offset_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [4:0] data_offset_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire  data_offset_MPORT_mask; // @[ListBuffer.scala 50:18]
  wire  data_offset_MPORT_en; // @[ListBuffer.scala 50:18]
  reg [5:0] data_put [0:21]; // @[ListBuffer.scala 50:18]
  wire  data_put_io_data_MPORT_en; // @[ListBuffer.scala 50:18]
  wire [4:0] data_put_io_data_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire [5:0] data_put_io_data_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [5:0] data_put_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [4:0] data_put_MPORT_addr; // @[ListBuffer.scala 50:18]
  wire  data_put_MPORT_mask; // @[ListBuffer.scala 50:18]
  wire  data_put_MPORT_en; // @[ListBuffer.scala 50:18]
  reg [65:0] valid; // @[ListBuffer.scala 45:22]
  reg [21:0] used; // @[ListBuffer.scala 48:22]
  wire [21:0] _freeOH_T = ~used; // @[ListBuffer.scala 52:25]
  wire [22:0] _freeOH_T_1 = {_freeOH_T, 1'h0}; // @[package.scala 244:48]
  wire [21:0] _freeOH_T_3 = _freeOH_T | _freeOH_T_1[21:0]; // @[package.scala 244:43]
  wire [23:0] _freeOH_T_4 = {_freeOH_T_3, 2'h0}; // @[package.scala 244:48]
  wire [21:0] _freeOH_T_6 = _freeOH_T_3 | _freeOH_T_4[21:0]; // @[package.scala 244:43]
  wire [25:0] _freeOH_T_7 = {_freeOH_T_6, 4'h0}; // @[package.scala 244:48]
  wire [21:0] _freeOH_T_9 = _freeOH_T_6 | _freeOH_T_7[21:0]; // @[package.scala 244:43]
  wire [29:0] _freeOH_T_10 = {_freeOH_T_9, 8'h0}; // @[package.scala 244:48]
  wire [21:0] _freeOH_T_12 = _freeOH_T_9 | _freeOH_T_10[21:0]; // @[package.scala 244:43]
  wire [37:0] _freeOH_T_13 = {_freeOH_T_12, 16'h0}; // @[package.scala 244:48]
  wire [21:0] _freeOH_T_15 = _freeOH_T_12 | _freeOH_T_13[21:0]; // @[package.scala 244:43]
  wire [22:0] _freeOH_T_17 = {_freeOH_T_15, 1'h0}; // @[ListBuffer.scala 52:32]
  wire [22:0] _freeOH_T_18 = ~_freeOH_T_17; // @[ListBuffer.scala 52:16]
  wire [22:0] _GEN_49 = {{1'd0}, _freeOH_T}; // @[ListBuffer.scala 52:38]
  wire [22:0] freeOH = _freeOH_T_18 & _GEN_49; // @[ListBuffer.scala 52:38]
  wire [6:0] freeIdx_hi = freeOH[22:16]; // @[OneHot.scala 30:18]
  wire [15:0] freeIdx_lo = freeOH[15:0]; // @[OneHot.scala 31:18]
  wire  _freeIdx_T = |freeIdx_hi; // @[OneHot.scala 32:14]
  wire [15:0] _GEN_50 = {{9'd0}, freeIdx_hi}; // @[OneHot.scala 32:28]
  wire [15:0] _freeIdx_T_1 = _GEN_50 | freeIdx_lo; // @[OneHot.scala 32:28]
  wire [7:0] freeIdx_hi_1 = _freeIdx_T_1[15:8]; // @[OneHot.scala 30:18]
  wire [7:0] freeIdx_lo_1 = _freeIdx_T_1[7:0]; // @[OneHot.scala 31:18]
  wire  _freeIdx_T_2 = |freeIdx_hi_1; // @[OneHot.scala 32:14]
  wire [7:0] _freeIdx_T_3 = freeIdx_hi_1 | freeIdx_lo_1; // @[OneHot.scala 32:28]
  wire [3:0] freeIdx_hi_2 = _freeIdx_T_3[7:4]; // @[OneHot.scala 30:18]
  wire [3:0] freeIdx_lo_2 = _freeIdx_T_3[3:0]; // @[OneHot.scala 31:18]
  wire  _freeIdx_T_4 = |freeIdx_hi_2; // @[OneHot.scala 32:14]
  wire [3:0] _freeIdx_T_5 = freeIdx_hi_2 | freeIdx_lo_2; // @[OneHot.scala 32:28]
  wire [1:0] freeIdx_hi_3 = _freeIdx_T_5[3:2]; // @[OneHot.scala 30:18]
  wire [1:0] freeIdx_lo_3 = _freeIdx_T_5[1:0]; // @[OneHot.scala 31:18]
  wire  _freeIdx_T_6 = |freeIdx_hi_3; // @[OneHot.scala 32:14]
  wire [1:0] _freeIdx_T_7 = freeIdx_hi_3 | freeIdx_lo_3; // @[OneHot.scala 32:28]
  wire [3:0] _freeIdx_T_11 = {_freeIdx_T_2,_freeIdx_T_4,_freeIdx_T_6,_freeIdx_T_7[1]}; // @[Cat.scala 33:92]
  wire [4:0] freeIdx = {_freeIdx_T,_freeIdx_T_2,_freeIdx_T_4,_freeIdx_T_6,_freeIdx_T_7[1]}; // @[Cat.scala 33:92]
  wire [65:0] _push_valid_T = valid >> io_push_bits_index; // @[ListBuffer.scala 61:25]
  wire  push_valid = _push_valid_T[0]; // @[ListBuffer.scala 61:25]
  wire  _T = io_push_ready & io_push_valid; // @[Decoupled.scala 52:35]
  wire [127:0] _valid_set_T = 128'h1 << io_push_bits_index; // @[OneHot.scala 64:12]
  wire  _GEN_7 = push_valid ? 1'h0 : 1'h1; // @[ListBuffer.scala 46:18 68:23]
  wire [65:0] valid_set = _T ? _valid_set_T[65:0] : 66'h0; // @[ListBuffer.scala 64:25 65:15]
  wire [22:0] _GEN_11 = _T ? freeOH : 23'h0; // @[ListBuffer.scala 64:25 66:14]
  wire  _GEN_29 = _T & push_valid; // @[ListBuffer.scala 49:18 64:25]
  wire [65:0] _T_2 = io_valid >> io_pop_bits; // @[ListBuffer.scala 84:39]
  wire [4:0] used_clr_shiftAmount = head_pop_head_data; // @[OneHot.scala 63:49]
  wire [31:0] _used_clr_T = 32'h1 << used_clr_shiftAmount; // @[OneHot.scala 64:12]
  wire [127:0] _valid_clr_T = 128'h1 << io_pop_bits; // @[OneHot.scala 64:12]
  wire [65:0] _GEN_38 = head_pop_head_data == tail_MPORT_4_data ? _valid_clr_T[65:0] : 66'h0; // @[ListBuffer.scala 88:48 89:17]
  wire  _T_12 = _GEN_29 & tail_push_tail_data == head_pop_head_data; // @[ListBuffer.scala 91:62]
  wire [21:0] used_clr = io_pop_valid ? _used_clr_T[21:0] : 22'h0; // @[ListBuffer.scala 86:24 87:14]
  wire [65:0] valid_clr = io_pop_valid ? _GEN_38 : 66'h0; // @[ListBuffer.scala 86:24]
  wire [21:0] _used_T = ~used_clr; // @[ListBuffer.scala 96:23]
  wire [21:0] _used_T_1 = used & _used_T; // @[ListBuffer.scala 96:21]
  wire [21:0] used_set = _GEN_11[21:0];
  wire [21:0] _used_T_2 = _used_T_1 | used_set; // @[ListBuffer.scala 96:35]
  wire [65:0] _valid_T = ~valid_clr; // @[ListBuffer.scala 97:23]
  wire [65:0] _valid_T_1 = valid & _valid_T; // @[ListBuffer.scala 97:21]
  wire [65:0] _valid_T_2 = _valid_T_1 | valid_set; // @[ListBuffer.scala 97:35]
  assign head_pop_head_en = 1'h1;
  assign head_pop_head_addr = io_pop_bits;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign head_pop_head_data = head[head_pop_head_addr]; // @[ListBuffer.scala 46:18]
  `else
  assign head_pop_head_data = head_pop_head_addr >= 7'h42 ? _RAND_1[4:0] : head[head_pop_head_addr]; // @[ListBuffer.scala 46:18]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign head_MPORT_2_data = {_freeIdx_T,_freeIdx_T_11};
  assign head_MPORT_2_addr = io_push_bits_index;
  assign head_MPORT_2_mask = 1'h1;
  assign head_MPORT_2_en = _T & _GEN_7;
  assign head_MPORT_6_data = _T_12 ? freeIdx : next_MPORT_5_data;
  assign head_MPORT_6_addr = io_pop_bits;
  assign head_MPORT_6_mask = 1'h1;
  assign head_MPORT_6_en = io_pop_valid;
  assign tail_push_tail_en = 1'h1;
  assign tail_push_tail_addr = io_push_bits_index;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign tail_push_tail_data = tail[tail_push_tail_addr]; // @[ListBuffer.scala 47:18]
  `else
  assign tail_push_tail_data = tail_push_tail_addr >= 7'h42 ? _RAND_3[4:0] : tail[tail_push_tail_addr]; // @[ListBuffer.scala 47:18]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign tail_MPORT_4_en = io_pop_valid;
  assign tail_MPORT_4_addr = io_pop_bits;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign tail_MPORT_4_data = tail[tail_MPORT_4_addr]; // @[ListBuffer.scala 47:18]
  `else
  assign tail_MPORT_4_data = tail_MPORT_4_addr >= 7'h42 ? _RAND_4[4:0] : tail[tail_MPORT_4_addr]; // @[ListBuffer.scala 47:18]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign tail_MPORT_3_data = {_freeIdx_T,_freeIdx_T_11};
  assign tail_MPORT_3_addr = io_push_bits_index;
  assign tail_MPORT_3_mask = 1'h1;
  assign tail_MPORT_3_en = io_push_ready & io_push_valid;
  assign next_MPORT_5_en = io_pop_valid;
  assign next_MPORT_5_addr = head_pop_head_data;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign next_MPORT_5_data = next[next_MPORT_5_addr]; // @[ListBuffer.scala 49:18]
  `else
  assign next_MPORT_5_data = next_MPORT_5_addr >= 5'h16 ? _RAND_6[4:0] : next[next_MPORT_5_addr]; // @[ListBuffer.scala 49:18]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign next_MPORT_1_data = {_freeIdx_T,_freeIdx_T_11};
  assign next_MPORT_1_addr = tail_push_tail_data;
  assign next_MPORT_1_mask = 1'h1;
  assign next_MPORT_1_en = _T & push_valid;
  assign data_prio_0_io_data_MPORT_en = 1'h1;
  assign data_prio_0_io_data_MPORT_addr = head_pop_head_data;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign data_prio_0_io_data_MPORT_data = data_prio_0[data_prio_0_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `else
  assign data_prio_0_io_data_MPORT_data = data_prio_0_io_data_MPORT_addr >= 5'h16 ? _RAND_8[0:0] :
    data_prio_0[data_prio_0_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign data_prio_0_MPORT_data = io_push_bits_data_prio_0;
  assign data_prio_0_MPORT_addr = {_freeIdx_T,_freeIdx_T_11};
  assign data_prio_0_MPORT_mask = 1'h1;
  assign data_prio_0_MPORT_en = io_push_ready & io_push_valid;
  assign data_prio_1_io_data_MPORT_en = 1'h1;
  assign data_prio_1_io_data_MPORT_addr = head_pop_head_data;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign data_prio_1_io_data_MPORT_data = data_prio_1[data_prio_1_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `else
  assign data_prio_1_io_data_MPORT_data = data_prio_1_io_data_MPORT_addr >= 5'h16 ? _RAND_10[0:0] :
    data_prio_1[data_prio_1_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign data_prio_1_MPORT_data = 1'h0;
  assign data_prio_1_MPORT_addr = {_freeIdx_T,_freeIdx_T_11};
  assign data_prio_1_MPORT_mask = 1'h1;
  assign data_prio_1_MPORT_en = io_push_ready & io_push_valid;
  assign data_prio_2_io_data_MPORT_en = 1'h1;
  assign data_prio_2_io_data_MPORT_addr = head_pop_head_data;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign data_prio_2_io_data_MPORT_data = data_prio_2[data_prio_2_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `else
  assign data_prio_2_io_data_MPORT_data = data_prio_2_io_data_MPORT_addr >= 5'h16 ? _RAND_12[0:0] :
    data_prio_2[data_prio_2_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign data_prio_2_MPORT_data = io_push_bits_data_prio_2;
  assign data_prio_2_MPORT_addr = {_freeIdx_T,_freeIdx_T_11};
  assign data_prio_2_MPORT_mask = 1'h1;
  assign data_prio_2_MPORT_en = io_push_ready & io_push_valid;
  assign data_opcode_io_data_MPORT_en = 1'h1;
  assign data_opcode_io_data_MPORT_addr = head_pop_head_data;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign data_opcode_io_data_MPORT_data = data_opcode[data_opcode_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `else
  assign data_opcode_io_data_MPORT_data = data_opcode_io_data_MPORT_addr >= 5'h16 ? _RAND_14[2:0] :
    data_opcode[data_opcode_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign data_opcode_MPORT_data = io_push_bits_data_opcode;
  assign data_opcode_MPORT_addr = {_freeIdx_T,_freeIdx_T_11};
  assign data_opcode_MPORT_mask = 1'h1;
  assign data_opcode_MPORT_en = io_push_ready & io_push_valid;
  assign data_param_io_data_MPORT_en = 1'h1;
  assign data_param_io_data_MPORT_addr = head_pop_head_data;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign data_param_io_data_MPORT_data = data_param[data_param_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `else
  assign data_param_io_data_MPORT_data = data_param_io_data_MPORT_addr >= 5'h16 ? _RAND_16[2:0] :
    data_param[data_param_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign data_param_MPORT_data = io_push_bits_data_param;
  assign data_param_MPORT_addr = {_freeIdx_T,_freeIdx_T_11};
  assign data_param_MPORT_mask = 1'h1;
  assign data_param_MPORT_en = io_push_ready & io_push_valid;
  assign data_size_io_data_MPORT_en = 1'h1;
  assign data_size_io_data_MPORT_addr = head_pop_head_data;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign data_size_io_data_MPORT_data = data_size[data_size_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `else
  assign data_size_io_data_MPORT_data = data_size_io_data_MPORT_addr >= 5'h16 ? _RAND_18[2:0] :
    data_size[data_size_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign data_size_MPORT_data = io_push_bits_data_size;
  assign data_size_MPORT_addr = {_freeIdx_T,_freeIdx_T_11};
  assign data_size_MPORT_mask = 1'h1;
  assign data_size_MPORT_en = io_push_ready & io_push_valid;
  assign data_source_io_data_MPORT_en = 1'h1;
  assign data_source_io_data_MPORT_addr = head_pop_head_data;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign data_source_io_data_MPORT_data = data_source[data_source_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `else
  assign data_source_io_data_MPORT_data = data_source_io_data_MPORT_addr >= 5'h16 ? _RAND_20[2:0] :
    data_source[data_source_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign data_source_MPORT_data = io_push_bits_data_source;
  assign data_source_MPORT_addr = {_freeIdx_T,_freeIdx_T_11};
  assign data_source_MPORT_mask = 1'h1;
  assign data_source_MPORT_en = io_push_ready & io_push_valid;
  assign data_tag_io_data_MPORT_en = 1'h1;
  assign data_tag_io_data_MPORT_addr = head_pop_head_data;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign data_tag_io_data_MPORT_data = data_tag[data_tag_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `else
  assign data_tag_io_data_MPORT_data = data_tag_io_data_MPORT_addr >= 5'h16 ? _RAND_22[24:0] :
    data_tag[data_tag_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign data_tag_MPORT_data = io_push_bits_data_tag;
  assign data_tag_MPORT_addr = {_freeIdx_T,_freeIdx_T_11};
  assign data_tag_MPORT_mask = 1'h1;
  assign data_tag_MPORT_en = io_push_ready & io_push_valid;
  assign data_offset_io_data_MPORT_en = 1'h1;
  assign data_offset_io_data_MPORT_addr = head_pop_head_data;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign data_offset_io_data_MPORT_data = data_offset[data_offset_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `else
  assign data_offset_io_data_MPORT_data = data_offset_io_data_MPORT_addr >= 5'h16 ? _RAND_24[3:0] :
    data_offset[data_offset_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign data_offset_MPORT_data = io_push_bits_data_offset;
  assign data_offset_MPORT_addr = {_freeIdx_T,_freeIdx_T_11};
  assign data_offset_MPORT_mask = 1'h1;
  assign data_offset_MPORT_en = io_push_ready & io_push_valid;
  assign data_put_io_data_MPORT_en = 1'h1;
  assign data_put_io_data_MPORT_addr = head_pop_head_data;
  `ifndef RANDOMIZE_GARBAGE_ASSIGN
  assign data_put_io_data_MPORT_data = data_put[data_put_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `else
  assign data_put_io_data_MPORT_data = data_put_io_data_MPORT_addr >= 5'h16 ? _RAND_26[5:0] :
    data_put[data_put_io_data_MPORT_addr]; // @[ListBuffer.scala 50:18]
  `endif // RANDOMIZE_GARBAGE_ASSIGN
  assign data_put_MPORT_data = io_push_bits_data_put;
  assign data_put_MPORT_addr = {_freeIdx_T,_freeIdx_T_11};
  assign data_put_MPORT_mask = 1'h1;
  assign data_put_MPORT_en = io_push_ready & io_push_valid;
  assign io_push_ready = ~(&used); // @[ListBuffer.scala 63:20]
  assign io_valid = valid; // @[ListBuffer.scala 81:12]
  assign io_data_prio_0 = data_prio_0_io_data_MPORT_data; // @[ListBuffer.scala 80:11]
  assign io_data_prio_1 = data_prio_1_io_data_MPORT_data; // @[ListBuffer.scala 80:11]
  assign io_data_prio_2 = data_prio_2_io_data_MPORT_data; // @[ListBuffer.scala 80:11]
  assign io_data_opcode = data_opcode_io_data_MPORT_data; // @[ListBuffer.scala 80:11]
  assign io_data_param = data_param_io_data_MPORT_data; // @[ListBuffer.scala 80:11]
  assign io_data_size = data_size_io_data_MPORT_data; // @[ListBuffer.scala 80:11]
  assign io_data_source = data_source_io_data_MPORT_data; // @[ListBuffer.scala 80:11]
  assign io_data_tag = data_tag_io_data_MPORT_data; // @[ListBuffer.scala 80:11]
  assign io_data_offset = data_offset_io_data_MPORT_data; // @[ListBuffer.scala 80:11]
  assign io_data_put = data_put_io_data_MPORT_data; // @[ListBuffer.scala 80:11]
  always @(posedge clock) begin
    if (head_MPORT_2_en & head_MPORT_2_mask) begin
      head[head_MPORT_2_addr] <= head_MPORT_2_data; // @[ListBuffer.scala 46:18]
    end
    if (head_MPORT_6_en & head_MPORT_6_mask) begin
      head[head_MPORT_6_addr] <= head_MPORT_6_data; // @[ListBuffer.scala 46:18]
    end
    if (tail_MPORT_3_en & tail_MPORT_3_mask) begin
      tail[tail_MPORT_3_addr] <= tail_MPORT_3_data; // @[ListBuffer.scala 47:18]
    end
    if (next_MPORT_1_en & next_MPORT_1_mask) begin
      next[next_MPORT_1_addr] <= next_MPORT_1_data; // @[ListBuffer.scala 49:18]
    end
    if (data_prio_0_MPORT_en & data_prio_0_MPORT_mask) begin
      data_prio_0[data_prio_0_MPORT_addr] <= data_prio_0_MPORT_data; // @[ListBuffer.scala 50:18]
    end
    if (data_prio_1_MPORT_en & data_prio_1_MPORT_mask) begin
      data_prio_1[data_prio_1_MPORT_addr] <= data_prio_1_MPORT_data; // @[ListBuffer.scala 50:18]
    end
    if (data_prio_2_MPORT_en & data_prio_2_MPORT_mask) begin
      data_prio_2[data_prio_2_MPORT_addr] <= data_prio_2_MPORT_data; // @[ListBuffer.scala 50:18]
    end
    if (data_opcode_MPORT_en & data_opcode_MPORT_mask) begin
      data_opcode[data_opcode_MPORT_addr] <= data_opcode_MPORT_data; // @[ListBuffer.scala 50:18]
    end
    if (data_param_MPORT_en & data_param_MPORT_mask) begin
      data_param[data_param_MPORT_addr] <= data_param_MPORT_data; // @[ListBuffer.scala 50:18]
    end
    if (data_size_MPORT_en & data_size_MPORT_mask) begin
      data_size[data_size_MPORT_addr] <= data_size_MPORT_data; // @[ListBuffer.scala 50:18]
    end
    if (data_source_MPORT_en & data_source_MPORT_mask) begin
      data_source[data_source_MPORT_addr] <= data_source_MPORT_data; // @[ListBuffer.scala 50:18]
    end
    if (data_tag_MPORT_en & data_tag_MPORT_mask) begin
      data_tag[data_tag_MPORT_addr] <= data_tag_MPORT_data; // @[ListBuffer.scala 50:18]
    end
    if (data_offset_MPORT_en & data_offset_MPORT_mask) begin
      data_offset[data_offset_MPORT_addr] <= data_offset_MPORT_data; // @[ListBuffer.scala 50:18]
    end
    if (data_put_MPORT_en & data_put_MPORT_mask) begin
      data_put[data_put_MPORT_addr] <= data_put_MPORT_data; // @[ListBuffer.scala 50:18]
    end
    if (reset) begin // @[ListBuffer.scala 45:22]
      valid <= 66'h0; // @[ListBuffer.scala 45:22]
    end else begin
      valid <= _valid_T_2;
    end
    if (reset) begin // @[ListBuffer.scala 48:22]
      used <= 22'h0; // @[ListBuffer.scala 48:22]
    end else begin
      used <= _used_T_2;
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~io_pop_valid | _T_2[0])) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at ListBuffer.scala:84 assert (!io.pop.fire() || (io.valid)(io.pop.bits))\n"); // @[ListBuffer.scala 84:10]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~io_pop_valid | _T_2[0]) & ~reset) begin
          $fatal; // @[ListBuffer.scala 84:10]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_GARBAGE_ASSIGN
  _RAND_1 = {1{`RANDOM}};
  _RAND_3 = {1{`RANDOM}};
  _RAND_4 = {1{`RANDOM}};
  _RAND_6 = {1{`RANDOM}};
  _RAND_8 = {1{`RANDOM}};
  _RAND_10 = {1{`RANDOM}};
  _RAND_12 = {1{`RANDOM}};
  _RAND_14 = {1{`RANDOM}};
  _RAND_16 = {1{`RANDOM}};
  _RAND_18 = {1{`RANDOM}};
  _RAND_20 = {1{`RANDOM}};
  _RAND_22 = {1{`RANDOM}};
  _RAND_24 = {1{`RANDOM}};
  _RAND_26 = {1{`RANDOM}};
`endif // RANDOMIZE_GARBAGE_ASSIGN
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 66; initvar = initvar+1)
    head[initvar] = _RAND_0[4:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 66; initvar = initvar+1)
    tail[initvar] = _RAND_2[4:0];
  _RAND_5 = {1{`RANDOM}};
  for (initvar = 0; initvar < 22; initvar = initvar+1)
    next[initvar] = _RAND_5[4:0];
  _RAND_7 = {1{`RANDOM}};
  for (initvar = 0; initvar < 22; initvar = initvar+1)
    data_prio_0[initvar] = _RAND_7[0:0];
  _RAND_9 = {1{`RANDOM}};
  for (initvar = 0; initvar < 22; initvar = initvar+1)
    data_prio_1[initvar] = _RAND_9[0:0];
  _RAND_11 = {1{`RANDOM}};
  for (initvar = 0; initvar < 22; initvar = initvar+1)
    data_prio_2[initvar] = _RAND_11[0:0];
  _RAND_13 = {1{`RANDOM}};
  for (initvar = 0; initvar < 22; initvar = initvar+1)
    data_opcode[initvar] = _RAND_13[2:0];
  _RAND_15 = {1{`RANDOM}};
  for (initvar = 0; initvar < 22; initvar = initvar+1)
    data_param[initvar] = _RAND_15[2:0];
  _RAND_17 = {1{`RANDOM}};
  for (initvar = 0; initvar < 22; initvar = initvar+1)
    data_size[initvar] = _RAND_17[2:0];
  _RAND_19 = {1{`RANDOM}};
  for (initvar = 0; initvar < 22; initvar = initvar+1)
    data_source[initvar] = _RAND_19[2:0];
  _RAND_21 = {1{`RANDOM}};
  for (initvar = 0; initvar < 22; initvar = initvar+1)
    data_tag[initvar] = _RAND_21[24:0];
  _RAND_23 = {1{`RANDOM}};
  for (initvar = 0; initvar < 22; initvar = initvar+1)
    data_offset[initvar] = _RAND_23[3:0];
  _RAND_25 = {1{`RANDOM}};
  for (initvar = 0; initvar < 22; initvar = initvar+1)
    data_put[initvar] = _RAND_25[5:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_27 = {3{`RANDOM}};
  valid = _RAND_27[65:0];
  _RAND_28 = {1{`RANDOM}};
  used = _RAND_28[21:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module MSHR(
  input         clock,
  input         reset,
  input         io_allocate_valid,
  input         io_allocate_bits_prio_0,
  input         io_allocate_bits_prio_1,
  input         io_allocate_bits_prio_2,
  input  [2:0]  io_allocate_bits_opcode,
  input  [2:0]  io_allocate_bits_param,
  input  [2:0]  io_allocate_bits_size,
  input  [2:0]  io_allocate_bits_source,
  input  [24:0] io_allocate_bits_tag,
  input  [3:0]  io_allocate_bits_offset,
  input  [5:0]  io_allocate_bits_put,
  input  [2:0]  io_allocate_bits_set,
  input         io_allocate_bits_repeat,
  input         io_directory_valid,
  input         io_directory_bits_dirty,
  input  [1:0]  io_directory_bits_state,
  input         io_directory_bits_clients,
  input  [24:0] io_directory_bits_tag,
  input         io_directory_bits_hit,
  input         io_directory_bits_way,
  output        io_status_valid,
  output [2:0]  io_status_bits_set,
  output [24:0] io_status_bits_tag,
  output        io_status_bits_way,
  output        io_status_bits_blockB,
  output        io_status_bits_nestB,
  output        io_status_bits_blockC,
  output        io_status_bits_nestC,
  input         io_schedule_ready,
  output        io_schedule_valid,
  output        io_schedule_bits_a_valid,
  output [24:0] io_schedule_bits_a_bits_tag,
  output [2:0]  io_schedule_bits_a_bits_set,
  output [2:0]  io_schedule_bits_a_bits_param,
  output        io_schedule_bits_a_bits_block,
  output        io_schedule_bits_b_valid,
  output [2:0]  io_schedule_bits_b_bits_param,
  output [24:0] io_schedule_bits_b_bits_tag,
  output [2:0]  io_schedule_bits_b_bits_set,
  output        io_schedule_bits_b_bits_clients,
  output        io_schedule_bits_c_valid,
  output [2:0]  io_schedule_bits_c_bits_opcode,
  output [2:0]  io_schedule_bits_c_bits_param,
  output [24:0] io_schedule_bits_c_bits_tag,
  output [2:0]  io_schedule_bits_c_bits_set,
  output        io_schedule_bits_c_bits_way,
  output        io_schedule_bits_c_bits_dirty,
  output        io_schedule_bits_d_valid,
  output        io_schedule_bits_d_bits_prio_0,
  output        io_schedule_bits_d_bits_prio_2,
  output [2:0]  io_schedule_bits_d_bits_opcode,
  output [2:0]  io_schedule_bits_d_bits_param,
  output [2:0]  io_schedule_bits_d_bits_size,
  output [2:0]  io_schedule_bits_d_bits_source,
  output [3:0]  io_schedule_bits_d_bits_offset,
  output [5:0]  io_schedule_bits_d_bits_put,
  output [2:0]  io_schedule_bits_d_bits_set,
  output        io_schedule_bits_d_bits_way,
  output        io_schedule_bits_d_bits_bad,
  output        io_schedule_bits_e_valid,
  output [2:0]  io_schedule_bits_e_bits_sink,
  output        io_schedule_bits_x_valid,
  output        io_schedule_bits_dir_valid,
  output [2:0]  io_schedule_bits_dir_bits_set,
  output        io_schedule_bits_dir_bits_way,
  output        io_schedule_bits_dir_bits_data_dirty,
  output [1:0]  io_schedule_bits_dir_bits_data_state,
  output        io_schedule_bits_dir_bits_data_clients,
  output [24:0] io_schedule_bits_dir_bits_data_tag,
  output        io_schedule_bits_reload,
  input         io_sinkc_valid,
  input         io_sinkc_bits_last,
  input  [24:0] io_sinkc_bits_tag,
  input  [2:0]  io_sinkc_bits_source,
  input  [2:0]  io_sinkc_bits_param,
  input         io_sinkc_bits_data,
  input         io_sinkd_valid,
  input         io_sinkd_bits_last,
  input  [2:0]  io_sinkd_bits_opcode,
  input  [2:0]  io_sinkd_bits_param,
  input  [2:0]  io_sinkd_bits_sink,
  input         io_sinkd_bits_denied,
  input         io_sinke_valid,
  input  [2:0]  io_nestedwb_set,
  input  [24:0] io_nestedwb_tag,
  input         io_nestedwb_b_toN,
  input         io_nestedwb_b_toB,
  input         io_nestedwb_b_clr_dirty,
  input         io_nestedwb_c_set_dirty
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
  reg [31:0] _RAND_33;
  reg [31:0] _RAND_34;
  reg [31:0] _RAND_35;
  reg [31:0] _RAND_36;
  reg [31:0] _RAND_37;
  reg [31:0] _RAND_38;
  reg [31:0] _RAND_39;
  reg [31:0] _RAND_40;
`endif // RANDOMIZE_REG_INIT
  reg  request_valid; // @[MSHR.scala 94:30]
  reg  request_prio_0; // @[MSHR.scala 95:20]
  reg  request_prio_1; // @[MSHR.scala 95:20]
  reg  request_prio_2; // @[MSHR.scala 95:20]
  reg [2:0] request_opcode; // @[MSHR.scala 95:20]
  reg [2:0] request_param; // @[MSHR.scala 95:20]
  reg [2:0] request_size; // @[MSHR.scala 95:20]
  reg [2:0] request_source; // @[MSHR.scala 95:20]
  reg [24:0] request_tag; // @[MSHR.scala 95:20]
  reg [3:0] request_offset; // @[MSHR.scala 95:20]
  reg [5:0] request_put; // @[MSHR.scala 95:20]
  reg [2:0] request_set; // @[MSHR.scala 95:20]
  reg  meta_valid; // @[MSHR.scala 96:27]
  reg  meta_dirty; // @[MSHR.scala 97:17]
  reg [1:0] meta_state; // @[MSHR.scala 97:17]
  reg  meta_clients; // @[MSHR.scala 97:17]
  reg [24:0] meta_tag; // @[MSHR.scala 97:17]
  reg  meta_hit; // @[MSHR.scala 97:17]
  reg  meta_way; // @[MSHR.scala 97:17]
  wire  _T = meta_state == 2'h0; // @[MSHR.scala 101:22]
  wire  _T_1 = |meta_clients; // @[MSHR.scala 102:29]
  wire  _T_2 = ~(|meta_clients); // @[MSHR.scala 102:15]
  wire  _T_4 = ~reset; // @[MSHR.scala 102:14]
  wire  _T_9 = ~(~meta_dirty); // @[MSHR.scala 103:14]
  wire  _T_10 = meta_state == 2'h1; // @[MSHR.scala 105:22]
  wire  _T_15 = meta_state == 2'h2; // @[MSHR.scala 108:22]
  reg  s_rprobe; // @[MSHR.scala 118:33]
  reg  w_rprobeackfirst; // @[MSHR.scala 119:33]
  reg  w_rprobeacklast; // @[MSHR.scala 120:33]
  reg  s_release; // @[MSHR.scala 121:33]
  reg  w_releaseack; // @[MSHR.scala 122:33]
  reg  s_pprobe; // @[MSHR.scala 123:33]
  reg  s_acquire; // @[MSHR.scala 124:33]
  reg  w_grantfirst; // @[MSHR.scala 126:33]
  reg  w_grantlast; // @[MSHR.scala 127:33]
  reg  w_grant; // @[MSHR.scala 128:33]
  reg  w_pprobeackfirst; // @[MSHR.scala 129:33]
  reg  w_pprobeacklast; // @[MSHR.scala 130:33]
  reg  w_pprobeack; // @[MSHR.scala 131:33]
  reg  s_grantack; // @[MSHR.scala 133:33]
  reg  s_execute; // @[MSHR.scala 134:33]
  reg  w_grantack; // @[MSHR.scala 135:33]
  reg  s_writeback; // @[MSHR.scala 136:33]
  reg [2:0] sink; // @[MSHR.scala 144:17]
  reg  gotT; // @[MSHR.scala 145:17]
  reg  bad_grant; // @[MSHR.scala 146:22]
  reg  probes_done; // @[MSHR.scala 147:24]
  reg  probes_toN; // @[MSHR.scala 148:23]
  wire  _T_28 = meta_state != 2'h0; // @[MSHR.scala 152:34]
  wire  _T_30 = io_nestedwb_set == request_set; // @[MSHR.scala 153:25]
  wire  _T_31 = meta_valid & meta_state != 2'h0 & _T_30; // @[MSHR.scala 152:46]
  wire  _GEN_0 = io_nestedwb_b_clr_dirty ? 1'h0 : meta_dirty; // @[MSHR.scala 154:{36,49} 97:17]
  wire  _GEN_1 = io_nestedwb_c_set_dirty | _GEN_0; // @[MSHR.scala 155:{36,49}]
  wire  _GEN_4 = _T_31 & io_nestedwb_tag == meta_tag ? _GEN_1 : meta_dirty; // @[MSHR.scala 153:74 97:17]
  wire  _io_status_bits_blockB_T = ~meta_valid; // @[MSHR.scala 165:28]
  wire  _io_status_bits_blockB_T_6 = ~w_grantfirst; // @[MSHR.scala 165:103]
  wire  no_wait = w_rprobeacklast & w_releaseack & w_grantlast & w_pprobeacklast & w_grantack; // @[MSHR.scala 180:83]
  wire  _io_schedule_bits_b_valid_T = ~s_rprobe; // @[MSHR.scala 182:31]
  wire  _io_schedule_bits_c_valid_T = ~s_release; // @[MSHR.scala 183:32]
  wire  _io_schedule_bits_c_valid_T_1 = ~s_release & w_rprobeackfirst; // @[MSHR.scala 183:43]
  wire  _io_schedule_bits_dir_valid_T_3 = ~s_writeback & no_wait; // @[MSHR.scala 187:83]
  wire  _io_schedule_valid_T_2 = io_schedule_bits_a_valid | io_schedule_bits_b_valid | io_schedule_bits_c_valid |
    io_schedule_bits_d_valid; // @[MSHR.scala 189:105]
  wire  _GEN_7 = w_rprobeackfirst | s_release; // @[MSHR.scala 121:33 196:{35,50}]
  wire  _GEN_8 = s_release & s_pprobe | s_acquire; // @[MSHR.scala 124:33 198:{35,50}]
  wire  _GEN_11 = w_grantfirst | s_grantack; // @[MSHR.scala 133:33 201:{35,50}]
  wire  _GEN_12 = w_pprobeack & w_grant | s_execute; // @[MSHR.scala 134:33 202:{35,50}]
  wire  _GEN_13 = no_wait | s_writeback; // @[MSHR.scala 136:33 203:{35,50}]
  wire  _GEN_14 = no_wait ? 1'h0 : request_valid; // @[MSHR.scala 205:20 206:21 94:30]
  wire  _GEN_15 = no_wait ? 1'h0 : meta_valid; // @[MSHR.scala 205:20 207:18 96:27]
  wire  _GEN_16 = io_schedule_ready | s_rprobe; // @[MSHR.scala 194:28 118:33 195:50]
  wire  _GEN_17 = io_schedule_ready ? _GEN_7 : s_release; // @[MSHR.scala 194:28 121:33]
  wire  _GEN_18 = io_schedule_ready | s_pprobe; // @[MSHR.scala 194:28 123:33 197:50]
  wire  _GEN_19 = io_schedule_ready ? _GEN_8 : s_acquire; // @[MSHR.scala 194:28 124:33]
  wire  _GEN_22 = io_schedule_ready ? _GEN_11 : s_grantack; // @[MSHR.scala 194:28 133:33]
  wire  _GEN_23 = io_schedule_ready ? _GEN_12 : s_execute; // @[MSHR.scala 194:28 134:33]
  wire  _GEN_24 = io_schedule_ready ? _GEN_13 : s_writeback; // @[MSHR.scala 194:28 136:33]
  wire  _GEN_25 = io_schedule_ready ? _GEN_14 : request_valid; // @[MSHR.scala 194:28 94:30]
  wire  _GEN_26 = io_schedule_ready ? _GEN_15 : meta_valid; // @[MSHR.scala 194:28 96:27]
  wire  req_clientBit = request_source == 3'h3; // @[Parameters.scala 46:9]
  wire  _req_needT_T_1 = ~request_opcode[2]; // @[Parameters.scala 265:5]
  wire  _req_needT_T_3 = request_param == 3'h1; // @[Parameters.scala 266:42]
  wire  _req_needT_T_4 = request_opcode == 3'h5 & request_param == 3'h1; // @[Parameters.scala 266:33]
  wire  _req_needT_T_5 = ~request_opcode[2] | _req_needT_T_4; // @[Parameters.scala 265:16]
  wire  _req_needT_T_7 = request_opcode == 3'h7; // @[Parameters.scala 267:52]
  wire  _req_needT_T_8 = request_opcode == 3'h6 | request_opcode == 3'h7; // @[Parameters.scala 267:42]
  wire  _req_needT_T_10 = (request_opcode == 3'h6 | request_opcode == 3'h7) & request_param != 3'h0; // @[Parameters.scala 267:80]
  wire  req_needT = _req_needT_T_5 | _req_needT_T_10; // @[Parameters.scala 266:70]
  wire  _req_promoteT_T_2 = meta_hit ? _T_2 & meta_state == 2'h3 : gotT; // @[MSHR.scala 218:40]
  wire  req_promoteT = _req_needT_T_8 & _req_promoteT_T_2; // @[MSHR.scala 218:34]
  wire [1:0] _final_meta_writeback_state_T_3 = request_param != 3'h3 & _T_15 ? 2'h3 : meta_state; // @[MSHR.scala 222:40]
  wire  _final_meta_writeback_clients_T_4 = _req_needT_T_3 | request_param == 3'h2 | request_param == 3'h5; // @[Parameters.scala 278:66]
  wire  _final_meta_writeback_clients_T_9 = meta_clients & ~probes_toN; // @[MSHR.scala 229:52]
  wire  _final_meta_writeback_dirty_T_5 = meta_hit & meta_dirty | _req_needT_T_1; // @[MSHR.scala 233:60]
  wire [1:0] _final_meta_writeback_state_T_4 = _req_needT_T_8 ? 2'h2 : 2'h3; // @[MSHR.scala 235:40]
  wire  _final_meta_writeback_state_T_5 = ~meta_hit; // @[MSHR.scala 236:41]
  wire [1:0] _final_meta_writeback_state_T_7 = gotT ? _final_meta_writeback_state_T_4 : 2'h1; // @[MSHR.scala 236:55]
  wire [1:0] _final_meta_writeback_state_T_9 = _T_2 & _req_needT_T_8 ? 2'h2 : 2'h3; // @[MSHR.scala 241:55]
  wire  _final_meta_writeback_state_T_10 = 2'h1 == meta_state; // @[Mux.scala 81:61]
  wire  _final_meta_writeback_state_T_12 = 2'h2 == meta_state; // @[Mux.scala 81:61]
  wire [1:0] _final_meta_writeback_state_T_13 = 2'h2 == meta_state ? 2'h3 : 2'h1; // @[Mux.scala 81:58]
  wire  _final_meta_writeback_state_T_14 = 2'h3 == meta_state; // @[Mux.scala 81:61]
  wire [1:0] _final_meta_writeback_state_T_15 = 2'h3 == meta_state ? _final_meta_writeback_state_T_9 :
    _final_meta_writeback_state_T_13; // @[Mux.scala 81:58]
  wire [1:0] _final_meta_writeback_state_T_16 = ~meta_hit ? _final_meta_writeback_state_T_7 :
    _final_meta_writeback_state_T_15; // @[MSHR.scala 236:40]
  wire [1:0] _final_meta_writeback_state_T_17 = req_needT ? _final_meta_writeback_state_T_4 :
    _final_meta_writeback_state_T_16; // @[MSHR.scala 234:38]
  wire  _final_meta_writeback_clients_T_12 = meta_hit & _final_meta_writeback_clients_T_9; // @[MSHR.scala 242:40]
  wire  _final_meta_writeback_clients_T_13 = _req_needT_T_8 & req_clientBit; // @[MSHR.scala 243:40]
  wire  _final_meta_writeback_clients_T_14 = meta_hit & _final_meta_writeback_clients_T_9 |
    _final_meta_writeback_clients_T_13; // @[MSHR.scala 242:88]
  wire  _GEN_35 = request_prio_2 ? meta_dirty | request_opcode[0] : _final_meta_writeback_dirty_T_5; // @[MSHR.scala 220:54 221:34]
  wire [1:0] _GEN_36 = request_prio_2 ? _final_meta_writeback_state_T_3 : _final_meta_writeback_state_T_17; // @[MSHR.scala 220:54 222:34]
  wire  _GEN_37 = request_prio_2 ? meta_clients & ~(_final_meta_writeback_clients_T_4 & req_clientBit) :
    _final_meta_writeback_clients_T_14; // @[MSHR.scala 220:54 223:34]
  wire [24:0] final_meta_writeback_tag = request_prio_2 ? meta_tag : request_tag; // @[MSHR.scala 220:54]
  wire [1:0] _GEN_42 = meta_hit ? 2'h1 : 2'h0; // @[MSHR.scala 249:21 254:36 260:36]
  wire  final_meta_writeback_hit = bad_grant ? meta_hit : 1'h1; // @[MSHR.scala 248:20]
  wire  final_meta_writeback_dirty = bad_grant ? 1'h0 : _GEN_35; // @[MSHR.scala 248:20]
  wire [1:0] final_meta_writeback_state = bad_grant ? _GEN_42 : _GEN_36; // @[MSHR.scala 248:20]
  wire  final_meta_writeback_clients = bad_grant ? _final_meta_writeback_clients_T_12 : _GEN_37; // @[MSHR.scala 248:20]
  wire  honour_BtoT = meta_hit & |(meta_clients & req_clientBit); // @[MSHR.scala 273:30]
  wire  _excluded_client_T_5 = _req_needT_T_8 | request_opcode == 3'h4; // @[Parameters.scala 275:77]
  wire  excluded_client = meta_hit & request_prio_0 & _excluded_client_T_5 & req_clientBit; // @[MSHR.scala 276:28]
  wire [1:0] _io_schedule_bits_a_bits_param_T = meta_hit ? 2'h2 : 2'h1; // @[MSHR.scala 279:56]
  wire [1:0] _io_schedule_bits_a_bits_param_T_1 = req_needT ? _io_schedule_bits_a_bits_param_T : 2'h0; // @[MSHR.scala 279:41]
  wire  _io_schedule_bits_a_bits_block_T_4 = ~(request_opcode == 3'h0 | _req_needT_T_7); // @[MSHR.scala 281:38]
  wire [1:0] _io_schedule_bits_b_bits_param_T_1 = req_needT ? 2'h2 : 2'h1; // @[MSHR.scala 283:97]
  wire [2:0] _io_schedule_bits_b_bits_param_T_2 = request_prio_1 ? request_param : {{1'd0},
    _io_schedule_bits_b_bits_param_T_1}; // @[MSHR.scala 283:61]
  wire  _io_schedule_bits_b_bits_clients_T_1 = meta_clients & ~excluded_client; // @[MSHR.scala 286:51]
  wire [1:0] _io_schedule_bits_d_bits_param_T_1 = req_promoteT ? 2'h1 : 2'h0; // @[MSHR.scala 297:53]
  wire [1:0] _io_schedule_bits_d_bits_param_T_2 = honour_BtoT ? 2'h2 : 2'h1; // @[MSHR.scala 298:53]
  wire [2:0] _io_schedule_bits_d_bits_param_T_4 = 3'h0 == request_param ? {{1'd0}, _io_schedule_bits_d_bits_param_T_1}
     : 3'h0; // @[Mux.scala 81:58]
  wire [2:0] _io_schedule_bits_d_bits_param_T_6 = 3'h2 == request_param ? {{1'd0}, _io_schedule_bits_d_bits_param_T_2}
     : _io_schedule_bits_d_bits_param_T_4; // @[Mux.scala 81:58]
  wire [2:0] _io_schedule_bits_d_bits_param_T_8 = 3'h1 == request_param ? 3'h1 : _io_schedule_bits_d_bits_param_T_6; // @[Mux.scala 81:58]
  wire  _evict_out_T = _T_1 ? 1'h0 : 1'h1; // @[MSHR.scala 315:32]
  wire [1:0] _evict_out_T_1 = meta_dirty ? 2'h2 : 2'h3; // @[MSHR.scala 316:32]
  wire [2:0] _evict_out_T_2 = meta_dirty ? 3'h4 : 3'h5; // @[MSHR.scala 317:39]
  wire [2:0] _evict_out_T_3 = meta_dirty ? 3'h6 : 3'h7; // @[MSHR.scala 317:76]
  wire [2:0] _evict_out_T_4 = _T_1 ? _evict_out_T_2 : _evict_out_T_3; // @[MSHR.scala 317:32]
  wire [3:0] _GEN_49 = _final_meta_writeback_state_T_14 ? {{1'd0}, _evict_out_T_4} : 4'h8; // @[MSHR.scala 314:26 317:26]
  wire [3:0] _GEN_50 = _final_meta_writeback_state_T_12 ? {{2'd0}, _evict_out_T_1} : _GEN_49; // @[MSHR.scala 314:26 316:26]
  wire [3:0] _GEN_51 = _final_meta_writeback_state_T_10 ? {{3'd0}, _evict_out_T} : _GEN_50; // @[MSHR.scala 314:26 315:26]
  wire [3:0] evict = ~_final_meta_writeback_state_T_5 ? 4'h8 : _GEN_51; // @[MSHR.scala 320:{17,23}]
  wire [3:0] before_ = _final_meta_writeback_state_T_5 ? 4'h8 : _GEN_51; // @[MSHR.scala 320:{17,23}]
  wire  after_c = |final_meta_writeback_clients; // @[MSHR.scala 312:27]
  wire  _after_out_T = after_c ? 1'h0 : 1'h1; // @[MSHR.scala 315:32]
  wire [1:0] _after_out_T_1 = final_meta_writeback_dirty ? 2'h2 : 2'h3; // @[MSHR.scala 316:32]
  wire [2:0] _after_out_T_2 = final_meta_writeback_dirty ? 3'h4 : 3'h5; // @[MSHR.scala 317:39]
  wire [2:0] _after_out_T_3 = final_meta_writeback_dirty ? 3'h6 : 3'h7; // @[MSHR.scala 317:76]
  wire [2:0] _after_out_T_4 = after_c ? _after_out_T_2 : _after_out_T_3; // @[MSHR.scala 317:32]
  wire [3:0] _GEN_59 = 2'h3 == final_meta_writeback_state ? {{1'd0}, _after_out_T_4} : 4'h8; // @[MSHR.scala 314:26 317:26]
  wire [3:0] _GEN_60 = 2'h2 == final_meta_writeback_state ? {{2'd0}, _after_out_T_1} : _GEN_59; // @[MSHR.scala 314:26 316:26]
  wire [3:0] after = 2'h1 == final_meta_writeback_state ? {{3'd0}, _after_out_T} : _GEN_60; // @[MSHR.scala 314:26 315:26]
  wire  _T_58 = _io_schedule_bits_c_valid_T_1 & io_schedule_ready; // @[MSHR.scala 360:42]
  wire  _T_64 = before_ == 4'h1; // @[MSHR.scala 361:13]
  wire  _T_74 = before_ == 4'h0; // @[MSHR.scala 362:13]
  wire  _T_80 = before_ == 4'h7; // @[MSHR.scala 363:13]
  wire  _T_86 = before_ == 4'h5; // @[MSHR.scala 364:13]
  wire  _T_92 = before_ == 4'h4; // @[MSHR.scala 365:13]
  wire  _T_98 = before_ == 4'h6; // @[MSHR.scala 366:13]
  wire  _T_104 = before_ == 4'h3; // @[MSHR.scala 367:13]
  wire  _T_110 = before_ == 4'h2; // @[MSHR.scala 368:13]
  wire  _T_117 = _io_schedule_bits_dir_valid_T_3 & io_schedule_ready; // @[MSHR.scala 371:35]
  wire  _T_118 = before_ == 4'h8; // @[MSHR.scala 372:15]
  wire  _T_119 = after == 4'h1; // @[MSHR.scala 372:15]
  wire  _T_126 = after == 4'h0; // @[MSHR.scala 373:15]
  wire  _T_136 = after == 4'h5; // @[MSHR.scala 375:15]
  wire  _T_143 = after == 4'h4; // @[MSHR.scala 376:15]
  wire  _T_156 = after == 4'h2; // @[MSHR.scala 379:15]
  wire  _T_163 = after == 4'h8; // @[MSHR.scala 381:15]
  wire  _T_177 = after == 4'h7; // @[MSHR.scala 383:15]
  wire  _T_198 = after == 4'h6; // @[MSHR.scala 386:15]
  wire  _T_205 = after == 4'h3; // @[MSHR.scala 387:15]
  wire  probe_bit = io_sinkc_bits_source == 3'h3; // @[Parameters.scala 46:9]
  wire  _last_probe_T = probes_done | probe_bit; // @[MSHR.scala 456:33]
  wire  last_probe = (probes_done | probe_bit) == _io_schedule_bits_b_bits_clients_T_1; // @[MSHR.scala 456:46]
  wire  probe_toN = io_sinkc_bits_param == 3'h1 | io_sinkc_bits_param == 3'h2 | io_sinkc_bits_param == 3'h5; // @[Parameters.scala 278:66]
  wire  _w_rprobeacklast_T = last_probe & io_sinkc_bits_last; // @[MSHR.scala 468:55]
  wire  _set_pprobeack_T = request_offset == 4'h0; // @[MSHR.scala 472:77]
  wire  set_pprobeack = last_probe & (io_sinkc_bits_last | request_offset == 4'h0); // @[MSHR.scala 472:36]
  wire  _GEN_63 = _T_28 & io_sinkc_bits_tag == meta_tag & io_sinkc_bits_data | _GEN_4; // @[MSHR.scala 477:{104,91}]
  wire  _GEN_67 = io_sinkc_valid ? w_rprobeackfirst | last_probe : w_rprobeackfirst; // @[MSHR.scala 458:49 467:22 119:33]
  wire  _GEN_68 = io_sinkc_valid ? w_rprobeacklast | last_probe & io_sinkc_bits_last : w_rprobeacklast; // @[MSHR.scala 458:49 468:21 120:33]
  wire  _GEN_69 = io_sinkc_valid ? w_pprobeackfirst | last_probe : w_pprobeackfirst; // @[MSHR.scala 458:49 469:22 129:33]
  wire  _GEN_70 = io_sinkc_valid ? w_pprobeacklast | _w_rprobeacklast_T : w_pprobeacklast; // @[MSHR.scala 458:49 470:21 130:33]
  wire  _GEN_71 = io_sinkc_valid ? w_pprobeack | set_pprobeack : w_pprobeack; // @[MSHR.scala 458:49 473:17 131:33]
  wire  _GEN_73 = io_sinkd_bits_opcode == 3'h6 | w_releaseack; // @[MSHR.scala 492:53 493:20 122:33]
  wire  _GEN_75 = io_sinkd_bits_opcode == 3'h4 | io_sinkd_bits_opcode == 3'h5 | w_grantfirst; // @[MSHR.scala 480:81 482:20 126:33]
  wire  _GEN_76 = io_sinkd_bits_opcode == 3'h4 | io_sinkd_bits_opcode == 3'h5 ? io_sinkd_bits_last : w_grantlast; // @[MSHR.scala 480:81 483:19 127:33]
  wire  _GEN_78 = io_sinkd_bits_opcode == 3'h4 | io_sinkd_bits_opcode == 3'h5 ? _set_pprobeack_T | io_sinkd_bits_last :
    w_grant; // @[MSHR.scala 480:81 487:15 128:33]
  wire  _GEN_80 = io_sinkd_bits_opcode == 3'h4 | io_sinkd_bits_opcode == 3'h5 ? w_releaseack : _GEN_73; // @[MSHR.scala 122:33 480:81]
  wire  _GEN_82 = io_sinkd_valid ? _GEN_75 : w_grantfirst; // @[MSHR.scala 479:25 126:33]
  wire  _GEN_83 = io_sinkd_valid ? _GEN_76 : w_grantlast; // @[MSHR.scala 479:25 127:33]
  wire  _GEN_85 = io_sinkd_valid ? _GEN_78 : w_grant; // @[MSHR.scala 479:25 128:33]
  wire  _GEN_87 = io_sinkd_valid ? _GEN_80 : w_releaseack; // @[MSHR.scala 479:25 122:33]
  wire  _GEN_88 = io_sinke_valid | w_grantack; // @[MSHR.scala 496:25 497:16 135:33]
  wire  _new_meta_T = io_allocate_valid & io_allocate_bits_repeat; // @[MSHR.scala 502:40]
  wire  new_meta_dirty = io_allocate_valid & io_allocate_bits_repeat ? final_meta_writeback_dirty :
    io_directory_bits_dirty; // @[MSHR.scala 502:21]
  wire [1:0] new_meta_state = io_allocate_valid & io_allocate_bits_repeat ? final_meta_writeback_state :
    io_directory_bits_state; // @[MSHR.scala 502:21]
  wire  new_meta_clients = io_allocate_valid & io_allocate_bits_repeat ? final_meta_writeback_clients :
    io_directory_bits_clients; // @[MSHR.scala 502:21]
  wire  new_meta_hit = io_allocate_valid & io_allocate_bits_repeat ? final_meta_writeback_hit : io_directory_bits_hit; // @[MSHR.scala 502:21]
  wire  new_request_prio_2 = io_allocate_valid ? io_allocate_bits_prio_2 : request_prio_2; // @[MSHR.scala 503:24]
  wire [2:0] new_request_opcode = io_allocate_valid ? io_allocate_bits_opcode : request_opcode; // @[MSHR.scala 503:24]
  wire [2:0] new_request_param = io_allocate_valid ? io_allocate_bits_param : request_param; // @[MSHR.scala 503:24]
  wire [2:0] new_request_source = io_allocate_valid ? io_allocate_bits_source : request_source; // @[MSHR.scala 503:24]
  wire  _new_needT_T_1 = ~new_request_opcode[2]; // @[Parameters.scala 265:5]
  wire  _new_needT_T_3 = new_request_param == 3'h1; // @[Parameters.scala 266:42]
  wire  _new_needT_T_4 = new_request_opcode == 3'h5 & new_request_param == 3'h1; // @[Parameters.scala 266:33]
  wire  _new_needT_T_5 = ~new_request_opcode[2] | _new_needT_T_4; // @[Parameters.scala 265:16]
  wire  _new_needT_T_8 = new_request_opcode == 3'h6 | new_request_opcode == 3'h7; // @[Parameters.scala 267:42]
  wire  _new_needT_T_10 = (new_request_opcode == 3'h6 | new_request_opcode == 3'h7) & new_request_param != 3'h0; // @[Parameters.scala 267:80]
  wire  new_needT = _new_needT_T_5 | _new_needT_T_10; // @[Parameters.scala 266:70]
  wire  new_clientBit = new_request_source == 3'h3; // @[Parameters.scala 46:9]
  wire  _new_skipProbe_T_4 = _new_needT_T_8 | new_request_opcode == 3'h4; // @[Parameters.scala 275:77]
  wire  new_skipProbe = _new_skipProbe_T_4 & new_clientBit; // @[MSHR.scala 506:26]
  wire  _T_595 = io_schedule_ready & io_schedule_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_94 = io_allocate_valid | _GEN_25; // @[MSHR.scala 529:28 531:19]
  wire  _T_602 = io_directory_valid | _new_meta_T; // @[MSHR.scala 536:28]
  wire  _T_605 = ~new_meta_dirty; // @[MSHR.scala 571:38]
  wire  _GEN_107 = new_request_opcode[0] & ~new_meta_dirty ? 1'h0 : 1'h1; // @[MSHR.scala 571:55 572:21 565:22]
  wire  _T_609 = new_request_param == 3'h0 | new_request_param == 3'h4; // @[Parameters.scala 281:34]
  wire  _T_610 = new_meta_state == 2'h2; // @[MSHR.scala 575:56]
  wire  _GEN_108 = _T_609 & new_meta_state == 2'h2 ? 1'h0 : _GEN_107; // @[MSHR.scala 575:67 576:21]
  wire  _T_616 = _new_needT_T_3 | new_request_param == 3'h2 | new_request_param == 3'h5; // @[Parameters.scala 278:66]
  wire  _GEN_109 = _T_616 & (new_meta_clients & new_clientBit) ? 1'h0 : _GEN_108; // @[MSHR.scala 579:89 580:21]
  wire  _T_622 = ~new_meta_hit; // @[MSHR.scala 582:14]
  wire  _GEN_110 = new_meta_clients ? 1'h0 : 1'h1; // @[MSHR.scala 592:75 593:20 547:22]
  wire  _GEN_114 = _T_622 & new_meta_state != 2'h0 ? 1'h0 : 1'h1; // @[MSHR.scala 603:58 604:19 550:22]
  wire  _GEN_115 = _T_622 & new_meta_state != 2'h0 ? _GEN_110 : 1'h1; // @[MSHR.scala 547:22 603:58]
  wire  _GEN_116 = _T_622 | new_meta_state == 2'h1 & new_needT ? 1'h0 : 1'h1; // @[MSHR.scala 614:72 615:19 553:22]
  wire  _T_636 = new_needT | _T_610; // @[MSHR.scala 624:24]
  wire  _T_637 = new_meta_hit & _T_636; // @[MSHR.scala 623:55]
  wire  _T_639 = new_meta_clients & ~new_skipProbe; // @[MSHR.scala 625:31]
  wire  _T_641 = _T_637 & _T_639; // @[MSHR.scala 624:53]
  wire  _GEN_117 = _T_641 ? 1'h0 : 1'h1; // @[MSHR.scala 625:63 626:18 552:22]
  wire  _GEN_118 = _T_641 ? 1'h0 : _GEN_116; // @[MSHR.scala 625:63 630:21]
  wire  _GEN_119 = _new_needT_T_8 ? 1'h0 : 1'h1; // @[MSHR.scala 633:88 634:20 564:22]
  wire  _GEN_120 = _new_needT_T_8 ? 1'h0 : _GEN_118; // @[MSHR.scala 633:88 635:21]
  wire  _GEN_121 = _new_needT_T_1 & new_meta_hit & _T_605 ? 1'h0 : _GEN_120; // @[MSHR.scala 638:72 639:21]
  wire  _GEN_131 = new_request_prio_2 ? _GEN_109 : _GEN_121; // @[MSHR.scala 568:60]
  wire  _GEN_133 = new_request_prio_2 | _GEN_114; // @[MSHR.scala 550:22 568:60]
  wire  _GEN_134 = new_request_prio_2 | _GEN_115; // @[MSHR.scala 547:22 568:60]
  wire  _GEN_135 = new_request_prio_2 | _GEN_116; // @[MSHR.scala 553:22 568:60]
  wire  _GEN_136 = new_request_prio_2 | _GEN_117; // @[MSHR.scala 552:22 568:60]
  wire  _GEN_137 = new_request_prio_2 | _GEN_119; // @[MSHR.scala 564:22 568:60]
  wire  _GEN_138 = io_directory_valid | _new_meta_T | _GEN_26; // @[MSHR.scala 536:79 537:16]
  wire  _GEN_150 = io_directory_valid | _new_meta_T ? _GEN_134 : _GEN_16; // @[MSHR.scala 536:79]
  wire  _GEN_151 = io_directory_valid | _new_meta_T ? _GEN_134 : _GEN_67; // @[MSHR.scala 536:79]
  wire  _GEN_152 = io_directory_valid | _new_meta_T ? _GEN_134 : _GEN_68; // @[MSHR.scala 536:79]
  wire  _GEN_153 = io_directory_valid | _new_meta_T ? _GEN_133 : _GEN_17; // @[MSHR.scala 536:79]
  wire  _GEN_154 = io_directory_valid | _new_meta_T ? _GEN_133 : _GEN_87; // @[MSHR.scala 536:79]
  wire  _GEN_155 = io_directory_valid | _new_meta_T ? _GEN_136 : _GEN_18; // @[MSHR.scala 536:79]
  wire  _GEN_156 = io_directory_valid | _new_meta_T ? _GEN_135 : _GEN_19; // @[MSHR.scala 536:79]
  wire  _GEN_158 = io_directory_valid | _new_meta_T ? _GEN_135 : _GEN_82; // @[MSHR.scala 536:79]
  wire  _GEN_159 = io_directory_valid | _new_meta_T ? _GEN_135 : _GEN_83; // @[MSHR.scala 536:79]
  wire  _GEN_160 = io_directory_valid | _new_meta_T ? _GEN_135 : _GEN_85; // @[MSHR.scala 536:79]
  wire  _GEN_161 = io_directory_valid | _new_meta_T ? _GEN_136 : _GEN_69; // @[MSHR.scala 536:79]
  wire  _GEN_162 = io_directory_valid | _new_meta_T ? _GEN_136 : _GEN_70; // @[MSHR.scala 536:79]
  wire  _GEN_163 = io_directory_valid | _new_meta_T ? _GEN_136 : _GEN_71; // @[MSHR.scala 536:79]
  wire  _GEN_165 = io_directory_valid | _new_meta_T ? _GEN_135 : _GEN_22; // @[MSHR.scala 536:79]
  wire  _GEN_166 = io_directory_valid | _new_meta_T ? 1'h0 : _GEN_23; // @[MSHR.scala 536:79]
  wire  _GEN_167 = io_directory_valid | _new_meta_T ? _GEN_137 : _GEN_88; // @[MSHR.scala 536:79]
  wire  _GEN_168 = io_directory_valid | _new_meta_T ? _GEN_131 : _GEN_24; // @[MSHR.scala 536:79]
  wire  _GEN_147 = meta_valid & _T & ~reset; // @[MSHR.scala 102:14]
  wire  _GEN_183 = meta_valid & _T_15 & _T_4; // @[MSHR.scala 109:14]
  wire  _GEN_199 = _T_58 & _T_4; // @[MSHR.scala 361:13]
  wire  _GEN_229 = _T_117 & _T_4; // @[MSHR.scala 372:15]
  wire  _GEN_391 = _new_meta_T & _T_4; // @[MSHR.scala 518:11]
  assign io_status_valid = request_valid; // @[MSHR.scala 161:19]
  assign io_status_bits_set = request_set; // @[MSHR.scala 162:25]
  assign io_status_bits_tag = request_tag; // @[MSHR.scala 163:25]
  assign io_status_bits_way = meta_way; // @[MSHR.scala 164:25]
  assign io_status_bits_blockB = ~meta_valid | (~w_releaseack | ~w_rprobeacklast | ~w_pprobeacklast) & ~w_grantfirst; // @[MSHR.scala 165:40]
  assign io_status_bits_nestB = meta_valid & w_releaseack & w_rprobeacklast & w_pprobeacklast &
    _io_status_bits_blockB_T_6; // @[MSHR.scala 166:93]
  assign io_status_bits_blockC = ~meta_valid; // @[MSHR.scala 169:28]
  assign io_status_bits_nestC = meta_valid & (~w_rprobeackfirst | ~w_pprobeackfirst | _io_status_bits_blockB_T_6); // @[MSHR.scala 170:39]
  assign io_schedule_valid = _io_schedule_valid_T_2 | io_schedule_bits_e_valid | io_schedule_bits_x_valid |
    io_schedule_bits_dir_valid; // @[MSHR.scala 190:105]
  assign io_schedule_bits_a_valid = ~s_acquire & s_release & s_pprobe; // @[MSHR.scala 181:55]
  assign io_schedule_bits_a_bits_tag = request_tag; // @[MSHR.scala 277:35]
  assign io_schedule_bits_a_bits_set = request_set; // @[MSHR.scala 278:35]
  assign io_schedule_bits_a_bits_param = {{1'd0}, _io_schedule_bits_a_bits_param_T_1}; // @[MSHR.scala 279:35]
  assign io_schedule_bits_a_bits_block = request_size != 3'h4 | _io_schedule_bits_a_bits_block_T_4; // @[MSHR.scala 280:95]
  assign io_schedule_bits_b_valid = ~s_rprobe | ~s_pprobe; // @[MSHR.scala 182:41]
  assign io_schedule_bits_b_bits_param = _io_schedule_bits_b_valid_T ? 3'h2 : _io_schedule_bits_b_bits_param_T_2; // @[MSHR.scala 283:41]
  assign io_schedule_bits_b_bits_tag = _io_schedule_bits_b_valid_T ? meta_tag : request_tag; // @[MSHR.scala 284:41]
  assign io_schedule_bits_b_bits_set = request_set; // @[MSHR.scala 285:35]
  assign io_schedule_bits_b_bits_clients = meta_clients & ~excluded_client; // @[MSHR.scala 286:51]
  assign io_schedule_bits_c_valid = ~s_release & w_rprobeackfirst; // @[MSHR.scala 183:43]
  assign io_schedule_bits_c_bits_opcode = meta_dirty ? 3'h7 : 3'h6; // @[MSHR.scala 287:41]
  assign io_schedule_bits_c_bits_param = _T_10 ? 3'h2 : 3'h1; // @[MSHR.scala 288:41]
  assign io_schedule_bits_c_bits_tag = meta_tag; // @[MSHR.scala 290:35]
  assign io_schedule_bits_c_bits_set = request_set; // @[MSHR.scala 291:35]
  assign io_schedule_bits_c_bits_way = meta_way; // @[MSHR.scala 292:35]
  assign io_schedule_bits_c_bits_dirty = meta_dirty; // @[MSHR.scala 293:35]
  assign io_schedule_bits_d_valid = ~s_execute & w_pprobeack & w_grant; // @[MSHR.scala 184:57]
  assign io_schedule_bits_d_bits_prio_0 = request_prio_0; // @[MSHR.scala 294:35]
  assign io_schedule_bits_d_bits_prio_2 = request_prio_2; // @[MSHR.scala 294:35]
  assign io_schedule_bits_d_bits_opcode = request_opcode; // @[MSHR.scala 294:35]
  assign io_schedule_bits_d_bits_param = ~_req_needT_T_8 ? request_param : _io_schedule_bits_d_bits_param_T_8; // @[MSHR.scala 295:41]
  assign io_schedule_bits_d_bits_size = request_size; // @[MSHR.scala 294:35]
  assign io_schedule_bits_d_bits_source = request_source; // @[MSHR.scala 294:35]
  assign io_schedule_bits_d_bits_offset = request_offset; // @[MSHR.scala 294:35]
  assign io_schedule_bits_d_bits_put = request_put; // @[MSHR.scala 294:35]
  assign io_schedule_bits_d_bits_set = request_set; // @[MSHR.scala 294:35]
  assign io_schedule_bits_d_bits_way = meta_way; // @[MSHR.scala 301:35]
  assign io_schedule_bits_d_bits_bad = bad_grant; // @[MSHR.scala 302:35]
  assign io_schedule_bits_e_valid = ~s_grantack & w_grantfirst; // @[MSHR.scala 185:43]
  assign io_schedule_bits_e_bits_sink = sink; // @[MSHR.scala 303:35]
  assign io_schedule_bits_x_valid = 1'h0; // @[MSHR.scala 186:40]
  assign io_schedule_bits_dir_valid = _io_schedule_bits_c_valid_T_1 | ~s_writeback & no_wait; // @[MSHR.scala 187:66]
  assign io_schedule_bits_dir_bits_set = request_set; // @[MSHR.scala 305:35]
  assign io_schedule_bits_dir_bits_way = meta_way; // @[MSHR.scala 306:35]
  assign io_schedule_bits_dir_bits_data_dirty = _io_schedule_bits_c_valid_T ? 1'h0 : final_meta_writeback_dirty; // @[MSHR.scala 307:41]
  assign io_schedule_bits_dir_bits_data_state = _io_schedule_bits_c_valid_T ? 2'h0 : final_meta_writeback_state; // @[MSHR.scala 307:41]
  assign io_schedule_bits_dir_bits_data_clients = _io_schedule_bits_c_valid_T ? 1'h0 : final_meta_writeback_clients; // @[MSHR.scala 307:41]
  assign io_schedule_bits_dir_bits_data_tag = _io_schedule_bits_c_valid_T ? 25'h0 : final_meta_writeback_tag; // @[MSHR.scala 307:41]
  assign io_schedule_bits_reload = w_rprobeacklast & w_releaseack & w_grantlast & w_pprobeacklast & w_grantack; // @[MSHR.scala 180:83]
  always @(posedge clock) begin
    if (reset) begin // @[MSHR.scala 94:30]
      request_valid <= 1'h0; // @[MSHR.scala 94:30]
    end else begin
      request_valid <= _GEN_94;
    end
    if (io_allocate_valid) begin // @[MSHR.scala 529:28]
      request_prio_0 <= io_allocate_bits_prio_0; // @[MSHR.scala 532:13]
    end
    if (io_allocate_valid) begin // @[MSHR.scala 529:28]
      request_prio_1 <= io_allocate_bits_prio_1; // @[MSHR.scala 532:13]
    end
    if (io_allocate_valid) begin // @[MSHR.scala 529:28]
      request_prio_2 <= io_allocate_bits_prio_2; // @[MSHR.scala 532:13]
    end
    if (io_allocate_valid) begin // @[MSHR.scala 529:28]
      request_opcode <= io_allocate_bits_opcode; // @[MSHR.scala 532:13]
    end
    if (io_allocate_valid) begin // @[MSHR.scala 529:28]
      request_param <= io_allocate_bits_param; // @[MSHR.scala 532:13]
    end
    if (io_allocate_valid) begin // @[MSHR.scala 529:28]
      request_size <= io_allocate_bits_size; // @[MSHR.scala 532:13]
    end
    if (io_allocate_valid) begin // @[MSHR.scala 529:28]
      request_source <= io_allocate_bits_source; // @[MSHR.scala 532:13]
    end
    if (io_allocate_valid) begin // @[MSHR.scala 529:28]
      request_tag <= io_allocate_bits_tag; // @[MSHR.scala 532:13]
    end
    if (io_allocate_valid) begin // @[MSHR.scala 529:28]
      request_offset <= io_allocate_bits_offset; // @[MSHR.scala 532:13]
    end
    if (io_allocate_valid) begin // @[MSHR.scala 529:28]
      request_put <= io_allocate_bits_put; // @[MSHR.scala 532:13]
    end
    if (io_allocate_valid) begin // @[MSHR.scala 529:28]
      request_set <= io_allocate_bits_set; // @[MSHR.scala 532:13]
    end
    if (reset) begin // @[MSHR.scala 96:27]
      meta_valid <= 1'h0; // @[MSHR.scala 96:27]
    end else begin
      meta_valid <= _GEN_138;
    end
    if (io_directory_valid | _new_meta_T) begin // @[MSHR.scala 536:79]
      if (io_allocate_valid & io_allocate_bits_repeat) begin // @[MSHR.scala 502:21]
        if (bad_grant) begin // @[MSHR.scala 248:20]
          meta_dirty <= 1'h0;
        end else if (request_prio_2) begin // @[MSHR.scala 220:54]
          meta_dirty <= meta_dirty | request_opcode[0]; // @[MSHR.scala 221:34]
        end else begin
          meta_dirty <= _final_meta_writeback_dirty_T_5;
        end
      end else begin
        meta_dirty <= io_directory_bits_dirty;
      end
    end else if (io_sinkc_valid) begin // @[MSHR.scala 458:49]
      meta_dirty <= _GEN_63;
    end else if (_T_31 & io_nestedwb_tag == meta_tag) begin // @[MSHR.scala 153:74]
      meta_dirty <= _GEN_1;
    end
    if (io_directory_valid | _new_meta_T) begin // @[MSHR.scala 536:79]
      if (io_allocate_valid & io_allocate_bits_repeat) begin // @[MSHR.scala 502:21]
        if (bad_grant) begin // @[MSHR.scala 248:20]
          if (meta_hit) begin // @[MSHR.scala 249:21]
            meta_state <= 2'h1; // @[MSHR.scala 254:36]
          end else begin
            meta_state <= 2'h0; // @[MSHR.scala 260:36]
          end
        end else if (request_prio_2) begin // @[MSHR.scala 220:54]
          meta_state <= _final_meta_writeback_state_T_3; // @[MSHR.scala 222:34]
        end else begin
          meta_state <= _final_meta_writeback_state_T_17;
        end
      end else begin
        meta_state <= io_directory_bits_state;
      end
    end else if (_T_31 & io_nestedwb_tag == meta_tag) begin // @[MSHR.scala 153:74]
      if (io_nestedwb_b_toB) begin // @[MSHR.scala 156:30]
        meta_state <= 2'h1; // @[MSHR.scala 156:43]
      end
    end
    if (io_directory_valid | _new_meta_T) begin // @[MSHR.scala 536:79]
      if (io_allocate_valid & io_allocate_bits_repeat) begin // @[MSHR.scala 502:21]
        if (bad_grant) begin // @[MSHR.scala 248:20]
          meta_clients <= _final_meta_writeback_clients_T_12;
        end else if (request_prio_2) begin // @[MSHR.scala 220:54]
          meta_clients <= meta_clients & ~(_final_meta_writeback_clients_T_4 & req_clientBit); // @[MSHR.scala 223:34]
        end else begin
          meta_clients <= _final_meta_writeback_clients_T_14;
        end
      end else begin
        meta_clients <= io_directory_bits_clients;
      end
    end
    if (io_directory_valid | _new_meta_T) begin // @[MSHR.scala 536:79]
      if (io_allocate_valid & io_allocate_bits_repeat) begin // @[MSHR.scala 502:21]
        if (!(request_prio_2)) begin // @[MSHR.scala 220:54]
          meta_tag <= request_tag;
        end
      end else begin
        meta_tag <= io_directory_bits_tag;
      end
    end
    if (io_directory_valid | _new_meta_T) begin // @[MSHR.scala 536:79]
      if (io_allocate_valid & io_allocate_bits_repeat) begin // @[MSHR.scala 502:21]
        if (!(bad_grant)) begin // @[MSHR.scala 248:20]
          meta_hit <= 1'h1;
        end
      end else begin
        meta_hit <= io_directory_bits_hit;
      end
    end else if (_T_31 & io_nestedwb_tag == meta_tag) begin // @[MSHR.scala 153:74]
      if (io_nestedwb_b_toN) begin // @[MSHR.scala 157:30]
        meta_hit <= 1'h0; // @[MSHR.scala 157:41]
      end
    end
    if (io_directory_valid | _new_meta_T) begin // @[MSHR.scala 536:79]
      if (!(io_allocate_valid & io_allocate_bits_repeat)) begin // @[MSHR.scala 502:21]
        meta_way <= io_directory_bits_way;
      end
    end
    s_rprobe <= reset | _GEN_150; // @[MSHR.scala 118:{33,33}]
    w_rprobeackfirst <= reset | _GEN_151; // @[MSHR.scala 119:{33,33}]
    w_rprobeacklast <= reset | _GEN_152; // @[MSHR.scala 120:{33,33}]
    s_release <= reset | _GEN_153; // @[MSHR.scala 121:{33,33}]
    w_releaseack <= reset | _GEN_154; // @[MSHR.scala 122:{33,33}]
    s_pprobe <= reset | _GEN_155; // @[MSHR.scala 123:{33,33}]
    s_acquire <= reset | _GEN_156; // @[MSHR.scala 124:{33,33}]
    w_grantfirst <= reset | _GEN_158; // @[MSHR.scala 126:{33,33}]
    w_grantlast <= reset | _GEN_159; // @[MSHR.scala 127:{33,33}]
    w_grant <= reset | _GEN_160; // @[MSHR.scala 128:{33,33}]
    w_pprobeackfirst <= reset | _GEN_161; // @[MSHR.scala 129:{33,33}]
    w_pprobeacklast <= reset | _GEN_162; // @[MSHR.scala 130:{33,33}]
    w_pprobeack <= reset | _GEN_163; // @[MSHR.scala 131:{33,33}]
    s_grantack <= reset | _GEN_165; // @[MSHR.scala 133:{33,33}]
    s_execute <= reset | _GEN_166; // @[MSHR.scala 134:{33,33}]
    w_grantack <= reset | _GEN_167; // @[MSHR.scala 135:{33,33}]
    s_writeback <= reset | _GEN_168; // @[MSHR.scala 136:{33,33}]
    if (io_sinkd_valid) begin // @[MSHR.scala 479:25]
      if (io_sinkd_bits_opcode == 3'h4 | io_sinkd_bits_opcode == 3'h5) begin // @[MSHR.scala 480:81]
        sink <= io_sinkd_bits_sink; // @[MSHR.scala 481:12]
      end
    end
    if (io_directory_valid | _new_meta_T) begin // @[MSHR.scala 536:79]
      gotT <= 1'h0; // @[MSHR.scala 542:10]
    end else if (io_sinkd_valid) begin // @[MSHR.scala 479:25]
      if (io_sinkd_bits_opcode == 3'h4 | io_sinkd_bits_opcode == 3'h5) begin // @[MSHR.scala 480:81]
        gotT <= io_sinkd_bits_param == 3'h0; // @[MSHR.scala 490:12]
      end
    end
    if (io_directory_valid | _new_meta_T) begin // @[MSHR.scala 536:79]
      bad_grant <= 1'h0; // @[MSHR.scala 543:15]
    end else if (io_sinkd_valid) begin // @[MSHR.scala 479:25]
      if (io_sinkd_bits_opcode == 3'h4 | io_sinkd_bits_opcode == 3'h5) begin // @[MSHR.scala 480:81]
        bad_grant <= io_sinkd_bits_denied; // @[MSHR.scala 485:17]
      end
    end
    if (io_directory_valid | _new_meta_T) begin // @[MSHR.scala 536:79]
      probes_done <= 1'h0; // @[MSHR.scala 539:17]
    end else if (io_sinkc_valid) begin // @[MSHR.scala 458:49]
      probes_done <= _last_probe_T; // @[MSHR.scala 464:17]
    end
    if (io_directory_valid | _new_meta_T) begin // @[MSHR.scala 536:79]
      probes_toN <= 1'h0; // @[MSHR.scala 540:16]
    end else if (io_sinkc_valid) begin // @[MSHR.scala 458:49]
      probes_toN <= probes_toN | probe_toN & probe_bit; // @[MSHR.scala 465:16]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (meta_valid & _T & ~reset & ~(~(|meta_clients))) begin
          $fwrite(32'h80000002,"Assertion failed\n    at MSHR.scala:102 assert (!meta.clients.orR)\n"); // @[MSHR.scala 102:14]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(|meta_clients)) & (meta_valid & _T & ~reset)) begin
          $fatal; // @[MSHR.scala 102:14]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_147 & ~(~meta_dirty)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at MSHR.scala:103 assert (!meta.dirty)\n"); // @[MSHR.scala 103:14]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~meta_dirty) & _GEN_147) begin
          $fatal; // @[MSHR.scala 103:14]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (meta_valid & _T_10 & _T_4 & _T_9) begin
          $fwrite(32'h80000002,"Assertion failed\n    at MSHR.scala:106 assert (!meta.dirty)\n"); // @[MSHR.scala 106:14]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_9 & (meta_valid & _T_10 & _T_4)) begin
          $fatal; // @[MSHR.scala 106:14]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (meta_valid & _T_15 & _T_4 & _T_2) begin
          $fwrite(32'h80000002,"Assertion failed\n    at MSHR.scala:109 assert (meta.clients.orR)\n"); // @[MSHR.scala 109:14]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_2 & (meta_valid & _T_15 & _T_4)) begin
          $fatal; // @[MSHR.scala 109:14]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_183 & ~(~(meta_clients & meta_clients - 1'h1))) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at MSHR.scala:110 assert ((meta.clients & (meta.clients - UInt(1))) === UInt(0)) // at most one\n"
            ); // @[MSHR.scala 110:14]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(meta_clients & meta_clients - 1'h1)) & _GEN_183) begin
          $fatal; // @[MSHR.scala 110:14]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_4 & ~(~io_status_bits_nestB | ~io_status_bits_blockB)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at MSHR.scala:176 assert (!io.status.bits.nestB || !io.status.bits.blockB)\n"); // @[MSHR.scala 176:10]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~io_status_bits_nestB | ~io_status_bits_blockB) & _T_4) begin
          $fatal; // @[MSHR.scala 176:10]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_4 & ~(~io_status_bits_nestC | ~io_status_bits_blockC)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at MSHR.scala:177 assert (!io.status.bits.nestC || !io.status.bits.blockC)\n"); // @[MSHR.scala 177:10]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~io_status_bits_nestC | ~io_status_bits_blockC) & _T_4) begin
          $fatal; // @[MSHR.scala 177:10]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (bad_grant & meta_hit & _T_4 & ~(_io_status_bits_blockB_T | _T_10)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at MSHR.scala:251 assert (!meta_valid || meta.state === BRANCH)\n"
            ); // @[MSHR.scala 251:14]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_io_status_bits_blockB_T | _T_10) & (bad_grant & meta_hit & _T_4)) begin
          $fatal; // @[MSHR.scala 251:14]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_58 & _T_4 & ~(~(evict == 4'h1))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_BRANCH to evicted should be impossible (false,true,true,false,false)\n    at MSHR.scala:343 assert(!(evict === from.code), s\"State transition from ${from} to evicted should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 361:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(evict == 4'h1)) & (_T_58 & _T_4)) begin
          $fatal; // @[MSHR.scala 361:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_58 & _T_4 & ~(~(before_ == 4'h1))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_BRANCH to flushed should be impossible (false,true,true,false,false)\n    at MSHR.scala:348 assert(!(before === from.code), s\"State transition from ${from} to flushed should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 361:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(before_ == 4'h1)) & (_T_58 & _T_4)) begin
          $fatal; // @[MSHR.scala 361:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_199 & ~(~(evict == 4'h0))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_BRANCH_C to evicted should be impossible (false,true,true,false,false)\n    at MSHR.scala:343 assert(!(evict === from.code), s\"State transition from ${from} to evicted should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 362:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(evict == 4'h0)) & _GEN_199) begin
          $fatal; // @[MSHR.scala 362:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_199 & ~(~(before_ == 4'h0))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_BRANCH_C to flushed should be impossible (false,true,true,false,false)\n    at MSHR.scala:348 assert(!(before === from.code), s\"State transition from ${from} to flushed should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 362:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(before_ == 4'h0)) & _GEN_199) begin
          $fatal; // @[MSHR.scala 362:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_199 & ~(~(before_ == 4'h7))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP to flushed should be impossible (false,true,true,false,false)\n    at MSHR.scala:348 assert(!(before === from.code), s\"State transition from ${from} to flushed should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 363:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(before_ == 4'h7)) & _GEN_199) begin
          $fatal; // @[MSHR.scala 363:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_199 & ~(~(before_ == 4'h5))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP_C to flushed should be impossible (false,true,true,false,false)\n    at MSHR.scala:348 assert(!(before === from.code), s\"State transition from ${from} to flushed should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 364:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(before_ == 4'h5)) & _GEN_199) begin
          $fatal; // @[MSHR.scala 364:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_199 & ~(~(before_ == 4'h4))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP_CD to flushed should be impossible (false,true,true,false,false)\n    at MSHR.scala:348 assert(!(before === from.code), s\"State transition from ${from} to flushed should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 365:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(before_ == 4'h4)) & _GEN_199) begin
          $fatal; // @[MSHR.scala 365:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_199 & ~(~(before_ == 4'h6))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP_D to flushed should be impossible (false,true,true,false,false)\n    at MSHR.scala:348 assert(!(before === from.code), s\"State transition from ${from} to flushed should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 366:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(before_ == 4'h6)) & _GEN_199) begin
          $fatal; // @[MSHR.scala 366:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_199 & ~(~(before_ == 4'h3))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TRUNK_C to flushed should be impossible (false,true,true,false,false)\n    at MSHR.scala:348 assert(!(before === from.code), s\"State transition from ${from} to flushed should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 367:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(before_ == 4'h3)) & _GEN_199) begin
          $fatal; // @[MSHR.scala 367:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_199 & ~(~(before_ == 4'h2))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TRUNK_CD to flushed should be impossible (false,true,true,false,false)\n    at MSHR.scala:348 assert(!(before === from.code), s\"State transition from ${from} to flushed should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 368:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(before_ == 4'h2)) & _GEN_199) begin
          $fatal; // @[MSHR.scala 368:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_117 & _T_4 & ~(~(before_ == 4'h8 & after == 4'h1))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_INVALID to S_BRANCH should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 372:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(before_ == 4'h8 & after == 4'h1)) & (_T_117 & _T_4)) begin
          $fatal; // @[MSHR.scala 372:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_118 & after == 4'h0))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_INVALID to S_BRANCH_C should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 373:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_118 & after == 4'h0)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 373:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_118 & after == 4'h5))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_INVALID to S_TIP_C should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 375:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_118 & after == 4'h5)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 375:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_118 & after == 4'h4))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_INVALID to S_TIP_CD should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 376:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_118 & after == 4'h4)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 376:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_118 & after == 4'h2))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_INVALID to S_TRUNK_CD should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 379:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_118 & after == 4'h2)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 379:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_64 & after == 4'h8))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_BRANCH to S_INVALID should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 381:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_64 & after == 4'h8)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 381:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_64 & _T_126))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_BRANCH to S_BRANCH_C should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 382:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_64 & _T_126)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 382:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_64 & after == 4'h7))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_BRANCH to S_TIP should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 383:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_64 & after == 4'h7)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 383:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_64 & _T_136))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_BRANCH to S_TIP_C should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 384:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_64 & _T_136)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 384:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_64 & _T_143))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_BRANCH to S_TIP_CD should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 385:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_64 & _T_143)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 385:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_64 & after == 4'h6))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_BRANCH to S_TIP_D should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 386:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_64 & after == 4'h6)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 386:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_64 & after == 4'h3))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_BRANCH to S_TRUNK_C should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 387:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_64 & after == 4'h3)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 387:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_64 & _T_156))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_BRANCH to S_TRUNK_CD should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 388:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_64 & _T_156)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 388:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_74 & _T_163))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_BRANCH_C to S_INVALID should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 390:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_74 & _T_163)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 390:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_74 & _T_119))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_BRANCH_C to S_BRANCH should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 391:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_74 & _T_119)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 391:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_74 & _T_177))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_BRANCH_C to S_TIP should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 392:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_74 & _T_177)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 392:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_74 & _T_136))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_BRANCH_C to S_TIP_C should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 393:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_74 & _T_136)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 393:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_74 & _T_198))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_BRANCH_C to S_TIP_D should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 394:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_74 & _T_198)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 394:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_74 & _T_143))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_BRANCH_C to S_TIP_CD should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 395:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_74 & _T_143)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 395:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_74 & _T_205))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_BRANCH_C to S_TRUNK_C should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 396:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_74 & _T_205)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 396:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_74 & _T_156))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_BRANCH_C to S_TRUNK_CD should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 397:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_74 & _T_156)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 397:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_80 & _T_163))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP to S_INVALID should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 399:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_80 & _T_163)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 399:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_80 & _T_119))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP to S_BRANCH should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 400:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_80 & _T_119)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 400:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_80 & _T_126))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP to S_BRANCH_C should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 401:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_80 & _T_126)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 401:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_80 & _T_136))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP to S_TIP_C should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 402:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_80 & _T_136)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 402:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_80 & _T_143))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP to S_TIP_CD should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 404:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_80 & _T_143)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 404:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_80 & _T_156))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP to S_TRUNK_CD should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 406:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_80 & _T_156)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 406:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_86 & _T_163))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP_C to S_INVALID should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 408:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_86 & _T_163)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 408:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_86 & _T_119))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP_C to S_BRANCH should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 409:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_86 & _T_119)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 409:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_86 & _T_126))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP_C to S_BRANCH_C should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 410:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_86 & _T_126)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 410:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_86 & _T_143))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP_C to S_TIP_CD should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 413:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_86 & _T_143)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 413:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_86 & _T_156))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP_C to S_TRUNK_CD should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 415:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_86 & _T_156)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 415:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_98 & _T_163))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP_D to S_INVALID should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 417:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_98 & _T_163)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 417:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_98 & _T_119))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP_D to S_BRANCH should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 418:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_98 & _T_119)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 418:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_98 & _T_126))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP_D to S_BRANCH_C should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 419:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_98 & _T_126)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 419:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_98 & _T_177))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP_D to S_TIP should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 420:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_98 & _T_177)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 420:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_98 & _T_136))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP_D to S_TIP_C should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 421:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_98 & _T_136)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 421:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_98 & _T_143))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP_D to S_TIP_CD should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 422:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_98 & _T_143)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 422:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_98 & _T_205))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP_D to S_TRUNK_C should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 423:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_98 & _T_205)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 423:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_92 & _T_163))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP_CD to S_INVALID should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 426:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_92 & _T_163)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 426:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_92 & _T_119))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP_CD to S_BRANCH should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 427:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_92 & _T_119)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 427:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_92 & _T_126))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP_CD to S_BRANCH_C should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 428:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_92 & _T_126)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 428:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_92 & _T_177))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP_CD to S_TIP should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 429:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_92 & _T_177)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 429:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_92 & _T_136))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP_CD to S_TIP_C should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 430:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_92 & _T_136)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 430:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_92 & _T_205))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TIP_CD to S_TRUNK_C should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 432:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_92 & _T_205)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 432:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_104 & _T_163))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TRUNK_C to S_INVALID should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 435:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_104 & _T_163)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 435:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_104 & _T_119))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TRUNK_C to S_BRANCH should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 436:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_104 & _T_119)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 436:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_104 & _T_126))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TRUNK_C to S_BRANCH_C should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 437:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_104 & _T_126)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 437:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_110 & _T_163))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TRUNK_CD to S_INVALID should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 444:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_110 & _T_163)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 444:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_110 & _T_119))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TRUNK_CD to S_BRANCH should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 445:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_110 & _T_119)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 445:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_110 & _T_126))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TRUNK_CD to S_BRANCH_C should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 446:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_110 & _T_126)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 446:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_110 & _T_177))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TRUNK_CD to S_TIP should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 447:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_110 & _T_177)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 447:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_110 & _T_136))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TRUNK_CD to S_TIP_C should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 448:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_110 & _T_136)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 448:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_229 & ~(~(_T_110 & _T_205))) begin
          $fwrite(32'h80000002,
            "Assertion failed: State transition from S_TRUNK_CD to S_TRUNK_C should be impossible (false,true,true,false,false)\n    at MSHR.scala:356 assert(!(before === from.code && after === to.code), s\"State transition from ${from} to ${to} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 451:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(_T_110 & _T_205)) & _GEN_229) begin
          $fatal; // @[MSHR.scala 451:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_new_meta_T & _T_4 & ~(~_T_163)) begin
          $fwrite(32'h80000002,
            "Assertion failed: State bypass from S_INVALID should be impossible (false,true,true,false,false)\n    at MSHR.scala:513 assert(!(prior === from.code), s\"State bypass from ${from} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 518:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~_T_163) & (_new_meta_T & _T_4)) begin
          $fatal; // @[MSHR.scala 518:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_391 & ~(~_T_119)) begin
          $fwrite(32'h80000002,
            "Assertion failed: State bypass from S_BRANCH should be impossible (false,true,true,false,false)\n    at MSHR.scala:513 assert(!(prior === from.code), s\"State bypass from ${from} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 519:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~_T_119) & _GEN_391) begin
          $fatal; // @[MSHR.scala 519:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_391 & ~(~_T_126)) begin
          $fwrite(32'h80000002,
            "Assertion failed: State bypass from S_BRANCH_C should be impossible (false,true,true,false,false)\n    at MSHR.scala:513 assert(!(prior === from.code), s\"State bypass from ${from} should be impossible ${cfg}\")\n"
            ); // @[MSHR.scala 520:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~_T_126) & _GEN_391) begin
          $fatal; // @[MSHR.scala 520:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_allocate_valid & _T_4 & ~(~request_valid | no_wait & _T_595)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at MSHR.scala:530 assert (!request_valid || (no_wait && io.schedule.fire()))\n"); // @[MSHR.scala 530:12]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~request_valid | no_wait & _T_595) & (io_allocate_valid & _T_4)) begin
          $fatal; // @[MSHR.scala 530:12]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_602 & new_request_prio_2 & _T_4 & ~new_meta_hit) begin
          $fwrite(32'h80000002,"Assertion failed\n    at MSHR.scala:582 assert (new_meta.hit)\n"); // @[MSHR.scala 582:14]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~new_meta_hit & (_T_602 & new_request_prio_2 & _T_4)) begin
          $fatal; // @[MSHR.scala 582:14]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  request_valid = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  request_prio_0 = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  request_prio_1 = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  request_prio_2 = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  request_opcode = _RAND_4[2:0];
  _RAND_5 = {1{`RANDOM}};
  request_param = _RAND_5[2:0];
  _RAND_6 = {1{`RANDOM}};
  request_size = _RAND_6[2:0];
  _RAND_7 = {1{`RANDOM}};
  request_source = _RAND_7[2:0];
  _RAND_8 = {1{`RANDOM}};
  request_tag = _RAND_8[24:0];
  _RAND_9 = {1{`RANDOM}};
  request_offset = _RAND_9[3:0];
  _RAND_10 = {1{`RANDOM}};
  request_put = _RAND_10[5:0];
  _RAND_11 = {1{`RANDOM}};
  request_set = _RAND_11[2:0];
  _RAND_12 = {1{`RANDOM}};
  meta_valid = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  meta_dirty = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  meta_state = _RAND_14[1:0];
  _RAND_15 = {1{`RANDOM}};
  meta_clients = _RAND_15[0:0];
  _RAND_16 = {1{`RANDOM}};
  meta_tag = _RAND_16[24:0];
  _RAND_17 = {1{`RANDOM}};
  meta_hit = _RAND_17[0:0];
  _RAND_18 = {1{`RANDOM}};
  meta_way = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  s_rprobe = _RAND_19[0:0];
  _RAND_20 = {1{`RANDOM}};
  w_rprobeackfirst = _RAND_20[0:0];
  _RAND_21 = {1{`RANDOM}};
  w_rprobeacklast = _RAND_21[0:0];
  _RAND_22 = {1{`RANDOM}};
  s_release = _RAND_22[0:0];
  _RAND_23 = {1{`RANDOM}};
  w_releaseack = _RAND_23[0:0];
  _RAND_24 = {1{`RANDOM}};
  s_pprobe = _RAND_24[0:0];
  _RAND_25 = {1{`RANDOM}};
  s_acquire = _RAND_25[0:0];
  _RAND_26 = {1{`RANDOM}};
  w_grantfirst = _RAND_26[0:0];
  _RAND_27 = {1{`RANDOM}};
  w_grantlast = _RAND_27[0:0];
  _RAND_28 = {1{`RANDOM}};
  w_grant = _RAND_28[0:0];
  _RAND_29 = {1{`RANDOM}};
  w_pprobeackfirst = _RAND_29[0:0];
  _RAND_30 = {1{`RANDOM}};
  w_pprobeacklast = _RAND_30[0:0];
  _RAND_31 = {1{`RANDOM}};
  w_pprobeack = _RAND_31[0:0];
  _RAND_32 = {1{`RANDOM}};
  s_grantack = _RAND_32[0:0];
  _RAND_33 = {1{`RANDOM}};
  s_execute = _RAND_33[0:0];
  _RAND_34 = {1{`RANDOM}};
  w_grantack = _RAND_34[0:0];
  _RAND_35 = {1{`RANDOM}};
  s_writeback = _RAND_35[0:0];
  _RAND_36 = {1{`RANDOM}};
  sink = _RAND_36[2:0];
  _RAND_37 = {1{`RANDOM}};
  gotT = _RAND_37[0:0];
  _RAND_38 = {1{`RANDOM}};
  bad_grant = _RAND_38[0:0];
  _RAND_39 = {1{`RANDOM}};
  probes_done = _RAND_39[0:0];
  _RAND_40 = {1{`RANDOM}};
  probes_toN = _RAND_40[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Scheduler(
  input         clock,
  input         reset,
  output        io_in_a_ready,
  input         io_in_a_valid,
  input  [2:0]  io_in_a_bits_opcode,
  input  [2:0]  io_in_a_bits_param,
  input  [2:0]  io_in_a_bits_size,
  input  [2:0]  io_in_a_bits_source,
  input  [31:0] io_in_a_bits_address,
  input  [7:0]  io_in_a_bits_mask,
  input  [63:0] io_in_a_bits_data,
  input         io_in_a_bits_corrupt,
  input         io_in_b_ready,
  output        io_in_b_valid,
  output [1:0]  io_in_b_bits_param,
  output [31:0] io_in_b_bits_address,
  output        io_in_c_ready,
  input         io_in_c_valid,
  input  [2:0]  io_in_c_bits_opcode,
  input  [2:0]  io_in_c_bits_param,
  input  [2:0]  io_in_c_bits_size,
  input  [31:0] io_in_c_bits_address,
  input  [63:0] io_in_c_bits_data,
  input         io_in_c_bits_corrupt,
  input         io_in_d_ready,
  output        io_in_d_valid,
  output [2:0]  io_in_d_bits_opcode,
  output [1:0]  io_in_d_bits_param,
  output [2:0]  io_in_d_bits_size,
  output [2:0]  io_in_d_bits_source,
  output [4:0]  io_in_d_bits_sink,
  output        io_in_d_bits_denied,
  output [63:0] io_in_d_bits_data,
  output        io_in_d_bits_corrupt,
  input         io_in_e_valid,
  input  [4:0]  io_in_e_bits_sink,
  input         io_out_a_ready,
  output        io_out_a_valid,
  output [2:0]  io_out_a_bits_opcode,
  output [2:0]  io_out_a_bits_param,
  output [2:0]  io_out_a_bits_size,
  output [4:0]  io_out_a_bits_source,
  output [31:0] io_out_a_bits_address,
  output [7:0]  io_out_a_bits_mask,
  output [63:0] io_out_a_bits_data,
  output        io_out_a_bits_corrupt,
  input         io_out_c_ready,
  output        io_out_c_valid,
  output [2:0]  io_out_c_bits_opcode,
  output [2:0]  io_out_c_bits_param,
  output [2:0]  io_out_c_bits_size,
  output [4:0]  io_out_c_bits_source,
  output [31:0] io_out_c_bits_address,
  output [63:0] io_out_c_bits_data,
  output        io_out_c_bits_corrupt,
  output        io_out_d_ready,
  input         io_out_d_valid,
  input  [2:0]  io_out_d_bits_opcode,
  input  [1:0]  io_out_d_bits_param,
  input  [2:0]  io_out_d_bits_size,
  input  [4:0]  io_out_d_bits_source,
  input  [2:0]  io_out_d_bits_sink,
  input         io_out_d_bits_denied,
  input  [63:0] io_out_d_bits_data,
  input         io_out_d_bits_corrupt,
  output        io_out_e_valid,
  output [2:0]  io_out_e_bits_sink
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
`endif // RANDOMIZE_REG_INIT
  wire  sourceA_clock; // @[Scheduler.scala 38:23]
  wire  sourceA_reset; // @[Scheduler.scala 38:23]
  wire  sourceA_io_req_ready; // @[Scheduler.scala 38:23]
  wire  sourceA_io_req_valid; // @[Scheduler.scala 38:23]
  wire [24:0] sourceA_io_req_bits_tag; // @[Scheduler.scala 38:23]
  wire [2:0] sourceA_io_req_bits_set; // @[Scheduler.scala 38:23]
  wire [2:0] sourceA_io_req_bits_param; // @[Scheduler.scala 38:23]
  wire [4:0] sourceA_io_req_bits_source; // @[Scheduler.scala 38:23]
  wire  sourceA_io_req_bits_block; // @[Scheduler.scala 38:23]
  wire  sourceA_io_a_ready; // @[Scheduler.scala 38:23]
  wire  sourceA_io_a_valid; // @[Scheduler.scala 38:23]
  wire [2:0] sourceA_io_a_bits_opcode; // @[Scheduler.scala 38:23]
  wire [2:0] sourceA_io_a_bits_param; // @[Scheduler.scala 38:23]
  wire [2:0] sourceA_io_a_bits_size; // @[Scheduler.scala 38:23]
  wire [4:0] sourceA_io_a_bits_source; // @[Scheduler.scala 38:23]
  wire [31:0] sourceA_io_a_bits_address; // @[Scheduler.scala 38:23]
  wire [7:0] sourceA_io_a_bits_mask; // @[Scheduler.scala 38:23]
  wire [63:0] sourceA_io_a_bits_data; // @[Scheduler.scala 38:23]
  wire  sourceA_io_a_bits_corrupt; // @[Scheduler.scala 38:23]
  wire  sourceB_clock; // @[Scheduler.scala 39:23]
  wire  sourceB_reset; // @[Scheduler.scala 39:23]
  wire  sourceB_io_req_ready; // @[Scheduler.scala 39:23]
  wire  sourceB_io_req_valid; // @[Scheduler.scala 39:23]
  wire [2:0] sourceB_io_req_bits_param; // @[Scheduler.scala 39:23]
  wire [24:0] sourceB_io_req_bits_tag; // @[Scheduler.scala 39:23]
  wire [2:0] sourceB_io_req_bits_set; // @[Scheduler.scala 39:23]
  wire  sourceB_io_req_bits_clients; // @[Scheduler.scala 39:23]
  wire  sourceB_io_b_ready; // @[Scheduler.scala 39:23]
  wire  sourceB_io_b_valid; // @[Scheduler.scala 39:23]
  wire [1:0] sourceB_io_b_bits_param; // @[Scheduler.scala 39:23]
  wire [31:0] sourceB_io_b_bits_address; // @[Scheduler.scala 39:23]
  wire  sourceC_clock; // @[Scheduler.scala 40:23]
  wire  sourceC_reset; // @[Scheduler.scala 40:23]
  wire  sourceC_io_req_ready; // @[Scheduler.scala 40:23]
  wire  sourceC_io_req_valid; // @[Scheduler.scala 40:23]
  wire [2:0] sourceC_io_req_bits_opcode; // @[Scheduler.scala 40:23]
  wire [2:0] sourceC_io_req_bits_param; // @[Scheduler.scala 40:23]
  wire [4:0] sourceC_io_req_bits_source; // @[Scheduler.scala 40:23]
  wire [24:0] sourceC_io_req_bits_tag; // @[Scheduler.scala 40:23]
  wire [2:0] sourceC_io_req_bits_set; // @[Scheduler.scala 40:23]
  wire  sourceC_io_req_bits_way; // @[Scheduler.scala 40:23]
  wire  sourceC_io_req_bits_dirty; // @[Scheduler.scala 40:23]
  wire  sourceC_io_c_ready; // @[Scheduler.scala 40:23]
  wire  sourceC_io_c_valid; // @[Scheduler.scala 40:23]
  wire [2:0] sourceC_io_c_bits_opcode; // @[Scheduler.scala 40:23]
  wire [2:0] sourceC_io_c_bits_param; // @[Scheduler.scala 40:23]
  wire [2:0] sourceC_io_c_bits_size; // @[Scheduler.scala 40:23]
  wire [4:0] sourceC_io_c_bits_source; // @[Scheduler.scala 40:23]
  wire [31:0] sourceC_io_c_bits_address; // @[Scheduler.scala 40:23]
  wire [63:0] sourceC_io_c_bits_data; // @[Scheduler.scala 40:23]
  wire  sourceC_io_c_bits_corrupt; // @[Scheduler.scala 40:23]
  wire  sourceC_io_bs_adr_ready; // @[Scheduler.scala 40:23]
  wire  sourceC_io_bs_adr_valid; // @[Scheduler.scala 40:23]
  wire  sourceC_io_bs_adr_bits_way; // @[Scheduler.scala 40:23]
  wire [2:0] sourceC_io_bs_adr_bits_set; // @[Scheduler.scala 40:23]
  wire  sourceC_io_bs_adr_bits_beat; // @[Scheduler.scala 40:23]
  wire [63:0] sourceC_io_bs_dat_data; // @[Scheduler.scala 40:23]
  wire [2:0] sourceC_io_evict_req_set; // @[Scheduler.scala 40:23]
  wire  sourceC_io_evict_req_way; // @[Scheduler.scala 40:23]
  wire  sourceC_io_evict_safe; // @[Scheduler.scala 40:23]
  wire  sourceD_clock; // @[Scheduler.scala 41:23]
  wire  sourceD_reset; // @[Scheduler.scala 41:23]
  wire  sourceD_io_req_ready; // @[Scheduler.scala 41:23]
  wire  sourceD_io_req_valid; // @[Scheduler.scala 41:23]
  wire  sourceD_io_req_bits_prio_0; // @[Scheduler.scala 41:23]
  wire  sourceD_io_req_bits_prio_2; // @[Scheduler.scala 41:23]
  wire [2:0] sourceD_io_req_bits_opcode; // @[Scheduler.scala 41:23]
  wire [2:0] sourceD_io_req_bits_param; // @[Scheduler.scala 41:23]
  wire [2:0] sourceD_io_req_bits_size; // @[Scheduler.scala 41:23]
  wire [2:0] sourceD_io_req_bits_source; // @[Scheduler.scala 41:23]
  wire [3:0] sourceD_io_req_bits_offset; // @[Scheduler.scala 41:23]
  wire [5:0] sourceD_io_req_bits_put; // @[Scheduler.scala 41:23]
  wire [2:0] sourceD_io_req_bits_set; // @[Scheduler.scala 41:23]
  wire [4:0] sourceD_io_req_bits_sink; // @[Scheduler.scala 41:23]
  wire  sourceD_io_req_bits_way; // @[Scheduler.scala 41:23]
  wire  sourceD_io_req_bits_bad; // @[Scheduler.scala 41:23]
  wire  sourceD_io_d_ready; // @[Scheduler.scala 41:23]
  wire  sourceD_io_d_valid; // @[Scheduler.scala 41:23]
  wire [2:0] sourceD_io_d_bits_opcode; // @[Scheduler.scala 41:23]
  wire [1:0] sourceD_io_d_bits_param; // @[Scheduler.scala 41:23]
  wire [2:0] sourceD_io_d_bits_size; // @[Scheduler.scala 41:23]
  wire [2:0] sourceD_io_d_bits_source; // @[Scheduler.scala 41:23]
  wire [4:0] sourceD_io_d_bits_sink; // @[Scheduler.scala 41:23]
  wire  sourceD_io_d_bits_denied; // @[Scheduler.scala 41:23]
  wire [63:0] sourceD_io_d_bits_data; // @[Scheduler.scala 41:23]
  wire  sourceD_io_d_bits_corrupt; // @[Scheduler.scala 41:23]
  wire  sourceD_io_pb_pop_ready; // @[Scheduler.scala 41:23]
  wire  sourceD_io_pb_pop_valid; // @[Scheduler.scala 41:23]
  wire [5:0] sourceD_io_pb_pop_bits_index; // @[Scheduler.scala 41:23]
  wire  sourceD_io_pb_pop_bits_last; // @[Scheduler.scala 41:23]
  wire [63:0] sourceD_io_pb_beat_data; // @[Scheduler.scala 41:23]
  wire [7:0] sourceD_io_pb_beat_mask; // @[Scheduler.scala 41:23]
  wire  sourceD_io_pb_beat_corrupt; // @[Scheduler.scala 41:23]
  wire  sourceD_io_rel_pop_ready; // @[Scheduler.scala 41:23]
  wire  sourceD_io_rel_pop_valid; // @[Scheduler.scala 41:23]
  wire [5:0] sourceD_io_rel_pop_bits_index; // @[Scheduler.scala 41:23]
  wire  sourceD_io_rel_pop_bits_last; // @[Scheduler.scala 41:23]
  wire [63:0] sourceD_io_rel_beat_data; // @[Scheduler.scala 41:23]
  wire  sourceD_io_rel_beat_corrupt; // @[Scheduler.scala 41:23]
  wire  sourceD_io_bs_radr_ready; // @[Scheduler.scala 41:23]
  wire  sourceD_io_bs_radr_valid; // @[Scheduler.scala 41:23]
  wire  sourceD_io_bs_radr_bits_way; // @[Scheduler.scala 41:23]
  wire [2:0] sourceD_io_bs_radr_bits_set; // @[Scheduler.scala 41:23]
  wire  sourceD_io_bs_radr_bits_beat; // @[Scheduler.scala 41:23]
  wire  sourceD_io_bs_radr_bits_mask; // @[Scheduler.scala 41:23]
  wire [63:0] sourceD_io_bs_rdat_data; // @[Scheduler.scala 41:23]
  wire  sourceD_io_bs_wadr_ready; // @[Scheduler.scala 41:23]
  wire  sourceD_io_bs_wadr_valid; // @[Scheduler.scala 41:23]
  wire  sourceD_io_bs_wadr_bits_way; // @[Scheduler.scala 41:23]
  wire [2:0] sourceD_io_bs_wadr_bits_set; // @[Scheduler.scala 41:23]
  wire  sourceD_io_bs_wadr_bits_beat; // @[Scheduler.scala 41:23]
  wire  sourceD_io_bs_wadr_bits_mask; // @[Scheduler.scala 41:23]
  wire [63:0] sourceD_io_bs_wdat_data; // @[Scheduler.scala 41:23]
  wire [2:0] sourceD_io_evict_req_set; // @[Scheduler.scala 41:23]
  wire  sourceD_io_evict_req_way; // @[Scheduler.scala 41:23]
  wire  sourceD_io_evict_safe; // @[Scheduler.scala 41:23]
  wire [2:0] sourceD_io_grant_req_set; // @[Scheduler.scala 41:23]
  wire  sourceD_io_grant_req_way; // @[Scheduler.scala 41:23]
  wire  sourceD_io_grant_safe; // @[Scheduler.scala 41:23]
  wire  sourceE_clock; // @[Scheduler.scala 42:23]
  wire  sourceE_reset; // @[Scheduler.scala 42:23]
  wire  sourceE_io_req_ready; // @[Scheduler.scala 42:23]
  wire  sourceE_io_req_valid; // @[Scheduler.scala 42:23]
  wire [2:0] sourceE_io_req_bits_sink; // @[Scheduler.scala 42:23]
  wire  sourceE_io_e_valid; // @[Scheduler.scala 42:23]
  wire [2:0] sourceE_io_e_bits_sink; // @[Scheduler.scala 42:23]
  wire  sinkA_clock; // @[Scheduler.scala 52:21]
  wire  sinkA_reset; // @[Scheduler.scala 52:21]
  wire  sinkA_io_req_ready; // @[Scheduler.scala 52:21]
  wire  sinkA_io_req_valid; // @[Scheduler.scala 52:21]
  wire [2:0] sinkA_io_req_bits_opcode; // @[Scheduler.scala 52:21]
  wire [2:0] sinkA_io_req_bits_param; // @[Scheduler.scala 52:21]
  wire [2:0] sinkA_io_req_bits_size; // @[Scheduler.scala 52:21]
  wire [2:0] sinkA_io_req_bits_source; // @[Scheduler.scala 52:21]
  wire [24:0] sinkA_io_req_bits_tag; // @[Scheduler.scala 52:21]
  wire [3:0] sinkA_io_req_bits_offset; // @[Scheduler.scala 52:21]
  wire [5:0] sinkA_io_req_bits_put; // @[Scheduler.scala 52:21]
  wire [2:0] sinkA_io_req_bits_set; // @[Scheduler.scala 52:21]
  wire  sinkA_io_a_ready; // @[Scheduler.scala 52:21]
  wire  sinkA_io_a_valid; // @[Scheduler.scala 52:21]
  wire [2:0] sinkA_io_a_bits_opcode; // @[Scheduler.scala 52:21]
  wire [2:0] sinkA_io_a_bits_param; // @[Scheduler.scala 52:21]
  wire [2:0] sinkA_io_a_bits_size; // @[Scheduler.scala 52:21]
  wire [2:0] sinkA_io_a_bits_source; // @[Scheduler.scala 52:21]
  wire [31:0] sinkA_io_a_bits_address; // @[Scheduler.scala 52:21]
  wire [7:0] sinkA_io_a_bits_mask; // @[Scheduler.scala 52:21]
  wire [63:0] sinkA_io_a_bits_data; // @[Scheduler.scala 52:21]
  wire  sinkA_io_a_bits_corrupt; // @[Scheduler.scala 52:21]
  wire  sinkA_io_pb_pop_ready; // @[Scheduler.scala 52:21]
  wire  sinkA_io_pb_pop_valid; // @[Scheduler.scala 52:21]
  wire [5:0] sinkA_io_pb_pop_bits_index; // @[Scheduler.scala 52:21]
  wire  sinkA_io_pb_pop_bits_last; // @[Scheduler.scala 52:21]
  wire [63:0] sinkA_io_pb_beat_data; // @[Scheduler.scala 52:21]
  wire [7:0] sinkA_io_pb_beat_mask; // @[Scheduler.scala 52:21]
  wire  sinkA_io_pb_beat_corrupt; // @[Scheduler.scala 52:21]
  wire  sinkC_clock; // @[Scheduler.scala 53:21]
  wire  sinkC_reset; // @[Scheduler.scala 53:21]
  wire  sinkC_io_req_ready; // @[Scheduler.scala 53:21]
  wire  sinkC_io_req_valid; // @[Scheduler.scala 53:21]
  wire [2:0] sinkC_io_req_bits_opcode; // @[Scheduler.scala 53:21]
  wire [2:0] sinkC_io_req_bits_param; // @[Scheduler.scala 53:21]
  wire [2:0] sinkC_io_req_bits_size; // @[Scheduler.scala 53:21]
  wire [2:0] sinkC_io_req_bits_source; // @[Scheduler.scala 53:21]
  wire [24:0] sinkC_io_req_bits_tag; // @[Scheduler.scala 53:21]
  wire [3:0] sinkC_io_req_bits_offset; // @[Scheduler.scala 53:21]
  wire [5:0] sinkC_io_req_bits_put; // @[Scheduler.scala 53:21]
  wire [2:0] sinkC_io_req_bits_set; // @[Scheduler.scala 53:21]
  wire  sinkC_io_resp_valid; // @[Scheduler.scala 53:21]
  wire  sinkC_io_resp_bits_last; // @[Scheduler.scala 53:21]
  wire [2:0] sinkC_io_resp_bits_set; // @[Scheduler.scala 53:21]
  wire [24:0] sinkC_io_resp_bits_tag; // @[Scheduler.scala 53:21]
  wire [2:0] sinkC_io_resp_bits_source; // @[Scheduler.scala 53:21]
  wire [2:0] sinkC_io_resp_bits_param; // @[Scheduler.scala 53:21]
  wire  sinkC_io_resp_bits_data; // @[Scheduler.scala 53:21]
  wire  sinkC_io_c_ready; // @[Scheduler.scala 53:21]
  wire  sinkC_io_c_valid; // @[Scheduler.scala 53:21]
  wire [2:0] sinkC_io_c_bits_opcode; // @[Scheduler.scala 53:21]
  wire [2:0] sinkC_io_c_bits_param; // @[Scheduler.scala 53:21]
  wire [2:0] sinkC_io_c_bits_size; // @[Scheduler.scala 53:21]
  wire [31:0] sinkC_io_c_bits_address; // @[Scheduler.scala 53:21]
  wire [63:0] sinkC_io_c_bits_data; // @[Scheduler.scala 53:21]
  wire  sinkC_io_c_bits_corrupt; // @[Scheduler.scala 53:21]
  wire [2:0] sinkC_io_set; // @[Scheduler.scala 53:21]
  wire  sinkC_io_way; // @[Scheduler.scala 53:21]
  wire  sinkC_io_bs_adr_ready; // @[Scheduler.scala 53:21]
  wire  sinkC_io_bs_adr_valid; // @[Scheduler.scala 53:21]
  wire  sinkC_io_bs_adr_bits_noop; // @[Scheduler.scala 53:21]
  wire  sinkC_io_bs_adr_bits_way; // @[Scheduler.scala 53:21]
  wire [2:0] sinkC_io_bs_adr_bits_set; // @[Scheduler.scala 53:21]
  wire  sinkC_io_bs_adr_bits_beat; // @[Scheduler.scala 53:21]
  wire  sinkC_io_bs_adr_bits_mask; // @[Scheduler.scala 53:21]
  wire [63:0] sinkC_io_bs_dat_data; // @[Scheduler.scala 53:21]
  wire  sinkC_io_rel_pop_ready; // @[Scheduler.scala 53:21]
  wire  sinkC_io_rel_pop_valid; // @[Scheduler.scala 53:21]
  wire [5:0] sinkC_io_rel_pop_bits_index; // @[Scheduler.scala 53:21]
  wire  sinkC_io_rel_pop_bits_last; // @[Scheduler.scala 53:21]
  wire [63:0] sinkC_io_rel_beat_data; // @[Scheduler.scala 53:21]
  wire  sinkC_io_rel_beat_corrupt; // @[Scheduler.scala 53:21]
  wire  sinkD_clock; // @[Scheduler.scala 54:21]
  wire  sinkD_reset; // @[Scheduler.scala 54:21]
  wire  sinkD_io_resp_valid; // @[Scheduler.scala 54:21]
  wire  sinkD_io_resp_bits_last; // @[Scheduler.scala 54:21]
  wire [2:0] sinkD_io_resp_bits_opcode; // @[Scheduler.scala 54:21]
  wire [2:0] sinkD_io_resp_bits_param; // @[Scheduler.scala 54:21]
  wire [4:0] sinkD_io_resp_bits_source; // @[Scheduler.scala 54:21]
  wire [2:0] sinkD_io_resp_bits_sink; // @[Scheduler.scala 54:21]
  wire  sinkD_io_resp_bits_denied; // @[Scheduler.scala 54:21]
  wire  sinkD_io_d_ready; // @[Scheduler.scala 54:21]
  wire  sinkD_io_d_valid; // @[Scheduler.scala 54:21]
  wire [2:0] sinkD_io_d_bits_opcode; // @[Scheduler.scala 54:21]
  wire [1:0] sinkD_io_d_bits_param; // @[Scheduler.scala 54:21]
  wire [2:0] sinkD_io_d_bits_size; // @[Scheduler.scala 54:21]
  wire [4:0] sinkD_io_d_bits_source; // @[Scheduler.scala 54:21]
  wire [2:0] sinkD_io_d_bits_sink; // @[Scheduler.scala 54:21]
  wire  sinkD_io_d_bits_denied; // @[Scheduler.scala 54:21]
  wire [63:0] sinkD_io_d_bits_data; // @[Scheduler.scala 54:21]
  wire  sinkD_io_d_bits_corrupt; // @[Scheduler.scala 54:21]
  wire [4:0] sinkD_io_source; // @[Scheduler.scala 54:21]
  wire  sinkD_io_way; // @[Scheduler.scala 54:21]
  wire [2:0] sinkD_io_set; // @[Scheduler.scala 54:21]
  wire  sinkD_io_bs_adr_ready; // @[Scheduler.scala 54:21]
  wire  sinkD_io_bs_adr_valid; // @[Scheduler.scala 54:21]
  wire  sinkD_io_bs_adr_bits_noop; // @[Scheduler.scala 54:21]
  wire  sinkD_io_bs_adr_bits_way; // @[Scheduler.scala 54:21]
  wire [2:0] sinkD_io_bs_adr_bits_set; // @[Scheduler.scala 54:21]
  wire  sinkD_io_bs_adr_bits_beat; // @[Scheduler.scala 54:21]
  wire [63:0] sinkD_io_bs_dat_data; // @[Scheduler.scala 54:21]
  wire [2:0] sinkD_io_grant_req_set; // @[Scheduler.scala 54:21]
  wire  sinkD_io_grant_req_way; // @[Scheduler.scala 54:21]
  wire  sinkD_io_grant_safe; // @[Scheduler.scala 54:21]
  wire  sinkE_io_resp_valid; // @[Scheduler.scala 55:21]
  wire [4:0] sinkE_io_resp_bits_sink; // @[Scheduler.scala 55:21]
  wire  sinkE_io_e_valid; // @[Scheduler.scala 55:21]
  wire [4:0] sinkE_io_e_bits_sink; // @[Scheduler.scala 55:21]
  wire  directory_clock; // @[Scheduler.scala 66:25]
  wire  directory_reset; // @[Scheduler.scala 66:25]
  wire  directory_io_write_ready; // @[Scheduler.scala 66:25]
  wire  directory_io_write_valid; // @[Scheduler.scala 66:25]
  wire [2:0] directory_io_write_bits_set; // @[Scheduler.scala 66:25]
  wire  directory_io_write_bits_way; // @[Scheduler.scala 66:25]
  wire  directory_io_write_bits_data_dirty; // @[Scheduler.scala 66:25]
  wire [1:0] directory_io_write_bits_data_state; // @[Scheduler.scala 66:25]
  wire  directory_io_write_bits_data_clients; // @[Scheduler.scala 66:25]
  wire [24:0] directory_io_write_bits_data_tag; // @[Scheduler.scala 66:25]
  wire  directory_io_read_valid; // @[Scheduler.scala 66:25]
  wire [2:0] directory_io_read_bits_set; // @[Scheduler.scala 66:25]
  wire [24:0] directory_io_read_bits_tag; // @[Scheduler.scala 66:25]
  wire  directory_io_result_bits_dirty; // @[Scheduler.scala 66:25]
  wire [1:0] directory_io_result_bits_state; // @[Scheduler.scala 66:25]
  wire  directory_io_result_bits_clients; // @[Scheduler.scala 66:25]
  wire [24:0] directory_io_result_bits_tag; // @[Scheduler.scala 66:25]
  wire  directory_io_result_bits_hit; // @[Scheduler.scala 66:25]
  wire  directory_io_result_bits_way; // @[Scheduler.scala 66:25]
  wire  directory_io_ready; // @[Scheduler.scala 66:25]
  wire  bankedStore_clock; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sinkC_adr_ready; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sinkC_adr_valid; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sinkC_adr_bits_noop; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sinkC_adr_bits_way; // @[Scheduler.scala 67:27]
  wire [2:0] bankedStore_io_sinkC_adr_bits_set; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sinkC_adr_bits_beat; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sinkC_adr_bits_mask; // @[Scheduler.scala 67:27]
  wire [63:0] bankedStore_io_sinkC_dat_data; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sinkD_adr_ready; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sinkD_adr_valid; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sinkD_adr_bits_noop; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sinkD_adr_bits_way; // @[Scheduler.scala 67:27]
  wire [2:0] bankedStore_io_sinkD_adr_bits_set; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sinkD_adr_bits_beat; // @[Scheduler.scala 67:27]
  wire [63:0] bankedStore_io_sinkD_dat_data; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sourceC_adr_ready; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sourceC_adr_valid; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sourceC_adr_bits_way; // @[Scheduler.scala 67:27]
  wire [2:0] bankedStore_io_sourceC_adr_bits_set; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sourceC_adr_bits_beat; // @[Scheduler.scala 67:27]
  wire [63:0] bankedStore_io_sourceC_dat_data; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sourceD_radr_ready; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sourceD_radr_valid; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sourceD_radr_bits_way; // @[Scheduler.scala 67:27]
  wire [2:0] bankedStore_io_sourceD_radr_bits_set; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sourceD_radr_bits_beat; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sourceD_radr_bits_mask; // @[Scheduler.scala 67:27]
  wire [63:0] bankedStore_io_sourceD_rdat_data; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sourceD_wadr_ready; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sourceD_wadr_valid; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sourceD_wadr_bits_way; // @[Scheduler.scala 67:27]
  wire [2:0] bankedStore_io_sourceD_wadr_bits_set; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sourceD_wadr_bits_beat; // @[Scheduler.scala 67:27]
  wire  bankedStore_io_sourceD_wadr_bits_mask; // @[Scheduler.scala 67:27]
  wire [63:0] bankedStore_io_sourceD_wdat_data; // @[Scheduler.scala 67:27]
  wire  requests_clock; // @[Scheduler.scala 68:24]
  wire  requests_reset; // @[Scheduler.scala 68:24]
  wire  requests_io_push_ready; // @[Scheduler.scala 68:24]
  wire  requests_io_push_valid; // @[Scheduler.scala 68:24]
  wire [6:0] requests_io_push_bits_index; // @[Scheduler.scala 68:24]
  wire  requests_io_push_bits_data_prio_0; // @[Scheduler.scala 68:24]
  wire  requests_io_push_bits_data_prio_2; // @[Scheduler.scala 68:24]
  wire [2:0] requests_io_push_bits_data_opcode; // @[Scheduler.scala 68:24]
  wire [2:0] requests_io_push_bits_data_param; // @[Scheduler.scala 68:24]
  wire [2:0] requests_io_push_bits_data_size; // @[Scheduler.scala 68:24]
  wire [2:0] requests_io_push_bits_data_source; // @[Scheduler.scala 68:24]
  wire [24:0] requests_io_push_bits_data_tag; // @[Scheduler.scala 68:24]
  wire [3:0] requests_io_push_bits_data_offset; // @[Scheduler.scala 68:24]
  wire [5:0] requests_io_push_bits_data_put; // @[Scheduler.scala 68:24]
  wire [65:0] requests_io_valid; // @[Scheduler.scala 68:24]
  wire  requests_io_pop_valid; // @[Scheduler.scala 68:24]
  wire [6:0] requests_io_pop_bits; // @[Scheduler.scala 68:24]
  wire  requests_io_data_prio_0; // @[Scheduler.scala 68:24]
  wire  requests_io_data_prio_1; // @[Scheduler.scala 68:24]
  wire  requests_io_data_prio_2; // @[Scheduler.scala 68:24]
  wire [2:0] requests_io_data_opcode; // @[Scheduler.scala 68:24]
  wire [2:0] requests_io_data_param; // @[Scheduler.scala 68:24]
  wire [2:0] requests_io_data_size; // @[Scheduler.scala 68:24]
  wire [2:0] requests_io_data_source; // @[Scheduler.scala 68:24]
  wire [24:0] requests_io_data_tag; // @[Scheduler.scala 68:24]
  wire [3:0] requests_io_data_offset; // @[Scheduler.scala 68:24]
  wire [5:0] requests_io_data_put; // @[Scheduler.scala 68:24]
  wire  abc_mshrs_0_clock; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_reset; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_allocate_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_allocate_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_allocate_bits_prio_1; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_allocate_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_allocate_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_allocate_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_allocate_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_allocate_bits_source; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_0_io_allocate_bits_tag; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_0_io_allocate_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_0_io_allocate_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_allocate_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_allocate_bits_repeat; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_directory_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_directory_bits_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_0_io_directory_bits_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_directory_bits_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_0_io_directory_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_directory_bits_hit; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_directory_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_status_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_0_io_status_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_status_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_status_bits_blockB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_status_bits_nestB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_status_bits_blockC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_status_bits_nestC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_schedule_ready; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_schedule_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_schedule_bits_a_valid; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_0_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_schedule_bits_a_bits_set; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_schedule_bits_a_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_schedule_bits_a_bits_block; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_schedule_bits_b_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_schedule_bits_b_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_0_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_schedule_bits_b_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_schedule_bits_b_bits_clients; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_schedule_bits_c_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_schedule_bits_c_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_schedule_bits_c_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_0_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_schedule_bits_c_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_schedule_bits_c_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_schedule_bits_c_bits_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_schedule_bits_d_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_schedule_bits_d_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_schedule_bits_d_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_schedule_bits_d_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_schedule_bits_d_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_schedule_bits_d_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_schedule_bits_d_bits_source; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_0_io_schedule_bits_d_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_0_io_schedule_bits_d_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_schedule_bits_d_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_schedule_bits_d_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_schedule_bits_d_bits_bad; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_schedule_bits_e_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_schedule_bits_e_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_schedule_bits_x_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_schedule_bits_dir_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_schedule_bits_dir_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_schedule_bits_dir_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_0_io_schedule_bits_dir_bits_data_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_schedule_bits_dir_bits_data_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_0_io_schedule_bits_dir_bits_data_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_schedule_bits_reload; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_sinkc_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_sinkc_bits_last; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_0_io_sinkc_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_sinkc_bits_source; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_sinkc_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_sinkc_bits_data; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_sinkd_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_sinkd_bits_last; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_sinkd_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_sinkd_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_sinkd_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_sinkd_bits_denied; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_sinke_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_0_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_0_io_nestedwb_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_nestedwb_b_toN; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_nestedwb_b_toB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_nestedwb_b_clr_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_0_io_nestedwb_c_set_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_clock; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_reset; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_allocate_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_allocate_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_allocate_bits_prio_1; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_allocate_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_allocate_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_allocate_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_allocate_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_allocate_bits_source; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_1_io_allocate_bits_tag; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_1_io_allocate_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_1_io_allocate_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_allocate_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_allocate_bits_repeat; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_directory_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_directory_bits_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_1_io_directory_bits_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_directory_bits_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_1_io_directory_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_directory_bits_hit; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_directory_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_status_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_1_io_status_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_status_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_status_bits_blockB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_status_bits_nestB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_status_bits_blockC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_status_bits_nestC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_schedule_ready; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_schedule_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_schedule_bits_a_valid; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_1_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_schedule_bits_a_bits_set; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_schedule_bits_a_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_schedule_bits_a_bits_block; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_schedule_bits_b_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_schedule_bits_b_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_1_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_schedule_bits_b_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_schedule_bits_b_bits_clients; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_schedule_bits_c_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_schedule_bits_c_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_schedule_bits_c_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_1_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_schedule_bits_c_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_schedule_bits_c_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_schedule_bits_c_bits_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_schedule_bits_d_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_schedule_bits_d_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_schedule_bits_d_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_schedule_bits_d_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_schedule_bits_d_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_schedule_bits_d_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_schedule_bits_d_bits_source; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_1_io_schedule_bits_d_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_1_io_schedule_bits_d_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_schedule_bits_d_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_schedule_bits_d_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_schedule_bits_d_bits_bad; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_schedule_bits_e_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_schedule_bits_e_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_schedule_bits_x_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_schedule_bits_dir_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_schedule_bits_dir_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_schedule_bits_dir_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_1_io_schedule_bits_dir_bits_data_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_schedule_bits_dir_bits_data_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_1_io_schedule_bits_dir_bits_data_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_schedule_bits_reload; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_sinkc_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_sinkc_bits_last; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_1_io_sinkc_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_sinkc_bits_source; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_sinkc_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_sinkc_bits_data; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_sinkd_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_sinkd_bits_last; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_sinkd_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_sinkd_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_sinkd_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_sinkd_bits_denied; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_sinke_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_1_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_1_io_nestedwb_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_nestedwb_b_toN; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_nestedwb_b_toB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_nestedwb_b_clr_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_1_io_nestedwb_c_set_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_clock; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_reset; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_allocate_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_allocate_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_allocate_bits_prio_1; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_allocate_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_allocate_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_allocate_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_allocate_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_allocate_bits_source; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_2_io_allocate_bits_tag; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_2_io_allocate_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_2_io_allocate_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_allocate_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_allocate_bits_repeat; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_directory_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_directory_bits_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_2_io_directory_bits_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_directory_bits_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_2_io_directory_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_directory_bits_hit; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_directory_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_status_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_2_io_status_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_status_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_status_bits_blockB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_status_bits_nestB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_status_bits_blockC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_status_bits_nestC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_schedule_ready; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_schedule_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_schedule_bits_a_valid; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_2_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_schedule_bits_a_bits_set; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_schedule_bits_a_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_schedule_bits_a_bits_block; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_schedule_bits_b_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_schedule_bits_b_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_2_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_schedule_bits_b_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_schedule_bits_b_bits_clients; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_schedule_bits_c_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_schedule_bits_c_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_schedule_bits_c_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_2_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_schedule_bits_c_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_schedule_bits_c_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_schedule_bits_c_bits_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_schedule_bits_d_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_schedule_bits_d_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_schedule_bits_d_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_schedule_bits_d_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_schedule_bits_d_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_schedule_bits_d_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_schedule_bits_d_bits_source; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_2_io_schedule_bits_d_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_2_io_schedule_bits_d_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_schedule_bits_d_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_schedule_bits_d_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_schedule_bits_d_bits_bad; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_schedule_bits_e_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_schedule_bits_e_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_schedule_bits_x_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_schedule_bits_dir_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_schedule_bits_dir_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_schedule_bits_dir_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_2_io_schedule_bits_dir_bits_data_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_schedule_bits_dir_bits_data_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_2_io_schedule_bits_dir_bits_data_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_schedule_bits_reload; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_sinkc_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_sinkc_bits_last; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_2_io_sinkc_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_sinkc_bits_source; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_sinkc_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_sinkc_bits_data; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_sinkd_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_sinkd_bits_last; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_sinkd_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_sinkd_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_sinkd_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_sinkd_bits_denied; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_sinke_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_2_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_2_io_nestedwb_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_nestedwb_b_toN; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_nestedwb_b_toB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_nestedwb_b_clr_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_2_io_nestedwb_c_set_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_clock; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_reset; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_allocate_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_allocate_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_allocate_bits_prio_1; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_allocate_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_allocate_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_allocate_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_allocate_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_allocate_bits_source; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_3_io_allocate_bits_tag; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_3_io_allocate_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_3_io_allocate_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_allocate_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_allocate_bits_repeat; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_directory_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_directory_bits_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_3_io_directory_bits_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_directory_bits_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_3_io_directory_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_directory_bits_hit; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_directory_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_status_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_3_io_status_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_status_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_status_bits_blockB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_status_bits_nestB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_status_bits_blockC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_status_bits_nestC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_schedule_ready; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_schedule_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_schedule_bits_a_valid; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_3_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_schedule_bits_a_bits_set; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_schedule_bits_a_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_schedule_bits_a_bits_block; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_schedule_bits_b_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_schedule_bits_b_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_3_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_schedule_bits_b_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_schedule_bits_b_bits_clients; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_schedule_bits_c_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_schedule_bits_c_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_schedule_bits_c_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_3_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_schedule_bits_c_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_schedule_bits_c_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_schedule_bits_c_bits_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_schedule_bits_d_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_schedule_bits_d_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_schedule_bits_d_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_schedule_bits_d_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_schedule_bits_d_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_schedule_bits_d_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_schedule_bits_d_bits_source; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_3_io_schedule_bits_d_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_3_io_schedule_bits_d_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_schedule_bits_d_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_schedule_bits_d_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_schedule_bits_d_bits_bad; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_schedule_bits_e_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_schedule_bits_e_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_schedule_bits_x_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_schedule_bits_dir_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_schedule_bits_dir_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_schedule_bits_dir_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_3_io_schedule_bits_dir_bits_data_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_schedule_bits_dir_bits_data_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_3_io_schedule_bits_dir_bits_data_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_schedule_bits_reload; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_sinkc_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_sinkc_bits_last; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_3_io_sinkc_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_sinkc_bits_source; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_sinkc_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_sinkc_bits_data; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_sinkd_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_sinkd_bits_last; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_sinkd_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_sinkd_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_sinkd_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_sinkd_bits_denied; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_sinke_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_3_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_3_io_nestedwb_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_nestedwb_b_toN; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_nestedwb_b_toB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_nestedwb_b_clr_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_3_io_nestedwb_c_set_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_clock; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_reset; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_allocate_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_allocate_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_allocate_bits_prio_1; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_allocate_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_allocate_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_allocate_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_allocate_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_allocate_bits_source; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_4_io_allocate_bits_tag; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_4_io_allocate_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_4_io_allocate_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_allocate_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_allocate_bits_repeat; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_directory_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_directory_bits_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_4_io_directory_bits_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_directory_bits_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_4_io_directory_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_directory_bits_hit; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_directory_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_status_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_4_io_status_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_status_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_status_bits_blockB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_status_bits_nestB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_status_bits_blockC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_status_bits_nestC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_schedule_ready; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_schedule_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_schedule_bits_a_valid; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_4_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_schedule_bits_a_bits_set; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_schedule_bits_a_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_schedule_bits_a_bits_block; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_schedule_bits_b_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_schedule_bits_b_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_4_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_schedule_bits_b_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_schedule_bits_b_bits_clients; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_schedule_bits_c_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_schedule_bits_c_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_schedule_bits_c_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_4_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_schedule_bits_c_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_schedule_bits_c_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_schedule_bits_c_bits_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_schedule_bits_d_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_schedule_bits_d_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_schedule_bits_d_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_schedule_bits_d_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_schedule_bits_d_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_schedule_bits_d_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_schedule_bits_d_bits_source; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_4_io_schedule_bits_d_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_4_io_schedule_bits_d_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_schedule_bits_d_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_schedule_bits_d_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_schedule_bits_d_bits_bad; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_schedule_bits_e_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_schedule_bits_e_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_schedule_bits_x_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_schedule_bits_dir_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_schedule_bits_dir_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_schedule_bits_dir_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_4_io_schedule_bits_dir_bits_data_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_schedule_bits_dir_bits_data_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_4_io_schedule_bits_dir_bits_data_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_schedule_bits_reload; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_sinkc_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_sinkc_bits_last; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_4_io_sinkc_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_sinkc_bits_source; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_sinkc_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_sinkc_bits_data; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_sinkd_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_sinkd_bits_last; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_sinkd_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_sinkd_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_sinkd_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_sinkd_bits_denied; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_sinke_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_4_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_4_io_nestedwb_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_nestedwb_b_toN; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_nestedwb_b_toB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_nestedwb_b_clr_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_4_io_nestedwb_c_set_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_clock; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_reset; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_allocate_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_allocate_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_allocate_bits_prio_1; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_allocate_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_allocate_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_allocate_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_allocate_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_allocate_bits_source; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_5_io_allocate_bits_tag; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_5_io_allocate_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_5_io_allocate_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_allocate_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_allocate_bits_repeat; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_directory_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_directory_bits_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_5_io_directory_bits_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_directory_bits_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_5_io_directory_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_directory_bits_hit; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_directory_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_status_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_5_io_status_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_status_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_status_bits_blockB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_status_bits_nestB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_status_bits_blockC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_status_bits_nestC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_schedule_ready; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_schedule_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_schedule_bits_a_valid; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_5_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_schedule_bits_a_bits_set; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_schedule_bits_a_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_schedule_bits_a_bits_block; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_schedule_bits_b_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_schedule_bits_b_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_5_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_schedule_bits_b_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_schedule_bits_b_bits_clients; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_schedule_bits_c_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_schedule_bits_c_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_schedule_bits_c_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_5_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_schedule_bits_c_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_schedule_bits_c_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_schedule_bits_c_bits_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_schedule_bits_d_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_schedule_bits_d_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_schedule_bits_d_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_schedule_bits_d_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_schedule_bits_d_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_schedule_bits_d_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_schedule_bits_d_bits_source; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_5_io_schedule_bits_d_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_5_io_schedule_bits_d_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_schedule_bits_d_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_schedule_bits_d_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_schedule_bits_d_bits_bad; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_schedule_bits_e_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_schedule_bits_e_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_schedule_bits_x_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_schedule_bits_dir_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_schedule_bits_dir_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_schedule_bits_dir_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_5_io_schedule_bits_dir_bits_data_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_schedule_bits_dir_bits_data_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_5_io_schedule_bits_dir_bits_data_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_schedule_bits_reload; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_sinkc_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_sinkc_bits_last; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_5_io_sinkc_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_sinkc_bits_source; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_sinkc_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_sinkc_bits_data; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_sinkd_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_sinkd_bits_last; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_sinkd_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_sinkd_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_sinkd_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_sinkd_bits_denied; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_sinke_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_5_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_5_io_nestedwb_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_nestedwb_b_toN; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_nestedwb_b_toB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_nestedwb_b_clr_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_5_io_nestedwb_c_set_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_clock; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_reset; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_allocate_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_allocate_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_allocate_bits_prio_1; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_allocate_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_allocate_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_allocate_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_allocate_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_allocate_bits_source; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_6_io_allocate_bits_tag; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_6_io_allocate_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_6_io_allocate_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_allocate_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_allocate_bits_repeat; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_directory_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_directory_bits_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_6_io_directory_bits_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_directory_bits_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_6_io_directory_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_directory_bits_hit; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_directory_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_status_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_6_io_status_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_status_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_status_bits_blockB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_status_bits_nestB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_status_bits_blockC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_status_bits_nestC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_schedule_ready; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_schedule_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_schedule_bits_a_valid; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_6_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_schedule_bits_a_bits_set; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_schedule_bits_a_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_schedule_bits_a_bits_block; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_schedule_bits_b_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_schedule_bits_b_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_6_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_schedule_bits_b_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_schedule_bits_b_bits_clients; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_schedule_bits_c_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_schedule_bits_c_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_schedule_bits_c_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_6_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_schedule_bits_c_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_schedule_bits_c_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_schedule_bits_c_bits_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_schedule_bits_d_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_schedule_bits_d_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_schedule_bits_d_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_schedule_bits_d_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_schedule_bits_d_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_schedule_bits_d_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_schedule_bits_d_bits_source; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_6_io_schedule_bits_d_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_6_io_schedule_bits_d_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_schedule_bits_d_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_schedule_bits_d_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_schedule_bits_d_bits_bad; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_schedule_bits_e_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_schedule_bits_e_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_schedule_bits_x_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_schedule_bits_dir_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_schedule_bits_dir_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_schedule_bits_dir_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_6_io_schedule_bits_dir_bits_data_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_schedule_bits_dir_bits_data_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_6_io_schedule_bits_dir_bits_data_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_schedule_bits_reload; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_sinkc_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_sinkc_bits_last; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_6_io_sinkc_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_sinkc_bits_source; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_sinkc_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_sinkc_bits_data; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_sinkd_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_sinkd_bits_last; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_sinkd_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_sinkd_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_sinkd_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_sinkd_bits_denied; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_sinke_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_6_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_6_io_nestedwb_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_nestedwb_b_toN; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_nestedwb_b_toB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_nestedwb_b_clr_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_6_io_nestedwb_c_set_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_clock; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_reset; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_allocate_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_allocate_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_allocate_bits_prio_1; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_allocate_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_allocate_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_allocate_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_allocate_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_allocate_bits_source; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_7_io_allocate_bits_tag; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_7_io_allocate_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_7_io_allocate_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_allocate_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_allocate_bits_repeat; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_directory_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_directory_bits_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_7_io_directory_bits_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_directory_bits_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_7_io_directory_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_directory_bits_hit; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_directory_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_status_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_7_io_status_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_status_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_status_bits_blockB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_status_bits_nestB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_status_bits_blockC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_status_bits_nestC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_schedule_ready; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_schedule_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_schedule_bits_a_valid; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_7_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_schedule_bits_a_bits_set; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_schedule_bits_a_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_schedule_bits_a_bits_block; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_schedule_bits_b_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_schedule_bits_b_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_7_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_schedule_bits_b_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_schedule_bits_b_bits_clients; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_schedule_bits_c_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_schedule_bits_c_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_schedule_bits_c_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_7_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_schedule_bits_c_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_schedule_bits_c_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_schedule_bits_c_bits_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_schedule_bits_d_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_schedule_bits_d_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_schedule_bits_d_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_schedule_bits_d_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_schedule_bits_d_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_schedule_bits_d_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_schedule_bits_d_bits_source; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_7_io_schedule_bits_d_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_7_io_schedule_bits_d_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_schedule_bits_d_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_schedule_bits_d_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_schedule_bits_d_bits_bad; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_schedule_bits_e_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_schedule_bits_e_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_schedule_bits_x_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_schedule_bits_dir_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_schedule_bits_dir_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_schedule_bits_dir_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_7_io_schedule_bits_dir_bits_data_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_schedule_bits_dir_bits_data_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_7_io_schedule_bits_dir_bits_data_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_schedule_bits_reload; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_sinkc_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_sinkc_bits_last; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_7_io_sinkc_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_sinkc_bits_source; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_sinkc_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_sinkc_bits_data; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_sinkd_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_sinkd_bits_last; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_sinkd_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_sinkd_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_sinkd_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_sinkd_bits_denied; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_sinke_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_7_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_7_io_nestedwb_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_nestedwb_b_toN; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_nestedwb_b_toB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_nestedwb_b_clr_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_7_io_nestedwb_c_set_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_clock; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_reset; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_allocate_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_allocate_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_allocate_bits_prio_1; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_allocate_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_allocate_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_allocate_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_allocate_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_allocate_bits_source; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_8_io_allocate_bits_tag; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_8_io_allocate_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_8_io_allocate_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_allocate_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_allocate_bits_repeat; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_directory_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_directory_bits_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_8_io_directory_bits_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_directory_bits_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_8_io_directory_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_directory_bits_hit; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_directory_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_status_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_8_io_status_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_status_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_status_bits_blockB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_status_bits_nestB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_status_bits_blockC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_status_bits_nestC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_schedule_ready; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_schedule_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_schedule_bits_a_valid; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_8_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_schedule_bits_a_bits_set; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_schedule_bits_a_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_schedule_bits_a_bits_block; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_schedule_bits_b_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_schedule_bits_b_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_8_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_schedule_bits_b_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_schedule_bits_b_bits_clients; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_schedule_bits_c_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_schedule_bits_c_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_schedule_bits_c_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_8_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_schedule_bits_c_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_schedule_bits_c_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_schedule_bits_c_bits_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_schedule_bits_d_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_schedule_bits_d_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_schedule_bits_d_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_schedule_bits_d_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_schedule_bits_d_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_schedule_bits_d_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_schedule_bits_d_bits_source; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_8_io_schedule_bits_d_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_8_io_schedule_bits_d_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_schedule_bits_d_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_schedule_bits_d_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_schedule_bits_d_bits_bad; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_schedule_bits_e_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_schedule_bits_e_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_schedule_bits_x_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_schedule_bits_dir_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_schedule_bits_dir_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_schedule_bits_dir_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_8_io_schedule_bits_dir_bits_data_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_schedule_bits_dir_bits_data_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_8_io_schedule_bits_dir_bits_data_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_schedule_bits_reload; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_sinkc_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_sinkc_bits_last; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_8_io_sinkc_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_sinkc_bits_source; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_sinkc_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_sinkc_bits_data; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_sinkd_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_sinkd_bits_last; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_sinkd_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_sinkd_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_sinkd_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_sinkd_bits_denied; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_sinke_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_8_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_8_io_nestedwb_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_nestedwb_b_toN; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_nestedwb_b_toB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_nestedwb_b_clr_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_8_io_nestedwb_c_set_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_clock; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_reset; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_allocate_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_allocate_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_allocate_bits_prio_1; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_allocate_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_allocate_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_allocate_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_allocate_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_allocate_bits_source; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_9_io_allocate_bits_tag; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_9_io_allocate_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_9_io_allocate_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_allocate_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_allocate_bits_repeat; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_directory_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_directory_bits_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_9_io_directory_bits_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_directory_bits_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_9_io_directory_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_directory_bits_hit; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_directory_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_status_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_9_io_status_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_status_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_status_bits_blockB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_status_bits_nestB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_status_bits_blockC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_status_bits_nestC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_schedule_ready; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_schedule_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_schedule_bits_a_valid; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_9_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_schedule_bits_a_bits_set; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_schedule_bits_a_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_schedule_bits_a_bits_block; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_schedule_bits_b_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_schedule_bits_b_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_9_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_schedule_bits_b_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_schedule_bits_b_bits_clients; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_schedule_bits_c_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_schedule_bits_c_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_schedule_bits_c_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_9_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_schedule_bits_c_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_schedule_bits_c_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_schedule_bits_c_bits_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_schedule_bits_d_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_schedule_bits_d_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_schedule_bits_d_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_schedule_bits_d_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_schedule_bits_d_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_schedule_bits_d_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_schedule_bits_d_bits_source; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_9_io_schedule_bits_d_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_9_io_schedule_bits_d_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_schedule_bits_d_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_schedule_bits_d_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_schedule_bits_d_bits_bad; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_schedule_bits_e_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_schedule_bits_e_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_schedule_bits_x_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_schedule_bits_dir_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_schedule_bits_dir_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_schedule_bits_dir_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_9_io_schedule_bits_dir_bits_data_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_schedule_bits_dir_bits_data_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_9_io_schedule_bits_dir_bits_data_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_schedule_bits_reload; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_sinkc_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_sinkc_bits_last; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_9_io_sinkc_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_sinkc_bits_source; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_sinkc_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_sinkc_bits_data; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_sinkd_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_sinkd_bits_last; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_sinkd_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_sinkd_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_sinkd_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_sinkd_bits_denied; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_sinke_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_9_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_9_io_nestedwb_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_nestedwb_b_toN; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_nestedwb_b_toB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_nestedwb_b_clr_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_9_io_nestedwb_c_set_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_clock; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_reset; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_allocate_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_allocate_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_allocate_bits_prio_1; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_allocate_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_allocate_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_allocate_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_allocate_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_allocate_bits_source; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_10_io_allocate_bits_tag; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_10_io_allocate_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_10_io_allocate_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_allocate_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_allocate_bits_repeat; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_directory_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_directory_bits_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_10_io_directory_bits_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_directory_bits_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_10_io_directory_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_directory_bits_hit; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_directory_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_status_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_10_io_status_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_status_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_status_bits_blockB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_status_bits_nestB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_status_bits_blockC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_status_bits_nestC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_schedule_ready; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_schedule_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_schedule_bits_a_valid; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_10_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_schedule_bits_a_bits_set; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_schedule_bits_a_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_schedule_bits_a_bits_block; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_schedule_bits_b_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_schedule_bits_b_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_10_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_schedule_bits_b_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_schedule_bits_b_bits_clients; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_schedule_bits_c_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_schedule_bits_c_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_schedule_bits_c_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_10_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_schedule_bits_c_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_schedule_bits_c_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_schedule_bits_c_bits_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_schedule_bits_d_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_schedule_bits_d_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_schedule_bits_d_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_schedule_bits_d_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_schedule_bits_d_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_schedule_bits_d_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_schedule_bits_d_bits_source; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_10_io_schedule_bits_d_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_10_io_schedule_bits_d_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_schedule_bits_d_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_schedule_bits_d_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_schedule_bits_d_bits_bad; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_schedule_bits_e_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_schedule_bits_e_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_schedule_bits_x_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_schedule_bits_dir_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_schedule_bits_dir_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_schedule_bits_dir_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_10_io_schedule_bits_dir_bits_data_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_schedule_bits_dir_bits_data_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_10_io_schedule_bits_dir_bits_data_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_schedule_bits_reload; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_sinkc_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_sinkc_bits_last; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_10_io_sinkc_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_sinkc_bits_source; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_sinkc_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_sinkc_bits_data; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_sinkd_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_sinkd_bits_last; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_sinkd_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_sinkd_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_sinkd_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_sinkd_bits_denied; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_sinke_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_10_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_10_io_nestedwb_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_nestedwb_b_toN; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_nestedwb_b_toB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_nestedwb_b_clr_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_10_io_nestedwb_c_set_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_clock; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_reset; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_allocate_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_allocate_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_allocate_bits_prio_1; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_allocate_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_allocate_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_allocate_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_allocate_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_allocate_bits_source; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_11_io_allocate_bits_tag; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_11_io_allocate_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_11_io_allocate_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_allocate_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_allocate_bits_repeat; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_directory_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_directory_bits_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_11_io_directory_bits_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_directory_bits_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_11_io_directory_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_directory_bits_hit; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_directory_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_status_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_11_io_status_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_status_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_status_bits_blockB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_status_bits_nestB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_status_bits_blockC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_status_bits_nestC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_schedule_ready; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_schedule_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_schedule_bits_a_valid; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_11_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_schedule_bits_a_bits_set; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_schedule_bits_a_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_schedule_bits_a_bits_block; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_schedule_bits_b_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_schedule_bits_b_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_11_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_schedule_bits_b_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_schedule_bits_b_bits_clients; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_schedule_bits_c_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_schedule_bits_c_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_schedule_bits_c_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_11_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_schedule_bits_c_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_schedule_bits_c_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_schedule_bits_c_bits_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_schedule_bits_d_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_schedule_bits_d_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_schedule_bits_d_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_schedule_bits_d_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_schedule_bits_d_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_schedule_bits_d_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_schedule_bits_d_bits_source; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_11_io_schedule_bits_d_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_11_io_schedule_bits_d_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_schedule_bits_d_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_schedule_bits_d_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_schedule_bits_d_bits_bad; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_schedule_bits_e_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_schedule_bits_e_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_schedule_bits_x_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_schedule_bits_dir_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_schedule_bits_dir_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_schedule_bits_dir_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_11_io_schedule_bits_dir_bits_data_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_schedule_bits_dir_bits_data_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_11_io_schedule_bits_dir_bits_data_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_schedule_bits_reload; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_sinkc_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_sinkc_bits_last; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_11_io_sinkc_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_sinkc_bits_source; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_sinkc_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_sinkc_bits_data; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_sinkd_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_sinkd_bits_last; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_sinkd_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_sinkd_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_sinkd_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_sinkd_bits_denied; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_sinke_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_11_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_11_io_nestedwb_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_nestedwb_b_toN; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_nestedwb_b_toB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_nestedwb_b_clr_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_11_io_nestedwb_c_set_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_clock; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_reset; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_allocate_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_allocate_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_allocate_bits_prio_1; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_allocate_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_allocate_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_allocate_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_allocate_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_allocate_bits_source; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_12_io_allocate_bits_tag; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_12_io_allocate_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_12_io_allocate_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_allocate_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_allocate_bits_repeat; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_directory_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_directory_bits_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_12_io_directory_bits_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_directory_bits_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_12_io_directory_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_directory_bits_hit; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_directory_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_status_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_12_io_status_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_status_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_status_bits_blockB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_status_bits_nestB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_status_bits_blockC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_status_bits_nestC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_schedule_ready; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_schedule_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_schedule_bits_a_valid; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_12_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_schedule_bits_a_bits_set; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_schedule_bits_a_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_schedule_bits_a_bits_block; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_schedule_bits_b_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_schedule_bits_b_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_12_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_schedule_bits_b_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_schedule_bits_b_bits_clients; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_schedule_bits_c_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_schedule_bits_c_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_schedule_bits_c_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_12_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_schedule_bits_c_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_schedule_bits_c_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_schedule_bits_c_bits_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_schedule_bits_d_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_schedule_bits_d_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_schedule_bits_d_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_schedule_bits_d_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_schedule_bits_d_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_schedule_bits_d_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_schedule_bits_d_bits_source; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_12_io_schedule_bits_d_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_12_io_schedule_bits_d_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_schedule_bits_d_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_schedule_bits_d_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_schedule_bits_d_bits_bad; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_schedule_bits_e_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_schedule_bits_e_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_schedule_bits_x_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_schedule_bits_dir_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_schedule_bits_dir_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_schedule_bits_dir_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_12_io_schedule_bits_dir_bits_data_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_schedule_bits_dir_bits_data_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_12_io_schedule_bits_dir_bits_data_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_schedule_bits_reload; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_sinkc_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_sinkc_bits_last; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_12_io_sinkc_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_sinkc_bits_source; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_sinkc_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_sinkc_bits_data; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_sinkd_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_sinkd_bits_last; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_sinkd_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_sinkd_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_sinkd_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_sinkd_bits_denied; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_sinke_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_12_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_12_io_nestedwb_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_nestedwb_b_toN; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_nestedwb_b_toB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_nestedwb_b_clr_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_12_io_nestedwb_c_set_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_clock; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_reset; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_allocate_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_allocate_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_allocate_bits_prio_1; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_allocate_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_allocate_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_allocate_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_allocate_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_allocate_bits_source; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_13_io_allocate_bits_tag; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_13_io_allocate_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_13_io_allocate_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_allocate_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_allocate_bits_repeat; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_directory_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_directory_bits_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_13_io_directory_bits_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_directory_bits_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_13_io_directory_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_directory_bits_hit; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_directory_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_status_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_13_io_status_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_status_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_status_bits_blockB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_status_bits_nestB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_status_bits_blockC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_status_bits_nestC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_schedule_ready; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_schedule_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_schedule_bits_a_valid; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_13_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_schedule_bits_a_bits_set; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_schedule_bits_a_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_schedule_bits_a_bits_block; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_schedule_bits_b_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_schedule_bits_b_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_13_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_schedule_bits_b_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_schedule_bits_b_bits_clients; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_schedule_bits_c_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_schedule_bits_c_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_schedule_bits_c_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_13_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_schedule_bits_c_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_schedule_bits_c_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_schedule_bits_c_bits_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_schedule_bits_d_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_schedule_bits_d_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_schedule_bits_d_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_schedule_bits_d_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_schedule_bits_d_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_schedule_bits_d_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_schedule_bits_d_bits_source; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_13_io_schedule_bits_d_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_13_io_schedule_bits_d_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_schedule_bits_d_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_schedule_bits_d_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_schedule_bits_d_bits_bad; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_schedule_bits_e_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_schedule_bits_e_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_schedule_bits_x_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_schedule_bits_dir_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_schedule_bits_dir_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_schedule_bits_dir_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_13_io_schedule_bits_dir_bits_data_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_schedule_bits_dir_bits_data_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_13_io_schedule_bits_dir_bits_data_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_schedule_bits_reload; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_sinkc_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_sinkc_bits_last; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_13_io_sinkc_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_sinkc_bits_source; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_sinkc_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_sinkc_bits_data; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_sinkd_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_sinkd_bits_last; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_sinkd_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_sinkd_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_sinkd_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_sinkd_bits_denied; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_sinke_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_13_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_13_io_nestedwb_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_nestedwb_b_toN; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_nestedwb_b_toB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_nestedwb_b_clr_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_13_io_nestedwb_c_set_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_clock; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_reset; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_allocate_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_allocate_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_allocate_bits_prio_1; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_allocate_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_allocate_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_allocate_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_allocate_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_allocate_bits_source; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_14_io_allocate_bits_tag; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_14_io_allocate_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_14_io_allocate_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_allocate_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_allocate_bits_repeat; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_directory_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_directory_bits_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_14_io_directory_bits_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_directory_bits_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_14_io_directory_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_directory_bits_hit; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_directory_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_status_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_14_io_status_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_status_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_status_bits_blockB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_status_bits_nestB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_status_bits_blockC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_status_bits_nestC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_schedule_ready; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_schedule_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_schedule_bits_a_valid; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_14_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_schedule_bits_a_bits_set; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_schedule_bits_a_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_schedule_bits_a_bits_block; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_schedule_bits_b_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_schedule_bits_b_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_14_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_schedule_bits_b_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_schedule_bits_b_bits_clients; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_schedule_bits_c_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_schedule_bits_c_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_schedule_bits_c_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_14_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_schedule_bits_c_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_schedule_bits_c_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_schedule_bits_c_bits_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_schedule_bits_d_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_schedule_bits_d_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_schedule_bits_d_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_schedule_bits_d_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_schedule_bits_d_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_schedule_bits_d_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_schedule_bits_d_bits_source; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_14_io_schedule_bits_d_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_14_io_schedule_bits_d_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_schedule_bits_d_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_schedule_bits_d_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_schedule_bits_d_bits_bad; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_schedule_bits_e_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_schedule_bits_e_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_schedule_bits_x_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_schedule_bits_dir_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_schedule_bits_dir_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_schedule_bits_dir_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_14_io_schedule_bits_dir_bits_data_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_schedule_bits_dir_bits_data_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_14_io_schedule_bits_dir_bits_data_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_schedule_bits_reload; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_sinkc_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_sinkc_bits_last; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_14_io_sinkc_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_sinkc_bits_source; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_sinkc_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_sinkc_bits_data; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_sinkd_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_sinkd_bits_last; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_sinkd_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_sinkd_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_sinkd_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_sinkd_bits_denied; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_sinke_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_14_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_14_io_nestedwb_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_nestedwb_b_toN; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_nestedwb_b_toB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_nestedwb_b_clr_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_14_io_nestedwb_c_set_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_clock; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_reset; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_allocate_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_allocate_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_allocate_bits_prio_1; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_allocate_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_allocate_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_allocate_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_allocate_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_allocate_bits_source; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_15_io_allocate_bits_tag; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_15_io_allocate_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_15_io_allocate_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_allocate_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_allocate_bits_repeat; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_directory_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_directory_bits_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_15_io_directory_bits_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_directory_bits_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_15_io_directory_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_directory_bits_hit; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_directory_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_status_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_15_io_status_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_status_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_status_bits_blockB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_status_bits_nestB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_status_bits_blockC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_status_bits_nestC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_schedule_ready; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_schedule_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_schedule_bits_a_valid; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_15_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_schedule_bits_a_bits_set; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_schedule_bits_a_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_schedule_bits_a_bits_block; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_schedule_bits_b_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_schedule_bits_b_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_15_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_schedule_bits_b_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_schedule_bits_b_bits_clients; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_schedule_bits_c_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_schedule_bits_c_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_schedule_bits_c_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_15_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_schedule_bits_c_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_schedule_bits_c_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_schedule_bits_c_bits_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_schedule_bits_d_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_schedule_bits_d_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_schedule_bits_d_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_schedule_bits_d_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_schedule_bits_d_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_schedule_bits_d_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_schedule_bits_d_bits_source; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_15_io_schedule_bits_d_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_15_io_schedule_bits_d_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_schedule_bits_d_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_schedule_bits_d_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_schedule_bits_d_bits_bad; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_schedule_bits_e_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_schedule_bits_e_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_schedule_bits_x_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_schedule_bits_dir_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_schedule_bits_dir_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_schedule_bits_dir_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_15_io_schedule_bits_dir_bits_data_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_schedule_bits_dir_bits_data_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_15_io_schedule_bits_dir_bits_data_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_schedule_bits_reload; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_sinkc_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_sinkc_bits_last; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_15_io_sinkc_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_sinkc_bits_source; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_sinkc_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_sinkc_bits_data; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_sinkd_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_sinkd_bits_last; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_sinkd_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_sinkd_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_sinkd_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_sinkd_bits_denied; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_sinke_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_15_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_15_io_nestedwb_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_nestedwb_b_toN; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_nestedwb_b_toB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_nestedwb_b_clr_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_15_io_nestedwb_c_set_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_clock; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_reset; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_allocate_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_allocate_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_allocate_bits_prio_1; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_allocate_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_allocate_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_allocate_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_allocate_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_allocate_bits_source; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_16_io_allocate_bits_tag; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_16_io_allocate_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_16_io_allocate_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_allocate_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_allocate_bits_repeat; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_directory_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_directory_bits_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_16_io_directory_bits_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_directory_bits_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_16_io_directory_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_directory_bits_hit; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_directory_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_status_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_16_io_status_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_status_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_status_bits_blockB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_status_bits_nestB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_status_bits_blockC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_status_bits_nestC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_schedule_ready; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_schedule_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_schedule_bits_a_valid; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_16_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_schedule_bits_a_bits_set; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_schedule_bits_a_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_schedule_bits_a_bits_block; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_schedule_bits_b_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_schedule_bits_b_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_16_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_schedule_bits_b_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_schedule_bits_b_bits_clients; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_schedule_bits_c_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_schedule_bits_c_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_schedule_bits_c_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_16_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_schedule_bits_c_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_schedule_bits_c_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_schedule_bits_c_bits_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_schedule_bits_d_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_schedule_bits_d_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_schedule_bits_d_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_schedule_bits_d_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_schedule_bits_d_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_schedule_bits_d_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_schedule_bits_d_bits_source; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_16_io_schedule_bits_d_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_16_io_schedule_bits_d_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_schedule_bits_d_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_schedule_bits_d_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_schedule_bits_d_bits_bad; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_schedule_bits_e_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_schedule_bits_e_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_schedule_bits_x_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_schedule_bits_dir_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_schedule_bits_dir_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_schedule_bits_dir_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_16_io_schedule_bits_dir_bits_data_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_schedule_bits_dir_bits_data_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_16_io_schedule_bits_dir_bits_data_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_schedule_bits_reload; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_sinkc_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_sinkc_bits_last; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_16_io_sinkc_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_sinkc_bits_source; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_sinkc_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_sinkc_bits_data; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_sinkd_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_sinkd_bits_last; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_sinkd_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_sinkd_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_sinkd_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_sinkd_bits_denied; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_sinke_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_16_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_16_io_nestedwb_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_nestedwb_b_toN; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_nestedwb_b_toB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_nestedwb_b_clr_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_16_io_nestedwb_c_set_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_clock; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_reset; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_allocate_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_allocate_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_allocate_bits_prio_1; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_allocate_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_allocate_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_allocate_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_allocate_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_allocate_bits_source; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_17_io_allocate_bits_tag; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_17_io_allocate_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_17_io_allocate_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_allocate_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_allocate_bits_repeat; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_directory_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_directory_bits_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_17_io_directory_bits_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_directory_bits_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_17_io_directory_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_directory_bits_hit; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_directory_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_status_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_17_io_status_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_status_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_status_bits_blockB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_status_bits_nestB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_status_bits_blockC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_status_bits_nestC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_schedule_ready; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_schedule_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_schedule_bits_a_valid; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_17_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_schedule_bits_a_bits_set; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_schedule_bits_a_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_schedule_bits_a_bits_block; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_schedule_bits_b_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_schedule_bits_b_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_17_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_schedule_bits_b_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_schedule_bits_b_bits_clients; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_schedule_bits_c_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_schedule_bits_c_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_schedule_bits_c_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_17_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_schedule_bits_c_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_schedule_bits_c_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_schedule_bits_c_bits_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_schedule_bits_d_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_schedule_bits_d_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_schedule_bits_d_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_schedule_bits_d_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_schedule_bits_d_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_schedule_bits_d_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_schedule_bits_d_bits_source; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_17_io_schedule_bits_d_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_17_io_schedule_bits_d_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_schedule_bits_d_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_schedule_bits_d_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_schedule_bits_d_bits_bad; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_schedule_bits_e_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_schedule_bits_e_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_schedule_bits_x_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_schedule_bits_dir_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_schedule_bits_dir_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_schedule_bits_dir_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_17_io_schedule_bits_dir_bits_data_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_schedule_bits_dir_bits_data_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_17_io_schedule_bits_dir_bits_data_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_schedule_bits_reload; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_sinkc_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_sinkc_bits_last; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_17_io_sinkc_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_sinkc_bits_source; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_sinkc_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_sinkc_bits_data; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_sinkd_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_sinkd_bits_last; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_sinkd_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_sinkd_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_sinkd_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_sinkd_bits_denied; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_sinke_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_17_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_17_io_nestedwb_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_nestedwb_b_toN; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_nestedwb_b_toB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_nestedwb_b_clr_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_17_io_nestedwb_c_set_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_clock; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_reset; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_allocate_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_allocate_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_allocate_bits_prio_1; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_allocate_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_allocate_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_allocate_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_allocate_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_allocate_bits_source; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_18_io_allocate_bits_tag; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_18_io_allocate_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_18_io_allocate_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_allocate_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_allocate_bits_repeat; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_directory_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_directory_bits_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_18_io_directory_bits_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_directory_bits_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_18_io_directory_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_directory_bits_hit; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_directory_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_status_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_18_io_status_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_status_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_status_bits_blockB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_status_bits_nestB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_status_bits_blockC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_status_bits_nestC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_schedule_ready; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_schedule_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_schedule_bits_a_valid; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_18_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_schedule_bits_a_bits_set; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_schedule_bits_a_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_schedule_bits_a_bits_block; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_schedule_bits_b_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_schedule_bits_b_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_18_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_schedule_bits_b_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_schedule_bits_b_bits_clients; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_schedule_bits_c_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_schedule_bits_c_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_schedule_bits_c_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_18_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_schedule_bits_c_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_schedule_bits_c_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_schedule_bits_c_bits_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_schedule_bits_d_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_schedule_bits_d_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_schedule_bits_d_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_schedule_bits_d_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_schedule_bits_d_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_schedule_bits_d_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_schedule_bits_d_bits_source; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_18_io_schedule_bits_d_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_18_io_schedule_bits_d_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_schedule_bits_d_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_schedule_bits_d_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_schedule_bits_d_bits_bad; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_schedule_bits_e_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_schedule_bits_e_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_schedule_bits_x_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_schedule_bits_dir_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_schedule_bits_dir_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_schedule_bits_dir_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_18_io_schedule_bits_dir_bits_data_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_schedule_bits_dir_bits_data_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_18_io_schedule_bits_dir_bits_data_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_schedule_bits_reload; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_sinkc_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_sinkc_bits_last; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_18_io_sinkc_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_sinkc_bits_source; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_sinkc_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_sinkc_bits_data; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_sinkd_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_sinkd_bits_last; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_sinkd_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_sinkd_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_sinkd_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_sinkd_bits_denied; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_sinke_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_18_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_18_io_nestedwb_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_nestedwb_b_toN; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_nestedwb_b_toB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_nestedwb_b_clr_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_18_io_nestedwb_c_set_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_clock; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_reset; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_allocate_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_allocate_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_allocate_bits_prio_1; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_allocate_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_allocate_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_allocate_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_allocate_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_allocate_bits_source; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_19_io_allocate_bits_tag; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_19_io_allocate_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_19_io_allocate_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_allocate_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_allocate_bits_repeat; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_directory_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_directory_bits_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_19_io_directory_bits_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_directory_bits_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_19_io_directory_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_directory_bits_hit; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_directory_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_status_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_19_io_status_bits_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_status_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_status_bits_blockB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_status_bits_nestB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_status_bits_blockC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_status_bits_nestC; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_schedule_ready; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_schedule_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_schedule_bits_a_valid; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_19_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_schedule_bits_a_bits_set; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_schedule_bits_a_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_schedule_bits_a_bits_block; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_schedule_bits_b_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_schedule_bits_b_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_19_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_schedule_bits_b_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_schedule_bits_b_bits_clients; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_schedule_bits_c_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_schedule_bits_c_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_schedule_bits_c_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_19_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_schedule_bits_c_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_schedule_bits_c_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_schedule_bits_c_bits_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_schedule_bits_d_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_schedule_bits_d_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_schedule_bits_d_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_schedule_bits_d_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_schedule_bits_d_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_schedule_bits_d_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_schedule_bits_d_bits_source; // @[Scheduler.scala 69:46]
  wire [3:0] abc_mshrs_19_io_schedule_bits_d_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] abc_mshrs_19_io_schedule_bits_d_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_schedule_bits_d_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_schedule_bits_d_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_schedule_bits_d_bits_bad; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_schedule_bits_e_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_schedule_bits_e_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_schedule_bits_x_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_schedule_bits_dir_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_schedule_bits_dir_bits_set; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_schedule_bits_dir_bits_way; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] abc_mshrs_19_io_schedule_bits_dir_bits_data_state; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_schedule_bits_dir_bits_data_clients; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_19_io_schedule_bits_dir_bits_data_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_schedule_bits_reload; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_sinkc_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_sinkc_bits_last; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_19_io_sinkc_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_sinkc_bits_source; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_sinkc_bits_param; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_sinkc_bits_data; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_sinkd_valid; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_sinkd_bits_last; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_sinkd_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_sinkd_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_sinkd_bits_sink; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_sinkd_bits_denied; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_sinke_valid; // @[Scheduler.scala 69:46]
  wire [2:0] abc_mshrs_19_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [24:0] abc_mshrs_19_io_nestedwb_tag; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_nestedwb_b_toN; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_nestedwb_b_toB; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_nestedwb_b_clr_dirty; // @[Scheduler.scala 69:46]
  wire  abc_mshrs_19_io_nestedwb_c_set_dirty; // @[Scheduler.scala 69:46]
  wire  bc_mshr_clock; // @[Scheduler.scala 69:46]
  wire  bc_mshr_reset; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_allocate_valid; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_allocate_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_allocate_bits_prio_1; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_allocate_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_allocate_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_allocate_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_allocate_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_allocate_bits_source; // @[Scheduler.scala 69:46]
  wire [24:0] bc_mshr_io_allocate_bits_tag; // @[Scheduler.scala 69:46]
  wire [3:0] bc_mshr_io_allocate_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] bc_mshr_io_allocate_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_allocate_bits_set; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_allocate_bits_repeat; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_directory_valid; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_directory_bits_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] bc_mshr_io_directory_bits_state; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_directory_bits_clients; // @[Scheduler.scala 69:46]
  wire [24:0] bc_mshr_io_directory_bits_tag; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_directory_bits_hit; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_directory_bits_way; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_status_valid; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [24:0] bc_mshr_io_status_bits_tag; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_status_bits_way; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_status_bits_blockB; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_status_bits_nestB; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_status_bits_blockC; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_status_bits_nestC; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_schedule_ready; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_schedule_valid; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_schedule_bits_a_valid; // @[Scheduler.scala 69:46]
  wire [24:0] bc_mshr_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_schedule_bits_a_bits_set; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_schedule_bits_a_bits_param; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_schedule_bits_a_bits_block; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_schedule_bits_b_valid; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_schedule_bits_b_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] bc_mshr_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_schedule_bits_b_bits_set; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_schedule_bits_b_bits_clients; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_schedule_bits_c_valid; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_schedule_bits_c_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_schedule_bits_c_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] bc_mshr_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_schedule_bits_c_bits_set; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_schedule_bits_c_bits_way; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_schedule_bits_c_bits_dirty; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_schedule_bits_d_valid; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_schedule_bits_d_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_schedule_bits_d_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_schedule_bits_d_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_schedule_bits_d_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_schedule_bits_d_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_schedule_bits_d_bits_source; // @[Scheduler.scala 69:46]
  wire [3:0] bc_mshr_io_schedule_bits_d_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] bc_mshr_io_schedule_bits_d_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_schedule_bits_d_bits_set; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_schedule_bits_d_bits_way; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_schedule_bits_d_bits_bad; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_schedule_bits_e_valid; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_schedule_bits_e_bits_sink; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_schedule_bits_x_valid; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_schedule_bits_dir_bits_set; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_schedule_bits_dir_bits_way; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] bc_mshr_io_schedule_bits_dir_bits_data_state; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_schedule_bits_dir_bits_data_clients; // @[Scheduler.scala 69:46]
  wire [24:0] bc_mshr_io_schedule_bits_dir_bits_data_tag; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_schedule_bits_reload; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_sinkc_valid; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_sinkc_bits_last; // @[Scheduler.scala 69:46]
  wire [24:0] bc_mshr_io_sinkc_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_sinkc_bits_source; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_sinkc_bits_param; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_sinkc_bits_data; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_sinkd_valid; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_sinkd_bits_last; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_sinkd_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_sinkd_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_sinkd_bits_sink; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_sinkd_bits_denied; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_sinke_valid; // @[Scheduler.scala 69:46]
  wire [2:0] bc_mshr_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [24:0] bc_mshr_io_nestedwb_tag; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_nestedwb_b_toN; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_nestedwb_b_toB; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_nestedwb_b_clr_dirty; // @[Scheduler.scala 69:46]
  wire  bc_mshr_io_nestedwb_c_set_dirty; // @[Scheduler.scala 69:46]
  wire  c_mshr_clock; // @[Scheduler.scala 69:46]
  wire  c_mshr_reset; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_allocate_valid; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_allocate_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_allocate_bits_prio_1; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_allocate_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_allocate_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_allocate_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_allocate_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_allocate_bits_source; // @[Scheduler.scala 69:46]
  wire [24:0] c_mshr_io_allocate_bits_tag; // @[Scheduler.scala 69:46]
  wire [3:0] c_mshr_io_allocate_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] c_mshr_io_allocate_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_allocate_bits_set; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_allocate_bits_repeat; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_directory_valid; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_directory_bits_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] c_mshr_io_directory_bits_state; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_directory_bits_clients; // @[Scheduler.scala 69:46]
  wire [24:0] c_mshr_io_directory_bits_tag; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_directory_bits_hit; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_directory_bits_way; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_status_valid; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [24:0] c_mshr_io_status_bits_tag; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_status_bits_way; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_status_bits_blockB; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_status_bits_nestB; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_status_bits_blockC; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_status_bits_nestC; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_schedule_ready; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_schedule_valid; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_schedule_bits_a_valid; // @[Scheduler.scala 69:46]
  wire [24:0] c_mshr_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_schedule_bits_a_bits_set; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_schedule_bits_a_bits_param; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_schedule_bits_a_bits_block; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_schedule_bits_b_valid; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_schedule_bits_b_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] c_mshr_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_schedule_bits_b_bits_set; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_schedule_bits_b_bits_clients; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_schedule_bits_c_valid; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_schedule_bits_c_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_schedule_bits_c_bits_param; // @[Scheduler.scala 69:46]
  wire [24:0] c_mshr_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_schedule_bits_c_bits_set; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_schedule_bits_c_bits_way; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_schedule_bits_c_bits_dirty; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_schedule_bits_d_valid; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_schedule_bits_d_bits_prio_0; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_schedule_bits_d_bits_prio_2; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_schedule_bits_d_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_schedule_bits_d_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_schedule_bits_d_bits_size; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_schedule_bits_d_bits_source; // @[Scheduler.scala 69:46]
  wire [3:0] c_mshr_io_schedule_bits_d_bits_offset; // @[Scheduler.scala 69:46]
  wire [5:0] c_mshr_io_schedule_bits_d_bits_put; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_schedule_bits_d_bits_set; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_schedule_bits_d_bits_way; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_schedule_bits_d_bits_bad; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_schedule_bits_e_valid; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_schedule_bits_e_bits_sink; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_schedule_bits_x_valid; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_schedule_bits_dir_bits_set; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_schedule_bits_dir_bits_way; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 69:46]
  wire [1:0] c_mshr_io_schedule_bits_dir_bits_data_state; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_schedule_bits_dir_bits_data_clients; // @[Scheduler.scala 69:46]
  wire [24:0] c_mshr_io_schedule_bits_dir_bits_data_tag; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_schedule_bits_reload; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_sinkc_valid; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_sinkc_bits_last; // @[Scheduler.scala 69:46]
  wire [24:0] c_mshr_io_sinkc_bits_tag; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_sinkc_bits_source; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_sinkc_bits_param; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_sinkc_bits_data; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_sinkd_valid; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_sinkd_bits_last; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_sinkd_bits_opcode; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_sinkd_bits_param; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_sinkd_bits_sink; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_sinkd_bits_denied; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_sinke_valid; // @[Scheduler.scala 69:46]
  wire [2:0] c_mshr_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [24:0] c_mshr_io_nestedwb_tag; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_nestedwb_b_toN; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_nestedwb_b_toB; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_nestedwb_b_clr_dirty; // @[Scheduler.scala 69:46]
  wire  c_mshr_io_nestedwb_c_set_dirty; // @[Scheduler.scala 69:46]
  wire  _mshr_stall_abc_T_3 = c_mshr_io_status_valid & abc_mshrs_0_io_status_bits_set == c_mshr_io_status_bits_set; // @[Scheduler.scala 89:30]
  wire  mshr_stall_0 = bc_mshr_io_status_valid & abc_mshrs_0_io_status_bits_set == bc_mshr_io_status_bits_set |
    _mshr_stall_abc_T_3; // @[Scheduler.scala 88:86]
  wire  _mshr_stall_abc_T_7 = c_mshr_io_status_valid & abc_mshrs_1_io_status_bits_set == c_mshr_io_status_bits_set; // @[Scheduler.scala 89:30]
  wire  mshr_stall_1 = bc_mshr_io_status_valid & abc_mshrs_1_io_status_bits_set == bc_mshr_io_status_bits_set |
    _mshr_stall_abc_T_7; // @[Scheduler.scala 88:86]
  wire  _mshr_stall_abc_T_11 = c_mshr_io_status_valid & abc_mshrs_2_io_status_bits_set == c_mshr_io_status_bits_set; // @[Scheduler.scala 89:30]
  wire  mshr_stall_2 = bc_mshr_io_status_valid & abc_mshrs_2_io_status_bits_set == bc_mshr_io_status_bits_set |
    _mshr_stall_abc_T_11; // @[Scheduler.scala 88:86]
  wire  _mshr_stall_abc_T_15 = c_mshr_io_status_valid & abc_mshrs_3_io_status_bits_set == c_mshr_io_status_bits_set; // @[Scheduler.scala 89:30]
  wire  mshr_stall_3 = bc_mshr_io_status_valid & abc_mshrs_3_io_status_bits_set == bc_mshr_io_status_bits_set |
    _mshr_stall_abc_T_15; // @[Scheduler.scala 88:86]
  wire  _mshr_stall_abc_T_19 = c_mshr_io_status_valid & abc_mshrs_4_io_status_bits_set == c_mshr_io_status_bits_set; // @[Scheduler.scala 89:30]
  wire  mshr_stall_4 = bc_mshr_io_status_valid & abc_mshrs_4_io_status_bits_set == bc_mshr_io_status_bits_set |
    _mshr_stall_abc_T_19; // @[Scheduler.scala 88:86]
  wire  _mshr_stall_abc_T_23 = c_mshr_io_status_valid & abc_mshrs_5_io_status_bits_set == c_mshr_io_status_bits_set; // @[Scheduler.scala 89:30]
  wire  mshr_stall_5 = bc_mshr_io_status_valid & abc_mshrs_5_io_status_bits_set == bc_mshr_io_status_bits_set |
    _mshr_stall_abc_T_23; // @[Scheduler.scala 88:86]
  wire  _mshr_stall_abc_T_27 = c_mshr_io_status_valid & abc_mshrs_6_io_status_bits_set == c_mshr_io_status_bits_set; // @[Scheduler.scala 89:30]
  wire  mshr_stall_6 = bc_mshr_io_status_valid & abc_mshrs_6_io_status_bits_set == bc_mshr_io_status_bits_set |
    _mshr_stall_abc_T_27; // @[Scheduler.scala 88:86]
  wire  _mshr_stall_abc_T_31 = c_mshr_io_status_valid & abc_mshrs_7_io_status_bits_set == c_mshr_io_status_bits_set; // @[Scheduler.scala 89:30]
  wire  mshr_stall_7 = bc_mshr_io_status_valid & abc_mshrs_7_io_status_bits_set == bc_mshr_io_status_bits_set |
    _mshr_stall_abc_T_31; // @[Scheduler.scala 88:86]
  wire  _mshr_stall_abc_T_35 = c_mshr_io_status_valid & abc_mshrs_8_io_status_bits_set == c_mshr_io_status_bits_set; // @[Scheduler.scala 89:30]
  wire  mshr_stall_8 = bc_mshr_io_status_valid & abc_mshrs_8_io_status_bits_set == bc_mshr_io_status_bits_set |
    _mshr_stall_abc_T_35; // @[Scheduler.scala 88:86]
  wire  _mshr_stall_abc_T_39 = c_mshr_io_status_valid & abc_mshrs_9_io_status_bits_set == c_mshr_io_status_bits_set; // @[Scheduler.scala 89:30]
  wire  mshr_stall_9 = bc_mshr_io_status_valid & abc_mshrs_9_io_status_bits_set == bc_mshr_io_status_bits_set |
    _mshr_stall_abc_T_39; // @[Scheduler.scala 88:86]
  wire  _mshr_stall_abc_T_43 = c_mshr_io_status_valid & abc_mshrs_10_io_status_bits_set == c_mshr_io_status_bits_set; // @[Scheduler.scala 89:30]
  wire  mshr_stall_10 = bc_mshr_io_status_valid & abc_mshrs_10_io_status_bits_set == bc_mshr_io_status_bits_set |
    _mshr_stall_abc_T_43; // @[Scheduler.scala 88:86]
  wire  _mshr_stall_abc_T_47 = c_mshr_io_status_valid & abc_mshrs_11_io_status_bits_set == c_mshr_io_status_bits_set; // @[Scheduler.scala 89:30]
  wire  mshr_stall_11 = bc_mshr_io_status_valid & abc_mshrs_11_io_status_bits_set == bc_mshr_io_status_bits_set |
    _mshr_stall_abc_T_47; // @[Scheduler.scala 88:86]
  wire  _mshr_stall_abc_T_51 = c_mshr_io_status_valid & abc_mshrs_12_io_status_bits_set == c_mshr_io_status_bits_set; // @[Scheduler.scala 89:30]
  wire  mshr_stall_12 = bc_mshr_io_status_valid & abc_mshrs_12_io_status_bits_set == bc_mshr_io_status_bits_set |
    _mshr_stall_abc_T_51; // @[Scheduler.scala 88:86]
  wire  _mshr_stall_abc_T_55 = c_mshr_io_status_valid & abc_mshrs_13_io_status_bits_set == c_mshr_io_status_bits_set; // @[Scheduler.scala 89:30]
  wire  mshr_stall_13 = bc_mshr_io_status_valid & abc_mshrs_13_io_status_bits_set == bc_mshr_io_status_bits_set |
    _mshr_stall_abc_T_55; // @[Scheduler.scala 88:86]
  wire  _mshr_stall_abc_T_59 = c_mshr_io_status_valid & abc_mshrs_14_io_status_bits_set == c_mshr_io_status_bits_set; // @[Scheduler.scala 89:30]
  wire  mshr_stall_14 = bc_mshr_io_status_valid & abc_mshrs_14_io_status_bits_set == bc_mshr_io_status_bits_set |
    _mshr_stall_abc_T_59; // @[Scheduler.scala 88:86]
  wire  _mshr_stall_abc_T_63 = c_mshr_io_status_valid & abc_mshrs_15_io_status_bits_set == c_mshr_io_status_bits_set; // @[Scheduler.scala 89:30]
  wire  mshr_stall_15 = bc_mshr_io_status_valid & abc_mshrs_15_io_status_bits_set == bc_mshr_io_status_bits_set |
    _mshr_stall_abc_T_63; // @[Scheduler.scala 88:86]
  wire  _mshr_stall_abc_T_67 = c_mshr_io_status_valid & abc_mshrs_16_io_status_bits_set == c_mshr_io_status_bits_set; // @[Scheduler.scala 89:30]
  wire  mshr_stall_16 = bc_mshr_io_status_valid & abc_mshrs_16_io_status_bits_set == bc_mshr_io_status_bits_set |
    _mshr_stall_abc_T_67; // @[Scheduler.scala 88:86]
  wire  _mshr_stall_abc_T_71 = c_mshr_io_status_valid & abc_mshrs_17_io_status_bits_set == c_mshr_io_status_bits_set; // @[Scheduler.scala 89:30]
  wire  mshr_stall_17 = bc_mshr_io_status_valid & abc_mshrs_17_io_status_bits_set == bc_mshr_io_status_bits_set |
    _mshr_stall_abc_T_71; // @[Scheduler.scala 88:86]
  wire  _mshr_stall_abc_T_75 = c_mshr_io_status_valid & abc_mshrs_18_io_status_bits_set == c_mshr_io_status_bits_set; // @[Scheduler.scala 89:30]
  wire  mshr_stall_18 = bc_mshr_io_status_valid & abc_mshrs_18_io_status_bits_set == bc_mshr_io_status_bits_set |
    _mshr_stall_abc_T_75; // @[Scheduler.scala 88:86]
  wire  _mshr_stall_abc_T_79 = c_mshr_io_status_valid & abc_mshrs_19_io_status_bits_set == c_mshr_io_status_bits_set; // @[Scheduler.scala 89:30]
  wire  mshr_stall_19 = bc_mshr_io_status_valid & abc_mshrs_19_io_status_bits_set == bc_mshr_io_status_bits_set |
    _mshr_stall_abc_T_79; // @[Scheduler.scala 88:86]
  wire  mshr_stall_20 = c_mshr_io_status_valid & bc_mshr_io_status_bits_set == c_mshr_io_status_bits_set; // @[Scheduler.scala 92:28]
  wire  _mshr_request_T_3 = sourceA_io_req_ready | ~abc_mshrs_0_io_schedule_bits_a_valid; // @[Scheduler.scala 106:29]
  wire  _mshr_request_T_4 = abc_mshrs_0_io_schedule_valid & ~mshr_stall_0 & _mshr_request_T_3; // @[Scheduler.scala 105:31]
  wire  _mshr_request_T_6 = sourceB_io_req_ready | ~abc_mshrs_0_io_schedule_bits_b_valid; // @[Scheduler.scala 107:29]
  wire  _mshr_request_T_7 = _mshr_request_T_4 & _mshr_request_T_6; // @[Scheduler.scala 106:61]
  wire  _mshr_request_T_9 = sourceC_io_req_ready | ~abc_mshrs_0_io_schedule_bits_c_valid; // @[Scheduler.scala 108:29]
  wire  _mshr_request_T_10 = _mshr_request_T_7 & _mshr_request_T_9; // @[Scheduler.scala 107:61]
  wire  _mshr_request_T_12 = sourceD_io_req_ready | ~abc_mshrs_0_io_schedule_bits_d_valid; // @[Scheduler.scala 109:29]
  wire  _mshr_request_T_13 = _mshr_request_T_10 & _mshr_request_T_12; // @[Scheduler.scala 108:61]
  wire  _mshr_request_T_15 = sourceE_io_req_ready | ~abc_mshrs_0_io_schedule_bits_e_valid; // @[Scheduler.scala 110:29]
  wire  _mshr_request_T_16 = _mshr_request_T_13 & _mshr_request_T_15; // @[Scheduler.scala 109:61]
  wire  _mshr_request_T_21 = directory_io_write_ready | ~abc_mshrs_0_io_schedule_bits_dir_valid; // @[Scheduler.scala 112:33]
  wire  _mshr_request_T_22 = _mshr_request_T_16 & _mshr_request_T_21; // @[Scheduler.scala 111:61]
  wire  _mshr_request_T_26 = sourceA_io_req_ready | ~abc_mshrs_1_io_schedule_bits_a_valid; // @[Scheduler.scala 106:29]
  wire  _mshr_request_T_27 = abc_mshrs_1_io_schedule_valid & ~mshr_stall_1 & _mshr_request_T_26; // @[Scheduler.scala 105:31]
  wire  _mshr_request_T_29 = sourceB_io_req_ready | ~abc_mshrs_1_io_schedule_bits_b_valid; // @[Scheduler.scala 107:29]
  wire  _mshr_request_T_30 = _mshr_request_T_27 & _mshr_request_T_29; // @[Scheduler.scala 106:61]
  wire  _mshr_request_T_32 = sourceC_io_req_ready | ~abc_mshrs_1_io_schedule_bits_c_valid; // @[Scheduler.scala 108:29]
  wire  _mshr_request_T_33 = _mshr_request_T_30 & _mshr_request_T_32; // @[Scheduler.scala 107:61]
  wire  _mshr_request_T_35 = sourceD_io_req_ready | ~abc_mshrs_1_io_schedule_bits_d_valid; // @[Scheduler.scala 109:29]
  wire  _mshr_request_T_36 = _mshr_request_T_33 & _mshr_request_T_35; // @[Scheduler.scala 108:61]
  wire  _mshr_request_T_38 = sourceE_io_req_ready | ~abc_mshrs_1_io_schedule_bits_e_valid; // @[Scheduler.scala 110:29]
  wire  _mshr_request_T_39 = _mshr_request_T_36 & _mshr_request_T_38; // @[Scheduler.scala 109:61]
  wire  _mshr_request_T_44 = directory_io_write_ready | ~abc_mshrs_1_io_schedule_bits_dir_valid; // @[Scheduler.scala 112:33]
  wire  _mshr_request_T_45 = _mshr_request_T_39 & _mshr_request_T_44; // @[Scheduler.scala 111:61]
  wire  _mshr_request_T_49 = sourceA_io_req_ready | ~abc_mshrs_2_io_schedule_bits_a_valid; // @[Scheduler.scala 106:29]
  wire  _mshr_request_T_50 = abc_mshrs_2_io_schedule_valid & ~mshr_stall_2 & _mshr_request_T_49; // @[Scheduler.scala 105:31]
  wire  _mshr_request_T_52 = sourceB_io_req_ready | ~abc_mshrs_2_io_schedule_bits_b_valid; // @[Scheduler.scala 107:29]
  wire  _mshr_request_T_53 = _mshr_request_T_50 & _mshr_request_T_52; // @[Scheduler.scala 106:61]
  wire  _mshr_request_T_55 = sourceC_io_req_ready | ~abc_mshrs_2_io_schedule_bits_c_valid; // @[Scheduler.scala 108:29]
  wire  _mshr_request_T_56 = _mshr_request_T_53 & _mshr_request_T_55; // @[Scheduler.scala 107:61]
  wire  _mshr_request_T_58 = sourceD_io_req_ready | ~abc_mshrs_2_io_schedule_bits_d_valid; // @[Scheduler.scala 109:29]
  wire  _mshr_request_T_59 = _mshr_request_T_56 & _mshr_request_T_58; // @[Scheduler.scala 108:61]
  wire  _mshr_request_T_61 = sourceE_io_req_ready | ~abc_mshrs_2_io_schedule_bits_e_valid; // @[Scheduler.scala 110:29]
  wire  _mshr_request_T_62 = _mshr_request_T_59 & _mshr_request_T_61; // @[Scheduler.scala 109:61]
  wire  _mshr_request_T_67 = directory_io_write_ready | ~abc_mshrs_2_io_schedule_bits_dir_valid; // @[Scheduler.scala 112:33]
  wire  _mshr_request_T_68 = _mshr_request_T_62 & _mshr_request_T_67; // @[Scheduler.scala 111:61]
  wire  _mshr_request_T_72 = sourceA_io_req_ready | ~abc_mshrs_3_io_schedule_bits_a_valid; // @[Scheduler.scala 106:29]
  wire  _mshr_request_T_73 = abc_mshrs_3_io_schedule_valid & ~mshr_stall_3 & _mshr_request_T_72; // @[Scheduler.scala 105:31]
  wire  _mshr_request_T_75 = sourceB_io_req_ready | ~abc_mshrs_3_io_schedule_bits_b_valid; // @[Scheduler.scala 107:29]
  wire  _mshr_request_T_76 = _mshr_request_T_73 & _mshr_request_T_75; // @[Scheduler.scala 106:61]
  wire  _mshr_request_T_78 = sourceC_io_req_ready | ~abc_mshrs_3_io_schedule_bits_c_valid; // @[Scheduler.scala 108:29]
  wire  _mshr_request_T_79 = _mshr_request_T_76 & _mshr_request_T_78; // @[Scheduler.scala 107:61]
  wire  _mshr_request_T_81 = sourceD_io_req_ready | ~abc_mshrs_3_io_schedule_bits_d_valid; // @[Scheduler.scala 109:29]
  wire  _mshr_request_T_82 = _mshr_request_T_79 & _mshr_request_T_81; // @[Scheduler.scala 108:61]
  wire  _mshr_request_T_84 = sourceE_io_req_ready | ~abc_mshrs_3_io_schedule_bits_e_valid; // @[Scheduler.scala 110:29]
  wire  _mshr_request_T_85 = _mshr_request_T_82 & _mshr_request_T_84; // @[Scheduler.scala 109:61]
  wire  _mshr_request_T_90 = directory_io_write_ready | ~abc_mshrs_3_io_schedule_bits_dir_valid; // @[Scheduler.scala 112:33]
  wire  _mshr_request_T_91 = _mshr_request_T_85 & _mshr_request_T_90; // @[Scheduler.scala 111:61]
  wire  _mshr_request_T_95 = sourceA_io_req_ready | ~abc_mshrs_4_io_schedule_bits_a_valid; // @[Scheduler.scala 106:29]
  wire  _mshr_request_T_96 = abc_mshrs_4_io_schedule_valid & ~mshr_stall_4 & _mshr_request_T_95; // @[Scheduler.scala 105:31]
  wire  _mshr_request_T_98 = sourceB_io_req_ready | ~abc_mshrs_4_io_schedule_bits_b_valid; // @[Scheduler.scala 107:29]
  wire  _mshr_request_T_99 = _mshr_request_T_96 & _mshr_request_T_98; // @[Scheduler.scala 106:61]
  wire  _mshr_request_T_101 = sourceC_io_req_ready | ~abc_mshrs_4_io_schedule_bits_c_valid; // @[Scheduler.scala 108:29]
  wire  _mshr_request_T_102 = _mshr_request_T_99 & _mshr_request_T_101; // @[Scheduler.scala 107:61]
  wire  _mshr_request_T_104 = sourceD_io_req_ready | ~abc_mshrs_4_io_schedule_bits_d_valid; // @[Scheduler.scala 109:29]
  wire  _mshr_request_T_105 = _mshr_request_T_102 & _mshr_request_T_104; // @[Scheduler.scala 108:61]
  wire  _mshr_request_T_107 = sourceE_io_req_ready | ~abc_mshrs_4_io_schedule_bits_e_valid; // @[Scheduler.scala 110:29]
  wire  _mshr_request_T_108 = _mshr_request_T_105 & _mshr_request_T_107; // @[Scheduler.scala 109:61]
  wire  _mshr_request_T_113 = directory_io_write_ready | ~abc_mshrs_4_io_schedule_bits_dir_valid; // @[Scheduler.scala 112:33]
  wire  _mshr_request_T_114 = _mshr_request_T_108 & _mshr_request_T_113; // @[Scheduler.scala 111:61]
  wire  _mshr_request_T_118 = sourceA_io_req_ready | ~abc_mshrs_5_io_schedule_bits_a_valid; // @[Scheduler.scala 106:29]
  wire  _mshr_request_T_119 = abc_mshrs_5_io_schedule_valid & ~mshr_stall_5 & _mshr_request_T_118; // @[Scheduler.scala 105:31]
  wire  _mshr_request_T_121 = sourceB_io_req_ready | ~abc_mshrs_5_io_schedule_bits_b_valid; // @[Scheduler.scala 107:29]
  wire  _mshr_request_T_122 = _mshr_request_T_119 & _mshr_request_T_121; // @[Scheduler.scala 106:61]
  wire  _mshr_request_T_124 = sourceC_io_req_ready | ~abc_mshrs_5_io_schedule_bits_c_valid; // @[Scheduler.scala 108:29]
  wire  _mshr_request_T_125 = _mshr_request_T_122 & _mshr_request_T_124; // @[Scheduler.scala 107:61]
  wire  _mshr_request_T_127 = sourceD_io_req_ready | ~abc_mshrs_5_io_schedule_bits_d_valid; // @[Scheduler.scala 109:29]
  wire  _mshr_request_T_128 = _mshr_request_T_125 & _mshr_request_T_127; // @[Scheduler.scala 108:61]
  wire  _mshr_request_T_130 = sourceE_io_req_ready | ~abc_mshrs_5_io_schedule_bits_e_valid; // @[Scheduler.scala 110:29]
  wire  _mshr_request_T_131 = _mshr_request_T_128 & _mshr_request_T_130; // @[Scheduler.scala 109:61]
  wire  _mshr_request_T_136 = directory_io_write_ready | ~abc_mshrs_5_io_schedule_bits_dir_valid; // @[Scheduler.scala 112:33]
  wire  _mshr_request_T_137 = _mshr_request_T_131 & _mshr_request_T_136; // @[Scheduler.scala 111:61]
  wire  _mshr_request_T_141 = sourceA_io_req_ready | ~abc_mshrs_6_io_schedule_bits_a_valid; // @[Scheduler.scala 106:29]
  wire  _mshr_request_T_142 = abc_mshrs_6_io_schedule_valid & ~mshr_stall_6 & _mshr_request_T_141; // @[Scheduler.scala 105:31]
  wire  _mshr_request_T_144 = sourceB_io_req_ready | ~abc_mshrs_6_io_schedule_bits_b_valid; // @[Scheduler.scala 107:29]
  wire  _mshr_request_T_145 = _mshr_request_T_142 & _mshr_request_T_144; // @[Scheduler.scala 106:61]
  wire  _mshr_request_T_147 = sourceC_io_req_ready | ~abc_mshrs_6_io_schedule_bits_c_valid; // @[Scheduler.scala 108:29]
  wire  _mshr_request_T_148 = _mshr_request_T_145 & _mshr_request_T_147; // @[Scheduler.scala 107:61]
  wire  _mshr_request_T_150 = sourceD_io_req_ready | ~abc_mshrs_6_io_schedule_bits_d_valid; // @[Scheduler.scala 109:29]
  wire  _mshr_request_T_151 = _mshr_request_T_148 & _mshr_request_T_150; // @[Scheduler.scala 108:61]
  wire  _mshr_request_T_153 = sourceE_io_req_ready | ~abc_mshrs_6_io_schedule_bits_e_valid; // @[Scheduler.scala 110:29]
  wire  _mshr_request_T_154 = _mshr_request_T_151 & _mshr_request_T_153; // @[Scheduler.scala 109:61]
  wire  _mshr_request_T_159 = directory_io_write_ready | ~abc_mshrs_6_io_schedule_bits_dir_valid; // @[Scheduler.scala 112:33]
  wire  _mshr_request_T_160 = _mshr_request_T_154 & _mshr_request_T_159; // @[Scheduler.scala 111:61]
  wire  _mshr_request_T_164 = sourceA_io_req_ready | ~abc_mshrs_7_io_schedule_bits_a_valid; // @[Scheduler.scala 106:29]
  wire  _mshr_request_T_165 = abc_mshrs_7_io_schedule_valid & ~mshr_stall_7 & _mshr_request_T_164; // @[Scheduler.scala 105:31]
  wire  _mshr_request_T_167 = sourceB_io_req_ready | ~abc_mshrs_7_io_schedule_bits_b_valid; // @[Scheduler.scala 107:29]
  wire  _mshr_request_T_168 = _mshr_request_T_165 & _mshr_request_T_167; // @[Scheduler.scala 106:61]
  wire  _mshr_request_T_170 = sourceC_io_req_ready | ~abc_mshrs_7_io_schedule_bits_c_valid; // @[Scheduler.scala 108:29]
  wire  _mshr_request_T_171 = _mshr_request_T_168 & _mshr_request_T_170; // @[Scheduler.scala 107:61]
  wire  _mshr_request_T_173 = sourceD_io_req_ready | ~abc_mshrs_7_io_schedule_bits_d_valid; // @[Scheduler.scala 109:29]
  wire  _mshr_request_T_174 = _mshr_request_T_171 & _mshr_request_T_173; // @[Scheduler.scala 108:61]
  wire  _mshr_request_T_176 = sourceE_io_req_ready | ~abc_mshrs_7_io_schedule_bits_e_valid; // @[Scheduler.scala 110:29]
  wire  _mshr_request_T_177 = _mshr_request_T_174 & _mshr_request_T_176; // @[Scheduler.scala 109:61]
  wire  _mshr_request_T_182 = directory_io_write_ready | ~abc_mshrs_7_io_schedule_bits_dir_valid; // @[Scheduler.scala 112:33]
  wire  _mshr_request_T_183 = _mshr_request_T_177 & _mshr_request_T_182; // @[Scheduler.scala 111:61]
  wire  _mshr_request_T_187 = sourceA_io_req_ready | ~abc_mshrs_8_io_schedule_bits_a_valid; // @[Scheduler.scala 106:29]
  wire  _mshr_request_T_188 = abc_mshrs_8_io_schedule_valid & ~mshr_stall_8 & _mshr_request_T_187; // @[Scheduler.scala 105:31]
  wire  _mshr_request_T_190 = sourceB_io_req_ready | ~abc_mshrs_8_io_schedule_bits_b_valid; // @[Scheduler.scala 107:29]
  wire  _mshr_request_T_191 = _mshr_request_T_188 & _mshr_request_T_190; // @[Scheduler.scala 106:61]
  wire  _mshr_request_T_193 = sourceC_io_req_ready | ~abc_mshrs_8_io_schedule_bits_c_valid; // @[Scheduler.scala 108:29]
  wire  _mshr_request_T_194 = _mshr_request_T_191 & _mshr_request_T_193; // @[Scheduler.scala 107:61]
  wire  _mshr_request_T_196 = sourceD_io_req_ready | ~abc_mshrs_8_io_schedule_bits_d_valid; // @[Scheduler.scala 109:29]
  wire  _mshr_request_T_197 = _mshr_request_T_194 & _mshr_request_T_196; // @[Scheduler.scala 108:61]
  wire  _mshr_request_T_199 = sourceE_io_req_ready | ~abc_mshrs_8_io_schedule_bits_e_valid; // @[Scheduler.scala 110:29]
  wire  _mshr_request_T_200 = _mshr_request_T_197 & _mshr_request_T_199; // @[Scheduler.scala 109:61]
  wire  _mshr_request_T_205 = directory_io_write_ready | ~abc_mshrs_8_io_schedule_bits_dir_valid; // @[Scheduler.scala 112:33]
  wire  _mshr_request_T_206 = _mshr_request_T_200 & _mshr_request_T_205; // @[Scheduler.scala 111:61]
  wire  _mshr_request_T_210 = sourceA_io_req_ready | ~abc_mshrs_9_io_schedule_bits_a_valid; // @[Scheduler.scala 106:29]
  wire  _mshr_request_T_211 = abc_mshrs_9_io_schedule_valid & ~mshr_stall_9 & _mshr_request_T_210; // @[Scheduler.scala 105:31]
  wire  _mshr_request_T_213 = sourceB_io_req_ready | ~abc_mshrs_9_io_schedule_bits_b_valid; // @[Scheduler.scala 107:29]
  wire  _mshr_request_T_214 = _mshr_request_T_211 & _mshr_request_T_213; // @[Scheduler.scala 106:61]
  wire  _mshr_request_T_216 = sourceC_io_req_ready | ~abc_mshrs_9_io_schedule_bits_c_valid; // @[Scheduler.scala 108:29]
  wire  _mshr_request_T_217 = _mshr_request_T_214 & _mshr_request_T_216; // @[Scheduler.scala 107:61]
  wire  _mshr_request_T_219 = sourceD_io_req_ready | ~abc_mshrs_9_io_schedule_bits_d_valid; // @[Scheduler.scala 109:29]
  wire  _mshr_request_T_220 = _mshr_request_T_217 & _mshr_request_T_219; // @[Scheduler.scala 108:61]
  wire  _mshr_request_T_222 = sourceE_io_req_ready | ~abc_mshrs_9_io_schedule_bits_e_valid; // @[Scheduler.scala 110:29]
  wire  _mshr_request_T_223 = _mshr_request_T_220 & _mshr_request_T_222; // @[Scheduler.scala 109:61]
  wire  _mshr_request_T_228 = directory_io_write_ready | ~abc_mshrs_9_io_schedule_bits_dir_valid; // @[Scheduler.scala 112:33]
  wire  _mshr_request_T_229 = _mshr_request_T_223 & _mshr_request_T_228; // @[Scheduler.scala 111:61]
  wire  _mshr_request_T_233 = sourceA_io_req_ready | ~abc_mshrs_10_io_schedule_bits_a_valid; // @[Scheduler.scala 106:29]
  wire  _mshr_request_T_234 = abc_mshrs_10_io_schedule_valid & ~mshr_stall_10 & _mshr_request_T_233; // @[Scheduler.scala 105:31]
  wire  _mshr_request_T_236 = sourceB_io_req_ready | ~abc_mshrs_10_io_schedule_bits_b_valid; // @[Scheduler.scala 107:29]
  wire  _mshr_request_T_237 = _mshr_request_T_234 & _mshr_request_T_236; // @[Scheduler.scala 106:61]
  wire  _mshr_request_T_239 = sourceC_io_req_ready | ~abc_mshrs_10_io_schedule_bits_c_valid; // @[Scheduler.scala 108:29]
  wire  _mshr_request_T_240 = _mshr_request_T_237 & _mshr_request_T_239; // @[Scheduler.scala 107:61]
  wire  _mshr_request_T_242 = sourceD_io_req_ready | ~abc_mshrs_10_io_schedule_bits_d_valid; // @[Scheduler.scala 109:29]
  wire  _mshr_request_T_243 = _mshr_request_T_240 & _mshr_request_T_242; // @[Scheduler.scala 108:61]
  wire  _mshr_request_T_245 = sourceE_io_req_ready | ~abc_mshrs_10_io_schedule_bits_e_valid; // @[Scheduler.scala 110:29]
  wire  _mshr_request_T_246 = _mshr_request_T_243 & _mshr_request_T_245; // @[Scheduler.scala 109:61]
  wire  _mshr_request_T_251 = directory_io_write_ready | ~abc_mshrs_10_io_schedule_bits_dir_valid; // @[Scheduler.scala 112:33]
  wire  _mshr_request_T_252 = _mshr_request_T_246 & _mshr_request_T_251; // @[Scheduler.scala 111:61]
  wire  _mshr_request_T_256 = sourceA_io_req_ready | ~abc_mshrs_11_io_schedule_bits_a_valid; // @[Scheduler.scala 106:29]
  wire  _mshr_request_T_257 = abc_mshrs_11_io_schedule_valid & ~mshr_stall_11 & _mshr_request_T_256; // @[Scheduler.scala 105:31]
  wire  _mshr_request_T_259 = sourceB_io_req_ready | ~abc_mshrs_11_io_schedule_bits_b_valid; // @[Scheduler.scala 107:29]
  wire  _mshr_request_T_260 = _mshr_request_T_257 & _mshr_request_T_259; // @[Scheduler.scala 106:61]
  wire  _mshr_request_T_262 = sourceC_io_req_ready | ~abc_mshrs_11_io_schedule_bits_c_valid; // @[Scheduler.scala 108:29]
  wire  _mshr_request_T_263 = _mshr_request_T_260 & _mshr_request_T_262; // @[Scheduler.scala 107:61]
  wire  _mshr_request_T_265 = sourceD_io_req_ready | ~abc_mshrs_11_io_schedule_bits_d_valid; // @[Scheduler.scala 109:29]
  wire  _mshr_request_T_266 = _mshr_request_T_263 & _mshr_request_T_265; // @[Scheduler.scala 108:61]
  wire  _mshr_request_T_268 = sourceE_io_req_ready | ~abc_mshrs_11_io_schedule_bits_e_valid; // @[Scheduler.scala 110:29]
  wire  _mshr_request_T_269 = _mshr_request_T_266 & _mshr_request_T_268; // @[Scheduler.scala 109:61]
  wire  _mshr_request_T_274 = directory_io_write_ready | ~abc_mshrs_11_io_schedule_bits_dir_valid; // @[Scheduler.scala 112:33]
  wire  _mshr_request_T_275 = _mshr_request_T_269 & _mshr_request_T_274; // @[Scheduler.scala 111:61]
  wire  _mshr_request_T_279 = sourceA_io_req_ready | ~abc_mshrs_12_io_schedule_bits_a_valid; // @[Scheduler.scala 106:29]
  wire  _mshr_request_T_280 = abc_mshrs_12_io_schedule_valid & ~mshr_stall_12 & _mshr_request_T_279; // @[Scheduler.scala 105:31]
  wire  _mshr_request_T_282 = sourceB_io_req_ready | ~abc_mshrs_12_io_schedule_bits_b_valid; // @[Scheduler.scala 107:29]
  wire  _mshr_request_T_283 = _mshr_request_T_280 & _mshr_request_T_282; // @[Scheduler.scala 106:61]
  wire  _mshr_request_T_285 = sourceC_io_req_ready | ~abc_mshrs_12_io_schedule_bits_c_valid; // @[Scheduler.scala 108:29]
  wire  _mshr_request_T_286 = _mshr_request_T_283 & _mshr_request_T_285; // @[Scheduler.scala 107:61]
  wire  _mshr_request_T_288 = sourceD_io_req_ready | ~abc_mshrs_12_io_schedule_bits_d_valid; // @[Scheduler.scala 109:29]
  wire  _mshr_request_T_289 = _mshr_request_T_286 & _mshr_request_T_288; // @[Scheduler.scala 108:61]
  wire  _mshr_request_T_291 = sourceE_io_req_ready | ~abc_mshrs_12_io_schedule_bits_e_valid; // @[Scheduler.scala 110:29]
  wire  _mshr_request_T_292 = _mshr_request_T_289 & _mshr_request_T_291; // @[Scheduler.scala 109:61]
  wire  _mshr_request_T_297 = directory_io_write_ready | ~abc_mshrs_12_io_schedule_bits_dir_valid; // @[Scheduler.scala 112:33]
  wire  _mshr_request_T_298 = _mshr_request_T_292 & _mshr_request_T_297; // @[Scheduler.scala 111:61]
  wire  _mshr_request_T_302 = sourceA_io_req_ready | ~abc_mshrs_13_io_schedule_bits_a_valid; // @[Scheduler.scala 106:29]
  wire  _mshr_request_T_303 = abc_mshrs_13_io_schedule_valid & ~mshr_stall_13 & _mshr_request_T_302; // @[Scheduler.scala 105:31]
  wire  _mshr_request_T_305 = sourceB_io_req_ready | ~abc_mshrs_13_io_schedule_bits_b_valid; // @[Scheduler.scala 107:29]
  wire  _mshr_request_T_306 = _mshr_request_T_303 & _mshr_request_T_305; // @[Scheduler.scala 106:61]
  wire  _mshr_request_T_308 = sourceC_io_req_ready | ~abc_mshrs_13_io_schedule_bits_c_valid; // @[Scheduler.scala 108:29]
  wire  _mshr_request_T_309 = _mshr_request_T_306 & _mshr_request_T_308; // @[Scheduler.scala 107:61]
  wire  _mshr_request_T_311 = sourceD_io_req_ready | ~abc_mshrs_13_io_schedule_bits_d_valid; // @[Scheduler.scala 109:29]
  wire  _mshr_request_T_312 = _mshr_request_T_309 & _mshr_request_T_311; // @[Scheduler.scala 108:61]
  wire  _mshr_request_T_314 = sourceE_io_req_ready | ~abc_mshrs_13_io_schedule_bits_e_valid; // @[Scheduler.scala 110:29]
  wire  _mshr_request_T_315 = _mshr_request_T_312 & _mshr_request_T_314; // @[Scheduler.scala 109:61]
  wire  _mshr_request_T_320 = directory_io_write_ready | ~abc_mshrs_13_io_schedule_bits_dir_valid; // @[Scheduler.scala 112:33]
  wire  _mshr_request_T_321 = _mshr_request_T_315 & _mshr_request_T_320; // @[Scheduler.scala 111:61]
  wire  _mshr_request_T_325 = sourceA_io_req_ready | ~abc_mshrs_14_io_schedule_bits_a_valid; // @[Scheduler.scala 106:29]
  wire  _mshr_request_T_326 = abc_mshrs_14_io_schedule_valid & ~mshr_stall_14 & _mshr_request_T_325; // @[Scheduler.scala 105:31]
  wire  _mshr_request_T_328 = sourceB_io_req_ready | ~abc_mshrs_14_io_schedule_bits_b_valid; // @[Scheduler.scala 107:29]
  wire  _mshr_request_T_329 = _mshr_request_T_326 & _mshr_request_T_328; // @[Scheduler.scala 106:61]
  wire  _mshr_request_T_331 = sourceC_io_req_ready | ~abc_mshrs_14_io_schedule_bits_c_valid; // @[Scheduler.scala 108:29]
  wire  _mshr_request_T_332 = _mshr_request_T_329 & _mshr_request_T_331; // @[Scheduler.scala 107:61]
  wire  _mshr_request_T_334 = sourceD_io_req_ready | ~abc_mshrs_14_io_schedule_bits_d_valid; // @[Scheduler.scala 109:29]
  wire  _mshr_request_T_335 = _mshr_request_T_332 & _mshr_request_T_334; // @[Scheduler.scala 108:61]
  wire  _mshr_request_T_337 = sourceE_io_req_ready | ~abc_mshrs_14_io_schedule_bits_e_valid; // @[Scheduler.scala 110:29]
  wire  _mshr_request_T_338 = _mshr_request_T_335 & _mshr_request_T_337; // @[Scheduler.scala 109:61]
  wire  _mshr_request_T_343 = directory_io_write_ready | ~abc_mshrs_14_io_schedule_bits_dir_valid; // @[Scheduler.scala 112:33]
  wire  _mshr_request_T_344 = _mshr_request_T_338 & _mshr_request_T_343; // @[Scheduler.scala 111:61]
  wire  _mshr_request_T_348 = sourceA_io_req_ready | ~abc_mshrs_15_io_schedule_bits_a_valid; // @[Scheduler.scala 106:29]
  wire  _mshr_request_T_349 = abc_mshrs_15_io_schedule_valid & ~mshr_stall_15 & _mshr_request_T_348; // @[Scheduler.scala 105:31]
  wire  _mshr_request_T_351 = sourceB_io_req_ready | ~abc_mshrs_15_io_schedule_bits_b_valid; // @[Scheduler.scala 107:29]
  wire  _mshr_request_T_352 = _mshr_request_T_349 & _mshr_request_T_351; // @[Scheduler.scala 106:61]
  wire  _mshr_request_T_354 = sourceC_io_req_ready | ~abc_mshrs_15_io_schedule_bits_c_valid; // @[Scheduler.scala 108:29]
  wire  _mshr_request_T_355 = _mshr_request_T_352 & _mshr_request_T_354; // @[Scheduler.scala 107:61]
  wire  _mshr_request_T_357 = sourceD_io_req_ready | ~abc_mshrs_15_io_schedule_bits_d_valid; // @[Scheduler.scala 109:29]
  wire  _mshr_request_T_358 = _mshr_request_T_355 & _mshr_request_T_357; // @[Scheduler.scala 108:61]
  wire  _mshr_request_T_360 = sourceE_io_req_ready | ~abc_mshrs_15_io_schedule_bits_e_valid; // @[Scheduler.scala 110:29]
  wire  _mshr_request_T_361 = _mshr_request_T_358 & _mshr_request_T_360; // @[Scheduler.scala 109:61]
  wire  _mshr_request_T_366 = directory_io_write_ready | ~abc_mshrs_15_io_schedule_bits_dir_valid; // @[Scheduler.scala 112:33]
  wire  _mshr_request_T_367 = _mshr_request_T_361 & _mshr_request_T_366; // @[Scheduler.scala 111:61]
  wire  _mshr_request_T_371 = sourceA_io_req_ready | ~abc_mshrs_16_io_schedule_bits_a_valid; // @[Scheduler.scala 106:29]
  wire  _mshr_request_T_372 = abc_mshrs_16_io_schedule_valid & ~mshr_stall_16 & _mshr_request_T_371; // @[Scheduler.scala 105:31]
  wire  _mshr_request_T_374 = sourceB_io_req_ready | ~abc_mshrs_16_io_schedule_bits_b_valid; // @[Scheduler.scala 107:29]
  wire  _mshr_request_T_375 = _mshr_request_T_372 & _mshr_request_T_374; // @[Scheduler.scala 106:61]
  wire  _mshr_request_T_377 = sourceC_io_req_ready | ~abc_mshrs_16_io_schedule_bits_c_valid; // @[Scheduler.scala 108:29]
  wire  _mshr_request_T_378 = _mshr_request_T_375 & _mshr_request_T_377; // @[Scheduler.scala 107:61]
  wire  _mshr_request_T_380 = sourceD_io_req_ready | ~abc_mshrs_16_io_schedule_bits_d_valid; // @[Scheduler.scala 109:29]
  wire  _mshr_request_T_381 = _mshr_request_T_378 & _mshr_request_T_380; // @[Scheduler.scala 108:61]
  wire  _mshr_request_T_383 = sourceE_io_req_ready | ~abc_mshrs_16_io_schedule_bits_e_valid; // @[Scheduler.scala 110:29]
  wire  _mshr_request_T_384 = _mshr_request_T_381 & _mshr_request_T_383; // @[Scheduler.scala 109:61]
  wire  _mshr_request_T_389 = directory_io_write_ready | ~abc_mshrs_16_io_schedule_bits_dir_valid; // @[Scheduler.scala 112:33]
  wire  _mshr_request_T_390 = _mshr_request_T_384 & _mshr_request_T_389; // @[Scheduler.scala 111:61]
  wire  _mshr_request_T_394 = sourceA_io_req_ready | ~abc_mshrs_17_io_schedule_bits_a_valid; // @[Scheduler.scala 106:29]
  wire  _mshr_request_T_395 = abc_mshrs_17_io_schedule_valid & ~mshr_stall_17 & _mshr_request_T_394; // @[Scheduler.scala 105:31]
  wire  _mshr_request_T_397 = sourceB_io_req_ready | ~abc_mshrs_17_io_schedule_bits_b_valid; // @[Scheduler.scala 107:29]
  wire  _mshr_request_T_398 = _mshr_request_T_395 & _mshr_request_T_397; // @[Scheduler.scala 106:61]
  wire  _mshr_request_T_400 = sourceC_io_req_ready | ~abc_mshrs_17_io_schedule_bits_c_valid; // @[Scheduler.scala 108:29]
  wire  _mshr_request_T_401 = _mshr_request_T_398 & _mshr_request_T_400; // @[Scheduler.scala 107:61]
  wire  _mshr_request_T_403 = sourceD_io_req_ready | ~abc_mshrs_17_io_schedule_bits_d_valid; // @[Scheduler.scala 109:29]
  wire  _mshr_request_T_404 = _mshr_request_T_401 & _mshr_request_T_403; // @[Scheduler.scala 108:61]
  wire  _mshr_request_T_406 = sourceE_io_req_ready | ~abc_mshrs_17_io_schedule_bits_e_valid; // @[Scheduler.scala 110:29]
  wire  _mshr_request_T_407 = _mshr_request_T_404 & _mshr_request_T_406; // @[Scheduler.scala 109:61]
  wire  _mshr_request_T_412 = directory_io_write_ready | ~abc_mshrs_17_io_schedule_bits_dir_valid; // @[Scheduler.scala 112:33]
  wire  _mshr_request_T_413 = _mshr_request_T_407 & _mshr_request_T_412; // @[Scheduler.scala 111:61]
  wire  _mshr_request_T_417 = sourceA_io_req_ready | ~abc_mshrs_18_io_schedule_bits_a_valid; // @[Scheduler.scala 106:29]
  wire  _mshr_request_T_418 = abc_mshrs_18_io_schedule_valid & ~mshr_stall_18 & _mshr_request_T_417; // @[Scheduler.scala 105:31]
  wire  _mshr_request_T_420 = sourceB_io_req_ready | ~abc_mshrs_18_io_schedule_bits_b_valid; // @[Scheduler.scala 107:29]
  wire  _mshr_request_T_421 = _mshr_request_T_418 & _mshr_request_T_420; // @[Scheduler.scala 106:61]
  wire  _mshr_request_T_423 = sourceC_io_req_ready | ~abc_mshrs_18_io_schedule_bits_c_valid; // @[Scheduler.scala 108:29]
  wire  _mshr_request_T_424 = _mshr_request_T_421 & _mshr_request_T_423; // @[Scheduler.scala 107:61]
  wire  _mshr_request_T_426 = sourceD_io_req_ready | ~abc_mshrs_18_io_schedule_bits_d_valid; // @[Scheduler.scala 109:29]
  wire  _mshr_request_T_427 = _mshr_request_T_424 & _mshr_request_T_426; // @[Scheduler.scala 108:61]
  wire  _mshr_request_T_429 = sourceE_io_req_ready | ~abc_mshrs_18_io_schedule_bits_e_valid; // @[Scheduler.scala 110:29]
  wire  _mshr_request_T_430 = _mshr_request_T_427 & _mshr_request_T_429; // @[Scheduler.scala 109:61]
  wire  _mshr_request_T_435 = directory_io_write_ready | ~abc_mshrs_18_io_schedule_bits_dir_valid; // @[Scheduler.scala 112:33]
  wire  _mshr_request_T_436 = _mshr_request_T_430 & _mshr_request_T_435; // @[Scheduler.scala 111:61]
  wire  _mshr_request_T_440 = sourceA_io_req_ready | ~abc_mshrs_19_io_schedule_bits_a_valid; // @[Scheduler.scala 106:29]
  wire  _mshr_request_T_441 = abc_mshrs_19_io_schedule_valid & ~mshr_stall_19 & _mshr_request_T_440; // @[Scheduler.scala 105:31]
  wire  _mshr_request_T_443 = sourceB_io_req_ready | ~abc_mshrs_19_io_schedule_bits_b_valid; // @[Scheduler.scala 107:29]
  wire  _mshr_request_T_444 = _mshr_request_T_441 & _mshr_request_T_443; // @[Scheduler.scala 106:61]
  wire  _mshr_request_T_446 = sourceC_io_req_ready | ~abc_mshrs_19_io_schedule_bits_c_valid; // @[Scheduler.scala 108:29]
  wire  _mshr_request_T_447 = _mshr_request_T_444 & _mshr_request_T_446; // @[Scheduler.scala 107:61]
  wire  _mshr_request_T_449 = sourceD_io_req_ready | ~abc_mshrs_19_io_schedule_bits_d_valid; // @[Scheduler.scala 109:29]
  wire  _mshr_request_T_450 = _mshr_request_T_447 & _mshr_request_T_449; // @[Scheduler.scala 108:61]
  wire  _mshr_request_T_452 = sourceE_io_req_ready | ~abc_mshrs_19_io_schedule_bits_e_valid; // @[Scheduler.scala 110:29]
  wire  _mshr_request_T_453 = _mshr_request_T_450 & _mshr_request_T_452; // @[Scheduler.scala 109:61]
  wire  _mshr_request_T_458 = directory_io_write_ready | ~abc_mshrs_19_io_schedule_bits_dir_valid; // @[Scheduler.scala 112:33]
  wire  _mshr_request_T_459 = _mshr_request_T_453 & _mshr_request_T_458; // @[Scheduler.scala 111:61]
  wire  _mshr_request_T_463 = sourceA_io_req_ready | ~bc_mshr_io_schedule_bits_a_valid; // @[Scheduler.scala 106:29]
  wire  _mshr_request_T_464 = bc_mshr_io_schedule_valid & ~mshr_stall_20 & _mshr_request_T_463; // @[Scheduler.scala 105:31]
  wire  _mshr_request_T_466 = sourceB_io_req_ready | ~bc_mshr_io_schedule_bits_b_valid; // @[Scheduler.scala 107:29]
  wire  _mshr_request_T_467 = _mshr_request_T_464 & _mshr_request_T_466; // @[Scheduler.scala 106:61]
  wire  _mshr_request_T_469 = sourceC_io_req_ready | ~bc_mshr_io_schedule_bits_c_valid; // @[Scheduler.scala 108:29]
  wire  _mshr_request_T_470 = _mshr_request_T_467 & _mshr_request_T_469; // @[Scheduler.scala 107:61]
  wire  _mshr_request_T_472 = sourceD_io_req_ready | ~bc_mshr_io_schedule_bits_d_valid; // @[Scheduler.scala 109:29]
  wire  _mshr_request_T_473 = _mshr_request_T_470 & _mshr_request_T_472; // @[Scheduler.scala 108:61]
  wire  _mshr_request_T_475 = sourceE_io_req_ready | ~bc_mshr_io_schedule_bits_e_valid; // @[Scheduler.scala 110:29]
  wire  _mshr_request_T_476 = _mshr_request_T_473 & _mshr_request_T_475; // @[Scheduler.scala 109:61]
  wire  _mshr_request_T_481 = directory_io_write_ready | ~bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 112:33]
  wire  _mshr_request_T_482 = _mshr_request_T_476 & _mshr_request_T_481; // @[Scheduler.scala 111:61]
  wire  _mshr_request_T_486 = sourceA_io_req_ready | ~c_mshr_io_schedule_bits_a_valid; // @[Scheduler.scala 106:29]
  wire  _mshr_request_T_487 = c_mshr_io_schedule_valid & _mshr_request_T_486; // @[Scheduler.scala 105:31]
  wire  _mshr_request_T_489 = sourceB_io_req_ready | ~c_mshr_io_schedule_bits_b_valid; // @[Scheduler.scala 107:29]
  wire  _mshr_request_T_490 = _mshr_request_T_487 & _mshr_request_T_489; // @[Scheduler.scala 106:61]
  wire  _mshr_request_T_492 = sourceC_io_req_ready | ~c_mshr_io_schedule_bits_c_valid; // @[Scheduler.scala 108:29]
  wire  _mshr_request_T_493 = _mshr_request_T_490 & _mshr_request_T_492; // @[Scheduler.scala 107:61]
  wire  _mshr_request_T_495 = sourceD_io_req_ready | ~c_mshr_io_schedule_bits_d_valid; // @[Scheduler.scala 109:29]
  wire  _mshr_request_T_496 = _mshr_request_T_493 & _mshr_request_T_495; // @[Scheduler.scala 108:61]
  wire  _mshr_request_T_498 = sourceE_io_req_ready | ~c_mshr_io_schedule_bits_e_valid; // @[Scheduler.scala 110:29]
  wire  _mshr_request_T_499 = _mshr_request_T_496 & _mshr_request_T_498; // @[Scheduler.scala 109:61]
  wire  _mshr_request_T_504 = directory_io_write_ready | ~c_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 112:33]
  wire  _mshr_request_T_505 = _mshr_request_T_499 & _mshr_request_T_504; // @[Scheduler.scala 111:61]
  wire [4:0] mshr_request_lo_lo = {_mshr_request_T_114,_mshr_request_T_91,_mshr_request_T_68,_mshr_request_T_45,
    _mshr_request_T_22}; // @[Cat.scala 33:92]
  wire [10:0] mshr_request_lo = {_mshr_request_T_252,_mshr_request_T_229,_mshr_request_T_206,_mshr_request_T_183,
    _mshr_request_T_160,_mshr_request_T_137,mshr_request_lo_lo}; // @[Cat.scala 33:92]
  wire [4:0] mshr_request_hi_lo = {_mshr_request_T_367,_mshr_request_T_344,_mshr_request_T_321,_mshr_request_T_298,
    _mshr_request_T_275}; // @[Cat.scala 33:92]
  wire [21:0] mshr_request = {_mshr_request_T_505,_mshr_request_T_482,_mshr_request_T_459,_mshr_request_T_436,
    _mshr_request_T_413,_mshr_request_T_390,mshr_request_hi_lo,mshr_request_lo}; // @[Cat.scala 33:92]
  reg [21:0] robin_filter; // @[Scheduler.scala 116:29]
  wire [21:0] _robin_request_T = mshr_request & robin_filter; // @[Scheduler.scala 117:54]
  wire [43:0] robin_request = {_mshr_request_T_505,_mshr_request_T_482,_mshr_request_T_459,_mshr_request_T_436,
    _mshr_request_T_413,_mshr_request_T_390,mshr_request_hi_lo,mshr_request_lo,_robin_request_T}; // @[Cat.scala 33:92]
  wire [44:0] _mshr_selectOH2_T = {robin_request, 1'h0}; // @[package.scala 244:48]
  wire [43:0] _mshr_selectOH2_T_2 = robin_request | _mshr_selectOH2_T[43:0]; // @[package.scala 244:43]
  wire [45:0] _mshr_selectOH2_T_3 = {_mshr_selectOH2_T_2, 2'h0}; // @[package.scala 244:48]
  wire [43:0] _mshr_selectOH2_T_5 = _mshr_selectOH2_T_2 | _mshr_selectOH2_T_3[43:0]; // @[package.scala 244:43]
  wire [47:0] _mshr_selectOH2_T_6 = {_mshr_selectOH2_T_5, 4'h0}; // @[package.scala 244:48]
  wire [43:0] _mshr_selectOH2_T_8 = _mshr_selectOH2_T_5 | _mshr_selectOH2_T_6[43:0]; // @[package.scala 244:43]
  wire [51:0] _mshr_selectOH2_T_9 = {_mshr_selectOH2_T_8, 8'h0}; // @[package.scala 244:48]
  wire [43:0] _mshr_selectOH2_T_11 = _mshr_selectOH2_T_8 | _mshr_selectOH2_T_9[43:0]; // @[package.scala 244:43]
  wire [59:0] _mshr_selectOH2_T_12 = {_mshr_selectOH2_T_11, 16'h0}; // @[package.scala 244:48]
  wire [43:0] _mshr_selectOH2_T_14 = _mshr_selectOH2_T_11 | _mshr_selectOH2_T_12[43:0]; // @[package.scala 244:43]
  wire [75:0] _mshr_selectOH2_T_15 = {_mshr_selectOH2_T_14, 32'h0}; // @[package.scala 244:48]
  wire [43:0] _mshr_selectOH2_T_17 = _mshr_selectOH2_T_14 | _mshr_selectOH2_T_15[43:0]; // @[package.scala 244:43]
  wire [44:0] _mshr_selectOH2_T_19 = {_mshr_selectOH2_T_17, 1'h0}; // @[Scheduler.scala 118:48]
  wire [44:0] _mshr_selectOH2_T_20 = ~_mshr_selectOH2_T_19; // @[Scheduler.scala 118:24]
  wire [44:0] _GEN_282 = {{1'd0}, robin_request}; // @[Scheduler.scala 118:54]
  wire [44:0] mshr_selectOH2 = _mshr_selectOH2_T_20 & _GEN_282; // @[Scheduler.scala 118:54]
  wire [21:0] mshr_selectOH = mshr_selectOH2[43:22] | mshr_selectOH2[21:0]; // @[Scheduler.scala 119:70]
  wire [5:0] mshr_select_hi = mshr_selectOH[21:16]; // @[OneHot.scala 30:18]
  wire [15:0] mshr_select_lo = mshr_selectOH[15:0]; // @[OneHot.scala 31:18]
  wire  _mshr_select_T = |mshr_select_hi; // @[OneHot.scala 32:14]
  wire [15:0] _GEN_296 = {{10'd0}, mshr_select_hi}; // @[OneHot.scala 32:28]
  wire [15:0] _mshr_select_T_1 = _GEN_296 | mshr_select_lo; // @[OneHot.scala 32:28]
  wire [7:0] mshr_select_hi_1 = _mshr_select_T_1[15:8]; // @[OneHot.scala 30:18]
  wire [7:0] mshr_select_lo_1 = _mshr_select_T_1[7:0]; // @[OneHot.scala 31:18]
  wire  _mshr_select_T_2 = |mshr_select_hi_1; // @[OneHot.scala 32:14]
  wire [7:0] _mshr_select_T_3 = mshr_select_hi_1 | mshr_select_lo_1; // @[OneHot.scala 32:28]
  wire [3:0] mshr_select_hi_2 = _mshr_select_T_3[7:4]; // @[OneHot.scala 30:18]
  wire [3:0] mshr_select_lo_2 = _mshr_select_T_3[3:0]; // @[OneHot.scala 31:18]
  wire  _mshr_select_T_4 = |mshr_select_hi_2; // @[OneHot.scala 32:14]
  wire [3:0] _mshr_select_T_5 = mshr_select_hi_2 | mshr_select_lo_2; // @[OneHot.scala 32:28]
  wire [1:0] mshr_select_hi_3 = _mshr_select_T_5[3:2]; // @[OneHot.scala 30:18]
  wire [1:0] mshr_select_lo_3 = _mshr_select_T_5[1:0]; // @[OneHot.scala 31:18]
  wire  _mshr_select_T_6 = |mshr_select_hi_3; // @[OneHot.scala 32:14]
  wire [1:0] _mshr_select_T_7 = mshr_select_hi_3 | mshr_select_lo_3; // @[OneHot.scala 32:28]
  wire [3:0] _mshr_select_T_11 = {_mshr_select_T_2,_mshr_select_T_4,_mshr_select_T_6,_mshr_select_T_7[1]}; // @[Cat.scala 33:92]
  wire [4:0] mshr_select = {_mshr_select_T,_mshr_select_T_2,_mshr_select_T_4,_mshr_select_T_6,_mshr_select_T_7[1]}; // @[Cat.scala 33:92]
  wire  _schedule_T_37 = mshr_selectOH[15] & abc_mshrs_15_io_schedule_bits_reload; // @[Mux.scala 27:73]
  wire  _schedule_T_58 = mshr_selectOH[0] & abc_mshrs_0_io_schedule_bits_reload | mshr_selectOH[1] &
    abc_mshrs_1_io_schedule_bits_reload | mshr_selectOH[2] & abc_mshrs_2_io_schedule_bits_reload | mshr_selectOH[3] &
    abc_mshrs_3_io_schedule_bits_reload | mshr_selectOH[4] & abc_mshrs_4_io_schedule_bits_reload | mshr_selectOH[5] &
    abc_mshrs_5_io_schedule_bits_reload | mshr_selectOH[6] & abc_mshrs_6_io_schedule_bits_reload | mshr_selectOH[7] &
    abc_mshrs_7_io_schedule_bits_reload | mshr_selectOH[8] & abc_mshrs_8_io_schedule_bits_reload | mshr_selectOH[9] &
    abc_mshrs_9_io_schedule_bits_reload | mshr_selectOH[10] & abc_mshrs_10_io_schedule_bits_reload | mshr_selectOH[11]
     & abc_mshrs_11_io_schedule_bits_reload | mshr_selectOH[12] & abc_mshrs_12_io_schedule_bits_reload | mshr_selectOH[
    13] & abc_mshrs_13_io_schedule_bits_reload | mshr_selectOH[14] & abc_mshrs_14_io_schedule_bits_reload |
    _schedule_T_37; // @[Mux.scala 27:73]
  wire  schedule_reload = _schedule_T_58 | mshr_selectOH[16] & abc_mshrs_16_io_schedule_bits_reload | mshr_selectOH[17]
     & abc_mshrs_17_io_schedule_bits_reload | mshr_selectOH[18] & abc_mshrs_18_io_schedule_bits_reload | mshr_selectOH[
    19] & abc_mshrs_19_io_schedule_bits_reload | mshr_selectOH[20] & bc_mshr_io_schedule_bits_reload | mshr_selectOH[21]
     & c_mshr_io_schedule_bits_reload; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_65 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_dir_bits_data_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_66 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_dir_bits_data_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_67 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_dir_bits_data_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_68 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_dir_bits_data_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_69 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_dir_bits_data_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_70 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_dir_bits_data_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_71 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_dir_bits_data_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_72 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_dir_bits_data_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_73 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_dir_bits_data_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_74 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_dir_bits_data_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_75 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_dir_bits_data_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_76 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_dir_bits_data_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_77 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_dir_bits_data_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_78 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_dir_bits_data_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_79 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_dir_bits_data_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_80 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_dir_bits_data_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_81 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_dir_bits_data_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_82 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_dir_bits_data_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_83 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_dir_bits_data_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_84 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_dir_bits_data_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_85 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_dir_bits_data_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_86 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_dir_bits_data_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_87 = _schedule_T_65 | _schedule_T_66; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_88 = _schedule_T_87 | _schedule_T_67; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_89 = _schedule_T_88 | _schedule_T_68; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_90 = _schedule_T_89 | _schedule_T_69; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_91 = _schedule_T_90 | _schedule_T_70; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_92 = _schedule_T_91 | _schedule_T_71; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_93 = _schedule_T_92 | _schedule_T_72; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_94 = _schedule_T_93 | _schedule_T_73; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_95 = _schedule_T_94 | _schedule_T_74; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_96 = _schedule_T_95 | _schedule_T_75; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_97 = _schedule_T_96 | _schedule_T_76; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_98 = _schedule_T_97 | _schedule_T_77; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_99 = _schedule_T_98 | _schedule_T_78; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_100 = _schedule_T_99 | _schedule_T_79; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_101 = _schedule_T_100 | _schedule_T_80; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_102 = _schedule_T_101 | _schedule_T_81; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_103 = _schedule_T_102 | _schedule_T_82; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_104 = _schedule_T_103 | _schedule_T_83; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_105 = _schedule_T_104 | _schedule_T_84; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_106 = _schedule_T_105 | _schedule_T_85; // @[Mux.scala 27:73]
  wire  _schedule_T_123 = mshr_selectOH[15] & abc_mshrs_15_io_schedule_bits_dir_bits_data_clients; // @[Mux.scala 27:73]
  wire  _schedule_T_144 = mshr_selectOH[0] & abc_mshrs_0_io_schedule_bits_dir_bits_data_clients | mshr_selectOH[1] &
    abc_mshrs_1_io_schedule_bits_dir_bits_data_clients | mshr_selectOH[2] &
    abc_mshrs_2_io_schedule_bits_dir_bits_data_clients | mshr_selectOH[3] &
    abc_mshrs_3_io_schedule_bits_dir_bits_data_clients | mshr_selectOH[4] &
    abc_mshrs_4_io_schedule_bits_dir_bits_data_clients | mshr_selectOH[5] &
    abc_mshrs_5_io_schedule_bits_dir_bits_data_clients | mshr_selectOH[6] &
    abc_mshrs_6_io_schedule_bits_dir_bits_data_clients | mshr_selectOH[7] &
    abc_mshrs_7_io_schedule_bits_dir_bits_data_clients | mshr_selectOH[8] &
    abc_mshrs_8_io_schedule_bits_dir_bits_data_clients | mshr_selectOH[9] &
    abc_mshrs_9_io_schedule_bits_dir_bits_data_clients | mshr_selectOH[10] &
    abc_mshrs_10_io_schedule_bits_dir_bits_data_clients | mshr_selectOH[11] &
    abc_mshrs_11_io_schedule_bits_dir_bits_data_clients | mshr_selectOH[12] &
    abc_mshrs_12_io_schedule_bits_dir_bits_data_clients | mshr_selectOH[13] &
    abc_mshrs_13_io_schedule_bits_dir_bits_data_clients | mshr_selectOH[14] &
    abc_mshrs_14_io_schedule_bits_dir_bits_data_clients | _schedule_T_123; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_151 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_dir_bits_data_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_152 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_dir_bits_data_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_153 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_dir_bits_data_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_154 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_dir_bits_data_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_155 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_dir_bits_data_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_156 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_dir_bits_data_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_157 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_dir_bits_data_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_158 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_dir_bits_data_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_159 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_dir_bits_data_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_160 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_dir_bits_data_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_161 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_dir_bits_data_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_162 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_dir_bits_data_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_163 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_dir_bits_data_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_164 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_dir_bits_data_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_165 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_dir_bits_data_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_166 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_dir_bits_data_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_167 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_dir_bits_data_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_168 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_dir_bits_data_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_169 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_dir_bits_data_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_170 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_dir_bits_data_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_171 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_dir_bits_data_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_172 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_dir_bits_data_state : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_173 = _schedule_T_151 | _schedule_T_152; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_174 = _schedule_T_173 | _schedule_T_153; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_175 = _schedule_T_174 | _schedule_T_154; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_176 = _schedule_T_175 | _schedule_T_155; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_177 = _schedule_T_176 | _schedule_T_156; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_178 = _schedule_T_177 | _schedule_T_157; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_179 = _schedule_T_178 | _schedule_T_158; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_180 = _schedule_T_179 | _schedule_T_159; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_181 = _schedule_T_180 | _schedule_T_160; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_182 = _schedule_T_181 | _schedule_T_161; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_183 = _schedule_T_182 | _schedule_T_162; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_184 = _schedule_T_183 | _schedule_T_163; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_185 = _schedule_T_184 | _schedule_T_164; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_186 = _schedule_T_185 | _schedule_T_165; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_187 = _schedule_T_186 | _schedule_T_166; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_188 = _schedule_T_187 | _schedule_T_167; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_189 = _schedule_T_188 | _schedule_T_168; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_190 = _schedule_T_189 | _schedule_T_169; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_191 = _schedule_T_190 | _schedule_T_170; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_192 = _schedule_T_191 | _schedule_T_171; // @[Mux.scala 27:73]
  wire  _schedule_T_209 = mshr_selectOH[15] & abc_mshrs_15_io_schedule_bits_dir_bits_data_dirty; // @[Mux.scala 27:73]
  wire  _schedule_T_230 = mshr_selectOH[0] & abc_mshrs_0_io_schedule_bits_dir_bits_data_dirty | mshr_selectOH[1] &
    abc_mshrs_1_io_schedule_bits_dir_bits_data_dirty | mshr_selectOH[2] &
    abc_mshrs_2_io_schedule_bits_dir_bits_data_dirty | mshr_selectOH[3] &
    abc_mshrs_3_io_schedule_bits_dir_bits_data_dirty | mshr_selectOH[4] &
    abc_mshrs_4_io_schedule_bits_dir_bits_data_dirty | mshr_selectOH[5] &
    abc_mshrs_5_io_schedule_bits_dir_bits_data_dirty | mshr_selectOH[6] &
    abc_mshrs_6_io_schedule_bits_dir_bits_data_dirty | mshr_selectOH[7] &
    abc_mshrs_7_io_schedule_bits_dir_bits_data_dirty | mshr_selectOH[8] &
    abc_mshrs_8_io_schedule_bits_dir_bits_data_dirty | mshr_selectOH[9] &
    abc_mshrs_9_io_schedule_bits_dir_bits_data_dirty | mshr_selectOH[10] &
    abc_mshrs_10_io_schedule_bits_dir_bits_data_dirty | mshr_selectOH[11] &
    abc_mshrs_11_io_schedule_bits_dir_bits_data_dirty | mshr_selectOH[12] &
    abc_mshrs_12_io_schedule_bits_dir_bits_data_dirty | mshr_selectOH[13] &
    abc_mshrs_13_io_schedule_bits_dir_bits_data_dirty | mshr_selectOH[14] &
    abc_mshrs_14_io_schedule_bits_dir_bits_data_dirty | _schedule_T_209; // @[Mux.scala 27:73]
  wire  _schedule_T_252 = mshr_selectOH[15] & abc_mshrs_15_io_schedule_bits_dir_bits_way; // @[Mux.scala 27:73]
  wire  _schedule_T_273 = mshr_selectOH[0] & abc_mshrs_0_io_schedule_bits_dir_bits_way | mshr_selectOH[1] &
    abc_mshrs_1_io_schedule_bits_dir_bits_way | mshr_selectOH[2] & abc_mshrs_2_io_schedule_bits_dir_bits_way |
    mshr_selectOH[3] & abc_mshrs_3_io_schedule_bits_dir_bits_way | mshr_selectOH[4] &
    abc_mshrs_4_io_schedule_bits_dir_bits_way | mshr_selectOH[5] & abc_mshrs_5_io_schedule_bits_dir_bits_way |
    mshr_selectOH[6] & abc_mshrs_6_io_schedule_bits_dir_bits_way | mshr_selectOH[7] &
    abc_mshrs_7_io_schedule_bits_dir_bits_way | mshr_selectOH[8] & abc_mshrs_8_io_schedule_bits_dir_bits_way |
    mshr_selectOH[9] & abc_mshrs_9_io_schedule_bits_dir_bits_way | mshr_selectOH[10] &
    abc_mshrs_10_io_schedule_bits_dir_bits_way | mshr_selectOH[11] & abc_mshrs_11_io_schedule_bits_dir_bits_way |
    mshr_selectOH[12] & abc_mshrs_12_io_schedule_bits_dir_bits_way | mshr_selectOH[13] &
    abc_mshrs_13_io_schedule_bits_dir_bits_way | mshr_selectOH[14] & abc_mshrs_14_io_schedule_bits_dir_bits_way |
    _schedule_T_252; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_280 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_dir_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_281 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_dir_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_282 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_dir_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_283 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_dir_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_284 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_dir_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_285 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_dir_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_286 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_dir_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_287 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_dir_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_288 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_dir_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_289 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_dir_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_290 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_dir_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_291 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_dir_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_292 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_dir_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_293 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_dir_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_294 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_dir_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_295 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_dir_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_296 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_dir_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_297 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_dir_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_298 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_dir_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_299 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_dir_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_300 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_dir_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_301 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_dir_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_302 = _schedule_T_280 | _schedule_T_281; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_303 = _schedule_T_302 | _schedule_T_282; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_304 = _schedule_T_303 | _schedule_T_283; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_305 = _schedule_T_304 | _schedule_T_284; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_306 = _schedule_T_305 | _schedule_T_285; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_307 = _schedule_T_306 | _schedule_T_286; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_308 = _schedule_T_307 | _schedule_T_287; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_309 = _schedule_T_308 | _schedule_T_288; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_310 = _schedule_T_309 | _schedule_T_289; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_311 = _schedule_T_310 | _schedule_T_290; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_312 = _schedule_T_311 | _schedule_T_291; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_313 = _schedule_T_312 | _schedule_T_292; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_314 = _schedule_T_313 | _schedule_T_293; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_315 = _schedule_T_314 | _schedule_T_294; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_316 = _schedule_T_315 | _schedule_T_295; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_317 = _schedule_T_316 | _schedule_T_296; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_318 = _schedule_T_317 | _schedule_T_297; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_319 = _schedule_T_318 | _schedule_T_298; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_320 = _schedule_T_319 | _schedule_T_299; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_321 = _schedule_T_320 | _schedule_T_300; // @[Mux.scala 27:73]
  wire  _schedule_T_338 = mshr_selectOH[15] & abc_mshrs_15_io_schedule_bits_dir_valid; // @[Mux.scala 27:73]
  wire  _schedule_T_343 = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Mux.scala 27:73]
  wire  _schedule_T_344 = mshr_selectOH[21] & c_mshr_io_schedule_bits_dir_valid; // @[Mux.scala 27:73]
  wire  _schedule_T_359 = mshr_selectOH[0] & abc_mshrs_0_io_schedule_bits_dir_valid | mshr_selectOH[1] &
    abc_mshrs_1_io_schedule_bits_dir_valid | mshr_selectOH[2] & abc_mshrs_2_io_schedule_bits_dir_valid | mshr_selectOH[3
    ] & abc_mshrs_3_io_schedule_bits_dir_valid | mshr_selectOH[4] & abc_mshrs_4_io_schedule_bits_dir_valid |
    mshr_selectOH[5] & abc_mshrs_5_io_schedule_bits_dir_valid | mshr_selectOH[6] &
    abc_mshrs_6_io_schedule_bits_dir_valid | mshr_selectOH[7] & abc_mshrs_7_io_schedule_bits_dir_valid | mshr_selectOH[8
    ] & abc_mshrs_8_io_schedule_bits_dir_valid | mshr_selectOH[9] & abc_mshrs_9_io_schedule_bits_dir_valid |
    mshr_selectOH[10] & abc_mshrs_10_io_schedule_bits_dir_valid | mshr_selectOH[11] &
    abc_mshrs_11_io_schedule_bits_dir_valid | mshr_selectOH[12] & abc_mshrs_12_io_schedule_bits_dir_valid |
    mshr_selectOH[13] & abc_mshrs_13_io_schedule_bits_dir_valid | mshr_selectOH[14] &
    abc_mshrs_14_io_schedule_bits_dir_valid | _schedule_T_338; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_452 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_e_bits_sink : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_453 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_e_bits_sink : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_454 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_e_bits_sink : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_455 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_e_bits_sink : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_456 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_e_bits_sink : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_457 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_e_bits_sink : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_458 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_e_bits_sink : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_459 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_e_bits_sink : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_460 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_e_bits_sink : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_461 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_e_bits_sink : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_462 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_e_bits_sink : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_463 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_e_bits_sink : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_464 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_e_bits_sink : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_465 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_e_bits_sink : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_466 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_e_bits_sink : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_467 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_e_bits_sink : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_468 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_e_bits_sink : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_469 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_e_bits_sink : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_470 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_e_bits_sink : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_471 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_e_bits_sink : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_472 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_e_bits_sink : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_473 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_e_bits_sink : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_474 = _schedule_T_452 | _schedule_T_453; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_475 = _schedule_T_474 | _schedule_T_454; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_476 = _schedule_T_475 | _schedule_T_455; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_477 = _schedule_T_476 | _schedule_T_456; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_478 = _schedule_T_477 | _schedule_T_457; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_479 = _schedule_T_478 | _schedule_T_458; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_480 = _schedule_T_479 | _schedule_T_459; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_481 = _schedule_T_480 | _schedule_T_460; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_482 = _schedule_T_481 | _schedule_T_461; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_483 = _schedule_T_482 | _schedule_T_462; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_484 = _schedule_T_483 | _schedule_T_463; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_485 = _schedule_T_484 | _schedule_T_464; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_486 = _schedule_T_485 | _schedule_T_465; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_487 = _schedule_T_486 | _schedule_T_466; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_488 = _schedule_T_487 | _schedule_T_467; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_489 = _schedule_T_488 | _schedule_T_468; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_490 = _schedule_T_489 | _schedule_T_469; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_491 = _schedule_T_490 | _schedule_T_470; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_492 = _schedule_T_491 | _schedule_T_471; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_493 = _schedule_T_492 | _schedule_T_472; // @[Mux.scala 27:73]
  wire  _schedule_T_510 = mshr_selectOH[15] & abc_mshrs_15_io_schedule_bits_e_valid; // @[Mux.scala 27:73]
  wire  _schedule_T_531 = mshr_selectOH[0] & abc_mshrs_0_io_schedule_bits_e_valid | mshr_selectOH[1] &
    abc_mshrs_1_io_schedule_bits_e_valid | mshr_selectOH[2] & abc_mshrs_2_io_schedule_bits_e_valid | mshr_selectOH[3] &
    abc_mshrs_3_io_schedule_bits_e_valid | mshr_selectOH[4] & abc_mshrs_4_io_schedule_bits_e_valid | mshr_selectOH[5] &
    abc_mshrs_5_io_schedule_bits_e_valid | mshr_selectOH[6] & abc_mshrs_6_io_schedule_bits_e_valid | mshr_selectOH[7] &
    abc_mshrs_7_io_schedule_bits_e_valid | mshr_selectOH[8] & abc_mshrs_8_io_schedule_bits_e_valid | mshr_selectOH[9] &
    abc_mshrs_9_io_schedule_bits_e_valid | mshr_selectOH[10] & abc_mshrs_10_io_schedule_bits_e_valid | mshr_selectOH[11]
     & abc_mshrs_11_io_schedule_bits_e_valid | mshr_selectOH[12] & abc_mshrs_12_io_schedule_bits_e_valid | mshr_selectOH
    [13] & abc_mshrs_13_io_schedule_bits_e_valid | mshr_selectOH[14] & abc_mshrs_14_io_schedule_bits_e_valid |
    _schedule_T_510; // @[Mux.scala 27:73]
  wire  _schedule_T_553 = mshr_selectOH[15] & abc_mshrs_15_io_schedule_bits_d_bits_bad; // @[Mux.scala 27:73]
  wire  _schedule_T_574 = mshr_selectOH[0] & abc_mshrs_0_io_schedule_bits_d_bits_bad | mshr_selectOH[1] &
    abc_mshrs_1_io_schedule_bits_d_bits_bad | mshr_selectOH[2] & abc_mshrs_2_io_schedule_bits_d_bits_bad | mshr_selectOH
    [3] & abc_mshrs_3_io_schedule_bits_d_bits_bad | mshr_selectOH[4] & abc_mshrs_4_io_schedule_bits_d_bits_bad |
    mshr_selectOH[5] & abc_mshrs_5_io_schedule_bits_d_bits_bad | mshr_selectOH[6] &
    abc_mshrs_6_io_schedule_bits_d_bits_bad | mshr_selectOH[7] & abc_mshrs_7_io_schedule_bits_d_bits_bad | mshr_selectOH
    [8] & abc_mshrs_8_io_schedule_bits_d_bits_bad | mshr_selectOH[9] & abc_mshrs_9_io_schedule_bits_d_bits_bad |
    mshr_selectOH[10] & abc_mshrs_10_io_schedule_bits_d_bits_bad | mshr_selectOH[11] &
    abc_mshrs_11_io_schedule_bits_d_bits_bad | mshr_selectOH[12] & abc_mshrs_12_io_schedule_bits_d_bits_bad |
    mshr_selectOH[13] & abc_mshrs_13_io_schedule_bits_d_bits_bad | mshr_selectOH[14] &
    abc_mshrs_14_io_schedule_bits_d_bits_bad | _schedule_T_553; // @[Mux.scala 27:73]
  wire  _schedule_T_596 = mshr_selectOH[15] & abc_mshrs_15_io_schedule_bits_d_bits_way; // @[Mux.scala 27:73]
  wire  _schedule_T_617 = mshr_selectOH[0] & abc_mshrs_0_io_schedule_bits_d_bits_way | mshr_selectOH[1] &
    abc_mshrs_1_io_schedule_bits_d_bits_way | mshr_selectOH[2] & abc_mshrs_2_io_schedule_bits_d_bits_way | mshr_selectOH
    [3] & abc_mshrs_3_io_schedule_bits_d_bits_way | mshr_selectOH[4] & abc_mshrs_4_io_schedule_bits_d_bits_way |
    mshr_selectOH[5] & abc_mshrs_5_io_schedule_bits_d_bits_way | mshr_selectOH[6] &
    abc_mshrs_6_io_schedule_bits_d_bits_way | mshr_selectOH[7] & abc_mshrs_7_io_schedule_bits_d_bits_way | mshr_selectOH
    [8] & abc_mshrs_8_io_schedule_bits_d_bits_way | mshr_selectOH[9] & abc_mshrs_9_io_schedule_bits_d_bits_way |
    mshr_selectOH[10] & abc_mshrs_10_io_schedule_bits_d_bits_way | mshr_selectOH[11] &
    abc_mshrs_11_io_schedule_bits_d_bits_way | mshr_selectOH[12] & abc_mshrs_12_io_schedule_bits_d_bits_way |
    mshr_selectOH[13] & abc_mshrs_13_io_schedule_bits_d_bits_way | mshr_selectOH[14] &
    abc_mshrs_14_io_schedule_bits_d_bits_way | _schedule_T_596; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_667 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_d_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_668 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_d_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_669 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_d_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_670 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_d_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_671 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_d_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_672 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_d_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_673 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_d_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_674 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_d_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_675 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_d_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_676 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_d_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_677 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_d_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_678 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_d_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_679 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_d_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_680 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_d_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_681 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_d_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_682 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_d_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_683 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_d_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_684 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_d_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_685 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_d_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_686 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_d_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_687 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_d_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_688 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_d_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_689 = _schedule_T_667 | _schedule_T_668; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_690 = _schedule_T_689 | _schedule_T_669; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_691 = _schedule_T_690 | _schedule_T_670; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_692 = _schedule_T_691 | _schedule_T_671; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_693 = _schedule_T_692 | _schedule_T_672; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_694 = _schedule_T_693 | _schedule_T_673; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_695 = _schedule_T_694 | _schedule_T_674; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_696 = _schedule_T_695 | _schedule_T_675; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_697 = _schedule_T_696 | _schedule_T_676; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_698 = _schedule_T_697 | _schedule_T_677; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_699 = _schedule_T_698 | _schedule_T_678; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_700 = _schedule_T_699 | _schedule_T_679; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_701 = _schedule_T_700 | _schedule_T_680; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_702 = _schedule_T_701 | _schedule_T_681; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_703 = _schedule_T_702 | _schedule_T_682; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_704 = _schedule_T_703 | _schedule_T_683; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_705 = _schedule_T_704 | _schedule_T_684; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_706 = _schedule_T_705 | _schedule_T_685; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_707 = _schedule_T_706 | _schedule_T_686; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_708 = _schedule_T_707 | _schedule_T_687; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_710 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_d_bits_put : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_711 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_d_bits_put : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_712 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_d_bits_put : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_713 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_d_bits_put : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_714 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_d_bits_put : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_715 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_d_bits_put : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_716 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_d_bits_put : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_717 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_d_bits_put : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_718 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_d_bits_put : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_719 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_d_bits_put : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_720 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_d_bits_put : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_721 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_d_bits_put : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_722 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_d_bits_put : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_723 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_d_bits_put : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_724 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_d_bits_put : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_725 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_d_bits_put : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_726 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_d_bits_put : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_727 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_d_bits_put : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_728 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_d_bits_put : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_729 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_d_bits_put : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_730 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_d_bits_put : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_731 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_d_bits_put : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_732 = _schedule_T_710 | _schedule_T_711; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_733 = _schedule_T_732 | _schedule_T_712; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_734 = _schedule_T_733 | _schedule_T_713; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_735 = _schedule_T_734 | _schedule_T_714; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_736 = _schedule_T_735 | _schedule_T_715; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_737 = _schedule_T_736 | _schedule_T_716; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_738 = _schedule_T_737 | _schedule_T_717; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_739 = _schedule_T_738 | _schedule_T_718; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_740 = _schedule_T_739 | _schedule_T_719; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_741 = _schedule_T_740 | _schedule_T_720; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_742 = _schedule_T_741 | _schedule_T_721; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_743 = _schedule_T_742 | _schedule_T_722; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_744 = _schedule_T_743 | _schedule_T_723; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_745 = _schedule_T_744 | _schedule_T_724; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_746 = _schedule_T_745 | _schedule_T_725; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_747 = _schedule_T_746 | _schedule_T_726; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_748 = _schedule_T_747 | _schedule_T_727; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_749 = _schedule_T_748 | _schedule_T_728; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_750 = _schedule_T_749 | _schedule_T_729; // @[Mux.scala 27:73]
  wire [5:0] _schedule_T_751 = _schedule_T_750 | _schedule_T_730; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_753 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_d_bits_offset : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_754 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_d_bits_offset : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_755 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_d_bits_offset : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_756 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_d_bits_offset : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_757 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_d_bits_offset : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_758 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_d_bits_offset : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_759 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_d_bits_offset : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_760 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_d_bits_offset : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_761 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_d_bits_offset : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_762 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_d_bits_offset : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_763 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_d_bits_offset : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_764 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_d_bits_offset : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_765 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_d_bits_offset : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_766 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_d_bits_offset : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_767 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_d_bits_offset : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_768 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_d_bits_offset : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_769 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_d_bits_offset : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_770 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_d_bits_offset : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_771 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_d_bits_offset : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_772 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_d_bits_offset : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_773 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_d_bits_offset : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_774 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_d_bits_offset : 4'h0; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_775 = _schedule_T_753 | _schedule_T_754; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_776 = _schedule_T_775 | _schedule_T_755; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_777 = _schedule_T_776 | _schedule_T_756; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_778 = _schedule_T_777 | _schedule_T_757; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_779 = _schedule_T_778 | _schedule_T_758; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_780 = _schedule_T_779 | _schedule_T_759; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_781 = _schedule_T_780 | _schedule_T_760; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_782 = _schedule_T_781 | _schedule_T_761; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_783 = _schedule_T_782 | _schedule_T_762; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_784 = _schedule_T_783 | _schedule_T_763; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_785 = _schedule_T_784 | _schedule_T_764; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_786 = _schedule_T_785 | _schedule_T_765; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_787 = _schedule_T_786 | _schedule_T_766; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_788 = _schedule_T_787 | _schedule_T_767; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_789 = _schedule_T_788 | _schedule_T_768; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_790 = _schedule_T_789 | _schedule_T_769; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_791 = _schedule_T_790 | _schedule_T_770; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_792 = _schedule_T_791 | _schedule_T_771; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_793 = _schedule_T_792 | _schedule_T_772; // @[Mux.scala 27:73]
  wire [3:0] _schedule_T_794 = _schedule_T_793 | _schedule_T_773; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_839 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_d_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_840 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_d_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_841 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_d_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_842 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_d_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_843 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_d_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_844 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_d_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_845 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_d_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_846 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_d_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_847 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_d_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_848 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_d_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_849 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_d_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_850 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_d_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_851 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_d_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_852 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_d_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_853 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_d_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_854 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_d_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_855 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_d_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_856 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_d_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_857 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_d_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_858 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_d_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_859 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_d_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_860 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_d_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_861 = _schedule_T_839 | _schedule_T_840; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_862 = _schedule_T_861 | _schedule_T_841; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_863 = _schedule_T_862 | _schedule_T_842; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_864 = _schedule_T_863 | _schedule_T_843; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_865 = _schedule_T_864 | _schedule_T_844; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_866 = _schedule_T_865 | _schedule_T_845; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_867 = _schedule_T_866 | _schedule_T_846; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_868 = _schedule_T_867 | _schedule_T_847; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_869 = _schedule_T_868 | _schedule_T_848; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_870 = _schedule_T_869 | _schedule_T_849; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_871 = _schedule_T_870 | _schedule_T_850; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_872 = _schedule_T_871 | _schedule_T_851; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_873 = _schedule_T_872 | _schedule_T_852; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_874 = _schedule_T_873 | _schedule_T_853; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_875 = _schedule_T_874 | _schedule_T_854; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_876 = _schedule_T_875 | _schedule_T_855; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_877 = _schedule_T_876 | _schedule_T_856; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_878 = _schedule_T_877 | _schedule_T_857; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_879 = _schedule_T_878 | _schedule_T_858; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_880 = _schedule_T_879 | _schedule_T_859; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_882 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_883 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_884 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_885 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_886 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_887 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_888 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_889 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_890 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_891 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_892 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_893 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_894 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_895 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_896 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_897 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_898 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_899 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_900 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_901 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_902 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_903 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_904 = _schedule_T_882 | _schedule_T_883; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_905 = _schedule_T_904 | _schedule_T_884; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_906 = _schedule_T_905 | _schedule_T_885; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_907 = _schedule_T_906 | _schedule_T_886; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_908 = _schedule_T_907 | _schedule_T_887; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_909 = _schedule_T_908 | _schedule_T_888; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_910 = _schedule_T_909 | _schedule_T_889; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_911 = _schedule_T_910 | _schedule_T_890; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_912 = _schedule_T_911 | _schedule_T_891; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_913 = _schedule_T_912 | _schedule_T_892; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_914 = _schedule_T_913 | _schedule_T_893; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_915 = _schedule_T_914 | _schedule_T_894; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_916 = _schedule_T_915 | _schedule_T_895; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_917 = _schedule_T_916 | _schedule_T_896; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_918 = _schedule_T_917 | _schedule_T_897; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_919 = _schedule_T_918 | _schedule_T_898; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_920 = _schedule_T_919 | _schedule_T_899; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_921 = _schedule_T_920 | _schedule_T_900; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_922 = _schedule_T_921 | _schedule_T_901; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_923 = _schedule_T_922 | _schedule_T_902; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_925 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_d_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_926 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_d_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_927 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_d_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_928 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_d_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_929 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_d_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_930 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_d_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_931 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_d_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_932 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_d_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_933 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_d_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_934 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_d_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_935 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_d_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_936 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_d_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_937 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_d_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_938 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_d_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_939 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_d_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_940 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_d_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_941 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_d_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_942 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_d_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_943 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_d_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_944 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_d_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_945 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_d_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_946 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_d_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_947 = _schedule_T_925 | _schedule_T_926; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_948 = _schedule_T_947 | _schedule_T_927; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_949 = _schedule_T_948 | _schedule_T_928; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_950 = _schedule_T_949 | _schedule_T_929; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_951 = _schedule_T_950 | _schedule_T_930; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_952 = _schedule_T_951 | _schedule_T_931; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_953 = _schedule_T_952 | _schedule_T_932; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_954 = _schedule_T_953 | _schedule_T_933; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_955 = _schedule_T_954 | _schedule_T_934; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_956 = _schedule_T_955 | _schedule_T_935; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_957 = _schedule_T_956 | _schedule_T_936; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_958 = _schedule_T_957 | _schedule_T_937; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_959 = _schedule_T_958 | _schedule_T_938; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_960 = _schedule_T_959 | _schedule_T_939; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_961 = _schedule_T_960 | _schedule_T_940; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_962 = _schedule_T_961 | _schedule_T_941; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_963 = _schedule_T_962 | _schedule_T_942; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_964 = _schedule_T_963 | _schedule_T_943; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_965 = _schedule_T_964 | _schedule_T_944; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_966 = _schedule_T_965 | _schedule_T_945; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_968 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_969 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_970 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_971 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_972 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_973 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_974 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_975 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_976 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_977 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_978 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_979 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_980 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_981 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_982 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_983 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_984 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_985 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_986 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_987 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_988 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_989 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_990 = _schedule_T_968 | _schedule_T_969; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_991 = _schedule_T_990 | _schedule_T_970; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_992 = _schedule_T_991 | _schedule_T_971; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_993 = _schedule_T_992 | _schedule_T_972; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_994 = _schedule_T_993 | _schedule_T_973; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_995 = _schedule_T_994 | _schedule_T_974; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_996 = _schedule_T_995 | _schedule_T_975; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_997 = _schedule_T_996 | _schedule_T_976; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_998 = _schedule_T_997 | _schedule_T_977; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_999 = _schedule_T_998 | _schedule_T_978; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1000 = _schedule_T_999 | _schedule_T_979; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1001 = _schedule_T_1000 | _schedule_T_980; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1002 = _schedule_T_1001 | _schedule_T_981; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1003 = _schedule_T_1002 | _schedule_T_982; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1004 = _schedule_T_1003 | _schedule_T_983; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1005 = _schedule_T_1004 | _schedule_T_984; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1006 = _schedule_T_1005 | _schedule_T_985; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1007 = _schedule_T_1006 | _schedule_T_986; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1008 = _schedule_T_1007 | _schedule_T_987; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1009 = _schedule_T_1008 | _schedule_T_988; // @[Mux.scala 27:73]
  wire  _schedule_T_1069 = mshr_selectOH[15] & abc_mshrs_15_io_schedule_bits_d_bits_prio_0; // @[Mux.scala 27:73]
  wire  _schedule_T_1090 = mshr_selectOH[0] & abc_mshrs_0_io_schedule_bits_d_bits_prio_0 | mshr_selectOH[1] &
    abc_mshrs_1_io_schedule_bits_d_bits_prio_0 | mshr_selectOH[2] & abc_mshrs_2_io_schedule_bits_d_bits_prio_0 |
    mshr_selectOH[3] & abc_mshrs_3_io_schedule_bits_d_bits_prio_0 | mshr_selectOH[4] &
    abc_mshrs_4_io_schedule_bits_d_bits_prio_0 | mshr_selectOH[5] & abc_mshrs_5_io_schedule_bits_d_bits_prio_0 |
    mshr_selectOH[6] & abc_mshrs_6_io_schedule_bits_d_bits_prio_0 | mshr_selectOH[7] &
    abc_mshrs_7_io_schedule_bits_d_bits_prio_0 | mshr_selectOH[8] & abc_mshrs_8_io_schedule_bits_d_bits_prio_0 |
    mshr_selectOH[9] & abc_mshrs_9_io_schedule_bits_d_bits_prio_0 | mshr_selectOH[10] &
    abc_mshrs_10_io_schedule_bits_d_bits_prio_0 | mshr_selectOH[11] & abc_mshrs_11_io_schedule_bits_d_bits_prio_0 |
    mshr_selectOH[12] & abc_mshrs_12_io_schedule_bits_d_bits_prio_0 | mshr_selectOH[13] &
    abc_mshrs_13_io_schedule_bits_d_bits_prio_0 | mshr_selectOH[14] & abc_mshrs_14_io_schedule_bits_d_bits_prio_0 |
    _schedule_T_1069; // @[Mux.scala 27:73]
  wire  _schedule_T_1155 = mshr_selectOH[15] & abc_mshrs_15_io_schedule_bits_d_bits_prio_2; // @[Mux.scala 27:73]
  wire  _schedule_T_1176 = mshr_selectOH[0] & abc_mshrs_0_io_schedule_bits_d_bits_prio_2 | mshr_selectOH[1] &
    abc_mshrs_1_io_schedule_bits_d_bits_prio_2 | mshr_selectOH[2] & abc_mshrs_2_io_schedule_bits_d_bits_prio_2 |
    mshr_selectOH[3] & abc_mshrs_3_io_schedule_bits_d_bits_prio_2 | mshr_selectOH[4] &
    abc_mshrs_4_io_schedule_bits_d_bits_prio_2 | mshr_selectOH[5] & abc_mshrs_5_io_schedule_bits_d_bits_prio_2 |
    mshr_selectOH[6] & abc_mshrs_6_io_schedule_bits_d_bits_prio_2 | mshr_selectOH[7] &
    abc_mshrs_7_io_schedule_bits_d_bits_prio_2 | mshr_selectOH[8] & abc_mshrs_8_io_schedule_bits_d_bits_prio_2 |
    mshr_selectOH[9] & abc_mshrs_9_io_schedule_bits_d_bits_prio_2 | mshr_selectOH[10] &
    abc_mshrs_10_io_schedule_bits_d_bits_prio_2 | mshr_selectOH[11] & abc_mshrs_11_io_schedule_bits_d_bits_prio_2 |
    mshr_selectOH[12] & abc_mshrs_12_io_schedule_bits_d_bits_prio_2 | mshr_selectOH[13] &
    abc_mshrs_13_io_schedule_bits_d_bits_prio_2 | mshr_selectOH[14] & abc_mshrs_14_io_schedule_bits_d_bits_prio_2 |
    _schedule_T_1155; // @[Mux.scala 27:73]
  wire  _schedule_T_1198 = mshr_selectOH[15] & abc_mshrs_15_io_schedule_bits_d_valid; // @[Mux.scala 27:73]
  wire  _schedule_T_1219 = mshr_selectOH[0] & abc_mshrs_0_io_schedule_bits_d_valid | mshr_selectOH[1] &
    abc_mshrs_1_io_schedule_bits_d_valid | mshr_selectOH[2] & abc_mshrs_2_io_schedule_bits_d_valid | mshr_selectOH[3] &
    abc_mshrs_3_io_schedule_bits_d_valid | mshr_selectOH[4] & abc_mshrs_4_io_schedule_bits_d_valid | mshr_selectOH[5] &
    abc_mshrs_5_io_schedule_bits_d_valid | mshr_selectOH[6] & abc_mshrs_6_io_schedule_bits_d_valid | mshr_selectOH[7] &
    abc_mshrs_7_io_schedule_bits_d_valid | mshr_selectOH[8] & abc_mshrs_8_io_schedule_bits_d_valid | mshr_selectOH[9] &
    abc_mshrs_9_io_schedule_bits_d_valid | mshr_selectOH[10] & abc_mshrs_10_io_schedule_bits_d_valid | mshr_selectOH[11]
     & abc_mshrs_11_io_schedule_bits_d_valid | mshr_selectOH[12] & abc_mshrs_12_io_schedule_bits_d_valid | mshr_selectOH
    [13] & abc_mshrs_13_io_schedule_bits_d_valid | mshr_selectOH[14] & abc_mshrs_14_io_schedule_bits_d_valid |
    _schedule_T_1198; // @[Mux.scala 27:73]
  wire  _schedule_T_1241 = mshr_selectOH[15] & abc_mshrs_15_io_schedule_bits_c_bits_dirty; // @[Mux.scala 27:73]
  wire  _schedule_T_1262 = mshr_selectOH[0] & abc_mshrs_0_io_schedule_bits_c_bits_dirty | mshr_selectOH[1] &
    abc_mshrs_1_io_schedule_bits_c_bits_dirty | mshr_selectOH[2] & abc_mshrs_2_io_schedule_bits_c_bits_dirty |
    mshr_selectOH[3] & abc_mshrs_3_io_schedule_bits_c_bits_dirty | mshr_selectOH[4] &
    abc_mshrs_4_io_schedule_bits_c_bits_dirty | mshr_selectOH[5] & abc_mshrs_5_io_schedule_bits_c_bits_dirty |
    mshr_selectOH[6] & abc_mshrs_6_io_schedule_bits_c_bits_dirty | mshr_selectOH[7] &
    abc_mshrs_7_io_schedule_bits_c_bits_dirty | mshr_selectOH[8] & abc_mshrs_8_io_schedule_bits_c_bits_dirty |
    mshr_selectOH[9] & abc_mshrs_9_io_schedule_bits_c_bits_dirty | mshr_selectOH[10] &
    abc_mshrs_10_io_schedule_bits_c_bits_dirty | mshr_selectOH[11] & abc_mshrs_11_io_schedule_bits_c_bits_dirty |
    mshr_selectOH[12] & abc_mshrs_12_io_schedule_bits_c_bits_dirty | mshr_selectOH[13] &
    abc_mshrs_13_io_schedule_bits_c_bits_dirty | mshr_selectOH[14] & abc_mshrs_14_io_schedule_bits_c_bits_dirty |
    _schedule_T_1241; // @[Mux.scala 27:73]
  wire  _schedule_T_1284 = mshr_selectOH[15] & abc_mshrs_15_io_schedule_bits_c_bits_way; // @[Mux.scala 27:73]
  wire  _schedule_T_1305 = mshr_selectOH[0] & abc_mshrs_0_io_schedule_bits_c_bits_way | mshr_selectOH[1] &
    abc_mshrs_1_io_schedule_bits_c_bits_way | mshr_selectOH[2] & abc_mshrs_2_io_schedule_bits_c_bits_way | mshr_selectOH
    [3] & abc_mshrs_3_io_schedule_bits_c_bits_way | mshr_selectOH[4] & abc_mshrs_4_io_schedule_bits_c_bits_way |
    mshr_selectOH[5] & abc_mshrs_5_io_schedule_bits_c_bits_way | mshr_selectOH[6] &
    abc_mshrs_6_io_schedule_bits_c_bits_way | mshr_selectOH[7] & abc_mshrs_7_io_schedule_bits_c_bits_way | mshr_selectOH
    [8] & abc_mshrs_8_io_schedule_bits_c_bits_way | mshr_selectOH[9] & abc_mshrs_9_io_schedule_bits_c_bits_way |
    mshr_selectOH[10] & abc_mshrs_10_io_schedule_bits_c_bits_way | mshr_selectOH[11] &
    abc_mshrs_11_io_schedule_bits_c_bits_way | mshr_selectOH[12] & abc_mshrs_12_io_schedule_bits_c_bits_way |
    mshr_selectOH[13] & abc_mshrs_13_io_schedule_bits_c_bits_way | mshr_selectOH[14] &
    abc_mshrs_14_io_schedule_bits_c_bits_way | _schedule_T_1284; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1312 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_c_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1313 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_c_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1314 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_c_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1315 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_c_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1316 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_c_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1317 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_c_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1318 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_c_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1319 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_c_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1320 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_c_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1321 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_c_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1322 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_c_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1323 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_c_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1324 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_c_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1325 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_c_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1326 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_c_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1327 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_c_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1328 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_c_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1329 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_c_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1330 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_c_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1331 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_c_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1332 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_c_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1333 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_c_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1334 = _schedule_T_1312 | _schedule_T_1313; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1335 = _schedule_T_1334 | _schedule_T_1314; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1336 = _schedule_T_1335 | _schedule_T_1315; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1337 = _schedule_T_1336 | _schedule_T_1316; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1338 = _schedule_T_1337 | _schedule_T_1317; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1339 = _schedule_T_1338 | _schedule_T_1318; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1340 = _schedule_T_1339 | _schedule_T_1319; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1341 = _schedule_T_1340 | _schedule_T_1320; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1342 = _schedule_T_1341 | _schedule_T_1321; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1343 = _schedule_T_1342 | _schedule_T_1322; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1344 = _schedule_T_1343 | _schedule_T_1323; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1345 = _schedule_T_1344 | _schedule_T_1324; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1346 = _schedule_T_1345 | _schedule_T_1325; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1347 = _schedule_T_1346 | _schedule_T_1326; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1348 = _schedule_T_1347 | _schedule_T_1327; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1349 = _schedule_T_1348 | _schedule_T_1328; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1350 = _schedule_T_1349 | _schedule_T_1329; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1351 = _schedule_T_1350 | _schedule_T_1330; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1352 = _schedule_T_1351 | _schedule_T_1331; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1353 = _schedule_T_1352 | _schedule_T_1332; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1355 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_c_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1356 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_c_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1357 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_c_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1358 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_c_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1359 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_c_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1360 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_c_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1361 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_c_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1362 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_c_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1363 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_c_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1364 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_c_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1365 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_c_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1366 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_c_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1367 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_c_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1368 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_c_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1369 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_c_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1370 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_c_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1371 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_c_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1372 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_c_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1373 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_c_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1374 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_c_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1375 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_c_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1376 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_c_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1377 = _schedule_T_1355 | _schedule_T_1356; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1378 = _schedule_T_1377 | _schedule_T_1357; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1379 = _schedule_T_1378 | _schedule_T_1358; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1380 = _schedule_T_1379 | _schedule_T_1359; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1381 = _schedule_T_1380 | _schedule_T_1360; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1382 = _schedule_T_1381 | _schedule_T_1361; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1383 = _schedule_T_1382 | _schedule_T_1362; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1384 = _schedule_T_1383 | _schedule_T_1363; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1385 = _schedule_T_1384 | _schedule_T_1364; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1386 = _schedule_T_1385 | _schedule_T_1365; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1387 = _schedule_T_1386 | _schedule_T_1366; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1388 = _schedule_T_1387 | _schedule_T_1367; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1389 = _schedule_T_1388 | _schedule_T_1368; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1390 = _schedule_T_1389 | _schedule_T_1369; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1391 = _schedule_T_1390 | _schedule_T_1370; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1392 = _schedule_T_1391 | _schedule_T_1371; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1393 = _schedule_T_1392 | _schedule_T_1372; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1394 = _schedule_T_1393 | _schedule_T_1373; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1395 = _schedule_T_1394 | _schedule_T_1374; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1396 = _schedule_T_1395 | _schedule_T_1375; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1441 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_c_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1442 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_c_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1443 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_c_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1444 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_c_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1445 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_c_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1446 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_c_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1447 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_c_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1448 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_c_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1449 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_c_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1450 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_c_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1451 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_c_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1452 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_c_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1453 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_c_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1454 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_c_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1455 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_c_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1456 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_c_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1457 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_c_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1458 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_c_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1459 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_c_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1460 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_c_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1461 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_c_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1462 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_c_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1463 = _schedule_T_1441 | _schedule_T_1442; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1464 = _schedule_T_1463 | _schedule_T_1443; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1465 = _schedule_T_1464 | _schedule_T_1444; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1466 = _schedule_T_1465 | _schedule_T_1445; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1467 = _schedule_T_1466 | _schedule_T_1446; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1468 = _schedule_T_1467 | _schedule_T_1447; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1469 = _schedule_T_1468 | _schedule_T_1448; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1470 = _schedule_T_1469 | _schedule_T_1449; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1471 = _schedule_T_1470 | _schedule_T_1450; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1472 = _schedule_T_1471 | _schedule_T_1451; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1473 = _schedule_T_1472 | _schedule_T_1452; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1474 = _schedule_T_1473 | _schedule_T_1453; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1475 = _schedule_T_1474 | _schedule_T_1454; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1476 = _schedule_T_1475 | _schedule_T_1455; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1477 = _schedule_T_1476 | _schedule_T_1456; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1478 = _schedule_T_1477 | _schedule_T_1457; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1479 = _schedule_T_1478 | _schedule_T_1458; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1480 = _schedule_T_1479 | _schedule_T_1459; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1481 = _schedule_T_1480 | _schedule_T_1460; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1482 = _schedule_T_1481 | _schedule_T_1461; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1484 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_c_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1485 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_c_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1486 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_c_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1487 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_c_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1488 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_c_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1489 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_c_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1490 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_c_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1491 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_c_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1492 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_c_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1493 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_c_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1494 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_c_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1495 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_c_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1496 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_c_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1497 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_c_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1498 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_c_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1499 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_c_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1500 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_c_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1501 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_c_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1502 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_c_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1503 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_c_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1504 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_c_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1505 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_c_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1506 = _schedule_T_1484 | _schedule_T_1485; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1507 = _schedule_T_1506 | _schedule_T_1486; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1508 = _schedule_T_1507 | _schedule_T_1487; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1509 = _schedule_T_1508 | _schedule_T_1488; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1510 = _schedule_T_1509 | _schedule_T_1489; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1511 = _schedule_T_1510 | _schedule_T_1490; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1512 = _schedule_T_1511 | _schedule_T_1491; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1513 = _schedule_T_1512 | _schedule_T_1492; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1514 = _schedule_T_1513 | _schedule_T_1493; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1515 = _schedule_T_1514 | _schedule_T_1494; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1516 = _schedule_T_1515 | _schedule_T_1495; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1517 = _schedule_T_1516 | _schedule_T_1496; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1518 = _schedule_T_1517 | _schedule_T_1497; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1519 = _schedule_T_1518 | _schedule_T_1498; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1520 = _schedule_T_1519 | _schedule_T_1499; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1521 = _schedule_T_1520 | _schedule_T_1500; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1522 = _schedule_T_1521 | _schedule_T_1501; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1523 = _schedule_T_1522 | _schedule_T_1502; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1524 = _schedule_T_1523 | _schedule_T_1503; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1525 = _schedule_T_1524 | _schedule_T_1504; // @[Mux.scala 27:73]
  wire [2:0] schedule_c_bits_opcode = _schedule_T_1525 | _schedule_T_1505; // @[Mux.scala 27:73]
  wire  _schedule_T_1542 = mshr_selectOH[15] & abc_mshrs_15_io_schedule_bits_c_valid; // @[Mux.scala 27:73]
  wire  _schedule_T_1563 = mshr_selectOH[0] & abc_mshrs_0_io_schedule_bits_c_valid | mshr_selectOH[1] &
    abc_mshrs_1_io_schedule_bits_c_valid | mshr_selectOH[2] & abc_mshrs_2_io_schedule_bits_c_valid | mshr_selectOH[3] &
    abc_mshrs_3_io_schedule_bits_c_valid | mshr_selectOH[4] & abc_mshrs_4_io_schedule_bits_c_valid | mshr_selectOH[5] &
    abc_mshrs_5_io_schedule_bits_c_valid | mshr_selectOH[6] & abc_mshrs_6_io_schedule_bits_c_valid | mshr_selectOH[7] &
    abc_mshrs_7_io_schedule_bits_c_valid | mshr_selectOH[8] & abc_mshrs_8_io_schedule_bits_c_valid | mshr_selectOH[9] &
    abc_mshrs_9_io_schedule_bits_c_valid | mshr_selectOH[10] & abc_mshrs_10_io_schedule_bits_c_valid | mshr_selectOH[11]
     & abc_mshrs_11_io_schedule_bits_c_valid | mshr_selectOH[12] & abc_mshrs_12_io_schedule_bits_c_valid | mshr_selectOH
    [13] & abc_mshrs_13_io_schedule_bits_c_valid | mshr_selectOH[14] & abc_mshrs_14_io_schedule_bits_c_valid |
    _schedule_T_1542; // @[Mux.scala 27:73]
  wire  _schedule_T_1585 = mshr_selectOH[15] & abc_mshrs_15_io_schedule_bits_b_bits_clients; // @[Mux.scala 27:73]
  wire  _schedule_T_1606 = mshr_selectOH[0] & abc_mshrs_0_io_schedule_bits_b_bits_clients | mshr_selectOH[1] &
    abc_mshrs_1_io_schedule_bits_b_bits_clients | mshr_selectOH[2] & abc_mshrs_2_io_schedule_bits_b_bits_clients |
    mshr_selectOH[3] & abc_mshrs_3_io_schedule_bits_b_bits_clients | mshr_selectOH[4] &
    abc_mshrs_4_io_schedule_bits_b_bits_clients | mshr_selectOH[5] & abc_mshrs_5_io_schedule_bits_b_bits_clients |
    mshr_selectOH[6] & abc_mshrs_6_io_schedule_bits_b_bits_clients | mshr_selectOH[7] &
    abc_mshrs_7_io_schedule_bits_b_bits_clients | mshr_selectOH[8] & abc_mshrs_8_io_schedule_bits_b_bits_clients |
    mshr_selectOH[9] & abc_mshrs_9_io_schedule_bits_b_bits_clients | mshr_selectOH[10] &
    abc_mshrs_10_io_schedule_bits_b_bits_clients | mshr_selectOH[11] & abc_mshrs_11_io_schedule_bits_b_bits_clients |
    mshr_selectOH[12] & abc_mshrs_12_io_schedule_bits_b_bits_clients | mshr_selectOH[13] &
    abc_mshrs_13_io_schedule_bits_b_bits_clients | mshr_selectOH[14] & abc_mshrs_14_io_schedule_bits_b_bits_clients |
    _schedule_T_1585; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1613 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_b_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1614 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_b_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1615 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_b_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1616 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_b_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1617 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_b_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1618 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_b_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1619 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_b_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1620 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_b_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1621 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_b_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1622 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_b_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1623 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_b_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1624 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_b_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1625 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_b_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1626 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_b_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1627 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_b_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1628 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_b_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1629 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_b_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1630 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_b_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1631 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_b_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1632 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_b_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1633 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_b_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1634 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_b_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1635 = _schedule_T_1613 | _schedule_T_1614; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1636 = _schedule_T_1635 | _schedule_T_1615; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1637 = _schedule_T_1636 | _schedule_T_1616; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1638 = _schedule_T_1637 | _schedule_T_1617; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1639 = _schedule_T_1638 | _schedule_T_1618; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1640 = _schedule_T_1639 | _schedule_T_1619; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1641 = _schedule_T_1640 | _schedule_T_1620; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1642 = _schedule_T_1641 | _schedule_T_1621; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1643 = _schedule_T_1642 | _schedule_T_1622; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1644 = _schedule_T_1643 | _schedule_T_1623; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1645 = _schedule_T_1644 | _schedule_T_1624; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1646 = _schedule_T_1645 | _schedule_T_1625; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1647 = _schedule_T_1646 | _schedule_T_1626; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1648 = _schedule_T_1647 | _schedule_T_1627; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1649 = _schedule_T_1648 | _schedule_T_1628; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1650 = _schedule_T_1649 | _schedule_T_1629; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1651 = _schedule_T_1650 | _schedule_T_1630; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1652 = _schedule_T_1651 | _schedule_T_1631; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1653 = _schedule_T_1652 | _schedule_T_1632; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1654 = _schedule_T_1653 | _schedule_T_1633; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1656 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_b_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1657 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_b_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1658 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_b_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1659 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_b_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1660 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_b_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1661 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_b_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1662 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_b_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1663 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_b_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1664 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_b_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1665 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_b_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1666 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_b_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1667 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_b_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1668 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_b_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1669 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_b_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1670 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_b_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1671 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_b_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1672 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_b_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1673 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_b_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1674 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_b_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1675 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_b_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1676 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_b_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1677 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_b_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1678 = _schedule_T_1656 | _schedule_T_1657; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1679 = _schedule_T_1678 | _schedule_T_1658; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1680 = _schedule_T_1679 | _schedule_T_1659; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1681 = _schedule_T_1680 | _schedule_T_1660; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1682 = _schedule_T_1681 | _schedule_T_1661; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1683 = _schedule_T_1682 | _schedule_T_1662; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1684 = _schedule_T_1683 | _schedule_T_1663; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1685 = _schedule_T_1684 | _schedule_T_1664; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1686 = _schedule_T_1685 | _schedule_T_1665; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1687 = _schedule_T_1686 | _schedule_T_1666; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1688 = _schedule_T_1687 | _schedule_T_1667; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1689 = _schedule_T_1688 | _schedule_T_1668; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1690 = _schedule_T_1689 | _schedule_T_1669; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1691 = _schedule_T_1690 | _schedule_T_1670; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1692 = _schedule_T_1691 | _schedule_T_1671; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1693 = _schedule_T_1692 | _schedule_T_1672; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1694 = _schedule_T_1693 | _schedule_T_1673; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1695 = _schedule_T_1694 | _schedule_T_1674; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1696 = _schedule_T_1695 | _schedule_T_1675; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1697 = _schedule_T_1696 | _schedule_T_1676; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1699 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_b_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1700 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_b_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1701 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_b_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1702 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_b_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1703 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_b_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1704 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_b_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1705 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_b_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1706 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_b_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1707 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_b_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1708 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_b_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1709 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_b_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1710 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_b_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1711 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_b_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1712 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_b_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1713 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_b_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1714 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_b_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1715 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_b_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1716 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_b_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1717 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_b_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1718 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_b_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1719 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_b_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1720 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_b_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1721 = _schedule_T_1699 | _schedule_T_1700; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1722 = _schedule_T_1721 | _schedule_T_1701; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1723 = _schedule_T_1722 | _schedule_T_1702; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1724 = _schedule_T_1723 | _schedule_T_1703; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1725 = _schedule_T_1724 | _schedule_T_1704; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1726 = _schedule_T_1725 | _schedule_T_1705; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1727 = _schedule_T_1726 | _schedule_T_1706; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1728 = _schedule_T_1727 | _schedule_T_1707; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1729 = _schedule_T_1728 | _schedule_T_1708; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1730 = _schedule_T_1729 | _schedule_T_1709; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1731 = _schedule_T_1730 | _schedule_T_1710; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1732 = _schedule_T_1731 | _schedule_T_1711; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1733 = _schedule_T_1732 | _schedule_T_1712; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1734 = _schedule_T_1733 | _schedule_T_1713; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1735 = _schedule_T_1734 | _schedule_T_1714; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1736 = _schedule_T_1735 | _schedule_T_1715; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1737 = _schedule_T_1736 | _schedule_T_1716; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1738 = _schedule_T_1737 | _schedule_T_1717; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1739 = _schedule_T_1738 | _schedule_T_1718; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1740 = _schedule_T_1739 | _schedule_T_1719; // @[Mux.scala 27:73]
  wire  _schedule_T_1757 = mshr_selectOH[15] & abc_mshrs_15_io_schedule_bits_b_valid; // @[Mux.scala 27:73]
  wire  _schedule_T_1778 = mshr_selectOH[0] & abc_mshrs_0_io_schedule_bits_b_valid | mshr_selectOH[1] &
    abc_mshrs_1_io_schedule_bits_b_valid | mshr_selectOH[2] & abc_mshrs_2_io_schedule_bits_b_valid | mshr_selectOH[3] &
    abc_mshrs_3_io_schedule_bits_b_valid | mshr_selectOH[4] & abc_mshrs_4_io_schedule_bits_b_valid | mshr_selectOH[5] &
    abc_mshrs_5_io_schedule_bits_b_valid | mshr_selectOH[6] & abc_mshrs_6_io_schedule_bits_b_valid | mshr_selectOH[7] &
    abc_mshrs_7_io_schedule_bits_b_valid | mshr_selectOH[8] & abc_mshrs_8_io_schedule_bits_b_valid | mshr_selectOH[9] &
    abc_mshrs_9_io_schedule_bits_b_valid | mshr_selectOH[10] & abc_mshrs_10_io_schedule_bits_b_valid | mshr_selectOH[11]
     & abc_mshrs_11_io_schedule_bits_b_valid | mshr_selectOH[12] & abc_mshrs_12_io_schedule_bits_b_valid | mshr_selectOH
    [13] & abc_mshrs_13_io_schedule_bits_b_valid | mshr_selectOH[14] & abc_mshrs_14_io_schedule_bits_b_valid |
    _schedule_T_1757; // @[Mux.scala 27:73]
  wire  _schedule_T_1800 = mshr_selectOH[15] & abc_mshrs_15_io_schedule_bits_a_bits_block; // @[Mux.scala 27:73]
  wire  _schedule_T_1821 = mshr_selectOH[0] & abc_mshrs_0_io_schedule_bits_a_bits_block | mshr_selectOH[1] &
    abc_mshrs_1_io_schedule_bits_a_bits_block | mshr_selectOH[2] & abc_mshrs_2_io_schedule_bits_a_bits_block |
    mshr_selectOH[3] & abc_mshrs_3_io_schedule_bits_a_bits_block | mshr_selectOH[4] &
    abc_mshrs_4_io_schedule_bits_a_bits_block | mshr_selectOH[5] & abc_mshrs_5_io_schedule_bits_a_bits_block |
    mshr_selectOH[6] & abc_mshrs_6_io_schedule_bits_a_bits_block | mshr_selectOH[7] &
    abc_mshrs_7_io_schedule_bits_a_bits_block | mshr_selectOH[8] & abc_mshrs_8_io_schedule_bits_a_bits_block |
    mshr_selectOH[9] & abc_mshrs_9_io_schedule_bits_a_bits_block | mshr_selectOH[10] &
    abc_mshrs_10_io_schedule_bits_a_bits_block | mshr_selectOH[11] & abc_mshrs_11_io_schedule_bits_a_bits_block |
    mshr_selectOH[12] & abc_mshrs_12_io_schedule_bits_a_bits_block | mshr_selectOH[13] &
    abc_mshrs_13_io_schedule_bits_a_bits_block | mshr_selectOH[14] & abc_mshrs_14_io_schedule_bits_a_bits_block |
    _schedule_T_1800; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1871 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1872 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1873 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1874 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1875 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1876 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1877 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1878 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1879 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1880 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1881 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1882 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1883 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1884 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1885 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1886 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1887 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1888 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1889 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1890 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1891 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1892 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1893 = _schedule_T_1871 | _schedule_T_1872; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1894 = _schedule_T_1893 | _schedule_T_1873; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1895 = _schedule_T_1894 | _schedule_T_1874; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1896 = _schedule_T_1895 | _schedule_T_1875; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1897 = _schedule_T_1896 | _schedule_T_1876; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1898 = _schedule_T_1897 | _schedule_T_1877; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1899 = _schedule_T_1898 | _schedule_T_1878; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1900 = _schedule_T_1899 | _schedule_T_1879; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1901 = _schedule_T_1900 | _schedule_T_1880; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1902 = _schedule_T_1901 | _schedule_T_1881; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1903 = _schedule_T_1902 | _schedule_T_1882; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1904 = _schedule_T_1903 | _schedule_T_1883; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1905 = _schedule_T_1904 | _schedule_T_1884; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1906 = _schedule_T_1905 | _schedule_T_1885; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1907 = _schedule_T_1906 | _schedule_T_1886; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1908 = _schedule_T_1907 | _schedule_T_1887; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1909 = _schedule_T_1908 | _schedule_T_1888; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1910 = _schedule_T_1909 | _schedule_T_1889; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1911 = _schedule_T_1910 | _schedule_T_1890; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1912 = _schedule_T_1911 | _schedule_T_1891; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1914 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_a_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1915 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_a_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1916 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_a_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1917 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_a_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1918 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_a_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1919 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_a_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1920 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_a_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1921 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_a_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1922 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_a_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1923 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_a_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1924 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_a_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1925 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_a_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1926 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_a_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1927 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_a_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1928 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_a_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1929 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_a_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1930 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_a_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1931 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_a_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1932 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_a_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1933 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_a_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1934 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_a_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1935 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_a_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1936 = _schedule_T_1914 | _schedule_T_1915; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1937 = _schedule_T_1936 | _schedule_T_1916; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1938 = _schedule_T_1937 | _schedule_T_1917; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1939 = _schedule_T_1938 | _schedule_T_1918; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1940 = _schedule_T_1939 | _schedule_T_1919; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1941 = _schedule_T_1940 | _schedule_T_1920; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1942 = _schedule_T_1941 | _schedule_T_1921; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1943 = _schedule_T_1942 | _schedule_T_1922; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1944 = _schedule_T_1943 | _schedule_T_1923; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1945 = _schedule_T_1944 | _schedule_T_1924; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1946 = _schedule_T_1945 | _schedule_T_1925; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1947 = _schedule_T_1946 | _schedule_T_1926; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1948 = _schedule_T_1947 | _schedule_T_1927; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1949 = _schedule_T_1948 | _schedule_T_1928; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1950 = _schedule_T_1949 | _schedule_T_1929; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1951 = _schedule_T_1950 | _schedule_T_1930; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1952 = _schedule_T_1951 | _schedule_T_1931; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1953 = _schedule_T_1952 | _schedule_T_1932; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1954 = _schedule_T_1953 | _schedule_T_1933; // @[Mux.scala 27:73]
  wire [2:0] _schedule_T_1955 = _schedule_T_1954 | _schedule_T_1934; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1957 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_a_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1958 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_a_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1959 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_a_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1960 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_a_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1961 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_a_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1962 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_a_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1963 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_a_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1964 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_a_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1965 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_a_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1966 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_a_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1967 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_a_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1968 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_a_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1969 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_a_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1970 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_a_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1971 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_a_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1972 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_a_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1973 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_a_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1974 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_a_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1975 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_a_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1976 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_a_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1977 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_a_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1978 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_a_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1979 = _schedule_T_1957 | _schedule_T_1958; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1980 = _schedule_T_1979 | _schedule_T_1959; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1981 = _schedule_T_1980 | _schedule_T_1960; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1982 = _schedule_T_1981 | _schedule_T_1961; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1983 = _schedule_T_1982 | _schedule_T_1962; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1984 = _schedule_T_1983 | _schedule_T_1963; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1985 = _schedule_T_1984 | _schedule_T_1964; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1986 = _schedule_T_1985 | _schedule_T_1965; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1987 = _schedule_T_1986 | _schedule_T_1966; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1988 = _schedule_T_1987 | _schedule_T_1967; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1989 = _schedule_T_1988 | _schedule_T_1968; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1990 = _schedule_T_1989 | _schedule_T_1969; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1991 = _schedule_T_1990 | _schedule_T_1970; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1992 = _schedule_T_1991 | _schedule_T_1971; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1993 = _schedule_T_1992 | _schedule_T_1972; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1994 = _schedule_T_1993 | _schedule_T_1973; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1995 = _schedule_T_1994 | _schedule_T_1974; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1996 = _schedule_T_1995 | _schedule_T_1975; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1997 = _schedule_T_1996 | _schedule_T_1976; // @[Mux.scala 27:73]
  wire [24:0] _schedule_T_1998 = _schedule_T_1997 | _schedule_T_1977; // @[Mux.scala 27:73]
  wire  _schedule_T_2015 = mshr_selectOH[15] & abc_mshrs_15_io_schedule_bits_a_valid; // @[Mux.scala 27:73]
  wire  _schedule_T_2036 = mshr_selectOH[0] & abc_mshrs_0_io_schedule_bits_a_valid | mshr_selectOH[1] &
    abc_mshrs_1_io_schedule_bits_a_valid | mshr_selectOH[2] & abc_mshrs_2_io_schedule_bits_a_valid | mshr_selectOH[3] &
    abc_mshrs_3_io_schedule_bits_a_valid | mshr_selectOH[4] & abc_mshrs_4_io_schedule_bits_a_valid | mshr_selectOH[5] &
    abc_mshrs_5_io_schedule_bits_a_valid | mshr_selectOH[6] & abc_mshrs_6_io_schedule_bits_a_valid | mshr_selectOH[7] &
    abc_mshrs_7_io_schedule_bits_a_valid | mshr_selectOH[8] & abc_mshrs_8_io_schedule_bits_a_valid | mshr_selectOH[9] &
    abc_mshrs_9_io_schedule_bits_a_valid | mshr_selectOH[10] & abc_mshrs_10_io_schedule_bits_a_valid | mshr_selectOH[11]
     & abc_mshrs_11_io_schedule_bits_a_valid | mshr_selectOH[12] & abc_mshrs_12_io_schedule_bits_a_valid | mshr_selectOH
    [13] & abc_mshrs_13_io_schedule_bits_a_valid | mshr_selectOH[14] & abc_mshrs_14_io_schedule_bits_a_valid |
    _schedule_T_2015; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_22 = mshr_selectOH[0] ? abc_mshrs_0_io_status_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_23 = mshr_selectOH[1] ? abc_mshrs_1_io_status_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_24 = mshr_selectOH[2] ? abc_mshrs_2_io_status_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_25 = mshr_selectOH[3] ? abc_mshrs_3_io_status_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_26 = mshr_selectOH[4] ? abc_mshrs_4_io_status_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_27 = mshr_selectOH[5] ? abc_mshrs_5_io_status_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_28 = mshr_selectOH[6] ? abc_mshrs_6_io_status_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_29 = mshr_selectOH[7] ? abc_mshrs_7_io_status_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_30 = mshr_selectOH[8] ? abc_mshrs_8_io_status_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_31 = mshr_selectOH[9] ? abc_mshrs_9_io_status_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_32 = mshr_selectOH[10] ? abc_mshrs_10_io_status_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_33 = mshr_selectOH[11] ? abc_mshrs_11_io_status_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_34 = mshr_selectOH[12] ? abc_mshrs_12_io_status_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_35 = mshr_selectOH[13] ? abc_mshrs_13_io_status_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_36 = mshr_selectOH[14] ? abc_mshrs_14_io_status_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_37 = mshr_selectOH[15] ? abc_mshrs_15_io_status_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_38 = mshr_selectOH[16] ? abc_mshrs_16_io_status_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_39 = mshr_selectOH[17] ? abc_mshrs_17_io_status_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_40 = mshr_selectOH[18] ? abc_mshrs_18_io_status_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_41 = mshr_selectOH[19] ? abc_mshrs_19_io_status_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_42 = mshr_selectOH[20] ? bc_mshr_io_status_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_43 = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : 25'h0; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_44 = _scheduleTag_T_22 | _scheduleTag_T_23; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_45 = _scheduleTag_T_44 | _scheduleTag_T_24; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_46 = _scheduleTag_T_45 | _scheduleTag_T_25; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_47 = _scheduleTag_T_46 | _scheduleTag_T_26; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_48 = _scheduleTag_T_47 | _scheduleTag_T_27; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_49 = _scheduleTag_T_48 | _scheduleTag_T_28; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_50 = _scheduleTag_T_49 | _scheduleTag_T_29; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_51 = _scheduleTag_T_50 | _scheduleTag_T_30; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_52 = _scheduleTag_T_51 | _scheduleTag_T_31; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_53 = _scheduleTag_T_52 | _scheduleTag_T_32; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_54 = _scheduleTag_T_53 | _scheduleTag_T_33; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_55 = _scheduleTag_T_54 | _scheduleTag_T_34; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_56 = _scheduleTag_T_55 | _scheduleTag_T_35; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_57 = _scheduleTag_T_56 | _scheduleTag_T_36; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_58 = _scheduleTag_T_57 | _scheduleTag_T_37; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_59 = _scheduleTag_T_58 | _scheduleTag_T_38; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_60 = _scheduleTag_T_59 | _scheduleTag_T_39; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_61 = _scheduleTag_T_60 | _scheduleTag_T_40; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_62 = _scheduleTag_T_61 | _scheduleTag_T_41; // @[Mux.scala 27:73]
  wire [24:0] _scheduleTag_T_63 = _scheduleTag_T_62 | _scheduleTag_T_42; // @[Mux.scala 27:73]
  wire [24:0] scheduleTag = _scheduleTag_T_63 | _scheduleTag_T_43; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_22 = mshr_selectOH[0] ? abc_mshrs_0_io_status_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_23 = mshr_selectOH[1] ? abc_mshrs_1_io_status_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_24 = mshr_selectOH[2] ? abc_mshrs_2_io_status_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_25 = mshr_selectOH[3] ? abc_mshrs_3_io_status_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_26 = mshr_selectOH[4] ? abc_mshrs_4_io_status_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_27 = mshr_selectOH[5] ? abc_mshrs_5_io_status_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_28 = mshr_selectOH[6] ? abc_mshrs_6_io_status_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_29 = mshr_selectOH[7] ? abc_mshrs_7_io_status_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_30 = mshr_selectOH[8] ? abc_mshrs_8_io_status_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_31 = mshr_selectOH[9] ? abc_mshrs_9_io_status_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_32 = mshr_selectOH[10] ? abc_mshrs_10_io_status_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_33 = mshr_selectOH[11] ? abc_mshrs_11_io_status_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_34 = mshr_selectOH[12] ? abc_mshrs_12_io_status_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_35 = mshr_selectOH[13] ? abc_mshrs_13_io_status_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_36 = mshr_selectOH[14] ? abc_mshrs_14_io_status_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_37 = mshr_selectOH[15] ? abc_mshrs_15_io_status_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_38 = mshr_selectOH[16] ? abc_mshrs_16_io_status_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_39 = mshr_selectOH[17] ? abc_mshrs_17_io_status_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_40 = mshr_selectOH[18] ? abc_mshrs_18_io_status_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_41 = mshr_selectOH[19] ? abc_mshrs_19_io_status_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_42 = mshr_selectOH[20] ? bc_mshr_io_status_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_43 = mshr_selectOH[21] ? c_mshr_io_status_bits_set : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_44 = _scheduleSet_T_22 | _scheduleSet_T_23; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_45 = _scheduleSet_T_44 | _scheduleSet_T_24; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_46 = _scheduleSet_T_45 | _scheduleSet_T_25; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_47 = _scheduleSet_T_46 | _scheduleSet_T_26; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_48 = _scheduleSet_T_47 | _scheduleSet_T_27; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_49 = _scheduleSet_T_48 | _scheduleSet_T_28; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_50 = _scheduleSet_T_49 | _scheduleSet_T_29; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_51 = _scheduleSet_T_50 | _scheduleSet_T_30; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_52 = _scheduleSet_T_51 | _scheduleSet_T_31; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_53 = _scheduleSet_T_52 | _scheduleSet_T_32; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_54 = _scheduleSet_T_53 | _scheduleSet_T_33; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_55 = _scheduleSet_T_54 | _scheduleSet_T_34; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_56 = _scheduleSet_T_55 | _scheduleSet_T_35; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_57 = _scheduleSet_T_56 | _scheduleSet_T_36; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_58 = _scheduleSet_T_57 | _scheduleSet_T_37; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_59 = _scheduleSet_T_58 | _scheduleSet_T_38; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_60 = _scheduleSet_T_59 | _scheduleSet_T_39; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_61 = _scheduleSet_T_60 | _scheduleSet_T_40; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_62 = _scheduleSet_T_61 | _scheduleSet_T_41; // @[Mux.scala 27:73]
  wire [2:0] _scheduleSet_T_63 = _scheduleSet_T_62 | _scheduleSet_T_42; // @[Mux.scala 27:73]
  wire [2:0] scheduleSet = _scheduleSet_T_63 | _scheduleSet_T_43; // @[Mux.scala 27:73]
  wire [21:0] _GEN_297 = {{1'd0}, mshr_selectOH[21:1]}; // @[package.scala 253:43]
  wire [21:0] _robin_filter_T_1 = mshr_selectOH | _GEN_297; // @[package.scala 253:43]
  wire [21:0] _GEN_310 = {{2'd0}, _robin_filter_T_1[21:2]}; // @[package.scala 253:43]
  wire [21:0] _robin_filter_T_3 = _robin_filter_T_1 | _GEN_310; // @[package.scala 253:43]
  wire [21:0] _GEN_324 = {{4'd0}, _robin_filter_T_3[21:4]}; // @[package.scala 253:43]
  wire [21:0] _robin_filter_T_5 = _robin_filter_T_3 | _GEN_324; // @[package.scala 253:43]
  wire [21:0] _GEN_325 = {{8'd0}, _robin_filter_T_5[21:8]}; // @[package.scala 253:43]
  wire [21:0] _robin_filter_T_7 = _robin_filter_T_5 | _GEN_325; // @[package.scala 253:43]
  wire [21:0] _GEN_381 = {{16'd0}, _robin_filter_T_7[21:16]}; // @[package.scala 253:43]
  wire [21:0] _robin_filter_T_9 = _robin_filter_T_7 | _GEN_381; // @[package.scala 253:43]
  wire [21:0] _robin_filter_T_11 = ~_robin_filter_T_9; // @[Scheduler.scala 126:47]
  wire  request_valid = directory_io_ready & (sinkA_io_req_valid | sinkC_io_req_valid); // @[Scheduler.scala 153:39]
  wire [2:0] _request_bits_T_opcode = sinkA_io_req_bits_opcode; // @[Scheduler.scala 155:22]
  wire [2:0] _request_bits_T_param = sinkA_io_req_bits_param; // @[Scheduler.scala 155:22]
  wire [2:0] _request_bits_T_size = sinkA_io_req_bits_size; // @[Scheduler.scala 155:22]
  wire [2:0] _request_bits_T_source = sinkA_io_req_bits_source; // @[Scheduler.scala 155:22]
  wire [24:0] _request_bits_T_tag = sinkA_io_req_bits_tag; // @[Scheduler.scala 155:22]
  wire [3:0] _request_bits_T_offset = sinkA_io_req_bits_offset; // @[Scheduler.scala 155:22]
  wire [5:0] _request_bits_T_put = sinkA_io_req_bits_put; // @[Scheduler.scala 155:22]
  wire [2:0] _request_bits_T_set = sinkA_io_req_bits_set; // @[Scheduler.scala 155:22]
  wire  request_bits_prio_0 = sinkC_io_req_valid ? 1'h0 : 1'h1; // @[Scheduler.scala 154:22]
  wire  request_bits_prio_2 = sinkC_io_req_valid; // @[Scheduler.scala 154:22]
  wire [2:0] request_bits_opcode = sinkC_io_req_valid ? sinkC_io_req_bits_opcode : _request_bits_T_opcode; // @[Scheduler.scala 154:22]
  wire [2:0] request_bits_param = sinkC_io_req_valid ? sinkC_io_req_bits_param : _request_bits_T_param; // @[Scheduler.scala 154:22]
  wire [2:0] request_bits_size = sinkC_io_req_valid ? sinkC_io_req_bits_size : _request_bits_T_size; // @[Scheduler.scala 154:22]
  wire [2:0] request_bits_source = sinkC_io_req_valid ? sinkC_io_req_bits_source : _request_bits_T_source; // @[Scheduler.scala 154:22]
  wire [24:0] request_bits_tag = sinkC_io_req_valid ? sinkC_io_req_bits_tag : _request_bits_T_tag; // @[Scheduler.scala 154:22]
  wire [3:0] request_bits_offset = sinkC_io_req_valid ? sinkC_io_req_bits_offset : _request_bits_T_offset; // @[Scheduler.scala 154:22]
  wire [5:0] request_bits_put = sinkC_io_req_valid ? sinkC_io_req_bits_put : _request_bits_T_put; // @[Scheduler.scala 154:22]
  wire [2:0] request_bits_set = sinkC_io_req_valid ? sinkC_io_req_bits_set : _request_bits_T_set; // @[Scheduler.scala 154:22]
  wire  _setMatches_T_43 = c_mshr_io_status_valid & c_mshr_io_status_bits_set == request_bits_set; // @[Scheduler.scala 161:59]
  wire  _setMatches_T_41 = bc_mshr_io_status_valid & bc_mshr_io_status_bits_set == request_bits_set; // @[Scheduler.scala 161:59]
  wire  _setMatches_T_39 = abc_mshrs_19_io_status_valid & abc_mshrs_19_io_status_bits_set == request_bits_set; // @[Scheduler.scala 161:59]
  wire  _setMatches_T_37 = abc_mshrs_18_io_status_valid & abc_mshrs_18_io_status_bits_set == request_bits_set; // @[Scheduler.scala 161:59]
  wire  _setMatches_T_35 = abc_mshrs_17_io_status_valid & abc_mshrs_17_io_status_bits_set == request_bits_set; // @[Scheduler.scala 161:59]
  wire  _setMatches_T_33 = abc_mshrs_16_io_status_valid & abc_mshrs_16_io_status_bits_set == request_bits_set; // @[Scheduler.scala 161:59]
  wire  _setMatches_T_31 = abc_mshrs_15_io_status_valid & abc_mshrs_15_io_status_bits_set == request_bits_set; // @[Scheduler.scala 161:59]
  wire  _setMatches_T_29 = abc_mshrs_14_io_status_valid & abc_mshrs_14_io_status_bits_set == request_bits_set; // @[Scheduler.scala 161:59]
  wire  _setMatches_T_27 = abc_mshrs_13_io_status_valid & abc_mshrs_13_io_status_bits_set == request_bits_set; // @[Scheduler.scala 161:59]
  wire  _setMatches_T_25 = abc_mshrs_12_io_status_valid & abc_mshrs_12_io_status_bits_set == request_bits_set; // @[Scheduler.scala 161:59]
  wire  _setMatches_T_23 = abc_mshrs_11_io_status_valid & abc_mshrs_11_io_status_bits_set == request_bits_set; // @[Scheduler.scala 161:59]
  wire [4:0] setMatches_hi_lo = {_setMatches_T_31,_setMatches_T_29,_setMatches_T_27,_setMatches_T_25,_setMatches_T_23}; // @[Cat.scala 33:92]
  wire  _setMatches_T_21 = abc_mshrs_10_io_status_valid & abc_mshrs_10_io_status_bits_set == request_bits_set; // @[Scheduler.scala 161:59]
  wire  _setMatches_T_19 = abc_mshrs_9_io_status_valid & abc_mshrs_9_io_status_bits_set == request_bits_set; // @[Scheduler.scala 161:59]
  wire  _setMatches_T_17 = abc_mshrs_8_io_status_valid & abc_mshrs_8_io_status_bits_set == request_bits_set; // @[Scheduler.scala 161:59]
  wire  _setMatches_T_15 = abc_mshrs_7_io_status_valid & abc_mshrs_7_io_status_bits_set == request_bits_set; // @[Scheduler.scala 161:59]
  wire  _setMatches_T_13 = abc_mshrs_6_io_status_valid & abc_mshrs_6_io_status_bits_set == request_bits_set; // @[Scheduler.scala 161:59]
  wire  _setMatches_T_11 = abc_mshrs_5_io_status_valid & abc_mshrs_5_io_status_bits_set == request_bits_set; // @[Scheduler.scala 161:59]
  wire  _setMatches_T_9 = abc_mshrs_4_io_status_valid & abc_mshrs_4_io_status_bits_set == request_bits_set; // @[Scheduler.scala 161:59]
  wire  _setMatches_T_7 = abc_mshrs_3_io_status_valid & abc_mshrs_3_io_status_bits_set == request_bits_set; // @[Scheduler.scala 161:59]
  wire  _setMatches_T_5 = abc_mshrs_2_io_status_valid & abc_mshrs_2_io_status_bits_set == request_bits_set; // @[Scheduler.scala 161:59]
  wire  _setMatches_T_3 = abc_mshrs_1_io_status_valid & abc_mshrs_1_io_status_bits_set == request_bits_set; // @[Scheduler.scala 161:59]
  wire  _setMatches_T_1 = abc_mshrs_0_io_status_valid & abc_mshrs_0_io_status_bits_set == request_bits_set; // @[Scheduler.scala 161:59]
  wire [4:0] setMatches_lo_lo = {_setMatches_T_9,_setMatches_T_7,_setMatches_T_5,_setMatches_T_3,_setMatches_T_1}; // @[Cat.scala 33:92]
  wire [10:0] setMatches_lo = {_setMatches_T_21,_setMatches_T_19,_setMatches_T_17,_setMatches_T_15,_setMatches_T_13,
    _setMatches_T_11,setMatches_lo_lo}; // @[Cat.scala 33:92]
  wire [21:0] setMatches = {_setMatches_T_43,_setMatches_T_41,_setMatches_T_39,_setMatches_T_37,_setMatches_T_35,
    _setMatches_T_33,setMatches_hi_lo,setMatches_lo}; // @[Cat.scala 33:92]
  wire  alloc = ~(|setMatches); // @[Scheduler.scala 162:15]
  wire [65:0] _selected_requests_T = {mshr_selectOH,mshr_selectOH,mshr_selectOH}; // @[Cat.scala 33:92]
  wire [65:0] selected_requests = _selected_requests_T & requests_io_valid; // @[Scheduler.scala 195:76]
  wire  a_pop = |selected_requests[21:0]; // @[Scheduler.scala 196:82]
  wire  b_pop = |selected_requests[43:22]; // @[Scheduler.scala 197:82]
  wire  c_pop = |selected_requests[65:44]; // @[Scheduler.scala 198:82]
  wire  may_pop = a_pop | b_pop | c_pop; // @[Scheduler.scala 201:32]
  wire  _mshr_uses_directory_assuming_no_bypass_T = schedule_reload & may_pop; // @[Scheduler.scala 236:64]
  wire  lb_tag_mismatch = scheduleTag != requests_io_data_tag; // @[Scheduler.scala 235:37]
  wire  mshr_uses_directory_assuming_no_bypass = schedule_reload & may_pop & lb_tag_mismatch; // @[Scheduler.scala 236:75]
  wire  _request_alloc_cases_T = ~mshr_uses_directory_assuming_no_bypass; // @[Scheduler.scala 247:16]
  wire [4:0] mshr_validOH_hi_lo = {abc_mshrs_15_io_status_valid,abc_mshrs_14_io_status_valid,
    abc_mshrs_13_io_status_valid,abc_mshrs_12_io_status_valid,abc_mshrs_11_io_status_valid}; // @[Cat.scala 33:92]
  wire [4:0] mshr_validOH_lo_lo = {abc_mshrs_4_io_status_valid,abc_mshrs_3_io_status_valid,abc_mshrs_2_io_status_valid,
    abc_mshrs_1_io_status_valid,abc_mshrs_0_io_status_valid}; // @[Cat.scala 33:92]
  wire [10:0] mshr_validOH_lo = {abc_mshrs_10_io_status_valid,abc_mshrs_9_io_status_valid,abc_mshrs_8_io_status_valid,
    abc_mshrs_7_io_status_valid,abc_mshrs_6_io_status_valid,abc_mshrs_5_io_status_valid,mshr_validOH_lo_lo}; // @[Cat.scala 33:92]
  wire [21:0] mshr_validOH = {c_mshr_io_status_valid,bc_mshr_io_status_valid,abc_mshrs_19_io_status_valid,
    abc_mshrs_18_io_status_valid,abc_mshrs_17_io_status_valid,abc_mshrs_16_io_status_valid,mshr_validOH_hi_lo,
    mshr_validOH_lo}; // @[Cat.scala 33:92]
  wire [21:0] _mshr_free_T = ~mshr_validOH; // @[Scheduler.scala 242:20]
  wire  _prioFilter_T = ~request_bits_prio_0; // @[Scheduler.scala 171:46]
  wire [21:0] prioFilter = {request_bits_prio_2,_prioFilter_T,20'hfffff}; // @[Cat.scala 33:92]
  wire [21:0] _mshr_free_T_1 = _mshr_free_T & prioFilter; // @[Scheduler.scala 242:34]
  wire  mshr_free = |_mshr_free_T_1; // @[Scheduler.scala 242:51]
  wire  _request_alloc_cases_T_2 = alloc & ~mshr_uses_directory_assuming_no_bypass & mshr_free; // @[Scheduler.scala 247:56]
  wire  _request_alloc_cases_T_7 = ~c_mshr_io_status_valid; // @[Scheduler.scala 248:87]
  wire  _nestC_T_37 = setMatches[15] & abc_mshrs_15_io_status_bits_nestC; // @[Mux.scala 27:73]
  wire  _nestC_T_58 = setMatches[0] & abc_mshrs_0_io_status_bits_nestC | setMatches[1] &
    abc_mshrs_1_io_status_bits_nestC | setMatches[2] & abc_mshrs_2_io_status_bits_nestC | setMatches[3] &
    abc_mshrs_3_io_status_bits_nestC | setMatches[4] & abc_mshrs_4_io_status_bits_nestC | setMatches[5] &
    abc_mshrs_5_io_status_bits_nestC | setMatches[6] & abc_mshrs_6_io_status_bits_nestC | setMatches[7] &
    abc_mshrs_7_io_status_bits_nestC | setMatches[8] & abc_mshrs_8_io_status_bits_nestC | setMatches[9] &
    abc_mshrs_9_io_status_bits_nestC | setMatches[10] & abc_mshrs_10_io_status_bits_nestC | setMatches[11] &
    abc_mshrs_11_io_status_bits_nestC | setMatches[12] & abc_mshrs_12_io_status_bits_nestC | setMatches[13] &
    abc_mshrs_13_io_status_bits_nestC | setMatches[14] & abc_mshrs_14_io_status_bits_nestC | _nestC_T_37; // @[Mux.scala 27:73]
  wire  _nestC_T_64 = _nestC_T_58 | setMatches[16] & abc_mshrs_16_io_status_bits_nestC | setMatches[17] &
    abc_mshrs_17_io_status_bits_nestC | setMatches[18] & abc_mshrs_18_io_status_bits_nestC | setMatches[19] &
    abc_mshrs_19_io_status_bits_nestC | setMatches[20] & bc_mshr_io_status_bits_nestC | setMatches[21] &
    c_mshr_io_status_bits_nestC; // @[Mux.scala 27:73]
  wire  nestC = _nestC_T_64 & request_bits_prio_2; // @[Scheduler.scala 169:70]
  wire  _request_alloc_cases_T_13 = nestC & _request_alloc_cases_T & _request_alloc_cases_T_7; // @[Scheduler.scala 249:56]
  wire  request_alloc_cases = _request_alloc_cases_T_2 | _request_alloc_cases_T_13; // @[Scheduler.scala 248:112]
  wire [21:0] lowerMatches = setMatches & prioFilter; // @[Scheduler.scala 172:33]
  wire  _blockC_T_37 = setMatches[15] & abc_mshrs_15_io_status_bits_blockC; // @[Mux.scala 27:73]
  wire  _blockC_T_58 = setMatches[0] & abc_mshrs_0_io_status_bits_blockC | setMatches[1] &
    abc_mshrs_1_io_status_bits_blockC | setMatches[2] & abc_mshrs_2_io_status_bits_blockC | setMatches[3] &
    abc_mshrs_3_io_status_bits_blockC | setMatches[4] & abc_mshrs_4_io_status_bits_blockC | setMatches[5] &
    abc_mshrs_5_io_status_bits_blockC | setMatches[6] & abc_mshrs_6_io_status_bits_blockC | setMatches[7] &
    abc_mshrs_7_io_status_bits_blockC | setMatches[8] & abc_mshrs_8_io_status_bits_blockC | setMatches[9] &
    abc_mshrs_9_io_status_bits_blockC | setMatches[10] & abc_mshrs_10_io_status_bits_blockC | setMatches[11] &
    abc_mshrs_11_io_status_bits_blockC | setMatches[12] & abc_mshrs_12_io_status_bits_blockC | setMatches[13] &
    abc_mshrs_13_io_status_bits_blockC | setMatches[14] & abc_mshrs_14_io_status_bits_blockC | _blockC_T_37; // @[Mux.scala 27:73]
  wire  _blockC_T_64 = _blockC_T_58 | setMatches[16] & abc_mshrs_16_io_status_bits_blockC | setMatches[17] &
    abc_mshrs_17_io_status_bits_blockC | setMatches[18] & abc_mshrs_18_io_status_bits_blockC | setMatches[19] &
    abc_mshrs_19_io_status_bits_blockC | setMatches[20] & bc_mshr_io_status_bits_blockC | setMatches[21] &
    c_mshr_io_status_bits_blockC; // @[Mux.scala 27:73]
  wire  blockC = _blockC_T_64 & request_bits_prio_2; // @[Scheduler.scala 165:70]
  wire  queue = |lowerMatches & ~nestC & ~blockC; // @[Scheduler.scala 174:65]
  wire [21:0] _lowerMatches1_T_2 = lowerMatches[20] ? 22'h100000 : lowerMatches; // @[Scheduler.scala 190:8]
  wire [21:0] lowerMatches1 = lowerMatches[21] ? 22'h200000 : _lowerMatches1_T_2; // @[Scheduler.scala 189:8]
  wire [21:0] _bypassMatches_T = mshr_selectOH & lowerMatches1; // @[Scheduler.scala 199:38]
  wire  _bypassMatches_T_7 = b_pop ? ~b_pop : ~a_pop; // @[Scheduler.scala 200:69]
  wire  _bypassMatches_T_8 = c_pop | request_bits_prio_2 ? ~c_pop : _bypassMatches_T_7; // @[Scheduler.scala 200:26]
  wire  bypassMatches = |_bypassMatches_T & _bypassMatches_T_8; // @[Scheduler.scala 199:61]
  wire  bypassQueue = schedule_reload & bypassMatches; // @[Scheduler.scala 245:37]
  wire  request_ready = request_alloc_cases | queue & (bypassQueue | requests_io_push_ready); // @[Scheduler.scala 250:40]
  wire  _sinkC_io_req_ready_T = directory_io_ready & request_ready; // @[Scheduler.scala 156:44]
  wire  _sinkX_io_req_ready_T_1 = ~sinkC_io_req_valid; // @[Scheduler.scala 157:64]
  wire  _bypass_T = request_valid & queue; // @[Scheduler.scala 202:30]
  wire  bypass = request_valid & queue & bypassMatches; // @[Scheduler.scala 202:39]
  wire  will_reload = schedule_reload & (may_pop | bypass); // @[Scheduler.scala 203:37]
  wire  will_pop = _mshr_uses_directory_assuming_no_bypass_T & ~bypass; // @[Scheduler.scala 204:45]
  wire  a_pop_1 = requests_io_valid[0]; // @[Scheduler.scala 214:34]
  wire  b_pop_1 = requests_io_valid[22]; // @[Scheduler.scala 215:34]
  wire  c_pop_1 = requests_io_valid[44]; // @[Scheduler.scala 216:34]
  wire  _bypassMatches_T_15 = b_pop_1 ? ~b_pop_1 : ~a_pop_1; // @[Scheduler.scala 218:71]
  wire  _bypassMatches_T_16 = c_pop_1 | request_bits_prio_2 ? ~c_pop_1 : _bypassMatches_T_15; // @[Scheduler.scala 218:28]
  wire  bypassMatches_1 = lowerMatches1[0] & _bypassMatches_T_16; // @[Scheduler.scala 217:42]
  wire  may_pop_1 = a_pop_1 | b_pop_1 | c_pop_1; // @[Scheduler.scala 219:34]
  wire  bypass_1 = _bypass_T & bypassMatches_1; // @[Scheduler.scala 220:41]
  wire  will_reload_1 = abc_mshrs_0_io_schedule_bits_reload & (may_pop_1 | bypass_1); // @[Scheduler.scala 221:49]
  wire  _mshrs_0_io_allocate_bits_T_prio_0 = bypass_1 ? request_bits_prio_0 : requests_io_data_prio_0; // @[Scheduler.scala 222:30]
  wire  _mshrs_0_io_allocate_bits_T_prio_1 = bypass_1 ? 1'h0 : requests_io_data_prio_1; // @[Scheduler.scala 222:30]
  wire  _mshrs_0_io_allocate_bits_T_prio_2 = bypass_1 ? request_bits_prio_2 : requests_io_data_prio_2; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_0_io_allocate_bits_T_opcode = bypass_1 ? request_bits_opcode : requests_io_data_opcode; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_0_io_allocate_bits_T_param = bypass_1 ? request_bits_param : requests_io_data_param; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_0_io_allocate_bits_T_size = bypass_1 ? request_bits_size : requests_io_data_size; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_0_io_allocate_bits_T_source = bypass_1 ? request_bits_source : requests_io_data_source; // @[Scheduler.scala 222:30]
  wire [24:0] _mshrs_0_io_allocate_bits_T_tag = bypass_1 ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 222:30]
  wire [3:0] _mshrs_0_io_allocate_bits_T_offset = bypass_1 ? request_bits_offset : requests_io_data_offset; // @[Scheduler.scala 222:30]
  wire [5:0] _mshrs_0_io_allocate_bits_T_put = bypass_1 ? request_bits_put : requests_io_data_put; // @[Scheduler.scala 222:30]
  wire  a_pop_2 = requests_io_valid[1]; // @[Scheduler.scala 214:34]
  wire  b_pop_2 = requests_io_valid[23]; // @[Scheduler.scala 215:34]
  wire  c_pop_2 = requests_io_valid[45]; // @[Scheduler.scala 216:34]
  wire  _bypassMatches_T_23 = b_pop_2 ? ~b_pop_2 : ~a_pop_2; // @[Scheduler.scala 218:71]
  wire  _bypassMatches_T_24 = c_pop_2 | request_bits_prio_2 ? ~c_pop_2 : _bypassMatches_T_23; // @[Scheduler.scala 218:28]
  wire  bypassMatches_2 = lowerMatches1[1] & _bypassMatches_T_24; // @[Scheduler.scala 217:42]
  wire  may_pop_2 = a_pop_2 | b_pop_2 | c_pop_2; // @[Scheduler.scala 219:34]
  wire  bypass_2 = _bypass_T & bypassMatches_2; // @[Scheduler.scala 220:41]
  wire  will_reload_2 = abc_mshrs_1_io_schedule_bits_reload & (may_pop_2 | bypass_2); // @[Scheduler.scala 221:49]
  wire  _mshrs_1_io_allocate_bits_T_prio_0 = bypass_2 ? request_bits_prio_0 : requests_io_data_prio_0; // @[Scheduler.scala 222:30]
  wire  _mshrs_1_io_allocate_bits_T_prio_1 = bypass_2 ? 1'h0 : requests_io_data_prio_1; // @[Scheduler.scala 222:30]
  wire  _mshrs_1_io_allocate_bits_T_prio_2 = bypass_2 ? request_bits_prio_2 : requests_io_data_prio_2; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_1_io_allocate_bits_T_opcode = bypass_2 ? request_bits_opcode : requests_io_data_opcode; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_1_io_allocate_bits_T_param = bypass_2 ? request_bits_param : requests_io_data_param; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_1_io_allocate_bits_T_size = bypass_2 ? request_bits_size : requests_io_data_size; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_1_io_allocate_bits_T_source = bypass_2 ? request_bits_source : requests_io_data_source; // @[Scheduler.scala 222:30]
  wire [24:0] _mshrs_1_io_allocate_bits_T_tag = bypass_2 ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 222:30]
  wire [3:0] _mshrs_1_io_allocate_bits_T_offset = bypass_2 ? request_bits_offset : requests_io_data_offset; // @[Scheduler.scala 222:30]
  wire [5:0] _mshrs_1_io_allocate_bits_T_put = bypass_2 ? request_bits_put : requests_io_data_put; // @[Scheduler.scala 222:30]
  wire  a_pop_3 = requests_io_valid[2]; // @[Scheduler.scala 214:34]
  wire  b_pop_3 = requests_io_valid[24]; // @[Scheduler.scala 215:34]
  wire  c_pop_3 = requests_io_valid[46]; // @[Scheduler.scala 216:34]
  wire  _bypassMatches_T_31 = b_pop_3 ? ~b_pop_3 : ~a_pop_3; // @[Scheduler.scala 218:71]
  wire  _bypassMatches_T_32 = c_pop_3 | request_bits_prio_2 ? ~c_pop_3 : _bypassMatches_T_31; // @[Scheduler.scala 218:28]
  wire  bypassMatches_3 = lowerMatches1[2] & _bypassMatches_T_32; // @[Scheduler.scala 217:42]
  wire  may_pop_3 = a_pop_3 | b_pop_3 | c_pop_3; // @[Scheduler.scala 219:34]
  wire  bypass_3 = _bypass_T & bypassMatches_3; // @[Scheduler.scala 220:41]
  wire  will_reload_3 = abc_mshrs_2_io_schedule_bits_reload & (may_pop_3 | bypass_3); // @[Scheduler.scala 221:49]
  wire  _mshrs_2_io_allocate_bits_T_prio_0 = bypass_3 ? request_bits_prio_0 : requests_io_data_prio_0; // @[Scheduler.scala 222:30]
  wire  _mshrs_2_io_allocate_bits_T_prio_1 = bypass_3 ? 1'h0 : requests_io_data_prio_1; // @[Scheduler.scala 222:30]
  wire  _mshrs_2_io_allocate_bits_T_prio_2 = bypass_3 ? request_bits_prio_2 : requests_io_data_prio_2; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_2_io_allocate_bits_T_opcode = bypass_3 ? request_bits_opcode : requests_io_data_opcode; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_2_io_allocate_bits_T_param = bypass_3 ? request_bits_param : requests_io_data_param; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_2_io_allocate_bits_T_size = bypass_3 ? request_bits_size : requests_io_data_size; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_2_io_allocate_bits_T_source = bypass_3 ? request_bits_source : requests_io_data_source; // @[Scheduler.scala 222:30]
  wire [24:0] _mshrs_2_io_allocate_bits_T_tag = bypass_3 ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 222:30]
  wire [3:0] _mshrs_2_io_allocate_bits_T_offset = bypass_3 ? request_bits_offset : requests_io_data_offset; // @[Scheduler.scala 222:30]
  wire [5:0] _mshrs_2_io_allocate_bits_T_put = bypass_3 ? request_bits_put : requests_io_data_put; // @[Scheduler.scala 222:30]
  wire  a_pop_4 = requests_io_valid[3]; // @[Scheduler.scala 214:34]
  wire  b_pop_4 = requests_io_valid[25]; // @[Scheduler.scala 215:34]
  wire  c_pop_4 = requests_io_valid[47]; // @[Scheduler.scala 216:34]
  wire  _bypassMatches_T_39 = b_pop_4 ? ~b_pop_4 : ~a_pop_4; // @[Scheduler.scala 218:71]
  wire  _bypassMatches_T_40 = c_pop_4 | request_bits_prio_2 ? ~c_pop_4 : _bypassMatches_T_39; // @[Scheduler.scala 218:28]
  wire  bypassMatches_4 = lowerMatches1[3] & _bypassMatches_T_40; // @[Scheduler.scala 217:42]
  wire  may_pop_4 = a_pop_4 | b_pop_4 | c_pop_4; // @[Scheduler.scala 219:34]
  wire  bypass_4 = _bypass_T & bypassMatches_4; // @[Scheduler.scala 220:41]
  wire  will_reload_4 = abc_mshrs_3_io_schedule_bits_reload & (may_pop_4 | bypass_4); // @[Scheduler.scala 221:49]
  wire  _mshrs_3_io_allocate_bits_T_prio_0 = bypass_4 ? request_bits_prio_0 : requests_io_data_prio_0; // @[Scheduler.scala 222:30]
  wire  _mshrs_3_io_allocate_bits_T_prio_1 = bypass_4 ? 1'h0 : requests_io_data_prio_1; // @[Scheduler.scala 222:30]
  wire  _mshrs_3_io_allocate_bits_T_prio_2 = bypass_4 ? request_bits_prio_2 : requests_io_data_prio_2; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_3_io_allocate_bits_T_opcode = bypass_4 ? request_bits_opcode : requests_io_data_opcode; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_3_io_allocate_bits_T_param = bypass_4 ? request_bits_param : requests_io_data_param; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_3_io_allocate_bits_T_size = bypass_4 ? request_bits_size : requests_io_data_size; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_3_io_allocate_bits_T_source = bypass_4 ? request_bits_source : requests_io_data_source; // @[Scheduler.scala 222:30]
  wire [24:0] _mshrs_3_io_allocate_bits_T_tag = bypass_4 ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 222:30]
  wire [3:0] _mshrs_3_io_allocate_bits_T_offset = bypass_4 ? request_bits_offset : requests_io_data_offset; // @[Scheduler.scala 222:30]
  wire [5:0] _mshrs_3_io_allocate_bits_T_put = bypass_4 ? request_bits_put : requests_io_data_put; // @[Scheduler.scala 222:30]
  wire  a_pop_5 = requests_io_valid[4]; // @[Scheduler.scala 214:34]
  wire  b_pop_5 = requests_io_valid[26]; // @[Scheduler.scala 215:34]
  wire  c_pop_5 = requests_io_valid[48]; // @[Scheduler.scala 216:34]
  wire  _bypassMatches_T_47 = b_pop_5 ? ~b_pop_5 : ~a_pop_5; // @[Scheduler.scala 218:71]
  wire  _bypassMatches_T_48 = c_pop_5 | request_bits_prio_2 ? ~c_pop_5 : _bypassMatches_T_47; // @[Scheduler.scala 218:28]
  wire  bypassMatches_5 = lowerMatches1[4] & _bypassMatches_T_48; // @[Scheduler.scala 217:42]
  wire  may_pop_5 = a_pop_5 | b_pop_5 | c_pop_5; // @[Scheduler.scala 219:34]
  wire  bypass_5 = _bypass_T & bypassMatches_5; // @[Scheduler.scala 220:41]
  wire  will_reload_5 = abc_mshrs_4_io_schedule_bits_reload & (may_pop_5 | bypass_5); // @[Scheduler.scala 221:49]
  wire  _mshrs_4_io_allocate_bits_T_prio_0 = bypass_5 ? request_bits_prio_0 : requests_io_data_prio_0; // @[Scheduler.scala 222:30]
  wire  _mshrs_4_io_allocate_bits_T_prio_1 = bypass_5 ? 1'h0 : requests_io_data_prio_1; // @[Scheduler.scala 222:30]
  wire  _mshrs_4_io_allocate_bits_T_prio_2 = bypass_5 ? request_bits_prio_2 : requests_io_data_prio_2; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_4_io_allocate_bits_T_opcode = bypass_5 ? request_bits_opcode : requests_io_data_opcode; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_4_io_allocate_bits_T_param = bypass_5 ? request_bits_param : requests_io_data_param; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_4_io_allocate_bits_T_size = bypass_5 ? request_bits_size : requests_io_data_size; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_4_io_allocate_bits_T_source = bypass_5 ? request_bits_source : requests_io_data_source; // @[Scheduler.scala 222:30]
  wire [24:0] _mshrs_4_io_allocate_bits_T_tag = bypass_5 ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 222:30]
  wire [3:0] _mshrs_4_io_allocate_bits_T_offset = bypass_5 ? request_bits_offset : requests_io_data_offset; // @[Scheduler.scala 222:30]
  wire [5:0] _mshrs_4_io_allocate_bits_T_put = bypass_5 ? request_bits_put : requests_io_data_put; // @[Scheduler.scala 222:30]
  wire  a_pop_6 = requests_io_valid[5]; // @[Scheduler.scala 214:34]
  wire  b_pop_6 = requests_io_valid[27]; // @[Scheduler.scala 215:34]
  wire  c_pop_6 = requests_io_valid[49]; // @[Scheduler.scala 216:34]
  wire  _bypassMatches_T_55 = b_pop_6 ? ~b_pop_6 : ~a_pop_6; // @[Scheduler.scala 218:71]
  wire  _bypassMatches_T_56 = c_pop_6 | request_bits_prio_2 ? ~c_pop_6 : _bypassMatches_T_55; // @[Scheduler.scala 218:28]
  wire  bypassMatches_6 = lowerMatches1[5] & _bypassMatches_T_56; // @[Scheduler.scala 217:42]
  wire  may_pop_6 = a_pop_6 | b_pop_6 | c_pop_6; // @[Scheduler.scala 219:34]
  wire  bypass_6 = _bypass_T & bypassMatches_6; // @[Scheduler.scala 220:41]
  wire  will_reload_6 = abc_mshrs_5_io_schedule_bits_reload & (may_pop_6 | bypass_6); // @[Scheduler.scala 221:49]
  wire  _mshrs_5_io_allocate_bits_T_prio_0 = bypass_6 ? request_bits_prio_0 : requests_io_data_prio_0; // @[Scheduler.scala 222:30]
  wire  _mshrs_5_io_allocate_bits_T_prio_1 = bypass_6 ? 1'h0 : requests_io_data_prio_1; // @[Scheduler.scala 222:30]
  wire  _mshrs_5_io_allocate_bits_T_prio_2 = bypass_6 ? request_bits_prio_2 : requests_io_data_prio_2; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_5_io_allocate_bits_T_opcode = bypass_6 ? request_bits_opcode : requests_io_data_opcode; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_5_io_allocate_bits_T_param = bypass_6 ? request_bits_param : requests_io_data_param; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_5_io_allocate_bits_T_size = bypass_6 ? request_bits_size : requests_io_data_size; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_5_io_allocate_bits_T_source = bypass_6 ? request_bits_source : requests_io_data_source; // @[Scheduler.scala 222:30]
  wire [24:0] _mshrs_5_io_allocate_bits_T_tag = bypass_6 ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 222:30]
  wire [3:0] _mshrs_5_io_allocate_bits_T_offset = bypass_6 ? request_bits_offset : requests_io_data_offset; // @[Scheduler.scala 222:30]
  wire [5:0] _mshrs_5_io_allocate_bits_T_put = bypass_6 ? request_bits_put : requests_io_data_put; // @[Scheduler.scala 222:30]
  wire  a_pop_7 = requests_io_valid[6]; // @[Scheduler.scala 214:34]
  wire  b_pop_7 = requests_io_valid[28]; // @[Scheduler.scala 215:34]
  wire  c_pop_7 = requests_io_valid[50]; // @[Scheduler.scala 216:34]
  wire  _bypassMatches_T_63 = b_pop_7 ? ~b_pop_7 : ~a_pop_7; // @[Scheduler.scala 218:71]
  wire  _bypassMatches_T_64 = c_pop_7 | request_bits_prio_2 ? ~c_pop_7 : _bypassMatches_T_63; // @[Scheduler.scala 218:28]
  wire  bypassMatches_7 = lowerMatches1[6] & _bypassMatches_T_64; // @[Scheduler.scala 217:42]
  wire  may_pop_7 = a_pop_7 | b_pop_7 | c_pop_7; // @[Scheduler.scala 219:34]
  wire  bypass_7 = _bypass_T & bypassMatches_7; // @[Scheduler.scala 220:41]
  wire  will_reload_7 = abc_mshrs_6_io_schedule_bits_reload & (may_pop_7 | bypass_7); // @[Scheduler.scala 221:49]
  wire  _mshrs_6_io_allocate_bits_T_prio_0 = bypass_7 ? request_bits_prio_0 : requests_io_data_prio_0; // @[Scheduler.scala 222:30]
  wire  _mshrs_6_io_allocate_bits_T_prio_1 = bypass_7 ? 1'h0 : requests_io_data_prio_1; // @[Scheduler.scala 222:30]
  wire  _mshrs_6_io_allocate_bits_T_prio_2 = bypass_7 ? request_bits_prio_2 : requests_io_data_prio_2; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_6_io_allocate_bits_T_opcode = bypass_7 ? request_bits_opcode : requests_io_data_opcode; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_6_io_allocate_bits_T_param = bypass_7 ? request_bits_param : requests_io_data_param; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_6_io_allocate_bits_T_size = bypass_7 ? request_bits_size : requests_io_data_size; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_6_io_allocate_bits_T_source = bypass_7 ? request_bits_source : requests_io_data_source; // @[Scheduler.scala 222:30]
  wire [24:0] _mshrs_6_io_allocate_bits_T_tag = bypass_7 ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 222:30]
  wire [3:0] _mshrs_6_io_allocate_bits_T_offset = bypass_7 ? request_bits_offset : requests_io_data_offset; // @[Scheduler.scala 222:30]
  wire [5:0] _mshrs_6_io_allocate_bits_T_put = bypass_7 ? request_bits_put : requests_io_data_put; // @[Scheduler.scala 222:30]
  wire  a_pop_8 = requests_io_valid[7]; // @[Scheduler.scala 214:34]
  wire  b_pop_8 = requests_io_valid[29]; // @[Scheduler.scala 215:34]
  wire  c_pop_8 = requests_io_valid[51]; // @[Scheduler.scala 216:34]
  wire  _bypassMatches_T_71 = b_pop_8 ? ~b_pop_8 : ~a_pop_8; // @[Scheduler.scala 218:71]
  wire  _bypassMatches_T_72 = c_pop_8 | request_bits_prio_2 ? ~c_pop_8 : _bypassMatches_T_71; // @[Scheduler.scala 218:28]
  wire  bypassMatches_8 = lowerMatches1[7] & _bypassMatches_T_72; // @[Scheduler.scala 217:42]
  wire  may_pop_8 = a_pop_8 | b_pop_8 | c_pop_8; // @[Scheduler.scala 219:34]
  wire  bypass_8 = _bypass_T & bypassMatches_8; // @[Scheduler.scala 220:41]
  wire  will_reload_8 = abc_mshrs_7_io_schedule_bits_reload & (may_pop_8 | bypass_8); // @[Scheduler.scala 221:49]
  wire  _mshrs_7_io_allocate_bits_T_prio_0 = bypass_8 ? request_bits_prio_0 : requests_io_data_prio_0; // @[Scheduler.scala 222:30]
  wire  _mshrs_7_io_allocate_bits_T_prio_1 = bypass_8 ? 1'h0 : requests_io_data_prio_1; // @[Scheduler.scala 222:30]
  wire  _mshrs_7_io_allocate_bits_T_prio_2 = bypass_8 ? request_bits_prio_2 : requests_io_data_prio_2; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_7_io_allocate_bits_T_opcode = bypass_8 ? request_bits_opcode : requests_io_data_opcode; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_7_io_allocate_bits_T_param = bypass_8 ? request_bits_param : requests_io_data_param; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_7_io_allocate_bits_T_size = bypass_8 ? request_bits_size : requests_io_data_size; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_7_io_allocate_bits_T_source = bypass_8 ? request_bits_source : requests_io_data_source; // @[Scheduler.scala 222:30]
  wire [24:0] _mshrs_7_io_allocate_bits_T_tag = bypass_8 ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 222:30]
  wire [3:0] _mshrs_7_io_allocate_bits_T_offset = bypass_8 ? request_bits_offset : requests_io_data_offset; // @[Scheduler.scala 222:30]
  wire [5:0] _mshrs_7_io_allocate_bits_T_put = bypass_8 ? request_bits_put : requests_io_data_put; // @[Scheduler.scala 222:30]
  wire  a_pop_9 = requests_io_valid[8]; // @[Scheduler.scala 214:34]
  wire  b_pop_9 = requests_io_valid[30]; // @[Scheduler.scala 215:34]
  wire  c_pop_9 = requests_io_valid[52]; // @[Scheduler.scala 216:34]
  wire  _bypassMatches_T_79 = b_pop_9 ? ~b_pop_9 : ~a_pop_9; // @[Scheduler.scala 218:71]
  wire  _bypassMatches_T_80 = c_pop_9 | request_bits_prio_2 ? ~c_pop_9 : _bypassMatches_T_79; // @[Scheduler.scala 218:28]
  wire  bypassMatches_9 = lowerMatches1[8] & _bypassMatches_T_80; // @[Scheduler.scala 217:42]
  wire  may_pop_9 = a_pop_9 | b_pop_9 | c_pop_9; // @[Scheduler.scala 219:34]
  wire  bypass_9 = _bypass_T & bypassMatches_9; // @[Scheduler.scala 220:41]
  wire  will_reload_9 = abc_mshrs_8_io_schedule_bits_reload & (may_pop_9 | bypass_9); // @[Scheduler.scala 221:49]
  wire  _mshrs_8_io_allocate_bits_T_prio_0 = bypass_9 ? request_bits_prio_0 : requests_io_data_prio_0; // @[Scheduler.scala 222:30]
  wire  _mshrs_8_io_allocate_bits_T_prio_1 = bypass_9 ? 1'h0 : requests_io_data_prio_1; // @[Scheduler.scala 222:30]
  wire  _mshrs_8_io_allocate_bits_T_prio_2 = bypass_9 ? request_bits_prio_2 : requests_io_data_prio_2; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_8_io_allocate_bits_T_opcode = bypass_9 ? request_bits_opcode : requests_io_data_opcode; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_8_io_allocate_bits_T_param = bypass_9 ? request_bits_param : requests_io_data_param; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_8_io_allocate_bits_T_size = bypass_9 ? request_bits_size : requests_io_data_size; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_8_io_allocate_bits_T_source = bypass_9 ? request_bits_source : requests_io_data_source; // @[Scheduler.scala 222:30]
  wire [24:0] _mshrs_8_io_allocate_bits_T_tag = bypass_9 ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 222:30]
  wire [3:0] _mshrs_8_io_allocate_bits_T_offset = bypass_9 ? request_bits_offset : requests_io_data_offset; // @[Scheduler.scala 222:30]
  wire [5:0] _mshrs_8_io_allocate_bits_T_put = bypass_9 ? request_bits_put : requests_io_data_put; // @[Scheduler.scala 222:30]
  wire  a_pop_10 = requests_io_valid[9]; // @[Scheduler.scala 214:34]
  wire  b_pop_10 = requests_io_valid[31]; // @[Scheduler.scala 215:34]
  wire  c_pop_10 = requests_io_valid[53]; // @[Scheduler.scala 216:34]
  wire  _bypassMatches_T_87 = b_pop_10 ? ~b_pop_10 : ~a_pop_10; // @[Scheduler.scala 218:71]
  wire  _bypassMatches_T_88 = c_pop_10 | request_bits_prio_2 ? ~c_pop_10 : _bypassMatches_T_87; // @[Scheduler.scala 218:28]
  wire  bypassMatches_10 = lowerMatches1[9] & _bypassMatches_T_88; // @[Scheduler.scala 217:42]
  wire  may_pop_10 = a_pop_10 | b_pop_10 | c_pop_10; // @[Scheduler.scala 219:34]
  wire  bypass_10 = _bypass_T & bypassMatches_10; // @[Scheduler.scala 220:41]
  wire  will_reload_10 = abc_mshrs_9_io_schedule_bits_reload & (may_pop_10 | bypass_10); // @[Scheduler.scala 221:49]
  wire  _mshrs_9_io_allocate_bits_T_prio_0 = bypass_10 ? request_bits_prio_0 : requests_io_data_prio_0; // @[Scheduler.scala 222:30]
  wire  _mshrs_9_io_allocate_bits_T_prio_1 = bypass_10 ? 1'h0 : requests_io_data_prio_1; // @[Scheduler.scala 222:30]
  wire  _mshrs_9_io_allocate_bits_T_prio_2 = bypass_10 ? request_bits_prio_2 : requests_io_data_prio_2; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_9_io_allocate_bits_T_opcode = bypass_10 ? request_bits_opcode : requests_io_data_opcode; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_9_io_allocate_bits_T_param = bypass_10 ? request_bits_param : requests_io_data_param; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_9_io_allocate_bits_T_size = bypass_10 ? request_bits_size : requests_io_data_size; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_9_io_allocate_bits_T_source = bypass_10 ? request_bits_source : requests_io_data_source; // @[Scheduler.scala 222:30]
  wire [24:0] _mshrs_9_io_allocate_bits_T_tag = bypass_10 ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 222:30]
  wire [3:0] _mshrs_9_io_allocate_bits_T_offset = bypass_10 ? request_bits_offset : requests_io_data_offset; // @[Scheduler.scala 222:30]
  wire [5:0] _mshrs_9_io_allocate_bits_T_put = bypass_10 ? request_bits_put : requests_io_data_put; // @[Scheduler.scala 222:30]
  wire  a_pop_11 = requests_io_valid[10]; // @[Scheduler.scala 214:34]
  wire  b_pop_11 = requests_io_valid[32]; // @[Scheduler.scala 215:34]
  wire  c_pop_11 = requests_io_valid[54]; // @[Scheduler.scala 216:34]
  wire  _bypassMatches_T_95 = b_pop_11 ? ~b_pop_11 : ~a_pop_11; // @[Scheduler.scala 218:71]
  wire  _bypassMatches_T_96 = c_pop_11 | request_bits_prio_2 ? ~c_pop_11 : _bypassMatches_T_95; // @[Scheduler.scala 218:28]
  wire  bypassMatches_11 = lowerMatches1[10] & _bypassMatches_T_96; // @[Scheduler.scala 217:42]
  wire  may_pop_11 = a_pop_11 | b_pop_11 | c_pop_11; // @[Scheduler.scala 219:34]
  wire  bypass_11 = _bypass_T & bypassMatches_11; // @[Scheduler.scala 220:41]
  wire  will_reload_11 = abc_mshrs_10_io_schedule_bits_reload & (may_pop_11 | bypass_11); // @[Scheduler.scala 221:49]
  wire  _mshrs_10_io_allocate_bits_T_prio_0 = bypass_11 ? request_bits_prio_0 : requests_io_data_prio_0; // @[Scheduler.scala 222:30]
  wire  _mshrs_10_io_allocate_bits_T_prio_1 = bypass_11 ? 1'h0 : requests_io_data_prio_1; // @[Scheduler.scala 222:30]
  wire  _mshrs_10_io_allocate_bits_T_prio_2 = bypass_11 ? request_bits_prio_2 : requests_io_data_prio_2; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_10_io_allocate_bits_T_opcode = bypass_11 ? request_bits_opcode : requests_io_data_opcode; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_10_io_allocate_bits_T_param = bypass_11 ? request_bits_param : requests_io_data_param; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_10_io_allocate_bits_T_size = bypass_11 ? request_bits_size : requests_io_data_size; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_10_io_allocate_bits_T_source = bypass_11 ? request_bits_source : requests_io_data_source; // @[Scheduler.scala 222:30]
  wire [24:0] _mshrs_10_io_allocate_bits_T_tag = bypass_11 ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 222:30]
  wire [3:0] _mshrs_10_io_allocate_bits_T_offset = bypass_11 ? request_bits_offset : requests_io_data_offset; // @[Scheduler.scala 222:30]
  wire [5:0] _mshrs_10_io_allocate_bits_T_put = bypass_11 ? request_bits_put : requests_io_data_put; // @[Scheduler.scala 222:30]
  wire  a_pop_12 = requests_io_valid[11]; // @[Scheduler.scala 214:34]
  wire  b_pop_12 = requests_io_valid[33]; // @[Scheduler.scala 215:34]
  wire  c_pop_12 = requests_io_valid[55]; // @[Scheduler.scala 216:34]
  wire  _bypassMatches_T_103 = b_pop_12 ? ~b_pop_12 : ~a_pop_12; // @[Scheduler.scala 218:71]
  wire  _bypassMatches_T_104 = c_pop_12 | request_bits_prio_2 ? ~c_pop_12 : _bypassMatches_T_103; // @[Scheduler.scala 218:28]
  wire  bypassMatches_12 = lowerMatches1[11] & _bypassMatches_T_104; // @[Scheduler.scala 217:42]
  wire  may_pop_12 = a_pop_12 | b_pop_12 | c_pop_12; // @[Scheduler.scala 219:34]
  wire  bypass_12 = _bypass_T & bypassMatches_12; // @[Scheduler.scala 220:41]
  wire  will_reload_12 = abc_mshrs_11_io_schedule_bits_reload & (may_pop_12 | bypass_12); // @[Scheduler.scala 221:49]
  wire  _mshrs_11_io_allocate_bits_T_prio_0 = bypass_12 ? request_bits_prio_0 : requests_io_data_prio_0; // @[Scheduler.scala 222:30]
  wire  _mshrs_11_io_allocate_bits_T_prio_1 = bypass_12 ? 1'h0 : requests_io_data_prio_1; // @[Scheduler.scala 222:30]
  wire  _mshrs_11_io_allocate_bits_T_prio_2 = bypass_12 ? request_bits_prio_2 : requests_io_data_prio_2; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_11_io_allocate_bits_T_opcode = bypass_12 ? request_bits_opcode : requests_io_data_opcode; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_11_io_allocate_bits_T_param = bypass_12 ? request_bits_param : requests_io_data_param; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_11_io_allocate_bits_T_size = bypass_12 ? request_bits_size : requests_io_data_size; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_11_io_allocate_bits_T_source = bypass_12 ? request_bits_source : requests_io_data_source; // @[Scheduler.scala 222:30]
  wire [24:0] _mshrs_11_io_allocate_bits_T_tag = bypass_12 ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 222:30]
  wire [3:0] _mshrs_11_io_allocate_bits_T_offset = bypass_12 ? request_bits_offset : requests_io_data_offset; // @[Scheduler.scala 222:30]
  wire [5:0] _mshrs_11_io_allocate_bits_T_put = bypass_12 ? request_bits_put : requests_io_data_put; // @[Scheduler.scala 222:30]
  wire  a_pop_13 = requests_io_valid[12]; // @[Scheduler.scala 214:34]
  wire  b_pop_13 = requests_io_valid[34]; // @[Scheduler.scala 215:34]
  wire  c_pop_13 = requests_io_valid[56]; // @[Scheduler.scala 216:34]
  wire  _bypassMatches_T_111 = b_pop_13 ? ~b_pop_13 : ~a_pop_13; // @[Scheduler.scala 218:71]
  wire  _bypassMatches_T_112 = c_pop_13 | request_bits_prio_2 ? ~c_pop_13 : _bypassMatches_T_111; // @[Scheduler.scala 218:28]
  wire  bypassMatches_13 = lowerMatches1[12] & _bypassMatches_T_112; // @[Scheduler.scala 217:42]
  wire  may_pop_13 = a_pop_13 | b_pop_13 | c_pop_13; // @[Scheduler.scala 219:34]
  wire  bypass_13 = _bypass_T & bypassMatches_13; // @[Scheduler.scala 220:41]
  wire  will_reload_13 = abc_mshrs_12_io_schedule_bits_reload & (may_pop_13 | bypass_13); // @[Scheduler.scala 221:49]
  wire  _mshrs_12_io_allocate_bits_T_prio_0 = bypass_13 ? request_bits_prio_0 : requests_io_data_prio_0; // @[Scheduler.scala 222:30]
  wire  _mshrs_12_io_allocate_bits_T_prio_1 = bypass_13 ? 1'h0 : requests_io_data_prio_1; // @[Scheduler.scala 222:30]
  wire  _mshrs_12_io_allocate_bits_T_prio_2 = bypass_13 ? request_bits_prio_2 : requests_io_data_prio_2; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_12_io_allocate_bits_T_opcode = bypass_13 ? request_bits_opcode : requests_io_data_opcode; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_12_io_allocate_bits_T_param = bypass_13 ? request_bits_param : requests_io_data_param; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_12_io_allocate_bits_T_size = bypass_13 ? request_bits_size : requests_io_data_size; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_12_io_allocate_bits_T_source = bypass_13 ? request_bits_source : requests_io_data_source; // @[Scheduler.scala 222:30]
  wire [24:0] _mshrs_12_io_allocate_bits_T_tag = bypass_13 ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 222:30]
  wire [3:0] _mshrs_12_io_allocate_bits_T_offset = bypass_13 ? request_bits_offset : requests_io_data_offset; // @[Scheduler.scala 222:30]
  wire [5:0] _mshrs_12_io_allocate_bits_T_put = bypass_13 ? request_bits_put : requests_io_data_put; // @[Scheduler.scala 222:30]
  wire  a_pop_14 = requests_io_valid[13]; // @[Scheduler.scala 214:34]
  wire  b_pop_14 = requests_io_valid[35]; // @[Scheduler.scala 215:34]
  wire  c_pop_14 = requests_io_valid[57]; // @[Scheduler.scala 216:34]
  wire  _bypassMatches_T_119 = b_pop_14 ? ~b_pop_14 : ~a_pop_14; // @[Scheduler.scala 218:71]
  wire  _bypassMatches_T_120 = c_pop_14 | request_bits_prio_2 ? ~c_pop_14 : _bypassMatches_T_119; // @[Scheduler.scala 218:28]
  wire  bypassMatches_14 = lowerMatches1[13] & _bypassMatches_T_120; // @[Scheduler.scala 217:42]
  wire  may_pop_14 = a_pop_14 | b_pop_14 | c_pop_14; // @[Scheduler.scala 219:34]
  wire  bypass_14 = _bypass_T & bypassMatches_14; // @[Scheduler.scala 220:41]
  wire  will_reload_14 = abc_mshrs_13_io_schedule_bits_reload & (may_pop_14 | bypass_14); // @[Scheduler.scala 221:49]
  wire  _mshrs_13_io_allocate_bits_T_prio_0 = bypass_14 ? request_bits_prio_0 : requests_io_data_prio_0; // @[Scheduler.scala 222:30]
  wire  _mshrs_13_io_allocate_bits_T_prio_1 = bypass_14 ? 1'h0 : requests_io_data_prio_1; // @[Scheduler.scala 222:30]
  wire  _mshrs_13_io_allocate_bits_T_prio_2 = bypass_14 ? request_bits_prio_2 : requests_io_data_prio_2; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_13_io_allocate_bits_T_opcode = bypass_14 ? request_bits_opcode : requests_io_data_opcode; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_13_io_allocate_bits_T_param = bypass_14 ? request_bits_param : requests_io_data_param; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_13_io_allocate_bits_T_size = bypass_14 ? request_bits_size : requests_io_data_size; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_13_io_allocate_bits_T_source = bypass_14 ? request_bits_source : requests_io_data_source; // @[Scheduler.scala 222:30]
  wire [24:0] _mshrs_13_io_allocate_bits_T_tag = bypass_14 ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 222:30]
  wire [3:0] _mshrs_13_io_allocate_bits_T_offset = bypass_14 ? request_bits_offset : requests_io_data_offset; // @[Scheduler.scala 222:30]
  wire [5:0] _mshrs_13_io_allocate_bits_T_put = bypass_14 ? request_bits_put : requests_io_data_put; // @[Scheduler.scala 222:30]
  wire  a_pop_15 = requests_io_valid[14]; // @[Scheduler.scala 214:34]
  wire  b_pop_15 = requests_io_valid[36]; // @[Scheduler.scala 215:34]
  wire  c_pop_15 = requests_io_valid[58]; // @[Scheduler.scala 216:34]
  wire  _bypassMatches_T_127 = b_pop_15 ? ~b_pop_15 : ~a_pop_15; // @[Scheduler.scala 218:71]
  wire  _bypassMatches_T_128 = c_pop_15 | request_bits_prio_2 ? ~c_pop_15 : _bypassMatches_T_127; // @[Scheduler.scala 218:28]
  wire  bypassMatches_15 = lowerMatches1[14] & _bypassMatches_T_128; // @[Scheduler.scala 217:42]
  wire  may_pop_15 = a_pop_15 | b_pop_15 | c_pop_15; // @[Scheduler.scala 219:34]
  wire  bypass_15 = _bypass_T & bypassMatches_15; // @[Scheduler.scala 220:41]
  wire  will_reload_15 = abc_mshrs_14_io_schedule_bits_reload & (may_pop_15 | bypass_15); // @[Scheduler.scala 221:49]
  wire  _mshrs_14_io_allocate_bits_T_prio_0 = bypass_15 ? request_bits_prio_0 : requests_io_data_prio_0; // @[Scheduler.scala 222:30]
  wire  _mshrs_14_io_allocate_bits_T_prio_1 = bypass_15 ? 1'h0 : requests_io_data_prio_1; // @[Scheduler.scala 222:30]
  wire  _mshrs_14_io_allocate_bits_T_prio_2 = bypass_15 ? request_bits_prio_2 : requests_io_data_prio_2; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_14_io_allocate_bits_T_opcode = bypass_15 ? request_bits_opcode : requests_io_data_opcode; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_14_io_allocate_bits_T_param = bypass_15 ? request_bits_param : requests_io_data_param; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_14_io_allocate_bits_T_size = bypass_15 ? request_bits_size : requests_io_data_size; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_14_io_allocate_bits_T_source = bypass_15 ? request_bits_source : requests_io_data_source; // @[Scheduler.scala 222:30]
  wire [24:0] _mshrs_14_io_allocate_bits_T_tag = bypass_15 ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 222:30]
  wire [3:0] _mshrs_14_io_allocate_bits_T_offset = bypass_15 ? request_bits_offset : requests_io_data_offset; // @[Scheduler.scala 222:30]
  wire [5:0] _mshrs_14_io_allocate_bits_T_put = bypass_15 ? request_bits_put : requests_io_data_put; // @[Scheduler.scala 222:30]
  wire  a_pop_16 = requests_io_valid[15]; // @[Scheduler.scala 214:34]
  wire  b_pop_16 = requests_io_valid[37]; // @[Scheduler.scala 215:34]
  wire  c_pop_16 = requests_io_valid[59]; // @[Scheduler.scala 216:34]
  wire  _bypassMatches_T_135 = b_pop_16 ? ~b_pop_16 : ~a_pop_16; // @[Scheduler.scala 218:71]
  wire  _bypassMatches_T_136 = c_pop_16 | request_bits_prio_2 ? ~c_pop_16 : _bypassMatches_T_135; // @[Scheduler.scala 218:28]
  wire  bypassMatches_16 = lowerMatches1[15] & _bypassMatches_T_136; // @[Scheduler.scala 217:42]
  wire  may_pop_16 = a_pop_16 | b_pop_16 | c_pop_16; // @[Scheduler.scala 219:34]
  wire  bypass_16 = _bypass_T & bypassMatches_16; // @[Scheduler.scala 220:41]
  wire  will_reload_16 = abc_mshrs_15_io_schedule_bits_reload & (may_pop_16 | bypass_16); // @[Scheduler.scala 221:49]
  wire  _mshrs_15_io_allocate_bits_T_prio_0 = bypass_16 ? request_bits_prio_0 : requests_io_data_prio_0; // @[Scheduler.scala 222:30]
  wire  _mshrs_15_io_allocate_bits_T_prio_1 = bypass_16 ? 1'h0 : requests_io_data_prio_1; // @[Scheduler.scala 222:30]
  wire  _mshrs_15_io_allocate_bits_T_prio_2 = bypass_16 ? request_bits_prio_2 : requests_io_data_prio_2; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_15_io_allocate_bits_T_opcode = bypass_16 ? request_bits_opcode : requests_io_data_opcode; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_15_io_allocate_bits_T_param = bypass_16 ? request_bits_param : requests_io_data_param; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_15_io_allocate_bits_T_size = bypass_16 ? request_bits_size : requests_io_data_size; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_15_io_allocate_bits_T_source = bypass_16 ? request_bits_source : requests_io_data_source; // @[Scheduler.scala 222:30]
  wire [24:0] _mshrs_15_io_allocate_bits_T_tag = bypass_16 ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 222:30]
  wire [3:0] _mshrs_15_io_allocate_bits_T_offset = bypass_16 ? request_bits_offset : requests_io_data_offset; // @[Scheduler.scala 222:30]
  wire [5:0] _mshrs_15_io_allocate_bits_T_put = bypass_16 ? request_bits_put : requests_io_data_put; // @[Scheduler.scala 222:30]
  wire  a_pop_17 = requests_io_valid[16]; // @[Scheduler.scala 214:34]
  wire  b_pop_17 = requests_io_valid[38]; // @[Scheduler.scala 215:34]
  wire  c_pop_17 = requests_io_valid[60]; // @[Scheduler.scala 216:34]
  wire  _bypassMatches_T_143 = b_pop_17 ? ~b_pop_17 : ~a_pop_17; // @[Scheduler.scala 218:71]
  wire  _bypassMatches_T_144 = c_pop_17 | request_bits_prio_2 ? ~c_pop_17 : _bypassMatches_T_143; // @[Scheduler.scala 218:28]
  wire  bypassMatches_17 = lowerMatches1[16] & _bypassMatches_T_144; // @[Scheduler.scala 217:42]
  wire  may_pop_17 = a_pop_17 | b_pop_17 | c_pop_17; // @[Scheduler.scala 219:34]
  wire  bypass_17 = _bypass_T & bypassMatches_17; // @[Scheduler.scala 220:41]
  wire  will_reload_17 = abc_mshrs_16_io_schedule_bits_reload & (may_pop_17 | bypass_17); // @[Scheduler.scala 221:49]
  wire  _mshrs_16_io_allocate_bits_T_prio_0 = bypass_17 ? request_bits_prio_0 : requests_io_data_prio_0; // @[Scheduler.scala 222:30]
  wire  _mshrs_16_io_allocate_bits_T_prio_1 = bypass_17 ? 1'h0 : requests_io_data_prio_1; // @[Scheduler.scala 222:30]
  wire  _mshrs_16_io_allocate_bits_T_prio_2 = bypass_17 ? request_bits_prio_2 : requests_io_data_prio_2; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_16_io_allocate_bits_T_opcode = bypass_17 ? request_bits_opcode : requests_io_data_opcode; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_16_io_allocate_bits_T_param = bypass_17 ? request_bits_param : requests_io_data_param; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_16_io_allocate_bits_T_size = bypass_17 ? request_bits_size : requests_io_data_size; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_16_io_allocate_bits_T_source = bypass_17 ? request_bits_source : requests_io_data_source; // @[Scheduler.scala 222:30]
  wire [24:0] _mshrs_16_io_allocate_bits_T_tag = bypass_17 ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 222:30]
  wire [3:0] _mshrs_16_io_allocate_bits_T_offset = bypass_17 ? request_bits_offset : requests_io_data_offset; // @[Scheduler.scala 222:30]
  wire [5:0] _mshrs_16_io_allocate_bits_T_put = bypass_17 ? request_bits_put : requests_io_data_put; // @[Scheduler.scala 222:30]
  wire  a_pop_18 = requests_io_valid[17]; // @[Scheduler.scala 214:34]
  wire  b_pop_18 = requests_io_valid[39]; // @[Scheduler.scala 215:34]
  wire  c_pop_18 = requests_io_valid[61]; // @[Scheduler.scala 216:34]
  wire  _bypassMatches_T_151 = b_pop_18 ? ~b_pop_18 : ~a_pop_18; // @[Scheduler.scala 218:71]
  wire  _bypassMatches_T_152 = c_pop_18 | request_bits_prio_2 ? ~c_pop_18 : _bypassMatches_T_151; // @[Scheduler.scala 218:28]
  wire  bypassMatches_18 = lowerMatches1[17] & _bypassMatches_T_152; // @[Scheduler.scala 217:42]
  wire  may_pop_18 = a_pop_18 | b_pop_18 | c_pop_18; // @[Scheduler.scala 219:34]
  wire  bypass_18 = _bypass_T & bypassMatches_18; // @[Scheduler.scala 220:41]
  wire  will_reload_18 = abc_mshrs_17_io_schedule_bits_reload & (may_pop_18 | bypass_18); // @[Scheduler.scala 221:49]
  wire  _mshrs_17_io_allocate_bits_T_prio_0 = bypass_18 ? request_bits_prio_0 : requests_io_data_prio_0; // @[Scheduler.scala 222:30]
  wire  _mshrs_17_io_allocate_bits_T_prio_1 = bypass_18 ? 1'h0 : requests_io_data_prio_1; // @[Scheduler.scala 222:30]
  wire  _mshrs_17_io_allocate_bits_T_prio_2 = bypass_18 ? request_bits_prio_2 : requests_io_data_prio_2; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_17_io_allocate_bits_T_opcode = bypass_18 ? request_bits_opcode : requests_io_data_opcode; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_17_io_allocate_bits_T_param = bypass_18 ? request_bits_param : requests_io_data_param; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_17_io_allocate_bits_T_size = bypass_18 ? request_bits_size : requests_io_data_size; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_17_io_allocate_bits_T_source = bypass_18 ? request_bits_source : requests_io_data_source; // @[Scheduler.scala 222:30]
  wire [24:0] _mshrs_17_io_allocate_bits_T_tag = bypass_18 ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 222:30]
  wire [3:0] _mshrs_17_io_allocate_bits_T_offset = bypass_18 ? request_bits_offset : requests_io_data_offset; // @[Scheduler.scala 222:30]
  wire [5:0] _mshrs_17_io_allocate_bits_T_put = bypass_18 ? request_bits_put : requests_io_data_put; // @[Scheduler.scala 222:30]
  wire  a_pop_19 = requests_io_valid[18]; // @[Scheduler.scala 214:34]
  wire  b_pop_19 = requests_io_valid[40]; // @[Scheduler.scala 215:34]
  wire  c_pop_19 = requests_io_valid[62]; // @[Scheduler.scala 216:34]
  wire  _bypassMatches_T_159 = b_pop_19 ? ~b_pop_19 : ~a_pop_19; // @[Scheduler.scala 218:71]
  wire  _bypassMatches_T_160 = c_pop_19 | request_bits_prio_2 ? ~c_pop_19 : _bypassMatches_T_159; // @[Scheduler.scala 218:28]
  wire  bypassMatches_19 = lowerMatches1[18] & _bypassMatches_T_160; // @[Scheduler.scala 217:42]
  wire  may_pop_19 = a_pop_19 | b_pop_19 | c_pop_19; // @[Scheduler.scala 219:34]
  wire  bypass_19 = _bypass_T & bypassMatches_19; // @[Scheduler.scala 220:41]
  wire  will_reload_19 = abc_mshrs_18_io_schedule_bits_reload & (may_pop_19 | bypass_19); // @[Scheduler.scala 221:49]
  wire  _mshrs_18_io_allocate_bits_T_prio_0 = bypass_19 ? request_bits_prio_0 : requests_io_data_prio_0; // @[Scheduler.scala 222:30]
  wire  _mshrs_18_io_allocate_bits_T_prio_1 = bypass_19 ? 1'h0 : requests_io_data_prio_1; // @[Scheduler.scala 222:30]
  wire  _mshrs_18_io_allocate_bits_T_prio_2 = bypass_19 ? request_bits_prio_2 : requests_io_data_prio_2; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_18_io_allocate_bits_T_opcode = bypass_19 ? request_bits_opcode : requests_io_data_opcode; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_18_io_allocate_bits_T_param = bypass_19 ? request_bits_param : requests_io_data_param; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_18_io_allocate_bits_T_size = bypass_19 ? request_bits_size : requests_io_data_size; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_18_io_allocate_bits_T_source = bypass_19 ? request_bits_source : requests_io_data_source; // @[Scheduler.scala 222:30]
  wire [24:0] _mshrs_18_io_allocate_bits_T_tag = bypass_19 ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 222:30]
  wire [3:0] _mshrs_18_io_allocate_bits_T_offset = bypass_19 ? request_bits_offset : requests_io_data_offset; // @[Scheduler.scala 222:30]
  wire [5:0] _mshrs_18_io_allocate_bits_T_put = bypass_19 ? request_bits_put : requests_io_data_put; // @[Scheduler.scala 222:30]
  wire  a_pop_20 = requests_io_valid[19]; // @[Scheduler.scala 214:34]
  wire  b_pop_20 = requests_io_valid[41]; // @[Scheduler.scala 215:34]
  wire  c_pop_20 = requests_io_valid[63]; // @[Scheduler.scala 216:34]
  wire  _bypassMatches_T_167 = b_pop_20 ? ~b_pop_20 : ~a_pop_20; // @[Scheduler.scala 218:71]
  wire  _bypassMatches_T_168 = c_pop_20 | request_bits_prio_2 ? ~c_pop_20 : _bypassMatches_T_167; // @[Scheduler.scala 218:28]
  wire  bypassMatches_20 = lowerMatches1[19] & _bypassMatches_T_168; // @[Scheduler.scala 217:42]
  wire  may_pop_20 = a_pop_20 | b_pop_20 | c_pop_20; // @[Scheduler.scala 219:34]
  wire  bypass_20 = _bypass_T & bypassMatches_20; // @[Scheduler.scala 220:41]
  wire  will_reload_20 = abc_mshrs_19_io_schedule_bits_reload & (may_pop_20 | bypass_20); // @[Scheduler.scala 221:49]
  wire  _mshrs_19_io_allocate_bits_T_prio_0 = bypass_20 ? request_bits_prio_0 : requests_io_data_prio_0; // @[Scheduler.scala 222:30]
  wire  _mshrs_19_io_allocate_bits_T_prio_1 = bypass_20 ? 1'h0 : requests_io_data_prio_1; // @[Scheduler.scala 222:30]
  wire  _mshrs_19_io_allocate_bits_T_prio_2 = bypass_20 ? request_bits_prio_2 : requests_io_data_prio_2; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_19_io_allocate_bits_T_opcode = bypass_20 ? request_bits_opcode : requests_io_data_opcode; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_19_io_allocate_bits_T_param = bypass_20 ? request_bits_param : requests_io_data_param; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_19_io_allocate_bits_T_size = bypass_20 ? request_bits_size : requests_io_data_size; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_19_io_allocate_bits_T_source = bypass_20 ? request_bits_source : requests_io_data_source; // @[Scheduler.scala 222:30]
  wire [24:0] _mshrs_19_io_allocate_bits_T_tag = bypass_20 ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 222:30]
  wire [3:0] _mshrs_19_io_allocate_bits_T_offset = bypass_20 ? request_bits_offset : requests_io_data_offset; // @[Scheduler.scala 222:30]
  wire [5:0] _mshrs_19_io_allocate_bits_T_put = bypass_20 ? request_bits_put : requests_io_data_put; // @[Scheduler.scala 222:30]
  wire  a_pop_21 = requests_io_valid[20]; // @[Scheduler.scala 214:34]
  wire  b_pop_21 = requests_io_valid[42]; // @[Scheduler.scala 215:34]
  wire  c_pop_21 = requests_io_valid[64]; // @[Scheduler.scala 216:34]
  wire  _bypassMatches_T_175 = b_pop_21 ? ~b_pop_21 : ~a_pop_21; // @[Scheduler.scala 218:71]
  wire  _bypassMatches_T_176 = c_pop_21 | request_bits_prio_2 ? ~c_pop_21 : _bypassMatches_T_175; // @[Scheduler.scala 218:28]
  wire  bypassMatches_21 = lowerMatches1[20] & _bypassMatches_T_176; // @[Scheduler.scala 217:42]
  wire  may_pop_21 = a_pop_21 | b_pop_21 | c_pop_21; // @[Scheduler.scala 219:34]
  wire  bypass_21 = _bypass_T & bypassMatches_21; // @[Scheduler.scala 220:41]
  wire  will_reload_21 = bc_mshr_io_schedule_bits_reload & (may_pop_21 | bypass_21); // @[Scheduler.scala 221:49]
  wire  _mshrs_20_io_allocate_bits_T_prio_1 = bypass_21 ? 1'h0 : requests_io_data_prio_1; // @[Scheduler.scala 222:30]
  wire  _mshrs_20_io_allocate_bits_T_prio_2 = bypass_21 ? request_bits_prio_2 : requests_io_data_prio_2; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_20_io_allocate_bits_T_opcode = bypass_21 ? request_bits_opcode : requests_io_data_opcode; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_20_io_allocate_bits_T_param = bypass_21 ? request_bits_param : requests_io_data_param; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_20_io_allocate_bits_T_size = bypass_21 ? request_bits_size : requests_io_data_size; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_20_io_allocate_bits_T_source = bypass_21 ? request_bits_source : requests_io_data_source; // @[Scheduler.scala 222:30]
  wire [24:0] _mshrs_20_io_allocate_bits_T_tag = bypass_21 ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 222:30]
  wire [3:0] _mshrs_20_io_allocate_bits_T_offset = bypass_21 ? request_bits_offset : requests_io_data_offset; // @[Scheduler.scala 222:30]
  wire [5:0] _mshrs_20_io_allocate_bits_T_put = bypass_21 ? request_bits_put : requests_io_data_put; // @[Scheduler.scala 222:30]
  wire  a_pop_22 = requests_io_valid[21]; // @[Scheduler.scala 214:34]
  wire  b_pop_22 = requests_io_valid[43]; // @[Scheduler.scala 215:34]
  wire  c_pop_22 = requests_io_valid[65]; // @[Scheduler.scala 216:34]
  wire  _bypassMatches_T_183 = b_pop_22 ? ~b_pop_22 : ~a_pop_22; // @[Scheduler.scala 218:71]
  wire  _bypassMatches_T_184 = c_pop_22 | request_bits_prio_2 ? ~c_pop_22 : _bypassMatches_T_183; // @[Scheduler.scala 218:28]
  wire  bypassMatches_22 = lowerMatches1[21] & _bypassMatches_T_184; // @[Scheduler.scala 217:42]
  wire  may_pop_22 = a_pop_22 | b_pop_22 | c_pop_22; // @[Scheduler.scala 219:34]
  wire  bypass_22 = _bypass_T & bypassMatches_22; // @[Scheduler.scala 220:41]
  wire  will_reload_22 = c_mshr_io_schedule_bits_reload & (may_pop_22 | bypass_22); // @[Scheduler.scala 221:49]
  wire  _mshrs_21_io_allocate_bits_T_prio_2 = bypass_22 ? request_bits_prio_2 : requests_io_data_prio_2; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_21_io_allocate_bits_T_opcode = bypass_22 ? request_bits_opcode : requests_io_data_opcode; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_21_io_allocate_bits_T_param = bypass_22 ? request_bits_param : requests_io_data_param; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_21_io_allocate_bits_T_size = bypass_22 ? request_bits_size : requests_io_data_size; // @[Scheduler.scala 222:30]
  wire [2:0] _mshrs_21_io_allocate_bits_T_source = bypass_22 ? request_bits_source : requests_io_data_source; // @[Scheduler.scala 222:30]
  wire [24:0] _mshrs_21_io_allocate_bits_T_tag = bypass_22 ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 222:30]
  wire [3:0] _mshrs_21_io_allocate_bits_T_offset = bypass_22 ? request_bits_offset : requests_io_data_offset; // @[Scheduler.scala 222:30]
  wire [5:0] _mshrs_21_io_allocate_bits_T_put = bypass_22 ? request_bits_put : requests_io_data_put; // @[Scheduler.scala 222:30]
  wire [65:0] _prio_requests_T = ~requests_io_valid; // @[Scheduler.scala 229:25]
  wire [65:0] _GEN_382 = {{22'd0}, requests_io_valid[65:22]}; // @[Scheduler.scala 229:44]
  wire [65:0] _prio_requests_T_2 = _prio_requests_T | _GEN_382; // @[Scheduler.scala 229:44]
  wire [65:0] _GEN_383 = {{44'd0}, requests_io_valid[65:44]}; // @[Scheduler.scala 229:82]
  wire [65:0] _prio_requests_T_4 = _prio_requests_T_2 | _GEN_383; // @[Scheduler.scala 229:82]
  wire [65:0] prio_requests = ~_prio_requests_T_4; // @[Scheduler.scala 229:23]
  wire [65:0] _pop_index_T_1 = _selected_requests_T & prio_requests; // @[Scheduler.scala 230:77]
  wire [1:0] pop_index_hi_1 = _pop_index_T_1[65:64]; // @[OneHot.scala 30:18]
  wire [63:0] pop_index_lo = _pop_index_T_1[63:0]; // @[OneHot.scala 31:18]
  wire  _pop_index_T_2 = |pop_index_hi_1; // @[OneHot.scala 32:14]
  wire [63:0] _GEN_384 = {{62'd0}, pop_index_hi_1}; // @[OneHot.scala 32:28]
  wire [63:0] _pop_index_T_3 = _GEN_384 | pop_index_lo; // @[OneHot.scala 32:28]
  wire [31:0] pop_index_hi_2 = _pop_index_T_3[63:32]; // @[OneHot.scala 30:18]
  wire [31:0] pop_index_lo_1 = _pop_index_T_3[31:0]; // @[OneHot.scala 31:18]
  wire  _pop_index_T_4 = |pop_index_hi_2; // @[OneHot.scala 32:14]
  wire [31:0] _pop_index_T_5 = pop_index_hi_2 | pop_index_lo_1; // @[OneHot.scala 32:28]
  wire [15:0] pop_index_hi_3 = _pop_index_T_5[31:16]; // @[OneHot.scala 30:18]
  wire [15:0] pop_index_lo_2 = _pop_index_T_5[15:0]; // @[OneHot.scala 31:18]
  wire  _pop_index_T_6 = |pop_index_hi_3; // @[OneHot.scala 32:14]
  wire [15:0] _pop_index_T_7 = pop_index_hi_3 | pop_index_lo_2; // @[OneHot.scala 32:28]
  wire [7:0] pop_index_hi_4 = _pop_index_T_7[15:8]; // @[OneHot.scala 30:18]
  wire [7:0] pop_index_lo_3 = _pop_index_T_7[7:0]; // @[OneHot.scala 31:18]
  wire  _pop_index_T_8 = |pop_index_hi_4; // @[OneHot.scala 32:14]
  wire [7:0] _pop_index_T_9 = pop_index_hi_4 | pop_index_lo_3; // @[OneHot.scala 32:28]
  wire [3:0] pop_index_hi_5 = _pop_index_T_9[7:4]; // @[OneHot.scala 30:18]
  wire [3:0] pop_index_lo_4 = _pop_index_T_9[3:0]; // @[OneHot.scala 31:18]
  wire  _pop_index_T_10 = |pop_index_hi_5; // @[OneHot.scala 32:14]
  wire [3:0] _pop_index_T_11 = pop_index_hi_5 | pop_index_lo_4; // @[OneHot.scala 32:28]
  wire [1:0] pop_index_hi_6 = _pop_index_T_11[3:2]; // @[OneHot.scala 30:18]
  wire [1:0] pop_index_lo_5 = _pop_index_T_11[1:0]; // @[OneHot.scala 31:18]
  wire  _pop_index_T_12 = |pop_index_hi_6; // @[OneHot.scala 32:14]
  wire [1:0] _pop_index_T_13 = pop_index_hi_6 | pop_index_lo_5; // @[OneHot.scala 32:28]
  wire [5:0] _pop_index_T_19 = {_pop_index_T_4,_pop_index_T_6,_pop_index_T_8,_pop_index_T_10,_pop_index_T_12,
    _pop_index_T_13[1]}; // @[Cat.scala 33:92]
  wire  mshr_uses_directory_for_lb = will_pop & lb_tag_mismatch; // @[Scheduler.scala 237:45]
  wire [24:0] _mshr_uses_directory_T = bypass ? request_bits_tag : requests_io_data_tag; // @[Scheduler.scala 238:63]
  wire  mshr_uses_directory = will_reload & scheduleTag != _mshr_uses_directory_T; // @[Scheduler.scala 238:41]
  wire  alloc_uses_directory = request_valid & request_alloc_cases; // @[Scheduler.scala 251:44]
  wire [5:0] requests_io_push_bits_index_hi = lowerMatches1[21:16]; // @[OneHot.scala 30:18]
  wire [15:0] requests_io_push_bits_index_lo = lowerMatches1[15:0]; // @[OneHot.scala 31:18]
  wire  _requests_io_push_bits_index_T_1 = |requests_io_push_bits_index_hi; // @[OneHot.scala 32:14]
  wire [15:0] _GEN_385 = {{10'd0}, requests_io_push_bits_index_hi}; // @[OneHot.scala 32:28]
  wire [15:0] _requests_io_push_bits_index_T_2 = _GEN_385 | requests_io_push_bits_index_lo; // @[OneHot.scala 32:28]
  wire [7:0] requests_io_push_bits_index_hi_1 = _requests_io_push_bits_index_T_2[15:8]; // @[OneHot.scala 30:18]
  wire [7:0] requests_io_push_bits_index_lo_1 = _requests_io_push_bits_index_T_2[7:0]; // @[OneHot.scala 31:18]
  wire  _requests_io_push_bits_index_T_3 = |requests_io_push_bits_index_hi_1; // @[OneHot.scala 32:14]
  wire [7:0] _requests_io_push_bits_index_T_4 = requests_io_push_bits_index_hi_1 | requests_io_push_bits_index_lo_1; // @[OneHot.scala 32:28]
  wire [3:0] requests_io_push_bits_index_hi_2 = _requests_io_push_bits_index_T_4[7:4]; // @[OneHot.scala 30:18]
  wire [3:0] requests_io_push_bits_index_lo_2 = _requests_io_push_bits_index_T_4[3:0]; // @[OneHot.scala 31:18]
  wire  _requests_io_push_bits_index_T_5 = |requests_io_push_bits_index_hi_2; // @[OneHot.scala 32:14]
  wire [3:0] _requests_io_push_bits_index_T_6 = requests_io_push_bits_index_hi_2 | requests_io_push_bits_index_lo_2; // @[OneHot.scala 32:28]
  wire [1:0] requests_io_push_bits_index_hi_3 = _requests_io_push_bits_index_T_6[3:2]; // @[OneHot.scala 30:18]
  wire [1:0] requests_io_push_bits_index_lo_3 = _requests_io_push_bits_index_T_6[1:0]; // @[OneHot.scala 31:18]
  wire  _requests_io_push_bits_index_T_7 = |requests_io_push_bits_index_hi_3; // @[OneHot.scala 32:14]
  wire [1:0] _requests_io_push_bits_index_T_8 = requests_io_push_bits_index_hi_3 | requests_io_push_bits_index_lo_3; // @[OneHot.scala 32:28]
  wire [4:0] _requests_io_push_bits_index_T_13 = {_requests_io_push_bits_index_T_1,_requests_io_push_bits_index_T_3,
    _requests_io_push_bits_index_T_5,_requests_io_push_bits_index_T_7,_requests_io_push_bits_index_T_8[1]}; // @[Cat.scala 33:92]
  wire [65:0] _requests_io_push_bits_index_T_31 = {lowerMatches1, 44'h0}; // @[Scheduler.scala 265:30]
  wire [1:0] requests_io_push_bits_index_hi_9 = _requests_io_push_bits_index_T_31[65:64]; // @[OneHot.scala 30:18]
  wire [63:0] requests_io_push_bits_index_lo_9 = _requests_io_push_bits_index_T_31[63:0]; // @[OneHot.scala 31:18]
  wire  _requests_io_push_bits_index_T_32 = |requests_io_push_bits_index_hi_9; // @[OneHot.scala 32:14]
  wire [63:0] _GEN_387 = {{62'd0}, requests_io_push_bits_index_hi_9}; // @[OneHot.scala 32:28]
  wire [63:0] _requests_io_push_bits_index_T_33 = _GEN_387 | requests_io_push_bits_index_lo_9; // @[OneHot.scala 32:28]
  wire [31:0] requests_io_push_bits_index_hi_10 = _requests_io_push_bits_index_T_33[63:32]; // @[OneHot.scala 30:18]
  wire [31:0] requests_io_push_bits_index_lo_10 = _requests_io_push_bits_index_T_33[31:0]; // @[OneHot.scala 31:18]
  wire  _requests_io_push_bits_index_T_34 = |requests_io_push_bits_index_hi_10; // @[OneHot.scala 32:14]
  wire [31:0] _requests_io_push_bits_index_T_35 = requests_io_push_bits_index_hi_10 | requests_io_push_bits_index_lo_10; // @[OneHot.scala 32:28]
  wire [15:0] requests_io_push_bits_index_hi_11 = _requests_io_push_bits_index_T_35[31:16]; // @[OneHot.scala 30:18]
  wire [15:0] requests_io_push_bits_index_lo_11 = _requests_io_push_bits_index_T_35[15:0]; // @[OneHot.scala 31:18]
  wire  _requests_io_push_bits_index_T_36 = |requests_io_push_bits_index_hi_11; // @[OneHot.scala 32:14]
  wire [15:0] _requests_io_push_bits_index_T_37 = requests_io_push_bits_index_hi_11 | requests_io_push_bits_index_lo_11; // @[OneHot.scala 32:28]
  wire [7:0] requests_io_push_bits_index_hi_12 = _requests_io_push_bits_index_T_37[15:8]; // @[OneHot.scala 30:18]
  wire [7:0] requests_io_push_bits_index_lo_12 = _requests_io_push_bits_index_T_37[7:0]; // @[OneHot.scala 31:18]
  wire  _requests_io_push_bits_index_T_38 = |requests_io_push_bits_index_hi_12; // @[OneHot.scala 32:14]
  wire [7:0] _requests_io_push_bits_index_T_39 = requests_io_push_bits_index_hi_12 | requests_io_push_bits_index_lo_12; // @[OneHot.scala 32:28]
  wire [3:0] requests_io_push_bits_index_hi_13 = _requests_io_push_bits_index_T_39[7:4]; // @[OneHot.scala 30:18]
  wire [3:0] requests_io_push_bits_index_lo_13 = _requests_io_push_bits_index_T_39[3:0]; // @[OneHot.scala 31:18]
  wire  _requests_io_push_bits_index_T_40 = |requests_io_push_bits_index_hi_13; // @[OneHot.scala 32:14]
  wire [3:0] _requests_io_push_bits_index_T_41 = requests_io_push_bits_index_hi_13 | requests_io_push_bits_index_lo_13; // @[OneHot.scala 32:28]
  wire [1:0] requests_io_push_bits_index_hi_14 = _requests_io_push_bits_index_T_41[3:2]; // @[OneHot.scala 30:18]
  wire [1:0] requests_io_push_bits_index_lo_14 = _requests_io_push_bits_index_T_41[1:0]; // @[OneHot.scala 31:18]
  wire  _requests_io_push_bits_index_T_42 = |requests_io_push_bits_index_hi_14; // @[OneHot.scala 32:14]
  wire [1:0] _requests_io_push_bits_index_T_43 = requests_io_push_bits_index_hi_14 | requests_io_push_bits_index_lo_14; // @[OneHot.scala 32:28]
  wire [6:0] _requests_io_push_bits_index_T_50 = {_requests_io_push_bits_index_T_32,_requests_io_push_bits_index_T_34,
    _requests_io_push_bits_index_T_36,_requests_io_push_bits_index_T_38,_requests_io_push_bits_index_T_40,
    _requests_io_push_bits_index_T_42,_requests_io_push_bits_index_T_43[1]}; // @[Cat.scala 33:92]
  wire [4:0] _requests_io_push_bits_index_T_51 = request_bits_prio_0 ? _requests_io_push_bits_index_T_13 : 5'h0; // @[Mux.scala 27:73]
  wire [6:0] _requests_io_push_bits_index_T_53 = request_bits_prio_2 ? _requests_io_push_bits_index_T_50 : 7'h0; // @[Mux.scala 27:73]
  wire [5:0] _requests_io_push_bits_index_T_54 = {{1'd0}, _requests_io_push_bits_index_T_51}; // @[Mux.scala 27:73]
  wire [6:0] _GEN_388 = {{1'd0}, _requests_io_push_bits_index_T_54}; // @[Mux.scala 27:73]
  wire [22:0] _mshr_insertOH_T_1 = {_mshr_free_T, 1'h0}; // @[package.scala 244:48]
  wire [21:0] _mshr_insertOH_T_3 = _mshr_free_T | _mshr_insertOH_T_1[21:0]; // @[package.scala 244:43]
  wire [23:0] _mshr_insertOH_T_4 = {_mshr_insertOH_T_3, 2'h0}; // @[package.scala 244:48]
  wire [21:0] _mshr_insertOH_T_6 = _mshr_insertOH_T_3 | _mshr_insertOH_T_4[21:0]; // @[package.scala 244:43]
  wire [25:0] _mshr_insertOH_T_7 = {_mshr_insertOH_T_6, 4'h0}; // @[package.scala 244:48]
  wire [21:0] _mshr_insertOH_T_9 = _mshr_insertOH_T_6 | _mshr_insertOH_T_7[21:0]; // @[package.scala 244:43]
  wire [29:0] _mshr_insertOH_T_10 = {_mshr_insertOH_T_9, 8'h0}; // @[package.scala 244:48]
  wire [21:0] _mshr_insertOH_T_12 = _mshr_insertOH_T_9 | _mshr_insertOH_T_10[21:0]; // @[package.scala 244:43]
  wire [37:0] _mshr_insertOH_T_13 = {_mshr_insertOH_T_12, 16'h0}; // @[package.scala 244:48]
  wire [21:0] _mshr_insertOH_T_15 = _mshr_insertOH_T_12 | _mshr_insertOH_T_13[21:0]; // @[package.scala 244:43]
  wire [22:0] _mshr_insertOH_T_17 = {_mshr_insertOH_T_15, 1'h0}; // @[Scheduler.scala 267:47]
  wire [22:0] _mshr_insertOH_T_18 = ~_mshr_insertOH_T_17; // @[Scheduler.scala 267:23]
  wire [22:0] _GEN_389 = {{1'd0}, _mshr_free_T}; // @[Scheduler.scala 267:53]
  wire [22:0] _mshr_insertOH_T_20 = _mshr_insertOH_T_18 & _GEN_389; // @[Scheduler.scala 267:53]
  wire [22:0] _GEN_390 = {{1'd0}, prioFilter}; // @[Scheduler.scala 267:69]
  wire [22:0] mshr_insertOH = _mshr_insertOH_T_20 & _GEN_390; // @[Scheduler.scala 267:69]
  wire  _GEN_295 = request_valid & alloc & mshr_insertOH[21] & _request_alloc_cases_T | mshr_selectOH[21] &
    will_reload_22; // @[Scheduler.scala 225:25 269:83 270:27]
  wire  _GEN_298 = request_valid & alloc & mshr_insertOH[21] & _request_alloc_cases_T ? request_bits_prio_2 :
    _mshrs_21_io_allocate_bits_T_prio_2; // @[Scheduler.scala 222:24 269:83 271:26]
  wire [2:0] _GEN_300 = request_valid & alloc & mshr_insertOH[21] & _request_alloc_cases_T ? request_bits_opcode :
    _mshrs_21_io_allocate_bits_T_opcode; // @[Scheduler.scala 222:24 269:83 271:26]
  wire [2:0] _GEN_301 = request_valid & alloc & mshr_insertOH[21] & _request_alloc_cases_T ? request_bits_param :
    _mshrs_21_io_allocate_bits_T_param; // @[Scheduler.scala 222:24 269:83 271:26]
  wire [2:0] _GEN_302 = request_valid & alloc & mshr_insertOH[21] & _request_alloc_cases_T ? request_bits_size :
    _mshrs_21_io_allocate_bits_T_size; // @[Scheduler.scala 222:24 269:83 271:26]
  wire [2:0] _GEN_303 = request_valid & alloc & mshr_insertOH[21] & _request_alloc_cases_T ? request_bits_source :
    _mshrs_21_io_allocate_bits_T_source; // @[Scheduler.scala 222:24 269:83 271:26]
  wire [24:0] _GEN_304 = request_valid & alloc & mshr_insertOH[21] & _request_alloc_cases_T ? request_bits_tag :
    _mshrs_21_io_allocate_bits_T_tag; // @[Scheduler.scala 222:24 269:83 271:26]
  wire [3:0] _GEN_305 = request_valid & alloc & mshr_insertOH[21] & _request_alloc_cases_T ? request_bits_offset :
    _mshrs_21_io_allocate_bits_T_offset; // @[Scheduler.scala 222:24 269:83 271:26]
  wire [5:0] _GEN_306 = request_valid & alloc & mshr_insertOH[21] & _request_alloc_cases_T ? request_bits_put :
    _mshrs_21_io_allocate_bits_T_put; // @[Scheduler.scala 222:24 269:83 271:26]
  wire [2:0] _GEN_307 = request_valid & alloc & mshr_insertOH[21] & _request_alloc_cases_T ? request_bits_set :
    c_mshr_io_status_bits_set; // @[Scheduler.scala 269:83 271:26 223:28]
  wire  _GEN_308 = request_valid & alloc & mshr_insertOH[21] & _request_alloc_cases_T ? 1'h0 :
    c_mshr_io_allocate_bits_tag == c_mshr_io_status_bits_tag; // @[Scheduler.scala 224:31 269:83 272:33]
  wire  _T_149 = ~reset; // @[Scheduler.scala 280:12]
  wire  _T_150 = ~_prioFilter_T; // @[Scheduler.scala 280:12]
  wire  _T_155 = request_valid & nestC & _request_alloc_cases_T_7 & _request_alloc_cases_T; // @[Scheduler.scala 284:59]
  reg [22:0] directoryFanout; // @[Scheduler.scala 296:46]
  wire  _sinkC_io_way_T_3 = abc_mshrs_0_io_status_valid & abc_mshrs_0_io_status_bits_set == sinkC_io_set; // @[Scheduler.scala 306:50]
  wire  _sinkC_io_way_T_5 = abc_mshrs_1_io_status_valid & abc_mshrs_1_io_status_bits_set == sinkC_io_set; // @[Scheduler.scala 306:50]
  wire  _sinkC_io_way_T_7 = abc_mshrs_2_io_status_valid & abc_mshrs_2_io_status_bits_set == sinkC_io_set; // @[Scheduler.scala 306:50]
  wire  _sinkC_io_way_T_9 = abc_mshrs_3_io_status_valid & abc_mshrs_3_io_status_bits_set == sinkC_io_set; // @[Scheduler.scala 306:50]
  wire  _sinkC_io_way_T_11 = abc_mshrs_4_io_status_valid & abc_mshrs_4_io_status_bits_set == sinkC_io_set; // @[Scheduler.scala 306:50]
  wire  _sinkC_io_way_T_13 = abc_mshrs_5_io_status_valid & abc_mshrs_5_io_status_bits_set == sinkC_io_set; // @[Scheduler.scala 306:50]
  wire  _sinkC_io_way_T_15 = abc_mshrs_6_io_status_valid & abc_mshrs_6_io_status_bits_set == sinkC_io_set; // @[Scheduler.scala 306:50]
  wire  _sinkC_io_way_T_17 = abc_mshrs_7_io_status_valid & abc_mshrs_7_io_status_bits_set == sinkC_io_set; // @[Scheduler.scala 306:50]
  wire  _sinkC_io_way_T_19 = abc_mshrs_8_io_status_valid & abc_mshrs_8_io_status_bits_set == sinkC_io_set; // @[Scheduler.scala 306:50]
  wire  _sinkC_io_way_T_21 = abc_mshrs_9_io_status_valid & abc_mshrs_9_io_status_bits_set == sinkC_io_set; // @[Scheduler.scala 306:50]
  wire  _sinkC_io_way_T_23 = abc_mshrs_10_io_status_valid & abc_mshrs_10_io_status_bits_set == sinkC_io_set; // @[Scheduler.scala 306:50]
  wire  _sinkC_io_way_T_25 = abc_mshrs_11_io_status_valid & abc_mshrs_11_io_status_bits_set == sinkC_io_set; // @[Scheduler.scala 306:50]
  wire  _sinkC_io_way_T_27 = abc_mshrs_12_io_status_valid & abc_mshrs_12_io_status_bits_set == sinkC_io_set; // @[Scheduler.scala 306:50]
  wire  _sinkC_io_way_T_29 = abc_mshrs_13_io_status_valid & abc_mshrs_13_io_status_bits_set == sinkC_io_set; // @[Scheduler.scala 306:50]
  wire  _sinkC_io_way_T_31 = abc_mshrs_14_io_status_valid & abc_mshrs_14_io_status_bits_set == sinkC_io_set; // @[Scheduler.scala 306:50]
  wire  _sinkC_io_way_T_33 = abc_mshrs_15_io_status_valid & abc_mshrs_15_io_status_bits_set == sinkC_io_set; // @[Scheduler.scala 306:50]
  wire  _sinkC_io_way_T_35 = abc_mshrs_16_io_status_valid & abc_mshrs_16_io_status_bits_set == sinkC_io_set; // @[Scheduler.scala 306:50]
  wire  _sinkC_io_way_T_37 = abc_mshrs_17_io_status_valid & abc_mshrs_17_io_status_bits_set == sinkC_io_set; // @[Scheduler.scala 306:50]
  wire  _sinkC_io_way_T_39 = abc_mshrs_18_io_status_valid & abc_mshrs_18_io_status_bits_set == sinkC_io_set; // @[Scheduler.scala 306:50]
  wire  _sinkC_io_way_T_41 = abc_mshrs_19_io_status_valid & abc_mshrs_19_io_status_bits_set == sinkC_io_set; // @[Scheduler.scala 306:50]
  wire  _sinkC_io_way_T_57 = _sinkC_io_way_T_33 & abc_mshrs_15_io_status_bits_way; // @[Mux.scala 27:73]
  wire  _sinkC_io_way_T_76 = _sinkC_io_way_T_3 & abc_mshrs_0_io_status_bits_way | _sinkC_io_way_T_5 &
    abc_mshrs_1_io_status_bits_way | _sinkC_io_way_T_7 & abc_mshrs_2_io_status_bits_way | _sinkC_io_way_T_9 &
    abc_mshrs_3_io_status_bits_way | _sinkC_io_way_T_11 & abc_mshrs_4_io_status_bits_way | _sinkC_io_way_T_13 &
    abc_mshrs_5_io_status_bits_way | _sinkC_io_way_T_15 & abc_mshrs_6_io_status_bits_way | _sinkC_io_way_T_17 &
    abc_mshrs_7_io_status_bits_way | _sinkC_io_way_T_19 & abc_mshrs_8_io_status_bits_way | _sinkC_io_way_T_21 &
    abc_mshrs_9_io_status_bits_way | _sinkC_io_way_T_23 & abc_mshrs_10_io_status_bits_way | _sinkC_io_way_T_25 &
    abc_mshrs_11_io_status_bits_way | _sinkC_io_way_T_27 & abc_mshrs_12_io_status_bits_way | _sinkC_io_way_T_29 &
    abc_mshrs_13_io_status_bits_way | _sinkC_io_way_T_31 & abc_mshrs_14_io_status_bits_way | _sinkC_io_way_T_57; // @[Mux.scala 27:73]
  wire  _sinkC_io_way_T_80 = _sinkC_io_way_T_76 | _sinkC_io_way_T_35 & abc_mshrs_16_io_status_bits_way |
    _sinkC_io_way_T_37 & abc_mshrs_17_io_status_bits_way | _sinkC_io_way_T_39 & abc_mshrs_18_io_status_bits_way |
    _sinkC_io_way_T_41 & abc_mshrs_19_io_status_bits_way; // @[Mux.scala 27:73]
  wire  _GEN_338 = 5'h1 == sinkD_io_source ? abc_mshrs_1_io_status_bits_way : abc_mshrs_0_io_status_bits_way; // @[Scheduler.scala 308:{16,16}]
  wire  _GEN_339 = 5'h2 == sinkD_io_source ? abc_mshrs_2_io_status_bits_way : _GEN_338; // @[Scheduler.scala 308:{16,16}]
  wire  _GEN_340 = 5'h3 == sinkD_io_source ? abc_mshrs_3_io_status_bits_way : _GEN_339; // @[Scheduler.scala 308:{16,16}]
  wire  _GEN_341 = 5'h4 == sinkD_io_source ? abc_mshrs_4_io_status_bits_way : _GEN_340; // @[Scheduler.scala 308:{16,16}]
  wire  _GEN_342 = 5'h5 == sinkD_io_source ? abc_mshrs_5_io_status_bits_way : _GEN_341; // @[Scheduler.scala 308:{16,16}]
  wire  _GEN_343 = 5'h6 == sinkD_io_source ? abc_mshrs_6_io_status_bits_way : _GEN_342; // @[Scheduler.scala 308:{16,16}]
  wire  _GEN_344 = 5'h7 == sinkD_io_source ? abc_mshrs_7_io_status_bits_way : _GEN_343; // @[Scheduler.scala 308:{16,16}]
  wire  _GEN_345 = 5'h8 == sinkD_io_source ? abc_mshrs_8_io_status_bits_way : _GEN_344; // @[Scheduler.scala 308:{16,16}]
  wire  _GEN_346 = 5'h9 == sinkD_io_source ? abc_mshrs_9_io_status_bits_way : _GEN_345; // @[Scheduler.scala 308:{16,16}]
  wire  _GEN_347 = 5'ha == sinkD_io_source ? abc_mshrs_10_io_status_bits_way : _GEN_346; // @[Scheduler.scala 308:{16,16}]
  wire  _GEN_348 = 5'hb == sinkD_io_source ? abc_mshrs_11_io_status_bits_way : _GEN_347; // @[Scheduler.scala 308:{16,16}]
  wire  _GEN_349 = 5'hc == sinkD_io_source ? abc_mshrs_12_io_status_bits_way : _GEN_348; // @[Scheduler.scala 308:{16,16}]
  wire  _GEN_350 = 5'hd == sinkD_io_source ? abc_mshrs_13_io_status_bits_way : _GEN_349; // @[Scheduler.scala 308:{16,16}]
  wire  _GEN_351 = 5'he == sinkD_io_source ? abc_mshrs_14_io_status_bits_way : _GEN_350; // @[Scheduler.scala 308:{16,16}]
  wire  _GEN_352 = 5'hf == sinkD_io_source ? abc_mshrs_15_io_status_bits_way : _GEN_351; // @[Scheduler.scala 308:{16,16}]
  wire  _GEN_353 = 5'h10 == sinkD_io_source ? abc_mshrs_16_io_status_bits_way : _GEN_352; // @[Scheduler.scala 308:{16,16}]
  wire  _GEN_354 = 5'h11 == sinkD_io_source ? abc_mshrs_17_io_status_bits_way : _GEN_353; // @[Scheduler.scala 308:{16,16}]
  wire  _GEN_355 = 5'h12 == sinkD_io_source ? abc_mshrs_18_io_status_bits_way : _GEN_354; // @[Scheduler.scala 308:{16,16}]
  wire  _GEN_356 = 5'h13 == sinkD_io_source ? abc_mshrs_19_io_status_bits_way : _GEN_355; // @[Scheduler.scala 308:{16,16}]
  wire  _GEN_357 = 5'h14 == sinkD_io_source ? bc_mshr_io_status_bits_way : _GEN_356; // @[Scheduler.scala 308:{16,16}]
  wire [2:0] _sinkD_io_set_WIRE_0 = abc_mshrs_0_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [2:0] _sinkD_io_set_WIRE_1 = abc_mshrs_1_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [2:0] _GEN_360 = 5'h1 == sinkD_io_source ? _sinkD_io_set_WIRE_1 : _sinkD_io_set_WIRE_0; // @[Scheduler.scala 309:{16,16}]
  wire [2:0] _sinkD_io_set_WIRE_2 = abc_mshrs_2_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [2:0] _GEN_361 = 5'h2 == sinkD_io_source ? _sinkD_io_set_WIRE_2 : _GEN_360; // @[Scheduler.scala 309:{16,16}]
  wire [2:0] _sinkD_io_set_WIRE_3 = abc_mshrs_3_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [2:0] _GEN_362 = 5'h3 == sinkD_io_source ? _sinkD_io_set_WIRE_3 : _GEN_361; // @[Scheduler.scala 309:{16,16}]
  wire [2:0] _sinkD_io_set_WIRE_4 = abc_mshrs_4_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [2:0] _GEN_363 = 5'h4 == sinkD_io_source ? _sinkD_io_set_WIRE_4 : _GEN_362; // @[Scheduler.scala 309:{16,16}]
  wire [2:0] _sinkD_io_set_WIRE_5 = abc_mshrs_5_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [2:0] _GEN_364 = 5'h5 == sinkD_io_source ? _sinkD_io_set_WIRE_5 : _GEN_363; // @[Scheduler.scala 309:{16,16}]
  wire [2:0] _sinkD_io_set_WIRE_6 = abc_mshrs_6_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [2:0] _GEN_365 = 5'h6 == sinkD_io_source ? _sinkD_io_set_WIRE_6 : _GEN_364; // @[Scheduler.scala 309:{16,16}]
  wire [2:0] _sinkD_io_set_WIRE_7 = abc_mshrs_7_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [2:0] _GEN_366 = 5'h7 == sinkD_io_source ? _sinkD_io_set_WIRE_7 : _GEN_365; // @[Scheduler.scala 309:{16,16}]
  wire [2:0] _sinkD_io_set_WIRE_8 = abc_mshrs_8_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [2:0] _GEN_367 = 5'h8 == sinkD_io_source ? _sinkD_io_set_WIRE_8 : _GEN_366; // @[Scheduler.scala 309:{16,16}]
  wire [2:0] _sinkD_io_set_WIRE_9 = abc_mshrs_9_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [2:0] _GEN_368 = 5'h9 == sinkD_io_source ? _sinkD_io_set_WIRE_9 : _GEN_367; // @[Scheduler.scala 309:{16,16}]
  wire [2:0] _sinkD_io_set_WIRE_10 = abc_mshrs_10_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [2:0] _GEN_369 = 5'ha == sinkD_io_source ? _sinkD_io_set_WIRE_10 : _GEN_368; // @[Scheduler.scala 309:{16,16}]
  wire [2:0] _sinkD_io_set_WIRE_11 = abc_mshrs_11_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [2:0] _GEN_370 = 5'hb == sinkD_io_source ? _sinkD_io_set_WIRE_11 : _GEN_369; // @[Scheduler.scala 309:{16,16}]
  wire [2:0] _sinkD_io_set_WIRE_12 = abc_mshrs_12_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [2:0] _GEN_371 = 5'hc == sinkD_io_source ? _sinkD_io_set_WIRE_12 : _GEN_370; // @[Scheduler.scala 309:{16,16}]
  wire [2:0] _sinkD_io_set_WIRE_13 = abc_mshrs_13_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [2:0] _GEN_372 = 5'hd == sinkD_io_source ? _sinkD_io_set_WIRE_13 : _GEN_371; // @[Scheduler.scala 309:{16,16}]
  wire [2:0] _sinkD_io_set_WIRE_14 = abc_mshrs_14_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [2:0] _GEN_373 = 5'he == sinkD_io_source ? _sinkD_io_set_WIRE_14 : _GEN_372; // @[Scheduler.scala 309:{16,16}]
  wire [2:0] _sinkD_io_set_WIRE_15 = abc_mshrs_15_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [2:0] _GEN_374 = 5'hf == sinkD_io_source ? _sinkD_io_set_WIRE_15 : _GEN_373; // @[Scheduler.scala 309:{16,16}]
  wire [2:0] _sinkD_io_set_WIRE_16 = abc_mshrs_16_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [2:0] _GEN_375 = 5'h10 == sinkD_io_source ? _sinkD_io_set_WIRE_16 : _GEN_374; // @[Scheduler.scala 309:{16,16}]
  wire [2:0] _sinkD_io_set_WIRE_17 = abc_mshrs_17_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [2:0] _GEN_376 = 5'h11 == sinkD_io_source ? _sinkD_io_set_WIRE_17 : _GEN_375; // @[Scheduler.scala 309:{16,16}]
  wire [2:0] _sinkD_io_set_WIRE_18 = abc_mshrs_18_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [2:0] _GEN_377 = 5'h12 == sinkD_io_source ? _sinkD_io_set_WIRE_18 : _GEN_376; // @[Scheduler.scala 309:{16,16}]
  wire [2:0] _sinkD_io_set_WIRE_19 = abc_mshrs_19_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [2:0] _GEN_378 = 5'h13 == sinkD_io_source ? _sinkD_io_set_WIRE_19 : _GEN_377; // @[Scheduler.scala 309:{16,16}]
  wire [2:0] _sinkD_io_set_WIRE_20 = bc_mshr_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [2:0] _GEN_379 = 5'h14 == sinkD_io_source ? _sinkD_io_set_WIRE_20 : _GEN_378; // @[Scheduler.scala 309:{16,16}]
  wire [2:0] _sinkD_io_set_WIRE_21 = c_mshr_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  SourceA sourceA ( // @[Scheduler.scala 38:23]
    .clock(sourceA_clock),
    .reset(sourceA_reset),
    .io_req_ready(sourceA_io_req_ready),
    .io_req_valid(sourceA_io_req_valid),
    .io_req_bits_tag(sourceA_io_req_bits_tag),
    .io_req_bits_set(sourceA_io_req_bits_set),
    .io_req_bits_param(sourceA_io_req_bits_param),
    .io_req_bits_source(sourceA_io_req_bits_source),
    .io_req_bits_block(sourceA_io_req_bits_block),
    .io_a_ready(sourceA_io_a_ready),
    .io_a_valid(sourceA_io_a_valid),
    .io_a_bits_opcode(sourceA_io_a_bits_opcode),
    .io_a_bits_param(sourceA_io_a_bits_param),
    .io_a_bits_size(sourceA_io_a_bits_size),
    .io_a_bits_source(sourceA_io_a_bits_source),
    .io_a_bits_address(sourceA_io_a_bits_address),
    .io_a_bits_mask(sourceA_io_a_bits_mask),
    .io_a_bits_data(sourceA_io_a_bits_data),
    .io_a_bits_corrupt(sourceA_io_a_bits_corrupt)
  );
  SourceB sourceB ( // @[Scheduler.scala 39:23]
    .clock(sourceB_clock),
    .reset(sourceB_reset),
    .io_req_ready(sourceB_io_req_ready),
    .io_req_valid(sourceB_io_req_valid),
    .io_req_bits_param(sourceB_io_req_bits_param),
    .io_req_bits_tag(sourceB_io_req_bits_tag),
    .io_req_bits_set(sourceB_io_req_bits_set),
    .io_req_bits_clients(sourceB_io_req_bits_clients),
    .io_b_ready(sourceB_io_b_ready),
    .io_b_valid(sourceB_io_b_valid),
    .io_b_bits_param(sourceB_io_b_bits_param),
    .io_b_bits_address(sourceB_io_b_bits_address)
  );
  SourceC sourceC ( // @[Scheduler.scala 40:23]
    .clock(sourceC_clock),
    .reset(sourceC_reset),
    .io_req_ready(sourceC_io_req_ready),
    .io_req_valid(sourceC_io_req_valid),
    .io_req_bits_opcode(sourceC_io_req_bits_opcode),
    .io_req_bits_param(sourceC_io_req_bits_param),
    .io_req_bits_source(sourceC_io_req_bits_source),
    .io_req_bits_tag(sourceC_io_req_bits_tag),
    .io_req_bits_set(sourceC_io_req_bits_set),
    .io_req_bits_way(sourceC_io_req_bits_way),
    .io_req_bits_dirty(sourceC_io_req_bits_dirty),
    .io_c_ready(sourceC_io_c_ready),
    .io_c_valid(sourceC_io_c_valid),
    .io_c_bits_opcode(sourceC_io_c_bits_opcode),
    .io_c_bits_param(sourceC_io_c_bits_param),
    .io_c_bits_size(sourceC_io_c_bits_size),
    .io_c_bits_source(sourceC_io_c_bits_source),
    .io_c_bits_address(sourceC_io_c_bits_address),
    .io_c_bits_data(sourceC_io_c_bits_data),
    .io_c_bits_corrupt(sourceC_io_c_bits_corrupt),
    .io_bs_adr_ready(sourceC_io_bs_adr_ready),
    .io_bs_adr_valid(sourceC_io_bs_adr_valid),
    .io_bs_adr_bits_way(sourceC_io_bs_adr_bits_way),
    .io_bs_adr_bits_set(sourceC_io_bs_adr_bits_set),
    .io_bs_adr_bits_beat(sourceC_io_bs_adr_bits_beat),
    .io_bs_dat_data(sourceC_io_bs_dat_data),
    .io_evict_req_set(sourceC_io_evict_req_set),
    .io_evict_req_way(sourceC_io_evict_req_way),
    .io_evict_safe(sourceC_io_evict_safe)
  );
  SourceD sourceD ( // @[Scheduler.scala 41:23]
    .clock(sourceD_clock),
    .reset(sourceD_reset),
    .io_req_ready(sourceD_io_req_ready),
    .io_req_valid(sourceD_io_req_valid),
    .io_req_bits_prio_0(sourceD_io_req_bits_prio_0),
    .io_req_bits_prio_2(sourceD_io_req_bits_prio_2),
    .io_req_bits_opcode(sourceD_io_req_bits_opcode),
    .io_req_bits_param(sourceD_io_req_bits_param),
    .io_req_bits_size(sourceD_io_req_bits_size),
    .io_req_bits_source(sourceD_io_req_bits_source),
    .io_req_bits_offset(sourceD_io_req_bits_offset),
    .io_req_bits_put(sourceD_io_req_bits_put),
    .io_req_bits_set(sourceD_io_req_bits_set),
    .io_req_bits_sink(sourceD_io_req_bits_sink),
    .io_req_bits_way(sourceD_io_req_bits_way),
    .io_req_bits_bad(sourceD_io_req_bits_bad),
    .io_d_ready(sourceD_io_d_ready),
    .io_d_valid(sourceD_io_d_valid),
    .io_d_bits_opcode(sourceD_io_d_bits_opcode),
    .io_d_bits_param(sourceD_io_d_bits_param),
    .io_d_bits_size(sourceD_io_d_bits_size),
    .io_d_bits_source(sourceD_io_d_bits_source),
    .io_d_bits_sink(sourceD_io_d_bits_sink),
    .io_d_bits_denied(sourceD_io_d_bits_denied),
    .io_d_bits_data(sourceD_io_d_bits_data),
    .io_d_bits_corrupt(sourceD_io_d_bits_corrupt),
    .io_pb_pop_ready(sourceD_io_pb_pop_ready),
    .io_pb_pop_valid(sourceD_io_pb_pop_valid),
    .io_pb_pop_bits_index(sourceD_io_pb_pop_bits_index),
    .io_pb_pop_bits_last(sourceD_io_pb_pop_bits_last),
    .io_pb_beat_data(sourceD_io_pb_beat_data),
    .io_pb_beat_mask(sourceD_io_pb_beat_mask),
    .io_pb_beat_corrupt(sourceD_io_pb_beat_corrupt),
    .io_rel_pop_ready(sourceD_io_rel_pop_ready),
    .io_rel_pop_valid(sourceD_io_rel_pop_valid),
    .io_rel_pop_bits_index(sourceD_io_rel_pop_bits_index),
    .io_rel_pop_bits_last(sourceD_io_rel_pop_bits_last),
    .io_rel_beat_data(sourceD_io_rel_beat_data),
    .io_rel_beat_corrupt(sourceD_io_rel_beat_corrupt),
    .io_bs_radr_ready(sourceD_io_bs_radr_ready),
    .io_bs_radr_valid(sourceD_io_bs_radr_valid),
    .io_bs_radr_bits_way(sourceD_io_bs_radr_bits_way),
    .io_bs_radr_bits_set(sourceD_io_bs_radr_bits_set),
    .io_bs_radr_bits_beat(sourceD_io_bs_radr_bits_beat),
    .io_bs_radr_bits_mask(sourceD_io_bs_radr_bits_mask),
    .io_bs_rdat_data(sourceD_io_bs_rdat_data),
    .io_bs_wadr_ready(sourceD_io_bs_wadr_ready),
    .io_bs_wadr_valid(sourceD_io_bs_wadr_valid),
    .io_bs_wadr_bits_way(sourceD_io_bs_wadr_bits_way),
    .io_bs_wadr_bits_set(sourceD_io_bs_wadr_bits_set),
    .io_bs_wadr_bits_beat(sourceD_io_bs_wadr_bits_beat),
    .io_bs_wadr_bits_mask(sourceD_io_bs_wadr_bits_mask),
    .io_bs_wdat_data(sourceD_io_bs_wdat_data),
    .io_evict_req_set(sourceD_io_evict_req_set),
    .io_evict_req_way(sourceD_io_evict_req_way),
    .io_evict_safe(sourceD_io_evict_safe),
    .io_grant_req_set(sourceD_io_grant_req_set),
    .io_grant_req_way(sourceD_io_grant_req_way),
    .io_grant_safe(sourceD_io_grant_safe)
  );
  SourceE sourceE ( // @[Scheduler.scala 42:23]
    .clock(sourceE_clock),
    .reset(sourceE_reset),
    .io_req_ready(sourceE_io_req_ready),
    .io_req_valid(sourceE_io_req_valid),
    .io_req_bits_sink(sourceE_io_req_bits_sink),
    .io_e_valid(sourceE_io_e_valid),
    .io_e_bits_sink(sourceE_io_e_bits_sink)
  );
  SinkA sinkA ( // @[Scheduler.scala 52:21]
    .clock(sinkA_clock),
    .reset(sinkA_reset),
    .io_req_ready(sinkA_io_req_ready),
    .io_req_valid(sinkA_io_req_valid),
    .io_req_bits_opcode(sinkA_io_req_bits_opcode),
    .io_req_bits_param(sinkA_io_req_bits_param),
    .io_req_bits_size(sinkA_io_req_bits_size),
    .io_req_bits_source(sinkA_io_req_bits_source),
    .io_req_bits_tag(sinkA_io_req_bits_tag),
    .io_req_bits_offset(sinkA_io_req_bits_offset),
    .io_req_bits_put(sinkA_io_req_bits_put),
    .io_req_bits_set(sinkA_io_req_bits_set),
    .io_a_ready(sinkA_io_a_ready),
    .io_a_valid(sinkA_io_a_valid),
    .io_a_bits_opcode(sinkA_io_a_bits_opcode),
    .io_a_bits_param(sinkA_io_a_bits_param),
    .io_a_bits_size(sinkA_io_a_bits_size),
    .io_a_bits_source(sinkA_io_a_bits_source),
    .io_a_bits_address(sinkA_io_a_bits_address),
    .io_a_bits_mask(sinkA_io_a_bits_mask),
    .io_a_bits_data(sinkA_io_a_bits_data),
    .io_a_bits_corrupt(sinkA_io_a_bits_corrupt),
    .io_pb_pop_ready(sinkA_io_pb_pop_ready),
    .io_pb_pop_valid(sinkA_io_pb_pop_valid),
    .io_pb_pop_bits_index(sinkA_io_pb_pop_bits_index),
    .io_pb_pop_bits_last(sinkA_io_pb_pop_bits_last),
    .io_pb_beat_data(sinkA_io_pb_beat_data),
    .io_pb_beat_mask(sinkA_io_pb_beat_mask),
    .io_pb_beat_corrupt(sinkA_io_pb_beat_corrupt)
  );
  SinkC sinkC ( // @[Scheduler.scala 53:21]
    .clock(sinkC_clock),
    .reset(sinkC_reset),
    .io_req_ready(sinkC_io_req_ready),
    .io_req_valid(sinkC_io_req_valid),
    .io_req_bits_opcode(sinkC_io_req_bits_opcode),
    .io_req_bits_param(sinkC_io_req_bits_param),
    .io_req_bits_size(sinkC_io_req_bits_size),
    .io_req_bits_source(sinkC_io_req_bits_source),
    .io_req_bits_tag(sinkC_io_req_bits_tag),
    .io_req_bits_offset(sinkC_io_req_bits_offset),
    .io_req_bits_put(sinkC_io_req_bits_put),
    .io_req_bits_set(sinkC_io_req_bits_set),
    .io_resp_valid(sinkC_io_resp_valid),
    .io_resp_bits_last(sinkC_io_resp_bits_last),
    .io_resp_bits_set(sinkC_io_resp_bits_set),
    .io_resp_bits_tag(sinkC_io_resp_bits_tag),
    .io_resp_bits_source(sinkC_io_resp_bits_source),
    .io_resp_bits_param(sinkC_io_resp_bits_param),
    .io_resp_bits_data(sinkC_io_resp_bits_data),
    .io_c_ready(sinkC_io_c_ready),
    .io_c_valid(sinkC_io_c_valid),
    .io_c_bits_opcode(sinkC_io_c_bits_opcode),
    .io_c_bits_param(sinkC_io_c_bits_param),
    .io_c_bits_size(sinkC_io_c_bits_size),
    .io_c_bits_address(sinkC_io_c_bits_address),
    .io_c_bits_data(sinkC_io_c_bits_data),
    .io_c_bits_corrupt(sinkC_io_c_bits_corrupt),
    .io_set(sinkC_io_set),
    .io_way(sinkC_io_way),
    .io_bs_adr_ready(sinkC_io_bs_adr_ready),
    .io_bs_adr_valid(sinkC_io_bs_adr_valid),
    .io_bs_adr_bits_noop(sinkC_io_bs_adr_bits_noop),
    .io_bs_adr_bits_way(sinkC_io_bs_adr_bits_way),
    .io_bs_adr_bits_set(sinkC_io_bs_adr_bits_set),
    .io_bs_adr_bits_beat(sinkC_io_bs_adr_bits_beat),
    .io_bs_adr_bits_mask(sinkC_io_bs_adr_bits_mask),
    .io_bs_dat_data(sinkC_io_bs_dat_data),
    .io_rel_pop_ready(sinkC_io_rel_pop_ready),
    .io_rel_pop_valid(sinkC_io_rel_pop_valid),
    .io_rel_pop_bits_index(sinkC_io_rel_pop_bits_index),
    .io_rel_pop_bits_last(sinkC_io_rel_pop_bits_last),
    .io_rel_beat_data(sinkC_io_rel_beat_data),
    .io_rel_beat_corrupt(sinkC_io_rel_beat_corrupt)
  );
  SinkD sinkD ( // @[Scheduler.scala 54:21]
    .clock(sinkD_clock),
    .reset(sinkD_reset),
    .io_resp_valid(sinkD_io_resp_valid),
    .io_resp_bits_last(sinkD_io_resp_bits_last),
    .io_resp_bits_opcode(sinkD_io_resp_bits_opcode),
    .io_resp_bits_param(sinkD_io_resp_bits_param),
    .io_resp_bits_source(sinkD_io_resp_bits_source),
    .io_resp_bits_sink(sinkD_io_resp_bits_sink),
    .io_resp_bits_denied(sinkD_io_resp_bits_denied),
    .io_d_ready(sinkD_io_d_ready),
    .io_d_valid(sinkD_io_d_valid),
    .io_d_bits_opcode(sinkD_io_d_bits_opcode),
    .io_d_bits_param(sinkD_io_d_bits_param),
    .io_d_bits_size(sinkD_io_d_bits_size),
    .io_d_bits_source(sinkD_io_d_bits_source),
    .io_d_bits_sink(sinkD_io_d_bits_sink),
    .io_d_bits_denied(sinkD_io_d_bits_denied),
    .io_d_bits_data(sinkD_io_d_bits_data),
    .io_d_bits_corrupt(sinkD_io_d_bits_corrupt),
    .io_source(sinkD_io_source),
    .io_way(sinkD_io_way),
    .io_set(sinkD_io_set),
    .io_bs_adr_ready(sinkD_io_bs_adr_ready),
    .io_bs_adr_valid(sinkD_io_bs_adr_valid),
    .io_bs_adr_bits_noop(sinkD_io_bs_adr_bits_noop),
    .io_bs_adr_bits_way(sinkD_io_bs_adr_bits_way),
    .io_bs_adr_bits_set(sinkD_io_bs_adr_bits_set),
    .io_bs_adr_bits_beat(sinkD_io_bs_adr_bits_beat),
    .io_bs_dat_data(sinkD_io_bs_dat_data),
    .io_grant_req_set(sinkD_io_grant_req_set),
    .io_grant_req_way(sinkD_io_grant_req_way),
    .io_grant_safe(sinkD_io_grant_safe)
  );
  SinkE sinkE ( // @[Scheduler.scala 55:21]
    .io_resp_valid(sinkE_io_resp_valid),
    .io_resp_bits_sink(sinkE_io_resp_bits_sink),
    .io_e_valid(sinkE_io_e_valid),
    .io_e_bits_sink(sinkE_io_e_bits_sink)
  );
  Directory directory ( // @[Scheduler.scala 66:25]
    .clock(directory_clock),
    .reset(directory_reset),
    .io_write_ready(directory_io_write_ready),
    .io_write_valid(directory_io_write_valid),
    .io_write_bits_set(directory_io_write_bits_set),
    .io_write_bits_way(directory_io_write_bits_way),
    .io_write_bits_data_dirty(directory_io_write_bits_data_dirty),
    .io_write_bits_data_state(directory_io_write_bits_data_state),
    .io_write_bits_data_clients(directory_io_write_bits_data_clients),
    .io_write_bits_data_tag(directory_io_write_bits_data_tag),
    .io_read_valid(directory_io_read_valid),
    .io_read_bits_set(directory_io_read_bits_set),
    .io_read_bits_tag(directory_io_read_bits_tag),
    .io_result_bits_dirty(directory_io_result_bits_dirty),
    .io_result_bits_state(directory_io_result_bits_state),
    .io_result_bits_clients(directory_io_result_bits_clients),
    .io_result_bits_tag(directory_io_result_bits_tag),
    .io_result_bits_hit(directory_io_result_bits_hit),
    .io_result_bits_way(directory_io_result_bits_way),
    .io_ready(directory_io_ready)
  );
  BankedStore bankedStore ( // @[Scheduler.scala 67:27]
    .clock(bankedStore_clock),
    .io_sinkC_adr_ready(bankedStore_io_sinkC_adr_ready),
    .io_sinkC_adr_valid(bankedStore_io_sinkC_adr_valid),
    .io_sinkC_adr_bits_noop(bankedStore_io_sinkC_adr_bits_noop),
    .io_sinkC_adr_bits_way(bankedStore_io_sinkC_adr_bits_way),
    .io_sinkC_adr_bits_set(bankedStore_io_sinkC_adr_bits_set),
    .io_sinkC_adr_bits_beat(bankedStore_io_sinkC_adr_bits_beat),
    .io_sinkC_adr_bits_mask(bankedStore_io_sinkC_adr_bits_mask),
    .io_sinkC_dat_data(bankedStore_io_sinkC_dat_data),
    .io_sinkD_adr_ready(bankedStore_io_sinkD_adr_ready),
    .io_sinkD_adr_valid(bankedStore_io_sinkD_adr_valid),
    .io_sinkD_adr_bits_noop(bankedStore_io_sinkD_adr_bits_noop),
    .io_sinkD_adr_bits_way(bankedStore_io_sinkD_adr_bits_way),
    .io_sinkD_adr_bits_set(bankedStore_io_sinkD_adr_bits_set),
    .io_sinkD_adr_bits_beat(bankedStore_io_sinkD_adr_bits_beat),
    .io_sinkD_dat_data(bankedStore_io_sinkD_dat_data),
    .io_sourceC_adr_ready(bankedStore_io_sourceC_adr_ready),
    .io_sourceC_adr_valid(bankedStore_io_sourceC_adr_valid),
    .io_sourceC_adr_bits_way(bankedStore_io_sourceC_adr_bits_way),
    .io_sourceC_adr_bits_set(bankedStore_io_sourceC_adr_bits_set),
    .io_sourceC_adr_bits_beat(bankedStore_io_sourceC_adr_bits_beat),
    .io_sourceC_dat_data(bankedStore_io_sourceC_dat_data),
    .io_sourceD_radr_ready(bankedStore_io_sourceD_radr_ready),
    .io_sourceD_radr_valid(bankedStore_io_sourceD_radr_valid),
    .io_sourceD_radr_bits_way(bankedStore_io_sourceD_radr_bits_way),
    .io_sourceD_radr_bits_set(bankedStore_io_sourceD_radr_bits_set),
    .io_sourceD_radr_bits_beat(bankedStore_io_sourceD_radr_bits_beat),
    .io_sourceD_radr_bits_mask(bankedStore_io_sourceD_radr_bits_mask),
    .io_sourceD_rdat_data(bankedStore_io_sourceD_rdat_data),
    .io_sourceD_wadr_ready(bankedStore_io_sourceD_wadr_ready),
    .io_sourceD_wadr_valid(bankedStore_io_sourceD_wadr_valid),
    .io_sourceD_wadr_bits_way(bankedStore_io_sourceD_wadr_bits_way),
    .io_sourceD_wadr_bits_set(bankedStore_io_sourceD_wadr_bits_set),
    .io_sourceD_wadr_bits_beat(bankedStore_io_sourceD_wadr_bits_beat),
    .io_sourceD_wadr_bits_mask(bankedStore_io_sourceD_wadr_bits_mask),
    .io_sourceD_wdat_data(bankedStore_io_sourceD_wdat_data)
  );
  ListBuffer_2 requests ( // @[Scheduler.scala 68:24]
    .clock(requests_clock),
    .reset(requests_reset),
    .io_push_ready(requests_io_push_ready),
    .io_push_valid(requests_io_push_valid),
    .io_push_bits_index(requests_io_push_bits_index),
    .io_push_bits_data_prio_0(requests_io_push_bits_data_prio_0),
    .io_push_bits_data_prio_2(requests_io_push_bits_data_prio_2),
    .io_push_bits_data_opcode(requests_io_push_bits_data_opcode),
    .io_push_bits_data_param(requests_io_push_bits_data_param),
    .io_push_bits_data_size(requests_io_push_bits_data_size),
    .io_push_bits_data_source(requests_io_push_bits_data_source),
    .io_push_bits_data_tag(requests_io_push_bits_data_tag),
    .io_push_bits_data_offset(requests_io_push_bits_data_offset),
    .io_push_bits_data_put(requests_io_push_bits_data_put),
    .io_valid(requests_io_valid),
    .io_pop_valid(requests_io_pop_valid),
    .io_pop_bits(requests_io_pop_bits),
    .io_data_prio_0(requests_io_data_prio_0),
    .io_data_prio_1(requests_io_data_prio_1),
    .io_data_prio_2(requests_io_data_prio_2),
    .io_data_opcode(requests_io_data_opcode),
    .io_data_param(requests_io_data_param),
    .io_data_size(requests_io_data_size),
    .io_data_source(requests_io_data_source),
    .io_data_tag(requests_io_data_tag),
    .io_data_offset(requests_io_data_offset),
    .io_data_put(requests_io_data_put)
  );
  MSHR abc_mshrs_0 ( // @[Scheduler.scala 69:46]
    .clock(abc_mshrs_0_clock),
    .reset(abc_mshrs_0_reset),
    .io_allocate_valid(abc_mshrs_0_io_allocate_valid),
    .io_allocate_bits_prio_0(abc_mshrs_0_io_allocate_bits_prio_0),
    .io_allocate_bits_prio_1(abc_mshrs_0_io_allocate_bits_prio_1),
    .io_allocate_bits_prio_2(abc_mshrs_0_io_allocate_bits_prio_2),
    .io_allocate_bits_opcode(abc_mshrs_0_io_allocate_bits_opcode),
    .io_allocate_bits_param(abc_mshrs_0_io_allocate_bits_param),
    .io_allocate_bits_size(abc_mshrs_0_io_allocate_bits_size),
    .io_allocate_bits_source(abc_mshrs_0_io_allocate_bits_source),
    .io_allocate_bits_tag(abc_mshrs_0_io_allocate_bits_tag),
    .io_allocate_bits_offset(abc_mshrs_0_io_allocate_bits_offset),
    .io_allocate_bits_put(abc_mshrs_0_io_allocate_bits_put),
    .io_allocate_bits_set(abc_mshrs_0_io_allocate_bits_set),
    .io_allocate_bits_repeat(abc_mshrs_0_io_allocate_bits_repeat),
    .io_directory_valid(abc_mshrs_0_io_directory_valid),
    .io_directory_bits_dirty(abc_mshrs_0_io_directory_bits_dirty),
    .io_directory_bits_state(abc_mshrs_0_io_directory_bits_state),
    .io_directory_bits_clients(abc_mshrs_0_io_directory_bits_clients),
    .io_directory_bits_tag(abc_mshrs_0_io_directory_bits_tag),
    .io_directory_bits_hit(abc_mshrs_0_io_directory_bits_hit),
    .io_directory_bits_way(abc_mshrs_0_io_directory_bits_way),
    .io_status_valid(abc_mshrs_0_io_status_valid),
    .io_status_bits_set(abc_mshrs_0_io_status_bits_set),
    .io_status_bits_tag(abc_mshrs_0_io_status_bits_tag),
    .io_status_bits_way(abc_mshrs_0_io_status_bits_way),
    .io_status_bits_blockB(abc_mshrs_0_io_status_bits_blockB),
    .io_status_bits_nestB(abc_mshrs_0_io_status_bits_nestB),
    .io_status_bits_blockC(abc_mshrs_0_io_status_bits_blockC),
    .io_status_bits_nestC(abc_mshrs_0_io_status_bits_nestC),
    .io_schedule_ready(abc_mshrs_0_io_schedule_ready),
    .io_schedule_valid(abc_mshrs_0_io_schedule_valid),
    .io_schedule_bits_a_valid(abc_mshrs_0_io_schedule_bits_a_valid),
    .io_schedule_bits_a_bits_tag(abc_mshrs_0_io_schedule_bits_a_bits_tag),
    .io_schedule_bits_a_bits_set(abc_mshrs_0_io_schedule_bits_a_bits_set),
    .io_schedule_bits_a_bits_param(abc_mshrs_0_io_schedule_bits_a_bits_param),
    .io_schedule_bits_a_bits_block(abc_mshrs_0_io_schedule_bits_a_bits_block),
    .io_schedule_bits_b_valid(abc_mshrs_0_io_schedule_bits_b_valid),
    .io_schedule_bits_b_bits_param(abc_mshrs_0_io_schedule_bits_b_bits_param),
    .io_schedule_bits_b_bits_tag(abc_mshrs_0_io_schedule_bits_b_bits_tag),
    .io_schedule_bits_b_bits_set(abc_mshrs_0_io_schedule_bits_b_bits_set),
    .io_schedule_bits_b_bits_clients(abc_mshrs_0_io_schedule_bits_b_bits_clients),
    .io_schedule_bits_c_valid(abc_mshrs_0_io_schedule_bits_c_valid),
    .io_schedule_bits_c_bits_opcode(abc_mshrs_0_io_schedule_bits_c_bits_opcode),
    .io_schedule_bits_c_bits_param(abc_mshrs_0_io_schedule_bits_c_bits_param),
    .io_schedule_bits_c_bits_tag(abc_mshrs_0_io_schedule_bits_c_bits_tag),
    .io_schedule_bits_c_bits_set(abc_mshrs_0_io_schedule_bits_c_bits_set),
    .io_schedule_bits_c_bits_way(abc_mshrs_0_io_schedule_bits_c_bits_way),
    .io_schedule_bits_c_bits_dirty(abc_mshrs_0_io_schedule_bits_c_bits_dirty),
    .io_schedule_bits_d_valid(abc_mshrs_0_io_schedule_bits_d_valid),
    .io_schedule_bits_d_bits_prio_0(abc_mshrs_0_io_schedule_bits_d_bits_prio_0),
    .io_schedule_bits_d_bits_prio_2(abc_mshrs_0_io_schedule_bits_d_bits_prio_2),
    .io_schedule_bits_d_bits_opcode(abc_mshrs_0_io_schedule_bits_d_bits_opcode),
    .io_schedule_bits_d_bits_param(abc_mshrs_0_io_schedule_bits_d_bits_param),
    .io_schedule_bits_d_bits_size(abc_mshrs_0_io_schedule_bits_d_bits_size),
    .io_schedule_bits_d_bits_source(abc_mshrs_0_io_schedule_bits_d_bits_source),
    .io_schedule_bits_d_bits_offset(abc_mshrs_0_io_schedule_bits_d_bits_offset),
    .io_schedule_bits_d_bits_put(abc_mshrs_0_io_schedule_bits_d_bits_put),
    .io_schedule_bits_d_bits_set(abc_mshrs_0_io_schedule_bits_d_bits_set),
    .io_schedule_bits_d_bits_way(abc_mshrs_0_io_schedule_bits_d_bits_way),
    .io_schedule_bits_d_bits_bad(abc_mshrs_0_io_schedule_bits_d_bits_bad),
    .io_schedule_bits_e_valid(abc_mshrs_0_io_schedule_bits_e_valid),
    .io_schedule_bits_e_bits_sink(abc_mshrs_0_io_schedule_bits_e_bits_sink),
    .io_schedule_bits_x_valid(abc_mshrs_0_io_schedule_bits_x_valid),
    .io_schedule_bits_dir_valid(abc_mshrs_0_io_schedule_bits_dir_valid),
    .io_schedule_bits_dir_bits_set(abc_mshrs_0_io_schedule_bits_dir_bits_set),
    .io_schedule_bits_dir_bits_way(abc_mshrs_0_io_schedule_bits_dir_bits_way),
    .io_schedule_bits_dir_bits_data_dirty(abc_mshrs_0_io_schedule_bits_dir_bits_data_dirty),
    .io_schedule_bits_dir_bits_data_state(abc_mshrs_0_io_schedule_bits_dir_bits_data_state),
    .io_schedule_bits_dir_bits_data_clients(abc_mshrs_0_io_schedule_bits_dir_bits_data_clients),
    .io_schedule_bits_dir_bits_data_tag(abc_mshrs_0_io_schedule_bits_dir_bits_data_tag),
    .io_schedule_bits_reload(abc_mshrs_0_io_schedule_bits_reload),
    .io_sinkc_valid(abc_mshrs_0_io_sinkc_valid),
    .io_sinkc_bits_last(abc_mshrs_0_io_sinkc_bits_last),
    .io_sinkc_bits_tag(abc_mshrs_0_io_sinkc_bits_tag),
    .io_sinkc_bits_source(abc_mshrs_0_io_sinkc_bits_source),
    .io_sinkc_bits_param(abc_mshrs_0_io_sinkc_bits_param),
    .io_sinkc_bits_data(abc_mshrs_0_io_sinkc_bits_data),
    .io_sinkd_valid(abc_mshrs_0_io_sinkd_valid),
    .io_sinkd_bits_last(abc_mshrs_0_io_sinkd_bits_last),
    .io_sinkd_bits_opcode(abc_mshrs_0_io_sinkd_bits_opcode),
    .io_sinkd_bits_param(abc_mshrs_0_io_sinkd_bits_param),
    .io_sinkd_bits_sink(abc_mshrs_0_io_sinkd_bits_sink),
    .io_sinkd_bits_denied(abc_mshrs_0_io_sinkd_bits_denied),
    .io_sinke_valid(abc_mshrs_0_io_sinke_valid),
    .io_nestedwb_set(abc_mshrs_0_io_nestedwb_set),
    .io_nestedwb_tag(abc_mshrs_0_io_nestedwb_tag),
    .io_nestedwb_b_toN(abc_mshrs_0_io_nestedwb_b_toN),
    .io_nestedwb_b_toB(abc_mshrs_0_io_nestedwb_b_toB),
    .io_nestedwb_b_clr_dirty(abc_mshrs_0_io_nestedwb_b_clr_dirty),
    .io_nestedwb_c_set_dirty(abc_mshrs_0_io_nestedwb_c_set_dirty)
  );
  MSHR abc_mshrs_1 ( // @[Scheduler.scala 69:46]
    .clock(abc_mshrs_1_clock),
    .reset(abc_mshrs_1_reset),
    .io_allocate_valid(abc_mshrs_1_io_allocate_valid),
    .io_allocate_bits_prio_0(abc_mshrs_1_io_allocate_bits_prio_0),
    .io_allocate_bits_prio_1(abc_mshrs_1_io_allocate_bits_prio_1),
    .io_allocate_bits_prio_2(abc_mshrs_1_io_allocate_bits_prio_2),
    .io_allocate_bits_opcode(abc_mshrs_1_io_allocate_bits_opcode),
    .io_allocate_bits_param(abc_mshrs_1_io_allocate_bits_param),
    .io_allocate_bits_size(abc_mshrs_1_io_allocate_bits_size),
    .io_allocate_bits_source(abc_mshrs_1_io_allocate_bits_source),
    .io_allocate_bits_tag(abc_mshrs_1_io_allocate_bits_tag),
    .io_allocate_bits_offset(abc_mshrs_1_io_allocate_bits_offset),
    .io_allocate_bits_put(abc_mshrs_1_io_allocate_bits_put),
    .io_allocate_bits_set(abc_mshrs_1_io_allocate_bits_set),
    .io_allocate_bits_repeat(abc_mshrs_1_io_allocate_bits_repeat),
    .io_directory_valid(abc_mshrs_1_io_directory_valid),
    .io_directory_bits_dirty(abc_mshrs_1_io_directory_bits_dirty),
    .io_directory_bits_state(abc_mshrs_1_io_directory_bits_state),
    .io_directory_bits_clients(abc_mshrs_1_io_directory_bits_clients),
    .io_directory_bits_tag(abc_mshrs_1_io_directory_bits_tag),
    .io_directory_bits_hit(abc_mshrs_1_io_directory_bits_hit),
    .io_directory_bits_way(abc_mshrs_1_io_directory_bits_way),
    .io_status_valid(abc_mshrs_1_io_status_valid),
    .io_status_bits_set(abc_mshrs_1_io_status_bits_set),
    .io_status_bits_tag(abc_mshrs_1_io_status_bits_tag),
    .io_status_bits_way(abc_mshrs_1_io_status_bits_way),
    .io_status_bits_blockB(abc_mshrs_1_io_status_bits_blockB),
    .io_status_bits_nestB(abc_mshrs_1_io_status_bits_nestB),
    .io_status_bits_blockC(abc_mshrs_1_io_status_bits_blockC),
    .io_status_bits_nestC(abc_mshrs_1_io_status_bits_nestC),
    .io_schedule_ready(abc_mshrs_1_io_schedule_ready),
    .io_schedule_valid(abc_mshrs_1_io_schedule_valid),
    .io_schedule_bits_a_valid(abc_mshrs_1_io_schedule_bits_a_valid),
    .io_schedule_bits_a_bits_tag(abc_mshrs_1_io_schedule_bits_a_bits_tag),
    .io_schedule_bits_a_bits_set(abc_mshrs_1_io_schedule_bits_a_bits_set),
    .io_schedule_bits_a_bits_param(abc_mshrs_1_io_schedule_bits_a_bits_param),
    .io_schedule_bits_a_bits_block(abc_mshrs_1_io_schedule_bits_a_bits_block),
    .io_schedule_bits_b_valid(abc_mshrs_1_io_schedule_bits_b_valid),
    .io_schedule_bits_b_bits_param(abc_mshrs_1_io_schedule_bits_b_bits_param),
    .io_schedule_bits_b_bits_tag(abc_mshrs_1_io_schedule_bits_b_bits_tag),
    .io_schedule_bits_b_bits_set(abc_mshrs_1_io_schedule_bits_b_bits_set),
    .io_schedule_bits_b_bits_clients(abc_mshrs_1_io_schedule_bits_b_bits_clients),
    .io_schedule_bits_c_valid(abc_mshrs_1_io_schedule_bits_c_valid),
    .io_schedule_bits_c_bits_opcode(abc_mshrs_1_io_schedule_bits_c_bits_opcode),
    .io_schedule_bits_c_bits_param(abc_mshrs_1_io_schedule_bits_c_bits_param),
    .io_schedule_bits_c_bits_tag(abc_mshrs_1_io_schedule_bits_c_bits_tag),
    .io_schedule_bits_c_bits_set(abc_mshrs_1_io_schedule_bits_c_bits_set),
    .io_schedule_bits_c_bits_way(abc_mshrs_1_io_schedule_bits_c_bits_way),
    .io_schedule_bits_c_bits_dirty(abc_mshrs_1_io_schedule_bits_c_bits_dirty),
    .io_schedule_bits_d_valid(abc_mshrs_1_io_schedule_bits_d_valid),
    .io_schedule_bits_d_bits_prio_0(abc_mshrs_1_io_schedule_bits_d_bits_prio_0),
    .io_schedule_bits_d_bits_prio_2(abc_mshrs_1_io_schedule_bits_d_bits_prio_2),
    .io_schedule_bits_d_bits_opcode(abc_mshrs_1_io_schedule_bits_d_bits_opcode),
    .io_schedule_bits_d_bits_param(abc_mshrs_1_io_schedule_bits_d_bits_param),
    .io_schedule_bits_d_bits_size(abc_mshrs_1_io_schedule_bits_d_bits_size),
    .io_schedule_bits_d_bits_source(abc_mshrs_1_io_schedule_bits_d_bits_source),
    .io_schedule_bits_d_bits_offset(abc_mshrs_1_io_schedule_bits_d_bits_offset),
    .io_schedule_bits_d_bits_put(abc_mshrs_1_io_schedule_bits_d_bits_put),
    .io_schedule_bits_d_bits_set(abc_mshrs_1_io_schedule_bits_d_bits_set),
    .io_schedule_bits_d_bits_way(abc_mshrs_1_io_schedule_bits_d_bits_way),
    .io_schedule_bits_d_bits_bad(abc_mshrs_1_io_schedule_bits_d_bits_bad),
    .io_schedule_bits_e_valid(abc_mshrs_1_io_schedule_bits_e_valid),
    .io_schedule_bits_e_bits_sink(abc_mshrs_1_io_schedule_bits_e_bits_sink),
    .io_schedule_bits_x_valid(abc_mshrs_1_io_schedule_bits_x_valid),
    .io_schedule_bits_dir_valid(abc_mshrs_1_io_schedule_bits_dir_valid),
    .io_schedule_bits_dir_bits_set(abc_mshrs_1_io_schedule_bits_dir_bits_set),
    .io_schedule_bits_dir_bits_way(abc_mshrs_1_io_schedule_bits_dir_bits_way),
    .io_schedule_bits_dir_bits_data_dirty(abc_mshrs_1_io_schedule_bits_dir_bits_data_dirty),
    .io_schedule_bits_dir_bits_data_state(abc_mshrs_1_io_schedule_bits_dir_bits_data_state),
    .io_schedule_bits_dir_bits_data_clients(abc_mshrs_1_io_schedule_bits_dir_bits_data_clients),
    .io_schedule_bits_dir_bits_data_tag(abc_mshrs_1_io_schedule_bits_dir_bits_data_tag),
    .io_schedule_bits_reload(abc_mshrs_1_io_schedule_bits_reload),
    .io_sinkc_valid(abc_mshrs_1_io_sinkc_valid),
    .io_sinkc_bits_last(abc_mshrs_1_io_sinkc_bits_last),
    .io_sinkc_bits_tag(abc_mshrs_1_io_sinkc_bits_tag),
    .io_sinkc_bits_source(abc_mshrs_1_io_sinkc_bits_source),
    .io_sinkc_bits_param(abc_mshrs_1_io_sinkc_bits_param),
    .io_sinkc_bits_data(abc_mshrs_1_io_sinkc_bits_data),
    .io_sinkd_valid(abc_mshrs_1_io_sinkd_valid),
    .io_sinkd_bits_last(abc_mshrs_1_io_sinkd_bits_last),
    .io_sinkd_bits_opcode(abc_mshrs_1_io_sinkd_bits_opcode),
    .io_sinkd_bits_param(abc_mshrs_1_io_sinkd_bits_param),
    .io_sinkd_bits_sink(abc_mshrs_1_io_sinkd_bits_sink),
    .io_sinkd_bits_denied(abc_mshrs_1_io_sinkd_bits_denied),
    .io_sinke_valid(abc_mshrs_1_io_sinke_valid),
    .io_nestedwb_set(abc_mshrs_1_io_nestedwb_set),
    .io_nestedwb_tag(abc_mshrs_1_io_nestedwb_tag),
    .io_nestedwb_b_toN(abc_mshrs_1_io_nestedwb_b_toN),
    .io_nestedwb_b_toB(abc_mshrs_1_io_nestedwb_b_toB),
    .io_nestedwb_b_clr_dirty(abc_mshrs_1_io_nestedwb_b_clr_dirty),
    .io_nestedwb_c_set_dirty(abc_mshrs_1_io_nestedwb_c_set_dirty)
  );
  MSHR abc_mshrs_2 ( // @[Scheduler.scala 69:46]
    .clock(abc_mshrs_2_clock),
    .reset(abc_mshrs_2_reset),
    .io_allocate_valid(abc_mshrs_2_io_allocate_valid),
    .io_allocate_bits_prio_0(abc_mshrs_2_io_allocate_bits_prio_0),
    .io_allocate_bits_prio_1(abc_mshrs_2_io_allocate_bits_prio_1),
    .io_allocate_bits_prio_2(abc_mshrs_2_io_allocate_bits_prio_2),
    .io_allocate_bits_opcode(abc_mshrs_2_io_allocate_bits_opcode),
    .io_allocate_bits_param(abc_mshrs_2_io_allocate_bits_param),
    .io_allocate_bits_size(abc_mshrs_2_io_allocate_bits_size),
    .io_allocate_bits_source(abc_mshrs_2_io_allocate_bits_source),
    .io_allocate_bits_tag(abc_mshrs_2_io_allocate_bits_tag),
    .io_allocate_bits_offset(abc_mshrs_2_io_allocate_bits_offset),
    .io_allocate_bits_put(abc_mshrs_2_io_allocate_bits_put),
    .io_allocate_bits_set(abc_mshrs_2_io_allocate_bits_set),
    .io_allocate_bits_repeat(abc_mshrs_2_io_allocate_bits_repeat),
    .io_directory_valid(abc_mshrs_2_io_directory_valid),
    .io_directory_bits_dirty(abc_mshrs_2_io_directory_bits_dirty),
    .io_directory_bits_state(abc_mshrs_2_io_directory_bits_state),
    .io_directory_bits_clients(abc_mshrs_2_io_directory_bits_clients),
    .io_directory_bits_tag(abc_mshrs_2_io_directory_bits_tag),
    .io_directory_bits_hit(abc_mshrs_2_io_directory_bits_hit),
    .io_directory_bits_way(abc_mshrs_2_io_directory_bits_way),
    .io_status_valid(abc_mshrs_2_io_status_valid),
    .io_status_bits_set(abc_mshrs_2_io_status_bits_set),
    .io_status_bits_tag(abc_mshrs_2_io_status_bits_tag),
    .io_status_bits_way(abc_mshrs_2_io_status_bits_way),
    .io_status_bits_blockB(abc_mshrs_2_io_status_bits_blockB),
    .io_status_bits_nestB(abc_mshrs_2_io_status_bits_nestB),
    .io_status_bits_blockC(abc_mshrs_2_io_status_bits_blockC),
    .io_status_bits_nestC(abc_mshrs_2_io_status_bits_nestC),
    .io_schedule_ready(abc_mshrs_2_io_schedule_ready),
    .io_schedule_valid(abc_mshrs_2_io_schedule_valid),
    .io_schedule_bits_a_valid(abc_mshrs_2_io_schedule_bits_a_valid),
    .io_schedule_bits_a_bits_tag(abc_mshrs_2_io_schedule_bits_a_bits_tag),
    .io_schedule_bits_a_bits_set(abc_mshrs_2_io_schedule_bits_a_bits_set),
    .io_schedule_bits_a_bits_param(abc_mshrs_2_io_schedule_bits_a_bits_param),
    .io_schedule_bits_a_bits_block(abc_mshrs_2_io_schedule_bits_a_bits_block),
    .io_schedule_bits_b_valid(abc_mshrs_2_io_schedule_bits_b_valid),
    .io_schedule_bits_b_bits_param(abc_mshrs_2_io_schedule_bits_b_bits_param),
    .io_schedule_bits_b_bits_tag(abc_mshrs_2_io_schedule_bits_b_bits_tag),
    .io_schedule_bits_b_bits_set(abc_mshrs_2_io_schedule_bits_b_bits_set),
    .io_schedule_bits_b_bits_clients(abc_mshrs_2_io_schedule_bits_b_bits_clients),
    .io_schedule_bits_c_valid(abc_mshrs_2_io_schedule_bits_c_valid),
    .io_schedule_bits_c_bits_opcode(abc_mshrs_2_io_schedule_bits_c_bits_opcode),
    .io_schedule_bits_c_bits_param(abc_mshrs_2_io_schedule_bits_c_bits_param),
    .io_schedule_bits_c_bits_tag(abc_mshrs_2_io_schedule_bits_c_bits_tag),
    .io_schedule_bits_c_bits_set(abc_mshrs_2_io_schedule_bits_c_bits_set),
    .io_schedule_bits_c_bits_way(abc_mshrs_2_io_schedule_bits_c_bits_way),
    .io_schedule_bits_c_bits_dirty(abc_mshrs_2_io_schedule_bits_c_bits_dirty),
    .io_schedule_bits_d_valid(abc_mshrs_2_io_schedule_bits_d_valid),
    .io_schedule_bits_d_bits_prio_0(abc_mshrs_2_io_schedule_bits_d_bits_prio_0),
    .io_schedule_bits_d_bits_prio_2(abc_mshrs_2_io_schedule_bits_d_bits_prio_2),
    .io_schedule_bits_d_bits_opcode(abc_mshrs_2_io_schedule_bits_d_bits_opcode),
    .io_schedule_bits_d_bits_param(abc_mshrs_2_io_schedule_bits_d_bits_param),
    .io_schedule_bits_d_bits_size(abc_mshrs_2_io_schedule_bits_d_bits_size),
    .io_schedule_bits_d_bits_source(abc_mshrs_2_io_schedule_bits_d_bits_source),
    .io_schedule_bits_d_bits_offset(abc_mshrs_2_io_schedule_bits_d_bits_offset),
    .io_schedule_bits_d_bits_put(abc_mshrs_2_io_schedule_bits_d_bits_put),
    .io_schedule_bits_d_bits_set(abc_mshrs_2_io_schedule_bits_d_bits_set),
    .io_schedule_bits_d_bits_way(abc_mshrs_2_io_schedule_bits_d_bits_way),
    .io_schedule_bits_d_bits_bad(abc_mshrs_2_io_schedule_bits_d_bits_bad),
    .io_schedule_bits_e_valid(abc_mshrs_2_io_schedule_bits_e_valid),
    .io_schedule_bits_e_bits_sink(abc_mshrs_2_io_schedule_bits_e_bits_sink),
    .io_schedule_bits_x_valid(abc_mshrs_2_io_schedule_bits_x_valid),
    .io_schedule_bits_dir_valid(abc_mshrs_2_io_schedule_bits_dir_valid),
    .io_schedule_bits_dir_bits_set(abc_mshrs_2_io_schedule_bits_dir_bits_set),
    .io_schedule_bits_dir_bits_way(abc_mshrs_2_io_schedule_bits_dir_bits_way),
    .io_schedule_bits_dir_bits_data_dirty(abc_mshrs_2_io_schedule_bits_dir_bits_data_dirty),
    .io_schedule_bits_dir_bits_data_state(abc_mshrs_2_io_schedule_bits_dir_bits_data_state),
    .io_schedule_bits_dir_bits_data_clients(abc_mshrs_2_io_schedule_bits_dir_bits_data_clients),
    .io_schedule_bits_dir_bits_data_tag(abc_mshrs_2_io_schedule_bits_dir_bits_data_tag),
    .io_schedule_bits_reload(abc_mshrs_2_io_schedule_bits_reload),
    .io_sinkc_valid(abc_mshrs_2_io_sinkc_valid),
    .io_sinkc_bits_last(abc_mshrs_2_io_sinkc_bits_last),
    .io_sinkc_bits_tag(abc_mshrs_2_io_sinkc_bits_tag),
    .io_sinkc_bits_source(abc_mshrs_2_io_sinkc_bits_source),
    .io_sinkc_bits_param(abc_mshrs_2_io_sinkc_bits_param),
    .io_sinkc_bits_data(abc_mshrs_2_io_sinkc_bits_data),
    .io_sinkd_valid(abc_mshrs_2_io_sinkd_valid),
    .io_sinkd_bits_last(abc_mshrs_2_io_sinkd_bits_last),
    .io_sinkd_bits_opcode(abc_mshrs_2_io_sinkd_bits_opcode),
    .io_sinkd_bits_param(abc_mshrs_2_io_sinkd_bits_param),
    .io_sinkd_bits_sink(abc_mshrs_2_io_sinkd_bits_sink),
    .io_sinkd_bits_denied(abc_mshrs_2_io_sinkd_bits_denied),
    .io_sinke_valid(abc_mshrs_2_io_sinke_valid),
    .io_nestedwb_set(abc_mshrs_2_io_nestedwb_set),
    .io_nestedwb_tag(abc_mshrs_2_io_nestedwb_tag),
    .io_nestedwb_b_toN(abc_mshrs_2_io_nestedwb_b_toN),
    .io_nestedwb_b_toB(abc_mshrs_2_io_nestedwb_b_toB),
    .io_nestedwb_b_clr_dirty(abc_mshrs_2_io_nestedwb_b_clr_dirty),
    .io_nestedwb_c_set_dirty(abc_mshrs_2_io_nestedwb_c_set_dirty)
  );
  MSHR abc_mshrs_3 ( // @[Scheduler.scala 69:46]
    .clock(abc_mshrs_3_clock),
    .reset(abc_mshrs_3_reset),
    .io_allocate_valid(abc_mshrs_3_io_allocate_valid),
    .io_allocate_bits_prio_0(abc_mshrs_3_io_allocate_bits_prio_0),
    .io_allocate_bits_prio_1(abc_mshrs_3_io_allocate_bits_prio_1),
    .io_allocate_bits_prio_2(abc_mshrs_3_io_allocate_bits_prio_2),
    .io_allocate_bits_opcode(abc_mshrs_3_io_allocate_bits_opcode),
    .io_allocate_bits_param(abc_mshrs_3_io_allocate_bits_param),
    .io_allocate_bits_size(abc_mshrs_3_io_allocate_bits_size),
    .io_allocate_bits_source(abc_mshrs_3_io_allocate_bits_source),
    .io_allocate_bits_tag(abc_mshrs_3_io_allocate_bits_tag),
    .io_allocate_bits_offset(abc_mshrs_3_io_allocate_bits_offset),
    .io_allocate_bits_put(abc_mshrs_3_io_allocate_bits_put),
    .io_allocate_bits_set(abc_mshrs_3_io_allocate_bits_set),
    .io_allocate_bits_repeat(abc_mshrs_3_io_allocate_bits_repeat),
    .io_directory_valid(abc_mshrs_3_io_directory_valid),
    .io_directory_bits_dirty(abc_mshrs_3_io_directory_bits_dirty),
    .io_directory_bits_state(abc_mshrs_3_io_directory_bits_state),
    .io_directory_bits_clients(abc_mshrs_3_io_directory_bits_clients),
    .io_directory_bits_tag(abc_mshrs_3_io_directory_bits_tag),
    .io_directory_bits_hit(abc_mshrs_3_io_directory_bits_hit),
    .io_directory_bits_way(abc_mshrs_3_io_directory_bits_way),
    .io_status_valid(abc_mshrs_3_io_status_valid),
    .io_status_bits_set(abc_mshrs_3_io_status_bits_set),
    .io_status_bits_tag(abc_mshrs_3_io_status_bits_tag),
    .io_status_bits_way(abc_mshrs_3_io_status_bits_way),
    .io_status_bits_blockB(abc_mshrs_3_io_status_bits_blockB),
    .io_status_bits_nestB(abc_mshrs_3_io_status_bits_nestB),
    .io_status_bits_blockC(abc_mshrs_3_io_status_bits_blockC),
    .io_status_bits_nestC(abc_mshrs_3_io_status_bits_nestC),
    .io_schedule_ready(abc_mshrs_3_io_schedule_ready),
    .io_schedule_valid(abc_mshrs_3_io_schedule_valid),
    .io_schedule_bits_a_valid(abc_mshrs_3_io_schedule_bits_a_valid),
    .io_schedule_bits_a_bits_tag(abc_mshrs_3_io_schedule_bits_a_bits_tag),
    .io_schedule_bits_a_bits_set(abc_mshrs_3_io_schedule_bits_a_bits_set),
    .io_schedule_bits_a_bits_param(abc_mshrs_3_io_schedule_bits_a_bits_param),
    .io_schedule_bits_a_bits_block(abc_mshrs_3_io_schedule_bits_a_bits_block),
    .io_schedule_bits_b_valid(abc_mshrs_3_io_schedule_bits_b_valid),
    .io_schedule_bits_b_bits_param(abc_mshrs_3_io_schedule_bits_b_bits_param),
    .io_schedule_bits_b_bits_tag(abc_mshrs_3_io_schedule_bits_b_bits_tag),
    .io_schedule_bits_b_bits_set(abc_mshrs_3_io_schedule_bits_b_bits_set),
    .io_schedule_bits_b_bits_clients(abc_mshrs_3_io_schedule_bits_b_bits_clients),
    .io_schedule_bits_c_valid(abc_mshrs_3_io_schedule_bits_c_valid),
    .io_schedule_bits_c_bits_opcode(abc_mshrs_3_io_schedule_bits_c_bits_opcode),
    .io_schedule_bits_c_bits_param(abc_mshrs_3_io_schedule_bits_c_bits_param),
    .io_schedule_bits_c_bits_tag(abc_mshrs_3_io_schedule_bits_c_bits_tag),
    .io_schedule_bits_c_bits_set(abc_mshrs_3_io_schedule_bits_c_bits_set),
    .io_schedule_bits_c_bits_way(abc_mshrs_3_io_schedule_bits_c_bits_way),
    .io_schedule_bits_c_bits_dirty(abc_mshrs_3_io_schedule_bits_c_bits_dirty),
    .io_schedule_bits_d_valid(abc_mshrs_3_io_schedule_bits_d_valid),
    .io_schedule_bits_d_bits_prio_0(abc_mshrs_3_io_schedule_bits_d_bits_prio_0),
    .io_schedule_bits_d_bits_prio_2(abc_mshrs_3_io_schedule_bits_d_bits_prio_2),
    .io_schedule_bits_d_bits_opcode(abc_mshrs_3_io_schedule_bits_d_bits_opcode),
    .io_schedule_bits_d_bits_param(abc_mshrs_3_io_schedule_bits_d_bits_param),
    .io_schedule_bits_d_bits_size(abc_mshrs_3_io_schedule_bits_d_bits_size),
    .io_schedule_bits_d_bits_source(abc_mshrs_3_io_schedule_bits_d_bits_source),
    .io_schedule_bits_d_bits_offset(abc_mshrs_3_io_schedule_bits_d_bits_offset),
    .io_schedule_bits_d_bits_put(abc_mshrs_3_io_schedule_bits_d_bits_put),
    .io_schedule_bits_d_bits_set(abc_mshrs_3_io_schedule_bits_d_bits_set),
    .io_schedule_bits_d_bits_way(abc_mshrs_3_io_schedule_bits_d_bits_way),
    .io_schedule_bits_d_bits_bad(abc_mshrs_3_io_schedule_bits_d_bits_bad),
    .io_schedule_bits_e_valid(abc_mshrs_3_io_schedule_bits_e_valid),
    .io_schedule_bits_e_bits_sink(abc_mshrs_3_io_schedule_bits_e_bits_sink),
    .io_schedule_bits_x_valid(abc_mshrs_3_io_schedule_bits_x_valid),
    .io_schedule_bits_dir_valid(abc_mshrs_3_io_schedule_bits_dir_valid),
    .io_schedule_bits_dir_bits_set(abc_mshrs_3_io_schedule_bits_dir_bits_set),
    .io_schedule_bits_dir_bits_way(abc_mshrs_3_io_schedule_bits_dir_bits_way),
    .io_schedule_bits_dir_bits_data_dirty(abc_mshrs_3_io_schedule_bits_dir_bits_data_dirty),
    .io_schedule_bits_dir_bits_data_state(abc_mshrs_3_io_schedule_bits_dir_bits_data_state),
    .io_schedule_bits_dir_bits_data_clients(abc_mshrs_3_io_schedule_bits_dir_bits_data_clients),
    .io_schedule_bits_dir_bits_data_tag(abc_mshrs_3_io_schedule_bits_dir_bits_data_tag),
    .io_schedule_bits_reload(abc_mshrs_3_io_schedule_bits_reload),
    .io_sinkc_valid(abc_mshrs_3_io_sinkc_valid),
    .io_sinkc_bits_last(abc_mshrs_3_io_sinkc_bits_last),
    .io_sinkc_bits_tag(abc_mshrs_3_io_sinkc_bits_tag),
    .io_sinkc_bits_source(abc_mshrs_3_io_sinkc_bits_source),
    .io_sinkc_bits_param(abc_mshrs_3_io_sinkc_bits_param),
    .io_sinkc_bits_data(abc_mshrs_3_io_sinkc_bits_data),
    .io_sinkd_valid(abc_mshrs_3_io_sinkd_valid),
    .io_sinkd_bits_last(abc_mshrs_3_io_sinkd_bits_last),
    .io_sinkd_bits_opcode(abc_mshrs_3_io_sinkd_bits_opcode),
    .io_sinkd_bits_param(abc_mshrs_3_io_sinkd_bits_param),
    .io_sinkd_bits_sink(abc_mshrs_3_io_sinkd_bits_sink),
    .io_sinkd_bits_denied(abc_mshrs_3_io_sinkd_bits_denied),
    .io_sinke_valid(abc_mshrs_3_io_sinke_valid),
    .io_nestedwb_set(abc_mshrs_3_io_nestedwb_set),
    .io_nestedwb_tag(abc_mshrs_3_io_nestedwb_tag),
    .io_nestedwb_b_toN(abc_mshrs_3_io_nestedwb_b_toN),
    .io_nestedwb_b_toB(abc_mshrs_3_io_nestedwb_b_toB),
    .io_nestedwb_b_clr_dirty(abc_mshrs_3_io_nestedwb_b_clr_dirty),
    .io_nestedwb_c_set_dirty(abc_mshrs_3_io_nestedwb_c_set_dirty)
  );
  MSHR abc_mshrs_4 ( // @[Scheduler.scala 69:46]
    .clock(abc_mshrs_4_clock),
    .reset(abc_mshrs_4_reset),
    .io_allocate_valid(abc_mshrs_4_io_allocate_valid),
    .io_allocate_bits_prio_0(abc_mshrs_4_io_allocate_bits_prio_0),
    .io_allocate_bits_prio_1(abc_mshrs_4_io_allocate_bits_prio_1),
    .io_allocate_bits_prio_2(abc_mshrs_4_io_allocate_bits_prio_2),
    .io_allocate_bits_opcode(abc_mshrs_4_io_allocate_bits_opcode),
    .io_allocate_bits_param(abc_mshrs_4_io_allocate_bits_param),
    .io_allocate_bits_size(abc_mshrs_4_io_allocate_bits_size),
    .io_allocate_bits_source(abc_mshrs_4_io_allocate_bits_source),
    .io_allocate_bits_tag(abc_mshrs_4_io_allocate_bits_tag),
    .io_allocate_bits_offset(abc_mshrs_4_io_allocate_bits_offset),
    .io_allocate_bits_put(abc_mshrs_4_io_allocate_bits_put),
    .io_allocate_bits_set(abc_mshrs_4_io_allocate_bits_set),
    .io_allocate_bits_repeat(abc_mshrs_4_io_allocate_bits_repeat),
    .io_directory_valid(abc_mshrs_4_io_directory_valid),
    .io_directory_bits_dirty(abc_mshrs_4_io_directory_bits_dirty),
    .io_directory_bits_state(abc_mshrs_4_io_directory_bits_state),
    .io_directory_bits_clients(abc_mshrs_4_io_directory_bits_clients),
    .io_directory_bits_tag(abc_mshrs_4_io_directory_bits_tag),
    .io_directory_bits_hit(abc_mshrs_4_io_directory_bits_hit),
    .io_directory_bits_way(abc_mshrs_4_io_directory_bits_way),
    .io_status_valid(abc_mshrs_4_io_status_valid),
    .io_status_bits_set(abc_mshrs_4_io_status_bits_set),
    .io_status_bits_tag(abc_mshrs_4_io_status_bits_tag),
    .io_status_bits_way(abc_mshrs_4_io_status_bits_way),
    .io_status_bits_blockB(abc_mshrs_4_io_status_bits_blockB),
    .io_status_bits_nestB(abc_mshrs_4_io_status_bits_nestB),
    .io_status_bits_blockC(abc_mshrs_4_io_status_bits_blockC),
    .io_status_bits_nestC(abc_mshrs_4_io_status_bits_nestC),
    .io_schedule_ready(abc_mshrs_4_io_schedule_ready),
    .io_schedule_valid(abc_mshrs_4_io_schedule_valid),
    .io_schedule_bits_a_valid(abc_mshrs_4_io_schedule_bits_a_valid),
    .io_schedule_bits_a_bits_tag(abc_mshrs_4_io_schedule_bits_a_bits_tag),
    .io_schedule_bits_a_bits_set(abc_mshrs_4_io_schedule_bits_a_bits_set),
    .io_schedule_bits_a_bits_param(abc_mshrs_4_io_schedule_bits_a_bits_param),
    .io_schedule_bits_a_bits_block(abc_mshrs_4_io_schedule_bits_a_bits_block),
    .io_schedule_bits_b_valid(abc_mshrs_4_io_schedule_bits_b_valid),
    .io_schedule_bits_b_bits_param(abc_mshrs_4_io_schedule_bits_b_bits_param),
    .io_schedule_bits_b_bits_tag(abc_mshrs_4_io_schedule_bits_b_bits_tag),
    .io_schedule_bits_b_bits_set(abc_mshrs_4_io_schedule_bits_b_bits_set),
    .io_schedule_bits_b_bits_clients(abc_mshrs_4_io_schedule_bits_b_bits_clients),
    .io_schedule_bits_c_valid(abc_mshrs_4_io_schedule_bits_c_valid),
    .io_schedule_bits_c_bits_opcode(abc_mshrs_4_io_schedule_bits_c_bits_opcode),
    .io_schedule_bits_c_bits_param(abc_mshrs_4_io_schedule_bits_c_bits_param),
    .io_schedule_bits_c_bits_tag(abc_mshrs_4_io_schedule_bits_c_bits_tag),
    .io_schedule_bits_c_bits_set(abc_mshrs_4_io_schedule_bits_c_bits_set),
    .io_schedule_bits_c_bits_way(abc_mshrs_4_io_schedule_bits_c_bits_way),
    .io_schedule_bits_c_bits_dirty(abc_mshrs_4_io_schedule_bits_c_bits_dirty),
    .io_schedule_bits_d_valid(abc_mshrs_4_io_schedule_bits_d_valid),
    .io_schedule_bits_d_bits_prio_0(abc_mshrs_4_io_schedule_bits_d_bits_prio_0),
    .io_schedule_bits_d_bits_prio_2(abc_mshrs_4_io_schedule_bits_d_bits_prio_2),
    .io_schedule_bits_d_bits_opcode(abc_mshrs_4_io_schedule_bits_d_bits_opcode),
    .io_schedule_bits_d_bits_param(abc_mshrs_4_io_schedule_bits_d_bits_param),
    .io_schedule_bits_d_bits_size(abc_mshrs_4_io_schedule_bits_d_bits_size),
    .io_schedule_bits_d_bits_source(abc_mshrs_4_io_schedule_bits_d_bits_source),
    .io_schedule_bits_d_bits_offset(abc_mshrs_4_io_schedule_bits_d_bits_offset),
    .io_schedule_bits_d_bits_put(abc_mshrs_4_io_schedule_bits_d_bits_put),
    .io_schedule_bits_d_bits_set(abc_mshrs_4_io_schedule_bits_d_bits_set),
    .io_schedule_bits_d_bits_way(abc_mshrs_4_io_schedule_bits_d_bits_way),
    .io_schedule_bits_d_bits_bad(abc_mshrs_4_io_schedule_bits_d_bits_bad),
    .io_schedule_bits_e_valid(abc_mshrs_4_io_schedule_bits_e_valid),
    .io_schedule_bits_e_bits_sink(abc_mshrs_4_io_schedule_bits_e_bits_sink),
    .io_schedule_bits_x_valid(abc_mshrs_4_io_schedule_bits_x_valid),
    .io_schedule_bits_dir_valid(abc_mshrs_4_io_schedule_bits_dir_valid),
    .io_schedule_bits_dir_bits_set(abc_mshrs_4_io_schedule_bits_dir_bits_set),
    .io_schedule_bits_dir_bits_way(abc_mshrs_4_io_schedule_bits_dir_bits_way),
    .io_schedule_bits_dir_bits_data_dirty(abc_mshrs_4_io_schedule_bits_dir_bits_data_dirty),
    .io_schedule_bits_dir_bits_data_state(abc_mshrs_4_io_schedule_bits_dir_bits_data_state),
    .io_schedule_bits_dir_bits_data_clients(abc_mshrs_4_io_schedule_bits_dir_bits_data_clients),
    .io_schedule_bits_dir_bits_data_tag(abc_mshrs_4_io_schedule_bits_dir_bits_data_tag),
    .io_schedule_bits_reload(abc_mshrs_4_io_schedule_bits_reload),
    .io_sinkc_valid(abc_mshrs_4_io_sinkc_valid),
    .io_sinkc_bits_last(abc_mshrs_4_io_sinkc_bits_last),
    .io_sinkc_bits_tag(abc_mshrs_4_io_sinkc_bits_tag),
    .io_sinkc_bits_source(abc_mshrs_4_io_sinkc_bits_source),
    .io_sinkc_bits_param(abc_mshrs_4_io_sinkc_bits_param),
    .io_sinkc_bits_data(abc_mshrs_4_io_sinkc_bits_data),
    .io_sinkd_valid(abc_mshrs_4_io_sinkd_valid),
    .io_sinkd_bits_last(abc_mshrs_4_io_sinkd_bits_last),
    .io_sinkd_bits_opcode(abc_mshrs_4_io_sinkd_bits_opcode),
    .io_sinkd_bits_param(abc_mshrs_4_io_sinkd_bits_param),
    .io_sinkd_bits_sink(abc_mshrs_4_io_sinkd_bits_sink),
    .io_sinkd_bits_denied(abc_mshrs_4_io_sinkd_bits_denied),
    .io_sinke_valid(abc_mshrs_4_io_sinke_valid),
    .io_nestedwb_set(abc_mshrs_4_io_nestedwb_set),
    .io_nestedwb_tag(abc_mshrs_4_io_nestedwb_tag),
    .io_nestedwb_b_toN(abc_mshrs_4_io_nestedwb_b_toN),
    .io_nestedwb_b_toB(abc_mshrs_4_io_nestedwb_b_toB),
    .io_nestedwb_b_clr_dirty(abc_mshrs_4_io_nestedwb_b_clr_dirty),
    .io_nestedwb_c_set_dirty(abc_mshrs_4_io_nestedwb_c_set_dirty)
  );
  MSHR abc_mshrs_5 ( // @[Scheduler.scala 69:46]
    .clock(abc_mshrs_5_clock),
    .reset(abc_mshrs_5_reset),
    .io_allocate_valid(abc_mshrs_5_io_allocate_valid),
    .io_allocate_bits_prio_0(abc_mshrs_5_io_allocate_bits_prio_0),
    .io_allocate_bits_prio_1(abc_mshrs_5_io_allocate_bits_prio_1),
    .io_allocate_bits_prio_2(abc_mshrs_5_io_allocate_bits_prio_2),
    .io_allocate_bits_opcode(abc_mshrs_5_io_allocate_bits_opcode),
    .io_allocate_bits_param(abc_mshrs_5_io_allocate_bits_param),
    .io_allocate_bits_size(abc_mshrs_5_io_allocate_bits_size),
    .io_allocate_bits_source(abc_mshrs_5_io_allocate_bits_source),
    .io_allocate_bits_tag(abc_mshrs_5_io_allocate_bits_tag),
    .io_allocate_bits_offset(abc_mshrs_5_io_allocate_bits_offset),
    .io_allocate_bits_put(abc_mshrs_5_io_allocate_bits_put),
    .io_allocate_bits_set(abc_mshrs_5_io_allocate_bits_set),
    .io_allocate_bits_repeat(abc_mshrs_5_io_allocate_bits_repeat),
    .io_directory_valid(abc_mshrs_5_io_directory_valid),
    .io_directory_bits_dirty(abc_mshrs_5_io_directory_bits_dirty),
    .io_directory_bits_state(abc_mshrs_5_io_directory_bits_state),
    .io_directory_bits_clients(abc_mshrs_5_io_directory_bits_clients),
    .io_directory_bits_tag(abc_mshrs_5_io_directory_bits_tag),
    .io_directory_bits_hit(abc_mshrs_5_io_directory_bits_hit),
    .io_directory_bits_way(abc_mshrs_5_io_directory_bits_way),
    .io_status_valid(abc_mshrs_5_io_status_valid),
    .io_status_bits_set(abc_mshrs_5_io_status_bits_set),
    .io_status_bits_tag(abc_mshrs_5_io_status_bits_tag),
    .io_status_bits_way(abc_mshrs_5_io_status_bits_way),
    .io_status_bits_blockB(abc_mshrs_5_io_status_bits_blockB),
    .io_status_bits_nestB(abc_mshrs_5_io_status_bits_nestB),
    .io_status_bits_blockC(abc_mshrs_5_io_status_bits_blockC),
    .io_status_bits_nestC(abc_mshrs_5_io_status_bits_nestC),
    .io_schedule_ready(abc_mshrs_5_io_schedule_ready),
    .io_schedule_valid(abc_mshrs_5_io_schedule_valid),
    .io_schedule_bits_a_valid(abc_mshrs_5_io_schedule_bits_a_valid),
    .io_schedule_bits_a_bits_tag(abc_mshrs_5_io_schedule_bits_a_bits_tag),
    .io_schedule_bits_a_bits_set(abc_mshrs_5_io_schedule_bits_a_bits_set),
    .io_schedule_bits_a_bits_param(abc_mshrs_5_io_schedule_bits_a_bits_param),
    .io_schedule_bits_a_bits_block(abc_mshrs_5_io_schedule_bits_a_bits_block),
    .io_schedule_bits_b_valid(abc_mshrs_5_io_schedule_bits_b_valid),
    .io_schedule_bits_b_bits_param(abc_mshrs_5_io_schedule_bits_b_bits_param),
    .io_schedule_bits_b_bits_tag(abc_mshrs_5_io_schedule_bits_b_bits_tag),
    .io_schedule_bits_b_bits_set(abc_mshrs_5_io_schedule_bits_b_bits_set),
    .io_schedule_bits_b_bits_clients(abc_mshrs_5_io_schedule_bits_b_bits_clients),
    .io_schedule_bits_c_valid(abc_mshrs_5_io_schedule_bits_c_valid),
    .io_schedule_bits_c_bits_opcode(abc_mshrs_5_io_schedule_bits_c_bits_opcode),
    .io_schedule_bits_c_bits_param(abc_mshrs_5_io_schedule_bits_c_bits_param),
    .io_schedule_bits_c_bits_tag(abc_mshrs_5_io_schedule_bits_c_bits_tag),
    .io_schedule_bits_c_bits_set(abc_mshrs_5_io_schedule_bits_c_bits_set),
    .io_schedule_bits_c_bits_way(abc_mshrs_5_io_schedule_bits_c_bits_way),
    .io_schedule_bits_c_bits_dirty(abc_mshrs_5_io_schedule_bits_c_bits_dirty),
    .io_schedule_bits_d_valid(abc_mshrs_5_io_schedule_bits_d_valid),
    .io_schedule_bits_d_bits_prio_0(abc_mshrs_5_io_schedule_bits_d_bits_prio_0),
    .io_schedule_bits_d_bits_prio_2(abc_mshrs_5_io_schedule_bits_d_bits_prio_2),
    .io_schedule_bits_d_bits_opcode(abc_mshrs_5_io_schedule_bits_d_bits_opcode),
    .io_schedule_bits_d_bits_param(abc_mshrs_5_io_schedule_bits_d_bits_param),
    .io_schedule_bits_d_bits_size(abc_mshrs_5_io_schedule_bits_d_bits_size),
    .io_schedule_bits_d_bits_source(abc_mshrs_5_io_schedule_bits_d_bits_source),
    .io_schedule_bits_d_bits_offset(abc_mshrs_5_io_schedule_bits_d_bits_offset),
    .io_schedule_bits_d_bits_put(abc_mshrs_5_io_schedule_bits_d_bits_put),
    .io_schedule_bits_d_bits_set(abc_mshrs_5_io_schedule_bits_d_bits_set),
    .io_schedule_bits_d_bits_way(abc_mshrs_5_io_schedule_bits_d_bits_way),
    .io_schedule_bits_d_bits_bad(abc_mshrs_5_io_schedule_bits_d_bits_bad),
    .io_schedule_bits_e_valid(abc_mshrs_5_io_schedule_bits_e_valid),
    .io_schedule_bits_e_bits_sink(abc_mshrs_5_io_schedule_bits_e_bits_sink),
    .io_schedule_bits_x_valid(abc_mshrs_5_io_schedule_bits_x_valid),
    .io_schedule_bits_dir_valid(abc_mshrs_5_io_schedule_bits_dir_valid),
    .io_schedule_bits_dir_bits_set(abc_mshrs_5_io_schedule_bits_dir_bits_set),
    .io_schedule_bits_dir_bits_way(abc_mshrs_5_io_schedule_bits_dir_bits_way),
    .io_schedule_bits_dir_bits_data_dirty(abc_mshrs_5_io_schedule_bits_dir_bits_data_dirty),
    .io_schedule_bits_dir_bits_data_state(abc_mshrs_5_io_schedule_bits_dir_bits_data_state),
    .io_schedule_bits_dir_bits_data_clients(abc_mshrs_5_io_schedule_bits_dir_bits_data_clients),
    .io_schedule_bits_dir_bits_data_tag(abc_mshrs_5_io_schedule_bits_dir_bits_data_tag),
    .io_schedule_bits_reload(abc_mshrs_5_io_schedule_bits_reload),
    .io_sinkc_valid(abc_mshrs_5_io_sinkc_valid),
    .io_sinkc_bits_last(abc_mshrs_5_io_sinkc_bits_last),
    .io_sinkc_bits_tag(abc_mshrs_5_io_sinkc_bits_tag),
    .io_sinkc_bits_source(abc_mshrs_5_io_sinkc_bits_source),
    .io_sinkc_bits_param(abc_mshrs_5_io_sinkc_bits_param),
    .io_sinkc_bits_data(abc_mshrs_5_io_sinkc_bits_data),
    .io_sinkd_valid(abc_mshrs_5_io_sinkd_valid),
    .io_sinkd_bits_last(abc_mshrs_5_io_sinkd_bits_last),
    .io_sinkd_bits_opcode(abc_mshrs_5_io_sinkd_bits_opcode),
    .io_sinkd_bits_param(abc_mshrs_5_io_sinkd_bits_param),
    .io_sinkd_bits_sink(abc_mshrs_5_io_sinkd_bits_sink),
    .io_sinkd_bits_denied(abc_mshrs_5_io_sinkd_bits_denied),
    .io_sinke_valid(abc_mshrs_5_io_sinke_valid),
    .io_nestedwb_set(abc_mshrs_5_io_nestedwb_set),
    .io_nestedwb_tag(abc_mshrs_5_io_nestedwb_tag),
    .io_nestedwb_b_toN(abc_mshrs_5_io_nestedwb_b_toN),
    .io_nestedwb_b_toB(abc_mshrs_5_io_nestedwb_b_toB),
    .io_nestedwb_b_clr_dirty(abc_mshrs_5_io_nestedwb_b_clr_dirty),
    .io_nestedwb_c_set_dirty(abc_mshrs_5_io_nestedwb_c_set_dirty)
  );
  MSHR abc_mshrs_6 ( // @[Scheduler.scala 69:46]
    .clock(abc_mshrs_6_clock),
    .reset(abc_mshrs_6_reset),
    .io_allocate_valid(abc_mshrs_6_io_allocate_valid),
    .io_allocate_bits_prio_0(abc_mshrs_6_io_allocate_bits_prio_0),
    .io_allocate_bits_prio_1(abc_mshrs_6_io_allocate_bits_prio_1),
    .io_allocate_bits_prio_2(abc_mshrs_6_io_allocate_bits_prio_2),
    .io_allocate_bits_opcode(abc_mshrs_6_io_allocate_bits_opcode),
    .io_allocate_bits_param(abc_mshrs_6_io_allocate_bits_param),
    .io_allocate_bits_size(abc_mshrs_6_io_allocate_bits_size),
    .io_allocate_bits_source(abc_mshrs_6_io_allocate_bits_source),
    .io_allocate_bits_tag(abc_mshrs_6_io_allocate_bits_tag),
    .io_allocate_bits_offset(abc_mshrs_6_io_allocate_bits_offset),
    .io_allocate_bits_put(abc_mshrs_6_io_allocate_bits_put),
    .io_allocate_bits_set(abc_mshrs_6_io_allocate_bits_set),
    .io_allocate_bits_repeat(abc_mshrs_6_io_allocate_bits_repeat),
    .io_directory_valid(abc_mshrs_6_io_directory_valid),
    .io_directory_bits_dirty(abc_mshrs_6_io_directory_bits_dirty),
    .io_directory_bits_state(abc_mshrs_6_io_directory_bits_state),
    .io_directory_bits_clients(abc_mshrs_6_io_directory_bits_clients),
    .io_directory_bits_tag(abc_mshrs_6_io_directory_bits_tag),
    .io_directory_bits_hit(abc_mshrs_6_io_directory_bits_hit),
    .io_directory_bits_way(abc_mshrs_6_io_directory_bits_way),
    .io_status_valid(abc_mshrs_6_io_status_valid),
    .io_status_bits_set(abc_mshrs_6_io_status_bits_set),
    .io_status_bits_tag(abc_mshrs_6_io_status_bits_tag),
    .io_status_bits_way(abc_mshrs_6_io_status_bits_way),
    .io_status_bits_blockB(abc_mshrs_6_io_status_bits_blockB),
    .io_status_bits_nestB(abc_mshrs_6_io_status_bits_nestB),
    .io_status_bits_blockC(abc_mshrs_6_io_status_bits_blockC),
    .io_status_bits_nestC(abc_mshrs_6_io_status_bits_nestC),
    .io_schedule_ready(abc_mshrs_6_io_schedule_ready),
    .io_schedule_valid(abc_mshrs_6_io_schedule_valid),
    .io_schedule_bits_a_valid(abc_mshrs_6_io_schedule_bits_a_valid),
    .io_schedule_bits_a_bits_tag(abc_mshrs_6_io_schedule_bits_a_bits_tag),
    .io_schedule_bits_a_bits_set(abc_mshrs_6_io_schedule_bits_a_bits_set),
    .io_schedule_bits_a_bits_param(abc_mshrs_6_io_schedule_bits_a_bits_param),
    .io_schedule_bits_a_bits_block(abc_mshrs_6_io_schedule_bits_a_bits_block),
    .io_schedule_bits_b_valid(abc_mshrs_6_io_schedule_bits_b_valid),
    .io_schedule_bits_b_bits_param(abc_mshrs_6_io_schedule_bits_b_bits_param),
    .io_schedule_bits_b_bits_tag(abc_mshrs_6_io_schedule_bits_b_bits_tag),
    .io_schedule_bits_b_bits_set(abc_mshrs_6_io_schedule_bits_b_bits_set),
    .io_schedule_bits_b_bits_clients(abc_mshrs_6_io_schedule_bits_b_bits_clients),
    .io_schedule_bits_c_valid(abc_mshrs_6_io_schedule_bits_c_valid),
    .io_schedule_bits_c_bits_opcode(abc_mshrs_6_io_schedule_bits_c_bits_opcode),
    .io_schedule_bits_c_bits_param(abc_mshrs_6_io_schedule_bits_c_bits_param),
    .io_schedule_bits_c_bits_tag(abc_mshrs_6_io_schedule_bits_c_bits_tag),
    .io_schedule_bits_c_bits_set(abc_mshrs_6_io_schedule_bits_c_bits_set),
    .io_schedule_bits_c_bits_way(abc_mshrs_6_io_schedule_bits_c_bits_way),
    .io_schedule_bits_c_bits_dirty(abc_mshrs_6_io_schedule_bits_c_bits_dirty),
    .io_schedule_bits_d_valid(abc_mshrs_6_io_schedule_bits_d_valid),
    .io_schedule_bits_d_bits_prio_0(abc_mshrs_6_io_schedule_bits_d_bits_prio_0),
    .io_schedule_bits_d_bits_prio_2(abc_mshrs_6_io_schedule_bits_d_bits_prio_2),
    .io_schedule_bits_d_bits_opcode(abc_mshrs_6_io_schedule_bits_d_bits_opcode),
    .io_schedule_bits_d_bits_param(abc_mshrs_6_io_schedule_bits_d_bits_param),
    .io_schedule_bits_d_bits_size(abc_mshrs_6_io_schedule_bits_d_bits_size),
    .io_schedule_bits_d_bits_source(abc_mshrs_6_io_schedule_bits_d_bits_source),
    .io_schedule_bits_d_bits_offset(abc_mshrs_6_io_schedule_bits_d_bits_offset),
    .io_schedule_bits_d_bits_put(abc_mshrs_6_io_schedule_bits_d_bits_put),
    .io_schedule_bits_d_bits_set(abc_mshrs_6_io_schedule_bits_d_bits_set),
    .io_schedule_bits_d_bits_way(abc_mshrs_6_io_schedule_bits_d_bits_way),
    .io_schedule_bits_d_bits_bad(abc_mshrs_6_io_schedule_bits_d_bits_bad),
    .io_schedule_bits_e_valid(abc_mshrs_6_io_schedule_bits_e_valid),
    .io_schedule_bits_e_bits_sink(abc_mshrs_6_io_schedule_bits_e_bits_sink),
    .io_schedule_bits_x_valid(abc_mshrs_6_io_schedule_bits_x_valid),
    .io_schedule_bits_dir_valid(abc_mshrs_6_io_schedule_bits_dir_valid),
    .io_schedule_bits_dir_bits_set(abc_mshrs_6_io_schedule_bits_dir_bits_set),
    .io_schedule_bits_dir_bits_way(abc_mshrs_6_io_schedule_bits_dir_bits_way),
    .io_schedule_bits_dir_bits_data_dirty(abc_mshrs_6_io_schedule_bits_dir_bits_data_dirty),
    .io_schedule_bits_dir_bits_data_state(abc_mshrs_6_io_schedule_bits_dir_bits_data_state),
    .io_schedule_bits_dir_bits_data_clients(abc_mshrs_6_io_schedule_bits_dir_bits_data_clients),
    .io_schedule_bits_dir_bits_data_tag(abc_mshrs_6_io_schedule_bits_dir_bits_data_tag),
    .io_schedule_bits_reload(abc_mshrs_6_io_schedule_bits_reload),
    .io_sinkc_valid(abc_mshrs_6_io_sinkc_valid),
    .io_sinkc_bits_last(abc_mshrs_6_io_sinkc_bits_last),
    .io_sinkc_bits_tag(abc_mshrs_6_io_sinkc_bits_tag),
    .io_sinkc_bits_source(abc_mshrs_6_io_sinkc_bits_source),
    .io_sinkc_bits_param(abc_mshrs_6_io_sinkc_bits_param),
    .io_sinkc_bits_data(abc_mshrs_6_io_sinkc_bits_data),
    .io_sinkd_valid(abc_mshrs_6_io_sinkd_valid),
    .io_sinkd_bits_last(abc_mshrs_6_io_sinkd_bits_last),
    .io_sinkd_bits_opcode(abc_mshrs_6_io_sinkd_bits_opcode),
    .io_sinkd_bits_param(abc_mshrs_6_io_sinkd_bits_param),
    .io_sinkd_bits_sink(abc_mshrs_6_io_sinkd_bits_sink),
    .io_sinkd_bits_denied(abc_mshrs_6_io_sinkd_bits_denied),
    .io_sinke_valid(abc_mshrs_6_io_sinke_valid),
    .io_nestedwb_set(abc_mshrs_6_io_nestedwb_set),
    .io_nestedwb_tag(abc_mshrs_6_io_nestedwb_tag),
    .io_nestedwb_b_toN(abc_mshrs_6_io_nestedwb_b_toN),
    .io_nestedwb_b_toB(abc_mshrs_6_io_nestedwb_b_toB),
    .io_nestedwb_b_clr_dirty(abc_mshrs_6_io_nestedwb_b_clr_dirty),
    .io_nestedwb_c_set_dirty(abc_mshrs_6_io_nestedwb_c_set_dirty)
  );
  MSHR abc_mshrs_7 ( // @[Scheduler.scala 69:46]
    .clock(abc_mshrs_7_clock),
    .reset(abc_mshrs_7_reset),
    .io_allocate_valid(abc_mshrs_7_io_allocate_valid),
    .io_allocate_bits_prio_0(abc_mshrs_7_io_allocate_bits_prio_0),
    .io_allocate_bits_prio_1(abc_mshrs_7_io_allocate_bits_prio_1),
    .io_allocate_bits_prio_2(abc_mshrs_7_io_allocate_bits_prio_2),
    .io_allocate_bits_opcode(abc_mshrs_7_io_allocate_bits_opcode),
    .io_allocate_bits_param(abc_mshrs_7_io_allocate_bits_param),
    .io_allocate_bits_size(abc_mshrs_7_io_allocate_bits_size),
    .io_allocate_bits_source(abc_mshrs_7_io_allocate_bits_source),
    .io_allocate_bits_tag(abc_mshrs_7_io_allocate_bits_tag),
    .io_allocate_bits_offset(abc_mshrs_7_io_allocate_bits_offset),
    .io_allocate_bits_put(abc_mshrs_7_io_allocate_bits_put),
    .io_allocate_bits_set(abc_mshrs_7_io_allocate_bits_set),
    .io_allocate_bits_repeat(abc_mshrs_7_io_allocate_bits_repeat),
    .io_directory_valid(abc_mshrs_7_io_directory_valid),
    .io_directory_bits_dirty(abc_mshrs_7_io_directory_bits_dirty),
    .io_directory_bits_state(abc_mshrs_7_io_directory_bits_state),
    .io_directory_bits_clients(abc_mshrs_7_io_directory_bits_clients),
    .io_directory_bits_tag(abc_mshrs_7_io_directory_bits_tag),
    .io_directory_bits_hit(abc_mshrs_7_io_directory_bits_hit),
    .io_directory_bits_way(abc_mshrs_7_io_directory_bits_way),
    .io_status_valid(abc_mshrs_7_io_status_valid),
    .io_status_bits_set(abc_mshrs_7_io_status_bits_set),
    .io_status_bits_tag(abc_mshrs_7_io_status_bits_tag),
    .io_status_bits_way(abc_mshrs_7_io_status_bits_way),
    .io_status_bits_blockB(abc_mshrs_7_io_status_bits_blockB),
    .io_status_bits_nestB(abc_mshrs_7_io_status_bits_nestB),
    .io_status_bits_blockC(abc_mshrs_7_io_status_bits_blockC),
    .io_status_bits_nestC(abc_mshrs_7_io_status_bits_nestC),
    .io_schedule_ready(abc_mshrs_7_io_schedule_ready),
    .io_schedule_valid(abc_mshrs_7_io_schedule_valid),
    .io_schedule_bits_a_valid(abc_mshrs_7_io_schedule_bits_a_valid),
    .io_schedule_bits_a_bits_tag(abc_mshrs_7_io_schedule_bits_a_bits_tag),
    .io_schedule_bits_a_bits_set(abc_mshrs_7_io_schedule_bits_a_bits_set),
    .io_schedule_bits_a_bits_param(abc_mshrs_7_io_schedule_bits_a_bits_param),
    .io_schedule_bits_a_bits_block(abc_mshrs_7_io_schedule_bits_a_bits_block),
    .io_schedule_bits_b_valid(abc_mshrs_7_io_schedule_bits_b_valid),
    .io_schedule_bits_b_bits_param(abc_mshrs_7_io_schedule_bits_b_bits_param),
    .io_schedule_bits_b_bits_tag(abc_mshrs_7_io_schedule_bits_b_bits_tag),
    .io_schedule_bits_b_bits_set(abc_mshrs_7_io_schedule_bits_b_bits_set),
    .io_schedule_bits_b_bits_clients(abc_mshrs_7_io_schedule_bits_b_bits_clients),
    .io_schedule_bits_c_valid(abc_mshrs_7_io_schedule_bits_c_valid),
    .io_schedule_bits_c_bits_opcode(abc_mshrs_7_io_schedule_bits_c_bits_opcode),
    .io_schedule_bits_c_bits_param(abc_mshrs_7_io_schedule_bits_c_bits_param),
    .io_schedule_bits_c_bits_tag(abc_mshrs_7_io_schedule_bits_c_bits_tag),
    .io_schedule_bits_c_bits_set(abc_mshrs_7_io_schedule_bits_c_bits_set),
    .io_schedule_bits_c_bits_way(abc_mshrs_7_io_schedule_bits_c_bits_way),
    .io_schedule_bits_c_bits_dirty(abc_mshrs_7_io_schedule_bits_c_bits_dirty),
    .io_schedule_bits_d_valid(abc_mshrs_7_io_schedule_bits_d_valid),
    .io_schedule_bits_d_bits_prio_0(abc_mshrs_7_io_schedule_bits_d_bits_prio_0),
    .io_schedule_bits_d_bits_prio_2(abc_mshrs_7_io_schedule_bits_d_bits_prio_2),
    .io_schedule_bits_d_bits_opcode(abc_mshrs_7_io_schedule_bits_d_bits_opcode),
    .io_schedule_bits_d_bits_param(abc_mshrs_7_io_schedule_bits_d_bits_param),
    .io_schedule_bits_d_bits_size(abc_mshrs_7_io_schedule_bits_d_bits_size),
    .io_schedule_bits_d_bits_source(abc_mshrs_7_io_schedule_bits_d_bits_source),
    .io_schedule_bits_d_bits_offset(abc_mshrs_7_io_schedule_bits_d_bits_offset),
    .io_schedule_bits_d_bits_put(abc_mshrs_7_io_schedule_bits_d_bits_put),
    .io_schedule_bits_d_bits_set(abc_mshrs_7_io_schedule_bits_d_bits_set),
    .io_schedule_bits_d_bits_way(abc_mshrs_7_io_schedule_bits_d_bits_way),
    .io_schedule_bits_d_bits_bad(abc_mshrs_7_io_schedule_bits_d_bits_bad),
    .io_schedule_bits_e_valid(abc_mshrs_7_io_schedule_bits_e_valid),
    .io_schedule_bits_e_bits_sink(abc_mshrs_7_io_schedule_bits_e_bits_sink),
    .io_schedule_bits_x_valid(abc_mshrs_7_io_schedule_bits_x_valid),
    .io_schedule_bits_dir_valid(abc_mshrs_7_io_schedule_bits_dir_valid),
    .io_schedule_bits_dir_bits_set(abc_mshrs_7_io_schedule_bits_dir_bits_set),
    .io_schedule_bits_dir_bits_way(abc_mshrs_7_io_schedule_bits_dir_bits_way),
    .io_schedule_bits_dir_bits_data_dirty(abc_mshrs_7_io_schedule_bits_dir_bits_data_dirty),
    .io_schedule_bits_dir_bits_data_state(abc_mshrs_7_io_schedule_bits_dir_bits_data_state),
    .io_schedule_bits_dir_bits_data_clients(abc_mshrs_7_io_schedule_bits_dir_bits_data_clients),
    .io_schedule_bits_dir_bits_data_tag(abc_mshrs_7_io_schedule_bits_dir_bits_data_tag),
    .io_schedule_bits_reload(abc_mshrs_7_io_schedule_bits_reload),
    .io_sinkc_valid(abc_mshrs_7_io_sinkc_valid),
    .io_sinkc_bits_last(abc_mshrs_7_io_sinkc_bits_last),
    .io_sinkc_bits_tag(abc_mshrs_7_io_sinkc_bits_tag),
    .io_sinkc_bits_source(abc_mshrs_7_io_sinkc_bits_source),
    .io_sinkc_bits_param(abc_mshrs_7_io_sinkc_bits_param),
    .io_sinkc_bits_data(abc_mshrs_7_io_sinkc_bits_data),
    .io_sinkd_valid(abc_mshrs_7_io_sinkd_valid),
    .io_sinkd_bits_last(abc_mshrs_7_io_sinkd_bits_last),
    .io_sinkd_bits_opcode(abc_mshrs_7_io_sinkd_bits_opcode),
    .io_sinkd_bits_param(abc_mshrs_7_io_sinkd_bits_param),
    .io_sinkd_bits_sink(abc_mshrs_7_io_sinkd_bits_sink),
    .io_sinkd_bits_denied(abc_mshrs_7_io_sinkd_bits_denied),
    .io_sinke_valid(abc_mshrs_7_io_sinke_valid),
    .io_nestedwb_set(abc_mshrs_7_io_nestedwb_set),
    .io_nestedwb_tag(abc_mshrs_7_io_nestedwb_tag),
    .io_nestedwb_b_toN(abc_mshrs_7_io_nestedwb_b_toN),
    .io_nestedwb_b_toB(abc_mshrs_7_io_nestedwb_b_toB),
    .io_nestedwb_b_clr_dirty(abc_mshrs_7_io_nestedwb_b_clr_dirty),
    .io_nestedwb_c_set_dirty(abc_mshrs_7_io_nestedwb_c_set_dirty)
  );
  MSHR abc_mshrs_8 ( // @[Scheduler.scala 69:46]
    .clock(abc_mshrs_8_clock),
    .reset(abc_mshrs_8_reset),
    .io_allocate_valid(abc_mshrs_8_io_allocate_valid),
    .io_allocate_bits_prio_0(abc_mshrs_8_io_allocate_bits_prio_0),
    .io_allocate_bits_prio_1(abc_mshrs_8_io_allocate_bits_prio_1),
    .io_allocate_bits_prio_2(abc_mshrs_8_io_allocate_bits_prio_2),
    .io_allocate_bits_opcode(abc_mshrs_8_io_allocate_bits_opcode),
    .io_allocate_bits_param(abc_mshrs_8_io_allocate_bits_param),
    .io_allocate_bits_size(abc_mshrs_8_io_allocate_bits_size),
    .io_allocate_bits_source(abc_mshrs_8_io_allocate_bits_source),
    .io_allocate_bits_tag(abc_mshrs_8_io_allocate_bits_tag),
    .io_allocate_bits_offset(abc_mshrs_8_io_allocate_bits_offset),
    .io_allocate_bits_put(abc_mshrs_8_io_allocate_bits_put),
    .io_allocate_bits_set(abc_mshrs_8_io_allocate_bits_set),
    .io_allocate_bits_repeat(abc_mshrs_8_io_allocate_bits_repeat),
    .io_directory_valid(abc_mshrs_8_io_directory_valid),
    .io_directory_bits_dirty(abc_mshrs_8_io_directory_bits_dirty),
    .io_directory_bits_state(abc_mshrs_8_io_directory_bits_state),
    .io_directory_bits_clients(abc_mshrs_8_io_directory_bits_clients),
    .io_directory_bits_tag(abc_mshrs_8_io_directory_bits_tag),
    .io_directory_bits_hit(abc_mshrs_8_io_directory_bits_hit),
    .io_directory_bits_way(abc_mshrs_8_io_directory_bits_way),
    .io_status_valid(abc_mshrs_8_io_status_valid),
    .io_status_bits_set(abc_mshrs_8_io_status_bits_set),
    .io_status_bits_tag(abc_mshrs_8_io_status_bits_tag),
    .io_status_bits_way(abc_mshrs_8_io_status_bits_way),
    .io_status_bits_blockB(abc_mshrs_8_io_status_bits_blockB),
    .io_status_bits_nestB(abc_mshrs_8_io_status_bits_nestB),
    .io_status_bits_blockC(abc_mshrs_8_io_status_bits_blockC),
    .io_status_bits_nestC(abc_mshrs_8_io_status_bits_nestC),
    .io_schedule_ready(abc_mshrs_8_io_schedule_ready),
    .io_schedule_valid(abc_mshrs_8_io_schedule_valid),
    .io_schedule_bits_a_valid(abc_mshrs_8_io_schedule_bits_a_valid),
    .io_schedule_bits_a_bits_tag(abc_mshrs_8_io_schedule_bits_a_bits_tag),
    .io_schedule_bits_a_bits_set(abc_mshrs_8_io_schedule_bits_a_bits_set),
    .io_schedule_bits_a_bits_param(abc_mshrs_8_io_schedule_bits_a_bits_param),
    .io_schedule_bits_a_bits_block(abc_mshrs_8_io_schedule_bits_a_bits_block),
    .io_schedule_bits_b_valid(abc_mshrs_8_io_schedule_bits_b_valid),
    .io_schedule_bits_b_bits_param(abc_mshrs_8_io_schedule_bits_b_bits_param),
    .io_schedule_bits_b_bits_tag(abc_mshrs_8_io_schedule_bits_b_bits_tag),
    .io_schedule_bits_b_bits_set(abc_mshrs_8_io_schedule_bits_b_bits_set),
    .io_schedule_bits_b_bits_clients(abc_mshrs_8_io_schedule_bits_b_bits_clients),
    .io_schedule_bits_c_valid(abc_mshrs_8_io_schedule_bits_c_valid),
    .io_schedule_bits_c_bits_opcode(abc_mshrs_8_io_schedule_bits_c_bits_opcode),
    .io_schedule_bits_c_bits_param(abc_mshrs_8_io_schedule_bits_c_bits_param),
    .io_schedule_bits_c_bits_tag(abc_mshrs_8_io_schedule_bits_c_bits_tag),
    .io_schedule_bits_c_bits_set(abc_mshrs_8_io_schedule_bits_c_bits_set),
    .io_schedule_bits_c_bits_way(abc_mshrs_8_io_schedule_bits_c_bits_way),
    .io_schedule_bits_c_bits_dirty(abc_mshrs_8_io_schedule_bits_c_bits_dirty),
    .io_schedule_bits_d_valid(abc_mshrs_8_io_schedule_bits_d_valid),
    .io_schedule_bits_d_bits_prio_0(abc_mshrs_8_io_schedule_bits_d_bits_prio_0),
    .io_schedule_bits_d_bits_prio_2(abc_mshrs_8_io_schedule_bits_d_bits_prio_2),
    .io_schedule_bits_d_bits_opcode(abc_mshrs_8_io_schedule_bits_d_bits_opcode),
    .io_schedule_bits_d_bits_param(abc_mshrs_8_io_schedule_bits_d_bits_param),
    .io_schedule_bits_d_bits_size(abc_mshrs_8_io_schedule_bits_d_bits_size),
    .io_schedule_bits_d_bits_source(abc_mshrs_8_io_schedule_bits_d_bits_source),
    .io_schedule_bits_d_bits_offset(abc_mshrs_8_io_schedule_bits_d_bits_offset),
    .io_schedule_bits_d_bits_put(abc_mshrs_8_io_schedule_bits_d_bits_put),
    .io_schedule_bits_d_bits_set(abc_mshrs_8_io_schedule_bits_d_bits_set),
    .io_schedule_bits_d_bits_way(abc_mshrs_8_io_schedule_bits_d_bits_way),
    .io_schedule_bits_d_bits_bad(abc_mshrs_8_io_schedule_bits_d_bits_bad),
    .io_schedule_bits_e_valid(abc_mshrs_8_io_schedule_bits_e_valid),
    .io_schedule_bits_e_bits_sink(abc_mshrs_8_io_schedule_bits_e_bits_sink),
    .io_schedule_bits_x_valid(abc_mshrs_8_io_schedule_bits_x_valid),
    .io_schedule_bits_dir_valid(abc_mshrs_8_io_schedule_bits_dir_valid),
    .io_schedule_bits_dir_bits_set(abc_mshrs_8_io_schedule_bits_dir_bits_set),
    .io_schedule_bits_dir_bits_way(abc_mshrs_8_io_schedule_bits_dir_bits_way),
    .io_schedule_bits_dir_bits_data_dirty(abc_mshrs_8_io_schedule_bits_dir_bits_data_dirty),
    .io_schedule_bits_dir_bits_data_state(abc_mshrs_8_io_schedule_bits_dir_bits_data_state),
    .io_schedule_bits_dir_bits_data_clients(abc_mshrs_8_io_schedule_bits_dir_bits_data_clients),
    .io_schedule_bits_dir_bits_data_tag(abc_mshrs_8_io_schedule_bits_dir_bits_data_tag),
    .io_schedule_bits_reload(abc_mshrs_8_io_schedule_bits_reload),
    .io_sinkc_valid(abc_mshrs_8_io_sinkc_valid),
    .io_sinkc_bits_last(abc_mshrs_8_io_sinkc_bits_last),
    .io_sinkc_bits_tag(abc_mshrs_8_io_sinkc_bits_tag),
    .io_sinkc_bits_source(abc_mshrs_8_io_sinkc_bits_source),
    .io_sinkc_bits_param(abc_mshrs_8_io_sinkc_bits_param),
    .io_sinkc_bits_data(abc_mshrs_8_io_sinkc_bits_data),
    .io_sinkd_valid(abc_mshrs_8_io_sinkd_valid),
    .io_sinkd_bits_last(abc_mshrs_8_io_sinkd_bits_last),
    .io_sinkd_bits_opcode(abc_mshrs_8_io_sinkd_bits_opcode),
    .io_sinkd_bits_param(abc_mshrs_8_io_sinkd_bits_param),
    .io_sinkd_bits_sink(abc_mshrs_8_io_sinkd_bits_sink),
    .io_sinkd_bits_denied(abc_mshrs_8_io_sinkd_bits_denied),
    .io_sinke_valid(abc_mshrs_8_io_sinke_valid),
    .io_nestedwb_set(abc_mshrs_8_io_nestedwb_set),
    .io_nestedwb_tag(abc_mshrs_8_io_nestedwb_tag),
    .io_nestedwb_b_toN(abc_mshrs_8_io_nestedwb_b_toN),
    .io_nestedwb_b_toB(abc_mshrs_8_io_nestedwb_b_toB),
    .io_nestedwb_b_clr_dirty(abc_mshrs_8_io_nestedwb_b_clr_dirty),
    .io_nestedwb_c_set_dirty(abc_mshrs_8_io_nestedwb_c_set_dirty)
  );
  MSHR abc_mshrs_9 ( // @[Scheduler.scala 69:46]
    .clock(abc_mshrs_9_clock),
    .reset(abc_mshrs_9_reset),
    .io_allocate_valid(abc_mshrs_9_io_allocate_valid),
    .io_allocate_bits_prio_0(abc_mshrs_9_io_allocate_bits_prio_0),
    .io_allocate_bits_prio_1(abc_mshrs_9_io_allocate_bits_prio_1),
    .io_allocate_bits_prio_2(abc_mshrs_9_io_allocate_bits_prio_2),
    .io_allocate_bits_opcode(abc_mshrs_9_io_allocate_bits_opcode),
    .io_allocate_bits_param(abc_mshrs_9_io_allocate_bits_param),
    .io_allocate_bits_size(abc_mshrs_9_io_allocate_bits_size),
    .io_allocate_bits_source(abc_mshrs_9_io_allocate_bits_source),
    .io_allocate_bits_tag(abc_mshrs_9_io_allocate_bits_tag),
    .io_allocate_bits_offset(abc_mshrs_9_io_allocate_bits_offset),
    .io_allocate_bits_put(abc_mshrs_9_io_allocate_bits_put),
    .io_allocate_bits_set(abc_mshrs_9_io_allocate_bits_set),
    .io_allocate_bits_repeat(abc_mshrs_9_io_allocate_bits_repeat),
    .io_directory_valid(abc_mshrs_9_io_directory_valid),
    .io_directory_bits_dirty(abc_mshrs_9_io_directory_bits_dirty),
    .io_directory_bits_state(abc_mshrs_9_io_directory_bits_state),
    .io_directory_bits_clients(abc_mshrs_9_io_directory_bits_clients),
    .io_directory_bits_tag(abc_mshrs_9_io_directory_bits_tag),
    .io_directory_bits_hit(abc_mshrs_9_io_directory_bits_hit),
    .io_directory_bits_way(abc_mshrs_9_io_directory_bits_way),
    .io_status_valid(abc_mshrs_9_io_status_valid),
    .io_status_bits_set(abc_mshrs_9_io_status_bits_set),
    .io_status_bits_tag(abc_mshrs_9_io_status_bits_tag),
    .io_status_bits_way(abc_mshrs_9_io_status_bits_way),
    .io_status_bits_blockB(abc_mshrs_9_io_status_bits_blockB),
    .io_status_bits_nestB(abc_mshrs_9_io_status_bits_nestB),
    .io_status_bits_blockC(abc_mshrs_9_io_status_bits_blockC),
    .io_status_bits_nestC(abc_mshrs_9_io_status_bits_nestC),
    .io_schedule_ready(abc_mshrs_9_io_schedule_ready),
    .io_schedule_valid(abc_mshrs_9_io_schedule_valid),
    .io_schedule_bits_a_valid(abc_mshrs_9_io_schedule_bits_a_valid),
    .io_schedule_bits_a_bits_tag(abc_mshrs_9_io_schedule_bits_a_bits_tag),
    .io_schedule_bits_a_bits_set(abc_mshrs_9_io_schedule_bits_a_bits_set),
    .io_schedule_bits_a_bits_param(abc_mshrs_9_io_schedule_bits_a_bits_param),
    .io_schedule_bits_a_bits_block(abc_mshrs_9_io_schedule_bits_a_bits_block),
    .io_schedule_bits_b_valid(abc_mshrs_9_io_schedule_bits_b_valid),
    .io_schedule_bits_b_bits_param(abc_mshrs_9_io_schedule_bits_b_bits_param),
    .io_schedule_bits_b_bits_tag(abc_mshrs_9_io_schedule_bits_b_bits_tag),
    .io_schedule_bits_b_bits_set(abc_mshrs_9_io_schedule_bits_b_bits_set),
    .io_schedule_bits_b_bits_clients(abc_mshrs_9_io_schedule_bits_b_bits_clients),
    .io_schedule_bits_c_valid(abc_mshrs_9_io_schedule_bits_c_valid),
    .io_schedule_bits_c_bits_opcode(abc_mshrs_9_io_schedule_bits_c_bits_opcode),
    .io_schedule_bits_c_bits_param(abc_mshrs_9_io_schedule_bits_c_bits_param),
    .io_schedule_bits_c_bits_tag(abc_mshrs_9_io_schedule_bits_c_bits_tag),
    .io_schedule_bits_c_bits_set(abc_mshrs_9_io_schedule_bits_c_bits_set),
    .io_schedule_bits_c_bits_way(abc_mshrs_9_io_schedule_bits_c_bits_way),
    .io_schedule_bits_c_bits_dirty(abc_mshrs_9_io_schedule_bits_c_bits_dirty),
    .io_schedule_bits_d_valid(abc_mshrs_9_io_schedule_bits_d_valid),
    .io_schedule_bits_d_bits_prio_0(abc_mshrs_9_io_schedule_bits_d_bits_prio_0),
    .io_schedule_bits_d_bits_prio_2(abc_mshrs_9_io_schedule_bits_d_bits_prio_2),
    .io_schedule_bits_d_bits_opcode(abc_mshrs_9_io_schedule_bits_d_bits_opcode),
    .io_schedule_bits_d_bits_param(abc_mshrs_9_io_schedule_bits_d_bits_param),
    .io_schedule_bits_d_bits_size(abc_mshrs_9_io_schedule_bits_d_bits_size),
    .io_schedule_bits_d_bits_source(abc_mshrs_9_io_schedule_bits_d_bits_source),
    .io_schedule_bits_d_bits_offset(abc_mshrs_9_io_schedule_bits_d_bits_offset),
    .io_schedule_bits_d_bits_put(abc_mshrs_9_io_schedule_bits_d_bits_put),
    .io_schedule_bits_d_bits_set(abc_mshrs_9_io_schedule_bits_d_bits_set),
    .io_schedule_bits_d_bits_way(abc_mshrs_9_io_schedule_bits_d_bits_way),
    .io_schedule_bits_d_bits_bad(abc_mshrs_9_io_schedule_bits_d_bits_bad),
    .io_schedule_bits_e_valid(abc_mshrs_9_io_schedule_bits_e_valid),
    .io_schedule_bits_e_bits_sink(abc_mshrs_9_io_schedule_bits_e_bits_sink),
    .io_schedule_bits_x_valid(abc_mshrs_9_io_schedule_bits_x_valid),
    .io_schedule_bits_dir_valid(abc_mshrs_9_io_schedule_bits_dir_valid),
    .io_schedule_bits_dir_bits_set(abc_mshrs_9_io_schedule_bits_dir_bits_set),
    .io_schedule_bits_dir_bits_way(abc_mshrs_9_io_schedule_bits_dir_bits_way),
    .io_schedule_bits_dir_bits_data_dirty(abc_mshrs_9_io_schedule_bits_dir_bits_data_dirty),
    .io_schedule_bits_dir_bits_data_state(abc_mshrs_9_io_schedule_bits_dir_bits_data_state),
    .io_schedule_bits_dir_bits_data_clients(abc_mshrs_9_io_schedule_bits_dir_bits_data_clients),
    .io_schedule_bits_dir_bits_data_tag(abc_mshrs_9_io_schedule_bits_dir_bits_data_tag),
    .io_schedule_bits_reload(abc_mshrs_9_io_schedule_bits_reload),
    .io_sinkc_valid(abc_mshrs_9_io_sinkc_valid),
    .io_sinkc_bits_last(abc_mshrs_9_io_sinkc_bits_last),
    .io_sinkc_bits_tag(abc_mshrs_9_io_sinkc_bits_tag),
    .io_sinkc_bits_source(abc_mshrs_9_io_sinkc_bits_source),
    .io_sinkc_bits_param(abc_mshrs_9_io_sinkc_bits_param),
    .io_sinkc_bits_data(abc_mshrs_9_io_sinkc_bits_data),
    .io_sinkd_valid(abc_mshrs_9_io_sinkd_valid),
    .io_sinkd_bits_last(abc_mshrs_9_io_sinkd_bits_last),
    .io_sinkd_bits_opcode(abc_mshrs_9_io_sinkd_bits_opcode),
    .io_sinkd_bits_param(abc_mshrs_9_io_sinkd_bits_param),
    .io_sinkd_bits_sink(abc_mshrs_9_io_sinkd_bits_sink),
    .io_sinkd_bits_denied(abc_mshrs_9_io_sinkd_bits_denied),
    .io_sinke_valid(abc_mshrs_9_io_sinke_valid),
    .io_nestedwb_set(abc_mshrs_9_io_nestedwb_set),
    .io_nestedwb_tag(abc_mshrs_9_io_nestedwb_tag),
    .io_nestedwb_b_toN(abc_mshrs_9_io_nestedwb_b_toN),
    .io_nestedwb_b_toB(abc_mshrs_9_io_nestedwb_b_toB),
    .io_nestedwb_b_clr_dirty(abc_mshrs_9_io_nestedwb_b_clr_dirty),
    .io_nestedwb_c_set_dirty(abc_mshrs_9_io_nestedwb_c_set_dirty)
  );
  MSHR abc_mshrs_10 ( // @[Scheduler.scala 69:46]
    .clock(abc_mshrs_10_clock),
    .reset(abc_mshrs_10_reset),
    .io_allocate_valid(abc_mshrs_10_io_allocate_valid),
    .io_allocate_bits_prio_0(abc_mshrs_10_io_allocate_bits_prio_0),
    .io_allocate_bits_prio_1(abc_mshrs_10_io_allocate_bits_prio_1),
    .io_allocate_bits_prio_2(abc_mshrs_10_io_allocate_bits_prio_2),
    .io_allocate_bits_opcode(abc_mshrs_10_io_allocate_bits_opcode),
    .io_allocate_bits_param(abc_mshrs_10_io_allocate_bits_param),
    .io_allocate_bits_size(abc_mshrs_10_io_allocate_bits_size),
    .io_allocate_bits_source(abc_mshrs_10_io_allocate_bits_source),
    .io_allocate_bits_tag(abc_mshrs_10_io_allocate_bits_tag),
    .io_allocate_bits_offset(abc_mshrs_10_io_allocate_bits_offset),
    .io_allocate_bits_put(abc_mshrs_10_io_allocate_bits_put),
    .io_allocate_bits_set(abc_mshrs_10_io_allocate_bits_set),
    .io_allocate_bits_repeat(abc_mshrs_10_io_allocate_bits_repeat),
    .io_directory_valid(abc_mshrs_10_io_directory_valid),
    .io_directory_bits_dirty(abc_mshrs_10_io_directory_bits_dirty),
    .io_directory_bits_state(abc_mshrs_10_io_directory_bits_state),
    .io_directory_bits_clients(abc_mshrs_10_io_directory_bits_clients),
    .io_directory_bits_tag(abc_mshrs_10_io_directory_bits_tag),
    .io_directory_bits_hit(abc_mshrs_10_io_directory_bits_hit),
    .io_directory_bits_way(abc_mshrs_10_io_directory_bits_way),
    .io_status_valid(abc_mshrs_10_io_status_valid),
    .io_status_bits_set(abc_mshrs_10_io_status_bits_set),
    .io_status_bits_tag(abc_mshrs_10_io_status_bits_tag),
    .io_status_bits_way(abc_mshrs_10_io_status_bits_way),
    .io_status_bits_blockB(abc_mshrs_10_io_status_bits_blockB),
    .io_status_bits_nestB(abc_mshrs_10_io_status_bits_nestB),
    .io_status_bits_blockC(abc_mshrs_10_io_status_bits_blockC),
    .io_status_bits_nestC(abc_mshrs_10_io_status_bits_nestC),
    .io_schedule_ready(abc_mshrs_10_io_schedule_ready),
    .io_schedule_valid(abc_mshrs_10_io_schedule_valid),
    .io_schedule_bits_a_valid(abc_mshrs_10_io_schedule_bits_a_valid),
    .io_schedule_bits_a_bits_tag(abc_mshrs_10_io_schedule_bits_a_bits_tag),
    .io_schedule_bits_a_bits_set(abc_mshrs_10_io_schedule_bits_a_bits_set),
    .io_schedule_bits_a_bits_param(abc_mshrs_10_io_schedule_bits_a_bits_param),
    .io_schedule_bits_a_bits_block(abc_mshrs_10_io_schedule_bits_a_bits_block),
    .io_schedule_bits_b_valid(abc_mshrs_10_io_schedule_bits_b_valid),
    .io_schedule_bits_b_bits_param(abc_mshrs_10_io_schedule_bits_b_bits_param),
    .io_schedule_bits_b_bits_tag(abc_mshrs_10_io_schedule_bits_b_bits_tag),
    .io_schedule_bits_b_bits_set(abc_mshrs_10_io_schedule_bits_b_bits_set),
    .io_schedule_bits_b_bits_clients(abc_mshrs_10_io_schedule_bits_b_bits_clients),
    .io_schedule_bits_c_valid(abc_mshrs_10_io_schedule_bits_c_valid),
    .io_schedule_bits_c_bits_opcode(abc_mshrs_10_io_schedule_bits_c_bits_opcode),
    .io_schedule_bits_c_bits_param(abc_mshrs_10_io_schedule_bits_c_bits_param),
    .io_schedule_bits_c_bits_tag(abc_mshrs_10_io_schedule_bits_c_bits_tag),
    .io_schedule_bits_c_bits_set(abc_mshrs_10_io_schedule_bits_c_bits_set),
    .io_schedule_bits_c_bits_way(abc_mshrs_10_io_schedule_bits_c_bits_way),
    .io_schedule_bits_c_bits_dirty(abc_mshrs_10_io_schedule_bits_c_bits_dirty),
    .io_schedule_bits_d_valid(abc_mshrs_10_io_schedule_bits_d_valid),
    .io_schedule_bits_d_bits_prio_0(abc_mshrs_10_io_schedule_bits_d_bits_prio_0),
    .io_schedule_bits_d_bits_prio_2(abc_mshrs_10_io_schedule_bits_d_bits_prio_2),
    .io_schedule_bits_d_bits_opcode(abc_mshrs_10_io_schedule_bits_d_bits_opcode),
    .io_schedule_bits_d_bits_param(abc_mshrs_10_io_schedule_bits_d_bits_param),
    .io_schedule_bits_d_bits_size(abc_mshrs_10_io_schedule_bits_d_bits_size),
    .io_schedule_bits_d_bits_source(abc_mshrs_10_io_schedule_bits_d_bits_source),
    .io_schedule_bits_d_bits_offset(abc_mshrs_10_io_schedule_bits_d_bits_offset),
    .io_schedule_bits_d_bits_put(abc_mshrs_10_io_schedule_bits_d_bits_put),
    .io_schedule_bits_d_bits_set(abc_mshrs_10_io_schedule_bits_d_bits_set),
    .io_schedule_bits_d_bits_way(abc_mshrs_10_io_schedule_bits_d_bits_way),
    .io_schedule_bits_d_bits_bad(abc_mshrs_10_io_schedule_bits_d_bits_bad),
    .io_schedule_bits_e_valid(abc_mshrs_10_io_schedule_bits_e_valid),
    .io_schedule_bits_e_bits_sink(abc_mshrs_10_io_schedule_bits_e_bits_sink),
    .io_schedule_bits_x_valid(abc_mshrs_10_io_schedule_bits_x_valid),
    .io_schedule_bits_dir_valid(abc_mshrs_10_io_schedule_bits_dir_valid),
    .io_schedule_bits_dir_bits_set(abc_mshrs_10_io_schedule_bits_dir_bits_set),
    .io_schedule_bits_dir_bits_way(abc_mshrs_10_io_schedule_bits_dir_bits_way),
    .io_schedule_bits_dir_bits_data_dirty(abc_mshrs_10_io_schedule_bits_dir_bits_data_dirty),
    .io_schedule_bits_dir_bits_data_state(abc_mshrs_10_io_schedule_bits_dir_bits_data_state),
    .io_schedule_bits_dir_bits_data_clients(abc_mshrs_10_io_schedule_bits_dir_bits_data_clients),
    .io_schedule_bits_dir_bits_data_tag(abc_mshrs_10_io_schedule_bits_dir_bits_data_tag),
    .io_schedule_bits_reload(abc_mshrs_10_io_schedule_bits_reload),
    .io_sinkc_valid(abc_mshrs_10_io_sinkc_valid),
    .io_sinkc_bits_last(abc_mshrs_10_io_sinkc_bits_last),
    .io_sinkc_bits_tag(abc_mshrs_10_io_sinkc_bits_tag),
    .io_sinkc_bits_source(abc_mshrs_10_io_sinkc_bits_source),
    .io_sinkc_bits_param(abc_mshrs_10_io_sinkc_bits_param),
    .io_sinkc_bits_data(abc_mshrs_10_io_sinkc_bits_data),
    .io_sinkd_valid(abc_mshrs_10_io_sinkd_valid),
    .io_sinkd_bits_last(abc_mshrs_10_io_sinkd_bits_last),
    .io_sinkd_bits_opcode(abc_mshrs_10_io_sinkd_bits_opcode),
    .io_sinkd_bits_param(abc_mshrs_10_io_sinkd_bits_param),
    .io_sinkd_bits_sink(abc_mshrs_10_io_sinkd_bits_sink),
    .io_sinkd_bits_denied(abc_mshrs_10_io_sinkd_bits_denied),
    .io_sinke_valid(abc_mshrs_10_io_sinke_valid),
    .io_nestedwb_set(abc_mshrs_10_io_nestedwb_set),
    .io_nestedwb_tag(abc_mshrs_10_io_nestedwb_tag),
    .io_nestedwb_b_toN(abc_mshrs_10_io_nestedwb_b_toN),
    .io_nestedwb_b_toB(abc_mshrs_10_io_nestedwb_b_toB),
    .io_nestedwb_b_clr_dirty(abc_mshrs_10_io_nestedwb_b_clr_dirty),
    .io_nestedwb_c_set_dirty(abc_mshrs_10_io_nestedwb_c_set_dirty)
  );
  MSHR abc_mshrs_11 ( // @[Scheduler.scala 69:46]
    .clock(abc_mshrs_11_clock),
    .reset(abc_mshrs_11_reset),
    .io_allocate_valid(abc_mshrs_11_io_allocate_valid),
    .io_allocate_bits_prio_0(abc_mshrs_11_io_allocate_bits_prio_0),
    .io_allocate_bits_prio_1(abc_mshrs_11_io_allocate_bits_prio_1),
    .io_allocate_bits_prio_2(abc_mshrs_11_io_allocate_bits_prio_2),
    .io_allocate_bits_opcode(abc_mshrs_11_io_allocate_bits_opcode),
    .io_allocate_bits_param(abc_mshrs_11_io_allocate_bits_param),
    .io_allocate_bits_size(abc_mshrs_11_io_allocate_bits_size),
    .io_allocate_bits_source(abc_mshrs_11_io_allocate_bits_source),
    .io_allocate_bits_tag(abc_mshrs_11_io_allocate_bits_tag),
    .io_allocate_bits_offset(abc_mshrs_11_io_allocate_bits_offset),
    .io_allocate_bits_put(abc_mshrs_11_io_allocate_bits_put),
    .io_allocate_bits_set(abc_mshrs_11_io_allocate_bits_set),
    .io_allocate_bits_repeat(abc_mshrs_11_io_allocate_bits_repeat),
    .io_directory_valid(abc_mshrs_11_io_directory_valid),
    .io_directory_bits_dirty(abc_mshrs_11_io_directory_bits_dirty),
    .io_directory_bits_state(abc_mshrs_11_io_directory_bits_state),
    .io_directory_bits_clients(abc_mshrs_11_io_directory_bits_clients),
    .io_directory_bits_tag(abc_mshrs_11_io_directory_bits_tag),
    .io_directory_bits_hit(abc_mshrs_11_io_directory_bits_hit),
    .io_directory_bits_way(abc_mshrs_11_io_directory_bits_way),
    .io_status_valid(abc_mshrs_11_io_status_valid),
    .io_status_bits_set(abc_mshrs_11_io_status_bits_set),
    .io_status_bits_tag(abc_mshrs_11_io_status_bits_tag),
    .io_status_bits_way(abc_mshrs_11_io_status_bits_way),
    .io_status_bits_blockB(abc_mshrs_11_io_status_bits_blockB),
    .io_status_bits_nestB(abc_mshrs_11_io_status_bits_nestB),
    .io_status_bits_blockC(abc_mshrs_11_io_status_bits_blockC),
    .io_status_bits_nestC(abc_mshrs_11_io_status_bits_nestC),
    .io_schedule_ready(abc_mshrs_11_io_schedule_ready),
    .io_schedule_valid(abc_mshrs_11_io_schedule_valid),
    .io_schedule_bits_a_valid(abc_mshrs_11_io_schedule_bits_a_valid),
    .io_schedule_bits_a_bits_tag(abc_mshrs_11_io_schedule_bits_a_bits_tag),
    .io_schedule_bits_a_bits_set(abc_mshrs_11_io_schedule_bits_a_bits_set),
    .io_schedule_bits_a_bits_param(abc_mshrs_11_io_schedule_bits_a_bits_param),
    .io_schedule_bits_a_bits_block(abc_mshrs_11_io_schedule_bits_a_bits_block),
    .io_schedule_bits_b_valid(abc_mshrs_11_io_schedule_bits_b_valid),
    .io_schedule_bits_b_bits_param(abc_mshrs_11_io_schedule_bits_b_bits_param),
    .io_schedule_bits_b_bits_tag(abc_mshrs_11_io_schedule_bits_b_bits_tag),
    .io_schedule_bits_b_bits_set(abc_mshrs_11_io_schedule_bits_b_bits_set),
    .io_schedule_bits_b_bits_clients(abc_mshrs_11_io_schedule_bits_b_bits_clients),
    .io_schedule_bits_c_valid(abc_mshrs_11_io_schedule_bits_c_valid),
    .io_schedule_bits_c_bits_opcode(abc_mshrs_11_io_schedule_bits_c_bits_opcode),
    .io_schedule_bits_c_bits_param(abc_mshrs_11_io_schedule_bits_c_bits_param),
    .io_schedule_bits_c_bits_tag(abc_mshrs_11_io_schedule_bits_c_bits_tag),
    .io_schedule_bits_c_bits_set(abc_mshrs_11_io_schedule_bits_c_bits_set),
    .io_schedule_bits_c_bits_way(abc_mshrs_11_io_schedule_bits_c_bits_way),
    .io_schedule_bits_c_bits_dirty(abc_mshrs_11_io_schedule_bits_c_bits_dirty),
    .io_schedule_bits_d_valid(abc_mshrs_11_io_schedule_bits_d_valid),
    .io_schedule_bits_d_bits_prio_0(abc_mshrs_11_io_schedule_bits_d_bits_prio_0),
    .io_schedule_bits_d_bits_prio_2(abc_mshrs_11_io_schedule_bits_d_bits_prio_2),
    .io_schedule_bits_d_bits_opcode(abc_mshrs_11_io_schedule_bits_d_bits_opcode),
    .io_schedule_bits_d_bits_param(abc_mshrs_11_io_schedule_bits_d_bits_param),
    .io_schedule_bits_d_bits_size(abc_mshrs_11_io_schedule_bits_d_bits_size),
    .io_schedule_bits_d_bits_source(abc_mshrs_11_io_schedule_bits_d_bits_source),
    .io_schedule_bits_d_bits_offset(abc_mshrs_11_io_schedule_bits_d_bits_offset),
    .io_schedule_bits_d_bits_put(abc_mshrs_11_io_schedule_bits_d_bits_put),
    .io_schedule_bits_d_bits_set(abc_mshrs_11_io_schedule_bits_d_bits_set),
    .io_schedule_bits_d_bits_way(abc_mshrs_11_io_schedule_bits_d_bits_way),
    .io_schedule_bits_d_bits_bad(abc_mshrs_11_io_schedule_bits_d_bits_bad),
    .io_schedule_bits_e_valid(abc_mshrs_11_io_schedule_bits_e_valid),
    .io_schedule_bits_e_bits_sink(abc_mshrs_11_io_schedule_bits_e_bits_sink),
    .io_schedule_bits_x_valid(abc_mshrs_11_io_schedule_bits_x_valid),
    .io_schedule_bits_dir_valid(abc_mshrs_11_io_schedule_bits_dir_valid),
    .io_schedule_bits_dir_bits_set(abc_mshrs_11_io_schedule_bits_dir_bits_set),
    .io_schedule_bits_dir_bits_way(abc_mshrs_11_io_schedule_bits_dir_bits_way),
    .io_schedule_bits_dir_bits_data_dirty(abc_mshrs_11_io_schedule_bits_dir_bits_data_dirty),
    .io_schedule_bits_dir_bits_data_state(abc_mshrs_11_io_schedule_bits_dir_bits_data_state),
    .io_schedule_bits_dir_bits_data_clients(abc_mshrs_11_io_schedule_bits_dir_bits_data_clients),
    .io_schedule_bits_dir_bits_data_tag(abc_mshrs_11_io_schedule_bits_dir_bits_data_tag),
    .io_schedule_bits_reload(abc_mshrs_11_io_schedule_bits_reload),
    .io_sinkc_valid(abc_mshrs_11_io_sinkc_valid),
    .io_sinkc_bits_last(abc_mshrs_11_io_sinkc_bits_last),
    .io_sinkc_bits_tag(abc_mshrs_11_io_sinkc_bits_tag),
    .io_sinkc_bits_source(abc_mshrs_11_io_sinkc_bits_source),
    .io_sinkc_bits_param(abc_mshrs_11_io_sinkc_bits_param),
    .io_sinkc_bits_data(abc_mshrs_11_io_sinkc_bits_data),
    .io_sinkd_valid(abc_mshrs_11_io_sinkd_valid),
    .io_sinkd_bits_last(abc_mshrs_11_io_sinkd_bits_last),
    .io_sinkd_bits_opcode(abc_mshrs_11_io_sinkd_bits_opcode),
    .io_sinkd_bits_param(abc_mshrs_11_io_sinkd_bits_param),
    .io_sinkd_bits_sink(abc_mshrs_11_io_sinkd_bits_sink),
    .io_sinkd_bits_denied(abc_mshrs_11_io_sinkd_bits_denied),
    .io_sinke_valid(abc_mshrs_11_io_sinke_valid),
    .io_nestedwb_set(abc_mshrs_11_io_nestedwb_set),
    .io_nestedwb_tag(abc_mshrs_11_io_nestedwb_tag),
    .io_nestedwb_b_toN(abc_mshrs_11_io_nestedwb_b_toN),
    .io_nestedwb_b_toB(abc_mshrs_11_io_nestedwb_b_toB),
    .io_nestedwb_b_clr_dirty(abc_mshrs_11_io_nestedwb_b_clr_dirty),
    .io_nestedwb_c_set_dirty(abc_mshrs_11_io_nestedwb_c_set_dirty)
  );
  MSHR abc_mshrs_12 ( // @[Scheduler.scala 69:46]
    .clock(abc_mshrs_12_clock),
    .reset(abc_mshrs_12_reset),
    .io_allocate_valid(abc_mshrs_12_io_allocate_valid),
    .io_allocate_bits_prio_0(abc_mshrs_12_io_allocate_bits_prio_0),
    .io_allocate_bits_prio_1(abc_mshrs_12_io_allocate_bits_prio_1),
    .io_allocate_bits_prio_2(abc_mshrs_12_io_allocate_bits_prio_2),
    .io_allocate_bits_opcode(abc_mshrs_12_io_allocate_bits_opcode),
    .io_allocate_bits_param(abc_mshrs_12_io_allocate_bits_param),
    .io_allocate_bits_size(abc_mshrs_12_io_allocate_bits_size),
    .io_allocate_bits_source(abc_mshrs_12_io_allocate_bits_source),
    .io_allocate_bits_tag(abc_mshrs_12_io_allocate_bits_tag),
    .io_allocate_bits_offset(abc_mshrs_12_io_allocate_bits_offset),
    .io_allocate_bits_put(abc_mshrs_12_io_allocate_bits_put),
    .io_allocate_bits_set(abc_mshrs_12_io_allocate_bits_set),
    .io_allocate_bits_repeat(abc_mshrs_12_io_allocate_bits_repeat),
    .io_directory_valid(abc_mshrs_12_io_directory_valid),
    .io_directory_bits_dirty(abc_mshrs_12_io_directory_bits_dirty),
    .io_directory_bits_state(abc_mshrs_12_io_directory_bits_state),
    .io_directory_bits_clients(abc_mshrs_12_io_directory_bits_clients),
    .io_directory_bits_tag(abc_mshrs_12_io_directory_bits_tag),
    .io_directory_bits_hit(abc_mshrs_12_io_directory_bits_hit),
    .io_directory_bits_way(abc_mshrs_12_io_directory_bits_way),
    .io_status_valid(abc_mshrs_12_io_status_valid),
    .io_status_bits_set(abc_mshrs_12_io_status_bits_set),
    .io_status_bits_tag(abc_mshrs_12_io_status_bits_tag),
    .io_status_bits_way(abc_mshrs_12_io_status_bits_way),
    .io_status_bits_blockB(abc_mshrs_12_io_status_bits_blockB),
    .io_status_bits_nestB(abc_mshrs_12_io_status_bits_nestB),
    .io_status_bits_blockC(abc_mshrs_12_io_status_bits_blockC),
    .io_status_bits_nestC(abc_mshrs_12_io_status_bits_nestC),
    .io_schedule_ready(abc_mshrs_12_io_schedule_ready),
    .io_schedule_valid(abc_mshrs_12_io_schedule_valid),
    .io_schedule_bits_a_valid(abc_mshrs_12_io_schedule_bits_a_valid),
    .io_schedule_bits_a_bits_tag(abc_mshrs_12_io_schedule_bits_a_bits_tag),
    .io_schedule_bits_a_bits_set(abc_mshrs_12_io_schedule_bits_a_bits_set),
    .io_schedule_bits_a_bits_param(abc_mshrs_12_io_schedule_bits_a_bits_param),
    .io_schedule_bits_a_bits_block(abc_mshrs_12_io_schedule_bits_a_bits_block),
    .io_schedule_bits_b_valid(abc_mshrs_12_io_schedule_bits_b_valid),
    .io_schedule_bits_b_bits_param(abc_mshrs_12_io_schedule_bits_b_bits_param),
    .io_schedule_bits_b_bits_tag(abc_mshrs_12_io_schedule_bits_b_bits_tag),
    .io_schedule_bits_b_bits_set(abc_mshrs_12_io_schedule_bits_b_bits_set),
    .io_schedule_bits_b_bits_clients(abc_mshrs_12_io_schedule_bits_b_bits_clients),
    .io_schedule_bits_c_valid(abc_mshrs_12_io_schedule_bits_c_valid),
    .io_schedule_bits_c_bits_opcode(abc_mshrs_12_io_schedule_bits_c_bits_opcode),
    .io_schedule_bits_c_bits_param(abc_mshrs_12_io_schedule_bits_c_bits_param),
    .io_schedule_bits_c_bits_tag(abc_mshrs_12_io_schedule_bits_c_bits_tag),
    .io_schedule_bits_c_bits_set(abc_mshrs_12_io_schedule_bits_c_bits_set),
    .io_schedule_bits_c_bits_way(abc_mshrs_12_io_schedule_bits_c_bits_way),
    .io_schedule_bits_c_bits_dirty(abc_mshrs_12_io_schedule_bits_c_bits_dirty),
    .io_schedule_bits_d_valid(abc_mshrs_12_io_schedule_bits_d_valid),
    .io_schedule_bits_d_bits_prio_0(abc_mshrs_12_io_schedule_bits_d_bits_prio_0),
    .io_schedule_bits_d_bits_prio_2(abc_mshrs_12_io_schedule_bits_d_bits_prio_2),
    .io_schedule_bits_d_bits_opcode(abc_mshrs_12_io_schedule_bits_d_bits_opcode),
    .io_schedule_bits_d_bits_param(abc_mshrs_12_io_schedule_bits_d_bits_param),
    .io_schedule_bits_d_bits_size(abc_mshrs_12_io_schedule_bits_d_bits_size),
    .io_schedule_bits_d_bits_source(abc_mshrs_12_io_schedule_bits_d_bits_source),
    .io_schedule_bits_d_bits_offset(abc_mshrs_12_io_schedule_bits_d_bits_offset),
    .io_schedule_bits_d_bits_put(abc_mshrs_12_io_schedule_bits_d_bits_put),
    .io_schedule_bits_d_bits_set(abc_mshrs_12_io_schedule_bits_d_bits_set),
    .io_schedule_bits_d_bits_way(abc_mshrs_12_io_schedule_bits_d_bits_way),
    .io_schedule_bits_d_bits_bad(abc_mshrs_12_io_schedule_bits_d_bits_bad),
    .io_schedule_bits_e_valid(abc_mshrs_12_io_schedule_bits_e_valid),
    .io_schedule_bits_e_bits_sink(abc_mshrs_12_io_schedule_bits_e_bits_sink),
    .io_schedule_bits_x_valid(abc_mshrs_12_io_schedule_bits_x_valid),
    .io_schedule_bits_dir_valid(abc_mshrs_12_io_schedule_bits_dir_valid),
    .io_schedule_bits_dir_bits_set(abc_mshrs_12_io_schedule_bits_dir_bits_set),
    .io_schedule_bits_dir_bits_way(abc_mshrs_12_io_schedule_bits_dir_bits_way),
    .io_schedule_bits_dir_bits_data_dirty(abc_mshrs_12_io_schedule_bits_dir_bits_data_dirty),
    .io_schedule_bits_dir_bits_data_state(abc_mshrs_12_io_schedule_bits_dir_bits_data_state),
    .io_schedule_bits_dir_bits_data_clients(abc_mshrs_12_io_schedule_bits_dir_bits_data_clients),
    .io_schedule_bits_dir_bits_data_tag(abc_mshrs_12_io_schedule_bits_dir_bits_data_tag),
    .io_schedule_bits_reload(abc_mshrs_12_io_schedule_bits_reload),
    .io_sinkc_valid(abc_mshrs_12_io_sinkc_valid),
    .io_sinkc_bits_last(abc_mshrs_12_io_sinkc_bits_last),
    .io_sinkc_bits_tag(abc_mshrs_12_io_sinkc_bits_tag),
    .io_sinkc_bits_source(abc_mshrs_12_io_sinkc_bits_source),
    .io_sinkc_bits_param(abc_mshrs_12_io_sinkc_bits_param),
    .io_sinkc_bits_data(abc_mshrs_12_io_sinkc_bits_data),
    .io_sinkd_valid(abc_mshrs_12_io_sinkd_valid),
    .io_sinkd_bits_last(abc_mshrs_12_io_sinkd_bits_last),
    .io_sinkd_bits_opcode(abc_mshrs_12_io_sinkd_bits_opcode),
    .io_sinkd_bits_param(abc_mshrs_12_io_sinkd_bits_param),
    .io_sinkd_bits_sink(abc_mshrs_12_io_sinkd_bits_sink),
    .io_sinkd_bits_denied(abc_mshrs_12_io_sinkd_bits_denied),
    .io_sinke_valid(abc_mshrs_12_io_sinke_valid),
    .io_nestedwb_set(abc_mshrs_12_io_nestedwb_set),
    .io_nestedwb_tag(abc_mshrs_12_io_nestedwb_tag),
    .io_nestedwb_b_toN(abc_mshrs_12_io_nestedwb_b_toN),
    .io_nestedwb_b_toB(abc_mshrs_12_io_nestedwb_b_toB),
    .io_nestedwb_b_clr_dirty(abc_mshrs_12_io_nestedwb_b_clr_dirty),
    .io_nestedwb_c_set_dirty(abc_mshrs_12_io_nestedwb_c_set_dirty)
  );
  MSHR abc_mshrs_13 ( // @[Scheduler.scala 69:46]
    .clock(abc_mshrs_13_clock),
    .reset(abc_mshrs_13_reset),
    .io_allocate_valid(abc_mshrs_13_io_allocate_valid),
    .io_allocate_bits_prio_0(abc_mshrs_13_io_allocate_bits_prio_0),
    .io_allocate_bits_prio_1(abc_mshrs_13_io_allocate_bits_prio_1),
    .io_allocate_bits_prio_2(abc_mshrs_13_io_allocate_bits_prio_2),
    .io_allocate_bits_opcode(abc_mshrs_13_io_allocate_bits_opcode),
    .io_allocate_bits_param(abc_mshrs_13_io_allocate_bits_param),
    .io_allocate_bits_size(abc_mshrs_13_io_allocate_bits_size),
    .io_allocate_bits_source(abc_mshrs_13_io_allocate_bits_source),
    .io_allocate_bits_tag(abc_mshrs_13_io_allocate_bits_tag),
    .io_allocate_bits_offset(abc_mshrs_13_io_allocate_bits_offset),
    .io_allocate_bits_put(abc_mshrs_13_io_allocate_bits_put),
    .io_allocate_bits_set(abc_mshrs_13_io_allocate_bits_set),
    .io_allocate_bits_repeat(abc_mshrs_13_io_allocate_bits_repeat),
    .io_directory_valid(abc_mshrs_13_io_directory_valid),
    .io_directory_bits_dirty(abc_mshrs_13_io_directory_bits_dirty),
    .io_directory_bits_state(abc_mshrs_13_io_directory_bits_state),
    .io_directory_bits_clients(abc_mshrs_13_io_directory_bits_clients),
    .io_directory_bits_tag(abc_mshrs_13_io_directory_bits_tag),
    .io_directory_bits_hit(abc_mshrs_13_io_directory_bits_hit),
    .io_directory_bits_way(abc_mshrs_13_io_directory_bits_way),
    .io_status_valid(abc_mshrs_13_io_status_valid),
    .io_status_bits_set(abc_mshrs_13_io_status_bits_set),
    .io_status_bits_tag(abc_mshrs_13_io_status_bits_tag),
    .io_status_bits_way(abc_mshrs_13_io_status_bits_way),
    .io_status_bits_blockB(abc_mshrs_13_io_status_bits_blockB),
    .io_status_bits_nestB(abc_mshrs_13_io_status_bits_nestB),
    .io_status_bits_blockC(abc_mshrs_13_io_status_bits_blockC),
    .io_status_bits_nestC(abc_mshrs_13_io_status_bits_nestC),
    .io_schedule_ready(abc_mshrs_13_io_schedule_ready),
    .io_schedule_valid(abc_mshrs_13_io_schedule_valid),
    .io_schedule_bits_a_valid(abc_mshrs_13_io_schedule_bits_a_valid),
    .io_schedule_bits_a_bits_tag(abc_mshrs_13_io_schedule_bits_a_bits_tag),
    .io_schedule_bits_a_bits_set(abc_mshrs_13_io_schedule_bits_a_bits_set),
    .io_schedule_bits_a_bits_param(abc_mshrs_13_io_schedule_bits_a_bits_param),
    .io_schedule_bits_a_bits_block(abc_mshrs_13_io_schedule_bits_a_bits_block),
    .io_schedule_bits_b_valid(abc_mshrs_13_io_schedule_bits_b_valid),
    .io_schedule_bits_b_bits_param(abc_mshrs_13_io_schedule_bits_b_bits_param),
    .io_schedule_bits_b_bits_tag(abc_mshrs_13_io_schedule_bits_b_bits_tag),
    .io_schedule_bits_b_bits_set(abc_mshrs_13_io_schedule_bits_b_bits_set),
    .io_schedule_bits_b_bits_clients(abc_mshrs_13_io_schedule_bits_b_bits_clients),
    .io_schedule_bits_c_valid(abc_mshrs_13_io_schedule_bits_c_valid),
    .io_schedule_bits_c_bits_opcode(abc_mshrs_13_io_schedule_bits_c_bits_opcode),
    .io_schedule_bits_c_bits_param(abc_mshrs_13_io_schedule_bits_c_bits_param),
    .io_schedule_bits_c_bits_tag(abc_mshrs_13_io_schedule_bits_c_bits_tag),
    .io_schedule_bits_c_bits_set(abc_mshrs_13_io_schedule_bits_c_bits_set),
    .io_schedule_bits_c_bits_way(abc_mshrs_13_io_schedule_bits_c_bits_way),
    .io_schedule_bits_c_bits_dirty(abc_mshrs_13_io_schedule_bits_c_bits_dirty),
    .io_schedule_bits_d_valid(abc_mshrs_13_io_schedule_bits_d_valid),
    .io_schedule_bits_d_bits_prio_0(abc_mshrs_13_io_schedule_bits_d_bits_prio_0),
    .io_schedule_bits_d_bits_prio_2(abc_mshrs_13_io_schedule_bits_d_bits_prio_2),
    .io_schedule_bits_d_bits_opcode(abc_mshrs_13_io_schedule_bits_d_bits_opcode),
    .io_schedule_bits_d_bits_param(abc_mshrs_13_io_schedule_bits_d_bits_param),
    .io_schedule_bits_d_bits_size(abc_mshrs_13_io_schedule_bits_d_bits_size),
    .io_schedule_bits_d_bits_source(abc_mshrs_13_io_schedule_bits_d_bits_source),
    .io_schedule_bits_d_bits_offset(abc_mshrs_13_io_schedule_bits_d_bits_offset),
    .io_schedule_bits_d_bits_put(abc_mshrs_13_io_schedule_bits_d_bits_put),
    .io_schedule_bits_d_bits_set(abc_mshrs_13_io_schedule_bits_d_bits_set),
    .io_schedule_bits_d_bits_way(abc_mshrs_13_io_schedule_bits_d_bits_way),
    .io_schedule_bits_d_bits_bad(abc_mshrs_13_io_schedule_bits_d_bits_bad),
    .io_schedule_bits_e_valid(abc_mshrs_13_io_schedule_bits_e_valid),
    .io_schedule_bits_e_bits_sink(abc_mshrs_13_io_schedule_bits_e_bits_sink),
    .io_schedule_bits_x_valid(abc_mshrs_13_io_schedule_bits_x_valid),
    .io_schedule_bits_dir_valid(abc_mshrs_13_io_schedule_bits_dir_valid),
    .io_schedule_bits_dir_bits_set(abc_mshrs_13_io_schedule_bits_dir_bits_set),
    .io_schedule_bits_dir_bits_way(abc_mshrs_13_io_schedule_bits_dir_bits_way),
    .io_schedule_bits_dir_bits_data_dirty(abc_mshrs_13_io_schedule_bits_dir_bits_data_dirty),
    .io_schedule_bits_dir_bits_data_state(abc_mshrs_13_io_schedule_bits_dir_bits_data_state),
    .io_schedule_bits_dir_bits_data_clients(abc_mshrs_13_io_schedule_bits_dir_bits_data_clients),
    .io_schedule_bits_dir_bits_data_tag(abc_mshrs_13_io_schedule_bits_dir_bits_data_tag),
    .io_schedule_bits_reload(abc_mshrs_13_io_schedule_bits_reload),
    .io_sinkc_valid(abc_mshrs_13_io_sinkc_valid),
    .io_sinkc_bits_last(abc_mshrs_13_io_sinkc_bits_last),
    .io_sinkc_bits_tag(abc_mshrs_13_io_sinkc_bits_tag),
    .io_sinkc_bits_source(abc_mshrs_13_io_sinkc_bits_source),
    .io_sinkc_bits_param(abc_mshrs_13_io_sinkc_bits_param),
    .io_sinkc_bits_data(abc_mshrs_13_io_sinkc_bits_data),
    .io_sinkd_valid(abc_mshrs_13_io_sinkd_valid),
    .io_sinkd_bits_last(abc_mshrs_13_io_sinkd_bits_last),
    .io_sinkd_bits_opcode(abc_mshrs_13_io_sinkd_bits_opcode),
    .io_sinkd_bits_param(abc_mshrs_13_io_sinkd_bits_param),
    .io_sinkd_bits_sink(abc_mshrs_13_io_sinkd_bits_sink),
    .io_sinkd_bits_denied(abc_mshrs_13_io_sinkd_bits_denied),
    .io_sinke_valid(abc_mshrs_13_io_sinke_valid),
    .io_nestedwb_set(abc_mshrs_13_io_nestedwb_set),
    .io_nestedwb_tag(abc_mshrs_13_io_nestedwb_tag),
    .io_nestedwb_b_toN(abc_mshrs_13_io_nestedwb_b_toN),
    .io_nestedwb_b_toB(abc_mshrs_13_io_nestedwb_b_toB),
    .io_nestedwb_b_clr_dirty(abc_mshrs_13_io_nestedwb_b_clr_dirty),
    .io_nestedwb_c_set_dirty(abc_mshrs_13_io_nestedwb_c_set_dirty)
  );
  MSHR abc_mshrs_14 ( // @[Scheduler.scala 69:46]
    .clock(abc_mshrs_14_clock),
    .reset(abc_mshrs_14_reset),
    .io_allocate_valid(abc_mshrs_14_io_allocate_valid),
    .io_allocate_bits_prio_0(abc_mshrs_14_io_allocate_bits_prio_0),
    .io_allocate_bits_prio_1(abc_mshrs_14_io_allocate_bits_prio_1),
    .io_allocate_bits_prio_2(abc_mshrs_14_io_allocate_bits_prio_2),
    .io_allocate_bits_opcode(abc_mshrs_14_io_allocate_bits_opcode),
    .io_allocate_bits_param(abc_mshrs_14_io_allocate_bits_param),
    .io_allocate_bits_size(abc_mshrs_14_io_allocate_bits_size),
    .io_allocate_bits_source(abc_mshrs_14_io_allocate_bits_source),
    .io_allocate_bits_tag(abc_mshrs_14_io_allocate_bits_tag),
    .io_allocate_bits_offset(abc_mshrs_14_io_allocate_bits_offset),
    .io_allocate_bits_put(abc_mshrs_14_io_allocate_bits_put),
    .io_allocate_bits_set(abc_mshrs_14_io_allocate_bits_set),
    .io_allocate_bits_repeat(abc_mshrs_14_io_allocate_bits_repeat),
    .io_directory_valid(abc_mshrs_14_io_directory_valid),
    .io_directory_bits_dirty(abc_mshrs_14_io_directory_bits_dirty),
    .io_directory_bits_state(abc_mshrs_14_io_directory_bits_state),
    .io_directory_bits_clients(abc_mshrs_14_io_directory_bits_clients),
    .io_directory_bits_tag(abc_mshrs_14_io_directory_bits_tag),
    .io_directory_bits_hit(abc_mshrs_14_io_directory_bits_hit),
    .io_directory_bits_way(abc_mshrs_14_io_directory_bits_way),
    .io_status_valid(abc_mshrs_14_io_status_valid),
    .io_status_bits_set(abc_mshrs_14_io_status_bits_set),
    .io_status_bits_tag(abc_mshrs_14_io_status_bits_tag),
    .io_status_bits_way(abc_mshrs_14_io_status_bits_way),
    .io_status_bits_blockB(abc_mshrs_14_io_status_bits_blockB),
    .io_status_bits_nestB(abc_mshrs_14_io_status_bits_nestB),
    .io_status_bits_blockC(abc_mshrs_14_io_status_bits_blockC),
    .io_status_bits_nestC(abc_mshrs_14_io_status_bits_nestC),
    .io_schedule_ready(abc_mshrs_14_io_schedule_ready),
    .io_schedule_valid(abc_mshrs_14_io_schedule_valid),
    .io_schedule_bits_a_valid(abc_mshrs_14_io_schedule_bits_a_valid),
    .io_schedule_bits_a_bits_tag(abc_mshrs_14_io_schedule_bits_a_bits_tag),
    .io_schedule_bits_a_bits_set(abc_mshrs_14_io_schedule_bits_a_bits_set),
    .io_schedule_bits_a_bits_param(abc_mshrs_14_io_schedule_bits_a_bits_param),
    .io_schedule_bits_a_bits_block(abc_mshrs_14_io_schedule_bits_a_bits_block),
    .io_schedule_bits_b_valid(abc_mshrs_14_io_schedule_bits_b_valid),
    .io_schedule_bits_b_bits_param(abc_mshrs_14_io_schedule_bits_b_bits_param),
    .io_schedule_bits_b_bits_tag(abc_mshrs_14_io_schedule_bits_b_bits_tag),
    .io_schedule_bits_b_bits_set(abc_mshrs_14_io_schedule_bits_b_bits_set),
    .io_schedule_bits_b_bits_clients(abc_mshrs_14_io_schedule_bits_b_bits_clients),
    .io_schedule_bits_c_valid(abc_mshrs_14_io_schedule_bits_c_valid),
    .io_schedule_bits_c_bits_opcode(abc_mshrs_14_io_schedule_bits_c_bits_opcode),
    .io_schedule_bits_c_bits_param(abc_mshrs_14_io_schedule_bits_c_bits_param),
    .io_schedule_bits_c_bits_tag(abc_mshrs_14_io_schedule_bits_c_bits_tag),
    .io_schedule_bits_c_bits_set(abc_mshrs_14_io_schedule_bits_c_bits_set),
    .io_schedule_bits_c_bits_way(abc_mshrs_14_io_schedule_bits_c_bits_way),
    .io_schedule_bits_c_bits_dirty(abc_mshrs_14_io_schedule_bits_c_bits_dirty),
    .io_schedule_bits_d_valid(abc_mshrs_14_io_schedule_bits_d_valid),
    .io_schedule_bits_d_bits_prio_0(abc_mshrs_14_io_schedule_bits_d_bits_prio_0),
    .io_schedule_bits_d_bits_prio_2(abc_mshrs_14_io_schedule_bits_d_bits_prio_2),
    .io_schedule_bits_d_bits_opcode(abc_mshrs_14_io_schedule_bits_d_bits_opcode),
    .io_schedule_bits_d_bits_param(abc_mshrs_14_io_schedule_bits_d_bits_param),
    .io_schedule_bits_d_bits_size(abc_mshrs_14_io_schedule_bits_d_bits_size),
    .io_schedule_bits_d_bits_source(abc_mshrs_14_io_schedule_bits_d_bits_source),
    .io_schedule_bits_d_bits_offset(abc_mshrs_14_io_schedule_bits_d_bits_offset),
    .io_schedule_bits_d_bits_put(abc_mshrs_14_io_schedule_bits_d_bits_put),
    .io_schedule_bits_d_bits_set(abc_mshrs_14_io_schedule_bits_d_bits_set),
    .io_schedule_bits_d_bits_way(abc_mshrs_14_io_schedule_bits_d_bits_way),
    .io_schedule_bits_d_bits_bad(abc_mshrs_14_io_schedule_bits_d_bits_bad),
    .io_schedule_bits_e_valid(abc_mshrs_14_io_schedule_bits_e_valid),
    .io_schedule_bits_e_bits_sink(abc_mshrs_14_io_schedule_bits_e_bits_sink),
    .io_schedule_bits_x_valid(abc_mshrs_14_io_schedule_bits_x_valid),
    .io_schedule_bits_dir_valid(abc_mshrs_14_io_schedule_bits_dir_valid),
    .io_schedule_bits_dir_bits_set(abc_mshrs_14_io_schedule_bits_dir_bits_set),
    .io_schedule_bits_dir_bits_way(abc_mshrs_14_io_schedule_bits_dir_bits_way),
    .io_schedule_bits_dir_bits_data_dirty(abc_mshrs_14_io_schedule_bits_dir_bits_data_dirty),
    .io_schedule_bits_dir_bits_data_state(abc_mshrs_14_io_schedule_bits_dir_bits_data_state),
    .io_schedule_bits_dir_bits_data_clients(abc_mshrs_14_io_schedule_bits_dir_bits_data_clients),
    .io_schedule_bits_dir_bits_data_tag(abc_mshrs_14_io_schedule_bits_dir_bits_data_tag),
    .io_schedule_bits_reload(abc_mshrs_14_io_schedule_bits_reload),
    .io_sinkc_valid(abc_mshrs_14_io_sinkc_valid),
    .io_sinkc_bits_last(abc_mshrs_14_io_sinkc_bits_last),
    .io_sinkc_bits_tag(abc_mshrs_14_io_sinkc_bits_tag),
    .io_sinkc_bits_source(abc_mshrs_14_io_sinkc_bits_source),
    .io_sinkc_bits_param(abc_mshrs_14_io_sinkc_bits_param),
    .io_sinkc_bits_data(abc_mshrs_14_io_sinkc_bits_data),
    .io_sinkd_valid(abc_mshrs_14_io_sinkd_valid),
    .io_sinkd_bits_last(abc_mshrs_14_io_sinkd_bits_last),
    .io_sinkd_bits_opcode(abc_mshrs_14_io_sinkd_bits_opcode),
    .io_sinkd_bits_param(abc_mshrs_14_io_sinkd_bits_param),
    .io_sinkd_bits_sink(abc_mshrs_14_io_sinkd_bits_sink),
    .io_sinkd_bits_denied(abc_mshrs_14_io_sinkd_bits_denied),
    .io_sinke_valid(abc_mshrs_14_io_sinke_valid),
    .io_nestedwb_set(abc_mshrs_14_io_nestedwb_set),
    .io_nestedwb_tag(abc_mshrs_14_io_nestedwb_tag),
    .io_nestedwb_b_toN(abc_mshrs_14_io_nestedwb_b_toN),
    .io_nestedwb_b_toB(abc_mshrs_14_io_nestedwb_b_toB),
    .io_nestedwb_b_clr_dirty(abc_mshrs_14_io_nestedwb_b_clr_dirty),
    .io_nestedwb_c_set_dirty(abc_mshrs_14_io_nestedwb_c_set_dirty)
  );
  MSHR abc_mshrs_15 ( // @[Scheduler.scala 69:46]
    .clock(abc_mshrs_15_clock),
    .reset(abc_mshrs_15_reset),
    .io_allocate_valid(abc_mshrs_15_io_allocate_valid),
    .io_allocate_bits_prio_0(abc_mshrs_15_io_allocate_bits_prio_0),
    .io_allocate_bits_prio_1(abc_mshrs_15_io_allocate_bits_prio_1),
    .io_allocate_bits_prio_2(abc_mshrs_15_io_allocate_bits_prio_2),
    .io_allocate_bits_opcode(abc_mshrs_15_io_allocate_bits_opcode),
    .io_allocate_bits_param(abc_mshrs_15_io_allocate_bits_param),
    .io_allocate_bits_size(abc_mshrs_15_io_allocate_bits_size),
    .io_allocate_bits_source(abc_mshrs_15_io_allocate_bits_source),
    .io_allocate_bits_tag(abc_mshrs_15_io_allocate_bits_tag),
    .io_allocate_bits_offset(abc_mshrs_15_io_allocate_bits_offset),
    .io_allocate_bits_put(abc_mshrs_15_io_allocate_bits_put),
    .io_allocate_bits_set(abc_mshrs_15_io_allocate_bits_set),
    .io_allocate_bits_repeat(abc_mshrs_15_io_allocate_bits_repeat),
    .io_directory_valid(abc_mshrs_15_io_directory_valid),
    .io_directory_bits_dirty(abc_mshrs_15_io_directory_bits_dirty),
    .io_directory_bits_state(abc_mshrs_15_io_directory_bits_state),
    .io_directory_bits_clients(abc_mshrs_15_io_directory_bits_clients),
    .io_directory_bits_tag(abc_mshrs_15_io_directory_bits_tag),
    .io_directory_bits_hit(abc_mshrs_15_io_directory_bits_hit),
    .io_directory_bits_way(abc_mshrs_15_io_directory_bits_way),
    .io_status_valid(abc_mshrs_15_io_status_valid),
    .io_status_bits_set(abc_mshrs_15_io_status_bits_set),
    .io_status_bits_tag(abc_mshrs_15_io_status_bits_tag),
    .io_status_bits_way(abc_mshrs_15_io_status_bits_way),
    .io_status_bits_blockB(abc_mshrs_15_io_status_bits_blockB),
    .io_status_bits_nestB(abc_mshrs_15_io_status_bits_nestB),
    .io_status_bits_blockC(abc_mshrs_15_io_status_bits_blockC),
    .io_status_bits_nestC(abc_mshrs_15_io_status_bits_nestC),
    .io_schedule_ready(abc_mshrs_15_io_schedule_ready),
    .io_schedule_valid(abc_mshrs_15_io_schedule_valid),
    .io_schedule_bits_a_valid(abc_mshrs_15_io_schedule_bits_a_valid),
    .io_schedule_bits_a_bits_tag(abc_mshrs_15_io_schedule_bits_a_bits_tag),
    .io_schedule_bits_a_bits_set(abc_mshrs_15_io_schedule_bits_a_bits_set),
    .io_schedule_bits_a_bits_param(abc_mshrs_15_io_schedule_bits_a_bits_param),
    .io_schedule_bits_a_bits_block(abc_mshrs_15_io_schedule_bits_a_bits_block),
    .io_schedule_bits_b_valid(abc_mshrs_15_io_schedule_bits_b_valid),
    .io_schedule_bits_b_bits_param(abc_mshrs_15_io_schedule_bits_b_bits_param),
    .io_schedule_bits_b_bits_tag(abc_mshrs_15_io_schedule_bits_b_bits_tag),
    .io_schedule_bits_b_bits_set(abc_mshrs_15_io_schedule_bits_b_bits_set),
    .io_schedule_bits_b_bits_clients(abc_mshrs_15_io_schedule_bits_b_bits_clients),
    .io_schedule_bits_c_valid(abc_mshrs_15_io_schedule_bits_c_valid),
    .io_schedule_bits_c_bits_opcode(abc_mshrs_15_io_schedule_bits_c_bits_opcode),
    .io_schedule_bits_c_bits_param(abc_mshrs_15_io_schedule_bits_c_bits_param),
    .io_schedule_bits_c_bits_tag(abc_mshrs_15_io_schedule_bits_c_bits_tag),
    .io_schedule_bits_c_bits_set(abc_mshrs_15_io_schedule_bits_c_bits_set),
    .io_schedule_bits_c_bits_way(abc_mshrs_15_io_schedule_bits_c_bits_way),
    .io_schedule_bits_c_bits_dirty(abc_mshrs_15_io_schedule_bits_c_bits_dirty),
    .io_schedule_bits_d_valid(abc_mshrs_15_io_schedule_bits_d_valid),
    .io_schedule_bits_d_bits_prio_0(abc_mshrs_15_io_schedule_bits_d_bits_prio_0),
    .io_schedule_bits_d_bits_prio_2(abc_mshrs_15_io_schedule_bits_d_bits_prio_2),
    .io_schedule_bits_d_bits_opcode(abc_mshrs_15_io_schedule_bits_d_bits_opcode),
    .io_schedule_bits_d_bits_param(abc_mshrs_15_io_schedule_bits_d_bits_param),
    .io_schedule_bits_d_bits_size(abc_mshrs_15_io_schedule_bits_d_bits_size),
    .io_schedule_bits_d_bits_source(abc_mshrs_15_io_schedule_bits_d_bits_source),
    .io_schedule_bits_d_bits_offset(abc_mshrs_15_io_schedule_bits_d_bits_offset),
    .io_schedule_bits_d_bits_put(abc_mshrs_15_io_schedule_bits_d_bits_put),
    .io_schedule_bits_d_bits_set(abc_mshrs_15_io_schedule_bits_d_bits_set),
    .io_schedule_bits_d_bits_way(abc_mshrs_15_io_schedule_bits_d_bits_way),
    .io_schedule_bits_d_bits_bad(abc_mshrs_15_io_schedule_bits_d_bits_bad),
    .io_schedule_bits_e_valid(abc_mshrs_15_io_schedule_bits_e_valid),
    .io_schedule_bits_e_bits_sink(abc_mshrs_15_io_schedule_bits_e_bits_sink),
    .io_schedule_bits_x_valid(abc_mshrs_15_io_schedule_bits_x_valid),
    .io_schedule_bits_dir_valid(abc_mshrs_15_io_schedule_bits_dir_valid),
    .io_schedule_bits_dir_bits_set(abc_mshrs_15_io_schedule_bits_dir_bits_set),
    .io_schedule_bits_dir_bits_way(abc_mshrs_15_io_schedule_bits_dir_bits_way),
    .io_schedule_bits_dir_bits_data_dirty(abc_mshrs_15_io_schedule_bits_dir_bits_data_dirty),
    .io_schedule_bits_dir_bits_data_state(abc_mshrs_15_io_schedule_bits_dir_bits_data_state),
    .io_schedule_bits_dir_bits_data_clients(abc_mshrs_15_io_schedule_bits_dir_bits_data_clients),
    .io_schedule_bits_dir_bits_data_tag(abc_mshrs_15_io_schedule_bits_dir_bits_data_tag),
    .io_schedule_bits_reload(abc_mshrs_15_io_schedule_bits_reload),
    .io_sinkc_valid(abc_mshrs_15_io_sinkc_valid),
    .io_sinkc_bits_last(abc_mshrs_15_io_sinkc_bits_last),
    .io_sinkc_bits_tag(abc_mshrs_15_io_sinkc_bits_tag),
    .io_sinkc_bits_source(abc_mshrs_15_io_sinkc_bits_source),
    .io_sinkc_bits_param(abc_mshrs_15_io_sinkc_bits_param),
    .io_sinkc_bits_data(abc_mshrs_15_io_sinkc_bits_data),
    .io_sinkd_valid(abc_mshrs_15_io_sinkd_valid),
    .io_sinkd_bits_last(abc_mshrs_15_io_sinkd_bits_last),
    .io_sinkd_bits_opcode(abc_mshrs_15_io_sinkd_bits_opcode),
    .io_sinkd_bits_param(abc_mshrs_15_io_sinkd_bits_param),
    .io_sinkd_bits_sink(abc_mshrs_15_io_sinkd_bits_sink),
    .io_sinkd_bits_denied(abc_mshrs_15_io_sinkd_bits_denied),
    .io_sinke_valid(abc_mshrs_15_io_sinke_valid),
    .io_nestedwb_set(abc_mshrs_15_io_nestedwb_set),
    .io_nestedwb_tag(abc_mshrs_15_io_nestedwb_tag),
    .io_nestedwb_b_toN(abc_mshrs_15_io_nestedwb_b_toN),
    .io_nestedwb_b_toB(abc_mshrs_15_io_nestedwb_b_toB),
    .io_nestedwb_b_clr_dirty(abc_mshrs_15_io_nestedwb_b_clr_dirty),
    .io_nestedwb_c_set_dirty(abc_mshrs_15_io_nestedwb_c_set_dirty)
  );
  MSHR abc_mshrs_16 ( // @[Scheduler.scala 69:46]
    .clock(abc_mshrs_16_clock),
    .reset(abc_mshrs_16_reset),
    .io_allocate_valid(abc_mshrs_16_io_allocate_valid),
    .io_allocate_bits_prio_0(abc_mshrs_16_io_allocate_bits_prio_0),
    .io_allocate_bits_prio_1(abc_mshrs_16_io_allocate_bits_prio_1),
    .io_allocate_bits_prio_2(abc_mshrs_16_io_allocate_bits_prio_2),
    .io_allocate_bits_opcode(abc_mshrs_16_io_allocate_bits_opcode),
    .io_allocate_bits_param(abc_mshrs_16_io_allocate_bits_param),
    .io_allocate_bits_size(abc_mshrs_16_io_allocate_bits_size),
    .io_allocate_bits_source(abc_mshrs_16_io_allocate_bits_source),
    .io_allocate_bits_tag(abc_mshrs_16_io_allocate_bits_tag),
    .io_allocate_bits_offset(abc_mshrs_16_io_allocate_bits_offset),
    .io_allocate_bits_put(abc_mshrs_16_io_allocate_bits_put),
    .io_allocate_bits_set(abc_mshrs_16_io_allocate_bits_set),
    .io_allocate_bits_repeat(abc_mshrs_16_io_allocate_bits_repeat),
    .io_directory_valid(abc_mshrs_16_io_directory_valid),
    .io_directory_bits_dirty(abc_mshrs_16_io_directory_bits_dirty),
    .io_directory_bits_state(abc_mshrs_16_io_directory_bits_state),
    .io_directory_bits_clients(abc_mshrs_16_io_directory_bits_clients),
    .io_directory_bits_tag(abc_mshrs_16_io_directory_bits_tag),
    .io_directory_bits_hit(abc_mshrs_16_io_directory_bits_hit),
    .io_directory_bits_way(abc_mshrs_16_io_directory_bits_way),
    .io_status_valid(abc_mshrs_16_io_status_valid),
    .io_status_bits_set(abc_mshrs_16_io_status_bits_set),
    .io_status_bits_tag(abc_mshrs_16_io_status_bits_tag),
    .io_status_bits_way(abc_mshrs_16_io_status_bits_way),
    .io_status_bits_blockB(abc_mshrs_16_io_status_bits_blockB),
    .io_status_bits_nestB(abc_mshrs_16_io_status_bits_nestB),
    .io_status_bits_blockC(abc_mshrs_16_io_status_bits_blockC),
    .io_status_bits_nestC(abc_mshrs_16_io_status_bits_nestC),
    .io_schedule_ready(abc_mshrs_16_io_schedule_ready),
    .io_schedule_valid(abc_mshrs_16_io_schedule_valid),
    .io_schedule_bits_a_valid(abc_mshrs_16_io_schedule_bits_a_valid),
    .io_schedule_bits_a_bits_tag(abc_mshrs_16_io_schedule_bits_a_bits_tag),
    .io_schedule_bits_a_bits_set(abc_mshrs_16_io_schedule_bits_a_bits_set),
    .io_schedule_bits_a_bits_param(abc_mshrs_16_io_schedule_bits_a_bits_param),
    .io_schedule_bits_a_bits_block(abc_mshrs_16_io_schedule_bits_a_bits_block),
    .io_schedule_bits_b_valid(abc_mshrs_16_io_schedule_bits_b_valid),
    .io_schedule_bits_b_bits_param(abc_mshrs_16_io_schedule_bits_b_bits_param),
    .io_schedule_bits_b_bits_tag(abc_mshrs_16_io_schedule_bits_b_bits_tag),
    .io_schedule_bits_b_bits_set(abc_mshrs_16_io_schedule_bits_b_bits_set),
    .io_schedule_bits_b_bits_clients(abc_mshrs_16_io_schedule_bits_b_bits_clients),
    .io_schedule_bits_c_valid(abc_mshrs_16_io_schedule_bits_c_valid),
    .io_schedule_bits_c_bits_opcode(abc_mshrs_16_io_schedule_bits_c_bits_opcode),
    .io_schedule_bits_c_bits_param(abc_mshrs_16_io_schedule_bits_c_bits_param),
    .io_schedule_bits_c_bits_tag(abc_mshrs_16_io_schedule_bits_c_bits_tag),
    .io_schedule_bits_c_bits_set(abc_mshrs_16_io_schedule_bits_c_bits_set),
    .io_schedule_bits_c_bits_way(abc_mshrs_16_io_schedule_bits_c_bits_way),
    .io_schedule_bits_c_bits_dirty(abc_mshrs_16_io_schedule_bits_c_bits_dirty),
    .io_schedule_bits_d_valid(abc_mshrs_16_io_schedule_bits_d_valid),
    .io_schedule_bits_d_bits_prio_0(abc_mshrs_16_io_schedule_bits_d_bits_prio_0),
    .io_schedule_bits_d_bits_prio_2(abc_mshrs_16_io_schedule_bits_d_bits_prio_2),
    .io_schedule_bits_d_bits_opcode(abc_mshrs_16_io_schedule_bits_d_bits_opcode),
    .io_schedule_bits_d_bits_param(abc_mshrs_16_io_schedule_bits_d_bits_param),
    .io_schedule_bits_d_bits_size(abc_mshrs_16_io_schedule_bits_d_bits_size),
    .io_schedule_bits_d_bits_source(abc_mshrs_16_io_schedule_bits_d_bits_source),
    .io_schedule_bits_d_bits_offset(abc_mshrs_16_io_schedule_bits_d_bits_offset),
    .io_schedule_bits_d_bits_put(abc_mshrs_16_io_schedule_bits_d_bits_put),
    .io_schedule_bits_d_bits_set(abc_mshrs_16_io_schedule_bits_d_bits_set),
    .io_schedule_bits_d_bits_way(abc_mshrs_16_io_schedule_bits_d_bits_way),
    .io_schedule_bits_d_bits_bad(abc_mshrs_16_io_schedule_bits_d_bits_bad),
    .io_schedule_bits_e_valid(abc_mshrs_16_io_schedule_bits_e_valid),
    .io_schedule_bits_e_bits_sink(abc_mshrs_16_io_schedule_bits_e_bits_sink),
    .io_schedule_bits_x_valid(abc_mshrs_16_io_schedule_bits_x_valid),
    .io_schedule_bits_dir_valid(abc_mshrs_16_io_schedule_bits_dir_valid),
    .io_schedule_bits_dir_bits_set(abc_mshrs_16_io_schedule_bits_dir_bits_set),
    .io_schedule_bits_dir_bits_way(abc_mshrs_16_io_schedule_bits_dir_bits_way),
    .io_schedule_bits_dir_bits_data_dirty(abc_mshrs_16_io_schedule_bits_dir_bits_data_dirty),
    .io_schedule_bits_dir_bits_data_state(abc_mshrs_16_io_schedule_bits_dir_bits_data_state),
    .io_schedule_bits_dir_bits_data_clients(abc_mshrs_16_io_schedule_bits_dir_bits_data_clients),
    .io_schedule_bits_dir_bits_data_tag(abc_mshrs_16_io_schedule_bits_dir_bits_data_tag),
    .io_schedule_bits_reload(abc_mshrs_16_io_schedule_bits_reload),
    .io_sinkc_valid(abc_mshrs_16_io_sinkc_valid),
    .io_sinkc_bits_last(abc_mshrs_16_io_sinkc_bits_last),
    .io_sinkc_bits_tag(abc_mshrs_16_io_sinkc_bits_tag),
    .io_sinkc_bits_source(abc_mshrs_16_io_sinkc_bits_source),
    .io_sinkc_bits_param(abc_mshrs_16_io_sinkc_bits_param),
    .io_sinkc_bits_data(abc_mshrs_16_io_sinkc_bits_data),
    .io_sinkd_valid(abc_mshrs_16_io_sinkd_valid),
    .io_sinkd_bits_last(abc_mshrs_16_io_sinkd_bits_last),
    .io_sinkd_bits_opcode(abc_mshrs_16_io_sinkd_bits_opcode),
    .io_sinkd_bits_param(abc_mshrs_16_io_sinkd_bits_param),
    .io_sinkd_bits_sink(abc_mshrs_16_io_sinkd_bits_sink),
    .io_sinkd_bits_denied(abc_mshrs_16_io_sinkd_bits_denied),
    .io_sinke_valid(abc_mshrs_16_io_sinke_valid),
    .io_nestedwb_set(abc_mshrs_16_io_nestedwb_set),
    .io_nestedwb_tag(abc_mshrs_16_io_nestedwb_tag),
    .io_nestedwb_b_toN(abc_mshrs_16_io_nestedwb_b_toN),
    .io_nestedwb_b_toB(abc_mshrs_16_io_nestedwb_b_toB),
    .io_nestedwb_b_clr_dirty(abc_mshrs_16_io_nestedwb_b_clr_dirty),
    .io_nestedwb_c_set_dirty(abc_mshrs_16_io_nestedwb_c_set_dirty)
  );
  MSHR abc_mshrs_17 ( // @[Scheduler.scala 69:46]
    .clock(abc_mshrs_17_clock),
    .reset(abc_mshrs_17_reset),
    .io_allocate_valid(abc_mshrs_17_io_allocate_valid),
    .io_allocate_bits_prio_0(abc_mshrs_17_io_allocate_bits_prio_0),
    .io_allocate_bits_prio_1(abc_mshrs_17_io_allocate_bits_prio_1),
    .io_allocate_bits_prio_2(abc_mshrs_17_io_allocate_bits_prio_2),
    .io_allocate_bits_opcode(abc_mshrs_17_io_allocate_bits_opcode),
    .io_allocate_bits_param(abc_mshrs_17_io_allocate_bits_param),
    .io_allocate_bits_size(abc_mshrs_17_io_allocate_bits_size),
    .io_allocate_bits_source(abc_mshrs_17_io_allocate_bits_source),
    .io_allocate_bits_tag(abc_mshrs_17_io_allocate_bits_tag),
    .io_allocate_bits_offset(abc_mshrs_17_io_allocate_bits_offset),
    .io_allocate_bits_put(abc_mshrs_17_io_allocate_bits_put),
    .io_allocate_bits_set(abc_mshrs_17_io_allocate_bits_set),
    .io_allocate_bits_repeat(abc_mshrs_17_io_allocate_bits_repeat),
    .io_directory_valid(abc_mshrs_17_io_directory_valid),
    .io_directory_bits_dirty(abc_mshrs_17_io_directory_bits_dirty),
    .io_directory_bits_state(abc_mshrs_17_io_directory_bits_state),
    .io_directory_bits_clients(abc_mshrs_17_io_directory_bits_clients),
    .io_directory_bits_tag(abc_mshrs_17_io_directory_bits_tag),
    .io_directory_bits_hit(abc_mshrs_17_io_directory_bits_hit),
    .io_directory_bits_way(abc_mshrs_17_io_directory_bits_way),
    .io_status_valid(abc_mshrs_17_io_status_valid),
    .io_status_bits_set(abc_mshrs_17_io_status_bits_set),
    .io_status_bits_tag(abc_mshrs_17_io_status_bits_tag),
    .io_status_bits_way(abc_mshrs_17_io_status_bits_way),
    .io_status_bits_blockB(abc_mshrs_17_io_status_bits_blockB),
    .io_status_bits_nestB(abc_mshrs_17_io_status_bits_nestB),
    .io_status_bits_blockC(abc_mshrs_17_io_status_bits_blockC),
    .io_status_bits_nestC(abc_mshrs_17_io_status_bits_nestC),
    .io_schedule_ready(abc_mshrs_17_io_schedule_ready),
    .io_schedule_valid(abc_mshrs_17_io_schedule_valid),
    .io_schedule_bits_a_valid(abc_mshrs_17_io_schedule_bits_a_valid),
    .io_schedule_bits_a_bits_tag(abc_mshrs_17_io_schedule_bits_a_bits_tag),
    .io_schedule_bits_a_bits_set(abc_mshrs_17_io_schedule_bits_a_bits_set),
    .io_schedule_bits_a_bits_param(abc_mshrs_17_io_schedule_bits_a_bits_param),
    .io_schedule_bits_a_bits_block(abc_mshrs_17_io_schedule_bits_a_bits_block),
    .io_schedule_bits_b_valid(abc_mshrs_17_io_schedule_bits_b_valid),
    .io_schedule_bits_b_bits_param(abc_mshrs_17_io_schedule_bits_b_bits_param),
    .io_schedule_bits_b_bits_tag(abc_mshrs_17_io_schedule_bits_b_bits_tag),
    .io_schedule_bits_b_bits_set(abc_mshrs_17_io_schedule_bits_b_bits_set),
    .io_schedule_bits_b_bits_clients(abc_mshrs_17_io_schedule_bits_b_bits_clients),
    .io_schedule_bits_c_valid(abc_mshrs_17_io_schedule_bits_c_valid),
    .io_schedule_bits_c_bits_opcode(abc_mshrs_17_io_schedule_bits_c_bits_opcode),
    .io_schedule_bits_c_bits_param(abc_mshrs_17_io_schedule_bits_c_bits_param),
    .io_schedule_bits_c_bits_tag(abc_mshrs_17_io_schedule_bits_c_bits_tag),
    .io_schedule_bits_c_bits_set(abc_mshrs_17_io_schedule_bits_c_bits_set),
    .io_schedule_bits_c_bits_way(abc_mshrs_17_io_schedule_bits_c_bits_way),
    .io_schedule_bits_c_bits_dirty(abc_mshrs_17_io_schedule_bits_c_bits_dirty),
    .io_schedule_bits_d_valid(abc_mshrs_17_io_schedule_bits_d_valid),
    .io_schedule_bits_d_bits_prio_0(abc_mshrs_17_io_schedule_bits_d_bits_prio_0),
    .io_schedule_bits_d_bits_prio_2(abc_mshrs_17_io_schedule_bits_d_bits_prio_2),
    .io_schedule_bits_d_bits_opcode(abc_mshrs_17_io_schedule_bits_d_bits_opcode),
    .io_schedule_bits_d_bits_param(abc_mshrs_17_io_schedule_bits_d_bits_param),
    .io_schedule_bits_d_bits_size(abc_mshrs_17_io_schedule_bits_d_bits_size),
    .io_schedule_bits_d_bits_source(abc_mshrs_17_io_schedule_bits_d_bits_source),
    .io_schedule_bits_d_bits_offset(abc_mshrs_17_io_schedule_bits_d_bits_offset),
    .io_schedule_bits_d_bits_put(abc_mshrs_17_io_schedule_bits_d_bits_put),
    .io_schedule_bits_d_bits_set(abc_mshrs_17_io_schedule_bits_d_bits_set),
    .io_schedule_bits_d_bits_way(abc_mshrs_17_io_schedule_bits_d_bits_way),
    .io_schedule_bits_d_bits_bad(abc_mshrs_17_io_schedule_bits_d_bits_bad),
    .io_schedule_bits_e_valid(abc_mshrs_17_io_schedule_bits_e_valid),
    .io_schedule_bits_e_bits_sink(abc_mshrs_17_io_schedule_bits_e_bits_sink),
    .io_schedule_bits_x_valid(abc_mshrs_17_io_schedule_bits_x_valid),
    .io_schedule_bits_dir_valid(abc_mshrs_17_io_schedule_bits_dir_valid),
    .io_schedule_bits_dir_bits_set(abc_mshrs_17_io_schedule_bits_dir_bits_set),
    .io_schedule_bits_dir_bits_way(abc_mshrs_17_io_schedule_bits_dir_bits_way),
    .io_schedule_bits_dir_bits_data_dirty(abc_mshrs_17_io_schedule_bits_dir_bits_data_dirty),
    .io_schedule_bits_dir_bits_data_state(abc_mshrs_17_io_schedule_bits_dir_bits_data_state),
    .io_schedule_bits_dir_bits_data_clients(abc_mshrs_17_io_schedule_bits_dir_bits_data_clients),
    .io_schedule_bits_dir_bits_data_tag(abc_mshrs_17_io_schedule_bits_dir_bits_data_tag),
    .io_schedule_bits_reload(abc_mshrs_17_io_schedule_bits_reload),
    .io_sinkc_valid(abc_mshrs_17_io_sinkc_valid),
    .io_sinkc_bits_last(abc_mshrs_17_io_sinkc_bits_last),
    .io_sinkc_bits_tag(abc_mshrs_17_io_sinkc_bits_tag),
    .io_sinkc_bits_source(abc_mshrs_17_io_sinkc_bits_source),
    .io_sinkc_bits_param(abc_mshrs_17_io_sinkc_bits_param),
    .io_sinkc_bits_data(abc_mshrs_17_io_sinkc_bits_data),
    .io_sinkd_valid(abc_mshrs_17_io_sinkd_valid),
    .io_sinkd_bits_last(abc_mshrs_17_io_sinkd_bits_last),
    .io_sinkd_bits_opcode(abc_mshrs_17_io_sinkd_bits_opcode),
    .io_sinkd_bits_param(abc_mshrs_17_io_sinkd_bits_param),
    .io_sinkd_bits_sink(abc_mshrs_17_io_sinkd_bits_sink),
    .io_sinkd_bits_denied(abc_mshrs_17_io_sinkd_bits_denied),
    .io_sinke_valid(abc_mshrs_17_io_sinke_valid),
    .io_nestedwb_set(abc_mshrs_17_io_nestedwb_set),
    .io_nestedwb_tag(abc_mshrs_17_io_nestedwb_tag),
    .io_nestedwb_b_toN(abc_mshrs_17_io_nestedwb_b_toN),
    .io_nestedwb_b_toB(abc_mshrs_17_io_nestedwb_b_toB),
    .io_nestedwb_b_clr_dirty(abc_mshrs_17_io_nestedwb_b_clr_dirty),
    .io_nestedwb_c_set_dirty(abc_mshrs_17_io_nestedwb_c_set_dirty)
  );
  MSHR abc_mshrs_18 ( // @[Scheduler.scala 69:46]
    .clock(abc_mshrs_18_clock),
    .reset(abc_mshrs_18_reset),
    .io_allocate_valid(abc_mshrs_18_io_allocate_valid),
    .io_allocate_bits_prio_0(abc_mshrs_18_io_allocate_bits_prio_0),
    .io_allocate_bits_prio_1(abc_mshrs_18_io_allocate_bits_prio_1),
    .io_allocate_bits_prio_2(abc_mshrs_18_io_allocate_bits_prio_2),
    .io_allocate_bits_opcode(abc_mshrs_18_io_allocate_bits_opcode),
    .io_allocate_bits_param(abc_mshrs_18_io_allocate_bits_param),
    .io_allocate_bits_size(abc_mshrs_18_io_allocate_bits_size),
    .io_allocate_bits_source(abc_mshrs_18_io_allocate_bits_source),
    .io_allocate_bits_tag(abc_mshrs_18_io_allocate_bits_tag),
    .io_allocate_bits_offset(abc_mshrs_18_io_allocate_bits_offset),
    .io_allocate_bits_put(abc_mshrs_18_io_allocate_bits_put),
    .io_allocate_bits_set(abc_mshrs_18_io_allocate_bits_set),
    .io_allocate_bits_repeat(abc_mshrs_18_io_allocate_bits_repeat),
    .io_directory_valid(abc_mshrs_18_io_directory_valid),
    .io_directory_bits_dirty(abc_mshrs_18_io_directory_bits_dirty),
    .io_directory_bits_state(abc_mshrs_18_io_directory_bits_state),
    .io_directory_bits_clients(abc_mshrs_18_io_directory_bits_clients),
    .io_directory_bits_tag(abc_mshrs_18_io_directory_bits_tag),
    .io_directory_bits_hit(abc_mshrs_18_io_directory_bits_hit),
    .io_directory_bits_way(abc_mshrs_18_io_directory_bits_way),
    .io_status_valid(abc_mshrs_18_io_status_valid),
    .io_status_bits_set(abc_mshrs_18_io_status_bits_set),
    .io_status_bits_tag(abc_mshrs_18_io_status_bits_tag),
    .io_status_bits_way(abc_mshrs_18_io_status_bits_way),
    .io_status_bits_blockB(abc_mshrs_18_io_status_bits_blockB),
    .io_status_bits_nestB(abc_mshrs_18_io_status_bits_nestB),
    .io_status_bits_blockC(abc_mshrs_18_io_status_bits_blockC),
    .io_status_bits_nestC(abc_mshrs_18_io_status_bits_nestC),
    .io_schedule_ready(abc_mshrs_18_io_schedule_ready),
    .io_schedule_valid(abc_mshrs_18_io_schedule_valid),
    .io_schedule_bits_a_valid(abc_mshrs_18_io_schedule_bits_a_valid),
    .io_schedule_bits_a_bits_tag(abc_mshrs_18_io_schedule_bits_a_bits_tag),
    .io_schedule_bits_a_bits_set(abc_mshrs_18_io_schedule_bits_a_bits_set),
    .io_schedule_bits_a_bits_param(abc_mshrs_18_io_schedule_bits_a_bits_param),
    .io_schedule_bits_a_bits_block(abc_mshrs_18_io_schedule_bits_a_bits_block),
    .io_schedule_bits_b_valid(abc_mshrs_18_io_schedule_bits_b_valid),
    .io_schedule_bits_b_bits_param(abc_mshrs_18_io_schedule_bits_b_bits_param),
    .io_schedule_bits_b_bits_tag(abc_mshrs_18_io_schedule_bits_b_bits_tag),
    .io_schedule_bits_b_bits_set(abc_mshrs_18_io_schedule_bits_b_bits_set),
    .io_schedule_bits_b_bits_clients(abc_mshrs_18_io_schedule_bits_b_bits_clients),
    .io_schedule_bits_c_valid(abc_mshrs_18_io_schedule_bits_c_valid),
    .io_schedule_bits_c_bits_opcode(abc_mshrs_18_io_schedule_bits_c_bits_opcode),
    .io_schedule_bits_c_bits_param(abc_mshrs_18_io_schedule_bits_c_bits_param),
    .io_schedule_bits_c_bits_tag(abc_mshrs_18_io_schedule_bits_c_bits_tag),
    .io_schedule_bits_c_bits_set(abc_mshrs_18_io_schedule_bits_c_bits_set),
    .io_schedule_bits_c_bits_way(abc_mshrs_18_io_schedule_bits_c_bits_way),
    .io_schedule_bits_c_bits_dirty(abc_mshrs_18_io_schedule_bits_c_bits_dirty),
    .io_schedule_bits_d_valid(abc_mshrs_18_io_schedule_bits_d_valid),
    .io_schedule_bits_d_bits_prio_0(abc_mshrs_18_io_schedule_bits_d_bits_prio_0),
    .io_schedule_bits_d_bits_prio_2(abc_mshrs_18_io_schedule_bits_d_bits_prio_2),
    .io_schedule_bits_d_bits_opcode(abc_mshrs_18_io_schedule_bits_d_bits_opcode),
    .io_schedule_bits_d_bits_param(abc_mshrs_18_io_schedule_bits_d_bits_param),
    .io_schedule_bits_d_bits_size(abc_mshrs_18_io_schedule_bits_d_bits_size),
    .io_schedule_bits_d_bits_source(abc_mshrs_18_io_schedule_bits_d_bits_source),
    .io_schedule_bits_d_bits_offset(abc_mshrs_18_io_schedule_bits_d_bits_offset),
    .io_schedule_bits_d_bits_put(abc_mshrs_18_io_schedule_bits_d_bits_put),
    .io_schedule_bits_d_bits_set(abc_mshrs_18_io_schedule_bits_d_bits_set),
    .io_schedule_bits_d_bits_way(abc_mshrs_18_io_schedule_bits_d_bits_way),
    .io_schedule_bits_d_bits_bad(abc_mshrs_18_io_schedule_bits_d_bits_bad),
    .io_schedule_bits_e_valid(abc_mshrs_18_io_schedule_bits_e_valid),
    .io_schedule_bits_e_bits_sink(abc_mshrs_18_io_schedule_bits_e_bits_sink),
    .io_schedule_bits_x_valid(abc_mshrs_18_io_schedule_bits_x_valid),
    .io_schedule_bits_dir_valid(abc_mshrs_18_io_schedule_bits_dir_valid),
    .io_schedule_bits_dir_bits_set(abc_mshrs_18_io_schedule_bits_dir_bits_set),
    .io_schedule_bits_dir_bits_way(abc_mshrs_18_io_schedule_bits_dir_bits_way),
    .io_schedule_bits_dir_bits_data_dirty(abc_mshrs_18_io_schedule_bits_dir_bits_data_dirty),
    .io_schedule_bits_dir_bits_data_state(abc_mshrs_18_io_schedule_bits_dir_bits_data_state),
    .io_schedule_bits_dir_bits_data_clients(abc_mshrs_18_io_schedule_bits_dir_bits_data_clients),
    .io_schedule_bits_dir_bits_data_tag(abc_mshrs_18_io_schedule_bits_dir_bits_data_tag),
    .io_schedule_bits_reload(abc_mshrs_18_io_schedule_bits_reload),
    .io_sinkc_valid(abc_mshrs_18_io_sinkc_valid),
    .io_sinkc_bits_last(abc_mshrs_18_io_sinkc_bits_last),
    .io_sinkc_bits_tag(abc_mshrs_18_io_sinkc_bits_tag),
    .io_sinkc_bits_source(abc_mshrs_18_io_sinkc_bits_source),
    .io_sinkc_bits_param(abc_mshrs_18_io_sinkc_bits_param),
    .io_sinkc_bits_data(abc_mshrs_18_io_sinkc_bits_data),
    .io_sinkd_valid(abc_mshrs_18_io_sinkd_valid),
    .io_sinkd_bits_last(abc_mshrs_18_io_sinkd_bits_last),
    .io_sinkd_bits_opcode(abc_mshrs_18_io_sinkd_bits_opcode),
    .io_sinkd_bits_param(abc_mshrs_18_io_sinkd_bits_param),
    .io_sinkd_bits_sink(abc_mshrs_18_io_sinkd_bits_sink),
    .io_sinkd_bits_denied(abc_mshrs_18_io_sinkd_bits_denied),
    .io_sinke_valid(abc_mshrs_18_io_sinke_valid),
    .io_nestedwb_set(abc_mshrs_18_io_nestedwb_set),
    .io_nestedwb_tag(abc_mshrs_18_io_nestedwb_tag),
    .io_nestedwb_b_toN(abc_mshrs_18_io_nestedwb_b_toN),
    .io_nestedwb_b_toB(abc_mshrs_18_io_nestedwb_b_toB),
    .io_nestedwb_b_clr_dirty(abc_mshrs_18_io_nestedwb_b_clr_dirty),
    .io_nestedwb_c_set_dirty(abc_mshrs_18_io_nestedwb_c_set_dirty)
  );
  MSHR abc_mshrs_19 ( // @[Scheduler.scala 69:46]
    .clock(abc_mshrs_19_clock),
    .reset(abc_mshrs_19_reset),
    .io_allocate_valid(abc_mshrs_19_io_allocate_valid),
    .io_allocate_bits_prio_0(abc_mshrs_19_io_allocate_bits_prio_0),
    .io_allocate_bits_prio_1(abc_mshrs_19_io_allocate_bits_prio_1),
    .io_allocate_bits_prio_2(abc_mshrs_19_io_allocate_bits_prio_2),
    .io_allocate_bits_opcode(abc_mshrs_19_io_allocate_bits_opcode),
    .io_allocate_bits_param(abc_mshrs_19_io_allocate_bits_param),
    .io_allocate_bits_size(abc_mshrs_19_io_allocate_bits_size),
    .io_allocate_bits_source(abc_mshrs_19_io_allocate_bits_source),
    .io_allocate_bits_tag(abc_mshrs_19_io_allocate_bits_tag),
    .io_allocate_bits_offset(abc_mshrs_19_io_allocate_bits_offset),
    .io_allocate_bits_put(abc_mshrs_19_io_allocate_bits_put),
    .io_allocate_bits_set(abc_mshrs_19_io_allocate_bits_set),
    .io_allocate_bits_repeat(abc_mshrs_19_io_allocate_bits_repeat),
    .io_directory_valid(abc_mshrs_19_io_directory_valid),
    .io_directory_bits_dirty(abc_mshrs_19_io_directory_bits_dirty),
    .io_directory_bits_state(abc_mshrs_19_io_directory_bits_state),
    .io_directory_bits_clients(abc_mshrs_19_io_directory_bits_clients),
    .io_directory_bits_tag(abc_mshrs_19_io_directory_bits_tag),
    .io_directory_bits_hit(abc_mshrs_19_io_directory_bits_hit),
    .io_directory_bits_way(abc_mshrs_19_io_directory_bits_way),
    .io_status_valid(abc_mshrs_19_io_status_valid),
    .io_status_bits_set(abc_mshrs_19_io_status_bits_set),
    .io_status_bits_tag(abc_mshrs_19_io_status_bits_tag),
    .io_status_bits_way(abc_mshrs_19_io_status_bits_way),
    .io_status_bits_blockB(abc_mshrs_19_io_status_bits_blockB),
    .io_status_bits_nestB(abc_mshrs_19_io_status_bits_nestB),
    .io_status_bits_blockC(abc_mshrs_19_io_status_bits_blockC),
    .io_status_bits_nestC(abc_mshrs_19_io_status_bits_nestC),
    .io_schedule_ready(abc_mshrs_19_io_schedule_ready),
    .io_schedule_valid(abc_mshrs_19_io_schedule_valid),
    .io_schedule_bits_a_valid(abc_mshrs_19_io_schedule_bits_a_valid),
    .io_schedule_bits_a_bits_tag(abc_mshrs_19_io_schedule_bits_a_bits_tag),
    .io_schedule_bits_a_bits_set(abc_mshrs_19_io_schedule_bits_a_bits_set),
    .io_schedule_bits_a_bits_param(abc_mshrs_19_io_schedule_bits_a_bits_param),
    .io_schedule_bits_a_bits_block(abc_mshrs_19_io_schedule_bits_a_bits_block),
    .io_schedule_bits_b_valid(abc_mshrs_19_io_schedule_bits_b_valid),
    .io_schedule_bits_b_bits_param(abc_mshrs_19_io_schedule_bits_b_bits_param),
    .io_schedule_bits_b_bits_tag(abc_mshrs_19_io_schedule_bits_b_bits_tag),
    .io_schedule_bits_b_bits_set(abc_mshrs_19_io_schedule_bits_b_bits_set),
    .io_schedule_bits_b_bits_clients(abc_mshrs_19_io_schedule_bits_b_bits_clients),
    .io_schedule_bits_c_valid(abc_mshrs_19_io_schedule_bits_c_valid),
    .io_schedule_bits_c_bits_opcode(abc_mshrs_19_io_schedule_bits_c_bits_opcode),
    .io_schedule_bits_c_bits_param(abc_mshrs_19_io_schedule_bits_c_bits_param),
    .io_schedule_bits_c_bits_tag(abc_mshrs_19_io_schedule_bits_c_bits_tag),
    .io_schedule_bits_c_bits_set(abc_mshrs_19_io_schedule_bits_c_bits_set),
    .io_schedule_bits_c_bits_way(abc_mshrs_19_io_schedule_bits_c_bits_way),
    .io_schedule_bits_c_bits_dirty(abc_mshrs_19_io_schedule_bits_c_bits_dirty),
    .io_schedule_bits_d_valid(abc_mshrs_19_io_schedule_bits_d_valid),
    .io_schedule_bits_d_bits_prio_0(abc_mshrs_19_io_schedule_bits_d_bits_prio_0),
    .io_schedule_bits_d_bits_prio_2(abc_mshrs_19_io_schedule_bits_d_bits_prio_2),
    .io_schedule_bits_d_bits_opcode(abc_mshrs_19_io_schedule_bits_d_bits_opcode),
    .io_schedule_bits_d_bits_param(abc_mshrs_19_io_schedule_bits_d_bits_param),
    .io_schedule_bits_d_bits_size(abc_mshrs_19_io_schedule_bits_d_bits_size),
    .io_schedule_bits_d_bits_source(abc_mshrs_19_io_schedule_bits_d_bits_source),
    .io_schedule_bits_d_bits_offset(abc_mshrs_19_io_schedule_bits_d_bits_offset),
    .io_schedule_bits_d_bits_put(abc_mshrs_19_io_schedule_bits_d_bits_put),
    .io_schedule_bits_d_bits_set(abc_mshrs_19_io_schedule_bits_d_bits_set),
    .io_schedule_bits_d_bits_way(abc_mshrs_19_io_schedule_bits_d_bits_way),
    .io_schedule_bits_d_bits_bad(abc_mshrs_19_io_schedule_bits_d_bits_bad),
    .io_schedule_bits_e_valid(abc_mshrs_19_io_schedule_bits_e_valid),
    .io_schedule_bits_e_bits_sink(abc_mshrs_19_io_schedule_bits_e_bits_sink),
    .io_schedule_bits_x_valid(abc_mshrs_19_io_schedule_bits_x_valid),
    .io_schedule_bits_dir_valid(abc_mshrs_19_io_schedule_bits_dir_valid),
    .io_schedule_bits_dir_bits_set(abc_mshrs_19_io_schedule_bits_dir_bits_set),
    .io_schedule_bits_dir_bits_way(abc_mshrs_19_io_schedule_bits_dir_bits_way),
    .io_schedule_bits_dir_bits_data_dirty(abc_mshrs_19_io_schedule_bits_dir_bits_data_dirty),
    .io_schedule_bits_dir_bits_data_state(abc_mshrs_19_io_schedule_bits_dir_bits_data_state),
    .io_schedule_bits_dir_bits_data_clients(abc_mshrs_19_io_schedule_bits_dir_bits_data_clients),
    .io_schedule_bits_dir_bits_data_tag(abc_mshrs_19_io_schedule_bits_dir_bits_data_tag),
    .io_schedule_bits_reload(abc_mshrs_19_io_schedule_bits_reload),
    .io_sinkc_valid(abc_mshrs_19_io_sinkc_valid),
    .io_sinkc_bits_last(abc_mshrs_19_io_sinkc_bits_last),
    .io_sinkc_bits_tag(abc_mshrs_19_io_sinkc_bits_tag),
    .io_sinkc_bits_source(abc_mshrs_19_io_sinkc_bits_source),
    .io_sinkc_bits_param(abc_mshrs_19_io_sinkc_bits_param),
    .io_sinkc_bits_data(abc_mshrs_19_io_sinkc_bits_data),
    .io_sinkd_valid(abc_mshrs_19_io_sinkd_valid),
    .io_sinkd_bits_last(abc_mshrs_19_io_sinkd_bits_last),
    .io_sinkd_bits_opcode(abc_mshrs_19_io_sinkd_bits_opcode),
    .io_sinkd_bits_param(abc_mshrs_19_io_sinkd_bits_param),
    .io_sinkd_bits_sink(abc_mshrs_19_io_sinkd_bits_sink),
    .io_sinkd_bits_denied(abc_mshrs_19_io_sinkd_bits_denied),
    .io_sinke_valid(abc_mshrs_19_io_sinke_valid),
    .io_nestedwb_set(abc_mshrs_19_io_nestedwb_set),
    .io_nestedwb_tag(abc_mshrs_19_io_nestedwb_tag),
    .io_nestedwb_b_toN(abc_mshrs_19_io_nestedwb_b_toN),
    .io_nestedwb_b_toB(abc_mshrs_19_io_nestedwb_b_toB),
    .io_nestedwb_b_clr_dirty(abc_mshrs_19_io_nestedwb_b_clr_dirty),
    .io_nestedwb_c_set_dirty(abc_mshrs_19_io_nestedwb_c_set_dirty)
  );
  MSHR bc_mshr ( // @[Scheduler.scala 69:46]
    .clock(bc_mshr_clock),
    .reset(bc_mshr_reset),
    .io_allocate_valid(bc_mshr_io_allocate_valid),
    .io_allocate_bits_prio_0(bc_mshr_io_allocate_bits_prio_0),
    .io_allocate_bits_prio_1(bc_mshr_io_allocate_bits_prio_1),
    .io_allocate_bits_prio_2(bc_mshr_io_allocate_bits_prio_2),
    .io_allocate_bits_opcode(bc_mshr_io_allocate_bits_opcode),
    .io_allocate_bits_param(bc_mshr_io_allocate_bits_param),
    .io_allocate_bits_size(bc_mshr_io_allocate_bits_size),
    .io_allocate_bits_source(bc_mshr_io_allocate_bits_source),
    .io_allocate_bits_tag(bc_mshr_io_allocate_bits_tag),
    .io_allocate_bits_offset(bc_mshr_io_allocate_bits_offset),
    .io_allocate_bits_put(bc_mshr_io_allocate_bits_put),
    .io_allocate_bits_set(bc_mshr_io_allocate_bits_set),
    .io_allocate_bits_repeat(bc_mshr_io_allocate_bits_repeat),
    .io_directory_valid(bc_mshr_io_directory_valid),
    .io_directory_bits_dirty(bc_mshr_io_directory_bits_dirty),
    .io_directory_bits_state(bc_mshr_io_directory_bits_state),
    .io_directory_bits_clients(bc_mshr_io_directory_bits_clients),
    .io_directory_bits_tag(bc_mshr_io_directory_bits_tag),
    .io_directory_bits_hit(bc_mshr_io_directory_bits_hit),
    .io_directory_bits_way(bc_mshr_io_directory_bits_way),
    .io_status_valid(bc_mshr_io_status_valid),
    .io_status_bits_set(bc_mshr_io_status_bits_set),
    .io_status_bits_tag(bc_mshr_io_status_bits_tag),
    .io_status_bits_way(bc_mshr_io_status_bits_way),
    .io_status_bits_blockB(bc_mshr_io_status_bits_blockB),
    .io_status_bits_nestB(bc_mshr_io_status_bits_nestB),
    .io_status_bits_blockC(bc_mshr_io_status_bits_blockC),
    .io_status_bits_nestC(bc_mshr_io_status_bits_nestC),
    .io_schedule_ready(bc_mshr_io_schedule_ready),
    .io_schedule_valid(bc_mshr_io_schedule_valid),
    .io_schedule_bits_a_valid(bc_mshr_io_schedule_bits_a_valid),
    .io_schedule_bits_a_bits_tag(bc_mshr_io_schedule_bits_a_bits_tag),
    .io_schedule_bits_a_bits_set(bc_mshr_io_schedule_bits_a_bits_set),
    .io_schedule_bits_a_bits_param(bc_mshr_io_schedule_bits_a_bits_param),
    .io_schedule_bits_a_bits_block(bc_mshr_io_schedule_bits_a_bits_block),
    .io_schedule_bits_b_valid(bc_mshr_io_schedule_bits_b_valid),
    .io_schedule_bits_b_bits_param(bc_mshr_io_schedule_bits_b_bits_param),
    .io_schedule_bits_b_bits_tag(bc_mshr_io_schedule_bits_b_bits_tag),
    .io_schedule_bits_b_bits_set(bc_mshr_io_schedule_bits_b_bits_set),
    .io_schedule_bits_b_bits_clients(bc_mshr_io_schedule_bits_b_bits_clients),
    .io_schedule_bits_c_valid(bc_mshr_io_schedule_bits_c_valid),
    .io_schedule_bits_c_bits_opcode(bc_mshr_io_schedule_bits_c_bits_opcode),
    .io_schedule_bits_c_bits_param(bc_mshr_io_schedule_bits_c_bits_param),
    .io_schedule_bits_c_bits_tag(bc_mshr_io_schedule_bits_c_bits_tag),
    .io_schedule_bits_c_bits_set(bc_mshr_io_schedule_bits_c_bits_set),
    .io_schedule_bits_c_bits_way(bc_mshr_io_schedule_bits_c_bits_way),
    .io_schedule_bits_c_bits_dirty(bc_mshr_io_schedule_bits_c_bits_dirty),
    .io_schedule_bits_d_valid(bc_mshr_io_schedule_bits_d_valid),
    .io_schedule_bits_d_bits_prio_0(bc_mshr_io_schedule_bits_d_bits_prio_0),
    .io_schedule_bits_d_bits_prio_2(bc_mshr_io_schedule_bits_d_bits_prio_2),
    .io_schedule_bits_d_bits_opcode(bc_mshr_io_schedule_bits_d_bits_opcode),
    .io_schedule_bits_d_bits_param(bc_mshr_io_schedule_bits_d_bits_param),
    .io_schedule_bits_d_bits_size(bc_mshr_io_schedule_bits_d_bits_size),
    .io_schedule_bits_d_bits_source(bc_mshr_io_schedule_bits_d_bits_source),
    .io_schedule_bits_d_bits_offset(bc_mshr_io_schedule_bits_d_bits_offset),
    .io_schedule_bits_d_bits_put(bc_mshr_io_schedule_bits_d_bits_put),
    .io_schedule_bits_d_bits_set(bc_mshr_io_schedule_bits_d_bits_set),
    .io_schedule_bits_d_bits_way(bc_mshr_io_schedule_bits_d_bits_way),
    .io_schedule_bits_d_bits_bad(bc_mshr_io_schedule_bits_d_bits_bad),
    .io_schedule_bits_e_valid(bc_mshr_io_schedule_bits_e_valid),
    .io_schedule_bits_e_bits_sink(bc_mshr_io_schedule_bits_e_bits_sink),
    .io_schedule_bits_x_valid(bc_mshr_io_schedule_bits_x_valid),
    .io_schedule_bits_dir_valid(bc_mshr_io_schedule_bits_dir_valid),
    .io_schedule_bits_dir_bits_set(bc_mshr_io_schedule_bits_dir_bits_set),
    .io_schedule_bits_dir_bits_way(bc_mshr_io_schedule_bits_dir_bits_way),
    .io_schedule_bits_dir_bits_data_dirty(bc_mshr_io_schedule_bits_dir_bits_data_dirty),
    .io_schedule_bits_dir_bits_data_state(bc_mshr_io_schedule_bits_dir_bits_data_state),
    .io_schedule_bits_dir_bits_data_clients(bc_mshr_io_schedule_bits_dir_bits_data_clients),
    .io_schedule_bits_dir_bits_data_tag(bc_mshr_io_schedule_bits_dir_bits_data_tag),
    .io_schedule_bits_reload(bc_mshr_io_schedule_bits_reload),
    .io_sinkc_valid(bc_mshr_io_sinkc_valid),
    .io_sinkc_bits_last(bc_mshr_io_sinkc_bits_last),
    .io_sinkc_bits_tag(bc_mshr_io_sinkc_bits_tag),
    .io_sinkc_bits_source(bc_mshr_io_sinkc_bits_source),
    .io_sinkc_bits_param(bc_mshr_io_sinkc_bits_param),
    .io_sinkc_bits_data(bc_mshr_io_sinkc_bits_data),
    .io_sinkd_valid(bc_mshr_io_sinkd_valid),
    .io_sinkd_bits_last(bc_mshr_io_sinkd_bits_last),
    .io_sinkd_bits_opcode(bc_mshr_io_sinkd_bits_opcode),
    .io_sinkd_bits_param(bc_mshr_io_sinkd_bits_param),
    .io_sinkd_bits_sink(bc_mshr_io_sinkd_bits_sink),
    .io_sinkd_bits_denied(bc_mshr_io_sinkd_bits_denied),
    .io_sinke_valid(bc_mshr_io_sinke_valid),
    .io_nestedwb_set(bc_mshr_io_nestedwb_set),
    .io_nestedwb_tag(bc_mshr_io_nestedwb_tag),
    .io_nestedwb_b_toN(bc_mshr_io_nestedwb_b_toN),
    .io_nestedwb_b_toB(bc_mshr_io_nestedwb_b_toB),
    .io_nestedwb_b_clr_dirty(bc_mshr_io_nestedwb_b_clr_dirty),
    .io_nestedwb_c_set_dirty(bc_mshr_io_nestedwb_c_set_dirty)
  );
  MSHR c_mshr ( // @[Scheduler.scala 69:46]
    .clock(c_mshr_clock),
    .reset(c_mshr_reset),
    .io_allocate_valid(c_mshr_io_allocate_valid),
    .io_allocate_bits_prio_0(c_mshr_io_allocate_bits_prio_0),
    .io_allocate_bits_prio_1(c_mshr_io_allocate_bits_prio_1),
    .io_allocate_bits_prio_2(c_mshr_io_allocate_bits_prio_2),
    .io_allocate_bits_opcode(c_mshr_io_allocate_bits_opcode),
    .io_allocate_bits_param(c_mshr_io_allocate_bits_param),
    .io_allocate_bits_size(c_mshr_io_allocate_bits_size),
    .io_allocate_bits_source(c_mshr_io_allocate_bits_source),
    .io_allocate_bits_tag(c_mshr_io_allocate_bits_tag),
    .io_allocate_bits_offset(c_mshr_io_allocate_bits_offset),
    .io_allocate_bits_put(c_mshr_io_allocate_bits_put),
    .io_allocate_bits_set(c_mshr_io_allocate_bits_set),
    .io_allocate_bits_repeat(c_mshr_io_allocate_bits_repeat),
    .io_directory_valid(c_mshr_io_directory_valid),
    .io_directory_bits_dirty(c_mshr_io_directory_bits_dirty),
    .io_directory_bits_state(c_mshr_io_directory_bits_state),
    .io_directory_bits_clients(c_mshr_io_directory_bits_clients),
    .io_directory_bits_tag(c_mshr_io_directory_bits_tag),
    .io_directory_bits_hit(c_mshr_io_directory_bits_hit),
    .io_directory_bits_way(c_mshr_io_directory_bits_way),
    .io_status_valid(c_mshr_io_status_valid),
    .io_status_bits_set(c_mshr_io_status_bits_set),
    .io_status_bits_tag(c_mshr_io_status_bits_tag),
    .io_status_bits_way(c_mshr_io_status_bits_way),
    .io_status_bits_blockB(c_mshr_io_status_bits_blockB),
    .io_status_bits_nestB(c_mshr_io_status_bits_nestB),
    .io_status_bits_blockC(c_mshr_io_status_bits_blockC),
    .io_status_bits_nestC(c_mshr_io_status_bits_nestC),
    .io_schedule_ready(c_mshr_io_schedule_ready),
    .io_schedule_valid(c_mshr_io_schedule_valid),
    .io_schedule_bits_a_valid(c_mshr_io_schedule_bits_a_valid),
    .io_schedule_bits_a_bits_tag(c_mshr_io_schedule_bits_a_bits_tag),
    .io_schedule_bits_a_bits_set(c_mshr_io_schedule_bits_a_bits_set),
    .io_schedule_bits_a_bits_param(c_mshr_io_schedule_bits_a_bits_param),
    .io_schedule_bits_a_bits_block(c_mshr_io_schedule_bits_a_bits_block),
    .io_schedule_bits_b_valid(c_mshr_io_schedule_bits_b_valid),
    .io_schedule_bits_b_bits_param(c_mshr_io_schedule_bits_b_bits_param),
    .io_schedule_bits_b_bits_tag(c_mshr_io_schedule_bits_b_bits_tag),
    .io_schedule_bits_b_bits_set(c_mshr_io_schedule_bits_b_bits_set),
    .io_schedule_bits_b_bits_clients(c_mshr_io_schedule_bits_b_bits_clients),
    .io_schedule_bits_c_valid(c_mshr_io_schedule_bits_c_valid),
    .io_schedule_bits_c_bits_opcode(c_mshr_io_schedule_bits_c_bits_opcode),
    .io_schedule_bits_c_bits_param(c_mshr_io_schedule_bits_c_bits_param),
    .io_schedule_bits_c_bits_tag(c_mshr_io_schedule_bits_c_bits_tag),
    .io_schedule_bits_c_bits_set(c_mshr_io_schedule_bits_c_bits_set),
    .io_schedule_bits_c_bits_way(c_mshr_io_schedule_bits_c_bits_way),
    .io_schedule_bits_c_bits_dirty(c_mshr_io_schedule_bits_c_bits_dirty),
    .io_schedule_bits_d_valid(c_mshr_io_schedule_bits_d_valid),
    .io_schedule_bits_d_bits_prio_0(c_mshr_io_schedule_bits_d_bits_prio_0),
    .io_schedule_bits_d_bits_prio_2(c_mshr_io_schedule_bits_d_bits_prio_2),
    .io_schedule_bits_d_bits_opcode(c_mshr_io_schedule_bits_d_bits_opcode),
    .io_schedule_bits_d_bits_param(c_mshr_io_schedule_bits_d_bits_param),
    .io_schedule_bits_d_bits_size(c_mshr_io_schedule_bits_d_bits_size),
    .io_schedule_bits_d_bits_source(c_mshr_io_schedule_bits_d_bits_source),
    .io_schedule_bits_d_bits_offset(c_mshr_io_schedule_bits_d_bits_offset),
    .io_schedule_bits_d_bits_put(c_mshr_io_schedule_bits_d_bits_put),
    .io_schedule_bits_d_bits_set(c_mshr_io_schedule_bits_d_bits_set),
    .io_schedule_bits_d_bits_way(c_mshr_io_schedule_bits_d_bits_way),
    .io_schedule_bits_d_bits_bad(c_mshr_io_schedule_bits_d_bits_bad),
    .io_schedule_bits_e_valid(c_mshr_io_schedule_bits_e_valid),
    .io_schedule_bits_e_bits_sink(c_mshr_io_schedule_bits_e_bits_sink),
    .io_schedule_bits_x_valid(c_mshr_io_schedule_bits_x_valid),
    .io_schedule_bits_dir_valid(c_mshr_io_schedule_bits_dir_valid),
    .io_schedule_bits_dir_bits_set(c_mshr_io_schedule_bits_dir_bits_set),
    .io_schedule_bits_dir_bits_way(c_mshr_io_schedule_bits_dir_bits_way),
    .io_schedule_bits_dir_bits_data_dirty(c_mshr_io_schedule_bits_dir_bits_data_dirty),
    .io_schedule_bits_dir_bits_data_state(c_mshr_io_schedule_bits_dir_bits_data_state),
    .io_schedule_bits_dir_bits_data_clients(c_mshr_io_schedule_bits_dir_bits_data_clients),
    .io_schedule_bits_dir_bits_data_tag(c_mshr_io_schedule_bits_dir_bits_data_tag),
    .io_schedule_bits_reload(c_mshr_io_schedule_bits_reload),
    .io_sinkc_valid(c_mshr_io_sinkc_valid),
    .io_sinkc_bits_last(c_mshr_io_sinkc_bits_last),
    .io_sinkc_bits_tag(c_mshr_io_sinkc_bits_tag),
    .io_sinkc_bits_source(c_mshr_io_sinkc_bits_source),
    .io_sinkc_bits_param(c_mshr_io_sinkc_bits_param),
    .io_sinkc_bits_data(c_mshr_io_sinkc_bits_data),
    .io_sinkd_valid(c_mshr_io_sinkd_valid),
    .io_sinkd_bits_last(c_mshr_io_sinkd_bits_last),
    .io_sinkd_bits_opcode(c_mshr_io_sinkd_bits_opcode),
    .io_sinkd_bits_param(c_mshr_io_sinkd_bits_param),
    .io_sinkd_bits_sink(c_mshr_io_sinkd_bits_sink),
    .io_sinkd_bits_denied(c_mshr_io_sinkd_bits_denied),
    .io_sinke_valid(c_mshr_io_sinke_valid),
    .io_nestedwb_set(c_mshr_io_nestedwb_set),
    .io_nestedwb_tag(c_mshr_io_nestedwb_tag),
    .io_nestedwb_b_toN(c_mshr_io_nestedwb_b_toN),
    .io_nestedwb_b_toB(c_mshr_io_nestedwb_b_toB),
    .io_nestedwb_b_clr_dirty(c_mshr_io_nestedwb_b_clr_dirty),
    .io_nestedwb_c_set_dirty(c_mshr_io_nestedwb_c_set_dirty)
  );
  assign io_in_a_ready = sinkA_io_a_ready; // @[Scheduler.scala 58:14]
  assign io_in_b_valid = sourceB_io_b_valid; // @[Scheduler.scala 48:11]
  assign io_in_b_bits_param = sourceB_io_b_bits_param; // @[Scheduler.scala 48:11]
  assign io_in_b_bits_address = sourceB_io_b_bits_address; // @[Scheduler.scala 48:11]
  assign io_in_c_ready = sinkC_io_c_ready; // @[Scheduler.scala 59:14]
  assign io_in_d_valid = sourceD_io_d_valid; // @[Scheduler.scala 49:11]
  assign io_in_d_bits_opcode = sourceD_io_d_bits_opcode; // @[Scheduler.scala 49:11]
  assign io_in_d_bits_param = sourceD_io_d_bits_param; // @[Scheduler.scala 49:11]
  assign io_in_d_bits_size = sourceD_io_d_bits_size; // @[Scheduler.scala 49:11]
  assign io_in_d_bits_source = sourceD_io_d_bits_source; // @[Scheduler.scala 49:11]
  assign io_in_d_bits_sink = sourceD_io_d_bits_sink; // @[Scheduler.scala 49:11]
  assign io_in_d_bits_denied = sourceD_io_d_bits_denied; // @[Scheduler.scala 49:11]
  assign io_in_d_bits_data = sourceD_io_d_bits_data; // @[Scheduler.scala 49:11]
  assign io_in_d_bits_corrupt = sourceD_io_d_bits_corrupt; // @[Scheduler.scala 49:11]
  assign io_out_a_valid = sourceA_io_a_valid; // @[Scheduler.scala 45:12]
  assign io_out_a_bits_opcode = sourceA_io_a_bits_opcode; // @[Scheduler.scala 45:12]
  assign io_out_a_bits_param = sourceA_io_a_bits_param; // @[Scheduler.scala 45:12]
  assign io_out_a_bits_size = sourceA_io_a_bits_size; // @[Scheduler.scala 45:12]
  assign io_out_a_bits_source = sourceA_io_a_bits_source; // @[Scheduler.scala 45:12]
  assign io_out_a_bits_address = sourceA_io_a_bits_address; // @[Scheduler.scala 45:12]
  assign io_out_a_bits_mask = sourceA_io_a_bits_mask; // @[Scheduler.scala 45:12]
  assign io_out_a_bits_data = sourceA_io_a_bits_data; // @[Scheduler.scala 45:12]
  assign io_out_a_bits_corrupt = sourceA_io_a_bits_corrupt; // @[Scheduler.scala 45:12]
  assign io_out_c_valid = sourceC_io_c_valid; // @[Scheduler.scala 46:12]
  assign io_out_c_bits_opcode = sourceC_io_c_bits_opcode; // @[Scheduler.scala 46:12]
  assign io_out_c_bits_param = sourceC_io_c_bits_param; // @[Scheduler.scala 46:12]
  assign io_out_c_bits_size = sourceC_io_c_bits_size; // @[Scheduler.scala 46:12]
  assign io_out_c_bits_source = sourceC_io_c_bits_source; // @[Scheduler.scala 46:12]
  assign io_out_c_bits_address = sourceC_io_c_bits_address; // @[Scheduler.scala 46:12]
  assign io_out_c_bits_data = sourceC_io_c_bits_data; // @[Scheduler.scala 46:12]
  assign io_out_c_bits_corrupt = sourceC_io_c_bits_corrupt; // @[Scheduler.scala 46:12]
  assign io_out_d_ready = sinkD_io_d_ready; // @[Scheduler.scala 61:14]
  assign io_out_e_valid = sourceE_io_e_valid; // @[Scheduler.scala 47:12]
  assign io_out_e_bits_sink = sourceE_io_e_bits_sink; // @[Scheduler.scala 47:12]
  assign sourceA_clock = clock;
  assign sourceA_reset = reset;
  assign sourceA_io_req_valid = _schedule_T_2036 | mshr_selectOH[16] & abc_mshrs_16_io_schedule_bits_a_valid |
    mshr_selectOH[17] & abc_mshrs_17_io_schedule_bits_a_valid | mshr_selectOH[18] &
    abc_mshrs_18_io_schedule_bits_a_valid | mshr_selectOH[19] & abc_mshrs_19_io_schedule_bits_a_valid | mshr_selectOH[20
    ] & bc_mshr_io_schedule_bits_a_valid | mshr_selectOH[21] & c_mshr_io_schedule_bits_a_valid; // @[Mux.scala 27:73]
  assign sourceA_io_req_bits_tag = _schedule_T_1998 | _schedule_T_1978; // @[Mux.scala 27:73]
  assign sourceA_io_req_bits_set = _schedule_T_1955 | _schedule_T_1935; // @[Mux.scala 27:73]
  assign sourceA_io_req_bits_param = _schedule_T_1912 | _schedule_T_1892; // @[Mux.scala 27:73]
  assign sourceA_io_req_bits_source = {_mshr_select_T,_mshr_select_T_11}; // @[Cat.scala 33:92]
  assign sourceA_io_req_bits_block = _schedule_T_1821 | mshr_selectOH[16] & abc_mshrs_16_io_schedule_bits_a_bits_block
     | mshr_selectOH[17] & abc_mshrs_17_io_schedule_bits_a_bits_block | mshr_selectOH[18] &
    abc_mshrs_18_io_schedule_bits_a_bits_block | mshr_selectOH[19] & abc_mshrs_19_io_schedule_bits_a_bits_block |
    mshr_selectOH[20] & bc_mshr_io_schedule_bits_a_bits_block | mshr_selectOH[21] & c_mshr_io_schedule_bits_a_bits_block
    ; // @[Mux.scala 27:73]
  assign sourceA_io_a_ready = io_out_a_ready; // @[Scheduler.scala 45:12]
  assign sourceB_clock = clock;
  assign sourceB_reset = reset;
  assign sourceB_io_req_valid = _schedule_T_1778 | mshr_selectOH[16] & abc_mshrs_16_io_schedule_bits_b_valid |
    mshr_selectOH[17] & abc_mshrs_17_io_schedule_bits_b_valid | mshr_selectOH[18] &
    abc_mshrs_18_io_schedule_bits_b_valid | mshr_selectOH[19] & abc_mshrs_19_io_schedule_bits_b_valid | mshr_selectOH[20
    ] & bc_mshr_io_schedule_bits_b_valid | mshr_selectOH[21] & c_mshr_io_schedule_bits_b_valid; // @[Mux.scala 27:73]
  assign sourceB_io_req_bits_param = _schedule_T_1740 | _schedule_T_1720; // @[Mux.scala 27:73]
  assign sourceB_io_req_bits_tag = _schedule_T_1697 | _schedule_T_1677; // @[Mux.scala 27:73]
  assign sourceB_io_req_bits_set = _schedule_T_1654 | _schedule_T_1634; // @[Mux.scala 27:73]
  assign sourceB_io_req_bits_clients = _schedule_T_1606 | mshr_selectOH[16] &
    abc_mshrs_16_io_schedule_bits_b_bits_clients | mshr_selectOH[17] & abc_mshrs_17_io_schedule_bits_b_bits_clients |
    mshr_selectOH[18] & abc_mshrs_18_io_schedule_bits_b_bits_clients | mshr_selectOH[19] &
    abc_mshrs_19_io_schedule_bits_b_bits_clients | mshr_selectOH[20] & bc_mshr_io_schedule_bits_b_bits_clients |
    mshr_selectOH[21] & c_mshr_io_schedule_bits_b_bits_clients; // @[Mux.scala 27:73]
  assign sourceB_io_b_ready = io_in_b_ready; // @[Scheduler.scala 48:11]
  assign sourceC_clock = clock;
  assign sourceC_reset = reset;
  assign sourceC_io_req_valid = _schedule_T_1563 | mshr_selectOH[16] & abc_mshrs_16_io_schedule_bits_c_valid |
    mshr_selectOH[17] & abc_mshrs_17_io_schedule_bits_c_valid | mshr_selectOH[18] &
    abc_mshrs_18_io_schedule_bits_c_valid | mshr_selectOH[19] & abc_mshrs_19_io_schedule_bits_c_valid | mshr_selectOH[20
    ] & bc_mshr_io_schedule_bits_c_valid | mshr_selectOH[21] & c_mshr_io_schedule_bits_c_valid; // @[Mux.scala 27:73]
  assign sourceC_io_req_bits_opcode = _schedule_T_1525 | _schedule_T_1505; // @[Mux.scala 27:73]
  assign sourceC_io_req_bits_param = _schedule_T_1482 | _schedule_T_1462; // @[Mux.scala 27:73]
  assign sourceC_io_req_bits_source = schedule_c_bits_opcode[1] ? mshr_select : 5'h0; // @[Scheduler.scala 130:32]
  assign sourceC_io_req_bits_tag = _schedule_T_1396 | _schedule_T_1376; // @[Mux.scala 27:73]
  assign sourceC_io_req_bits_set = _schedule_T_1353 | _schedule_T_1333; // @[Mux.scala 27:73]
  assign sourceC_io_req_bits_way = _schedule_T_1305 | mshr_selectOH[16] & abc_mshrs_16_io_schedule_bits_c_bits_way |
    mshr_selectOH[17] & abc_mshrs_17_io_schedule_bits_c_bits_way | mshr_selectOH[18] &
    abc_mshrs_18_io_schedule_bits_c_bits_way | mshr_selectOH[19] & abc_mshrs_19_io_schedule_bits_c_bits_way |
    mshr_selectOH[20] & bc_mshr_io_schedule_bits_c_bits_way | mshr_selectOH[21] & c_mshr_io_schedule_bits_c_bits_way; // @[Mux.scala 27:73]
  assign sourceC_io_req_bits_dirty = _schedule_T_1262 | mshr_selectOH[16] & abc_mshrs_16_io_schedule_bits_c_bits_dirty
     | mshr_selectOH[17] & abc_mshrs_17_io_schedule_bits_c_bits_dirty | mshr_selectOH[18] &
    abc_mshrs_18_io_schedule_bits_c_bits_dirty | mshr_selectOH[19] & abc_mshrs_19_io_schedule_bits_c_bits_dirty |
    mshr_selectOH[20] & bc_mshr_io_schedule_bits_c_bits_dirty | mshr_selectOH[21] & c_mshr_io_schedule_bits_c_bits_dirty
    ; // @[Mux.scala 27:73]
  assign sourceC_io_c_ready = io_out_c_ready; // @[Scheduler.scala 46:12]
  assign sourceC_io_bs_adr_ready = bankedStore_io_sourceC_adr_ready; // @[Scheduler.scala 322:30]
  assign sourceC_io_bs_dat_data = bankedStore_io_sourceC_dat_data; // @[Scheduler.scala 326:21]
  assign sourceC_io_evict_safe = sourceD_io_evict_safe; // @[Scheduler.scala 332:25]
  assign sourceD_clock = clock;
  assign sourceD_reset = reset;
  assign sourceD_io_req_valid = _schedule_T_1219 | mshr_selectOH[16] & abc_mshrs_16_io_schedule_bits_d_valid |
    mshr_selectOH[17] & abc_mshrs_17_io_schedule_bits_d_valid | mshr_selectOH[18] &
    abc_mshrs_18_io_schedule_bits_d_valid | mshr_selectOH[19] & abc_mshrs_19_io_schedule_bits_d_valid | mshr_selectOH[20
    ] & bc_mshr_io_schedule_bits_d_valid | mshr_selectOH[21] & c_mshr_io_schedule_bits_d_valid; // @[Mux.scala 27:73]
  assign sourceD_io_req_bits_prio_0 = _schedule_T_1090 | mshr_selectOH[16] & abc_mshrs_16_io_schedule_bits_d_bits_prio_0
     | mshr_selectOH[17] & abc_mshrs_17_io_schedule_bits_d_bits_prio_0 | mshr_selectOH[18] &
    abc_mshrs_18_io_schedule_bits_d_bits_prio_0 | mshr_selectOH[19] & abc_mshrs_19_io_schedule_bits_d_bits_prio_0 |
    mshr_selectOH[20] & bc_mshr_io_schedule_bits_d_bits_prio_0 | mshr_selectOH[21] &
    c_mshr_io_schedule_bits_d_bits_prio_0; // @[Mux.scala 27:73]
  assign sourceD_io_req_bits_prio_2 = _schedule_T_1176 | mshr_selectOH[16] & abc_mshrs_16_io_schedule_bits_d_bits_prio_2
     | mshr_selectOH[17] & abc_mshrs_17_io_schedule_bits_d_bits_prio_2 | mshr_selectOH[18] &
    abc_mshrs_18_io_schedule_bits_d_bits_prio_2 | mshr_selectOH[19] & abc_mshrs_19_io_schedule_bits_d_bits_prio_2 |
    mshr_selectOH[20] & bc_mshr_io_schedule_bits_d_bits_prio_2 | mshr_selectOH[21] &
    c_mshr_io_schedule_bits_d_bits_prio_2; // @[Mux.scala 27:73]
  assign sourceD_io_req_bits_opcode = _schedule_T_1009 | _schedule_T_989; // @[Mux.scala 27:73]
  assign sourceD_io_req_bits_param = _schedule_T_966 | _schedule_T_946; // @[Mux.scala 27:73]
  assign sourceD_io_req_bits_size = _schedule_T_923 | _schedule_T_903; // @[Mux.scala 27:73]
  assign sourceD_io_req_bits_source = _schedule_T_880 | _schedule_T_860; // @[Mux.scala 27:73]
  assign sourceD_io_req_bits_offset = _schedule_T_794 | _schedule_T_774; // @[Mux.scala 27:73]
  assign sourceD_io_req_bits_put = _schedule_T_751 | _schedule_T_731; // @[Mux.scala 27:73]
  assign sourceD_io_req_bits_set = _schedule_T_708 | _schedule_T_688; // @[Mux.scala 27:73]
  assign sourceD_io_req_bits_sink = {_mshr_select_T,_mshr_select_T_11}; // @[Cat.scala 33:92]
  assign sourceD_io_req_bits_way = _schedule_T_617 | mshr_selectOH[16] & abc_mshrs_16_io_schedule_bits_d_bits_way |
    mshr_selectOH[17] & abc_mshrs_17_io_schedule_bits_d_bits_way | mshr_selectOH[18] &
    abc_mshrs_18_io_schedule_bits_d_bits_way | mshr_selectOH[19] & abc_mshrs_19_io_schedule_bits_d_bits_way |
    mshr_selectOH[20] & bc_mshr_io_schedule_bits_d_bits_way | mshr_selectOH[21] & c_mshr_io_schedule_bits_d_bits_way; // @[Mux.scala 27:73]
  assign sourceD_io_req_bits_bad = _schedule_T_574 | mshr_selectOH[16] & abc_mshrs_16_io_schedule_bits_d_bits_bad |
    mshr_selectOH[17] & abc_mshrs_17_io_schedule_bits_d_bits_bad | mshr_selectOH[18] &
    abc_mshrs_18_io_schedule_bits_d_bits_bad | mshr_selectOH[19] & abc_mshrs_19_io_schedule_bits_d_bits_bad |
    mshr_selectOH[20] & bc_mshr_io_schedule_bits_d_bits_bad | mshr_selectOH[21] & c_mshr_io_schedule_bits_d_bits_bad; // @[Mux.scala 27:73]
  assign sourceD_io_d_ready = io_in_d_ready; // @[Scheduler.scala 49:11]
  assign sourceD_io_pb_pop_ready = sinkA_io_pb_pop_ready; // @[Scheduler.scala 312:19]
  assign sourceD_io_pb_beat_data = sinkA_io_pb_beat_data; // @[Scheduler.scala 313:22]
  assign sourceD_io_pb_beat_mask = sinkA_io_pb_beat_mask; // @[Scheduler.scala 313:22]
  assign sourceD_io_pb_beat_corrupt = sinkA_io_pb_beat_corrupt; // @[Scheduler.scala 313:22]
  assign sourceD_io_rel_pop_ready = sinkC_io_rel_pop_ready; // @[Scheduler.scala 314:20]
  assign sourceD_io_rel_beat_data = sinkC_io_rel_beat_data; // @[Scheduler.scala 315:23]
  assign sourceD_io_rel_beat_corrupt = sinkC_io_rel_beat_corrupt; // @[Scheduler.scala 315:23]
  assign sourceD_io_bs_radr_ready = bankedStore_io_sourceD_radr_ready; // @[Scheduler.scala 323:31]
  assign sourceD_io_bs_rdat_data = bankedStore_io_sourceD_rdat_data; // @[Scheduler.scala 327:22]
  assign sourceD_io_bs_wadr_ready = bankedStore_io_sourceD_wadr_ready; // @[Scheduler.scala 324:31]
  assign sourceD_io_evict_req_set = sourceC_io_evict_req_set; // @[Scheduler.scala 330:24]
  assign sourceD_io_evict_req_way = sourceC_io_evict_req_way; // @[Scheduler.scala 330:24]
  assign sourceD_io_grant_req_set = sinkD_io_grant_req_set; // @[Scheduler.scala 331:24]
  assign sourceD_io_grant_req_way = sinkD_io_grant_req_way; // @[Scheduler.scala 331:24]
  assign sourceE_clock = clock;
  assign sourceE_reset = reset;
  assign sourceE_io_req_valid = _schedule_T_531 | mshr_selectOH[16] & abc_mshrs_16_io_schedule_bits_e_valid |
    mshr_selectOH[17] & abc_mshrs_17_io_schedule_bits_e_valid | mshr_selectOH[18] &
    abc_mshrs_18_io_schedule_bits_e_valid | mshr_selectOH[19] & abc_mshrs_19_io_schedule_bits_e_valid | mshr_selectOH[20
    ] & bc_mshr_io_schedule_bits_e_valid | mshr_selectOH[21] & c_mshr_io_schedule_bits_e_valid; // @[Mux.scala 27:73]
  assign sourceE_io_req_bits_sink = _schedule_T_493 | _schedule_T_473; // @[Mux.scala 27:73]
  assign sinkA_clock = clock;
  assign sinkA_reset = reset;
  assign sinkA_io_req_ready = _sinkC_io_req_ready_T & _sinkX_io_req_ready_T_1; // @[Scheduler.scala 158:61]
  assign sinkA_io_a_valid = io_in_a_valid; // @[Scheduler.scala 58:14]
  assign sinkA_io_a_bits_opcode = io_in_a_bits_opcode; // @[Scheduler.scala 58:14]
  assign sinkA_io_a_bits_param = io_in_a_bits_param; // @[Scheduler.scala 58:14]
  assign sinkA_io_a_bits_size = io_in_a_bits_size; // @[Scheduler.scala 58:14]
  assign sinkA_io_a_bits_source = io_in_a_bits_source; // @[Scheduler.scala 58:14]
  assign sinkA_io_a_bits_address = io_in_a_bits_address; // @[Scheduler.scala 58:14]
  assign sinkA_io_a_bits_mask = io_in_a_bits_mask; // @[Scheduler.scala 58:14]
  assign sinkA_io_a_bits_data = io_in_a_bits_data; // @[Scheduler.scala 58:14]
  assign sinkA_io_a_bits_corrupt = io_in_a_bits_corrupt; // @[Scheduler.scala 58:14]
  assign sinkA_io_pb_pop_valid = sourceD_io_pb_pop_valid; // @[Scheduler.scala 312:19]
  assign sinkA_io_pb_pop_bits_index = sourceD_io_pb_pop_bits_index; // @[Scheduler.scala 312:19]
  assign sinkA_io_pb_pop_bits_last = sourceD_io_pb_pop_bits_last; // @[Scheduler.scala 312:19]
  assign sinkC_clock = clock;
  assign sinkC_reset = reset;
  assign sinkC_io_req_ready = directory_io_ready & request_ready; // @[Scheduler.scala 156:44]
  assign sinkC_io_c_valid = io_in_c_valid; // @[Scheduler.scala 59:14]
  assign sinkC_io_c_bits_opcode = io_in_c_bits_opcode; // @[Scheduler.scala 59:14]
  assign sinkC_io_c_bits_param = io_in_c_bits_param; // @[Scheduler.scala 59:14]
  assign sinkC_io_c_bits_size = io_in_c_bits_size; // @[Scheduler.scala 59:14]
  assign sinkC_io_c_bits_address = io_in_c_bits_address; // @[Scheduler.scala 59:14]
  assign sinkC_io_c_bits_data = io_in_c_bits_data; // @[Scheduler.scala 59:14]
  assign sinkC_io_c_bits_corrupt = io_in_c_bits_corrupt; // @[Scheduler.scala 59:14]
  assign sinkC_io_way = bc_mshr_io_status_valid & bc_mshr_io_status_bits_set == sinkC_io_set ?
    bc_mshr_io_status_bits_way : _sinkC_io_way_T_80; // @[Scheduler.scala 304:8]
  assign sinkC_io_bs_adr_ready = bankedStore_io_sinkC_adr_ready; // @[Scheduler.scala 318:28]
  assign sinkC_io_rel_pop_valid = sourceD_io_rel_pop_valid; // @[Scheduler.scala 314:20]
  assign sinkC_io_rel_pop_bits_index = sourceD_io_rel_pop_bits_index; // @[Scheduler.scala 314:20]
  assign sinkC_io_rel_pop_bits_last = sourceD_io_rel_pop_bits_last; // @[Scheduler.scala 314:20]
  assign sinkD_clock = clock;
  assign sinkD_reset = reset;
  assign sinkD_io_d_valid = io_out_d_valid; // @[Scheduler.scala 61:14]
  assign sinkD_io_d_bits_opcode = io_out_d_bits_opcode; // @[Scheduler.scala 61:14]
  assign sinkD_io_d_bits_param = io_out_d_bits_param; // @[Scheduler.scala 61:14]
  assign sinkD_io_d_bits_size = io_out_d_bits_size; // @[Scheduler.scala 61:14]
  assign sinkD_io_d_bits_source = io_out_d_bits_source; // @[Scheduler.scala 61:14]
  assign sinkD_io_d_bits_sink = io_out_d_bits_sink; // @[Scheduler.scala 61:14]
  assign sinkD_io_d_bits_denied = io_out_d_bits_denied; // @[Scheduler.scala 61:14]
  assign sinkD_io_d_bits_data = io_out_d_bits_data; // @[Scheduler.scala 61:14]
  assign sinkD_io_d_bits_corrupt = io_out_d_bits_corrupt; // @[Scheduler.scala 61:14]
  assign sinkD_io_way = 5'h15 == sinkD_io_source ? c_mshr_io_status_bits_way : _GEN_357; // @[Scheduler.scala 308:{16,16}]
  assign sinkD_io_set = 5'h15 == sinkD_io_source ? _sinkD_io_set_WIRE_21 : _GEN_379; // @[Scheduler.scala 309:{16,16}]
  assign sinkD_io_bs_adr_ready = bankedStore_io_sinkD_adr_ready; // @[Scheduler.scala 320:28]
  assign sinkD_io_grant_safe = sourceD_io_grant_safe; // @[Scheduler.scala 333:25]
  assign sinkE_io_e_valid = io_in_e_valid; // @[Scheduler.scala 60:14]
  assign sinkE_io_e_bits_sink = io_in_e_bits_sink; // @[Scheduler.scala 60:14]
  assign directory_clock = clock;
  assign directory_reset = reset;
  assign directory_io_write_valid = _schedule_T_359 | mshr_selectOH[16] & abc_mshrs_16_io_schedule_bits_dir_valid |
    mshr_selectOH[17] & abc_mshrs_17_io_schedule_bits_dir_valid | mshr_selectOH[18] &
    abc_mshrs_18_io_schedule_bits_dir_valid | mshr_selectOH[19] & abc_mshrs_19_io_schedule_bits_dir_valid |
    mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid | mshr_selectOH[21] & c_mshr_io_schedule_bits_dir_valid; // @[Mux.scala 27:73]
  assign directory_io_write_bits_set = _schedule_T_321 | _schedule_T_301; // @[Mux.scala 27:73]
  assign directory_io_write_bits_way = _schedule_T_273 | mshr_selectOH[16] & abc_mshrs_16_io_schedule_bits_dir_bits_way
     | mshr_selectOH[17] & abc_mshrs_17_io_schedule_bits_dir_bits_way | mshr_selectOH[18] &
    abc_mshrs_18_io_schedule_bits_dir_bits_way | mshr_selectOH[19] & abc_mshrs_19_io_schedule_bits_dir_bits_way |
    mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_bits_way | mshr_selectOH[21] & c_mshr_io_schedule_bits_dir_bits_way
    ; // @[Mux.scala 27:73]
  assign directory_io_write_bits_data_dirty = _schedule_T_230 | mshr_selectOH[16] &
    abc_mshrs_16_io_schedule_bits_dir_bits_data_dirty | mshr_selectOH[17] &
    abc_mshrs_17_io_schedule_bits_dir_bits_data_dirty | mshr_selectOH[18] &
    abc_mshrs_18_io_schedule_bits_dir_bits_data_dirty | mshr_selectOH[19] &
    abc_mshrs_19_io_schedule_bits_dir_bits_data_dirty | mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_bits_data_dirty
     | mshr_selectOH[21] & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Mux.scala 27:73]
  assign directory_io_write_bits_data_state = _schedule_T_192 | _schedule_T_172; // @[Mux.scala 27:73]
  assign directory_io_write_bits_data_clients = _schedule_T_144 | mshr_selectOH[16] &
    abc_mshrs_16_io_schedule_bits_dir_bits_data_clients | mshr_selectOH[17] &
    abc_mshrs_17_io_schedule_bits_dir_bits_data_clients | mshr_selectOH[18] &
    abc_mshrs_18_io_schedule_bits_dir_bits_data_clients | mshr_selectOH[19] &
    abc_mshrs_19_io_schedule_bits_dir_bits_data_clients | mshr_selectOH[20] &
    bc_mshr_io_schedule_bits_dir_bits_data_clients | mshr_selectOH[21] & c_mshr_io_schedule_bits_dir_bits_data_clients; // @[Mux.scala 27:73]
  assign directory_io_write_bits_data_tag = _schedule_T_106 | _schedule_T_86; // @[Mux.scala 27:73]
  assign directory_io_read_valid = mshr_uses_directory | alloc_uses_directory; // @[Scheduler.scala 254:50]
  assign directory_io_read_bits_set = mshr_uses_directory_for_lb ? scheduleSet : request_bits_set; // @[Scheduler.scala 255:36]
  assign directory_io_read_bits_tag = mshr_uses_directory_for_lb ? requests_io_data_tag : request_bits_tag; // @[Scheduler.scala 256:36]
  assign bankedStore_clock = clock;
  assign bankedStore_io_sinkC_adr_valid = sinkC_io_bs_adr_valid; // @[Scheduler.scala 318:28]
  assign bankedStore_io_sinkC_adr_bits_noop = sinkC_io_bs_adr_bits_noop; // @[Scheduler.scala 318:28]
  assign bankedStore_io_sinkC_adr_bits_way = sinkC_io_bs_adr_bits_way; // @[Scheduler.scala 318:28]
  assign bankedStore_io_sinkC_adr_bits_set = sinkC_io_bs_adr_bits_set; // @[Scheduler.scala 318:28]
  assign bankedStore_io_sinkC_adr_bits_beat = sinkC_io_bs_adr_bits_beat; // @[Scheduler.scala 318:28]
  assign bankedStore_io_sinkC_adr_bits_mask = sinkC_io_bs_adr_bits_mask; // @[Scheduler.scala 318:28]
  assign bankedStore_io_sinkC_dat_data = sinkC_io_bs_dat_data; // @[Scheduler.scala 319:28]
  assign bankedStore_io_sinkD_adr_valid = sinkD_io_bs_adr_valid; // @[Scheduler.scala 320:28]
  assign bankedStore_io_sinkD_adr_bits_noop = sinkD_io_bs_adr_bits_noop; // @[Scheduler.scala 320:28]
  assign bankedStore_io_sinkD_adr_bits_way = sinkD_io_bs_adr_bits_way; // @[Scheduler.scala 320:28]
  assign bankedStore_io_sinkD_adr_bits_set = sinkD_io_bs_adr_bits_set; // @[Scheduler.scala 320:28]
  assign bankedStore_io_sinkD_adr_bits_beat = sinkD_io_bs_adr_bits_beat; // @[Scheduler.scala 320:28]
  assign bankedStore_io_sinkD_dat_data = sinkD_io_bs_dat_data; // @[Scheduler.scala 321:28]
  assign bankedStore_io_sourceC_adr_valid = sourceC_io_bs_adr_valid; // @[Scheduler.scala 322:30]
  assign bankedStore_io_sourceC_adr_bits_way = sourceC_io_bs_adr_bits_way; // @[Scheduler.scala 322:30]
  assign bankedStore_io_sourceC_adr_bits_set = sourceC_io_bs_adr_bits_set; // @[Scheduler.scala 322:30]
  assign bankedStore_io_sourceC_adr_bits_beat = sourceC_io_bs_adr_bits_beat; // @[Scheduler.scala 322:30]
  assign bankedStore_io_sourceD_radr_valid = sourceD_io_bs_radr_valid; // @[Scheduler.scala 323:31]
  assign bankedStore_io_sourceD_radr_bits_way = sourceD_io_bs_radr_bits_way; // @[Scheduler.scala 323:31]
  assign bankedStore_io_sourceD_radr_bits_set = sourceD_io_bs_radr_bits_set; // @[Scheduler.scala 323:31]
  assign bankedStore_io_sourceD_radr_bits_beat = sourceD_io_bs_radr_bits_beat; // @[Scheduler.scala 323:31]
  assign bankedStore_io_sourceD_radr_bits_mask = sourceD_io_bs_radr_bits_mask; // @[Scheduler.scala 323:31]
  assign bankedStore_io_sourceD_wadr_valid = sourceD_io_bs_wadr_valid; // @[Scheduler.scala 324:31]
  assign bankedStore_io_sourceD_wadr_bits_way = sourceD_io_bs_wadr_bits_way; // @[Scheduler.scala 324:31]
  assign bankedStore_io_sourceD_wadr_bits_set = sourceD_io_bs_wadr_bits_set; // @[Scheduler.scala 324:31]
  assign bankedStore_io_sourceD_wadr_bits_beat = sourceD_io_bs_wadr_bits_beat; // @[Scheduler.scala 324:31]
  assign bankedStore_io_sourceD_wadr_bits_mask = sourceD_io_bs_wadr_bits_mask; // @[Scheduler.scala 324:31]
  assign bankedStore_io_sourceD_wdat_data = sourceD_io_bs_wdat_data; // @[Scheduler.scala 325:31]
  assign requests_clock = clock;
  assign requests_reset = reset;
  assign requests_io_push_valid = _bypass_T & ~bypassQueue; // @[Scheduler.scala 259:52]
  assign requests_io_push_bits_index = _GEN_388 | _requests_io_push_bits_index_T_53; // @[Mux.scala 27:73]
  assign requests_io_push_bits_data_prio_0 = sinkC_io_req_valid ? 1'h0 : 1'h1; // @[Scheduler.scala 154:22]
  assign requests_io_push_bits_data_prio_2 = sinkC_io_req_valid; // @[Scheduler.scala 154:22]
  assign requests_io_push_bits_data_opcode = sinkC_io_req_valid ? sinkC_io_req_bits_opcode : _request_bits_T_opcode; // @[Scheduler.scala 154:22]
  assign requests_io_push_bits_data_param = sinkC_io_req_valid ? sinkC_io_req_bits_param : _request_bits_T_param; // @[Scheduler.scala 154:22]
  assign requests_io_push_bits_data_size = sinkC_io_req_valid ? sinkC_io_req_bits_size : _request_bits_T_size; // @[Scheduler.scala 154:22]
  assign requests_io_push_bits_data_source = sinkC_io_req_valid ? sinkC_io_req_bits_source : _request_bits_T_source; // @[Scheduler.scala 154:22]
  assign requests_io_push_bits_data_tag = sinkC_io_req_valid ? sinkC_io_req_bits_tag : _request_bits_T_tag; // @[Scheduler.scala 154:22]
  assign requests_io_push_bits_data_offset = sinkC_io_req_valid ? sinkC_io_req_bits_offset : _request_bits_T_offset; // @[Scheduler.scala 154:22]
  assign requests_io_push_bits_data_put = sinkC_io_req_valid ? sinkC_io_req_bits_put : _request_bits_T_put; // @[Scheduler.scala 154:22]
  assign requests_io_pop_valid = _mshr_uses_directory_assuming_no_bypass_T & ~bypass; // @[Scheduler.scala 204:45]
  assign requests_io_pop_bits = {_pop_index_T_2,_pop_index_T_19}; // @[Cat.scala 33:92]
  assign abc_mshrs_0_clock = clock;
  assign abc_mshrs_0_reset = reset;
  assign abc_mshrs_0_io_allocate_valid = request_valid & alloc & mshr_insertOH[0] & _request_alloc_cases_T |
    mshr_selectOH[0] & will_reload_1; // @[Scheduler.scala 225:25 269:83 270:27]
  assign abc_mshrs_0_io_allocate_bits_prio_0 = request_valid & alloc & mshr_insertOH[0] & _request_alloc_cases_T ?
    request_bits_prio_0 : _mshrs_0_io_allocate_bits_T_prio_0; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_0_io_allocate_bits_prio_1 = request_valid & alloc & mshr_insertOH[0] & _request_alloc_cases_T ? 1'h0
     : _mshrs_0_io_allocate_bits_T_prio_1; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_0_io_allocate_bits_prio_2 = request_valid & alloc & mshr_insertOH[0] & _request_alloc_cases_T ?
    request_bits_prio_2 : _mshrs_0_io_allocate_bits_T_prio_2; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_0_io_allocate_bits_opcode = request_valid & alloc & mshr_insertOH[0] & _request_alloc_cases_T ?
    request_bits_opcode : _mshrs_0_io_allocate_bits_T_opcode; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_0_io_allocate_bits_param = request_valid & alloc & mshr_insertOH[0] & _request_alloc_cases_T ?
    request_bits_param : _mshrs_0_io_allocate_bits_T_param; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_0_io_allocate_bits_size = request_valid & alloc & mshr_insertOH[0] & _request_alloc_cases_T ?
    request_bits_size : _mshrs_0_io_allocate_bits_T_size; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_0_io_allocate_bits_source = request_valid & alloc & mshr_insertOH[0] & _request_alloc_cases_T ?
    request_bits_source : _mshrs_0_io_allocate_bits_T_source; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_0_io_allocate_bits_tag = request_valid & alloc & mshr_insertOH[0] & _request_alloc_cases_T ?
    request_bits_tag : _mshrs_0_io_allocate_bits_T_tag; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_0_io_allocate_bits_offset = request_valid & alloc & mshr_insertOH[0] & _request_alloc_cases_T ?
    request_bits_offset : _mshrs_0_io_allocate_bits_T_offset; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_0_io_allocate_bits_put = request_valid & alloc & mshr_insertOH[0] & _request_alloc_cases_T ?
    request_bits_put : _mshrs_0_io_allocate_bits_T_put; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_0_io_allocate_bits_set = request_valid & alloc & mshr_insertOH[0] & _request_alloc_cases_T ?
    request_bits_set : abc_mshrs_0_io_status_bits_set; // @[Scheduler.scala 269:83 271:26 223:28]
  assign abc_mshrs_0_io_allocate_bits_repeat = request_valid & alloc & mshr_insertOH[0] & _request_alloc_cases_T ? 1'h0
     : abc_mshrs_0_io_allocate_bits_tag == abc_mshrs_0_io_status_bits_tag; // @[Scheduler.scala 224:31 269:83 272:33]
  assign abc_mshrs_0_io_directory_valid = directoryFanout[0]; // @[Scheduler.scala 298:44]
  assign abc_mshrs_0_io_directory_bits_dirty = directory_io_result_bits_dirty; // @[Scheduler.scala 299:25]
  assign abc_mshrs_0_io_directory_bits_state = directory_io_result_bits_state; // @[Scheduler.scala 299:25]
  assign abc_mshrs_0_io_directory_bits_clients = directory_io_result_bits_clients; // @[Scheduler.scala 299:25]
  assign abc_mshrs_0_io_directory_bits_tag = directory_io_result_bits_tag; // @[Scheduler.scala 299:25]
  assign abc_mshrs_0_io_directory_bits_hit = directory_io_result_bits_hit; // @[Scheduler.scala 299:25]
  assign abc_mshrs_0_io_directory_bits_way = directory_io_result_bits_way; // @[Scheduler.scala 299:25]
  assign abc_mshrs_0_io_schedule_ready = mshr_selectOH[0]; // @[Scheduler.scala 212:28]
  assign abc_mshrs_0_io_sinkc_valid = sinkC_io_resp_valid & sinkC_io_resp_bits_set == abc_mshrs_0_io_status_bits_set; // @[Scheduler.scala 77:45]
  assign abc_mshrs_0_io_sinkc_bits_last = sinkC_io_resp_bits_last; // @[Scheduler.scala 80:21]
  assign abc_mshrs_0_io_sinkc_bits_tag = sinkC_io_resp_bits_tag; // @[Scheduler.scala 80:21]
  assign abc_mshrs_0_io_sinkc_bits_source = sinkC_io_resp_bits_source; // @[Scheduler.scala 80:21]
  assign abc_mshrs_0_io_sinkc_bits_param = sinkC_io_resp_bits_param; // @[Scheduler.scala 80:21]
  assign abc_mshrs_0_io_sinkc_bits_data = sinkC_io_resp_bits_data; // @[Scheduler.scala 80:21]
  assign abc_mshrs_0_io_sinkd_valid = sinkD_io_resp_valid & sinkD_io_resp_bits_source == 5'h0; // @[Scheduler.scala 78:45]
  assign abc_mshrs_0_io_sinkd_bits_last = sinkD_io_resp_bits_last; // @[Scheduler.scala 81:21]
  assign abc_mshrs_0_io_sinkd_bits_opcode = sinkD_io_resp_bits_opcode; // @[Scheduler.scala 81:21]
  assign abc_mshrs_0_io_sinkd_bits_param = sinkD_io_resp_bits_param; // @[Scheduler.scala 81:21]
  assign abc_mshrs_0_io_sinkd_bits_sink = sinkD_io_resp_bits_sink; // @[Scheduler.scala 81:21]
  assign abc_mshrs_0_io_sinkd_bits_denied = sinkD_io_resp_bits_denied; // @[Scheduler.scala 81:21]
  assign abc_mshrs_0_io_sinke_valid = sinkE_io_resp_valid & sinkE_io_resp_bits_sink == 5'h0; // @[Scheduler.scala 79:45]
  assign abc_mshrs_0_io_nestedwb_set = mshr_selectOH[21] ? c_mshr_io_status_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 144:24]
  assign abc_mshrs_0_io_nestedwb_tag = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : bc_mshr_io_status_bits_tag; // @[Scheduler.scala 145:24]
  assign abc_mshrs_0_io_nestedwb_b_toN = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h0; // @[Scheduler.scala 146:75]
  assign abc_mshrs_0_io_nestedwb_b_toB = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h1; // @[Scheduler.scala 147:75]
  assign abc_mshrs_0_io_nestedwb_b_clr_dirty = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 148:37]
  assign abc_mshrs_0_io_nestedwb_c_set_dirty = _schedule_T_344 & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 149:75]
  assign abc_mshrs_1_clock = clock;
  assign abc_mshrs_1_reset = reset;
  assign abc_mshrs_1_io_allocate_valid = request_valid & alloc & mshr_insertOH[1] & _request_alloc_cases_T |
    mshr_selectOH[1] & will_reload_2; // @[Scheduler.scala 225:25 269:83 270:27]
  assign abc_mshrs_1_io_allocate_bits_prio_0 = request_valid & alloc & mshr_insertOH[1] & _request_alloc_cases_T ?
    request_bits_prio_0 : _mshrs_1_io_allocate_bits_T_prio_0; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_1_io_allocate_bits_prio_1 = request_valid & alloc & mshr_insertOH[1] & _request_alloc_cases_T ? 1'h0
     : _mshrs_1_io_allocate_bits_T_prio_1; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_1_io_allocate_bits_prio_2 = request_valid & alloc & mshr_insertOH[1] & _request_alloc_cases_T ?
    request_bits_prio_2 : _mshrs_1_io_allocate_bits_T_prio_2; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_1_io_allocate_bits_opcode = request_valid & alloc & mshr_insertOH[1] & _request_alloc_cases_T ?
    request_bits_opcode : _mshrs_1_io_allocate_bits_T_opcode; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_1_io_allocate_bits_param = request_valid & alloc & mshr_insertOH[1] & _request_alloc_cases_T ?
    request_bits_param : _mshrs_1_io_allocate_bits_T_param; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_1_io_allocate_bits_size = request_valid & alloc & mshr_insertOH[1] & _request_alloc_cases_T ?
    request_bits_size : _mshrs_1_io_allocate_bits_T_size; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_1_io_allocate_bits_source = request_valid & alloc & mshr_insertOH[1] & _request_alloc_cases_T ?
    request_bits_source : _mshrs_1_io_allocate_bits_T_source; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_1_io_allocate_bits_tag = request_valid & alloc & mshr_insertOH[1] & _request_alloc_cases_T ?
    request_bits_tag : _mshrs_1_io_allocate_bits_T_tag; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_1_io_allocate_bits_offset = request_valid & alloc & mshr_insertOH[1] & _request_alloc_cases_T ?
    request_bits_offset : _mshrs_1_io_allocate_bits_T_offset; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_1_io_allocate_bits_put = request_valid & alloc & mshr_insertOH[1] & _request_alloc_cases_T ?
    request_bits_put : _mshrs_1_io_allocate_bits_T_put; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_1_io_allocate_bits_set = request_valid & alloc & mshr_insertOH[1] & _request_alloc_cases_T ?
    request_bits_set : abc_mshrs_1_io_status_bits_set; // @[Scheduler.scala 269:83 271:26 223:28]
  assign abc_mshrs_1_io_allocate_bits_repeat = request_valid & alloc & mshr_insertOH[1] & _request_alloc_cases_T ? 1'h0
     : abc_mshrs_1_io_allocate_bits_tag == abc_mshrs_1_io_status_bits_tag; // @[Scheduler.scala 224:31 269:83 272:33]
  assign abc_mshrs_1_io_directory_valid = directoryFanout[1]; // @[Scheduler.scala 298:44]
  assign abc_mshrs_1_io_directory_bits_dirty = directory_io_result_bits_dirty; // @[Scheduler.scala 299:25]
  assign abc_mshrs_1_io_directory_bits_state = directory_io_result_bits_state; // @[Scheduler.scala 299:25]
  assign abc_mshrs_1_io_directory_bits_clients = directory_io_result_bits_clients; // @[Scheduler.scala 299:25]
  assign abc_mshrs_1_io_directory_bits_tag = directory_io_result_bits_tag; // @[Scheduler.scala 299:25]
  assign abc_mshrs_1_io_directory_bits_hit = directory_io_result_bits_hit; // @[Scheduler.scala 299:25]
  assign abc_mshrs_1_io_directory_bits_way = directory_io_result_bits_way; // @[Scheduler.scala 299:25]
  assign abc_mshrs_1_io_schedule_ready = mshr_selectOH[1]; // @[Scheduler.scala 212:28]
  assign abc_mshrs_1_io_sinkc_valid = sinkC_io_resp_valid & sinkC_io_resp_bits_set == abc_mshrs_1_io_status_bits_set; // @[Scheduler.scala 77:45]
  assign abc_mshrs_1_io_sinkc_bits_last = sinkC_io_resp_bits_last; // @[Scheduler.scala 80:21]
  assign abc_mshrs_1_io_sinkc_bits_tag = sinkC_io_resp_bits_tag; // @[Scheduler.scala 80:21]
  assign abc_mshrs_1_io_sinkc_bits_source = sinkC_io_resp_bits_source; // @[Scheduler.scala 80:21]
  assign abc_mshrs_1_io_sinkc_bits_param = sinkC_io_resp_bits_param; // @[Scheduler.scala 80:21]
  assign abc_mshrs_1_io_sinkc_bits_data = sinkC_io_resp_bits_data; // @[Scheduler.scala 80:21]
  assign abc_mshrs_1_io_sinkd_valid = sinkD_io_resp_valid & sinkD_io_resp_bits_source == 5'h1; // @[Scheduler.scala 78:45]
  assign abc_mshrs_1_io_sinkd_bits_last = sinkD_io_resp_bits_last; // @[Scheduler.scala 81:21]
  assign abc_mshrs_1_io_sinkd_bits_opcode = sinkD_io_resp_bits_opcode; // @[Scheduler.scala 81:21]
  assign abc_mshrs_1_io_sinkd_bits_param = sinkD_io_resp_bits_param; // @[Scheduler.scala 81:21]
  assign abc_mshrs_1_io_sinkd_bits_sink = sinkD_io_resp_bits_sink; // @[Scheduler.scala 81:21]
  assign abc_mshrs_1_io_sinkd_bits_denied = sinkD_io_resp_bits_denied; // @[Scheduler.scala 81:21]
  assign abc_mshrs_1_io_sinke_valid = sinkE_io_resp_valid & sinkE_io_resp_bits_sink == 5'h1; // @[Scheduler.scala 79:45]
  assign abc_mshrs_1_io_nestedwb_set = mshr_selectOH[21] ? c_mshr_io_status_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 144:24]
  assign abc_mshrs_1_io_nestedwb_tag = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : bc_mshr_io_status_bits_tag; // @[Scheduler.scala 145:24]
  assign abc_mshrs_1_io_nestedwb_b_toN = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h0; // @[Scheduler.scala 146:75]
  assign abc_mshrs_1_io_nestedwb_b_toB = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h1; // @[Scheduler.scala 147:75]
  assign abc_mshrs_1_io_nestedwb_b_clr_dirty = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 148:37]
  assign abc_mshrs_1_io_nestedwb_c_set_dirty = _schedule_T_344 & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 149:75]
  assign abc_mshrs_2_clock = clock;
  assign abc_mshrs_2_reset = reset;
  assign abc_mshrs_2_io_allocate_valid = request_valid & alloc & mshr_insertOH[2] & _request_alloc_cases_T |
    mshr_selectOH[2] & will_reload_3; // @[Scheduler.scala 225:25 269:83 270:27]
  assign abc_mshrs_2_io_allocate_bits_prio_0 = request_valid & alloc & mshr_insertOH[2] & _request_alloc_cases_T ?
    request_bits_prio_0 : _mshrs_2_io_allocate_bits_T_prio_0; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_2_io_allocate_bits_prio_1 = request_valid & alloc & mshr_insertOH[2] & _request_alloc_cases_T ? 1'h0
     : _mshrs_2_io_allocate_bits_T_prio_1; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_2_io_allocate_bits_prio_2 = request_valid & alloc & mshr_insertOH[2] & _request_alloc_cases_T ?
    request_bits_prio_2 : _mshrs_2_io_allocate_bits_T_prio_2; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_2_io_allocate_bits_opcode = request_valid & alloc & mshr_insertOH[2] & _request_alloc_cases_T ?
    request_bits_opcode : _mshrs_2_io_allocate_bits_T_opcode; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_2_io_allocate_bits_param = request_valid & alloc & mshr_insertOH[2] & _request_alloc_cases_T ?
    request_bits_param : _mshrs_2_io_allocate_bits_T_param; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_2_io_allocate_bits_size = request_valid & alloc & mshr_insertOH[2] & _request_alloc_cases_T ?
    request_bits_size : _mshrs_2_io_allocate_bits_T_size; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_2_io_allocate_bits_source = request_valid & alloc & mshr_insertOH[2] & _request_alloc_cases_T ?
    request_bits_source : _mshrs_2_io_allocate_bits_T_source; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_2_io_allocate_bits_tag = request_valid & alloc & mshr_insertOH[2] & _request_alloc_cases_T ?
    request_bits_tag : _mshrs_2_io_allocate_bits_T_tag; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_2_io_allocate_bits_offset = request_valid & alloc & mshr_insertOH[2] & _request_alloc_cases_T ?
    request_bits_offset : _mshrs_2_io_allocate_bits_T_offset; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_2_io_allocate_bits_put = request_valid & alloc & mshr_insertOH[2] & _request_alloc_cases_T ?
    request_bits_put : _mshrs_2_io_allocate_bits_T_put; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_2_io_allocate_bits_set = request_valid & alloc & mshr_insertOH[2] & _request_alloc_cases_T ?
    request_bits_set : abc_mshrs_2_io_status_bits_set; // @[Scheduler.scala 269:83 271:26 223:28]
  assign abc_mshrs_2_io_allocate_bits_repeat = request_valid & alloc & mshr_insertOH[2] & _request_alloc_cases_T ? 1'h0
     : abc_mshrs_2_io_allocate_bits_tag == abc_mshrs_2_io_status_bits_tag; // @[Scheduler.scala 224:31 269:83 272:33]
  assign abc_mshrs_2_io_directory_valid = directoryFanout[2]; // @[Scheduler.scala 298:44]
  assign abc_mshrs_2_io_directory_bits_dirty = directory_io_result_bits_dirty; // @[Scheduler.scala 299:25]
  assign abc_mshrs_2_io_directory_bits_state = directory_io_result_bits_state; // @[Scheduler.scala 299:25]
  assign abc_mshrs_2_io_directory_bits_clients = directory_io_result_bits_clients; // @[Scheduler.scala 299:25]
  assign abc_mshrs_2_io_directory_bits_tag = directory_io_result_bits_tag; // @[Scheduler.scala 299:25]
  assign abc_mshrs_2_io_directory_bits_hit = directory_io_result_bits_hit; // @[Scheduler.scala 299:25]
  assign abc_mshrs_2_io_directory_bits_way = directory_io_result_bits_way; // @[Scheduler.scala 299:25]
  assign abc_mshrs_2_io_schedule_ready = mshr_selectOH[2]; // @[Scheduler.scala 212:28]
  assign abc_mshrs_2_io_sinkc_valid = sinkC_io_resp_valid & sinkC_io_resp_bits_set == abc_mshrs_2_io_status_bits_set; // @[Scheduler.scala 77:45]
  assign abc_mshrs_2_io_sinkc_bits_last = sinkC_io_resp_bits_last; // @[Scheduler.scala 80:21]
  assign abc_mshrs_2_io_sinkc_bits_tag = sinkC_io_resp_bits_tag; // @[Scheduler.scala 80:21]
  assign abc_mshrs_2_io_sinkc_bits_source = sinkC_io_resp_bits_source; // @[Scheduler.scala 80:21]
  assign abc_mshrs_2_io_sinkc_bits_param = sinkC_io_resp_bits_param; // @[Scheduler.scala 80:21]
  assign abc_mshrs_2_io_sinkc_bits_data = sinkC_io_resp_bits_data; // @[Scheduler.scala 80:21]
  assign abc_mshrs_2_io_sinkd_valid = sinkD_io_resp_valid & sinkD_io_resp_bits_source == 5'h2; // @[Scheduler.scala 78:45]
  assign abc_mshrs_2_io_sinkd_bits_last = sinkD_io_resp_bits_last; // @[Scheduler.scala 81:21]
  assign abc_mshrs_2_io_sinkd_bits_opcode = sinkD_io_resp_bits_opcode; // @[Scheduler.scala 81:21]
  assign abc_mshrs_2_io_sinkd_bits_param = sinkD_io_resp_bits_param; // @[Scheduler.scala 81:21]
  assign abc_mshrs_2_io_sinkd_bits_sink = sinkD_io_resp_bits_sink; // @[Scheduler.scala 81:21]
  assign abc_mshrs_2_io_sinkd_bits_denied = sinkD_io_resp_bits_denied; // @[Scheduler.scala 81:21]
  assign abc_mshrs_2_io_sinke_valid = sinkE_io_resp_valid & sinkE_io_resp_bits_sink == 5'h2; // @[Scheduler.scala 79:45]
  assign abc_mshrs_2_io_nestedwb_set = mshr_selectOH[21] ? c_mshr_io_status_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 144:24]
  assign abc_mshrs_2_io_nestedwb_tag = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : bc_mshr_io_status_bits_tag; // @[Scheduler.scala 145:24]
  assign abc_mshrs_2_io_nestedwb_b_toN = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h0; // @[Scheduler.scala 146:75]
  assign abc_mshrs_2_io_nestedwb_b_toB = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h1; // @[Scheduler.scala 147:75]
  assign abc_mshrs_2_io_nestedwb_b_clr_dirty = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 148:37]
  assign abc_mshrs_2_io_nestedwb_c_set_dirty = _schedule_T_344 & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 149:75]
  assign abc_mshrs_3_clock = clock;
  assign abc_mshrs_3_reset = reset;
  assign abc_mshrs_3_io_allocate_valid = request_valid & alloc & mshr_insertOH[3] & _request_alloc_cases_T |
    mshr_selectOH[3] & will_reload_4; // @[Scheduler.scala 225:25 269:83 270:27]
  assign abc_mshrs_3_io_allocate_bits_prio_0 = request_valid & alloc & mshr_insertOH[3] & _request_alloc_cases_T ?
    request_bits_prio_0 : _mshrs_3_io_allocate_bits_T_prio_0; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_3_io_allocate_bits_prio_1 = request_valid & alloc & mshr_insertOH[3] & _request_alloc_cases_T ? 1'h0
     : _mshrs_3_io_allocate_bits_T_prio_1; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_3_io_allocate_bits_prio_2 = request_valid & alloc & mshr_insertOH[3] & _request_alloc_cases_T ?
    request_bits_prio_2 : _mshrs_3_io_allocate_bits_T_prio_2; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_3_io_allocate_bits_opcode = request_valid & alloc & mshr_insertOH[3] & _request_alloc_cases_T ?
    request_bits_opcode : _mshrs_3_io_allocate_bits_T_opcode; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_3_io_allocate_bits_param = request_valid & alloc & mshr_insertOH[3] & _request_alloc_cases_T ?
    request_bits_param : _mshrs_3_io_allocate_bits_T_param; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_3_io_allocate_bits_size = request_valid & alloc & mshr_insertOH[3] & _request_alloc_cases_T ?
    request_bits_size : _mshrs_3_io_allocate_bits_T_size; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_3_io_allocate_bits_source = request_valid & alloc & mshr_insertOH[3] & _request_alloc_cases_T ?
    request_bits_source : _mshrs_3_io_allocate_bits_T_source; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_3_io_allocate_bits_tag = request_valid & alloc & mshr_insertOH[3] & _request_alloc_cases_T ?
    request_bits_tag : _mshrs_3_io_allocate_bits_T_tag; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_3_io_allocate_bits_offset = request_valid & alloc & mshr_insertOH[3] & _request_alloc_cases_T ?
    request_bits_offset : _mshrs_3_io_allocate_bits_T_offset; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_3_io_allocate_bits_put = request_valid & alloc & mshr_insertOH[3] & _request_alloc_cases_T ?
    request_bits_put : _mshrs_3_io_allocate_bits_T_put; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_3_io_allocate_bits_set = request_valid & alloc & mshr_insertOH[3] & _request_alloc_cases_T ?
    request_bits_set : abc_mshrs_3_io_status_bits_set; // @[Scheduler.scala 269:83 271:26 223:28]
  assign abc_mshrs_3_io_allocate_bits_repeat = request_valid & alloc & mshr_insertOH[3] & _request_alloc_cases_T ? 1'h0
     : abc_mshrs_3_io_allocate_bits_tag == abc_mshrs_3_io_status_bits_tag; // @[Scheduler.scala 224:31 269:83 272:33]
  assign abc_mshrs_3_io_directory_valid = directoryFanout[3]; // @[Scheduler.scala 298:44]
  assign abc_mshrs_3_io_directory_bits_dirty = directory_io_result_bits_dirty; // @[Scheduler.scala 299:25]
  assign abc_mshrs_3_io_directory_bits_state = directory_io_result_bits_state; // @[Scheduler.scala 299:25]
  assign abc_mshrs_3_io_directory_bits_clients = directory_io_result_bits_clients; // @[Scheduler.scala 299:25]
  assign abc_mshrs_3_io_directory_bits_tag = directory_io_result_bits_tag; // @[Scheduler.scala 299:25]
  assign abc_mshrs_3_io_directory_bits_hit = directory_io_result_bits_hit; // @[Scheduler.scala 299:25]
  assign abc_mshrs_3_io_directory_bits_way = directory_io_result_bits_way; // @[Scheduler.scala 299:25]
  assign abc_mshrs_3_io_schedule_ready = mshr_selectOH[3]; // @[Scheduler.scala 212:28]
  assign abc_mshrs_3_io_sinkc_valid = sinkC_io_resp_valid & sinkC_io_resp_bits_set == abc_mshrs_3_io_status_bits_set; // @[Scheduler.scala 77:45]
  assign abc_mshrs_3_io_sinkc_bits_last = sinkC_io_resp_bits_last; // @[Scheduler.scala 80:21]
  assign abc_mshrs_3_io_sinkc_bits_tag = sinkC_io_resp_bits_tag; // @[Scheduler.scala 80:21]
  assign abc_mshrs_3_io_sinkc_bits_source = sinkC_io_resp_bits_source; // @[Scheduler.scala 80:21]
  assign abc_mshrs_3_io_sinkc_bits_param = sinkC_io_resp_bits_param; // @[Scheduler.scala 80:21]
  assign abc_mshrs_3_io_sinkc_bits_data = sinkC_io_resp_bits_data; // @[Scheduler.scala 80:21]
  assign abc_mshrs_3_io_sinkd_valid = sinkD_io_resp_valid & sinkD_io_resp_bits_source == 5'h3; // @[Scheduler.scala 78:45]
  assign abc_mshrs_3_io_sinkd_bits_last = sinkD_io_resp_bits_last; // @[Scheduler.scala 81:21]
  assign abc_mshrs_3_io_sinkd_bits_opcode = sinkD_io_resp_bits_opcode; // @[Scheduler.scala 81:21]
  assign abc_mshrs_3_io_sinkd_bits_param = sinkD_io_resp_bits_param; // @[Scheduler.scala 81:21]
  assign abc_mshrs_3_io_sinkd_bits_sink = sinkD_io_resp_bits_sink; // @[Scheduler.scala 81:21]
  assign abc_mshrs_3_io_sinkd_bits_denied = sinkD_io_resp_bits_denied; // @[Scheduler.scala 81:21]
  assign abc_mshrs_3_io_sinke_valid = sinkE_io_resp_valid & sinkE_io_resp_bits_sink == 5'h3; // @[Scheduler.scala 79:45]
  assign abc_mshrs_3_io_nestedwb_set = mshr_selectOH[21] ? c_mshr_io_status_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 144:24]
  assign abc_mshrs_3_io_nestedwb_tag = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : bc_mshr_io_status_bits_tag; // @[Scheduler.scala 145:24]
  assign abc_mshrs_3_io_nestedwb_b_toN = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h0; // @[Scheduler.scala 146:75]
  assign abc_mshrs_3_io_nestedwb_b_toB = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h1; // @[Scheduler.scala 147:75]
  assign abc_mshrs_3_io_nestedwb_b_clr_dirty = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 148:37]
  assign abc_mshrs_3_io_nestedwb_c_set_dirty = _schedule_T_344 & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 149:75]
  assign abc_mshrs_4_clock = clock;
  assign abc_mshrs_4_reset = reset;
  assign abc_mshrs_4_io_allocate_valid = request_valid & alloc & mshr_insertOH[4] & _request_alloc_cases_T |
    mshr_selectOH[4] & will_reload_5; // @[Scheduler.scala 225:25 269:83 270:27]
  assign abc_mshrs_4_io_allocate_bits_prio_0 = request_valid & alloc & mshr_insertOH[4] & _request_alloc_cases_T ?
    request_bits_prio_0 : _mshrs_4_io_allocate_bits_T_prio_0; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_4_io_allocate_bits_prio_1 = request_valid & alloc & mshr_insertOH[4] & _request_alloc_cases_T ? 1'h0
     : _mshrs_4_io_allocate_bits_T_prio_1; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_4_io_allocate_bits_prio_2 = request_valid & alloc & mshr_insertOH[4] & _request_alloc_cases_T ?
    request_bits_prio_2 : _mshrs_4_io_allocate_bits_T_prio_2; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_4_io_allocate_bits_opcode = request_valid & alloc & mshr_insertOH[4] & _request_alloc_cases_T ?
    request_bits_opcode : _mshrs_4_io_allocate_bits_T_opcode; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_4_io_allocate_bits_param = request_valid & alloc & mshr_insertOH[4] & _request_alloc_cases_T ?
    request_bits_param : _mshrs_4_io_allocate_bits_T_param; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_4_io_allocate_bits_size = request_valid & alloc & mshr_insertOH[4] & _request_alloc_cases_T ?
    request_bits_size : _mshrs_4_io_allocate_bits_T_size; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_4_io_allocate_bits_source = request_valid & alloc & mshr_insertOH[4] & _request_alloc_cases_T ?
    request_bits_source : _mshrs_4_io_allocate_bits_T_source; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_4_io_allocate_bits_tag = request_valid & alloc & mshr_insertOH[4] & _request_alloc_cases_T ?
    request_bits_tag : _mshrs_4_io_allocate_bits_T_tag; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_4_io_allocate_bits_offset = request_valid & alloc & mshr_insertOH[4] & _request_alloc_cases_T ?
    request_bits_offset : _mshrs_4_io_allocate_bits_T_offset; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_4_io_allocate_bits_put = request_valid & alloc & mshr_insertOH[4] & _request_alloc_cases_T ?
    request_bits_put : _mshrs_4_io_allocate_bits_T_put; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_4_io_allocate_bits_set = request_valid & alloc & mshr_insertOH[4] & _request_alloc_cases_T ?
    request_bits_set : abc_mshrs_4_io_status_bits_set; // @[Scheduler.scala 269:83 271:26 223:28]
  assign abc_mshrs_4_io_allocate_bits_repeat = request_valid & alloc & mshr_insertOH[4] & _request_alloc_cases_T ? 1'h0
     : abc_mshrs_4_io_allocate_bits_tag == abc_mshrs_4_io_status_bits_tag; // @[Scheduler.scala 224:31 269:83 272:33]
  assign abc_mshrs_4_io_directory_valid = directoryFanout[4]; // @[Scheduler.scala 298:44]
  assign abc_mshrs_4_io_directory_bits_dirty = directory_io_result_bits_dirty; // @[Scheduler.scala 299:25]
  assign abc_mshrs_4_io_directory_bits_state = directory_io_result_bits_state; // @[Scheduler.scala 299:25]
  assign abc_mshrs_4_io_directory_bits_clients = directory_io_result_bits_clients; // @[Scheduler.scala 299:25]
  assign abc_mshrs_4_io_directory_bits_tag = directory_io_result_bits_tag; // @[Scheduler.scala 299:25]
  assign abc_mshrs_4_io_directory_bits_hit = directory_io_result_bits_hit; // @[Scheduler.scala 299:25]
  assign abc_mshrs_4_io_directory_bits_way = directory_io_result_bits_way; // @[Scheduler.scala 299:25]
  assign abc_mshrs_4_io_schedule_ready = mshr_selectOH[4]; // @[Scheduler.scala 212:28]
  assign abc_mshrs_4_io_sinkc_valid = sinkC_io_resp_valid & sinkC_io_resp_bits_set == abc_mshrs_4_io_status_bits_set; // @[Scheduler.scala 77:45]
  assign abc_mshrs_4_io_sinkc_bits_last = sinkC_io_resp_bits_last; // @[Scheduler.scala 80:21]
  assign abc_mshrs_4_io_sinkc_bits_tag = sinkC_io_resp_bits_tag; // @[Scheduler.scala 80:21]
  assign abc_mshrs_4_io_sinkc_bits_source = sinkC_io_resp_bits_source; // @[Scheduler.scala 80:21]
  assign abc_mshrs_4_io_sinkc_bits_param = sinkC_io_resp_bits_param; // @[Scheduler.scala 80:21]
  assign abc_mshrs_4_io_sinkc_bits_data = sinkC_io_resp_bits_data; // @[Scheduler.scala 80:21]
  assign abc_mshrs_4_io_sinkd_valid = sinkD_io_resp_valid & sinkD_io_resp_bits_source == 5'h4; // @[Scheduler.scala 78:45]
  assign abc_mshrs_4_io_sinkd_bits_last = sinkD_io_resp_bits_last; // @[Scheduler.scala 81:21]
  assign abc_mshrs_4_io_sinkd_bits_opcode = sinkD_io_resp_bits_opcode; // @[Scheduler.scala 81:21]
  assign abc_mshrs_4_io_sinkd_bits_param = sinkD_io_resp_bits_param; // @[Scheduler.scala 81:21]
  assign abc_mshrs_4_io_sinkd_bits_sink = sinkD_io_resp_bits_sink; // @[Scheduler.scala 81:21]
  assign abc_mshrs_4_io_sinkd_bits_denied = sinkD_io_resp_bits_denied; // @[Scheduler.scala 81:21]
  assign abc_mshrs_4_io_sinke_valid = sinkE_io_resp_valid & sinkE_io_resp_bits_sink == 5'h4; // @[Scheduler.scala 79:45]
  assign abc_mshrs_4_io_nestedwb_set = mshr_selectOH[21] ? c_mshr_io_status_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 144:24]
  assign abc_mshrs_4_io_nestedwb_tag = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : bc_mshr_io_status_bits_tag; // @[Scheduler.scala 145:24]
  assign abc_mshrs_4_io_nestedwb_b_toN = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h0; // @[Scheduler.scala 146:75]
  assign abc_mshrs_4_io_nestedwb_b_toB = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h1; // @[Scheduler.scala 147:75]
  assign abc_mshrs_4_io_nestedwb_b_clr_dirty = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 148:37]
  assign abc_mshrs_4_io_nestedwb_c_set_dirty = _schedule_T_344 & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 149:75]
  assign abc_mshrs_5_clock = clock;
  assign abc_mshrs_5_reset = reset;
  assign abc_mshrs_5_io_allocate_valid = request_valid & alloc & mshr_insertOH[5] & _request_alloc_cases_T |
    mshr_selectOH[5] & will_reload_6; // @[Scheduler.scala 225:25 269:83 270:27]
  assign abc_mshrs_5_io_allocate_bits_prio_0 = request_valid & alloc & mshr_insertOH[5] & _request_alloc_cases_T ?
    request_bits_prio_0 : _mshrs_5_io_allocate_bits_T_prio_0; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_5_io_allocate_bits_prio_1 = request_valid & alloc & mshr_insertOH[5] & _request_alloc_cases_T ? 1'h0
     : _mshrs_5_io_allocate_bits_T_prio_1; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_5_io_allocate_bits_prio_2 = request_valid & alloc & mshr_insertOH[5] & _request_alloc_cases_T ?
    request_bits_prio_2 : _mshrs_5_io_allocate_bits_T_prio_2; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_5_io_allocate_bits_opcode = request_valid & alloc & mshr_insertOH[5] & _request_alloc_cases_T ?
    request_bits_opcode : _mshrs_5_io_allocate_bits_T_opcode; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_5_io_allocate_bits_param = request_valid & alloc & mshr_insertOH[5] & _request_alloc_cases_T ?
    request_bits_param : _mshrs_5_io_allocate_bits_T_param; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_5_io_allocate_bits_size = request_valid & alloc & mshr_insertOH[5] & _request_alloc_cases_T ?
    request_bits_size : _mshrs_5_io_allocate_bits_T_size; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_5_io_allocate_bits_source = request_valid & alloc & mshr_insertOH[5] & _request_alloc_cases_T ?
    request_bits_source : _mshrs_5_io_allocate_bits_T_source; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_5_io_allocate_bits_tag = request_valid & alloc & mshr_insertOH[5] & _request_alloc_cases_T ?
    request_bits_tag : _mshrs_5_io_allocate_bits_T_tag; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_5_io_allocate_bits_offset = request_valid & alloc & mshr_insertOH[5] & _request_alloc_cases_T ?
    request_bits_offset : _mshrs_5_io_allocate_bits_T_offset; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_5_io_allocate_bits_put = request_valid & alloc & mshr_insertOH[5] & _request_alloc_cases_T ?
    request_bits_put : _mshrs_5_io_allocate_bits_T_put; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_5_io_allocate_bits_set = request_valid & alloc & mshr_insertOH[5] & _request_alloc_cases_T ?
    request_bits_set : abc_mshrs_5_io_status_bits_set; // @[Scheduler.scala 269:83 271:26 223:28]
  assign abc_mshrs_5_io_allocate_bits_repeat = request_valid & alloc & mshr_insertOH[5] & _request_alloc_cases_T ? 1'h0
     : abc_mshrs_5_io_allocate_bits_tag == abc_mshrs_5_io_status_bits_tag; // @[Scheduler.scala 224:31 269:83 272:33]
  assign abc_mshrs_5_io_directory_valid = directoryFanout[5]; // @[Scheduler.scala 298:44]
  assign abc_mshrs_5_io_directory_bits_dirty = directory_io_result_bits_dirty; // @[Scheduler.scala 299:25]
  assign abc_mshrs_5_io_directory_bits_state = directory_io_result_bits_state; // @[Scheduler.scala 299:25]
  assign abc_mshrs_5_io_directory_bits_clients = directory_io_result_bits_clients; // @[Scheduler.scala 299:25]
  assign abc_mshrs_5_io_directory_bits_tag = directory_io_result_bits_tag; // @[Scheduler.scala 299:25]
  assign abc_mshrs_5_io_directory_bits_hit = directory_io_result_bits_hit; // @[Scheduler.scala 299:25]
  assign abc_mshrs_5_io_directory_bits_way = directory_io_result_bits_way; // @[Scheduler.scala 299:25]
  assign abc_mshrs_5_io_schedule_ready = mshr_selectOH[5]; // @[Scheduler.scala 212:28]
  assign abc_mshrs_5_io_sinkc_valid = sinkC_io_resp_valid & sinkC_io_resp_bits_set == abc_mshrs_5_io_status_bits_set; // @[Scheduler.scala 77:45]
  assign abc_mshrs_5_io_sinkc_bits_last = sinkC_io_resp_bits_last; // @[Scheduler.scala 80:21]
  assign abc_mshrs_5_io_sinkc_bits_tag = sinkC_io_resp_bits_tag; // @[Scheduler.scala 80:21]
  assign abc_mshrs_5_io_sinkc_bits_source = sinkC_io_resp_bits_source; // @[Scheduler.scala 80:21]
  assign abc_mshrs_5_io_sinkc_bits_param = sinkC_io_resp_bits_param; // @[Scheduler.scala 80:21]
  assign abc_mshrs_5_io_sinkc_bits_data = sinkC_io_resp_bits_data; // @[Scheduler.scala 80:21]
  assign abc_mshrs_5_io_sinkd_valid = sinkD_io_resp_valid & sinkD_io_resp_bits_source == 5'h5; // @[Scheduler.scala 78:45]
  assign abc_mshrs_5_io_sinkd_bits_last = sinkD_io_resp_bits_last; // @[Scheduler.scala 81:21]
  assign abc_mshrs_5_io_sinkd_bits_opcode = sinkD_io_resp_bits_opcode; // @[Scheduler.scala 81:21]
  assign abc_mshrs_5_io_sinkd_bits_param = sinkD_io_resp_bits_param; // @[Scheduler.scala 81:21]
  assign abc_mshrs_5_io_sinkd_bits_sink = sinkD_io_resp_bits_sink; // @[Scheduler.scala 81:21]
  assign abc_mshrs_5_io_sinkd_bits_denied = sinkD_io_resp_bits_denied; // @[Scheduler.scala 81:21]
  assign abc_mshrs_5_io_sinke_valid = sinkE_io_resp_valid & sinkE_io_resp_bits_sink == 5'h5; // @[Scheduler.scala 79:45]
  assign abc_mshrs_5_io_nestedwb_set = mshr_selectOH[21] ? c_mshr_io_status_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 144:24]
  assign abc_mshrs_5_io_nestedwb_tag = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : bc_mshr_io_status_bits_tag; // @[Scheduler.scala 145:24]
  assign abc_mshrs_5_io_nestedwb_b_toN = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h0; // @[Scheduler.scala 146:75]
  assign abc_mshrs_5_io_nestedwb_b_toB = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h1; // @[Scheduler.scala 147:75]
  assign abc_mshrs_5_io_nestedwb_b_clr_dirty = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 148:37]
  assign abc_mshrs_5_io_nestedwb_c_set_dirty = _schedule_T_344 & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 149:75]
  assign abc_mshrs_6_clock = clock;
  assign abc_mshrs_6_reset = reset;
  assign abc_mshrs_6_io_allocate_valid = request_valid & alloc & mshr_insertOH[6] & _request_alloc_cases_T |
    mshr_selectOH[6] & will_reload_7; // @[Scheduler.scala 225:25 269:83 270:27]
  assign abc_mshrs_6_io_allocate_bits_prio_0 = request_valid & alloc & mshr_insertOH[6] & _request_alloc_cases_T ?
    request_bits_prio_0 : _mshrs_6_io_allocate_bits_T_prio_0; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_6_io_allocate_bits_prio_1 = request_valid & alloc & mshr_insertOH[6] & _request_alloc_cases_T ? 1'h0
     : _mshrs_6_io_allocate_bits_T_prio_1; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_6_io_allocate_bits_prio_2 = request_valid & alloc & mshr_insertOH[6] & _request_alloc_cases_T ?
    request_bits_prio_2 : _mshrs_6_io_allocate_bits_T_prio_2; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_6_io_allocate_bits_opcode = request_valid & alloc & mshr_insertOH[6] & _request_alloc_cases_T ?
    request_bits_opcode : _mshrs_6_io_allocate_bits_T_opcode; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_6_io_allocate_bits_param = request_valid & alloc & mshr_insertOH[6] & _request_alloc_cases_T ?
    request_bits_param : _mshrs_6_io_allocate_bits_T_param; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_6_io_allocate_bits_size = request_valid & alloc & mshr_insertOH[6] & _request_alloc_cases_T ?
    request_bits_size : _mshrs_6_io_allocate_bits_T_size; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_6_io_allocate_bits_source = request_valid & alloc & mshr_insertOH[6] & _request_alloc_cases_T ?
    request_bits_source : _mshrs_6_io_allocate_bits_T_source; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_6_io_allocate_bits_tag = request_valid & alloc & mshr_insertOH[6] & _request_alloc_cases_T ?
    request_bits_tag : _mshrs_6_io_allocate_bits_T_tag; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_6_io_allocate_bits_offset = request_valid & alloc & mshr_insertOH[6] & _request_alloc_cases_T ?
    request_bits_offset : _mshrs_6_io_allocate_bits_T_offset; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_6_io_allocate_bits_put = request_valid & alloc & mshr_insertOH[6] & _request_alloc_cases_T ?
    request_bits_put : _mshrs_6_io_allocate_bits_T_put; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_6_io_allocate_bits_set = request_valid & alloc & mshr_insertOH[6] & _request_alloc_cases_T ?
    request_bits_set : abc_mshrs_6_io_status_bits_set; // @[Scheduler.scala 269:83 271:26 223:28]
  assign abc_mshrs_6_io_allocate_bits_repeat = request_valid & alloc & mshr_insertOH[6] & _request_alloc_cases_T ? 1'h0
     : abc_mshrs_6_io_allocate_bits_tag == abc_mshrs_6_io_status_bits_tag; // @[Scheduler.scala 224:31 269:83 272:33]
  assign abc_mshrs_6_io_directory_valid = directoryFanout[6]; // @[Scheduler.scala 298:44]
  assign abc_mshrs_6_io_directory_bits_dirty = directory_io_result_bits_dirty; // @[Scheduler.scala 299:25]
  assign abc_mshrs_6_io_directory_bits_state = directory_io_result_bits_state; // @[Scheduler.scala 299:25]
  assign abc_mshrs_6_io_directory_bits_clients = directory_io_result_bits_clients; // @[Scheduler.scala 299:25]
  assign abc_mshrs_6_io_directory_bits_tag = directory_io_result_bits_tag; // @[Scheduler.scala 299:25]
  assign abc_mshrs_6_io_directory_bits_hit = directory_io_result_bits_hit; // @[Scheduler.scala 299:25]
  assign abc_mshrs_6_io_directory_bits_way = directory_io_result_bits_way; // @[Scheduler.scala 299:25]
  assign abc_mshrs_6_io_schedule_ready = mshr_selectOH[6]; // @[Scheduler.scala 212:28]
  assign abc_mshrs_6_io_sinkc_valid = sinkC_io_resp_valid & sinkC_io_resp_bits_set == abc_mshrs_6_io_status_bits_set; // @[Scheduler.scala 77:45]
  assign abc_mshrs_6_io_sinkc_bits_last = sinkC_io_resp_bits_last; // @[Scheduler.scala 80:21]
  assign abc_mshrs_6_io_sinkc_bits_tag = sinkC_io_resp_bits_tag; // @[Scheduler.scala 80:21]
  assign abc_mshrs_6_io_sinkc_bits_source = sinkC_io_resp_bits_source; // @[Scheduler.scala 80:21]
  assign abc_mshrs_6_io_sinkc_bits_param = sinkC_io_resp_bits_param; // @[Scheduler.scala 80:21]
  assign abc_mshrs_6_io_sinkc_bits_data = sinkC_io_resp_bits_data; // @[Scheduler.scala 80:21]
  assign abc_mshrs_6_io_sinkd_valid = sinkD_io_resp_valid & sinkD_io_resp_bits_source == 5'h6; // @[Scheduler.scala 78:45]
  assign abc_mshrs_6_io_sinkd_bits_last = sinkD_io_resp_bits_last; // @[Scheduler.scala 81:21]
  assign abc_mshrs_6_io_sinkd_bits_opcode = sinkD_io_resp_bits_opcode; // @[Scheduler.scala 81:21]
  assign abc_mshrs_6_io_sinkd_bits_param = sinkD_io_resp_bits_param; // @[Scheduler.scala 81:21]
  assign abc_mshrs_6_io_sinkd_bits_sink = sinkD_io_resp_bits_sink; // @[Scheduler.scala 81:21]
  assign abc_mshrs_6_io_sinkd_bits_denied = sinkD_io_resp_bits_denied; // @[Scheduler.scala 81:21]
  assign abc_mshrs_6_io_sinke_valid = sinkE_io_resp_valid & sinkE_io_resp_bits_sink == 5'h6; // @[Scheduler.scala 79:45]
  assign abc_mshrs_6_io_nestedwb_set = mshr_selectOH[21] ? c_mshr_io_status_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 144:24]
  assign abc_mshrs_6_io_nestedwb_tag = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : bc_mshr_io_status_bits_tag; // @[Scheduler.scala 145:24]
  assign abc_mshrs_6_io_nestedwb_b_toN = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h0; // @[Scheduler.scala 146:75]
  assign abc_mshrs_6_io_nestedwb_b_toB = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h1; // @[Scheduler.scala 147:75]
  assign abc_mshrs_6_io_nestedwb_b_clr_dirty = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 148:37]
  assign abc_mshrs_6_io_nestedwb_c_set_dirty = _schedule_T_344 & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 149:75]
  assign abc_mshrs_7_clock = clock;
  assign abc_mshrs_7_reset = reset;
  assign abc_mshrs_7_io_allocate_valid = request_valid & alloc & mshr_insertOH[7] & _request_alloc_cases_T |
    mshr_selectOH[7] & will_reload_8; // @[Scheduler.scala 225:25 269:83 270:27]
  assign abc_mshrs_7_io_allocate_bits_prio_0 = request_valid & alloc & mshr_insertOH[7] & _request_alloc_cases_T ?
    request_bits_prio_0 : _mshrs_7_io_allocate_bits_T_prio_0; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_7_io_allocate_bits_prio_1 = request_valid & alloc & mshr_insertOH[7] & _request_alloc_cases_T ? 1'h0
     : _mshrs_7_io_allocate_bits_T_prio_1; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_7_io_allocate_bits_prio_2 = request_valid & alloc & mshr_insertOH[7] & _request_alloc_cases_T ?
    request_bits_prio_2 : _mshrs_7_io_allocate_bits_T_prio_2; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_7_io_allocate_bits_opcode = request_valid & alloc & mshr_insertOH[7] & _request_alloc_cases_T ?
    request_bits_opcode : _mshrs_7_io_allocate_bits_T_opcode; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_7_io_allocate_bits_param = request_valid & alloc & mshr_insertOH[7] & _request_alloc_cases_T ?
    request_bits_param : _mshrs_7_io_allocate_bits_T_param; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_7_io_allocate_bits_size = request_valid & alloc & mshr_insertOH[7] & _request_alloc_cases_T ?
    request_bits_size : _mshrs_7_io_allocate_bits_T_size; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_7_io_allocate_bits_source = request_valid & alloc & mshr_insertOH[7] & _request_alloc_cases_T ?
    request_bits_source : _mshrs_7_io_allocate_bits_T_source; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_7_io_allocate_bits_tag = request_valid & alloc & mshr_insertOH[7] & _request_alloc_cases_T ?
    request_bits_tag : _mshrs_7_io_allocate_bits_T_tag; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_7_io_allocate_bits_offset = request_valid & alloc & mshr_insertOH[7] & _request_alloc_cases_T ?
    request_bits_offset : _mshrs_7_io_allocate_bits_T_offset; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_7_io_allocate_bits_put = request_valid & alloc & mshr_insertOH[7] & _request_alloc_cases_T ?
    request_bits_put : _mshrs_7_io_allocate_bits_T_put; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_7_io_allocate_bits_set = request_valid & alloc & mshr_insertOH[7] & _request_alloc_cases_T ?
    request_bits_set : abc_mshrs_7_io_status_bits_set; // @[Scheduler.scala 269:83 271:26 223:28]
  assign abc_mshrs_7_io_allocate_bits_repeat = request_valid & alloc & mshr_insertOH[7] & _request_alloc_cases_T ? 1'h0
     : abc_mshrs_7_io_allocate_bits_tag == abc_mshrs_7_io_status_bits_tag; // @[Scheduler.scala 224:31 269:83 272:33]
  assign abc_mshrs_7_io_directory_valid = directoryFanout[7]; // @[Scheduler.scala 298:44]
  assign abc_mshrs_7_io_directory_bits_dirty = directory_io_result_bits_dirty; // @[Scheduler.scala 299:25]
  assign abc_mshrs_7_io_directory_bits_state = directory_io_result_bits_state; // @[Scheduler.scala 299:25]
  assign abc_mshrs_7_io_directory_bits_clients = directory_io_result_bits_clients; // @[Scheduler.scala 299:25]
  assign abc_mshrs_7_io_directory_bits_tag = directory_io_result_bits_tag; // @[Scheduler.scala 299:25]
  assign abc_mshrs_7_io_directory_bits_hit = directory_io_result_bits_hit; // @[Scheduler.scala 299:25]
  assign abc_mshrs_7_io_directory_bits_way = directory_io_result_bits_way; // @[Scheduler.scala 299:25]
  assign abc_mshrs_7_io_schedule_ready = mshr_selectOH[7]; // @[Scheduler.scala 212:28]
  assign abc_mshrs_7_io_sinkc_valid = sinkC_io_resp_valid & sinkC_io_resp_bits_set == abc_mshrs_7_io_status_bits_set; // @[Scheduler.scala 77:45]
  assign abc_mshrs_7_io_sinkc_bits_last = sinkC_io_resp_bits_last; // @[Scheduler.scala 80:21]
  assign abc_mshrs_7_io_sinkc_bits_tag = sinkC_io_resp_bits_tag; // @[Scheduler.scala 80:21]
  assign abc_mshrs_7_io_sinkc_bits_source = sinkC_io_resp_bits_source; // @[Scheduler.scala 80:21]
  assign abc_mshrs_7_io_sinkc_bits_param = sinkC_io_resp_bits_param; // @[Scheduler.scala 80:21]
  assign abc_mshrs_7_io_sinkc_bits_data = sinkC_io_resp_bits_data; // @[Scheduler.scala 80:21]
  assign abc_mshrs_7_io_sinkd_valid = sinkD_io_resp_valid & sinkD_io_resp_bits_source == 5'h7; // @[Scheduler.scala 78:45]
  assign abc_mshrs_7_io_sinkd_bits_last = sinkD_io_resp_bits_last; // @[Scheduler.scala 81:21]
  assign abc_mshrs_7_io_sinkd_bits_opcode = sinkD_io_resp_bits_opcode; // @[Scheduler.scala 81:21]
  assign abc_mshrs_7_io_sinkd_bits_param = sinkD_io_resp_bits_param; // @[Scheduler.scala 81:21]
  assign abc_mshrs_7_io_sinkd_bits_sink = sinkD_io_resp_bits_sink; // @[Scheduler.scala 81:21]
  assign abc_mshrs_7_io_sinkd_bits_denied = sinkD_io_resp_bits_denied; // @[Scheduler.scala 81:21]
  assign abc_mshrs_7_io_sinke_valid = sinkE_io_resp_valid & sinkE_io_resp_bits_sink == 5'h7; // @[Scheduler.scala 79:45]
  assign abc_mshrs_7_io_nestedwb_set = mshr_selectOH[21] ? c_mshr_io_status_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 144:24]
  assign abc_mshrs_7_io_nestedwb_tag = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : bc_mshr_io_status_bits_tag; // @[Scheduler.scala 145:24]
  assign abc_mshrs_7_io_nestedwb_b_toN = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h0; // @[Scheduler.scala 146:75]
  assign abc_mshrs_7_io_nestedwb_b_toB = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h1; // @[Scheduler.scala 147:75]
  assign abc_mshrs_7_io_nestedwb_b_clr_dirty = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 148:37]
  assign abc_mshrs_7_io_nestedwb_c_set_dirty = _schedule_T_344 & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 149:75]
  assign abc_mshrs_8_clock = clock;
  assign abc_mshrs_8_reset = reset;
  assign abc_mshrs_8_io_allocate_valid = request_valid & alloc & mshr_insertOH[8] & _request_alloc_cases_T |
    mshr_selectOH[8] & will_reload_9; // @[Scheduler.scala 225:25 269:83 270:27]
  assign abc_mshrs_8_io_allocate_bits_prio_0 = request_valid & alloc & mshr_insertOH[8] & _request_alloc_cases_T ?
    request_bits_prio_0 : _mshrs_8_io_allocate_bits_T_prio_0; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_8_io_allocate_bits_prio_1 = request_valid & alloc & mshr_insertOH[8] & _request_alloc_cases_T ? 1'h0
     : _mshrs_8_io_allocate_bits_T_prio_1; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_8_io_allocate_bits_prio_2 = request_valid & alloc & mshr_insertOH[8] & _request_alloc_cases_T ?
    request_bits_prio_2 : _mshrs_8_io_allocate_bits_T_prio_2; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_8_io_allocate_bits_opcode = request_valid & alloc & mshr_insertOH[8] & _request_alloc_cases_T ?
    request_bits_opcode : _mshrs_8_io_allocate_bits_T_opcode; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_8_io_allocate_bits_param = request_valid & alloc & mshr_insertOH[8] & _request_alloc_cases_T ?
    request_bits_param : _mshrs_8_io_allocate_bits_T_param; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_8_io_allocate_bits_size = request_valid & alloc & mshr_insertOH[8] & _request_alloc_cases_T ?
    request_bits_size : _mshrs_8_io_allocate_bits_T_size; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_8_io_allocate_bits_source = request_valid & alloc & mshr_insertOH[8] & _request_alloc_cases_T ?
    request_bits_source : _mshrs_8_io_allocate_bits_T_source; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_8_io_allocate_bits_tag = request_valid & alloc & mshr_insertOH[8] & _request_alloc_cases_T ?
    request_bits_tag : _mshrs_8_io_allocate_bits_T_tag; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_8_io_allocate_bits_offset = request_valid & alloc & mshr_insertOH[8] & _request_alloc_cases_T ?
    request_bits_offset : _mshrs_8_io_allocate_bits_T_offset; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_8_io_allocate_bits_put = request_valid & alloc & mshr_insertOH[8] & _request_alloc_cases_T ?
    request_bits_put : _mshrs_8_io_allocate_bits_T_put; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_8_io_allocate_bits_set = request_valid & alloc & mshr_insertOH[8] & _request_alloc_cases_T ?
    request_bits_set : abc_mshrs_8_io_status_bits_set; // @[Scheduler.scala 269:83 271:26 223:28]
  assign abc_mshrs_8_io_allocate_bits_repeat = request_valid & alloc & mshr_insertOH[8] & _request_alloc_cases_T ? 1'h0
     : abc_mshrs_8_io_allocate_bits_tag == abc_mshrs_8_io_status_bits_tag; // @[Scheduler.scala 224:31 269:83 272:33]
  assign abc_mshrs_8_io_directory_valid = directoryFanout[8]; // @[Scheduler.scala 298:44]
  assign abc_mshrs_8_io_directory_bits_dirty = directory_io_result_bits_dirty; // @[Scheduler.scala 299:25]
  assign abc_mshrs_8_io_directory_bits_state = directory_io_result_bits_state; // @[Scheduler.scala 299:25]
  assign abc_mshrs_8_io_directory_bits_clients = directory_io_result_bits_clients; // @[Scheduler.scala 299:25]
  assign abc_mshrs_8_io_directory_bits_tag = directory_io_result_bits_tag; // @[Scheduler.scala 299:25]
  assign abc_mshrs_8_io_directory_bits_hit = directory_io_result_bits_hit; // @[Scheduler.scala 299:25]
  assign abc_mshrs_8_io_directory_bits_way = directory_io_result_bits_way; // @[Scheduler.scala 299:25]
  assign abc_mshrs_8_io_schedule_ready = mshr_selectOH[8]; // @[Scheduler.scala 212:28]
  assign abc_mshrs_8_io_sinkc_valid = sinkC_io_resp_valid & sinkC_io_resp_bits_set == abc_mshrs_8_io_status_bits_set; // @[Scheduler.scala 77:45]
  assign abc_mshrs_8_io_sinkc_bits_last = sinkC_io_resp_bits_last; // @[Scheduler.scala 80:21]
  assign abc_mshrs_8_io_sinkc_bits_tag = sinkC_io_resp_bits_tag; // @[Scheduler.scala 80:21]
  assign abc_mshrs_8_io_sinkc_bits_source = sinkC_io_resp_bits_source; // @[Scheduler.scala 80:21]
  assign abc_mshrs_8_io_sinkc_bits_param = sinkC_io_resp_bits_param; // @[Scheduler.scala 80:21]
  assign abc_mshrs_8_io_sinkc_bits_data = sinkC_io_resp_bits_data; // @[Scheduler.scala 80:21]
  assign abc_mshrs_8_io_sinkd_valid = sinkD_io_resp_valid & sinkD_io_resp_bits_source == 5'h8; // @[Scheduler.scala 78:45]
  assign abc_mshrs_8_io_sinkd_bits_last = sinkD_io_resp_bits_last; // @[Scheduler.scala 81:21]
  assign abc_mshrs_8_io_sinkd_bits_opcode = sinkD_io_resp_bits_opcode; // @[Scheduler.scala 81:21]
  assign abc_mshrs_8_io_sinkd_bits_param = sinkD_io_resp_bits_param; // @[Scheduler.scala 81:21]
  assign abc_mshrs_8_io_sinkd_bits_sink = sinkD_io_resp_bits_sink; // @[Scheduler.scala 81:21]
  assign abc_mshrs_8_io_sinkd_bits_denied = sinkD_io_resp_bits_denied; // @[Scheduler.scala 81:21]
  assign abc_mshrs_8_io_sinke_valid = sinkE_io_resp_valid & sinkE_io_resp_bits_sink == 5'h8; // @[Scheduler.scala 79:45]
  assign abc_mshrs_8_io_nestedwb_set = mshr_selectOH[21] ? c_mshr_io_status_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 144:24]
  assign abc_mshrs_8_io_nestedwb_tag = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : bc_mshr_io_status_bits_tag; // @[Scheduler.scala 145:24]
  assign abc_mshrs_8_io_nestedwb_b_toN = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h0; // @[Scheduler.scala 146:75]
  assign abc_mshrs_8_io_nestedwb_b_toB = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h1; // @[Scheduler.scala 147:75]
  assign abc_mshrs_8_io_nestedwb_b_clr_dirty = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 148:37]
  assign abc_mshrs_8_io_nestedwb_c_set_dirty = _schedule_T_344 & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 149:75]
  assign abc_mshrs_9_clock = clock;
  assign abc_mshrs_9_reset = reset;
  assign abc_mshrs_9_io_allocate_valid = request_valid & alloc & mshr_insertOH[9] & _request_alloc_cases_T |
    mshr_selectOH[9] & will_reload_10; // @[Scheduler.scala 225:25 269:83 270:27]
  assign abc_mshrs_9_io_allocate_bits_prio_0 = request_valid & alloc & mshr_insertOH[9] & _request_alloc_cases_T ?
    request_bits_prio_0 : _mshrs_9_io_allocate_bits_T_prio_0; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_9_io_allocate_bits_prio_1 = request_valid & alloc & mshr_insertOH[9] & _request_alloc_cases_T ? 1'h0
     : _mshrs_9_io_allocate_bits_T_prio_1; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_9_io_allocate_bits_prio_2 = request_valid & alloc & mshr_insertOH[9] & _request_alloc_cases_T ?
    request_bits_prio_2 : _mshrs_9_io_allocate_bits_T_prio_2; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_9_io_allocate_bits_opcode = request_valid & alloc & mshr_insertOH[9] & _request_alloc_cases_T ?
    request_bits_opcode : _mshrs_9_io_allocate_bits_T_opcode; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_9_io_allocate_bits_param = request_valid & alloc & mshr_insertOH[9] & _request_alloc_cases_T ?
    request_bits_param : _mshrs_9_io_allocate_bits_T_param; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_9_io_allocate_bits_size = request_valid & alloc & mshr_insertOH[9] & _request_alloc_cases_T ?
    request_bits_size : _mshrs_9_io_allocate_bits_T_size; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_9_io_allocate_bits_source = request_valid & alloc & mshr_insertOH[9] & _request_alloc_cases_T ?
    request_bits_source : _mshrs_9_io_allocate_bits_T_source; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_9_io_allocate_bits_tag = request_valid & alloc & mshr_insertOH[9] & _request_alloc_cases_T ?
    request_bits_tag : _mshrs_9_io_allocate_bits_T_tag; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_9_io_allocate_bits_offset = request_valid & alloc & mshr_insertOH[9] & _request_alloc_cases_T ?
    request_bits_offset : _mshrs_9_io_allocate_bits_T_offset; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_9_io_allocate_bits_put = request_valid & alloc & mshr_insertOH[9] & _request_alloc_cases_T ?
    request_bits_put : _mshrs_9_io_allocate_bits_T_put; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_9_io_allocate_bits_set = request_valid & alloc & mshr_insertOH[9] & _request_alloc_cases_T ?
    request_bits_set : abc_mshrs_9_io_status_bits_set; // @[Scheduler.scala 269:83 271:26 223:28]
  assign abc_mshrs_9_io_allocate_bits_repeat = request_valid & alloc & mshr_insertOH[9] & _request_alloc_cases_T ? 1'h0
     : abc_mshrs_9_io_allocate_bits_tag == abc_mshrs_9_io_status_bits_tag; // @[Scheduler.scala 224:31 269:83 272:33]
  assign abc_mshrs_9_io_directory_valid = directoryFanout[9]; // @[Scheduler.scala 298:44]
  assign abc_mshrs_9_io_directory_bits_dirty = directory_io_result_bits_dirty; // @[Scheduler.scala 299:25]
  assign abc_mshrs_9_io_directory_bits_state = directory_io_result_bits_state; // @[Scheduler.scala 299:25]
  assign abc_mshrs_9_io_directory_bits_clients = directory_io_result_bits_clients; // @[Scheduler.scala 299:25]
  assign abc_mshrs_9_io_directory_bits_tag = directory_io_result_bits_tag; // @[Scheduler.scala 299:25]
  assign abc_mshrs_9_io_directory_bits_hit = directory_io_result_bits_hit; // @[Scheduler.scala 299:25]
  assign abc_mshrs_9_io_directory_bits_way = directory_io_result_bits_way; // @[Scheduler.scala 299:25]
  assign abc_mshrs_9_io_schedule_ready = mshr_selectOH[9]; // @[Scheduler.scala 212:28]
  assign abc_mshrs_9_io_sinkc_valid = sinkC_io_resp_valid & sinkC_io_resp_bits_set == abc_mshrs_9_io_status_bits_set; // @[Scheduler.scala 77:45]
  assign abc_mshrs_9_io_sinkc_bits_last = sinkC_io_resp_bits_last; // @[Scheduler.scala 80:21]
  assign abc_mshrs_9_io_sinkc_bits_tag = sinkC_io_resp_bits_tag; // @[Scheduler.scala 80:21]
  assign abc_mshrs_9_io_sinkc_bits_source = sinkC_io_resp_bits_source; // @[Scheduler.scala 80:21]
  assign abc_mshrs_9_io_sinkc_bits_param = sinkC_io_resp_bits_param; // @[Scheduler.scala 80:21]
  assign abc_mshrs_9_io_sinkc_bits_data = sinkC_io_resp_bits_data; // @[Scheduler.scala 80:21]
  assign abc_mshrs_9_io_sinkd_valid = sinkD_io_resp_valid & sinkD_io_resp_bits_source == 5'h9; // @[Scheduler.scala 78:45]
  assign abc_mshrs_9_io_sinkd_bits_last = sinkD_io_resp_bits_last; // @[Scheduler.scala 81:21]
  assign abc_mshrs_9_io_sinkd_bits_opcode = sinkD_io_resp_bits_opcode; // @[Scheduler.scala 81:21]
  assign abc_mshrs_9_io_sinkd_bits_param = sinkD_io_resp_bits_param; // @[Scheduler.scala 81:21]
  assign abc_mshrs_9_io_sinkd_bits_sink = sinkD_io_resp_bits_sink; // @[Scheduler.scala 81:21]
  assign abc_mshrs_9_io_sinkd_bits_denied = sinkD_io_resp_bits_denied; // @[Scheduler.scala 81:21]
  assign abc_mshrs_9_io_sinke_valid = sinkE_io_resp_valid & sinkE_io_resp_bits_sink == 5'h9; // @[Scheduler.scala 79:45]
  assign abc_mshrs_9_io_nestedwb_set = mshr_selectOH[21] ? c_mshr_io_status_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 144:24]
  assign abc_mshrs_9_io_nestedwb_tag = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : bc_mshr_io_status_bits_tag; // @[Scheduler.scala 145:24]
  assign abc_mshrs_9_io_nestedwb_b_toN = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h0; // @[Scheduler.scala 146:75]
  assign abc_mshrs_9_io_nestedwb_b_toB = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h1; // @[Scheduler.scala 147:75]
  assign abc_mshrs_9_io_nestedwb_b_clr_dirty = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 148:37]
  assign abc_mshrs_9_io_nestedwb_c_set_dirty = _schedule_T_344 & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 149:75]
  assign abc_mshrs_10_clock = clock;
  assign abc_mshrs_10_reset = reset;
  assign abc_mshrs_10_io_allocate_valid = request_valid & alloc & mshr_insertOH[10] & _request_alloc_cases_T |
    mshr_selectOH[10] & will_reload_11; // @[Scheduler.scala 225:25 269:83 270:27]
  assign abc_mshrs_10_io_allocate_bits_prio_0 = request_valid & alloc & mshr_insertOH[10] & _request_alloc_cases_T ?
    request_bits_prio_0 : _mshrs_10_io_allocate_bits_T_prio_0; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_10_io_allocate_bits_prio_1 = request_valid & alloc & mshr_insertOH[10] & _request_alloc_cases_T ? 1'h0
     : _mshrs_10_io_allocate_bits_T_prio_1; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_10_io_allocate_bits_prio_2 = request_valid & alloc & mshr_insertOH[10] & _request_alloc_cases_T ?
    request_bits_prio_2 : _mshrs_10_io_allocate_bits_T_prio_2; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_10_io_allocate_bits_opcode = request_valid & alloc & mshr_insertOH[10] & _request_alloc_cases_T ?
    request_bits_opcode : _mshrs_10_io_allocate_bits_T_opcode; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_10_io_allocate_bits_param = request_valid & alloc & mshr_insertOH[10] & _request_alloc_cases_T ?
    request_bits_param : _mshrs_10_io_allocate_bits_T_param; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_10_io_allocate_bits_size = request_valid & alloc & mshr_insertOH[10] & _request_alloc_cases_T ?
    request_bits_size : _mshrs_10_io_allocate_bits_T_size; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_10_io_allocate_bits_source = request_valid & alloc & mshr_insertOH[10] & _request_alloc_cases_T ?
    request_bits_source : _mshrs_10_io_allocate_bits_T_source; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_10_io_allocate_bits_tag = request_valid & alloc & mshr_insertOH[10] & _request_alloc_cases_T ?
    request_bits_tag : _mshrs_10_io_allocate_bits_T_tag; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_10_io_allocate_bits_offset = request_valid & alloc & mshr_insertOH[10] & _request_alloc_cases_T ?
    request_bits_offset : _mshrs_10_io_allocate_bits_T_offset; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_10_io_allocate_bits_put = request_valid & alloc & mshr_insertOH[10] & _request_alloc_cases_T ?
    request_bits_put : _mshrs_10_io_allocate_bits_T_put; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_10_io_allocate_bits_set = request_valid & alloc & mshr_insertOH[10] & _request_alloc_cases_T ?
    request_bits_set : abc_mshrs_10_io_status_bits_set; // @[Scheduler.scala 269:83 271:26 223:28]
  assign abc_mshrs_10_io_allocate_bits_repeat = request_valid & alloc & mshr_insertOH[10] & _request_alloc_cases_T ? 1'h0
     : abc_mshrs_10_io_allocate_bits_tag == abc_mshrs_10_io_status_bits_tag; // @[Scheduler.scala 224:31 269:83 272:33]
  assign abc_mshrs_10_io_directory_valid = directoryFanout[10]; // @[Scheduler.scala 298:44]
  assign abc_mshrs_10_io_directory_bits_dirty = directory_io_result_bits_dirty; // @[Scheduler.scala 299:25]
  assign abc_mshrs_10_io_directory_bits_state = directory_io_result_bits_state; // @[Scheduler.scala 299:25]
  assign abc_mshrs_10_io_directory_bits_clients = directory_io_result_bits_clients; // @[Scheduler.scala 299:25]
  assign abc_mshrs_10_io_directory_bits_tag = directory_io_result_bits_tag; // @[Scheduler.scala 299:25]
  assign abc_mshrs_10_io_directory_bits_hit = directory_io_result_bits_hit; // @[Scheduler.scala 299:25]
  assign abc_mshrs_10_io_directory_bits_way = directory_io_result_bits_way; // @[Scheduler.scala 299:25]
  assign abc_mshrs_10_io_schedule_ready = mshr_selectOH[10]; // @[Scheduler.scala 212:28]
  assign abc_mshrs_10_io_sinkc_valid = sinkC_io_resp_valid & sinkC_io_resp_bits_set == abc_mshrs_10_io_status_bits_set; // @[Scheduler.scala 77:45]
  assign abc_mshrs_10_io_sinkc_bits_last = sinkC_io_resp_bits_last; // @[Scheduler.scala 80:21]
  assign abc_mshrs_10_io_sinkc_bits_tag = sinkC_io_resp_bits_tag; // @[Scheduler.scala 80:21]
  assign abc_mshrs_10_io_sinkc_bits_source = sinkC_io_resp_bits_source; // @[Scheduler.scala 80:21]
  assign abc_mshrs_10_io_sinkc_bits_param = sinkC_io_resp_bits_param; // @[Scheduler.scala 80:21]
  assign abc_mshrs_10_io_sinkc_bits_data = sinkC_io_resp_bits_data; // @[Scheduler.scala 80:21]
  assign abc_mshrs_10_io_sinkd_valid = sinkD_io_resp_valid & sinkD_io_resp_bits_source == 5'ha; // @[Scheduler.scala 78:45]
  assign abc_mshrs_10_io_sinkd_bits_last = sinkD_io_resp_bits_last; // @[Scheduler.scala 81:21]
  assign abc_mshrs_10_io_sinkd_bits_opcode = sinkD_io_resp_bits_opcode; // @[Scheduler.scala 81:21]
  assign abc_mshrs_10_io_sinkd_bits_param = sinkD_io_resp_bits_param; // @[Scheduler.scala 81:21]
  assign abc_mshrs_10_io_sinkd_bits_sink = sinkD_io_resp_bits_sink; // @[Scheduler.scala 81:21]
  assign abc_mshrs_10_io_sinkd_bits_denied = sinkD_io_resp_bits_denied; // @[Scheduler.scala 81:21]
  assign abc_mshrs_10_io_sinke_valid = sinkE_io_resp_valid & sinkE_io_resp_bits_sink == 5'ha; // @[Scheduler.scala 79:45]
  assign abc_mshrs_10_io_nestedwb_set = mshr_selectOH[21] ? c_mshr_io_status_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 144:24]
  assign abc_mshrs_10_io_nestedwb_tag = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : bc_mshr_io_status_bits_tag; // @[Scheduler.scala 145:24]
  assign abc_mshrs_10_io_nestedwb_b_toN = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h0; // @[Scheduler.scala 146:75]
  assign abc_mshrs_10_io_nestedwb_b_toB = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h1; // @[Scheduler.scala 147:75]
  assign abc_mshrs_10_io_nestedwb_b_clr_dirty = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 148:37]
  assign abc_mshrs_10_io_nestedwb_c_set_dirty = _schedule_T_344 & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 149:75]
  assign abc_mshrs_11_clock = clock;
  assign abc_mshrs_11_reset = reset;
  assign abc_mshrs_11_io_allocate_valid = request_valid & alloc & mshr_insertOH[11] & _request_alloc_cases_T |
    mshr_selectOH[11] & will_reload_12; // @[Scheduler.scala 225:25 269:83 270:27]
  assign abc_mshrs_11_io_allocate_bits_prio_0 = request_valid & alloc & mshr_insertOH[11] & _request_alloc_cases_T ?
    request_bits_prio_0 : _mshrs_11_io_allocate_bits_T_prio_0; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_11_io_allocate_bits_prio_1 = request_valid & alloc & mshr_insertOH[11] & _request_alloc_cases_T ? 1'h0
     : _mshrs_11_io_allocate_bits_T_prio_1; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_11_io_allocate_bits_prio_2 = request_valid & alloc & mshr_insertOH[11] & _request_alloc_cases_T ?
    request_bits_prio_2 : _mshrs_11_io_allocate_bits_T_prio_2; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_11_io_allocate_bits_opcode = request_valid & alloc & mshr_insertOH[11] & _request_alloc_cases_T ?
    request_bits_opcode : _mshrs_11_io_allocate_bits_T_opcode; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_11_io_allocate_bits_param = request_valid & alloc & mshr_insertOH[11] & _request_alloc_cases_T ?
    request_bits_param : _mshrs_11_io_allocate_bits_T_param; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_11_io_allocate_bits_size = request_valid & alloc & mshr_insertOH[11] & _request_alloc_cases_T ?
    request_bits_size : _mshrs_11_io_allocate_bits_T_size; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_11_io_allocate_bits_source = request_valid & alloc & mshr_insertOH[11] & _request_alloc_cases_T ?
    request_bits_source : _mshrs_11_io_allocate_bits_T_source; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_11_io_allocate_bits_tag = request_valid & alloc & mshr_insertOH[11] & _request_alloc_cases_T ?
    request_bits_tag : _mshrs_11_io_allocate_bits_T_tag; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_11_io_allocate_bits_offset = request_valid & alloc & mshr_insertOH[11] & _request_alloc_cases_T ?
    request_bits_offset : _mshrs_11_io_allocate_bits_T_offset; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_11_io_allocate_bits_put = request_valid & alloc & mshr_insertOH[11] & _request_alloc_cases_T ?
    request_bits_put : _mshrs_11_io_allocate_bits_T_put; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_11_io_allocate_bits_set = request_valid & alloc & mshr_insertOH[11] & _request_alloc_cases_T ?
    request_bits_set : abc_mshrs_11_io_status_bits_set; // @[Scheduler.scala 269:83 271:26 223:28]
  assign abc_mshrs_11_io_allocate_bits_repeat = request_valid & alloc & mshr_insertOH[11] & _request_alloc_cases_T ? 1'h0
     : abc_mshrs_11_io_allocate_bits_tag == abc_mshrs_11_io_status_bits_tag; // @[Scheduler.scala 224:31 269:83 272:33]
  assign abc_mshrs_11_io_directory_valid = directoryFanout[11]; // @[Scheduler.scala 298:44]
  assign abc_mshrs_11_io_directory_bits_dirty = directory_io_result_bits_dirty; // @[Scheduler.scala 299:25]
  assign abc_mshrs_11_io_directory_bits_state = directory_io_result_bits_state; // @[Scheduler.scala 299:25]
  assign abc_mshrs_11_io_directory_bits_clients = directory_io_result_bits_clients; // @[Scheduler.scala 299:25]
  assign abc_mshrs_11_io_directory_bits_tag = directory_io_result_bits_tag; // @[Scheduler.scala 299:25]
  assign abc_mshrs_11_io_directory_bits_hit = directory_io_result_bits_hit; // @[Scheduler.scala 299:25]
  assign abc_mshrs_11_io_directory_bits_way = directory_io_result_bits_way; // @[Scheduler.scala 299:25]
  assign abc_mshrs_11_io_schedule_ready = mshr_selectOH[11]; // @[Scheduler.scala 212:28]
  assign abc_mshrs_11_io_sinkc_valid = sinkC_io_resp_valid & sinkC_io_resp_bits_set == abc_mshrs_11_io_status_bits_set; // @[Scheduler.scala 77:45]
  assign abc_mshrs_11_io_sinkc_bits_last = sinkC_io_resp_bits_last; // @[Scheduler.scala 80:21]
  assign abc_mshrs_11_io_sinkc_bits_tag = sinkC_io_resp_bits_tag; // @[Scheduler.scala 80:21]
  assign abc_mshrs_11_io_sinkc_bits_source = sinkC_io_resp_bits_source; // @[Scheduler.scala 80:21]
  assign abc_mshrs_11_io_sinkc_bits_param = sinkC_io_resp_bits_param; // @[Scheduler.scala 80:21]
  assign abc_mshrs_11_io_sinkc_bits_data = sinkC_io_resp_bits_data; // @[Scheduler.scala 80:21]
  assign abc_mshrs_11_io_sinkd_valid = sinkD_io_resp_valid & sinkD_io_resp_bits_source == 5'hb; // @[Scheduler.scala 78:45]
  assign abc_mshrs_11_io_sinkd_bits_last = sinkD_io_resp_bits_last; // @[Scheduler.scala 81:21]
  assign abc_mshrs_11_io_sinkd_bits_opcode = sinkD_io_resp_bits_opcode; // @[Scheduler.scala 81:21]
  assign abc_mshrs_11_io_sinkd_bits_param = sinkD_io_resp_bits_param; // @[Scheduler.scala 81:21]
  assign abc_mshrs_11_io_sinkd_bits_sink = sinkD_io_resp_bits_sink; // @[Scheduler.scala 81:21]
  assign abc_mshrs_11_io_sinkd_bits_denied = sinkD_io_resp_bits_denied; // @[Scheduler.scala 81:21]
  assign abc_mshrs_11_io_sinke_valid = sinkE_io_resp_valid & sinkE_io_resp_bits_sink == 5'hb; // @[Scheduler.scala 79:45]
  assign abc_mshrs_11_io_nestedwb_set = mshr_selectOH[21] ? c_mshr_io_status_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 144:24]
  assign abc_mshrs_11_io_nestedwb_tag = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : bc_mshr_io_status_bits_tag; // @[Scheduler.scala 145:24]
  assign abc_mshrs_11_io_nestedwb_b_toN = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h0; // @[Scheduler.scala 146:75]
  assign abc_mshrs_11_io_nestedwb_b_toB = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h1; // @[Scheduler.scala 147:75]
  assign abc_mshrs_11_io_nestedwb_b_clr_dirty = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 148:37]
  assign abc_mshrs_11_io_nestedwb_c_set_dirty = _schedule_T_344 & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 149:75]
  assign abc_mshrs_12_clock = clock;
  assign abc_mshrs_12_reset = reset;
  assign abc_mshrs_12_io_allocate_valid = request_valid & alloc & mshr_insertOH[12] & _request_alloc_cases_T |
    mshr_selectOH[12] & will_reload_13; // @[Scheduler.scala 225:25 269:83 270:27]
  assign abc_mshrs_12_io_allocate_bits_prio_0 = request_valid & alloc & mshr_insertOH[12] & _request_alloc_cases_T ?
    request_bits_prio_0 : _mshrs_12_io_allocate_bits_T_prio_0; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_12_io_allocate_bits_prio_1 = request_valid & alloc & mshr_insertOH[12] & _request_alloc_cases_T ? 1'h0
     : _mshrs_12_io_allocate_bits_T_prio_1; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_12_io_allocate_bits_prio_2 = request_valid & alloc & mshr_insertOH[12] & _request_alloc_cases_T ?
    request_bits_prio_2 : _mshrs_12_io_allocate_bits_T_prio_2; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_12_io_allocate_bits_opcode = request_valid & alloc & mshr_insertOH[12] & _request_alloc_cases_T ?
    request_bits_opcode : _mshrs_12_io_allocate_bits_T_opcode; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_12_io_allocate_bits_param = request_valid & alloc & mshr_insertOH[12] & _request_alloc_cases_T ?
    request_bits_param : _mshrs_12_io_allocate_bits_T_param; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_12_io_allocate_bits_size = request_valid & alloc & mshr_insertOH[12] & _request_alloc_cases_T ?
    request_bits_size : _mshrs_12_io_allocate_bits_T_size; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_12_io_allocate_bits_source = request_valid & alloc & mshr_insertOH[12] & _request_alloc_cases_T ?
    request_bits_source : _mshrs_12_io_allocate_bits_T_source; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_12_io_allocate_bits_tag = request_valid & alloc & mshr_insertOH[12] & _request_alloc_cases_T ?
    request_bits_tag : _mshrs_12_io_allocate_bits_T_tag; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_12_io_allocate_bits_offset = request_valid & alloc & mshr_insertOH[12] & _request_alloc_cases_T ?
    request_bits_offset : _mshrs_12_io_allocate_bits_T_offset; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_12_io_allocate_bits_put = request_valid & alloc & mshr_insertOH[12] & _request_alloc_cases_T ?
    request_bits_put : _mshrs_12_io_allocate_bits_T_put; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_12_io_allocate_bits_set = request_valid & alloc & mshr_insertOH[12] & _request_alloc_cases_T ?
    request_bits_set : abc_mshrs_12_io_status_bits_set; // @[Scheduler.scala 269:83 271:26 223:28]
  assign abc_mshrs_12_io_allocate_bits_repeat = request_valid & alloc & mshr_insertOH[12] & _request_alloc_cases_T ? 1'h0
     : abc_mshrs_12_io_allocate_bits_tag == abc_mshrs_12_io_status_bits_tag; // @[Scheduler.scala 224:31 269:83 272:33]
  assign abc_mshrs_12_io_directory_valid = directoryFanout[12]; // @[Scheduler.scala 298:44]
  assign abc_mshrs_12_io_directory_bits_dirty = directory_io_result_bits_dirty; // @[Scheduler.scala 299:25]
  assign abc_mshrs_12_io_directory_bits_state = directory_io_result_bits_state; // @[Scheduler.scala 299:25]
  assign abc_mshrs_12_io_directory_bits_clients = directory_io_result_bits_clients; // @[Scheduler.scala 299:25]
  assign abc_mshrs_12_io_directory_bits_tag = directory_io_result_bits_tag; // @[Scheduler.scala 299:25]
  assign abc_mshrs_12_io_directory_bits_hit = directory_io_result_bits_hit; // @[Scheduler.scala 299:25]
  assign abc_mshrs_12_io_directory_bits_way = directory_io_result_bits_way; // @[Scheduler.scala 299:25]
  assign abc_mshrs_12_io_schedule_ready = mshr_selectOH[12]; // @[Scheduler.scala 212:28]
  assign abc_mshrs_12_io_sinkc_valid = sinkC_io_resp_valid & sinkC_io_resp_bits_set == abc_mshrs_12_io_status_bits_set; // @[Scheduler.scala 77:45]
  assign abc_mshrs_12_io_sinkc_bits_last = sinkC_io_resp_bits_last; // @[Scheduler.scala 80:21]
  assign abc_mshrs_12_io_sinkc_bits_tag = sinkC_io_resp_bits_tag; // @[Scheduler.scala 80:21]
  assign abc_mshrs_12_io_sinkc_bits_source = sinkC_io_resp_bits_source; // @[Scheduler.scala 80:21]
  assign abc_mshrs_12_io_sinkc_bits_param = sinkC_io_resp_bits_param; // @[Scheduler.scala 80:21]
  assign abc_mshrs_12_io_sinkc_bits_data = sinkC_io_resp_bits_data; // @[Scheduler.scala 80:21]
  assign abc_mshrs_12_io_sinkd_valid = sinkD_io_resp_valid & sinkD_io_resp_bits_source == 5'hc; // @[Scheduler.scala 78:45]
  assign abc_mshrs_12_io_sinkd_bits_last = sinkD_io_resp_bits_last; // @[Scheduler.scala 81:21]
  assign abc_mshrs_12_io_sinkd_bits_opcode = sinkD_io_resp_bits_opcode; // @[Scheduler.scala 81:21]
  assign abc_mshrs_12_io_sinkd_bits_param = sinkD_io_resp_bits_param; // @[Scheduler.scala 81:21]
  assign abc_mshrs_12_io_sinkd_bits_sink = sinkD_io_resp_bits_sink; // @[Scheduler.scala 81:21]
  assign abc_mshrs_12_io_sinkd_bits_denied = sinkD_io_resp_bits_denied; // @[Scheduler.scala 81:21]
  assign abc_mshrs_12_io_sinke_valid = sinkE_io_resp_valid & sinkE_io_resp_bits_sink == 5'hc; // @[Scheduler.scala 79:45]
  assign abc_mshrs_12_io_nestedwb_set = mshr_selectOH[21] ? c_mshr_io_status_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 144:24]
  assign abc_mshrs_12_io_nestedwb_tag = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : bc_mshr_io_status_bits_tag; // @[Scheduler.scala 145:24]
  assign abc_mshrs_12_io_nestedwb_b_toN = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h0; // @[Scheduler.scala 146:75]
  assign abc_mshrs_12_io_nestedwb_b_toB = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h1; // @[Scheduler.scala 147:75]
  assign abc_mshrs_12_io_nestedwb_b_clr_dirty = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 148:37]
  assign abc_mshrs_12_io_nestedwb_c_set_dirty = _schedule_T_344 & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 149:75]
  assign abc_mshrs_13_clock = clock;
  assign abc_mshrs_13_reset = reset;
  assign abc_mshrs_13_io_allocate_valid = request_valid & alloc & mshr_insertOH[13] & _request_alloc_cases_T |
    mshr_selectOH[13] & will_reload_14; // @[Scheduler.scala 225:25 269:83 270:27]
  assign abc_mshrs_13_io_allocate_bits_prio_0 = request_valid & alloc & mshr_insertOH[13] & _request_alloc_cases_T ?
    request_bits_prio_0 : _mshrs_13_io_allocate_bits_T_prio_0; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_13_io_allocate_bits_prio_1 = request_valid & alloc & mshr_insertOH[13] & _request_alloc_cases_T ? 1'h0
     : _mshrs_13_io_allocate_bits_T_prio_1; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_13_io_allocate_bits_prio_2 = request_valid & alloc & mshr_insertOH[13] & _request_alloc_cases_T ?
    request_bits_prio_2 : _mshrs_13_io_allocate_bits_T_prio_2; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_13_io_allocate_bits_opcode = request_valid & alloc & mshr_insertOH[13] & _request_alloc_cases_T ?
    request_bits_opcode : _mshrs_13_io_allocate_bits_T_opcode; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_13_io_allocate_bits_param = request_valid & alloc & mshr_insertOH[13] & _request_alloc_cases_T ?
    request_bits_param : _mshrs_13_io_allocate_bits_T_param; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_13_io_allocate_bits_size = request_valid & alloc & mshr_insertOH[13] & _request_alloc_cases_T ?
    request_bits_size : _mshrs_13_io_allocate_bits_T_size; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_13_io_allocate_bits_source = request_valid & alloc & mshr_insertOH[13] & _request_alloc_cases_T ?
    request_bits_source : _mshrs_13_io_allocate_bits_T_source; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_13_io_allocate_bits_tag = request_valid & alloc & mshr_insertOH[13] & _request_alloc_cases_T ?
    request_bits_tag : _mshrs_13_io_allocate_bits_T_tag; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_13_io_allocate_bits_offset = request_valid & alloc & mshr_insertOH[13] & _request_alloc_cases_T ?
    request_bits_offset : _mshrs_13_io_allocate_bits_T_offset; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_13_io_allocate_bits_put = request_valid & alloc & mshr_insertOH[13] & _request_alloc_cases_T ?
    request_bits_put : _mshrs_13_io_allocate_bits_T_put; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_13_io_allocate_bits_set = request_valid & alloc & mshr_insertOH[13] & _request_alloc_cases_T ?
    request_bits_set : abc_mshrs_13_io_status_bits_set; // @[Scheduler.scala 269:83 271:26 223:28]
  assign abc_mshrs_13_io_allocate_bits_repeat = request_valid & alloc & mshr_insertOH[13] & _request_alloc_cases_T ? 1'h0
     : abc_mshrs_13_io_allocate_bits_tag == abc_mshrs_13_io_status_bits_tag; // @[Scheduler.scala 224:31 269:83 272:33]
  assign abc_mshrs_13_io_directory_valid = directoryFanout[13]; // @[Scheduler.scala 298:44]
  assign abc_mshrs_13_io_directory_bits_dirty = directory_io_result_bits_dirty; // @[Scheduler.scala 299:25]
  assign abc_mshrs_13_io_directory_bits_state = directory_io_result_bits_state; // @[Scheduler.scala 299:25]
  assign abc_mshrs_13_io_directory_bits_clients = directory_io_result_bits_clients; // @[Scheduler.scala 299:25]
  assign abc_mshrs_13_io_directory_bits_tag = directory_io_result_bits_tag; // @[Scheduler.scala 299:25]
  assign abc_mshrs_13_io_directory_bits_hit = directory_io_result_bits_hit; // @[Scheduler.scala 299:25]
  assign abc_mshrs_13_io_directory_bits_way = directory_io_result_bits_way; // @[Scheduler.scala 299:25]
  assign abc_mshrs_13_io_schedule_ready = mshr_selectOH[13]; // @[Scheduler.scala 212:28]
  assign abc_mshrs_13_io_sinkc_valid = sinkC_io_resp_valid & sinkC_io_resp_bits_set == abc_mshrs_13_io_status_bits_set; // @[Scheduler.scala 77:45]
  assign abc_mshrs_13_io_sinkc_bits_last = sinkC_io_resp_bits_last; // @[Scheduler.scala 80:21]
  assign abc_mshrs_13_io_sinkc_bits_tag = sinkC_io_resp_bits_tag; // @[Scheduler.scala 80:21]
  assign abc_mshrs_13_io_sinkc_bits_source = sinkC_io_resp_bits_source; // @[Scheduler.scala 80:21]
  assign abc_mshrs_13_io_sinkc_bits_param = sinkC_io_resp_bits_param; // @[Scheduler.scala 80:21]
  assign abc_mshrs_13_io_sinkc_bits_data = sinkC_io_resp_bits_data; // @[Scheduler.scala 80:21]
  assign abc_mshrs_13_io_sinkd_valid = sinkD_io_resp_valid & sinkD_io_resp_bits_source == 5'hd; // @[Scheduler.scala 78:45]
  assign abc_mshrs_13_io_sinkd_bits_last = sinkD_io_resp_bits_last; // @[Scheduler.scala 81:21]
  assign abc_mshrs_13_io_sinkd_bits_opcode = sinkD_io_resp_bits_opcode; // @[Scheduler.scala 81:21]
  assign abc_mshrs_13_io_sinkd_bits_param = sinkD_io_resp_bits_param; // @[Scheduler.scala 81:21]
  assign abc_mshrs_13_io_sinkd_bits_sink = sinkD_io_resp_bits_sink; // @[Scheduler.scala 81:21]
  assign abc_mshrs_13_io_sinkd_bits_denied = sinkD_io_resp_bits_denied; // @[Scheduler.scala 81:21]
  assign abc_mshrs_13_io_sinke_valid = sinkE_io_resp_valid & sinkE_io_resp_bits_sink == 5'hd; // @[Scheduler.scala 79:45]
  assign abc_mshrs_13_io_nestedwb_set = mshr_selectOH[21] ? c_mshr_io_status_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 144:24]
  assign abc_mshrs_13_io_nestedwb_tag = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : bc_mshr_io_status_bits_tag; // @[Scheduler.scala 145:24]
  assign abc_mshrs_13_io_nestedwb_b_toN = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h0; // @[Scheduler.scala 146:75]
  assign abc_mshrs_13_io_nestedwb_b_toB = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h1; // @[Scheduler.scala 147:75]
  assign abc_mshrs_13_io_nestedwb_b_clr_dirty = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 148:37]
  assign abc_mshrs_13_io_nestedwb_c_set_dirty = _schedule_T_344 & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 149:75]
  assign abc_mshrs_14_clock = clock;
  assign abc_mshrs_14_reset = reset;
  assign abc_mshrs_14_io_allocate_valid = request_valid & alloc & mshr_insertOH[14] & _request_alloc_cases_T |
    mshr_selectOH[14] & will_reload_15; // @[Scheduler.scala 225:25 269:83 270:27]
  assign abc_mshrs_14_io_allocate_bits_prio_0 = request_valid & alloc & mshr_insertOH[14] & _request_alloc_cases_T ?
    request_bits_prio_0 : _mshrs_14_io_allocate_bits_T_prio_0; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_14_io_allocate_bits_prio_1 = request_valid & alloc & mshr_insertOH[14] & _request_alloc_cases_T ? 1'h0
     : _mshrs_14_io_allocate_bits_T_prio_1; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_14_io_allocate_bits_prio_2 = request_valid & alloc & mshr_insertOH[14] & _request_alloc_cases_T ?
    request_bits_prio_2 : _mshrs_14_io_allocate_bits_T_prio_2; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_14_io_allocate_bits_opcode = request_valid & alloc & mshr_insertOH[14] & _request_alloc_cases_T ?
    request_bits_opcode : _mshrs_14_io_allocate_bits_T_opcode; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_14_io_allocate_bits_param = request_valid & alloc & mshr_insertOH[14] & _request_alloc_cases_T ?
    request_bits_param : _mshrs_14_io_allocate_bits_T_param; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_14_io_allocate_bits_size = request_valid & alloc & mshr_insertOH[14] & _request_alloc_cases_T ?
    request_bits_size : _mshrs_14_io_allocate_bits_T_size; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_14_io_allocate_bits_source = request_valid & alloc & mshr_insertOH[14] & _request_alloc_cases_T ?
    request_bits_source : _mshrs_14_io_allocate_bits_T_source; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_14_io_allocate_bits_tag = request_valid & alloc & mshr_insertOH[14] & _request_alloc_cases_T ?
    request_bits_tag : _mshrs_14_io_allocate_bits_T_tag; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_14_io_allocate_bits_offset = request_valid & alloc & mshr_insertOH[14] & _request_alloc_cases_T ?
    request_bits_offset : _mshrs_14_io_allocate_bits_T_offset; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_14_io_allocate_bits_put = request_valid & alloc & mshr_insertOH[14] & _request_alloc_cases_T ?
    request_bits_put : _mshrs_14_io_allocate_bits_T_put; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_14_io_allocate_bits_set = request_valid & alloc & mshr_insertOH[14] & _request_alloc_cases_T ?
    request_bits_set : abc_mshrs_14_io_status_bits_set; // @[Scheduler.scala 269:83 271:26 223:28]
  assign abc_mshrs_14_io_allocate_bits_repeat = request_valid & alloc & mshr_insertOH[14] & _request_alloc_cases_T ? 1'h0
     : abc_mshrs_14_io_allocate_bits_tag == abc_mshrs_14_io_status_bits_tag; // @[Scheduler.scala 224:31 269:83 272:33]
  assign abc_mshrs_14_io_directory_valid = directoryFanout[14]; // @[Scheduler.scala 298:44]
  assign abc_mshrs_14_io_directory_bits_dirty = directory_io_result_bits_dirty; // @[Scheduler.scala 299:25]
  assign abc_mshrs_14_io_directory_bits_state = directory_io_result_bits_state; // @[Scheduler.scala 299:25]
  assign abc_mshrs_14_io_directory_bits_clients = directory_io_result_bits_clients; // @[Scheduler.scala 299:25]
  assign abc_mshrs_14_io_directory_bits_tag = directory_io_result_bits_tag; // @[Scheduler.scala 299:25]
  assign abc_mshrs_14_io_directory_bits_hit = directory_io_result_bits_hit; // @[Scheduler.scala 299:25]
  assign abc_mshrs_14_io_directory_bits_way = directory_io_result_bits_way; // @[Scheduler.scala 299:25]
  assign abc_mshrs_14_io_schedule_ready = mshr_selectOH[14]; // @[Scheduler.scala 212:28]
  assign abc_mshrs_14_io_sinkc_valid = sinkC_io_resp_valid & sinkC_io_resp_bits_set == abc_mshrs_14_io_status_bits_set; // @[Scheduler.scala 77:45]
  assign abc_mshrs_14_io_sinkc_bits_last = sinkC_io_resp_bits_last; // @[Scheduler.scala 80:21]
  assign abc_mshrs_14_io_sinkc_bits_tag = sinkC_io_resp_bits_tag; // @[Scheduler.scala 80:21]
  assign abc_mshrs_14_io_sinkc_bits_source = sinkC_io_resp_bits_source; // @[Scheduler.scala 80:21]
  assign abc_mshrs_14_io_sinkc_bits_param = sinkC_io_resp_bits_param; // @[Scheduler.scala 80:21]
  assign abc_mshrs_14_io_sinkc_bits_data = sinkC_io_resp_bits_data; // @[Scheduler.scala 80:21]
  assign abc_mshrs_14_io_sinkd_valid = sinkD_io_resp_valid & sinkD_io_resp_bits_source == 5'he; // @[Scheduler.scala 78:45]
  assign abc_mshrs_14_io_sinkd_bits_last = sinkD_io_resp_bits_last; // @[Scheduler.scala 81:21]
  assign abc_mshrs_14_io_sinkd_bits_opcode = sinkD_io_resp_bits_opcode; // @[Scheduler.scala 81:21]
  assign abc_mshrs_14_io_sinkd_bits_param = sinkD_io_resp_bits_param; // @[Scheduler.scala 81:21]
  assign abc_mshrs_14_io_sinkd_bits_sink = sinkD_io_resp_bits_sink; // @[Scheduler.scala 81:21]
  assign abc_mshrs_14_io_sinkd_bits_denied = sinkD_io_resp_bits_denied; // @[Scheduler.scala 81:21]
  assign abc_mshrs_14_io_sinke_valid = sinkE_io_resp_valid & sinkE_io_resp_bits_sink == 5'he; // @[Scheduler.scala 79:45]
  assign abc_mshrs_14_io_nestedwb_set = mshr_selectOH[21] ? c_mshr_io_status_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 144:24]
  assign abc_mshrs_14_io_nestedwb_tag = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : bc_mshr_io_status_bits_tag; // @[Scheduler.scala 145:24]
  assign abc_mshrs_14_io_nestedwb_b_toN = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h0; // @[Scheduler.scala 146:75]
  assign abc_mshrs_14_io_nestedwb_b_toB = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h1; // @[Scheduler.scala 147:75]
  assign abc_mshrs_14_io_nestedwb_b_clr_dirty = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 148:37]
  assign abc_mshrs_14_io_nestedwb_c_set_dirty = _schedule_T_344 & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 149:75]
  assign abc_mshrs_15_clock = clock;
  assign abc_mshrs_15_reset = reset;
  assign abc_mshrs_15_io_allocate_valid = request_valid & alloc & mshr_insertOH[15] & _request_alloc_cases_T |
    mshr_selectOH[15] & will_reload_16; // @[Scheduler.scala 225:25 269:83 270:27]
  assign abc_mshrs_15_io_allocate_bits_prio_0 = request_valid & alloc & mshr_insertOH[15] & _request_alloc_cases_T ?
    request_bits_prio_0 : _mshrs_15_io_allocate_bits_T_prio_0; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_15_io_allocate_bits_prio_1 = request_valid & alloc & mshr_insertOH[15] & _request_alloc_cases_T ? 1'h0
     : _mshrs_15_io_allocate_bits_T_prio_1; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_15_io_allocate_bits_prio_2 = request_valid & alloc & mshr_insertOH[15] & _request_alloc_cases_T ?
    request_bits_prio_2 : _mshrs_15_io_allocate_bits_T_prio_2; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_15_io_allocate_bits_opcode = request_valid & alloc & mshr_insertOH[15] & _request_alloc_cases_T ?
    request_bits_opcode : _mshrs_15_io_allocate_bits_T_opcode; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_15_io_allocate_bits_param = request_valid & alloc & mshr_insertOH[15] & _request_alloc_cases_T ?
    request_bits_param : _mshrs_15_io_allocate_bits_T_param; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_15_io_allocate_bits_size = request_valid & alloc & mshr_insertOH[15] & _request_alloc_cases_T ?
    request_bits_size : _mshrs_15_io_allocate_bits_T_size; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_15_io_allocate_bits_source = request_valid & alloc & mshr_insertOH[15] & _request_alloc_cases_T ?
    request_bits_source : _mshrs_15_io_allocate_bits_T_source; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_15_io_allocate_bits_tag = request_valid & alloc & mshr_insertOH[15] & _request_alloc_cases_T ?
    request_bits_tag : _mshrs_15_io_allocate_bits_T_tag; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_15_io_allocate_bits_offset = request_valid & alloc & mshr_insertOH[15] & _request_alloc_cases_T ?
    request_bits_offset : _mshrs_15_io_allocate_bits_T_offset; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_15_io_allocate_bits_put = request_valid & alloc & mshr_insertOH[15] & _request_alloc_cases_T ?
    request_bits_put : _mshrs_15_io_allocate_bits_T_put; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_15_io_allocate_bits_set = request_valid & alloc & mshr_insertOH[15] & _request_alloc_cases_T ?
    request_bits_set : abc_mshrs_15_io_status_bits_set; // @[Scheduler.scala 269:83 271:26 223:28]
  assign abc_mshrs_15_io_allocate_bits_repeat = request_valid & alloc & mshr_insertOH[15] & _request_alloc_cases_T ? 1'h0
     : abc_mshrs_15_io_allocate_bits_tag == abc_mshrs_15_io_status_bits_tag; // @[Scheduler.scala 224:31 269:83 272:33]
  assign abc_mshrs_15_io_directory_valid = directoryFanout[15]; // @[Scheduler.scala 298:44]
  assign abc_mshrs_15_io_directory_bits_dirty = directory_io_result_bits_dirty; // @[Scheduler.scala 299:25]
  assign abc_mshrs_15_io_directory_bits_state = directory_io_result_bits_state; // @[Scheduler.scala 299:25]
  assign abc_mshrs_15_io_directory_bits_clients = directory_io_result_bits_clients; // @[Scheduler.scala 299:25]
  assign abc_mshrs_15_io_directory_bits_tag = directory_io_result_bits_tag; // @[Scheduler.scala 299:25]
  assign abc_mshrs_15_io_directory_bits_hit = directory_io_result_bits_hit; // @[Scheduler.scala 299:25]
  assign abc_mshrs_15_io_directory_bits_way = directory_io_result_bits_way; // @[Scheduler.scala 299:25]
  assign abc_mshrs_15_io_schedule_ready = mshr_selectOH[15]; // @[Scheduler.scala 212:28]
  assign abc_mshrs_15_io_sinkc_valid = sinkC_io_resp_valid & sinkC_io_resp_bits_set == abc_mshrs_15_io_status_bits_set; // @[Scheduler.scala 77:45]
  assign abc_mshrs_15_io_sinkc_bits_last = sinkC_io_resp_bits_last; // @[Scheduler.scala 80:21]
  assign abc_mshrs_15_io_sinkc_bits_tag = sinkC_io_resp_bits_tag; // @[Scheduler.scala 80:21]
  assign abc_mshrs_15_io_sinkc_bits_source = sinkC_io_resp_bits_source; // @[Scheduler.scala 80:21]
  assign abc_mshrs_15_io_sinkc_bits_param = sinkC_io_resp_bits_param; // @[Scheduler.scala 80:21]
  assign abc_mshrs_15_io_sinkc_bits_data = sinkC_io_resp_bits_data; // @[Scheduler.scala 80:21]
  assign abc_mshrs_15_io_sinkd_valid = sinkD_io_resp_valid & sinkD_io_resp_bits_source == 5'hf; // @[Scheduler.scala 78:45]
  assign abc_mshrs_15_io_sinkd_bits_last = sinkD_io_resp_bits_last; // @[Scheduler.scala 81:21]
  assign abc_mshrs_15_io_sinkd_bits_opcode = sinkD_io_resp_bits_opcode; // @[Scheduler.scala 81:21]
  assign abc_mshrs_15_io_sinkd_bits_param = sinkD_io_resp_bits_param; // @[Scheduler.scala 81:21]
  assign abc_mshrs_15_io_sinkd_bits_sink = sinkD_io_resp_bits_sink; // @[Scheduler.scala 81:21]
  assign abc_mshrs_15_io_sinkd_bits_denied = sinkD_io_resp_bits_denied; // @[Scheduler.scala 81:21]
  assign abc_mshrs_15_io_sinke_valid = sinkE_io_resp_valid & sinkE_io_resp_bits_sink == 5'hf; // @[Scheduler.scala 79:45]
  assign abc_mshrs_15_io_nestedwb_set = mshr_selectOH[21] ? c_mshr_io_status_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 144:24]
  assign abc_mshrs_15_io_nestedwb_tag = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : bc_mshr_io_status_bits_tag; // @[Scheduler.scala 145:24]
  assign abc_mshrs_15_io_nestedwb_b_toN = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h0; // @[Scheduler.scala 146:75]
  assign abc_mshrs_15_io_nestedwb_b_toB = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h1; // @[Scheduler.scala 147:75]
  assign abc_mshrs_15_io_nestedwb_b_clr_dirty = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 148:37]
  assign abc_mshrs_15_io_nestedwb_c_set_dirty = _schedule_T_344 & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 149:75]
  assign abc_mshrs_16_clock = clock;
  assign abc_mshrs_16_reset = reset;
  assign abc_mshrs_16_io_allocate_valid = request_valid & alloc & mshr_insertOH[16] & _request_alloc_cases_T |
    mshr_selectOH[16] & will_reload_17; // @[Scheduler.scala 225:25 269:83 270:27]
  assign abc_mshrs_16_io_allocate_bits_prio_0 = request_valid & alloc & mshr_insertOH[16] & _request_alloc_cases_T ?
    request_bits_prio_0 : _mshrs_16_io_allocate_bits_T_prio_0; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_16_io_allocate_bits_prio_1 = request_valid & alloc & mshr_insertOH[16] & _request_alloc_cases_T ? 1'h0
     : _mshrs_16_io_allocate_bits_T_prio_1; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_16_io_allocate_bits_prio_2 = request_valid & alloc & mshr_insertOH[16] & _request_alloc_cases_T ?
    request_bits_prio_2 : _mshrs_16_io_allocate_bits_T_prio_2; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_16_io_allocate_bits_opcode = request_valid & alloc & mshr_insertOH[16] & _request_alloc_cases_T ?
    request_bits_opcode : _mshrs_16_io_allocate_bits_T_opcode; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_16_io_allocate_bits_param = request_valid & alloc & mshr_insertOH[16] & _request_alloc_cases_T ?
    request_bits_param : _mshrs_16_io_allocate_bits_T_param; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_16_io_allocate_bits_size = request_valid & alloc & mshr_insertOH[16] & _request_alloc_cases_T ?
    request_bits_size : _mshrs_16_io_allocate_bits_T_size; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_16_io_allocate_bits_source = request_valid & alloc & mshr_insertOH[16] & _request_alloc_cases_T ?
    request_bits_source : _mshrs_16_io_allocate_bits_T_source; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_16_io_allocate_bits_tag = request_valid & alloc & mshr_insertOH[16] & _request_alloc_cases_T ?
    request_bits_tag : _mshrs_16_io_allocate_bits_T_tag; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_16_io_allocate_bits_offset = request_valid & alloc & mshr_insertOH[16] & _request_alloc_cases_T ?
    request_bits_offset : _mshrs_16_io_allocate_bits_T_offset; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_16_io_allocate_bits_put = request_valid & alloc & mshr_insertOH[16] & _request_alloc_cases_T ?
    request_bits_put : _mshrs_16_io_allocate_bits_T_put; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_16_io_allocate_bits_set = request_valid & alloc & mshr_insertOH[16] & _request_alloc_cases_T ?
    request_bits_set : abc_mshrs_16_io_status_bits_set; // @[Scheduler.scala 269:83 271:26 223:28]
  assign abc_mshrs_16_io_allocate_bits_repeat = request_valid & alloc & mshr_insertOH[16] & _request_alloc_cases_T ? 1'h0
     : abc_mshrs_16_io_allocate_bits_tag == abc_mshrs_16_io_status_bits_tag; // @[Scheduler.scala 224:31 269:83 272:33]
  assign abc_mshrs_16_io_directory_valid = directoryFanout[16]; // @[Scheduler.scala 298:44]
  assign abc_mshrs_16_io_directory_bits_dirty = directory_io_result_bits_dirty; // @[Scheduler.scala 299:25]
  assign abc_mshrs_16_io_directory_bits_state = directory_io_result_bits_state; // @[Scheduler.scala 299:25]
  assign abc_mshrs_16_io_directory_bits_clients = directory_io_result_bits_clients; // @[Scheduler.scala 299:25]
  assign abc_mshrs_16_io_directory_bits_tag = directory_io_result_bits_tag; // @[Scheduler.scala 299:25]
  assign abc_mshrs_16_io_directory_bits_hit = directory_io_result_bits_hit; // @[Scheduler.scala 299:25]
  assign abc_mshrs_16_io_directory_bits_way = directory_io_result_bits_way; // @[Scheduler.scala 299:25]
  assign abc_mshrs_16_io_schedule_ready = mshr_selectOH[16]; // @[Scheduler.scala 212:28]
  assign abc_mshrs_16_io_sinkc_valid = sinkC_io_resp_valid & sinkC_io_resp_bits_set == abc_mshrs_16_io_status_bits_set; // @[Scheduler.scala 77:45]
  assign abc_mshrs_16_io_sinkc_bits_last = sinkC_io_resp_bits_last; // @[Scheduler.scala 80:21]
  assign abc_mshrs_16_io_sinkc_bits_tag = sinkC_io_resp_bits_tag; // @[Scheduler.scala 80:21]
  assign abc_mshrs_16_io_sinkc_bits_source = sinkC_io_resp_bits_source; // @[Scheduler.scala 80:21]
  assign abc_mshrs_16_io_sinkc_bits_param = sinkC_io_resp_bits_param; // @[Scheduler.scala 80:21]
  assign abc_mshrs_16_io_sinkc_bits_data = sinkC_io_resp_bits_data; // @[Scheduler.scala 80:21]
  assign abc_mshrs_16_io_sinkd_valid = sinkD_io_resp_valid & sinkD_io_resp_bits_source == 5'h10; // @[Scheduler.scala 78:45]
  assign abc_mshrs_16_io_sinkd_bits_last = sinkD_io_resp_bits_last; // @[Scheduler.scala 81:21]
  assign abc_mshrs_16_io_sinkd_bits_opcode = sinkD_io_resp_bits_opcode; // @[Scheduler.scala 81:21]
  assign abc_mshrs_16_io_sinkd_bits_param = sinkD_io_resp_bits_param; // @[Scheduler.scala 81:21]
  assign abc_mshrs_16_io_sinkd_bits_sink = sinkD_io_resp_bits_sink; // @[Scheduler.scala 81:21]
  assign abc_mshrs_16_io_sinkd_bits_denied = sinkD_io_resp_bits_denied; // @[Scheduler.scala 81:21]
  assign abc_mshrs_16_io_sinke_valid = sinkE_io_resp_valid & sinkE_io_resp_bits_sink == 5'h10; // @[Scheduler.scala 79:45]
  assign abc_mshrs_16_io_nestedwb_set = mshr_selectOH[21] ? c_mshr_io_status_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 144:24]
  assign abc_mshrs_16_io_nestedwb_tag = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : bc_mshr_io_status_bits_tag; // @[Scheduler.scala 145:24]
  assign abc_mshrs_16_io_nestedwb_b_toN = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h0; // @[Scheduler.scala 146:75]
  assign abc_mshrs_16_io_nestedwb_b_toB = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h1; // @[Scheduler.scala 147:75]
  assign abc_mshrs_16_io_nestedwb_b_clr_dirty = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 148:37]
  assign abc_mshrs_16_io_nestedwb_c_set_dirty = _schedule_T_344 & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 149:75]
  assign abc_mshrs_17_clock = clock;
  assign abc_mshrs_17_reset = reset;
  assign abc_mshrs_17_io_allocate_valid = request_valid & alloc & mshr_insertOH[17] & _request_alloc_cases_T |
    mshr_selectOH[17] & will_reload_18; // @[Scheduler.scala 225:25 269:83 270:27]
  assign abc_mshrs_17_io_allocate_bits_prio_0 = request_valid & alloc & mshr_insertOH[17] & _request_alloc_cases_T ?
    request_bits_prio_0 : _mshrs_17_io_allocate_bits_T_prio_0; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_17_io_allocate_bits_prio_1 = request_valid & alloc & mshr_insertOH[17] & _request_alloc_cases_T ? 1'h0
     : _mshrs_17_io_allocate_bits_T_prio_1; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_17_io_allocate_bits_prio_2 = request_valid & alloc & mshr_insertOH[17] & _request_alloc_cases_T ?
    request_bits_prio_2 : _mshrs_17_io_allocate_bits_T_prio_2; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_17_io_allocate_bits_opcode = request_valid & alloc & mshr_insertOH[17] & _request_alloc_cases_T ?
    request_bits_opcode : _mshrs_17_io_allocate_bits_T_opcode; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_17_io_allocate_bits_param = request_valid & alloc & mshr_insertOH[17] & _request_alloc_cases_T ?
    request_bits_param : _mshrs_17_io_allocate_bits_T_param; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_17_io_allocate_bits_size = request_valid & alloc & mshr_insertOH[17] & _request_alloc_cases_T ?
    request_bits_size : _mshrs_17_io_allocate_bits_T_size; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_17_io_allocate_bits_source = request_valid & alloc & mshr_insertOH[17] & _request_alloc_cases_T ?
    request_bits_source : _mshrs_17_io_allocate_bits_T_source; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_17_io_allocate_bits_tag = request_valid & alloc & mshr_insertOH[17] & _request_alloc_cases_T ?
    request_bits_tag : _mshrs_17_io_allocate_bits_T_tag; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_17_io_allocate_bits_offset = request_valid & alloc & mshr_insertOH[17] & _request_alloc_cases_T ?
    request_bits_offset : _mshrs_17_io_allocate_bits_T_offset; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_17_io_allocate_bits_put = request_valid & alloc & mshr_insertOH[17] & _request_alloc_cases_T ?
    request_bits_put : _mshrs_17_io_allocate_bits_T_put; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_17_io_allocate_bits_set = request_valid & alloc & mshr_insertOH[17] & _request_alloc_cases_T ?
    request_bits_set : abc_mshrs_17_io_status_bits_set; // @[Scheduler.scala 269:83 271:26 223:28]
  assign abc_mshrs_17_io_allocate_bits_repeat = request_valid & alloc & mshr_insertOH[17] & _request_alloc_cases_T ? 1'h0
     : abc_mshrs_17_io_allocate_bits_tag == abc_mshrs_17_io_status_bits_tag; // @[Scheduler.scala 224:31 269:83 272:33]
  assign abc_mshrs_17_io_directory_valid = directoryFanout[17]; // @[Scheduler.scala 298:44]
  assign abc_mshrs_17_io_directory_bits_dirty = directory_io_result_bits_dirty; // @[Scheduler.scala 299:25]
  assign abc_mshrs_17_io_directory_bits_state = directory_io_result_bits_state; // @[Scheduler.scala 299:25]
  assign abc_mshrs_17_io_directory_bits_clients = directory_io_result_bits_clients; // @[Scheduler.scala 299:25]
  assign abc_mshrs_17_io_directory_bits_tag = directory_io_result_bits_tag; // @[Scheduler.scala 299:25]
  assign abc_mshrs_17_io_directory_bits_hit = directory_io_result_bits_hit; // @[Scheduler.scala 299:25]
  assign abc_mshrs_17_io_directory_bits_way = directory_io_result_bits_way; // @[Scheduler.scala 299:25]
  assign abc_mshrs_17_io_schedule_ready = mshr_selectOH[17]; // @[Scheduler.scala 212:28]
  assign abc_mshrs_17_io_sinkc_valid = sinkC_io_resp_valid & sinkC_io_resp_bits_set == abc_mshrs_17_io_status_bits_set; // @[Scheduler.scala 77:45]
  assign abc_mshrs_17_io_sinkc_bits_last = sinkC_io_resp_bits_last; // @[Scheduler.scala 80:21]
  assign abc_mshrs_17_io_sinkc_bits_tag = sinkC_io_resp_bits_tag; // @[Scheduler.scala 80:21]
  assign abc_mshrs_17_io_sinkc_bits_source = sinkC_io_resp_bits_source; // @[Scheduler.scala 80:21]
  assign abc_mshrs_17_io_sinkc_bits_param = sinkC_io_resp_bits_param; // @[Scheduler.scala 80:21]
  assign abc_mshrs_17_io_sinkc_bits_data = sinkC_io_resp_bits_data; // @[Scheduler.scala 80:21]
  assign abc_mshrs_17_io_sinkd_valid = sinkD_io_resp_valid & sinkD_io_resp_bits_source == 5'h11; // @[Scheduler.scala 78:45]
  assign abc_mshrs_17_io_sinkd_bits_last = sinkD_io_resp_bits_last; // @[Scheduler.scala 81:21]
  assign abc_mshrs_17_io_sinkd_bits_opcode = sinkD_io_resp_bits_opcode; // @[Scheduler.scala 81:21]
  assign abc_mshrs_17_io_sinkd_bits_param = sinkD_io_resp_bits_param; // @[Scheduler.scala 81:21]
  assign abc_mshrs_17_io_sinkd_bits_sink = sinkD_io_resp_bits_sink; // @[Scheduler.scala 81:21]
  assign abc_mshrs_17_io_sinkd_bits_denied = sinkD_io_resp_bits_denied; // @[Scheduler.scala 81:21]
  assign abc_mshrs_17_io_sinke_valid = sinkE_io_resp_valid & sinkE_io_resp_bits_sink == 5'h11; // @[Scheduler.scala 79:45]
  assign abc_mshrs_17_io_nestedwb_set = mshr_selectOH[21] ? c_mshr_io_status_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 144:24]
  assign abc_mshrs_17_io_nestedwb_tag = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : bc_mshr_io_status_bits_tag; // @[Scheduler.scala 145:24]
  assign abc_mshrs_17_io_nestedwb_b_toN = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h0; // @[Scheduler.scala 146:75]
  assign abc_mshrs_17_io_nestedwb_b_toB = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h1; // @[Scheduler.scala 147:75]
  assign abc_mshrs_17_io_nestedwb_b_clr_dirty = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 148:37]
  assign abc_mshrs_17_io_nestedwb_c_set_dirty = _schedule_T_344 & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 149:75]
  assign abc_mshrs_18_clock = clock;
  assign abc_mshrs_18_reset = reset;
  assign abc_mshrs_18_io_allocate_valid = request_valid & alloc & mshr_insertOH[18] & _request_alloc_cases_T |
    mshr_selectOH[18] & will_reload_19; // @[Scheduler.scala 225:25 269:83 270:27]
  assign abc_mshrs_18_io_allocate_bits_prio_0 = request_valid & alloc & mshr_insertOH[18] & _request_alloc_cases_T ?
    request_bits_prio_0 : _mshrs_18_io_allocate_bits_T_prio_0; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_18_io_allocate_bits_prio_1 = request_valid & alloc & mshr_insertOH[18] & _request_alloc_cases_T ? 1'h0
     : _mshrs_18_io_allocate_bits_T_prio_1; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_18_io_allocate_bits_prio_2 = request_valid & alloc & mshr_insertOH[18] & _request_alloc_cases_T ?
    request_bits_prio_2 : _mshrs_18_io_allocate_bits_T_prio_2; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_18_io_allocate_bits_opcode = request_valid & alloc & mshr_insertOH[18] & _request_alloc_cases_T ?
    request_bits_opcode : _mshrs_18_io_allocate_bits_T_opcode; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_18_io_allocate_bits_param = request_valid & alloc & mshr_insertOH[18] & _request_alloc_cases_T ?
    request_bits_param : _mshrs_18_io_allocate_bits_T_param; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_18_io_allocate_bits_size = request_valid & alloc & mshr_insertOH[18] & _request_alloc_cases_T ?
    request_bits_size : _mshrs_18_io_allocate_bits_T_size; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_18_io_allocate_bits_source = request_valid & alloc & mshr_insertOH[18] & _request_alloc_cases_T ?
    request_bits_source : _mshrs_18_io_allocate_bits_T_source; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_18_io_allocate_bits_tag = request_valid & alloc & mshr_insertOH[18] & _request_alloc_cases_T ?
    request_bits_tag : _mshrs_18_io_allocate_bits_T_tag; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_18_io_allocate_bits_offset = request_valid & alloc & mshr_insertOH[18] & _request_alloc_cases_T ?
    request_bits_offset : _mshrs_18_io_allocate_bits_T_offset; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_18_io_allocate_bits_put = request_valid & alloc & mshr_insertOH[18] & _request_alloc_cases_T ?
    request_bits_put : _mshrs_18_io_allocate_bits_T_put; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_18_io_allocate_bits_set = request_valid & alloc & mshr_insertOH[18] & _request_alloc_cases_T ?
    request_bits_set : abc_mshrs_18_io_status_bits_set; // @[Scheduler.scala 269:83 271:26 223:28]
  assign abc_mshrs_18_io_allocate_bits_repeat = request_valid & alloc & mshr_insertOH[18] & _request_alloc_cases_T ? 1'h0
     : abc_mshrs_18_io_allocate_bits_tag == abc_mshrs_18_io_status_bits_tag; // @[Scheduler.scala 224:31 269:83 272:33]
  assign abc_mshrs_18_io_directory_valid = directoryFanout[18]; // @[Scheduler.scala 298:44]
  assign abc_mshrs_18_io_directory_bits_dirty = directory_io_result_bits_dirty; // @[Scheduler.scala 299:25]
  assign abc_mshrs_18_io_directory_bits_state = directory_io_result_bits_state; // @[Scheduler.scala 299:25]
  assign abc_mshrs_18_io_directory_bits_clients = directory_io_result_bits_clients; // @[Scheduler.scala 299:25]
  assign abc_mshrs_18_io_directory_bits_tag = directory_io_result_bits_tag; // @[Scheduler.scala 299:25]
  assign abc_mshrs_18_io_directory_bits_hit = directory_io_result_bits_hit; // @[Scheduler.scala 299:25]
  assign abc_mshrs_18_io_directory_bits_way = directory_io_result_bits_way; // @[Scheduler.scala 299:25]
  assign abc_mshrs_18_io_schedule_ready = mshr_selectOH[18]; // @[Scheduler.scala 212:28]
  assign abc_mshrs_18_io_sinkc_valid = sinkC_io_resp_valid & sinkC_io_resp_bits_set == abc_mshrs_18_io_status_bits_set; // @[Scheduler.scala 77:45]
  assign abc_mshrs_18_io_sinkc_bits_last = sinkC_io_resp_bits_last; // @[Scheduler.scala 80:21]
  assign abc_mshrs_18_io_sinkc_bits_tag = sinkC_io_resp_bits_tag; // @[Scheduler.scala 80:21]
  assign abc_mshrs_18_io_sinkc_bits_source = sinkC_io_resp_bits_source; // @[Scheduler.scala 80:21]
  assign abc_mshrs_18_io_sinkc_bits_param = sinkC_io_resp_bits_param; // @[Scheduler.scala 80:21]
  assign abc_mshrs_18_io_sinkc_bits_data = sinkC_io_resp_bits_data; // @[Scheduler.scala 80:21]
  assign abc_mshrs_18_io_sinkd_valid = sinkD_io_resp_valid & sinkD_io_resp_bits_source == 5'h12; // @[Scheduler.scala 78:45]
  assign abc_mshrs_18_io_sinkd_bits_last = sinkD_io_resp_bits_last; // @[Scheduler.scala 81:21]
  assign abc_mshrs_18_io_sinkd_bits_opcode = sinkD_io_resp_bits_opcode; // @[Scheduler.scala 81:21]
  assign abc_mshrs_18_io_sinkd_bits_param = sinkD_io_resp_bits_param; // @[Scheduler.scala 81:21]
  assign abc_mshrs_18_io_sinkd_bits_sink = sinkD_io_resp_bits_sink; // @[Scheduler.scala 81:21]
  assign abc_mshrs_18_io_sinkd_bits_denied = sinkD_io_resp_bits_denied; // @[Scheduler.scala 81:21]
  assign abc_mshrs_18_io_sinke_valid = sinkE_io_resp_valid & sinkE_io_resp_bits_sink == 5'h12; // @[Scheduler.scala 79:45]
  assign abc_mshrs_18_io_nestedwb_set = mshr_selectOH[21] ? c_mshr_io_status_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 144:24]
  assign abc_mshrs_18_io_nestedwb_tag = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : bc_mshr_io_status_bits_tag; // @[Scheduler.scala 145:24]
  assign abc_mshrs_18_io_nestedwb_b_toN = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h0; // @[Scheduler.scala 146:75]
  assign abc_mshrs_18_io_nestedwb_b_toB = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h1; // @[Scheduler.scala 147:75]
  assign abc_mshrs_18_io_nestedwb_b_clr_dirty = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 148:37]
  assign abc_mshrs_18_io_nestedwb_c_set_dirty = _schedule_T_344 & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 149:75]
  assign abc_mshrs_19_clock = clock;
  assign abc_mshrs_19_reset = reset;
  assign abc_mshrs_19_io_allocate_valid = request_valid & alloc & mshr_insertOH[19] & _request_alloc_cases_T |
    mshr_selectOH[19] & will_reload_20; // @[Scheduler.scala 225:25 269:83 270:27]
  assign abc_mshrs_19_io_allocate_bits_prio_0 = request_valid & alloc & mshr_insertOH[19] & _request_alloc_cases_T ?
    request_bits_prio_0 : _mshrs_19_io_allocate_bits_T_prio_0; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_19_io_allocate_bits_prio_1 = request_valid & alloc & mshr_insertOH[19] & _request_alloc_cases_T ? 1'h0
     : _mshrs_19_io_allocate_bits_T_prio_1; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_19_io_allocate_bits_prio_2 = request_valid & alloc & mshr_insertOH[19] & _request_alloc_cases_T ?
    request_bits_prio_2 : _mshrs_19_io_allocate_bits_T_prio_2; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_19_io_allocate_bits_opcode = request_valid & alloc & mshr_insertOH[19] & _request_alloc_cases_T ?
    request_bits_opcode : _mshrs_19_io_allocate_bits_T_opcode; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_19_io_allocate_bits_param = request_valid & alloc & mshr_insertOH[19] & _request_alloc_cases_T ?
    request_bits_param : _mshrs_19_io_allocate_bits_T_param; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_19_io_allocate_bits_size = request_valid & alloc & mshr_insertOH[19] & _request_alloc_cases_T ?
    request_bits_size : _mshrs_19_io_allocate_bits_T_size; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_19_io_allocate_bits_source = request_valid & alloc & mshr_insertOH[19] & _request_alloc_cases_T ?
    request_bits_source : _mshrs_19_io_allocate_bits_T_source; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_19_io_allocate_bits_tag = request_valid & alloc & mshr_insertOH[19] & _request_alloc_cases_T ?
    request_bits_tag : _mshrs_19_io_allocate_bits_T_tag; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_19_io_allocate_bits_offset = request_valid & alloc & mshr_insertOH[19] & _request_alloc_cases_T ?
    request_bits_offset : _mshrs_19_io_allocate_bits_T_offset; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_19_io_allocate_bits_put = request_valid & alloc & mshr_insertOH[19] & _request_alloc_cases_T ?
    request_bits_put : _mshrs_19_io_allocate_bits_T_put; // @[Scheduler.scala 222:24 269:83 271:26]
  assign abc_mshrs_19_io_allocate_bits_set = request_valid & alloc & mshr_insertOH[19] & _request_alloc_cases_T ?
    request_bits_set : abc_mshrs_19_io_status_bits_set; // @[Scheduler.scala 269:83 271:26 223:28]
  assign abc_mshrs_19_io_allocate_bits_repeat = request_valid & alloc & mshr_insertOH[19] & _request_alloc_cases_T ? 1'h0
     : abc_mshrs_19_io_allocate_bits_tag == abc_mshrs_19_io_status_bits_tag; // @[Scheduler.scala 224:31 269:83 272:33]
  assign abc_mshrs_19_io_directory_valid = directoryFanout[19]; // @[Scheduler.scala 298:44]
  assign abc_mshrs_19_io_directory_bits_dirty = directory_io_result_bits_dirty; // @[Scheduler.scala 299:25]
  assign abc_mshrs_19_io_directory_bits_state = directory_io_result_bits_state; // @[Scheduler.scala 299:25]
  assign abc_mshrs_19_io_directory_bits_clients = directory_io_result_bits_clients; // @[Scheduler.scala 299:25]
  assign abc_mshrs_19_io_directory_bits_tag = directory_io_result_bits_tag; // @[Scheduler.scala 299:25]
  assign abc_mshrs_19_io_directory_bits_hit = directory_io_result_bits_hit; // @[Scheduler.scala 299:25]
  assign abc_mshrs_19_io_directory_bits_way = directory_io_result_bits_way; // @[Scheduler.scala 299:25]
  assign abc_mshrs_19_io_schedule_ready = mshr_selectOH[19]; // @[Scheduler.scala 212:28]
  assign abc_mshrs_19_io_sinkc_valid = sinkC_io_resp_valid & sinkC_io_resp_bits_set == abc_mshrs_19_io_status_bits_set; // @[Scheduler.scala 77:45]
  assign abc_mshrs_19_io_sinkc_bits_last = sinkC_io_resp_bits_last; // @[Scheduler.scala 80:21]
  assign abc_mshrs_19_io_sinkc_bits_tag = sinkC_io_resp_bits_tag; // @[Scheduler.scala 80:21]
  assign abc_mshrs_19_io_sinkc_bits_source = sinkC_io_resp_bits_source; // @[Scheduler.scala 80:21]
  assign abc_mshrs_19_io_sinkc_bits_param = sinkC_io_resp_bits_param; // @[Scheduler.scala 80:21]
  assign abc_mshrs_19_io_sinkc_bits_data = sinkC_io_resp_bits_data; // @[Scheduler.scala 80:21]
  assign abc_mshrs_19_io_sinkd_valid = sinkD_io_resp_valid & sinkD_io_resp_bits_source == 5'h13; // @[Scheduler.scala 78:45]
  assign abc_mshrs_19_io_sinkd_bits_last = sinkD_io_resp_bits_last; // @[Scheduler.scala 81:21]
  assign abc_mshrs_19_io_sinkd_bits_opcode = sinkD_io_resp_bits_opcode; // @[Scheduler.scala 81:21]
  assign abc_mshrs_19_io_sinkd_bits_param = sinkD_io_resp_bits_param; // @[Scheduler.scala 81:21]
  assign abc_mshrs_19_io_sinkd_bits_sink = sinkD_io_resp_bits_sink; // @[Scheduler.scala 81:21]
  assign abc_mshrs_19_io_sinkd_bits_denied = sinkD_io_resp_bits_denied; // @[Scheduler.scala 81:21]
  assign abc_mshrs_19_io_sinke_valid = sinkE_io_resp_valid & sinkE_io_resp_bits_sink == 5'h13; // @[Scheduler.scala 79:45]
  assign abc_mshrs_19_io_nestedwb_set = mshr_selectOH[21] ? c_mshr_io_status_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 144:24]
  assign abc_mshrs_19_io_nestedwb_tag = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : bc_mshr_io_status_bits_tag; // @[Scheduler.scala 145:24]
  assign abc_mshrs_19_io_nestedwb_b_toN = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h0; // @[Scheduler.scala 146:75]
  assign abc_mshrs_19_io_nestedwb_b_toB = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h1; // @[Scheduler.scala 147:75]
  assign abc_mshrs_19_io_nestedwb_b_clr_dirty = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 148:37]
  assign abc_mshrs_19_io_nestedwb_c_set_dirty = _schedule_T_344 & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 149:75]
  assign bc_mshr_clock = clock;
  assign bc_mshr_reset = reset;
  assign bc_mshr_io_allocate_valid = request_valid & alloc & mshr_insertOH[20] & _request_alloc_cases_T | mshr_selectOH[
    20] & will_reload_21; // @[Scheduler.scala 225:25 269:83 270:27]
  assign bc_mshr_io_allocate_bits_prio_0 = 1'h0; // @[Scheduler.scala 282:36]
  assign bc_mshr_io_allocate_bits_prio_1 = request_valid & alloc & mshr_insertOH[20] & _request_alloc_cases_T ? 1'h0 :
    _mshrs_20_io_allocate_bits_T_prio_1; // @[Scheduler.scala 222:24 269:83 271:26]
  assign bc_mshr_io_allocate_bits_prio_2 = request_valid & alloc & mshr_insertOH[20] & _request_alloc_cases_T ?
    request_bits_prio_2 : _mshrs_20_io_allocate_bits_T_prio_2; // @[Scheduler.scala 222:24 269:83 271:26]
  assign bc_mshr_io_allocate_bits_opcode = request_valid & alloc & mshr_insertOH[20] & _request_alloc_cases_T ?
    request_bits_opcode : _mshrs_20_io_allocate_bits_T_opcode; // @[Scheduler.scala 222:24 269:83 271:26]
  assign bc_mshr_io_allocate_bits_param = request_valid & alloc & mshr_insertOH[20] & _request_alloc_cases_T ?
    request_bits_param : _mshrs_20_io_allocate_bits_T_param; // @[Scheduler.scala 222:24 269:83 271:26]
  assign bc_mshr_io_allocate_bits_size = request_valid & alloc & mshr_insertOH[20] & _request_alloc_cases_T ?
    request_bits_size : _mshrs_20_io_allocate_bits_T_size; // @[Scheduler.scala 222:24 269:83 271:26]
  assign bc_mshr_io_allocate_bits_source = request_valid & alloc & mshr_insertOH[20] & _request_alloc_cases_T ?
    request_bits_source : _mshrs_20_io_allocate_bits_T_source; // @[Scheduler.scala 222:24 269:83 271:26]
  assign bc_mshr_io_allocate_bits_tag = request_valid & alloc & mshr_insertOH[20] & _request_alloc_cases_T ?
    request_bits_tag : _mshrs_20_io_allocate_bits_T_tag; // @[Scheduler.scala 222:24 269:83 271:26]
  assign bc_mshr_io_allocate_bits_offset = request_valid & alloc & mshr_insertOH[20] & _request_alloc_cases_T ?
    request_bits_offset : _mshrs_20_io_allocate_bits_T_offset; // @[Scheduler.scala 222:24 269:83 271:26]
  assign bc_mshr_io_allocate_bits_put = request_valid & alloc & mshr_insertOH[20] & _request_alloc_cases_T ?
    request_bits_put : _mshrs_20_io_allocate_bits_T_put; // @[Scheduler.scala 222:24 269:83 271:26]
  assign bc_mshr_io_allocate_bits_set = request_valid & alloc & mshr_insertOH[20] & _request_alloc_cases_T ?
    request_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 269:83 271:26 223:28]
  assign bc_mshr_io_allocate_bits_repeat = request_valid & alloc & mshr_insertOH[20] & _request_alloc_cases_T ? 1'h0 :
    bc_mshr_io_allocate_bits_tag == bc_mshr_io_status_bits_tag; // @[Scheduler.scala 224:31 269:83 272:33]
  assign bc_mshr_io_directory_valid = directoryFanout[20]; // @[Scheduler.scala 298:44]
  assign bc_mshr_io_directory_bits_dirty = directory_io_result_bits_dirty; // @[Scheduler.scala 299:25]
  assign bc_mshr_io_directory_bits_state = directory_io_result_bits_state; // @[Scheduler.scala 299:25]
  assign bc_mshr_io_directory_bits_clients = directory_io_result_bits_clients; // @[Scheduler.scala 299:25]
  assign bc_mshr_io_directory_bits_tag = directory_io_result_bits_tag; // @[Scheduler.scala 299:25]
  assign bc_mshr_io_directory_bits_hit = directory_io_result_bits_hit; // @[Scheduler.scala 299:25]
  assign bc_mshr_io_directory_bits_way = directory_io_result_bits_way; // @[Scheduler.scala 299:25]
  assign bc_mshr_io_schedule_ready = mshr_selectOH[20]; // @[Scheduler.scala 212:28]
  assign bc_mshr_io_sinkc_valid = sinkC_io_resp_valid & sinkC_io_resp_bits_set == bc_mshr_io_status_bits_set; // @[Scheduler.scala 77:45]
  assign bc_mshr_io_sinkc_bits_last = sinkC_io_resp_bits_last; // @[Scheduler.scala 80:21]
  assign bc_mshr_io_sinkc_bits_tag = sinkC_io_resp_bits_tag; // @[Scheduler.scala 80:21]
  assign bc_mshr_io_sinkc_bits_source = sinkC_io_resp_bits_source; // @[Scheduler.scala 80:21]
  assign bc_mshr_io_sinkc_bits_param = sinkC_io_resp_bits_param; // @[Scheduler.scala 80:21]
  assign bc_mshr_io_sinkc_bits_data = sinkC_io_resp_bits_data; // @[Scheduler.scala 80:21]
  assign bc_mshr_io_sinkd_valid = sinkD_io_resp_valid & sinkD_io_resp_bits_source == 5'h14; // @[Scheduler.scala 78:45]
  assign bc_mshr_io_sinkd_bits_last = sinkD_io_resp_bits_last; // @[Scheduler.scala 81:21]
  assign bc_mshr_io_sinkd_bits_opcode = sinkD_io_resp_bits_opcode; // @[Scheduler.scala 81:21]
  assign bc_mshr_io_sinkd_bits_param = sinkD_io_resp_bits_param; // @[Scheduler.scala 81:21]
  assign bc_mshr_io_sinkd_bits_sink = sinkD_io_resp_bits_sink; // @[Scheduler.scala 81:21]
  assign bc_mshr_io_sinkd_bits_denied = sinkD_io_resp_bits_denied; // @[Scheduler.scala 81:21]
  assign bc_mshr_io_sinke_valid = sinkE_io_resp_valid & sinkE_io_resp_bits_sink == 5'h14; // @[Scheduler.scala 79:45]
  assign bc_mshr_io_nestedwb_set = mshr_selectOH[21] ? c_mshr_io_status_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 144:24]
  assign bc_mshr_io_nestedwb_tag = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : bc_mshr_io_status_bits_tag; // @[Scheduler.scala 145:24]
  assign bc_mshr_io_nestedwb_b_toN = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h0; // @[Scheduler.scala 146:75]
  assign bc_mshr_io_nestedwb_b_toB = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h1; // @[Scheduler.scala 147:75]
  assign bc_mshr_io_nestedwb_b_clr_dirty = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 148:37]
  assign bc_mshr_io_nestedwb_c_set_dirty = _schedule_T_344 & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 149:75]
  assign c_mshr_clock = clock;
  assign c_mshr_reset = reset;
  assign c_mshr_io_allocate_valid = request_valid & nestC & _request_alloc_cases_T_7 & _request_alloc_cases_T | _GEN_295
    ; // @[Scheduler.scala 284:103 285:30]
  assign c_mshr_io_allocate_bits_prio_0 = 1'h0; // @[Scheduler.scala 291:35]
  assign c_mshr_io_allocate_bits_prio_1 = 1'h0; // @[Scheduler.scala 292:35]
  assign c_mshr_io_allocate_bits_prio_2 = request_valid & nestC & _request_alloc_cases_T_7 & _request_alloc_cases_T ?
    request_bits_prio_2 : _GEN_298; // @[Scheduler.scala 284:103 286:29]
  assign c_mshr_io_allocate_bits_opcode = request_valid & nestC & _request_alloc_cases_T_7 & _request_alloc_cases_T ?
    request_bits_opcode : _GEN_300; // @[Scheduler.scala 284:103 286:29]
  assign c_mshr_io_allocate_bits_param = request_valid & nestC & _request_alloc_cases_T_7 & _request_alloc_cases_T ?
    request_bits_param : _GEN_301; // @[Scheduler.scala 284:103 286:29]
  assign c_mshr_io_allocate_bits_size = request_valid & nestC & _request_alloc_cases_T_7 & _request_alloc_cases_T ?
    request_bits_size : _GEN_302; // @[Scheduler.scala 284:103 286:29]
  assign c_mshr_io_allocate_bits_source = request_valid & nestC & _request_alloc_cases_T_7 & _request_alloc_cases_T ?
    request_bits_source : _GEN_303; // @[Scheduler.scala 284:103 286:29]
  assign c_mshr_io_allocate_bits_tag = request_valid & nestC & _request_alloc_cases_T_7 & _request_alloc_cases_T ?
    request_bits_tag : _GEN_304; // @[Scheduler.scala 284:103 286:29]
  assign c_mshr_io_allocate_bits_offset = request_valid & nestC & _request_alloc_cases_T_7 & _request_alloc_cases_T ?
    request_bits_offset : _GEN_305; // @[Scheduler.scala 284:103 286:29]
  assign c_mshr_io_allocate_bits_put = request_valid & nestC & _request_alloc_cases_T_7 & _request_alloc_cases_T ?
    request_bits_put : _GEN_306; // @[Scheduler.scala 284:103 286:29]
  assign c_mshr_io_allocate_bits_set = request_valid & nestC & _request_alloc_cases_T_7 & _request_alloc_cases_T ?
    request_bits_set : _GEN_307; // @[Scheduler.scala 284:103 286:29]
  assign c_mshr_io_allocate_bits_repeat = request_valid & nestC & _request_alloc_cases_T_7 & _request_alloc_cases_T ? 1'h0
     : _GEN_308; // @[Scheduler.scala 284:103 287:36]
  assign c_mshr_io_directory_valid = directoryFanout[21]; // @[Scheduler.scala 298:44]
  assign c_mshr_io_directory_bits_dirty = directory_io_result_bits_dirty; // @[Scheduler.scala 299:25]
  assign c_mshr_io_directory_bits_state = directory_io_result_bits_state; // @[Scheduler.scala 299:25]
  assign c_mshr_io_directory_bits_clients = directory_io_result_bits_clients; // @[Scheduler.scala 299:25]
  assign c_mshr_io_directory_bits_tag = directory_io_result_bits_tag; // @[Scheduler.scala 299:25]
  assign c_mshr_io_directory_bits_hit = directory_io_result_bits_hit; // @[Scheduler.scala 299:25]
  assign c_mshr_io_directory_bits_way = directory_io_result_bits_way; // @[Scheduler.scala 299:25]
  assign c_mshr_io_schedule_ready = mshr_selectOH[21]; // @[Scheduler.scala 212:28]
  assign c_mshr_io_sinkc_valid = sinkC_io_resp_valid & sinkC_io_resp_bits_set == c_mshr_io_status_bits_set; // @[Scheduler.scala 77:45]
  assign c_mshr_io_sinkc_bits_last = sinkC_io_resp_bits_last; // @[Scheduler.scala 80:21]
  assign c_mshr_io_sinkc_bits_tag = sinkC_io_resp_bits_tag; // @[Scheduler.scala 80:21]
  assign c_mshr_io_sinkc_bits_source = sinkC_io_resp_bits_source; // @[Scheduler.scala 80:21]
  assign c_mshr_io_sinkc_bits_param = sinkC_io_resp_bits_param; // @[Scheduler.scala 80:21]
  assign c_mshr_io_sinkc_bits_data = sinkC_io_resp_bits_data; // @[Scheduler.scala 80:21]
  assign c_mshr_io_sinkd_valid = sinkD_io_resp_valid & sinkD_io_resp_bits_source == 5'h15; // @[Scheduler.scala 78:45]
  assign c_mshr_io_sinkd_bits_last = sinkD_io_resp_bits_last; // @[Scheduler.scala 81:21]
  assign c_mshr_io_sinkd_bits_opcode = sinkD_io_resp_bits_opcode; // @[Scheduler.scala 81:21]
  assign c_mshr_io_sinkd_bits_param = sinkD_io_resp_bits_param; // @[Scheduler.scala 81:21]
  assign c_mshr_io_sinkd_bits_sink = sinkD_io_resp_bits_sink; // @[Scheduler.scala 81:21]
  assign c_mshr_io_sinkd_bits_denied = sinkD_io_resp_bits_denied; // @[Scheduler.scala 81:21]
  assign c_mshr_io_sinke_valid = sinkE_io_resp_valid & sinkE_io_resp_bits_sink == 5'h15; // @[Scheduler.scala 79:45]
  assign c_mshr_io_nestedwb_set = mshr_selectOH[21] ? c_mshr_io_status_bits_set : bc_mshr_io_status_bits_set; // @[Scheduler.scala 144:24]
  assign c_mshr_io_nestedwb_tag = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : bc_mshr_io_status_bits_tag; // @[Scheduler.scala 145:24]
  assign c_mshr_io_nestedwb_b_toN = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h0; // @[Scheduler.scala 146:75]
  assign c_mshr_io_nestedwb_b_toB = _schedule_T_343 & bc_mshr_io_schedule_bits_dir_bits_data_state == 2'h1; // @[Scheduler.scala 147:75]
  assign c_mshr_io_nestedwb_b_clr_dirty = mshr_selectOH[20] & bc_mshr_io_schedule_bits_dir_valid; // @[Scheduler.scala 148:37]
  assign c_mshr_io_nestedwb_c_set_dirty = _schedule_T_344 & c_mshr_io_schedule_bits_dir_bits_data_dirty; // @[Scheduler.scala 149:75]
  always @(posedge clock) begin
    if (reset) begin // @[Scheduler.scala 116:29]
      robin_filter <= 22'h0; // @[Scheduler.scala 116:29]
    end else if (|mshr_request) begin // @[Scheduler.scala 126:29]
      robin_filter <= _robin_filter_T_11; // @[Scheduler.scala 126:44]
    end
    if (mshr_uses_directory) begin // @[Scheduler.scala 296:50]
      directoryFanout <= {{1'd0}, mshr_selectOH};
    end else if (alloc_uses_directory) begin // @[Scheduler.scala 296:90]
      if (alloc) begin // @[Scheduler.scala 295:22]
        directoryFanout <= mshr_insertOH;
      end else begin
        directoryFanout <= 23'h200000;
      end
    end else begin
      directoryFanout <= 23'h0;
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_155 & _T_149 & _T_150) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Scheduler.scala:288 assert (!request.bits.prio(0))\n"); // @[Scheduler.scala 288:12]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_150 & (_T_155 & _T_149)) begin
          $fatal; // @[Scheduler.scala 288:12]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  robin_filter = _RAND_0[21:0];
  _RAND_1 = {1{`RANDOM}};
  directoryFanout = _RAND_1[22:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module InclusiveCache(
  input         clock,
  input         reset,
  output        auto_in_a_ready,
  input         auto_in_a_valid,
  input  [2:0]  auto_in_a_bits_opcode,
  input  [2:0]  auto_in_a_bits_param,
  input  [2:0]  auto_in_a_bits_size,
  input  [2:0]  auto_in_a_bits_source,
  input  [31:0] auto_in_a_bits_address,
  input  [7:0]  auto_in_a_bits_mask,
  input  [63:0] auto_in_a_bits_data,
  input         auto_in_a_bits_corrupt,
  input         auto_in_b_ready,
  output        auto_in_b_valid,
  output [1:0]  auto_in_b_bits_param,
  output [31:0] auto_in_b_bits_address,
  output        auto_in_c_ready,
  input         auto_in_c_valid,
  input  [2:0]  auto_in_c_bits_opcode,
  input  [2:0]  auto_in_c_bits_param,
  input  [2:0]  auto_in_c_bits_size,
  input  [31:0] auto_in_c_bits_address,
  input  [63:0] auto_in_c_bits_data,
  input         auto_in_c_bits_corrupt,
  input         auto_in_d_ready,
  output        auto_in_d_valid,
  output [2:0]  auto_in_d_bits_opcode,
  output [1:0]  auto_in_d_bits_param,
  output [2:0]  auto_in_d_bits_size,
  output [2:0]  auto_in_d_bits_source,
  output [4:0]  auto_in_d_bits_sink,
  output        auto_in_d_bits_denied,
  output [63:0] auto_in_d_bits_data,
  output        auto_in_d_bits_corrupt,
  input         auto_in_e_valid,
  input  [4:0]  auto_in_e_bits_sink,
  input         auto_out_a_ready,
  output        auto_out_a_valid,
  output [2:0]  auto_out_a_bits_opcode,
  output [2:0]  auto_out_a_bits_param,
  output [2:0]  auto_out_a_bits_size,
  output [4:0]  auto_out_a_bits_source,
  output [31:0] auto_out_a_bits_address,
  output [7:0]  auto_out_a_bits_mask,
  output [63:0] auto_out_a_bits_data,
  output        auto_out_a_bits_corrupt,
  input         auto_out_c_ready,
  output        auto_out_c_valid,
  output [2:0]  auto_out_c_bits_opcode,
  output [2:0]  auto_out_c_bits_param,
  output [2:0]  auto_out_c_bits_size,
  output [4:0]  auto_out_c_bits_source,
  output [31:0] auto_out_c_bits_address,
  output [63:0] auto_out_c_bits_data,
  output        auto_out_c_bits_corrupt,
  output        auto_out_d_ready,
  input         auto_out_d_valid,
  input  [2:0]  auto_out_d_bits_opcode,
  input  [1:0]  auto_out_d_bits_param,
  input  [2:0]  auto_out_d_bits_size,
  input  [4:0]  auto_out_d_bits_source,
  input  [2:0]  auto_out_d_bits_sink,
  input         auto_out_d_bits_denied,
  input  [63:0] auto_out_d_bits_data,
  input         auto_out_d_bits_corrupt,
  output        auto_out_e_valid,
  output [2:0]  auto_out_e_bits_sink
);
  wire  monitor_clock; // @[Nodes.scala 24:25]
  wire  monitor_reset; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_opcode; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_param; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_size; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_source; // @[Nodes.scala 24:25]
  wire [31:0] monitor_io_in_a_bits_address; // @[Nodes.scala 24:25]
  wire [7:0] monitor_io_in_a_bits_mask; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_bits_corrupt; // @[Nodes.scala 24:25]
  wire  monitor_io_in_b_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_b_valid; // @[Nodes.scala 24:25]
  wire [1:0] monitor_io_in_b_bits_param; // @[Nodes.scala 24:25]
  wire [31:0] monitor_io_in_b_bits_address; // @[Nodes.scala 24:25]
  wire  monitor_io_in_c_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_c_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_c_bits_opcode; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_c_bits_param; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_c_bits_size; // @[Nodes.scala 24:25]
  wire [31:0] monitor_io_in_c_bits_address; // @[Nodes.scala 24:25]
  wire  monitor_io_in_c_bits_corrupt; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  wire [1:0] monitor_io_in_d_bits_param; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_size; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_source; // @[Nodes.scala 24:25]
  wire [4:0] monitor_io_in_d_bits_sink; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_denied; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_corrupt; // @[Nodes.scala 24:25]
  wire  monitor_io_in_e_valid; // @[Nodes.scala 24:25]
  wire [4:0] monitor_io_in_e_bits_sink; // @[Nodes.scala 24:25]
  wire  mods_0_clock; // @[InclusiveCache.scala 199:29]
  wire  mods_0_reset; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_in_a_ready; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_in_a_valid; // @[InclusiveCache.scala 199:29]
  wire [2:0] mods_0_io_in_a_bits_opcode; // @[InclusiveCache.scala 199:29]
  wire [2:0] mods_0_io_in_a_bits_param; // @[InclusiveCache.scala 199:29]
  wire [2:0] mods_0_io_in_a_bits_size; // @[InclusiveCache.scala 199:29]
  wire [2:0] mods_0_io_in_a_bits_source; // @[InclusiveCache.scala 199:29]
  wire [31:0] mods_0_io_in_a_bits_address; // @[InclusiveCache.scala 199:29]
  wire [7:0] mods_0_io_in_a_bits_mask; // @[InclusiveCache.scala 199:29]
  wire [63:0] mods_0_io_in_a_bits_data; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_in_a_bits_corrupt; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_in_b_ready; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_in_b_valid; // @[InclusiveCache.scala 199:29]
  wire [1:0] mods_0_io_in_b_bits_param; // @[InclusiveCache.scala 199:29]
  wire [31:0] mods_0_io_in_b_bits_address; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_in_c_ready; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_in_c_valid; // @[InclusiveCache.scala 199:29]
  wire [2:0] mods_0_io_in_c_bits_opcode; // @[InclusiveCache.scala 199:29]
  wire [2:0] mods_0_io_in_c_bits_param; // @[InclusiveCache.scala 199:29]
  wire [2:0] mods_0_io_in_c_bits_size; // @[InclusiveCache.scala 199:29]
  wire [31:0] mods_0_io_in_c_bits_address; // @[InclusiveCache.scala 199:29]
  wire [63:0] mods_0_io_in_c_bits_data; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_in_c_bits_corrupt; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_in_d_ready; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_in_d_valid; // @[InclusiveCache.scala 199:29]
  wire [2:0] mods_0_io_in_d_bits_opcode; // @[InclusiveCache.scala 199:29]
  wire [1:0] mods_0_io_in_d_bits_param; // @[InclusiveCache.scala 199:29]
  wire [2:0] mods_0_io_in_d_bits_size; // @[InclusiveCache.scala 199:29]
  wire [2:0] mods_0_io_in_d_bits_source; // @[InclusiveCache.scala 199:29]
  wire [4:0] mods_0_io_in_d_bits_sink; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_in_d_bits_denied; // @[InclusiveCache.scala 199:29]
  wire [63:0] mods_0_io_in_d_bits_data; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_in_d_bits_corrupt; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_in_e_valid; // @[InclusiveCache.scala 199:29]
  wire [4:0] mods_0_io_in_e_bits_sink; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_out_a_ready; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_out_a_valid; // @[InclusiveCache.scala 199:29]
  wire [2:0] mods_0_io_out_a_bits_opcode; // @[InclusiveCache.scala 199:29]
  wire [2:0] mods_0_io_out_a_bits_param; // @[InclusiveCache.scala 199:29]
  wire [2:0] mods_0_io_out_a_bits_size; // @[InclusiveCache.scala 199:29]
  wire [4:0] mods_0_io_out_a_bits_source; // @[InclusiveCache.scala 199:29]
  wire [31:0] mods_0_io_out_a_bits_address; // @[InclusiveCache.scala 199:29]
  wire [7:0] mods_0_io_out_a_bits_mask; // @[InclusiveCache.scala 199:29]
  wire [63:0] mods_0_io_out_a_bits_data; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_out_a_bits_corrupt; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_out_c_ready; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_out_c_valid; // @[InclusiveCache.scala 199:29]
  wire [2:0] mods_0_io_out_c_bits_opcode; // @[InclusiveCache.scala 199:29]
  wire [2:0] mods_0_io_out_c_bits_param; // @[InclusiveCache.scala 199:29]
  wire [2:0] mods_0_io_out_c_bits_size; // @[InclusiveCache.scala 199:29]
  wire [4:0] mods_0_io_out_c_bits_source; // @[InclusiveCache.scala 199:29]
  wire [31:0] mods_0_io_out_c_bits_address; // @[InclusiveCache.scala 199:29]
  wire [63:0] mods_0_io_out_c_bits_data; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_out_c_bits_corrupt; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_out_d_ready; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_out_d_valid; // @[InclusiveCache.scala 199:29]
  wire [2:0] mods_0_io_out_d_bits_opcode; // @[InclusiveCache.scala 199:29]
  wire [1:0] mods_0_io_out_d_bits_param; // @[InclusiveCache.scala 199:29]
  wire [2:0] mods_0_io_out_d_bits_size; // @[InclusiveCache.scala 199:29]
  wire [4:0] mods_0_io_out_d_bits_source; // @[InclusiveCache.scala 199:29]
  wire [2:0] mods_0_io_out_d_bits_sink; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_out_d_bits_denied; // @[InclusiveCache.scala 199:29]
  wire [63:0] mods_0_io_out_d_bits_data; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_out_d_bits_corrupt; // @[InclusiveCache.scala 199:29]
  wire  mods_0_io_out_e_valid; // @[InclusiveCache.scala 199:29]
  wire [2:0] mods_0_io_out_e_bits_sink; // @[InclusiveCache.scala 199:29]
  TLMonitor monitor ( // @[Nodes.scala 24:25]
    .clock(monitor_clock),
    .reset(monitor_reset),
    .io_in_a_ready(monitor_io_in_a_ready),
    .io_in_a_valid(monitor_io_in_a_valid),
    .io_in_a_bits_opcode(monitor_io_in_a_bits_opcode),
    .io_in_a_bits_param(monitor_io_in_a_bits_param),
    .io_in_a_bits_size(monitor_io_in_a_bits_size),
    .io_in_a_bits_source(monitor_io_in_a_bits_source),
    .io_in_a_bits_address(monitor_io_in_a_bits_address),
    .io_in_a_bits_mask(monitor_io_in_a_bits_mask),
    .io_in_a_bits_corrupt(monitor_io_in_a_bits_corrupt),
    .io_in_b_ready(monitor_io_in_b_ready),
    .io_in_b_valid(monitor_io_in_b_valid),
    .io_in_b_bits_param(monitor_io_in_b_bits_param),
    .io_in_b_bits_address(monitor_io_in_b_bits_address),
    .io_in_c_ready(monitor_io_in_c_ready),
    .io_in_c_valid(monitor_io_in_c_valid),
    .io_in_c_bits_opcode(monitor_io_in_c_bits_opcode),
    .io_in_c_bits_param(monitor_io_in_c_bits_param),
    .io_in_c_bits_size(monitor_io_in_c_bits_size),
    .io_in_c_bits_address(monitor_io_in_c_bits_address),
    .io_in_c_bits_corrupt(monitor_io_in_c_bits_corrupt),
    .io_in_d_ready(monitor_io_in_d_ready),
    .io_in_d_valid(monitor_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_io_in_d_bits_opcode),
    .io_in_d_bits_param(monitor_io_in_d_bits_param),
    .io_in_d_bits_size(monitor_io_in_d_bits_size),
    .io_in_d_bits_source(monitor_io_in_d_bits_source),
    .io_in_d_bits_sink(monitor_io_in_d_bits_sink),
    .io_in_d_bits_denied(monitor_io_in_d_bits_denied),
    .io_in_d_bits_corrupt(monitor_io_in_d_bits_corrupt),
    .io_in_e_valid(monitor_io_in_e_valid),
    .io_in_e_bits_sink(monitor_io_in_e_bits_sink)
  );
  Scheduler mods_0 ( // @[InclusiveCache.scala 199:29]
    .clock(mods_0_clock),
    .reset(mods_0_reset),
    .io_in_a_ready(mods_0_io_in_a_ready),
    .io_in_a_valid(mods_0_io_in_a_valid),
    .io_in_a_bits_opcode(mods_0_io_in_a_bits_opcode),
    .io_in_a_bits_param(mods_0_io_in_a_bits_param),
    .io_in_a_bits_size(mods_0_io_in_a_bits_size),
    .io_in_a_bits_source(mods_0_io_in_a_bits_source),
    .io_in_a_bits_address(mods_0_io_in_a_bits_address),
    .io_in_a_bits_mask(mods_0_io_in_a_bits_mask),
    .io_in_a_bits_data(mods_0_io_in_a_bits_data),
    .io_in_a_bits_corrupt(mods_0_io_in_a_bits_corrupt),
    .io_in_b_ready(mods_0_io_in_b_ready),
    .io_in_b_valid(mods_0_io_in_b_valid),
    .io_in_b_bits_param(mods_0_io_in_b_bits_param),
    .io_in_b_bits_address(mods_0_io_in_b_bits_address),
    .io_in_c_ready(mods_0_io_in_c_ready),
    .io_in_c_valid(mods_0_io_in_c_valid),
    .io_in_c_bits_opcode(mods_0_io_in_c_bits_opcode),
    .io_in_c_bits_param(mods_0_io_in_c_bits_param),
    .io_in_c_bits_size(mods_0_io_in_c_bits_size),
    .io_in_c_bits_address(mods_0_io_in_c_bits_address),
    .io_in_c_bits_data(mods_0_io_in_c_bits_data),
    .io_in_c_bits_corrupt(mods_0_io_in_c_bits_corrupt),
    .io_in_d_ready(mods_0_io_in_d_ready),
    .io_in_d_valid(mods_0_io_in_d_valid),
    .io_in_d_bits_opcode(mods_0_io_in_d_bits_opcode),
    .io_in_d_bits_param(mods_0_io_in_d_bits_param),
    .io_in_d_bits_size(mods_0_io_in_d_bits_size),
    .io_in_d_bits_source(mods_0_io_in_d_bits_source),
    .io_in_d_bits_sink(mods_0_io_in_d_bits_sink),
    .io_in_d_bits_denied(mods_0_io_in_d_bits_denied),
    .io_in_d_bits_data(mods_0_io_in_d_bits_data),
    .io_in_d_bits_corrupt(mods_0_io_in_d_bits_corrupt),
    .io_in_e_valid(mods_0_io_in_e_valid),
    .io_in_e_bits_sink(mods_0_io_in_e_bits_sink),
    .io_out_a_ready(mods_0_io_out_a_ready),
    .io_out_a_valid(mods_0_io_out_a_valid),
    .io_out_a_bits_opcode(mods_0_io_out_a_bits_opcode),
    .io_out_a_bits_param(mods_0_io_out_a_bits_param),
    .io_out_a_bits_size(mods_0_io_out_a_bits_size),
    .io_out_a_bits_source(mods_0_io_out_a_bits_source),
    .io_out_a_bits_address(mods_0_io_out_a_bits_address),
    .io_out_a_bits_mask(mods_0_io_out_a_bits_mask),
    .io_out_a_bits_data(mods_0_io_out_a_bits_data),
    .io_out_a_bits_corrupt(mods_0_io_out_a_bits_corrupt),
    .io_out_c_ready(mods_0_io_out_c_ready),
    .io_out_c_valid(mods_0_io_out_c_valid),
    .io_out_c_bits_opcode(mods_0_io_out_c_bits_opcode),
    .io_out_c_bits_param(mods_0_io_out_c_bits_param),
    .io_out_c_bits_size(mods_0_io_out_c_bits_size),
    .io_out_c_bits_source(mods_0_io_out_c_bits_source),
    .io_out_c_bits_address(mods_0_io_out_c_bits_address),
    .io_out_c_bits_data(mods_0_io_out_c_bits_data),
    .io_out_c_bits_corrupt(mods_0_io_out_c_bits_corrupt),
    .io_out_d_ready(mods_0_io_out_d_ready),
    .io_out_d_valid(mods_0_io_out_d_valid),
    .io_out_d_bits_opcode(mods_0_io_out_d_bits_opcode),
    .io_out_d_bits_param(mods_0_io_out_d_bits_param),
    .io_out_d_bits_size(mods_0_io_out_d_bits_size),
    .io_out_d_bits_source(mods_0_io_out_d_bits_source),
    .io_out_d_bits_sink(mods_0_io_out_d_bits_sink),
    .io_out_d_bits_denied(mods_0_io_out_d_bits_denied),
    .io_out_d_bits_data(mods_0_io_out_d_bits_data),
    .io_out_d_bits_corrupt(mods_0_io_out_d_bits_corrupt),
    .io_out_e_valid(mods_0_io_out_e_valid),
    .io_out_e_bits_sink(mods_0_io_out_e_bits_sink)
  );
  assign auto_in_a_ready = mods_0_io_in_a_ready; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign auto_in_b_valid = mods_0_io_in_b_valid; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign auto_in_b_bits_param = mods_0_io_in_b_bits_param; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign auto_in_b_bits_address = mods_0_io_in_b_bits_address; // @[Parameters.scala 244:14]
  assign auto_in_c_ready = mods_0_io_in_c_ready; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign auto_in_d_valid = mods_0_io_in_d_valid; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign auto_in_d_bits_opcode = mods_0_io_in_d_bits_opcode; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign auto_in_d_bits_param = mods_0_io_in_d_bits_param; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign auto_in_d_bits_size = mods_0_io_in_d_bits_size; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign auto_in_d_bits_source = mods_0_io_in_d_bits_source; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign auto_in_d_bits_sink = mods_0_io_in_d_bits_sink; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign auto_in_d_bits_denied = mods_0_io_in_d_bits_denied; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign auto_in_d_bits_data = mods_0_io_in_d_bits_data; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign auto_in_d_bits_corrupt = mods_0_io_in_d_bits_corrupt; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign auto_out_a_valid = mods_0_io_out_a_valid; // @[Nodes.scala 1207:84 InclusiveCache.scala 202:11]
  assign auto_out_a_bits_opcode = mods_0_io_out_a_bits_opcode; // @[Nodes.scala 1207:84 InclusiveCache.scala 202:11]
  assign auto_out_a_bits_param = mods_0_io_out_a_bits_param; // @[Nodes.scala 1207:84 InclusiveCache.scala 202:11]
  assign auto_out_a_bits_size = mods_0_io_out_a_bits_size; // @[Nodes.scala 1207:84 InclusiveCache.scala 202:11]
  assign auto_out_a_bits_source = mods_0_io_out_a_bits_source; // @[Nodes.scala 1207:84 InclusiveCache.scala 202:11]
  assign auto_out_a_bits_address = mods_0_io_out_a_bits_address; // @[Parameters.scala 244:14]
  assign auto_out_a_bits_mask = mods_0_io_out_a_bits_mask; // @[Nodes.scala 1207:84 InclusiveCache.scala 202:11]
  assign auto_out_a_bits_data = mods_0_io_out_a_bits_data; // @[Nodes.scala 1207:84 InclusiveCache.scala 202:11]
  assign auto_out_a_bits_corrupt = mods_0_io_out_a_bits_corrupt; // @[Nodes.scala 1207:84 InclusiveCache.scala 202:11]
  assign auto_out_c_valid = mods_0_io_out_c_valid; // @[Nodes.scala 1207:84 InclusiveCache.scala 202:11]
  assign auto_out_c_bits_opcode = mods_0_io_out_c_bits_opcode; // @[Nodes.scala 1207:84 InclusiveCache.scala 202:11]
  assign auto_out_c_bits_param = mods_0_io_out_c_bits_param; // @[Nodes.scala 1207:84 InclusiveCache.scala 202:11]
  assign auto_out_c_bits_size = mods_0_io_out_c_bits_size; // @[Nodes.scala 1207:84 InclusiveCache.scala 202:11]
  assign auto_out_c_bits_source = mods_0_io_out_c_bits_source; // @[Nodes.scala 1207:84 InclusiveCache.scala 202:11]
  assign auto_out_c_bits_address = mods_0_io_out_c_bits_address; // @[Parameters.scala 244:14]
  assign auto_out_c_bits_data = mods_0_io_out_c_bits_data; // @[Nodes.scala 1207:84 InclusiveCache.scala 202:11]
  assign auto_out_c_bits_corrupt = mods_0_io_out_c_bits_corrupt; // @[Nodes.scala 1207:84 InclusiveCache.scala 202:11]
  assign auto_out_d_ready = mods_0_io_out_d_ready; // @[Nodes.scala 1207:84 InclusiveCache.scala 202:11]
  assign auto_out_e_valid = mods_0_io_out_e_valid; // @[Nodes.scala 1207:84 InclusiveCache.scala 202:11]
  assign auto_out_e_bits_sink = mods_0_io_out_e_bits_sink; // @[Nodes.scala 1207:84 InclusiveCache.scala 202:11]
  assign monitor_clock = clock;
  assign monitor_reset = reset;
  assign monitor_io_in_a_ready = mods_0_io_in_a_ready; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign monitor_io_in_a_valid = auto_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_opcode = auto_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_param = auto_in_a_bits_param; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_size = auto_in_a_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_source = auto_in_a_bits_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_mask = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_corrupt = auto_in_a_bits_corrupt; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_b_ready = auto_in_b_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_b_valid = mods_0_io_in_b_valid; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign monitor_io_in_b_bits_param = mods_0_io_in_b_bits_param; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign monitor_io_in_b_bits_address = mods_0_io_in_b_bits_address; // @[Parameters.scala 244:14]
  assign monitor_io_in_c_ready = mods_0_io_in_c_ready; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign monitor_io_in_c_valid = auto_in_c_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_c_bits_opcode = auto_in_c_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_c_bits_param = auto_in_c_bits_param; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_c_bits_size = auto_in_c_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_c_bits_address = auto_in_c_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_c_bits_corrupt = auto_in_c_bits_corrupt; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_ready = auto_in_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_valid = mods_0_io_in_d_valid; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign monitor_io_in_d_bits_opcode = mods_0_io_in_d_bits_opcode; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign monitor_io_in_d_bits_param = mods_0_io_in_d_bits_param; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign monitor_io_in_d_bits_size = mods_0_io_in_d_bits_size; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign monitor_io_in_d_bits_source = mods_0_io_in_d_bits_source; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign monitor_io_in_d_bits_sink = mods_0_io_in_d_bits_sink; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign monitor_io_in_d_bits_denied = mods_0_io_in_d_bits_denied; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign monitor_io_in_d_bits_corrupt = mods_0_io_in_d_bits_corrupt; // @[Nodes.scala 1210:84 InclusiveCache.scala 201:23]
  assign monitor_io_in_e_valid = auto_in_e_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_e_bits_sink = auto_in_e_bits_sink; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign mods_0_clock = clock;
  assign mods_0_reset = reset;
  assign mods_0_io_in_a_valid = auto_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign mods_0_io_in_a_bits_opcode = auto_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign mods_0_io_in_a_bits_param = auto_in_a_bits_param; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign mods_0_io_in_a_bits_size = auto_in_a_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign mods_0_io_in_a_bits_source = auto_in_a_bits_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign mods_0_io_in_a_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign mods_0_io_in_a_bits_mask = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign mods_0_io_in_a_bits_data = auto_in_a_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign mods_0_io_in_a_bits_corrupt = auto_in_a_bits_corrupt; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign mods_0_io_in_b_ready = auto_in_b_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign mods_0_io_in_c_valid = auto_in_c_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign mods_0_io_in_c_bits_opcode = auto_in_c_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign mods_0_io_in_c_bits_param = auto_in_c_bits_param; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign mods_0_io_in_c_bits_size = auto_in_c_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign mods_0_io_in_c_bits_address = auto_in_c_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign mods_0_io_in_c_bits_data = auto_in_c_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign mods_0_io_in_c_bits_corrupt = auto_in_c_bits_corrupt; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign mods_0_io_in_d_ready = auto_in_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign mods_0_io_in_e_valid = auto_in_e_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign mods_0_io_in_e_bits_sink = auto_in_e_bits_sink; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign mods_0_io_out_a_ready = auto_out_a_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign mods_0_io_out_c_ready = auto_out_c_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign mods_0_io_out_d_valid = auto_out_d_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign mods_0_io_out_d_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign mods_0_io_out_d_bits_param = auto_out_d_bits_param; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign mods_0_io_out_d_bits_size = auto_out_d_bits_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign mods_0_io_out_d_bits_source = auto_out_d_bits_source; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign mods_0_io_out_d_bits_sink = auto_out_d_bits_sink; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign mods_0_io_out_d_bits_denied = auto_out_d_bits_denied; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign mods_0_io_out_d_bits_data = auto_out_d_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign mods_0_io_out_d_bits_corrupt = auto_out_d_bits_corrupt; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
endmodule
module TLMonitor_1(
  input         clock,
  input         reset,
  input         io_in_a_ready,
  input         io_in_a_valid,
  input  [2:0]  io_in_a_bits_opcode,
  input  [2:0]  io_in_a_bits_param,
  input  [1:0]  io_in_a_bits_size,
  input  [9:0]  io_in_a_bits_source,
  input  [31:0] io_in_a_bits_address,
  input  [7:0]  io_in_a_bits_mask,
  input         io_in_a_bits_corrupt,
  input         io_in_d_ready,
  input         io_in_d_valid,
  input  [2:0]  io_in_d_bits_opcode,
  input  [1:0]  io_in_d_bits_size,
  input  [9:0]  io_in_d_bits_source
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [543:0] _RAND_10;
  reg [2079:0] _RAND_11;
  reg [2079:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [543:0] _RAND_16;
  reg [2079:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire [8:0] source_ok_uncommonBits = io_in_a_bits_source[8:0]; // @[Parameters.scala 52:64]
  wire  _source_ok_T_1 = ~io_in_a_bits_source[9]; // @[Parameters.scala 54:32]
  wire  _source_ok_T_4 = source_ok_uncommonBits <= 9'h13f; // @[Parameters.scala 57:20]
  wire  _source_ok_T_5 = _source_ok_T_1 & _source_ok_T_4; // @[Parameters.scala 56:50]
  wire  _source_ok_T_6 = io_in_a_bits_source == 10'h201; // @[Parameters.scala 46:9]
  wire  _source_ok_T_7 = io_in_a_bits_source == 10'h200; // @[Parameters.scala 46:9]
  wire  source_ok = _source_ok_T_5 | _source_ok_T_6 | _source_ok_T_7; // @[Parameters.scala 1125:46]
  wire [5:0] _is_aligned_mask_T_1 = 6'h7 << io_in_a_bits_size; // @[package.scala 234:77]
  wire [2:0] is_aligned_mask = ~_is_aligned_mask_T_1[2:0]; // @[package.scala 234:46]
  wire [31:0] _GEN_15 = {{29'd0}, is_aligned_mask}; // @[Edges.scala 20:16]
  wire [31:0] _is_aligned_T = io_in_a_bits_address & _GEN_15; // @[Edges.scala 20:16]
  wire  is_aligned = _is_aligned_T == 32'h0; // @[Edges.scala 20:24]
  wire [2:0] _mask_sizeOH_T = {{1'd0}, io_in_a_bits_size}; // @[Misc.scala 201:34]
  wire [1:0] mask_sizeOH_shiftAmount = _mask_sizeOH_T[1:0]; // @[OneHot.scala 63:49]
  wire [3:0] _mask_sizeOH_T_1 = 4'h1 << mask_sizeOH_shiftAmount; // @[OneHot.scala 64:12]
  wire [2:0] mask_sizeOH = _mask_sizeOH_T_1[2:0] | 3'h1; // @[Misc.scala 201:81]
  wire  _mask_T = io_in_a_bits_size >= 2'h3; // @[Misc.scala 205:21]
  wire  mask_size = mask_sizeOH[2]; // @[Misc.scala 208:26]
  wire  mask_bit = io_in_a_bits_address[2]; // @[Misc.scala 209:26]
  wire  mask_nbit = ~mask_bit; // @[Misc.scala 210:20]
  wire  mask_acc = _mask_T | mask_size & mask_nbit; // @[Misc.scala 214:29]
  wire  mask_acc_1 = _mask_T | mask_size & mask_bit; // @[Misc.scala 214:29]
  wire  mask_size_1 = mask_sizeOH[1]; // @[Misc.scala 208:26]
  wire  mask_bit_1 = io_in_a_bits_address[1]; // @[Misc.scala 209:26]
  wire  mask_nbit_1 = ~mask_bit_1; // @[Misc.scala 210:20]
  wire  mask_eq_2 = mask_nbit & mask_nbit_1; // @[Misc.scala 213:27]
  wire  mask_acc_2 = mask_acc | mask_size_1 & mask_eq_2; // @[Misc.scala 214:29]
  wire  mask_eq_3 = mask_nbit & mask_bit_1; // @[Misc.scala 213:27]
  wire  mask_acc_3 = mask_acc | mask_size_1 & mask_eq_3; // @[Misc.scala 214:29]
  wire  mask_eq_4 = mask_bit & mask_nbit_1; // @[Misc.scala 213:27]
  wire  mask_acc_4 = mask_acc_1 | mask_size_1 & mask_eq_4; // @[Misc.scala 214:29]
  wire  mask_eq_5 = mask_bit & mask_bit_1; // @[Misc.scala 213:27]
  wire  mask_acc_5 = mask_acc_1 | mask_size_1 & mask_eq_5; // @[Misc.scala 214:29]
  wire  mask_size_2 = mask_sizeOH[0]; // @[Misc.scala 208:26]
  wire  mask_bit_2 = io_in_a_bits_address[0]; // @[Misc.scala 209:26]
  wire  mask_nbit_2 = ~mask_bit_2; // @[Misc.scala 210:20]
  wire  mask_eq_6 = mask_eq_2 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_6 = mask_acc_2 | mask_size_2 & mask_eq_6; // @[Misc.scala 214:29]
  wire  mask_eq_7 = mask_eq_2 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_7 = mask_acc_2 | mask_size_2 & mask_eq_7; // @[Misc.scala 214:29]
  wire  mask_eq_8 = mask_eq_3 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_8 = mask_acc_3 | mask_size_2 & mask_eq_8; // @[Misc.scala 214:29]
  wire  mask_eq_9 = mask_eq_3 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_9 = mask_acc_3 | mask_size_2 & mask_eq_9; // @[Misc.scala 214:29]
  wire  mask_eq_10 = mask_eq_4 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_10 = mask_acc_4 | mask_size_2 & mask_eq_10; // @[Misc.scala 214:29]
  wire  mask_eq_11 = mask_eq_4 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_11 = mask_acc_4 | mask_size_2 & mask_eq_11; // @[Misc.scala 214:29]
  wire  mask_eq_12 = mask_eq_5 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_12 = mask_acc_5 | mask_size_2 & mask_eq_12; // @[Misc.scala 214:29]
  wire  mask_eq_13 = mask_eq_5 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_13 = mask_acc_5 | mask_size_2 & mask_eq_13; // @[Misc.scala 214:29]
  wire [7:0] mask = {mask_acc_13,mask_acc_12,mask_acc_11,mask_acc_10,mask_acc_9,mask_acc_8,mask_acc_7,mask_acc_6}; // @[Cat.scala 33:92]
  wire [32:0] _T_12 = {1'b0,$signed(io_in_a_bits_address)}; // @[Parameters.scala 137:49]
  wire  _T_38 = io_in_a_bits_opcode == 3'h6; // @[Monitor.scala 81:25]
  wire  _T_54 = _source_ok_T_6 | _source_ok_T_7; // @[Parameters.scala 1161:43]
  wire  _T_57 = _source_ok_T_5 | _T_54; // @[Parameters.scala 1162:30]
  wire [32:0] _T_62 = $signed(_T_12) & 33'sh100000000; // @[Parameters.scala 137:52]
  wire  _T_63 = $signed(_T_62) == 33'sh0; // @[Parameters.scala 137:67]
  wire  _T_95 = io_in_a_bits_param <= 3'h2; // @[Bundles.scala 108:27]
  wire [7:0] _T_99 = ~io_in_a_bits_mask; // @[Monitor.scala 88:18]
  wire  _T_100 = _T_99 == 8'h0; // @[Monitor.scala 88:31]
  wire  _T_104 = ~io_in_a_bits_corrupt; // @[Monitor.scala 89:18]
  wire  _T_108 = io_in_a_bits_opcode == 3'h7; // @[Monitor.scala 92:25]
  wire  _T_169 = io_in_a_bits_param != 3'h0; // @[Monitor.scala 99:31]
  wire  _T_182 = io_in_a_bits_opcode == 3'h4; // @[Monitor.scala 104:25]
  wire  _T_205 = 2'h3 == io_in_a_bits_size; // @[Parameters.scala 91:48]
  wire  _T_212 = _T_205 & _T_63; // @[Parameters.scala 670:56]
  wire  _T_223 = io_in_a_bits_param == 3'h0; // @[Monitor.scala 109:31]
  wire  _T_227 = io_in_a_bits_mask == mask; // @[Monitor.scala 110:30]
  wire  _T_235 = io_in_a_bits_opcode == 3'h0; // @[Monitor.scala 114:25]
  wire  _T_264 = _T_57 & _T_212; // @[Monitor.scala 115:71]
  wire  _T_282 = io_in_a_bits_opcode == 3'h1; // @[Monitor.scala 122:25]
  wire [7:0] _T_325 = ~mask; // @[Monitor.scala 127:33]
  wire [7:0] _T_326 = io_in_a_bits_mask & _T_325; // @[Monitor.scala 127:31]
  wire  _T_327 = _T_326 == 8'h0; // @[Monitor.scala 127:40]
  wire  _T_331 = io_in_a_bits_opcode == 3'h2; // @[Monitor.scala 130:25]
  wire  _T_369 = io_in_a_bits_param <= 3'h4; // @[Bundles.scala 138:33]
  wire  _T_377 = io_in_a_bits_opcode == 3'h3; // @[Monitor.scala 138:25]
  wire  _T_415 = io_in_a_bits_param <= 3'h3; // @[Bundles.scala 145:30]
  wire  _T_423 = io_in_a_bits_opcode == 3'h5; // @[Monitor.scala 146:25]
  wire  _T_461 = io_in_a_bits_param <= 3'h1; // @[Bundles.scala 158:28]
  wire  _T_473 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire [8:0] source_ok_uncommonBits_1 = io_in_d_bits_source[8:0]; // @[Parameters.scala 52:64]
  wire  _source_ok_T_10 = ~io_in_d_bits_source[9]; // @[Parameters.scala 54:32]
  wire  _source_ok_T_13 = source_ok_uncommonBits_1 <= 9'h13f; // @[Parameters.scala 57:20]
  wire  _source_ok_T_14 = _source_ok_T_10 & _source_ok_T_13; // @[Parameters.scala 56:50]
  wire  _source_ok_T_15 = io_in_d_bits_source == 10'h201; // @[Parameters.scala 46:9]
  wire  _source_ok_T_16 = io_in_d_bits_source == 10'h200; // @[Parameters.scala 46:9]
  wire  source_ok_1 = _source_ok_T_14 | _source_ok_T_15 | _source_ok_T_16; // @[Parameters.scala 1125:46]
  wire  _T_477 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_481 = io_in_d_bits_size >= 2'h3; // @[Monitor.scala 312:27]
  wire  _T_497 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_525 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _T_554 = io_in_d_bits_opcode == 3'h0; // @[Monitor.scala 338:25]
  wire  _T_571 = io_in_d_bits_opcode == 3'h1; // @[Monitor.scala 346:25]
  wire  _T_589 = io_in_d_bits_opcode == 3'h2; // @[Monitor.scala 354:25]
  wire  _a_first_T = io_in_a_ready & io_in_a_valid; // @[Decoupled.scala 52:35]
  reg  a_first_counter; // @[Edges.scala 228:27]
  wire  a_first_counter1 = a_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  a_first = ~a_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode; // @[Monitor.scala 384:22]
  reg [2:0] param; // @[Monitor.scala 385:22]
  reg [1:0] size; // @[Monitor.scala 386:22]
  reg [9:0] source; // @[Monitor.scala 387:22]
  reg [31:0] address; // @[Monitor.scala 388:22]
  wire  _T_619 = io_in_a_valid & ~a_first; // @[Monitor.scala 389:19]
  wire  _T_620 = io_in_a_bits_opcode == opcode; // @[Monitor.scala 390:32]
  wire  _T_624 = io_in_a_bits_param == param; // @[Monitor.scala 391:32]
  wire  _T_628 = io_in_a_bits_size == size; // @[Monitor.scala 392:32]
  wire  _T_632 = io_in_a_bits_source == source; // @[Monitor.scala 393:32]
  wire  _T_636 = io_in_a_bits_address == address; // @[Monitor.scala 394:32]
  wire  _d_first_T = io_in_d_ready & io_in_d_valid; // @[Decoupled.scala 52:35]
  reg  d_first_counter; // @[Edges.scala 228:27]
  wire  d_first_counter1 = d_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  d_first = ~d_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  reg [1:0] size_1; // @[Monitor.scala 537:22]
  reg [9:0] source_1; // @[Monitor.scala 538:22]
  wire  _T_643 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_644 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  wire  _T_652 = io_in_d_bits_size == size_1; // @[Monitor.scala 544:29]
  wire  _T_656 = io_in_d_bits_source == source_1; // @[Monitor.scala 545:29]
  reg [513:0] inflight; // @[Monitor.scala 611:27]
  reg [2055:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [2055:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg  a_first_counter_1; // @[Edges.scala 228:27]
  wire  a_first_counter1_1 = a_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  a_first_1 = ~a_first_counter_1; // @[Edges.scala 230:25]
  reg  d_first_counter_1; // @[Edges.scala 228:27]
  wire  d_first_counter1_1 = d_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = ~d_first_counter_1; // @[Edges.scala 230:25]
  wire [11:0] _GEN_21 = {io_in_d_bits_source, 2'h0}; // @[Monitor.scala 634:69]
  wire [12:0] _a_opcode_lookup_T = {{1'd0}, _GEN_21}; // @[Monitor.scala 634:69]
  wire [2055:0] _a_opcode_lookup_T_1 = inflight_opcodes >> _a_opcode_lookup_T; // @[Monitor.scala 634:44]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [2055:0] _GEN_60 = {{2040'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 634:97]
  wire [2055:0] _a_opcode_lookup_T_6 = _a_opcode_lookup_T_1 & _GEN_60; // @[Monitor.scala 634:97]
  wire [2055:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[2055:1]}; // @[Monitor.scala 634:152]
  wire [2055:0] _a_size_lookup_T_1 = inflight_sizes >> _a_opcode_lookup_T; // @[Monitor.scala 638:40]
  wire [2055:0] _a_size_lookup_T_6 = _a_size_lookup_T_1 & _GEN_60; // @[Monitor.scala 638:91]
  wire [2055:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[2055:1]}; // @[Monitor.scala 638:144]
  wire  _T_673 = _a_first_T & a_first_1; // @[Monitor.scala 652:27]
  wire [1023:0] _a_set_T = 1024'h1 << io_in_a_bits_source; // @[OneHot.scala 57:35]
  wire [3:0] _a_opcodes_set_interm_T = {io_in_a_bits_opcode, 1'h0}; // @[Monitor.scala 654:53]
  wire [3:0] _a_opcodes_set_interm_T_1 = _a_opcodes_set_interm_T | 4'h1; // @[Monitor.scala 654:61]
  wire [2:0] _a_sizes_set_interm_T = {io_in_a_bits_size, 1'h0}; // @[Monitor.scala 655:51]
  wire [2:0] _a_sizes_set_interm_T_1 = _a_sizes_set_interm_T | 3'h1; // @[Monitor.scala 655:59]
  wire [11:0] _GEN_71 = {io_in_a_bits_source, 2'h0}; // @[Monitor.scala 656:79]
  wire [12:0] _a_opcodes_set_T = {{1'd0}, _GEN_71}; // @[Monitor.scala 656:79]
  wire [3:0] a_opcodes_set_interm = _a_first_T & a_first_1 ? _a_opcodes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 654:28]
  wire [8194:0] _GEN_427 = {{8191'd0}, a_opcodes_set_interm}; // @[Monitor.scala 656:54]
  wire [8194:0] _a_opcodes_set_T_1 = _GEN_427 << _a_opcodes_set_T; // @[Monitor.scala 656:54]
  wire [2:0] a_sizes_set_interm = _a_first_T & a_first_1 ? _a_sizes_set_interm_T_1 : 3'h0; // @[Monitor.scala 652:72 655:28]
  wire [8193:0] _GEN_428 = {{8191'd0}, a_sizes_set_interm}; // @[Monitor.scala 657:52]
  wire [8193:0] _a_sizes_set_T_1 = _GEN_428 << _a_opcodes_set_T; // @[Monitor.scala 657:52]
  wire [513:0] _T_675 = inflight >> io_in_a_bits_source; // @[Monitor.scala 658:26]
  wire  _T_677 = ~_T_675[0]; // @[Monitor.scala 658:17]
  wire [1023:0] _GEN_16 = _a_first_T & a_first_1 ? _a_set_T : 1024'h0; // @[Monitor.scala 652:72 653:28]
  wire [8194:0] _GEN_19 = _a_first_T & a_first_1 ? _a_opcodes_set_T_1 : 8195'h0; // @[Monitor.scala 652:72 656:28]
  wire [8193:0] _GEN_20 = _a_first_T & a_first_1 ? _a_sizes_set_T_1 : 8194'h0; // @[Monitor.scala 652:72 657:28]
  wire  _T_688 = ~_T_477; // @[Monitor.scala 675:75]
  wire [1023:0] _d_clr_T = 1024'h1 << io_in_d_bits_source; // @[OneHot.scala 57:35]
  wire [8206:0] _GEN_429 = {{8191'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [8206:0] _d_opcodes_clr_T_5 = _GEN_429 << _a_opcode_lookup_T; // @[Monitor.scala 677:76]
  wire [1023:0] _GEN_22 = _d_first_T & d_first_1 & ~_T_477 ? _d_clr_T : 1024'h0; // @[Monitor.scala 675:91 676:21]
  wire [8206:0] _GEN_23 = _d_first_T & d_first_1 & ~_T_477 ? _d_opcodes_clr_T_5 : 8207'h0; // @[Monitor.scala 675:91 677:21]
  wire  _T_690 = io_in_d_valid & d_first_1; // @[Monitor.scala 680:26]
  wire  _T_693 = io_in_d_valid & d_first_1 & _T_688; // @[Monitor.scala 680:71]
  wire  _same_cycle_resp_T_2 = io_in_a_bits_source == io_in_d_bits_source; // @[Monitor.scala 681:113]
  wire  same_cycle_resp = io_in_a_valid & a_first_1 & io_in_a_bits_source == io_in_d_bits_source; // @[Monitor.scala 681:88]
  wire [513:0] _T_694 = inflight >> io_in_d_bits_source; // @[Monitor.scala 682:25]
  wire  _T_696 = _T_694[0] | same_cycle_resp; // @[Monitor.scala 682:49]
  wire [2:0] _GEN_27 = 3'h2 == io_in_a_bits_opcode ? 3'h1 : 3'h0; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_28 = 3'h3 == io_in_a_bits_opcode ? 3'h1 : _GEN_27; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_29 = 3'h4 == io_in_a_bits_opcode ? 3'h1 : _GEN_28; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_30 = 3'h5 == io_in_a_bits_opcode ? 3'h2 : _GEN_29; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_31 = 3'h6 == io_in_a_bits_opcode ? 3'h4 : _GEN_30; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_32 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_31; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_39 = 3'h6 == io_in_a_bits_opcode ? 3'h5 : _GEN_30; // @[Monitor.scala 686:{39,39}]
  wire [2:0] _GEN_40 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_39; // @[Monitor.scala 686:{39,39}]
  wire  _T_701 = io_in_d_bits_opcode == _GEN_40; // @[Monitor.scala 686:39]
  wire  _T_702 = io_in_d_bits_opcode == _GEN_32 | _T_701; // @[Monitor.scala 685:77]
  wire  _T_706 = io_in_a_bits_size == io_in_d_bits_size; // @[Monitor.scala 687:36]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_43 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_44 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_43; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_45 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_44; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_46 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_45; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_47 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_46; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_48 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_47; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_55 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_46; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_56 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_55; // @[Monitor.scala 690:{38,38}]
  wire  _T_713 = io_in_d_bits_opcode == _GEN_56; // @[Monitor.scala 690:38]
  wire  _T_714 = io_in_d_bits_opcode == _GEN_48 | _T_713; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire [3:0] _GEN_75 = {{2'd0}, io_in_d_bits_size}; // @[Monitor.scala 691:36]
  wire  _T_718 = _GEN_75 == a_size_lookup; // @[Monitor.scala 691:36]
  wire  _T_728 = _T_690 & a_first_1 & io_in_a_valid & _same_cycle_resp_T_2 & _T_688; // @[Monitor.scala 694:116]
  wire  _T_730 = ~io_in_d_ready | io_in_a_ready; // @[Monitor.scala 695:32]
  wire [513:0] a_set = _GEN_16[513:0];
  wire [513:0] _inflight_T = inflight | a_set; // @[Monitor.scala 702:27]
  wire [513:0] d_clr = _GEN_22[513:0];
  wire [513:0] _inflight_T_1 = ~d_clr; // @[Monitor.scala 702:38]
  wire [513:0] _inflight_T_2 = _inflight_T & _inflight_T_1; // @[Monitor.scala 702:36]
  wire [2055:0] a_opcodes_set = _GEN_19[2055:0];
  wire [2055:0] _inflight_opcodes_T = inflight_opcodes | a_opcodes_set; // @[Monitor.scala 703:43]
  wire [2055:0] d_opcodes_clr = _GEN_23[2055:0];
  wire [2055:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [2055:0] _inflight_opcodes_T_2 = _inflight_opcodes_T & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [2055:0] a_sizes_set = _GEN_20[2055:0];
  wire [2055:0] _inflight_sizes_T = inflight_sizes | a_sizes_set; // @[Monitor.scala 704:39]
  wire [2055:0] _inflight_sizes_T_2 = _inflight_sizes_T & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [31:0] watchdog; // @[Monitor.scala 706:27]
  wire  _T_739 = ~(|inflight) | plusarg_reader_out == 32'h0 | watchdog < plusarg_reader_out; // @[Monitor.scala 709:47]
  wire [31:0] _watchdog_T_1 = watchdog + 32'h1; // @[Monitor.scala 711:26]
  reg [513:0] inflight_1; // @[Monitor.scala 723:35]
  reg [2055:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg  d_first_counter_2; // @[Edges.scala 228:27]
  wire  d_first_counter1_2 = d_first_counter_2 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = ~d_first_counter_2; // @[Edges.scala 230:25]
  wire [2055:0] _c_size_lookup_T_1 = inflight_sizes_1 >> _a_opcode_lookup_T; // @[Monitor.scala 747:42]
  wire [2055:0] _c_size_lookup_T_6 = _c_size_lookup_T_1 & _GEN_60; // @[Monitor.scala 747:93]
  wire [2055:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[2055:1]}; // @[Monitor.scala 747:146]
  wire [1023:0] _GEN_67 = _d_first_T & d_first_2 & _T_477 ? _d_clr_T : 1024'h0; // @[Monitor.scala 783:90 784:21]
  wire [8206:0] _GEN_69 = _d_first_T & d_first_2 & _T_477 ? _d_opcodes_clr_T_5 : 8207'h0; // @[Monitor.scala 783:90 786:21]
  wire  _T_772 = io_in_d_valid & d_first_2 & _T_477; // @[Monitor.scala 789:71]
  wire [513:0] _T_773 = inflight_1 >> io_in_d_bits_source; // @[Monitor.scala 791:25]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_783 = _GEN_75 == c_size_lookup; // @[Monitor.scala 795:36]
  wire [513:0] d_clr_1 = _GEN_67[513:0];
  wire [513:0] _inflight_T_4 = ~d_clr_1; // @[Monitor.scala 809:46]
  wire [513:0] _inflight_T_5 = inflight_1 & _inflight_T_4; // @[Monitor.scala 809:44]
  wire [2055:0] d_sizes_clr_1 = _GEN_69[2055:0];
  wire [2055:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [2055:0] _inflight_sizes_T_5 = inflight_sizes_1 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  reg [31:0] watchdog_1; // @[Monitor.scala 813:27]
  wire  _T_803 = ~(|inflight_1) | plusarg_reader_1_out == 32'h0 | watchdog_1 < plusarg_reader_1_out; // @[Monitor.scala 816:47]
  wire [31:0] _watchdog_T_3 = watchdog_1 + 32'h1; // @[Monitor.scala 818:26]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        a_first_counter <= 1'h0;
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      opcode <= io_in_a_bits_opcode; // @[Monitor.scala 397:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      param <= io_in_a_bits_param; // @[Monitor.scala 398:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      size <= io_in_a_bits_size; // @[Monitor.scala 399:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      source <= io_in_a_bits_source; // @[Monitor.scala 400:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      address <= io_in_a_bits_address; // @[Monitor.scala 401:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        d_first_counter <= 1'h0;
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      size_1 <= io_in_d_bits_size; // @[Monitor.scala 552:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      source_1 <= io_in_d_bits_source; // @[Monitor.scala 553:15]
    end
    if (reset) begin // @[Monitor.scala 611:27]
      inflight <= 514'h0; // @[Monitor.scala 611:27]
    end else begin
      inflight <= _inflight_T_2; // @[Monitor.scala 702:14]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 2056'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 2056'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first_1) begin // @[Edges.scala 235:21]
        a_first_counter_1 <= 1'h0;
      end else begin
        a_first_counter_1 <= a_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        d_first_counter_1 <= 1'h0;
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 706:27]
      watchdog <= 32'h0; // @[Monitor.scala 706:27]
    end else if (_a_first_T | _d_first_T) begin // @[Monitor.scala 712:47]
      watchdog <= 32'h0; // @[Monitor.scala 712:58]
    end else begin
      watchdog <= _watchdog_T_1; // @[Monitor.scala 711:14]
    end
    if (reset) begin // @[Monitor.scala 723:35]
      inflight_1 <= 514'h0; // @[Monitor.scala 723:35]
    end else begin
      inflight_1 <= _inflight_T_5; // @[Monitor.scala 809:22]
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 2056'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        d_first_counter_2 <= 1'h0;
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    if (reset) begin // @[Monitor.scala 813:27]
      watchdog_1 <= 32'h0; // @[Monitor.scala 813:27]
    end else if (_d_first_T) begin // @[Monitor.scala 819:47]
      watchdog_1 <= 32'h0; // @[Monitor.scala 819:58]
    end else begin
      watchdog_1 <= _watchdog_T_3; // @[Monitor.scala 818:14]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_38 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_38 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_38 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock from a client which does not support Probe (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_38 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_38 & ~reset & ~source_ok) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock carries invalid source ID (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok & (io_in_a_valid & _T_38 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_38 & ~reset & ~_mask_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock smaller than a beat (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_mask_T & (io_in_a_valid & _T_38 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_38 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock address not aligned to size (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_38 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_38 & ~reset & ~_T_95) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock carries invalid grow param (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_95 & (io_in_a_valid & _T_38 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_38 & ~reset & ~_T_100) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock contains invalid mask (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_100 & (io_in_a_valid & _T_38 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_38 & ~reset & ~_T_104) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock is corrupt (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_104 & (io_in_a_valid & _T_38 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_108 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_108 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_108 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm from a client which does not support Probe (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_108 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_108 & ~reset & ~source_ok) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm carries invalid source ID (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok & (io_in_a_valid & _T_108 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_108 & ~reset & ~_mask_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm smaller than a beat (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_mask_T & (io_in_a_valid & _T_108 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_108 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm address not aligned to size (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_108 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_108 & ~reset & ~_T_95) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm carries invalid grow param (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_95 & (io_in_a_valid & _T_108 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_108 & ~reset & ~_T_169) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm requests NtoB (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_169 & (io_in_a_valid & _T_108 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_108 & ~reset & ~_T_100) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm contains invalid mask (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_100 & (io_in_a_valid & _T_108 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_108 & ~reset & ~_T_104) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm is corrupt (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_104 & (io_in_a_valid & _T_108 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_182 & ~reset & ~_T_57) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which master claims it can't emit (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_57 & (io_in_a_valid & _T_182 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_182 & ~reset & ~_T_212) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which slave claims it can't support (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_212 & (io_in_a_valid & _T_182 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_182 & ~reset & ~source_ok) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get carries invalid source ID (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok & (io_in_a_valid & _T_182 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_182 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get address not aligned to size (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_182 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_182 & ~reset & ~_T_223) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get carries invalid param (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_223 & (io_in_a_valid & _T_182 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_182 & ~reset & ~_T_227) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get contains invalid mask (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_227 & (io_in_a_valid & _T_182 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_182 & ~reset & ~_T_104) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get is corrupt (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_104 & (io_in_a_valid & _T_182 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_235 & ~reset & ~_T_264) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutFull type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_264 & (io_in_a_valid & _T_235 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_235 & ~reset & ~source_ok) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull carries invalid source ID (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok & (io_in_a_valid & _T_235 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_235 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull address not aligned to size (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_235 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_235 & ~reset & ~_T_223) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull carries invalid param (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_223 & (io_in_a_valid & _T_235 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_235 & ~reset & ~_T_227) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull contains invalid mask (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_227 & (io_in_a_valid & _T_235 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset & ~_T_264) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutPartial type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_264 & (io_in_a_valid & _T_282 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset & ~source_ok) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial carries invalid source ID (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok & (io_in_a_valid & _T_282 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial address not aligned to size (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_282 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset & ~_T_223) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial carries invalid param (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_223 & (io_in_a_valid & _T_282 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset & ~_T_327) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial contains invalid mask (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_327 & (io_in_a_valid & _T_282 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_331 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Arithmetic type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_331 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_331 & ~reset & ~source_ok) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic carries invalid source ID (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok & (io_in_a_valid & _T_331 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_331 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic address not aligned to size (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_331 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_331 & ~reset & ~_T_369) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic carries invalid opcode param (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_369 & (io_in_a_valid & _T_331 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_331 & ~reset & ~_T_227) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic contains invalid mask (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_227 & (io_in_a_valid & _T_331 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_377 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Logical type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_377 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_377 & ~reset & ~source_ok) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical carries invalid source ID (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok & (io_in_a_valid & _T_377 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_377 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical address not aligned to size (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_377 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_377 & ~reset & ~_T_415) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical carries invalid opcode param (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_415 & (io_in_a_valid & _T_377 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_377 & ~reset & ~_T_227) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical contains invalid mask (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_227 & (io_in_a_valid & _T_377 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_423 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Hint type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_423 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_423 & ~reset & ~source_ok) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint carries invalid source ID (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok & (io_in_a_valid & _T_423 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_423 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint address not aligned to size (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_423 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_423 & ~reset & ~_T_461) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint carries invalid opcode param (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_461 & (io_in_a_valid & _T_423 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_423 & ~reset & ~_T_227) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint contains invalid mask (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_227 & (io_in_a_valid & _T_423 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_423 & ~reset & ~_T_104) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint is corrupt (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_104 & (io_in_a_valid & _T_423 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_473) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_473 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_477 & _T_2 & ~source_ok_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck carries invalid source ID (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok_1 & (io_in_d_valid & _T_477 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_477 & _T_2 & ~_T_481) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck smaller than a beat (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_481 & (io_in_d_valid & _T_477 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_497 & _T_2 & ~source_ok_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid source ID (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok_1 & (io_in_d_valid & _T_497 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_497 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid sink ID (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_497 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_497 & _T_2 & ~_T_481) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant smaller than a beat (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_481 & (io_in_d_valid & _T_497 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_525 & _T_2 & ~source_ok_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid source ID (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok_1 & (io_in_d_valid & _T_525 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_525 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid sink ID (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_525 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_525 & _T_2 & ~_T_481) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData smaller than a beat (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_481 & (io_in_d_valid & _T_525 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_554 & _T_2 & ~source_ok_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck carries invalid source ID (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok_1 & (io_in_d_valid & _T_554 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_571 & _T_2 & ~source_ok_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData carries invalid source ID (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok_1 & (io_in_d_valid & _T_571 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_589 & _T_2 & ~source_ok_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck carries invalid source ID (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~source_ok_1 & (io_in_d_valid & _T_589 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_619 & ~reset & ~_T_620) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel opcode changed within multibeat operation (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_620 & (_T_619 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_619 & ~reset & ~_T_624) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel param changed within multibeat operation (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_624 & (_T_619 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_619 & ~reset & ~_T_628) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel size changed within multibeat operation (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_628 & (_T_619 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_619 & ~reset & ~_T_632) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel source changed within multibeat operation (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_632 & (_T_619 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_619 & ~reset & ~_T_636) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel address changed with multibeat operation (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_636 & (_T_619 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_643 & _T_2 & ~_T_644) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_644 & (_T_643 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_643 & _T_2 & ~_T_652) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel size changed within multibeat operation (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_652 & (_T_643 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_643 & _T_2 & ~_T_656) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel source changed within multibeat operation (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_656 & (_T_643 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_673 & ~reset & ~_T_677) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel re-used a source ID (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_677 & (_T_673 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_693 & _T_2 & ~_T_696) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_696 & (_T_693 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_693 & same_cycle_resp & _T_2 & ~_T_702) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_702 & (_T_693 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_693 & same_cycle_resp & _T_2 & ~_T_706) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_706 & (_T_693 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_693 & ~same_cycle_resp & _T_2 & ~_T_714) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_714 & (_T_693 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_693 & ~same_cycle_resp & _T_2 & ~_T_718) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_718 & (_T_693 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_728 & _T_2 & ~_T_730) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_730 & (_T_728 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_739) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_739 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_772 & _T_2 & ~_T_773[0]) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_773[0] & (_T_772 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_772 & _T_2 & ~_T_783) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_783 & (_T_772 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_803) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:67:36)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_803 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  opcode = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  param = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  size = _RAND_3[1:0];
  _RAND_4 = {1{`RANDOM}};
  source = _RAND_4[9:0];
  _RAND_5 = {1{`RANDOM}};
  address = _RAND_5[31:0];
  _RAND_6 = {1{`RANDOM}};
  d_first_counter = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  opcode_1 = _RAND_7[2:0];
  _RAND_8 = {1{`RANDOM}};
  size_1 = _RAND_8[1:0];
  _RAND_9 = {1{`RANDOM}};
  source_1 = _RAND_9[9:0];
  _RAND_10 = {17{`RANDOM}};
  inflight = _RAND_10[513:0];
  _RAND_11 = {65{`RANDOM}};
  inflight_opcodes = _RAND_11[2055:0];
  _RAND_12 = {65{`RANDOM}};
  inflight_sizes = _RAND_12[2055:0];
  _RAND_13 = {1{`RANDOM}};
  a_first_counter_1 = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  watchdog = _RAND_15[31:0];
  _RAND_16 = {17{`RANDOM}};
  inflight_1 = _RAND_16[513:0];
  _RAND_17 = {65{`RANDOM}};
  inflight_sizes_1 = _RAND_17[2055:0];
  _RAND_18 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  watchdog_1 = _RAND_19[31:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLSlave(
  input         clock,
  input         reset,
  input         io_req_ready,
  output        io_req_valid,
  output [31:0] io_req_bits_paddr,
  output [63:0] io_req_bits_wdata,
  output [7:0]  io_req_bits_wmask,
  output        io_rsp_ready,
  input         io_rsp_valid,
  input  [63:0] io_rsp_bits_rdata,
  output        io_a_ready,
  input         io_a_valid,
  input  [2:0]  io_a_bits_opcode,
  input  [1:0]  io_a_bits_size,
  input  [9:0]  io_a_bits_source,
  input  [31:0] io_a_bits_address,
  input  [7:0]  io_a_bits_mask,
  input  [63:0] io_a_bits_data,
  input         io_d_ready,
  output        io_d_valid,
  output [2:0]  io_d_bits_opcode,
  output [1:0]  io_d_bits_size,
  output [9:0]  io_d_bits_source,
  output [63:0] io_d_bits_data
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [63:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [63:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
`endif // RANDOMIZE_REG_INIT
  reg [31:0] reqInfo_paddr; // @[Chiplink.scala 71:22]
  reg [63:0] reqInfo_wdata; // @[Chiplink.scala 71:22]
  reg [7:0] reqInfo_wmask; // @[Chiplink.scala 71:22]
  reg [63:0] rspInfo_rdata; // @[Chiplink.scala 72:22]
  reg [1:0] tlaInfo_size; // @[Chiplink.scala 73:22]
  reg [9:0] tlaInfo_source; // @[Chiplink.scala 73:22]
  reg  reqValid; // @[Chiplink.scala 75:27]
  reg  rspReady; // @[Chiplink.scala 76:27]
  reg  tlAReady; // @[Chiplink.scala 77:28]
  reg  tlDValid; // @[Chiplink.scala 78:27]
  reg  isRead; // @[Chiplink.scala 80:22]
  wire  _T = io_a_ready & io_a_valid; // @[Decoupled.scala 52:35]
  wire  _T_3 = io_a_bits_opcode == 3'h0 | io_a_bits_opcode == 3'h1; // @[Chiplink.scala 92:40]
  wire  _T_4 = io_a_bits_opcode == 3'h4; // @[Chiplink.scala 96:37]
  wire  _GEN_2 = io_a_bits_opcode == 3'h4 | isRead; // @[Chiplink.scala 96:47 99:16 80:22]
  wire  _T_9 = io_req_ready & io_req_valid; // @[Decoupled.scala 52:35]
  wire  _T_10 = io_rsp_ready & io_rsp_valid; // @[Decoupled.scala 52:35]
  wire  _T_11 = io_d_ready & io_d_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_18 = _T_11 | tlAReady; // @[Chiplink.scala 114:30 115:16 77:28]
  wire  _GEN_19 = _T_11 ? 1'h0 : tlDValid; // @[Chiplink.scala 114:30 116:16 78:27]
  wire  _GEN_20 = _T_10 ? 1'h0 : rspReady; // @[Chiplink.scala 111:32 112:16 76:27]
  wire  _GEN_21 = _T_10 | _GEN_19; // @[Chiplink.scala 111:32 113:16]
  wire  _GEN_22 = _T_10 ? tlAReady : _GEN_18; // @[Chiplink.scala 111:32 77:28]
  wire  _GEN_23 = _T_9 ? 1'h0 : reqValid; // @[Chiplink.scala 108:32 109:16 75:27]
  wire  _GEN_24 = _T_9 | _GEN_20; // @[Chiplink.scala 108:32 110:16]
  wire  _GEN_26 = _T_9 ? tlAReady : _GEN_22; // @[Chiplink.scala 108:32 77:28]
  wire  _GEN_27 = _T | _GEN_23; // @[Chiplink.scala 105:22 106:16]
  wire  _GEN_28 = _T ? 1'h0 : _GEN_26; // @[Chiplink.scala 105:22 107:18]
  assign io_req_valid = reqValid; // @[Chiplink.scala 82:18]
  assign io_req_bits_paddr = reqInfo_paddr; // @[Chiplink.scala 83:18]
  assign io_req_bits_wdata = reqInfo_wdata; // @[Chiplink.scala 83:18]
  assign io_req_bits_wmask = reqInfo_wmask; // @[Chiplink.scala 83:18]
  assign io_rsp_ready = rspReady; // @[Chiplink.scala 84:18]
  assign io_a_ready = tlAReady; // @[Chiplink.scala 85:16]
  assign io_d_valid = tlDValid; // @[Chiplink.scala 86:16]
  assign io_d_bits_opcode = isRead ? 3'h1 : 3'h0; // @[Chiplink.scala 124:18 125:17 127:17]
  assign io_d_bits_size = tlaInfo_size; // @[Chiplink.scala 124:18 125:17 127:17]
  assign io_d_bits_source = tlaInfo_source; // @[Chiplink.scala 124:18 125:17 127:17]
  assign io_d_bits_data = isRead ? rspInfo_rdata : 64'h0; // @[Chiplink.scala 124:18 125:17 127:17]
  always @(posedge clock) begin
    if (_T) begin // @[Chiplink.scala 89:23]
      reqInfo_paddr <= io_a_bits_address; // @[Chiplink.scala 91:21]
    end
    if (_T) begin // @[Chiplink.scala 89:23]
      if (io_a_bits_opcode == 3'h0 | io_a_bits_opcode == 3'h1) begin // @[Chiplink.scala 92:72]
        reqInfo_wdata <= io_a_bits_data; // @[Chiplink.scala 93:23]
      end else if (io_a_bits_opcode == 3'h4) begin // @[Chiplink.scala 96:47]
        reqInfo_wdata <= 64'h0; // @[Chiplink.scala 97:23]
      end
    end
    if (_T) begin // @[Chiplink.scala 89:23]
      if (io_a_bits_opcode == 3'h0 | io_a_bits_opcode == 3'h1) begin // @[Chiplink.scala 92:72]
        reqInfo_wmask <= io_a_bits_mask; // @[Chiplink.scala 94:23]
      end else if (io_a_bits_opcode == 3'h4) begin // @[Chiplink.scala 96:47]
        reqInfo_wmask <= 8'h0; // @[Chiplink.scala 98:23]
      end
    end
    if (_T_10) begin // @[Chiplink.scala 120:25]
      rspInfo_rdata <= io_rsp_bits_rdata; // @[Chiplink.scala 121:15]
    end
    if (_T) begin // @[Chiplink.scala 89:23]
      tlaInfo_size <= io_a_bits_size; // @[Chiplink.scala 90:15]
    end
    if (_T) begin // @[Chiplink.scala 89:23]
      tlaInfo_source <= io_a_bits_source; // @[Chiplink.scala 90:15]
    end
    if (reset) begin // @[Chiplink.scala 75:27]
      reqValid <= 1'h0; // @[Chiplink.scala 75:27]
    end else begin
      reqValid <= _GEN_27;
    end
    if (reset) begin // @[Chiplink.scala 76:27]
      rspReady <= 1'h0; // @[Chiplink.scala 76:27]
    end else if (!(_T)) begin // @[Chiplink.scala 105:22]
      rspReady <= _GEN_24;
    end
    tlAReady <= reset | _GEN_28; // @[Chiplink.scala 77:{28,28}]
    if (reset) begin // @[Chiplink.scala 78:27]
      tlDValid <= 1'h0; // @[Chiplink.scala 78:27]
    end else if (!(_T)) begin // @[Chiplink.scala 105:22]
      if (!(_T_9)) begin // @[Chiplink.scala 108:32]
        tlDValid <= _GEN_21;
      end
    end
    if (_T) begin // @[Chiplink.scala 89:23]
      if (io_a_bits_opcode == 3'h0 | io_a_bits_opcode == 3'h1) begin // @[Chiplink.scala 92:72]
        isRead <= 1'h0; // @[Chiplink.scala 95:16]
      end else begin
        isRead <= _GEN_2;
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T & ~_T_3 & ~_T_4 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: Assert Failed! Unsupport Operation!\n    at Chiplink.scala:101 assert( false.B, \"Assert Failed! Unsupport Operation!\" )\n"
            ); // @[Chiplink.scala 101:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T & ~_T_3 & ~_T_4 & ~reset) begin
          $fatal; // @[Chiplink.scala 101:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  reqInfo_paddr = _RAND_0[31:0];
  _RAND_1 = {2{`RANDOM}};
  reqInfo_wdata = _RAND_1[63:0];
  _RAND_2 = {1{`RANDOM}};
  reqInfo_wmask = _RAND_2[7:0];
  _RAND_3 = {2{`RANDOM}};
  rspInfo_rdata = _RAND_3[63:0];
  _RAND_4 = {1{`RANDOM}};
  tlaInfo_size = _RAND_4[1:0];
  _RAND_5 = {1{`RANDOM}};
  tlaInfo_source = _RAND_5[9:0];
  _RAND_6 = {1{`RANDOM}};
  reqValid = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  rspReady = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  tlAReady = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  tlDValid = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  isRead = _RAND_10[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module HexSpiMaster(
  input         clock,
  input         reset,
  output        io_hspi_clk,
  input         io_hspi_rx_enable,
  input  [15:0] io_hspi_rx_data,
  output        io_hspi_tx_enable,
  output [15:0] io_hspi_tx_data,
  output        io_hspi_oen,
  output        io_req_ready,
  input         io_req_valid,
  input  [31:0] io_req_bits_paddr,
  input  [63:0] io_req_bits_wdata,
  input  [7:0]  io_req_bits_wmask,
  input         io_rsp_ready,
  output        io_rsp_valid,
  output [63:0] io_rsp_bits_rdata
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [127:0] _RAND_3;
  reg [63:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
`endif // RANDOMIZE_REG_INIT
  reg [3:0] txCounter; // @[Chiplink.scala 147:30]
  reg [2:0] rxCounter; // @[Chiplink.scala 148:30]
  reg  isTxRxn; // @[Chiplink.scala 149:28]
  reg [111:0] reqInfo; // @[Chiplink.scala 151:24]
  reg [63:0] rspInfo; // @[Chiplink.scala 152:24]
  reg  reqReady; // @[Chiplink.scala 154:29]
  reg  rspValid; // @[Chiplink.scala 155:29]
  wire  _io_hspi_oen_T = ~isTxRxn; // @[Chiplink.scala 157:22]
  wire  _T = io_req_ready & io_req_valid; // @[Decoupled.scala 52:35]
  wire  _T_2 = ~reset; // @[Chiplink.scala 166:15]
  wire [111:0] updateInfo = {io_req_bits_paddr,io_req_bits_wdata,io_req_bits_wmask,8'h0}; // @[Cat.scala 33:92]
  wire  _T_4 = txCounter < 4'h7; // @[Chiplink.scala 174:30]
  wire [3:0] _txCounter_T_1 = txCounter + 4'h1; // @[Chiplink.scala 176:32]
  wire [95:0] updateInfo_1 = reqInfo[111:16]; // @[Chiplink.scala 177:34]
  wire  _T_8 = txCounter == 4'h7; // @[Chiplink.scala 183:30]
  wire  _GEN_0 = txCounter == 4'h7 ? 1'h0 : isTxRxn; // @[Chiplink.scala 183:41 185:19 149:28]
  wire [15:0] _GEN_5 = txCounter < 4'h7 ? updateInfo_1[15:0] : 16'h0; // @[Chiplink.scala 174:38 180:27]
  wire  _GEN_7 = txCounter < 4'h7 ? isTxRxn : _GEN_0; // @[Chiplink.scala 149:28 174:38]
  wire  _GEN_8 = _T ? 1'h0 : reqReady; // @[Chiplink.scala 165:27 168:18 154:29]
  wire  _GEN_13 = _T ? isTxRxn : _GEN_7; // @[Chiplink.scala 165:27 149:28]
  wire  _T_15 = ~_io_hspi_oen_T; // @[Chiplink.scala 198:15]
  wire [2:0] _rxCounter_T_1 = rxCounter + 3'h1; // @[Chiplink.scala 200:32]
  wire [79:0] _rspInfo_T = {io_hspi_rx_data,rspInfo}; // @[Cat.scala 33:92]
  wire  _T_20 = rxCounter == 3'h4; // @[Chiplink.scala 202:30]
  wire  _T_25 = io_rsp_ready & io_rsp_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_14 = _T_25 ? 1'h0 : rspValid; // @[Chiplink.scala 207:34 208:18 155:29]
  wire  _GEN_15 = _T_25 | _GEN_8; // @[Chiplink.scala 207:34 209:18]
  wire  _GEN_16 = rxCounter == 3'h4 | _GEN_13; // @[Chiplink.scala 202:40 204:17]
  wire  _GEN_17 = rxCounter == 3'h4 | _GEN_14; // @[Chiplink.scala 202:40 205:18]
  wire  _GEN_19 = rxCounter == 3'h4 ? _GEN_8 : _GEN_15; // @[Chiplink.scala 202:40]
  wire  _GEN_22 = io_hspi_rx_enable ? _GEN_13 : _GEN_16; // @[Chiplink.scala 197:33]
  wire  _GEN_24 = io_hspi_rx_enable ? _GEN_8 : _GEN_19; // @[Chiplink.scala 197:33]
  wire  _GEN_28 = ~_T; // @[Chiplink.scala 175:15]
  wire  _GEN_46 = io_hspi_rx_enable & _T_2; // @[Chiplink.scala 198:15]
  assign io_hspi_clk = clock; // @[Chiplink.scala 145:34]
  assign io_hspi_tx_enable = _T | _T_4; // @[Chiplink.scala 165:27 173:27]
  assign io_hspi_tx_data = _T ? updateInfo[15:0] : _GEN_5; // @[Chiplink.scala 165:27 172:25]
  assign io_hspi_oen = ~isTxRxn; // @[Chiplink.scala 157:22]
  assign io_req_ready = reqReady; // @[Chiplink.scala 159:20]
  assign io_rsp_valid = rspValid; // @[Chiplink.scala 160:20]
  assign io_rsp_bits_rdata = rspInfo; // @[Chiplink.scala 161:26]
  always @(posedge clock) begin
    if (reset) begin // @[Chiplink.scala 147:30]
      txCounter <= 4'hf; // @[Chiplink.scala 147:30]
    end else if (_T) begin // @[Chiplink.scala 165:27]
      txCounter <= 4'h1; // @[Chiplink.scala 170:19]
    end else if (txCounter < 4'h7) begin // @[Chiplink.scala 174:38]
      txCounter <= _txCounter_T_1; // @[Chiplink.scala 176:19]
    end else if (txCounter == 4'h7) begin // @[Chiplink.scala 183:41]
      txCounter <= 4'hf; // @[Chiplink.scala 187:21]
    end
    if (reset) begin // @[Chiplink.scala 148:30]
      rxCounter <= 3'h0; // @[Chiplink.scala 148:30]
    end else if (io_hspi_rx_enable) begin // @[Chiplink.scala 197:33]
      rxCounter <= _rxCounter_T_1; // @[Chiplink.scala 200:19]
    end else if (rxCounter == 3'h4) begin // @[Chiplink.scala 202:40]
      rxCounter <= 3'h0; // @[Chiplink.scala 206:19]
    end
    isTxRxn <= reset | _GEN_22; // @[Chiplink.scala 149:{28,28}]
    if (_T) begin // @[Chiplink.scala 165:27]
      reqInfo <= updateInfo; // @[Chiplink.scala 169:17]
    end else if (txCounter < 4'h7) begin // @[Chiplink.scala 174:38]
      reqInfo <= {{16'd0}, updateInfo_1}; // @[Chiplink.scala 178:17]
    end
    if (io_hspi_rx_enable) begin // @[Chiplink.scala 197:33]
      rspInfo <= _rspInfo_T[79:16]; // @[Chiplink.scala 201:17]
    end
    reqReady <= reset | _GEN_24; // @[Chiplink.scala 154:{29,29}]
    if (reset) begin // @[Chiplink.scala 155:29]
      rspValid <= 1'h0; // @[Chiplink.scala 155:29]
    end else if (!(io_hspi_rx_enable)) begin // @[Chiplink.scala 197:33]
      rspValid <= _GEN_17;
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T & ~reset & _io_hspi_oen_T) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Chiplink.scala:166 assert( isTxRxn )\n"); // @[Chiplink.scala 166:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_io_hspi_oen_T & (_T & ~reset)) begin
          $fatal; // @[Chiplink.scala 166:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~_T & _T_4 & _T_2 & _io_hspi_oen_T) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Chiplink.scala:175 assert( isTxRxn )\n"); // @[Chiplink.scala 175:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_io_hspi_oen_T & (~_T & _T_4 & _T_2)) begin
          $fatal; // @[Chiplink.scala 175:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_28 & ~_T_4 & _T_8 & _T_2 & _io_hspi_oen_T) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Chiplink.scala:184 assert( isTxRxn )\n"); // @[Chiplink.scala 184:17]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_io_hspi_oen_T & (_GEN_28 & ~_T_4 & _T_8 & _T_2)) begin
          $fatal; // @[Chiplink.scala 184:17]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_hspi_rx_enable & _T_2 & ~_io_hspi_oen_T) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Chiplink.scala:198 assert( ~isTxRxn )\n"); // @[Chiplink.scala 198:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_io_hspi_oen_T & (io_hspi_rx_enable & _T_2)) begin
          $fatal; // @[Chiplink.scala 198:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_46 & ~(rxCounter < 3'h4)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Chiplink.scala:199 assert( rxCounter < 4.U )\n"); // @[Chiplink.scala 199:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(rxCounter < 3'h4) & _GEN_46) begin
          $fatal; // @[Chiplink.scala 199:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~io_hspi_rx_enable & _T_20 & _T_2 & _T_15) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Chiplink.scala:203 assert( ~isTxRxn )\n"); // @[Chiplink.scala 203:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_15 & (~io_hspi_rx_enable & _T_20 & _T_2)) begin
          $fatal; // @[Chiplink.scala 203:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  txCounter = _RAND_0[3:0];
  _RAND_1 = {1{`RANDOM}};
  rxCounter = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  isTxRxn = _RAND_2[0:0];
  _RAND_3 = {4{`RANDOM}};
  reqInfo = _RAND_3[111:0];
  _RAND_4 = {2{`RANDOM}};
  rspInfo = _RAND_4[63:0];
  _RAND_5 = {1{`RANDOM}};
  reqReady = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  rspValid = _RAND_6[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module ChipLinkMaster(
  input         clock,
  input         reset,
  output        auto_chip_link_master_in_a_ready,
  input         auto_chip_link_master_in_a_valid,
  input  [2:0]  auto_chip_link_master_in_a_bits_opcode,
  input  [2:0]  auto_chip_link_master_in_a_bits_param,
  input  [1:0]  auto_chip_link_master_in_a_bits_size,
  input  [9:0]  auto_chip_link_master_in_a_bits_source,
  input  [31:0] auto_chip_link_master_in_a_bits_address,
  input  [7:0]  auto_chip_link_master_in_a_bits_mask,
  input  [63:0] auto_chip_link_master_in_a_bits_data,
  input         auto_chip_link_master_in_a_bits_corrupt,
  input         auto_chip_link_master_in_d_ready,
  output        auto_chip_link_master_in_d_valid,
  output [2:0]  auto_chip_link_master_in_d_bits_opcode,
  output [1:0]  auto_chip_link_master_in_d_bits_size,
  output [9:0]  auto_chip_link_master_in_d_bits_source,
  output [63:0] auto_chip_link_master_in_d_bits_data,
  output        io_hspi_clk,
  input         io_hspi_rx_enable,
  input  [15:0] io_hspi_rx_data,
  output        io_hspi_tx_enable,
  output [15:0] io_hspi_tx_data,
  output        io_hspi_oen
);
  wire  monitor_clock; // @[Nodes.scala 24:25]
  wire  monitor_reset; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_opcode; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_param; // @[Nodes.scala 24:25]
  wire [1:0] monitor_io_in_a_bits_size; // @[Nodes.scala 24:25]
  wire [9:0] monitor_io_in_a_bits_source; // @[Nodes.scala 24:25]
  wire [31:0] monitor_io_in_a_bits_address; // @[Nodes.scala 24:25]
  wire [7:0] monitor_io_in_a_bits_mask; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_bits_corrupt; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  wire [1:0] monitor_io_in_d_bits_size; // @[Nodes.scala 24:25]
  wire [9:0] monitor_io_in_d_bits_source; // @[Nodes.scala 24:25]
  wire  tlSlave_clock; // @[Chiplink.scala 231:25]
  wire  tlSlave_reset; // @[Chiplink.scala 231:25]
  wire  tlSlave_io_req_ready; // @[Chiplink.scala 231:25]
  wire  tlSlave_io_req_valid; // @[Chiplink.scala 231:25]
  wire [31:0] tlSlave_io_req_bits_paddr; // @[Chiplink.scala 231:25]
  wire [63:0] tlSlave_io_req_bits_wdata; // @[Chiplink.scala 231:25]
  wire [7:0] tlSlave_io_req_bits_wmask; // @[Chiplink.scala 231:25]
  wire  tlSlave_io_rsp_ready; // @[Chiplink.scala 231:25]
  wire  tlSlave_io_rsp_valid; // @[Chiplink.scala 231:25]
  wire [63:0] tlSlave_io_rsp_bits_rdata; // @[Chiplink.scala 231:25]
  wire  tlSlave_io_a_ready; // @[Chiplink.scala 231:25]
  wire  tlSlave_io_a_valid; // @[Chiplink.scala 231:25]
  wire [2:0] tlSlave_io_a_bits_opcode; // @[Chiplink.scala 231:25]
  wire [1:0] tlSlave_io_a_bits_size; // @[Chiplink.scala 231:25]
  wire [9:0] tlSlave_io_a_bits_source; // @[Chiplink.scala 231:25]
  wire [31:0] tlSlave_io_a_bits_address; // @[Chiplink.scala 231:25]
  wire [7:0] tlSlave_io_a_bits_mask; // @[Chiplink.scala 231:25]
  wire [63:0] tlSlave_io_a_bits_data; // @[Chiplink.scala 231:25]
  wire  tlSlave_io_d_ready; // @[Chiplink.scala 231:25]
  wire  tlSlave_io_d_valid; // @[Chiplink.scala 231:25]
  wire [2:0] tlSlave_io_d_bits_opcode; // @[Chiplink.scala 231:25]
  wire [1:0] tlSlave_io_d_bits_size; // @[Chiplink.scala 231:25]
  wire [9:0] tlSlave_io_d_bits_source; // @[Chiplink.scala 231:25]
  wire [63:0] tlSlave_io_d_bits_data; // @[Chiplink.scala 231:25]
  wire  hspiMst_clock; // @[Chiplink.scala 232:25]
  wire  hspiMst_reset; // @[Chiplink.scala 232:25]
  wire  hspiMst_io_hspi_clk; // @[Chiplink.scala 232:25]
  wire  hspiMst_io_hspi_rx_enable; // @[Chiplink.scala 232:25]
  wire [15:0] hspiMst_io_hspi_rx_data; // @[Chiplink.scala 232:25]
  wire  hspiMst_io_hspi_tx_enable; // @[Chiplink.scala 232:25]
  wire [15:0] hspiMst_io_hspi_tx_data; // @[Chiplink.scala 232:25]
  wire  hspiMst_io_hspi_oen; // @[Chiplink.scala 232:25]
  wire  hspiMst_io_req_ready; // @[Chiplink.scala 232:25]
  wire  hspiMst_io_req_valid; // @[Chiplink.scala 232:25]
  wire [31:0] hspiMst_io_req_bits_paddr; // @[Chiplink.scala 232:25]
  wire [63:0] hspiMst_io_req_bits_wdata; // @[Chiplink.scala 232:25]
  wire [7:0] hspiMst_io_req_bits_wmask; // @[Chiplink.scala 232:25]
  wire  hspiMst_io_rsp_ready; // @[Chiplink.scala 232:25]
  wire  hspiMst_io_rsp_valid; // @[Chiplink.scala 232:25]
  wire [63:0] hspiMst_io_rsp_bits_rdata; // @[Chiplink.scala 232:25]
  TLMonitor_1 monitor ( // @[Nodes.scala 24:25]
    .clock(monitor_clock),
    .reset(monitor_reset),
    .io_in_a_ready(monitor_io_in_a_ready),
    .io_in_a_valid(monitor_io_in_a_valid),
    .io_in_a_bits_opcode(monitor_io_in_a_bits_opcode),
    .io_in_a_bits_param(monitor_io_in_a_bits_param),
    .io_in_a_bits_size(monitor_io_in_a_bits_size),
    .io_in_a_bits_source(monitor_io_in_a_bits_source),
    .io_in_a_bits_address(monitor_io_in_a_bits_address),
    .io_in_a_bits_mask(monitor_io_in_a_bits_mask),
    .io_in_a_bits_corrupt(monitor_io_in_a_bits_corrupt),
    .io_in_d_ready(monitor_io_in_d_ready),
    .io_in_d_valid(monitor_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_io_in_d_bits_opcode),
    .io_in_d_bits_size(monitor_io_in_d_bits_size),
    .io_in_d_bits_source(monitor_io_in_d_bits_source)
  );
  TLSlave tlSlave ( // @[Chiplink.scala 231:25]
    .clock(tlSlave_clock),
    .reset(tlSlave_reset),
    .io_req_ready(tlSlave_io_req_ready),
    .io_req_valid(tlSlave_io_req_valid),
    .io_req_bits_paddr(tlSlave_io_req_bits_paddr),
    .io_req_bits_wdata(tlSlave_io_req_bits_wdata),
    .io_req_bits_wmask(tlSlave_io_req_bits_wmask),
    .io_rsp_ready(tlSlave_io_rsp_ready),
    .io_rsp_valid(tlSlave_io_rsp_valid),
    .io_rsp_bits_rdata(tlSlave_io_rsp_bits_rdata),
    .io_a_ready(tlSlave_io_a_ready),
    .io_a_valid(tlSlave_io_a_valid),
    .io_a_bits_opcode(tlSlave_io_a_bits_opcode),
    .io_a_bits_size(tlSlave_io_a_bits_size),
    .io_a_bits_source(tlSlave_io_a_bits_source),
    .io_a_bits_address(tlSlave_io_a_bits_address),
    .io_a_bits_mask(tlSlave_io_a_bits_mask),
    .io_a_bits_data(tlSlave_io_a_bits_data),
    .io_d_ready(tlSlave_io_d_ready),
    .io_d_valid(tlSlave_io_d_valid),
    .io_d_bits_opcode(tlSlave_io_d_bits_opcode),
    .io_d_bits_size(tlSlave_io_d_bits_size),
    .io_d_bits_source(tlSlave_io_d_bits_source),
    .io_d_bits_data(tlSlave_io_d_bits_data)
  );
  HexSpiMaster hspiMst ( // @[Chiplink.scala 232:25]
    .clock(hspiMst_clock),
    .reset(hspiMst_reset),
    .io_hspi_clk(hspiMst_io_hspi_clk),
    .io_hspi_rx_enable(hspiMst_io_hspi_rx_enable),
    .io_hspi_rx_data(hspiMst_io_hspi_rx_data),
    .io_hspi_tx_enable(hspiMst_io_hspi_tx_enable),
    .io_hspi_tx_data(hspiMst_io_hspi_tx_data),
    .io_hspi_oen(hspiMst_io_hspi_oen),
    .io_req_ready(hspiMst_io_req_ready),
    .io_req_valid(hspiMst_io_req_valid),
    .io_req_bits_paddr(hspiMst_io_req_bits_paddr),
    .io_req_bits_wdata(hspiMst_io_req_bits_wdata),
    .io_req_bits_wmask(hspiMst_io_req_bits_wmask),
    .io_rsp_ready(hspiMst_io_rsp_ready),
    .io_rsp_valid(hspiMst_io_rsp_valid),
    .io_rsp_bits_rdata(hspiMst_io_rsp_bits_rdata)
  );
  assign auto_chip_link_master_in_a_ready = tlSlave_io_a_ready; // @[Nodes.scala 1210:84 Chiplink.scala 236:22]
  assign auto_chip_link_master_in_d_valid = tlSlave_io_d_valid; // @[Nodes.scala 1210:84 Chiplink.scala 238:22]
  assign auto_chip_link_master_in_d_bits_opcode = tlSlave_io_d_bits_opcode; // @[Nodes.scala 1210:84 Chiplink.scala 239:21]
  assign auto_chip_link_master_in_d_bits_size = tlSlave_io_d_bits_size; // @[Nodes.scala 1210:84 Chiplink.scala 239:21]
  assign auto_chip_link_master_in_d_bits_source = tlSlave_io_d_bits_source; // @[Nodes.scala 1210:84 Chiplink.scala 239:21]
  assign auto_chip_link_master_in_d_bits_data = tlSlave_io_d_bits_data; // @[Nodes.scala 1210:84 Chiplink.scala 239:21]
  assign io_hspi_clk = hspiMst_io_hspi_clk; // @[Chiplink.scala 242:17]
  assign io_hspi_tx_enable = hspiMst_io_hspi_tx_enable; // @[Chiplink.scala 245:18]
  assign io_hspi_tx_data = hspiMst_io_hspi_tx_data; // @[Chiplink.scala 245:18]
  assign io_hspi_oen = hspiMst_io_hspi_oen; // @[Chiplink.scala 246:18]
  assign monitor_clock = clock;
  assign monitor_reset = reset;
  assign monitor_io_in_a_ready = tlSlave_io_a_ready; // @[Nodes.scala 1210:84 Chiplink.scala 236:22]
  assign monitor_io_in_a_valid = auto_chip_link_master_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_opcode = auto_chip_link_master_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_param = auto_chip_link_master_in_a_bits_param; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_size = auto_chip_link_master_in_a_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_source = auto_chip_link_master_in_a_bits_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_address = auto_chip_link_master_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_mask = auto_chip_link_master_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_corrupt = auto_chip_link_master_in_a_bits_corrupt; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_ready = auto_chip_link_master_in_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_valid = tlSlave_io_d_valid; // @[Nodes.scala 1210:84 Chiplink.scala 238:22]
  assign monitor_io_in_d_bits_opcode = tlSlave_io_d_bits_opcode; // @[Nodes.scala 1210:84 Chiplink.scala 239:21]
  assign monitor_io_in_d_bits_size = tlSlave_io_d_bits_size; // @[Nodes.scala 1210:84 Chiplink.scala 239:21]
  assign monitor_io_in_d_bits_source = tlSlave_io_d_bits_source; // @[Nodes.scala 1210:84 Chiplink.scala 239:21]
  assign tlSlave_clock = clock;
  assign tlSlave_reset = reset;
  assign tlSlave_io_req_ready = hspiMst_io_req_ready; // @[Chiplink.scala 249:20]
  assign tlSlave_io_rsp_valid = hspiMst_io_rsp_valid; // @[Chiplink.scala 248:20]
  assign tlSlave_io_rsp_bits_rdata = hspiMst_io_rsp_bits_rdata; // @[Chiplink.scala 248:20]
  assign tlSlave_io_a_valid = auto_chip_link_master_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign tlSlave_io_a_bits_opcode = auto_chip_link_master_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign tlSlave_io_a_bits_size = auto_chip_link_master_in_a_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign tlSlave_io_a_bits_source = auto_chip_link_master_in_a_bits_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign tlSlave_io_a_bits_address = auto_chip_link_master_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign tlSlave_io_a_bits_mask = auto_chip_link_master_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign tlSlave_io_a_bits_data = auto_chip_link_master_in_a_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign tlSlave_io_d_ready = auto_chip_link_master_in_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign hspiMst_clock = clock;
  assign hspiMst_reset = reset;
  assign hspiMst_io_hspi_rx_enable = io_hspi_rx_enable; // @[Chiplink.scala 244:24]
  assign hspiMst_io_hspi_rx_data = io_hspi_rx_data; // @[Chiplink.scala 244:24]
  assign hspiMst_io_req_valid = tlSlave_io_req_valid; // @[Chiplink.scala 249:20]
  assign hspiMst_io_req_bits_paddr = tlSlave_io_req_bits_paddr; // @[Chiplink.scala 249:20]
  assign hspiMst_io_req_bits_wdata = tlSlave_io_req_bits_wdata; // @[Chiplink.scala 249:20]
  assign hspiMst_io_req_bits_wmask = tlSlave_io_req_bits_wmask; // @[Chiplink.scala 249:20]
  assign hspiMst_io_rsp_ready = tlSlave_io_rsp_ready; // @[Chiplink.scala 248:20]
endmodule
module TLMonitor_2(
  input         clock,
  input         reset,
  input         io_in_a_ready,
  input         io_in_a_valid,
  input  [2:0]  io_in_a_bits_opcode,
  input  [2:0]  io_in_a_bits_param,
  input  [2:0]  io_in_a_bits_size,
  input         io_in_a_bits_source,
  input  [31:0] io_in_a_bits_address,
  input  [7:0]  io_in_a_bits_mask,
  input         io_in_a_bits_corrupt,
  input         io_in_d_ready,
  input         io_in_d_valid,
  input  [2:0]  io_in_d_bits_opcode,
  input  [1:0]  io_in_d_bits_param,
  input  [2:0]  io_in_d_bits_size,
  input  [4:0]  io_in_d_bits_sink,
  input         io_in_d_bits_denied,
  input         io_in_d_bits_corrupt
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire  _source_ok_T = ~io_in_a_bits_source; // @[Parameters.scala 46:9]
  wire [10:0] _is_aligned_mask_T_1 = 11'hf << io_in_a_bits_size; // @[package.scala 234:77]
  wire [3:0] is_aligned_mask = ~_is_aligned_mask_T_1[3:0]; // @[package.scala 234:46]
  wire [31:0] _GEN_62 = {{28'd0}, is_aligned_mask}; // @[Edges.scala 20:16]
  wire [31:0] _is_aligned_T = io_in_a_bits_address & _GEN_62; // @[Edges.scala 20:16]
  wire  is_aligned = _is_aligned_T == 32'h0; // @[Edges.scala 20:24]
  wire [1:0] mask_sizeOH_shiftAmount = io_in_a_bits_size[1:0]; // @[OneHot.scala 63:49]
  wire [3:0] _mask_sizeOH_T_1 = 4'h1 << mask_sizeOH_shiftAmount; // @[OneHot.scala 64:12]
  wire [2:0] mask_sizeOH = _mask_sizeOH_T_1[2:0] | 3'h1; // @[Misc.scala 201:81]
  wire  _mask_T = io_in_a_bits_size >= 3'h3; // @[Misc.scala 205:21]
  wire  mask_size = mask_sizeOH[2]; // @[Misc.scala 208:26]
  wire  mask_bit = io_in_a_bits_address[2]; // @[Misc.scala 209:26]
  wire  mask_nbit = ~mask_bit; // @[Misc.scala 210:20]
  wire  mask_acc = _mask_T | mask_size & mask_nbit; // @[Misc.scala 214:29]
  wire  mask_acc_1 = _mask_T | mask_size & mask_bit; // @[Misc.scala 214:29]
  wire  mask_size_1 = mask_sizeOH[1]; // @[Misc.scala 208:26]
  wire  mask_bit_1 = io_in_a_bits_address[1]; // @[Misc.scala 209:26]
  wire  mask_nbit_1 = ~mask_bit_1; // @[Misc.scala 210:20]
  wire  mask_eq_2 = mask_nbit & mask_nbit_1; // @[Misc.scala 213:27]
  wire  mask_acc_2 = mask_acc | mask_size_1 & mask_eq_2; // @[Misc.scala 214:29]
  wire  mask_eq_3 = mask_nbit & mask_bit_1; // @[Misc.scala 213:27]
  wire  mask_acc_3 = mask_acc | mask_size_1 & mask_eq_3; // @[Misc.scala 214:29]
  wire  mask_eq_4 = mask_bit & mask_nbit_1; // @[Misc.scala 213:27]
  wire  mask_acc_4 = mask_acc_1 | mask_size_1 & mask_eq_4; // @[Misc.scala 214:29]
  wire  mask_eq_5 = mask_bit & mask_bit_1; // @[Misc.scala 213:27]
  wire  mask_acc_5 = mask_acc_1 | mask_size_1 & mask_eq_5; // @[Misc.scala 214:29]
  wire  mask_size_2 = mask_sizeOH[0]; // @[Misc.scala 208:26]
  wire  mask_bit_2 = io_in_a_bits_address[0]; // @[Misc.scala 209:26]
  wire  mask_nbit_2 = ~mask_bit_2; // @[Misc.scala 210:20]
  wire  mask_eq_6 = mask_eq_2 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_6 = mask_acc_2 | mask_size_2 & mask_eq_6; // @[Misc.scala 214:29]
  wire  mask_eq_7 = mask_eq_2 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_7 = mask_acc_2 | mask_size_2 & mask_eq_7; // @[Misc.scala 214:29]
  wire  mask_eq_8 = mask_eq_3 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_8 = mask_acc_3 | mask_size_2 & mask_eq_8; // @[Misc.scala 214:29]
  wire  mask_eq_9 = mask_eq_3 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_9 = mask_acc_3 | mask_size_2 & mask_eq_9; // @[Misc.scala 214:29]
  wire  mask_eq_10 = mask_eq_4 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_10 = mask_acc_4 | mask_size_2 & mask_eq_10; // @[Misc.scala 214:29]
  wire  mask_eq_11 = mask_eq_4 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_11 = mask_acc_4 | mask_size_2 & mask_eq_11; // @[Misc.scala 214:29]
  wire  mask_eq_12 = mask_eq_5 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_12 = mask_acc_5 | mask_size_2 & mask_eq_12; // @[Misc.scala 214:29]
  wire  mask_eq_13 = mask_eq_5 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_13 = mask_acc_5 | mask_size_2 & mask_eq_13; // @[Misc.scala 214:29]
  wire [7:0] mask = {mask_acc_13,mask_acc_12,mask_acc_11,mask_acc_10,mask_acc_9,mask_acc_8,mask_acc_7,mask_acc_6}; // @[Cat.scala 33:92]
  wire  _T_5 = ~_source_ok_T; // @[Monitor.scala 63:7]
  wire [32:0] _T_7 = {1'b0,$signed(io_in_a_bits_address)}; // @[Parameters.scala 137:49]
  wire  _T_15 = io_in_a_bits_opcode == 3'h6; // @[Monitor.scala 81:25]
  wire  _T_22 = 3'h4 == io_in_a_bits_size; // @[Parameters.scala 91:48]
  wire [32:0] _T_27 = $signed(_T_7) & 33'sh100000000; // @[Parameters.scala 137:52]
  wire  _T_28 = $signed(_T_27) == 33'sh0; // @[Parameters.scala 137:67]
  wire  _T_29 = _T_22 & _T_28; // @[Parameters.scala 670:56]
  wire  _T_31 = _source_ok_T & _T_29; // @[Monitor.scala 82:72]
  wire  _T_60 = io_in_a_bits_param <= 3'h2; // @[Bundles.scala 108:27]
  wire [7:0] _T_64 = ~io_in_a_bits_mask; // @[Monitor.scala 88:18]
  wire  _T_65 = _T_64 == 8'h0; // @[Monitor.scala 88:31]
  wire  _T_69 = ~io_in_a_bits_corrupt; // @[Monitor.scala 89:18]
  wire  _T_73 = io_in_a_bits_opcode == 3'h7; // @[Monitor.scala 92:25]
  wire  _T_122 = io_in_a_bits_param != 3'h0; // @[Monitor.scala 99:31]
  wire  _T_135 = io_in_a_bits_opcode == 3'h4; // @[Monitor.scala 104:25]
  wire  _T_146 = io_in_a_bits_size <= 3'h4; // @[Parameters.scala 92:42]
  wire  _T_154 = _T_146 & _T_28; // @[Parameters.scala 670:56]
  wire  _T_165 = io_in_a_bits_param == 3'h0; // @[Monitor.scala 109:31]
  wire  _T_169 = io_in_a_bits_mask == mask; // @[Monitor.scala 110:30]
  wire  _T_177 = io_in_a_bits_opcode == 3'h0; // @[Monitor.scala 114:25]
  wire  _T_195 = _source_ok_T & _T_154; // @[Monitor.scala 115:71]
  wire  _T_213 = io_in_a_bits_opcode == 3'h1; // @[Monitor.scala 122:25]
  wire [7:0] _T_245 = ~mask; // @[Monitor.scala 127:33]
  wire [7:0] _T_246 = io_in_a_bits_mask & _T_245; // @[Monitor.scala 127:31]
  wire  _T_247 = _T_246 == 8'h0; // @[Monitor.scala 127:40]
  wire  _T_251 = io_in_a_bits_opcode == 3'h2; // @[Monitor.scala 130:25]
  wire  _T_259 = io_in_a_bits_size <= 3'h3; // @[Parameters.scala 92:42]
  wire  _T_267 = _T_259 & _T_28; // @[Parameters.scala 670:56]
  wire  _T_269 = _source_ok_T & _T_267; // @[Monitor.scala 131:74]
  wire  _T_279 = io_in_a_bits_param <= 3'h4; // @[Bundles.scala 138:33]
  wire  _T_287 = io_in_a_bits_opcode == 3'h3; // @[Monitor.scala 138:25]
  wire  _T_315 = io_in_a_bits_param <= 3'h3; // @[Bundles.scala 145:30]
  wire  _T_323 = io_in_a_bits_opcode == 3'h5; // @[Monitor.scala 146:25]
  wire  _T_351 = io_in_a_bits_param <= 3'h1; // @[Bundles.scala 158:28]
  wire  _T_363 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire  _T_367 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_371 = io_in_d_bits_size >= 3'h3; // @[Monitor.scala 312:27]
  wire  _T_375 = io_in_d_bits_param == 2'h0; // @[Monitor.scala 313:28]
  wire  _T_379 = ~io_in_d_bits_corrupt; // @[Monitor.scala 314:15]
  wire  _T_383 = ~io_in_d_bits_denied; // @[Monitor.scala 315:15]
  wire  _T_387 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_398 = io_in_d_bits_param <= 2'h2; // @[Bundles.scala 102:26]
  wire  _T_402 = io_in_d_bits_param != 2'h2; // @[Monitor.scala 323:28]
  wire  _T_415 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _T_435 = _T_383 | io_in_d_bits_corrupt; // @[Monitor.scala 334:30]
  wire  _T_444 = io_in_d_bits_opcode == 3'h0; // @[Monitor.scala 338:25]
  wire  _T_461 = io_in_d_bits_opcode == 3'h1; // @[Monitor.scala 346:25]
  wire  _T_479 = io_in_d_bits_opcode == 3'h2; // @[Monitor.scala 354:25]
  wire  _a_first_T = io_in_a_ready & io_in_a_valid; // @[Decoupled.scala 52:35]
  wire  a_first_beats1_decode = is_aligned_mask[3]; // @[Edges.scala 219:59]
  wire  a_first_beats1_opdata = ~io_in_a_bits_opcode[2]; // @[Edges.scala 91:28]
  wire  a_first_beats1 = a_first_beats1_opdata & a_first_beats1_decode; // @[Edges.scala 220:14]
  reg  a_first_counter; // @[Edges.scala 228:27]
  wire  a_first_counter1 = a_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  a_first = ~a_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode; // @[Monitor.scala 384:22]
  reg [2:0] param; // @[Monitor.scala 385:22]
  reg [2:0] size; // @[Monitor.scala 386:22]
  reg  source; // @[Monitor.scala 387:22]
  reg [31:0] address; // @[Monitor.scala 388:22]
  wire  _T_509 = io_in_a_valid & ~a_first; // @[Monitor.scala 389:19]
  wire  _T_510 = io_in_a_bits_opcode == opcode; // @[Monitor.scala 390:32]
  wire  _T_514 = io_in_a_bits_param == param; // @[Monitor.scala 391:32]
  wire  _T_518 = io_in_a_bits_size == size; // @[Monitor.scala 392:32]
  wire  _T_522 = io_in_a_bits_source == source; // @[Monitor.scala 393:32]
  wire  _T_526 = io_in_a_bits_address == address; // @[Monitor.scala 394:32]
  wire  _d_first_T = io_in_d_ready & io_in_d_valid; // @[Decoupled.scala 52:35]
  wire [10:0] _d_first_beats1_decode_T_1 = 11'hf << io_in_d_bits_size; // @[package.scala 234:77]
  wire [3:0] _d_first_beats1_decode_T_3 = ~_d_first_beats1_decode_T_1[3:0]; // @[package.scala 234:46]
  wire  d_first_beats1_decode = _d_first_beats1_decode_T_3[3]; // @[Edges.scala 219:59]
  wire  d_first_beats1_opdata = io_in_d_bits_opcode[0]; // @[Edges.scala 105:36]
  wire  d_first_beats1 = d_first_beats1_opdata & d_first_beats1_decode; // @[Edges.scala 220:14]
  reg  d_first_counter; // @[Edges.scala 228:27]
  wire  d_first_counter1 = d_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  d_first = ~d_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  reg [1:0] param_1; // @[Monitor.scala 536:22]
  reg [2:0] size_1; // @[Monitor.scala 537:22]
  reg [4:0] sink; // @[Monitor.scala 539:22]
  reg  denied; // @[Monitor.scala 540:22]
  wire  _T_533 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_534 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  wire  _T_538 = io_in_d_bits_param == param_1; // @[Monitor.scala 543:29]
  wire  _T_542 = io_in_d_bits_size == size_1; // @[Monitor.scala 544:29]
  wire  _T_550 = io_in_d_bits_sink == sink; // @[Monitor.scala 546:29]
  wire  _T_554 = io_in_d_bits_denied == denied; // @[Monitor.scala 547:29]
  reg  inflight; // @[Monitor.scala 611:27]
  reg [3:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [3:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg  a_first_counter_1; // @[Edges.scala 228:27]
  wire  a_first_counter1_1 = a_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  a_first_1 = ~a_first_counter_1; // @[Edges.scala 230:25]
  reg  d_first_counter_1; // @[Edges.scala 228:27]
  wire  d_first_counter1_1 = d_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = ~d_first_counter_1; // @[Edges.scala 230:25]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [15:0] _GEN_64 = {{12'd0}, inflight_opcodes}; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_6 = _GEN_64 & _a_opcode_lookup_T_5; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[15:1]}; // @[Monitor.scala 634:152]
  wire [15:0] _GEN_71 = {{12'd0}, inflight_sizes}; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_6 = _GEN_71 & _a_opcode_lookup_T_5; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[15:1]}; // @[Monitor.scala 638:144]
  wire  _T_560 = io_in_a_valid & a_first_1; // @[Monitor.scala 648:26]
  wire [1:0] _a_set_wo_ready_T = 2'h1 << io_in_a_bits_source; // @[OneHot.scala 57:35]
  wire [1:0] _GEN_15 = io_in_a_valid & a_first_1 ? _a_set_wo_ready_T : 2'h0; // @[Monitor.scala 648:71 649:22]
  wire  _T_563 = _a_first_T & a_first_1; // @[Monitor.scala 652:27]
  wire [3:0] _a_opcodes_set_interm_T = {io_in_a_bits_opcode, 1'h0}; // @[Monitor.scala 654:53]
  wire [3:0] _a_opcodes_set_interm_T_1 = _a_opcodes_set_interm_T | 4'h1; // @[Monitor.scala 654:61]
  wire [3:0] _a_sizes_set_interm_T = {io_in_a_bits_size, 1'h0}; // @[Monitor.scala 655:51]
  wire [3:0] _a_sizes_set_interm_T_1 = _a_sizes_set_interm_T | 4'h1; // @[Monitor.scala 655:59]
  wire [2:0] _GEN_73 = {io_in_a_bits_source, 2'h0}; // @[Monitor.scala 656:79]
  wire [3:0] _a_opcodes_set_T = {{1'd0}, _GEN_73}; // @[Monitor.scala 656:79]
  wire [3:0] a_opcodes_set_interm = _a_first_T & a_first_1 ? _a_opcodes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 654:28]
  wire [18:0] _GEN_509 = {{15'd0}, a_opcodes_set_interm}; // @[Monitor.scala 656:54]
  wire [18:0] _a_opcodes_set_T_1 = _GEN_509 << _a_opcodes_set_T; // @[Monitor.scala 656:54]
  wire [3:0] a_sizes_set_interm = _a_first_T & a_first_1 ? _a_sizes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 655:28]
  wire [18:0] _GEN_510 = {{15'd0}, a_sizes_set_interm}; // @[Monitor.scala 657:52]
  wire [18:0] _a_sizes_set_T_1 = _GEN_510 << _a_opcodes_set_T; // @[Monitor.scala 657:52]
  wire  _T_567 = ~(inflight >> io_in_a_bits_source); // @[Monitor.scala 658:17]
  wire [1:0] _GEN_16 = _a_first_T & a_first_1 ? _a_set_wo_ready_T : 2'h0; // @[Monitor.scala 652:72 653:28]
  wire [18:0] _GEN_19 = _a_first_T & a_first_1 ? _a_opcodes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 656:28]
  wire [18:0] _GEN_20 = _a_first_T & a_first_1 ? _a_sizes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 657:28]
  wire  _T_571 = io_in_d_valid & d_first_1; // @[Monitor.scala 671:26]
  wire  _T_573 = ~_T_367; // @[Monitor.scala 671:74]
  wire  _T_574 = io_in_d_valid & d_first_1 & ~_T_367; // @[Monitor.scala 671:71]
  wire [1:0] _GEN_21 = io_in_d_valid & d_first_1 & ~_T_367 ? 2'h1 : 2'h0; // @[Monitor.scala 671:90 672:22]
  wire [30:0] _d_opcodes_clr_T_5 = {{15'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [1:0] _GEN_22 = _d_first_T & d_first_1 & _T_573 ? 2'h1 : 2'h0; // @[Monitor.scala 675:91 676:21]
  wire [30:0] _GEN_23 = _d_first_T & d_first_1 & _T_573 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 675:91 677:21]
  wire  same_cycle_resp = _T_560 & _source_ok_T; // @[Monitor.scala 681:88]
  wire  _T_586 = inflight | same_cycle_resp; // @[Monitor.scala 682:49]
  wire [2:0] _GEN_27 = 3'h2 == io_in_a_bits_opcode ? 3'h1 : 3'h0; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_28 = 3'h3 == io_in_a_bits_opcode ? 3'h1 : _GEN_27; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_29 = 3'h4 == io_in_a_bits_opcode ? 3'h1 : _GEN_28; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_30 = 3'h5 == io_in_a_bits_opcode ? 3'h2 : _GEN_29; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_31 = 3'h6 == io_in_a_bits_opcode ? 3'h4 : _GEN_30; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_32 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_31; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_39 = 3'h6 == io_in_a_bits_opcode ? 3'h5 : _GEN_30; // @[Monitor.scala 686:{39,39}]
  wire [2:0] _GEN_40 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_39; // @[Monitor.scala 686:{39,39}]
  wire  _T_591 = io_in_d_bits_opcode == _GEN_40; // @[Monitor.scala 686:39]
  wire  _T_592 = io_in_d_bits_opcode == _GEN_32 | _T_591; // @[Monitor.scala 685:77]
  wire  _T_596 = io_in_a_bits_size == io_in_d_bits_size; // @[Monitor.scala 687:36]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_43 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_44 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_43; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_45 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_44; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_46 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_45; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_47 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_46; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_48 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_47; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_55 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_46; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_56 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_55; // @[Monitor.scala 690:{38,38}]
  wire  _T_603 = io_in_d_bits_opcode == _GEN_56; // @[Monitor.scala 690:38]
  wire  _T_604 = io_in_d_bits_opcode == _GEN_48 | _T_603; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire [3:0] _GEN_75 = {{1'd0}, io_in_d_bits_size}; // @[Monitor.scala 691:36]
  wire  _T_608 = _GEN_75 == a_size_lookup; // @[Monitor.scala 691:36]
  wire  _T_618 = _T_571 & a_first_1 & io_in_a_valid & _source_ok_T & _T_573; // @[Monitor.scala 694:116]
  wire  _T_620 = ~io_in_d_ready | io_in_a_ready; // @[Monitor.scala 695:32]
  wire  a_set_wo_ready = _GEN_15[0];
  wire  d_clr_wo_ready = _GEN_21[0];
  wire  _T_627 = a_set_wo_ready != d_clr_wo_ready | ~(|a_set_wo_ready); // @[Monitor.scala 699:48]
  wire  a_set = _GEN_16[0];
  wire  d_clr = _GEN_22[0];
  wire [3:0] a_opcodes_set = _GEN_19[3:0];
  wire [3:0] _inflight_opcodes_T = inflight_opcodes | a_opcodes_set; // @[Monitor.scala 703:43]
  wire [3:0] d_opcodes_clr = _GEN_23[3:0];
  wire [3:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [3:0] _inflight_opcodes_T_2 = _inflight_opcodes_T & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [3:0] a_sizes_set = _GEN_20[3:0];
  wire [3:0] _inflight_sizes_T = inflight_sizes | a_sizes_set; // @[Monitor.scala 704:39]
  wire [3:0] _inflight_sizes_T_2 = _inflight_sizes_T & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [31:0] watchdog; // @[Monitor.scala 706:27]
  wire  _T_636 = ~(|inflight) | plusarg_reader_out == 32'h0 | watchdog < plusarg_reader_out; // @[Monitor.scala 709:47]
  wire [31:0] _watchdog_T_1 = watchdog + 32'h1; // @[Monitor.scala 711:26]
  reg [3:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg  d_first_counter_2; // @[Edges.scala 228:27]
  wire  d_first_counter1_2 = d_first_counter_2 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = ~d_first_counter_2; // @[Edges.scala 230:25]
  wire [15:0] _GEN_76 = {{12'd0}, inflight_sizes_1}; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_6 = _GEN_76 & _a_opcode_lookup_T_5; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[15:1]}; // @[Monitor.scala 747:146]
  wire  _T_662 = io_in_d_valid & d_first_2 & _T_367; // @[Monitor.scala 779:71]
  wire [30:0] _GEN_69 = _d_first_T & d_first_2 & _T_367 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 783:90 786:21]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_680 = _GEN_75 == c_size_lookup; // @[Monitor.scala 795:36]
  wire [3:0] d_sizes_clr_1 = _GEN_69[3:0];
  wire [3:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [3:0] _inflight_sizes_T_5 = inflight_sizes_1 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        a_first_counter <= a_first_beats1;
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      opcode <= io_in_a_bits_opcode; // @[Monitor.scala 397:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      param <= io_in_a_bits_param; // @[Monitor.scala 398:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      size <= io_in_a_bits_size; // @[Monitor.scala 399:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      source <= io_in_a_bits_source; // @[Monitor.scala 400:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      address <= io_in_a_bits_address; // @[Monitor.scala 401:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        d_first_counter <= d_first_beats1;
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      param_1 <= io_in_d_bits_param; // @[Monitor.scala 551:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      size_1 <= io_in_d_bits_size; // @[Monitor.scala 552:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      sink <= io_in_d_bits_sink; // @[Monitor.scala 554:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      denied <= io_in_d_bits_denied; // @[Monitor.scala 555:15]
    end
    if (reset) begin // @[Monitor.scala 611:27]
      inflight <= 1'h0; // @[Monitor.scala 611:27]
    end else begin
      inflight <= (inflight | a_set) & ~d_clr; // @[Monitor.scala 702:14]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 4'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 4'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first_1) begin // @[Edges.scala 235:21]
        a_first_counter_1 <= a_first_beats1;
      end else begin
        a_first_counter_1 <= a_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        d_first_counter_1 <= d_first_beats1;
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 706:27]
      watchdog <= 32'h0; // @[Monitor.scala 706:27]
    end else if (_a_first_T | _d_first_T) begin // @[Monitor.scala 712:47]
      watchdog <= 32'h0; // @[Monitor.scala 712:58]
    end else begin
      watchdog <= _watchdog_T_1; // @[Monitor.scala 711:14]
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 4'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        d_first_counter_2 <= d_first_beats1;
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~_T_31) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_31 & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock from a client which does not support Probe (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & _T_5) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock carries invalid source ID (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_5 & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~_mask_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock smaller than a beat (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_mask_T & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock address not aligned to size (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~_T_60) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock carries invalid grow param (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_60 & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~_T_65) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock contains invalid mask (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_65 & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~_T_69) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock is corrupt (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_69 & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_73 & ~reset & ~_T_31) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_31 & (io_in_a_valid & _T_73 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_73 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm from a client which does not support Probe (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_73 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_73 & ~reset & _T_5) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm carries invalid source ID (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_5 & (io_in_a_valid & _T_73 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_73 & ~reset & ~_mask_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm smaller than a beat (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_mask_T & (io_in_a_valid & _T_73 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_73 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm address not aligned to size (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_73 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_73 & ~reset & ~_T_60) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm carries invalid grow param (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_60 & (io_in_a_valid & _T_73 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_73 & ~reset & ~_T_122) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm requests NtoB (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_122 & (io_in_a_valid & _T_73 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_73 & ~reset & ~_T_65) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm contains invalid mask (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_65 & (io_in_a_valid & _T_73 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_73 & ~reset & ~_T_69) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm is corrupt (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_69 & (io_in_a_valid & _T_73 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_135 & ~reset & _T_5) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which master claims it can't emit (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_5 & (io_in_a_valid & _T_135 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_135 & ~reset & ~_T_154) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which slave claims it can't support (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_154 & (io_in_a_valid & _T_135 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_135 & ~reset & _T_5) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get carries invalid source ID (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_5 & (io_in_a_valid & _T_135 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_135 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get address not aligned to size (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_135 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_135 & ~reset & ~_T_165) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get carries invalid param (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_165 & (io_in_a_valid & _T_135 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_135 & ~reset & ~_T_169) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get contains invalid mask (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_169 & (io_in_a_valid & _T_135 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_135 & ~reset & ~_T_69) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get is corrupt (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_69 & (io_in_a_valid & _T_135 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_177 & ~reset & ~_T_195) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutFull type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_195 & (io_in_a_valid & _T_177 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_177 & ~reset & _T_5) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull carries invalid source ID (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_5 & (io_in_a_valid & _T_177 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_177 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull address not aligned to size (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_177 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_177 & ~reset & ~_T_165) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull carries invalid param (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_165 & (io_in_a_valid & _T_177 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_177 & ~reset & ~_T_169) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull contains invalid mask (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_169 & (io_in_a_valid & _T_177 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_213 & ~reset & ~_T_195) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutPartial type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_195 & (io_in_a_valid & _T_213 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_213 & ~reset & _T_5) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial carries invalid source ID (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_5 & (io_in_a_valid & _T_213 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_213 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial address not aligned to size (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_213 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_213 & ~reset & ~_T_165) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial carries invalid param (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_165 & (io_in_a_valid & _T_213 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_213 & ~reset & ~_T_247) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial contains invalid mask (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_247 & (io_in_a_valid & _T_213 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_251 & ~reset & ~_T_269) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Arithmetic type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_269 & (io_in_a_valid & _T_251 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_251 & ~reset & _T_5) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic carries invalid source ID (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_5 & (io_in_a_valid & _T_251 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_251 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic address not aligned to size (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_251 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_251 & ~reset & ~_T_279) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic carries invalid opcode param (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_279 & (io_in_a_valid & _T_251 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_251 & ~reset & ~_T_169) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic contains invalid mask (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_169 & (io_in_a_valid & _T_251 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_287 & ~reset & ~_T_269) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Logical type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_269 & (io_in_a_valid & _T_287 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_287 & ~reset & _T_5) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical carries invalid source ID (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_5 & (io_in_a_valid & _T_287 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_287 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical address not aligned to size (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_287 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_287 & ~reset & ~_T_315) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical carries invalid opcode param (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_315 & (io_in_a_valid & _T_287 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_287 & ~reset & ~_T_169) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical contains invalid mask (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_169 & (io_in_a_valid & _T_287 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_323 & ~reset & ~_T_195) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Hint type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_195 & (io_in_a_valid & _T_323 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_323 & ~reset & _T_5) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint carries invalid source ID (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_5 & (io_in_a_valid & _T_323 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_323 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint address not aligned to size (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_323 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_323 & ~reset & ~_T_351) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint carries invalid opcode param (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_351 & (io_in_a_valid & _T_323 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_323 & ~reset & ~_T_169) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint contains invalid mask (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_169 & (io_in_a_valid & _T_323 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_323 & ~reset & ~_T_69) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint is corrupt (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_69 & (io_in_a_valid & _T_323 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_363) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_363 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_367 & _T_2 & ~_T_371) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck smaller than a beat (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_371 & (io_in_d_valid & _T_367 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_367 & _T_2 & ~_T_375) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseeAck carries invalid param (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_375 & (io_in_d_valid & _T_367 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_367 & _T_2 & ~_T_379) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is corrupt (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_379 & (io_in_d_valid & _T_367 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_367 & _T_2 & ~_T_383) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is denied (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_383 & (io_in_d_valid & _T_367 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_387 & _T_2 & ~_T_371) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant smaller than a beat (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_371 & (io_in_d_valid & _T_387 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_387 & _T_2 & ~_T_398) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid cap param (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_398 & (io_in_d_valid & _T_387 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_387 & _T_2 & ~_T_402) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries toN param (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_402 & (io_in_d_valid & _T_387 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_387 & _T_2 & ~_T_379) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant is corrupt (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_379 & (io_in_d_valid & _T_387 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_387 & _T_2 & ~_T_383) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant is denied (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_383 & (io_in_d_valid & _T_387 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2 & ~_T_371) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData smaller than a beat (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_371 & (io_in_d_valid & _T_415 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2 & ~_T_398) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid cap param (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_398 & (io_in_d_valid & _T_415 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2 & ~_T_402) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries toN param (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_402 & (io_in_d_valid & _T_415 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2 & ~_T_435) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData is denied but not corrupt (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_435 & (io_in_d_valid & _T_415 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2 & ~_T_383) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData is denied (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_383 & (io_in_d_valid & _T_415 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_444 & _T_2 & ~_T_375) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck carries invalid param (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_375 & (io_in_d_valid & _T_444 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_444 & _T_2 & ~_T_379) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck is corrupt (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_379 & (io_in_d_valid & _T_444 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_444 & _T_2 & ~_T_383) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck is denied (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_383 & (io_in_d_valid & _T_444 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_461 & _T_2 & ~_T_375) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData carries invalid param (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_375 & (io_in_d_valid & _T_461 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_461 & _T_2 & ~_T_435) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData is denied but not corrupt (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_435 & (io_in_d_valid & _T_461 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_461 & _T_2 & ~_T_383) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData is denied (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_383 & (io_in_d_valid & _T_461 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_479 & _T_2 & ~_T_375) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck carries invalid param (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_375 & (io_in_d_valid & _T_479 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_479 & _T_2 & ~_T_379) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck is corrupt (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_379 & (io_in_d_valid & _T_479 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_479 & _T_2 & ~_T_383) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck is denied (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_383 & (io_in_d_valid & _T_479 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_509 & ~reset & ~_T_510) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel opcode changed within multibeat operation (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_510 & (_T_509 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_509 & ~reset & ~_T_514) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel param changed within multibeat operation (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_514 & (_T_509 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_509 & ~reset & ~_T_518) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel size changed within multibeat operation (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_518 & (_T_509 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_509 & ~reset & ~_T_522) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel source changed within multibeat operation (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_522 & (_T_509 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_509 & ~reset & ~_T_526) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel address changed with multibeat operation (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_526 & (_T_509 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_533 & _T_2 & ~_T_534) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_534 & (_T_533 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_533 & _T_2 & ~_T_538) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel param changed within multibeat operation (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_538 & (_T_533 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_533 & _T_2 & ~_T_542) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel size changed within multibeat operation (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_542 & (_T_533 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_533 & _T_2 & ~_T_550) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel sink changed with multibeat operation (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_550 & (_T_533 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_533 & _T_2 & ~_T_554) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel denied changed with multibeat operation (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_554 & (_T_533 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_563 & ~reset & ~_T_567) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel re-used a source ID (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_567 & (_T_563 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_574 & _T_2 & ~_T_586) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_586 & (_T_574 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_574 & same_cycle_resp & _T_2 & ~_T_592) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_592 & (_T_574 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_574 & same_cycle_resp & _T_2 & ~_T_596) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_596 & (_T_574 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_574 & ~same_cycle_resp & _T_2 & ~_T_604) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_604 & (_T_574 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_574 & ~same_cycle_resp & _T_2 & ~_T_608) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_608 & (_T_574 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_618 & _T_2 & ~_T_620) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_620 & (_T_618 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_2 & ~_T_627) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' and 'D' concurrent, despite minlatency 2 (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_627 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_636) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_636 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_662 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_662 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_662 & _T_2 & ~_T_680) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:76:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_680 & (_T_662 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  opcode = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  param = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  size = _RAND_3[2:0];
  _RAND_4 = {1{`RANDOM}};
  source = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  address = _RAND_5[31:0];
  _RAND_6 = {1{`RANDOM}};
  d_first_counter = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  opcode_1 = _RAND_7[2:0];
  _RAND_8 = {1{`RANDOM}};
  param_1 = _RAND_8[1:0];
  _RAND_9 = {1{`RANDOM}};
  size_1 = _RAND_9[2:0];
  _RAND_10 = {1{`RANDOM}};
  sink = _RAND_10[4:0];
  _RAND_11 = {1{`RANDOM}};
  denied = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  inflight = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  inflight_opcodes = _RAND_13[3:0];
  _RAND_14 = {1{`RANDOM}};
  inflight_sizes = _RAND_14[3:0];
  _RAND_15 = {1{`RANDOM}};
  a_first_counter_1 = _RAND_15[0:0];
  _RAND_16 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  watchdog = _RAND_17[31:0];
  _RAND_18 = {1{`RANDOM}};
  inflight_sizes_1 = _RAND_18[3:0];
  _RAND_19 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_19[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLMonitor_3(
  input         clock,
  input         reset,
  input         io_in_a_ready,
  input         io_in_a_valid,
  input  [2:0]  io_in_a_bits_opcode,
  input  [2:0]  io_in_a_bits_param,
  input  [2:0]  io_in_a_bits_size,
  input         io_in_a_bits_source,
  input  [31:0] io_in_a_bits_address,
  input  [7:0]  io_in_a_bits_mask,
  input         io_in_a_bits_corrupt,
  input         io_in_b_ready,
  input         io_in_b_valid,
  input  [1:0]  io_in_b_bits_param,
  input  [31:0] io_in_b_bits_address,
  input         io_in_c_ready,
  input         io_in_c_valid,
  input  [2:0]  io_in_c_bits_opcode,
  input  [2:0]  io_in_c_bits_param,
  input  [2:0]  io_in_c_bits_size,
  input         io_in_c_bits_source,
  input  [31:0] io_in_c_bits_address,
  input         io_in_c_bits_corrupt,
  input         io_in_d_ready,
  input         io_in_d_valid,
  input  [2:0]  io_in_d_bits_opcode,
  input  [1:0]  io_in_d_bits_param,
  input  [2:0]  io_in_d_bits_size,
  input  [4:0]  io_in_d_bits_sink,
  input         io_in_d_bits_denied,
  input         io_in_d_bits_corrupt,
  input         io_in_e_valid,
  input  [4:0]  io_in_e_bits_sink
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
  reg [31:0] _RAND_33;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire  _source_ok_T = ~io_in_a_bits_source; // @[Parameters.scala 46:9]
  wire [10:0] _is_aligned_mask_T_1 = 11'hf << io_in_a_bits_size; // @[package.scala 234:77]
  wire [3:0] is_aligned_mask = ~_is_aligned_mask_T_1[3:0]; // @[package.scala 234:46]
  wire [31:0] _GEN_74 = {{28'd0}, is_aligned_mask}; // @[Edges.scala 20:16]
  wire [31:0] _is_aligned_T = io_in_a_bits_address & _GEN_74; // @[Edges.scala 20:16]
  wire  is_aligned = _is_aligned_T == 32'h0; // @[Edges.scala 20:24]
  wire [1:0] mask_sizeOH_shiftAmount = io_in_a_bits_size[1:0]; // @[OneHot.scala 63:49]
  wire [3:0] _mask_sizeOH_T_1 = 4'h1 << mask_sizeOH_shiftAmount; // @[OneHot.scala 64:12]
  wire [2:0] mask_sizeOH = _mask_sizeOH_T_1[2:0] | 3'h1; // @[Misc.scala 201:81]
  wire  _mask_T = io_in_a_bits_size >= 3'h3; // @[Misc.scala 205:21]
  wire  mask_size = mask_sizeOH[2]; // @[Misc.scala 208:26]
  wire  mask_bit = io_in_a_bits_address[2]; // @[Misc.scala 209:26]
  wire  mask_nbit = ~mask_bit; // @[Misc.scala 210:20]
  wire  mask_acc = _mask_T | mask_size & mask_nbit; // @[Misc.scala 214:29]
  wire  mask_acc_1 = _mask_T | mask_size & mask_bit; // @[Misc.scala 214:29]
  wire  mask_size_1 = mask_sizeOH[1]; // @[Misc.scala 208:26]
  wire  mask_bit_1 = io_in_a_bits_address[1]; // @[Misc.scala 209:26]
  wire  mask_nbit_1 = ~mask_bit_1; // @[Misc.scala 210:20]
  wire  mask_eq_2 = mask_nbit & mask_nbit_1; // @[Misc.scala 213:27]
  wire  mask_acc_2 = mask_acc | mask_size_1 & mask_eq_2; // @[Misc.scala 214:29]
  wire  mask_eq_3 = mask_nbit & mask_bit_1; // @[Misc.scala 213:27]
  wire  mask_acc_3 = mask_acc | mask_size_1 & mask_eq_3; // @[Misc.scala 214:29]
  wire  mask_eq_4 = mask_bit & mask_nbit_1; // @[Misc.scala 213:27]
  wire  mask_acc_4 = mask_acc_1 | mask_size_1 & mask_eq_4; // @[Misc.scala 214:29]
  wire  mask_eq_5 = mask_bit & mask_bit_1; // @[Misc.scala 213:27]
  wire  mask_acc_5 = mask_acc_1 | mask_size_1 & mask_eq_5; // @[Misc.scala 214:29]
  wire  mask_size_2 = mask_sizeOH[0]; // @[Misc.scala 208:26]
  wire  mask_bit_2 = io_in_a_bits_address[0]; // @[Misc.scala 209:26]
  wire  mask_nbit_2 = ~mask_bit_2; // @[Misc.scala 210:20]
  wire  mask_eq_6 = mask_eq_2 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_6 = mask_acc_2 | mask_size_2 & mask_eq_6; // @[Misc.scala 214:29]
  wire  mask_eq_7 = mask_eq_2 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_7 = mask_acc_2 | mask_size_2 & mask_eq_7; // @[Misc.scala 214:29]
  wire  mask_eq_8 = mask_eq_3 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_8 = mask_acc_3 | mask_size_2 & mask_eq_8; // @[Misc.scala 214:29]
  wire  mask_eq_9 = mask_eq_3 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_9 = mask_acc_3 | mask_size_2 & mask_eq_9; // @[Misc.scala 214:29]
  wire  mask_eq_10 = mask_eq_4 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_10 = mask_acc_4 | mask_size_2 & mask_eq_10; // @[Misc.scala 214:29]
  wire  mask_eq_11 = mask_eq_4 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_11 = mask_acc_4 | mask_size_2 & mask_eq_11; // @[Misc.scala 214:29]
  wire  mask_eq_12 = mask_eq_5 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_12 = mask_acc_5 | mask_size_2 & mask_eq_12; // @[Misc.scala 214:29]
  wire  mask_eq_13 = mask_eq_5 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_13 = mask_acc_5 | mask_size_2 & mask_eq_13; // @[Misc.scala 214:29]
  wire [7:0] mask = {mask_acc_13,mask_acc_12,mask_acc_11,mask_acc_10,mask_acc_9,mask_acc_8,mask_acc_7,mask_acc_6}; // @[Cat.scala 33:92]
  wire  _T_5 = ~_source_ok_T; // @[Monitor.scala 63:7]
  wire [32:0] _T_7 = {1'b0,$signed(io_in_a_bits_address)}; // @[Parameters.scala 137:49]
  wire  _T_15 = io_in_a_bits_opcode == 3'h6; // @[Monitor.scala 81:25]
  wire  _T_22 = 3'h4 == io_in_a_bits_size; // @[Parameters.scala 91:48]
  wire [32:0] _T_27 = $signed(_T_7) & 33'sh100000000; // @[Parameters.scala 137:52]
  wire  _T_28 = $signed(_T_27) == 33'sh0; // @[Parameters.scala 137:67]
  wire  _T_29 = _T_22 & _T_28; // @[Parameters.scala 670:56]
  wire  _T_31 = _source_ok_T & _T_29; // @[Monitor.scala 82:72]
  wire  _T_61 = io_in_a_bits_param <= 3'h2; // @[Bundles.scala 108:27]
  wire [7:0] _T_65 = ~io_in_a_bits_mask; // @[Monitor.scala 88:18]
  wire  _T_66 = _T_65 == 8'h0; // @[Monitor.scala 88:31]
  wire  _T_70 = ~io_in_a_bits_corrupt; // @[Monitor.scala 89:18]
  wire  _T_74 = io_in_a_bits_opcode == 3'h7; // @[Monitor.scala 92:25]
  wire  _T_124 = io_in_a_bits_param != 3'h0; // @[Monitor.scala 99:31]
  wire  _T_137 = io_in_a_bits_opcode == 3'h4; // @[Monitor.scala 104:25]
  wire  _T_148 = io_in_a_bits_size <= 3'h4; // @[Parameters.scala 92:42]
  wire  _T_156 = _T_148 & _T_28; // @[Parameters.scala 670:56]
  wire  _T_167 = io_in_a_bits_param == 3'h0; // @[Monitor.scala 109:31]
  wire  _T_171 = io_in_a_bits_mask == mask; // @[Monitor.scala 110:30]
  wire  _T_179 = io_in_a_bits_opcode == 3'h0; // @[Monitor.scala 114:25]
  wire  _T_197 = _source_ok_T & _T_156; // @[Monitor.scala 115:71]
  wire  _T_215 = io_in_a_bits_opcode == 3'h1; // @[Monitor.scala 122:25]
  wire [7:0] _T_247 = ~mask; // @[Monitor.scala 127:33]
  wire [7:0] _T_248 = io_in_a_bits_mask & _T_247; // @[Monitor.scala 127:31]
  wire  _T_249 = _T_248 == 8'h0; // @[Monitor.scala 127:40]
  wire  _T_253 = io_in_a_bits_opcode == 3'h2; // @[Monitor.scala 130:25]
  wire  _T_261 = io_in_a_bits_size <= 3'h3; // @[Parameters.scala 92:42]
  wire  _T_269 = _T_261 & _T_28; // @[Parameters.scala 670:56]
  wire  _T_271 = _source_ok_T & _T_269; // @[Monitor.scala 131:74]
  wire  _T_281 = io_in_a_bits_param <= 3'h4; // @[Bundles.scala 138:33]
  wire  _T_289 = io_in_a_bits_opcode == 3'h3; // @[Monitor.scala 138:25]
  wire  _T_317 = io_in_a_bits_param <= 3'h3; // @[Bundles.scala 145:30]
  wire  _T_325 = io_in_a_bits_opcode == 3'h5; // @[Monitor.scala 146:25]
  wire  _T_353 = io_in_a_bits_param <= 3'h1; // @[Bundles.scala 158:28]
  wire  _T_365 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire  _T_369 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_373 = io_in_d_bits_size >= 3'h3; // @[Monitor.scala 312:27]
  wire  _T_377 = io_in_d_bits_param == 2'h0; // @[Monitor.scala 313:28]
  wire  _T_381 = ~io_in_d_bits_corrupt; // @[Monitor.scala 314:15]
  wire  _T_385 = ~io_in_d_bits_denied; // @[Monitor.scala 315:15]
  wire  _T_389 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_400 = io_in_d_bits_param <= 2'h2; // @[Bundles.scala 102:26]
  wire  _T_404 = io_in_d_bits_param != 2'h2; // @[Monitor.scala 323:28]
  wire  _T_417 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _T_437 = _T_385 | io_in_d_bits_corrupt; // @[Monitor.scala 334:30]
  wire  _T_446 = io_in_d_bits_opcode == 3'h0; // @[Monitor.scala 338:25]
  wire  _T_463 = io_in_d_bits_opcode == 3'h1; // @[Monitor.scala 346:25]
  wire  _T_481 = io_in_d_bits_opcode == 3'h2; // @[Monitor.scala 354:25]
  wire [32:0] _T_505 = {1'b0,$signed(io_in_b_bits_address)}; // @[Parameters.scala 137:49]
  wire [32:0] _address_ok_T_3 = $signed(_T_505) & 33'sh100000000; // @[Parameters.scala 137:52]
  wire  _address_ok_T_4 = $signed(_address_ok_T_3) == 33'sh0; // @[Parameters.scala 137:67]
  wire [31:0] _is_aligned_T_1 = io_in_b_bits_address & 32'hf; // @[Edges.scala 20:16]
  wire  is_aligned_1 = _is_aligned_T_1 == 32'h0; // @[Edges.scala 20:24]
  wire  _T_539 = io_in_b_bits_param <= 2'h2; // @[Bundles.scala 102:26]
  wire  _source_ok_T_2 = ~io_in_c_bits_source; // @[Parameters.scala 46:9]
  wire [10:0] _is_aligned_mask_T_7 = 11'hf << io_in_c_bits_size; // @[package.scala 234:77]
  wire [3:0] is_aligned_mask_2 = ~_is_aligned_mask_T_7[3:0]; // @[package.scala 234:46]
  wire [31:0] _GEN_76 = {{28'd0}, is_aligned_mask_2}; // @[Edges.scala 20:16]
  wire [31:0] _is_aligned_T_2 = io_in_c_bits_address & _GEN_76; // @[Edges.scala 20:16]
  wire  is_aligned_2 = _is_aligned_T_2 == 32'h0; // @[Edges.scala 20:24]
  wire [32:0] _address_ok_T_6 = {1'b0,$signed(io_in_c_bits_address)}; // @[Parameters.scala 137:49]
  wire [32:0] _address_ok_T_8 = $signed(_address_ok_T_6) & 33'sh100000000; // @[Parameters.scala 137:52]
  wire  _address_ok_T_9 = $signed(_address_ok_T_8) == 33'sh0; // @[Parameters.scala 137:67]
  wire  _T_760 = ~_source_ok_T_2; // @[Monitor.scala 63:7]
  wire  _T_770 = io_in_c_bits_opcode == 3'h4; // @[Monitor.scala 242:25]
  wire  _T_777 = io_in_c_bits_size >= 3'h3; // @[Monitor.scala 245:30]
  wire  _T_784 = io_in_c_bits_param <= 3'h5; // @[Bundles.scala 120:29]
  wire  _T_788 = ~io_in_c_bits_corrupt; // @[Monitor.scala 248:18]
  wire  _T_792 = io_in_c_bits_opcode == 3'h5; // @[Monitor.scala 251:25]
  wire  _T_810 = io_in_c_bits_opcode == 3'h6; // @[Monitor.scala 259:25]
  wire  _T_817 = 3'h4 == io_in_c_bits_size; // @[Parameters.scala 91:48]
  wire  _T_824 = _T_817 & _address_ok_T_9; // @[Parameters.scala 670:56]
  wire  _T_826 = _source_ok_T_2 & _T_824; // @[Monitor.scala 260:78]
  wire  _T_864 = io_in_c_bits_opcode == 3'h7; // @[Monitor.scala 269:25]
  wire  _T_914 = io_in_c_bits_opcode == 3'h0; // @[Monitor.scala 278:25]
  wire  _T_924 = io_in_c_bits_param == 3'h0; // @[Monitor.scala 282:31]
  wire  _T_932 = io_in_c_bits_opcode == 3'h1; // @[Monitor.scala 286:25]
  wire  _T_946 = io_in_c_bits_opcode == 3'h2; // @[Monitor.scala 293:25]
  wire  _a_first_T = io_in_a_ready & io_in_a_valid; // @[Decoupled.scala 52:35]
  wire  a_first_beats1_decode = is_aligned_mask[3]; // @[Edges.scala 219:59]
  wire  a_first_beats1_opdata = ~io_in_a_bits_opcode[2]; // @[Edges.scala 91:28]
  wire  a_first_beats1 = a_first_beats1_opdata & a_first_beats1_decode; // @[Edges.scala 220:14]
  reg  a_first_counter; // @[Edges.scala 228:27]
  wire  a_first_counter1 = a_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  a_first = ~a_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode; // @[Monitor.scala 384:22]
  reg [2:0] param; // @[Monitor.scala 385:22]
  reg [2:0] size; // @[Monitor.scala 386:22]
  reg  source; // @[Monitor.scala 387:22]
  reg [31:0] address; // @[Monitor.scala 388:22]
  wire  _T_968 = io_in_a_valid & ~a_first; // @[Monitor.scala 389:19]
  wire  _T_969 = io_in_a_bits_opcode == opcode; // @[Monitor.scala 390:32]
  wire  _T_973 = io_in_a_bits_param == param; // @[Monitor.scala 391:32]
  wire  _T_977 = io_in_a_bits_size == size; // @[Monitor.scala 392:32]
  wire  _T_981 = io_in_a_bits_source == source; // @[Monitor.scala 393:32]
  wire  _T_985 = io_in_a_bits_address == address; // @[Monitor.scala 394:32]
  wire  _d_first_T = io_in_d_ready & io_in_d_valid; // @[Decoupled.scala 52:35]
  wire [10:0] _d_first_beats1_decode_T_1 = 11'hf << io_in_d_bits_size; // @[package.scala 234:77]
  wire [3:0] _d_first_beats1_decode_T_3 = ~_d_first_beats1_decode_T_1[3:0]; // @[package.scala 234:46]
  wire  d_first_beats1_decode = _d_first_beats1_decode_T_3[3]; // @[Edges.scala 219:59]
  wire  d_first_beats1_opdata = io_in_d_bits_opcode[0]; // @[Edges.scala 105:36]
  wire  d_first_beats1 = d_first_beats1_opdata & d_first_beats1_decode; // @[Edges.scala 220:14]
  reg  d_first_counter; // @[Edges.scala 228:27]
  wire  d_first_counter1 = d_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  d_first = ~d_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  reg [1:0] param_1; // @[Monitor.scala 536:22]
  reg [2:0] size_1; // @[Monitor.scala 537:22]
  reg [4:0] sink; // @[Monitor.scala 539:22]
  reg  denied; // @[Monitor.scala 540:22]
  wire  _T_992 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_993 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  wire  _T_997 = io_in_d_bits_param == param_1; // @[Monitor.scala 543:29]
  wire  _T_1001 = io_in_d_bits_size == size_1; // @[Monitor.scala 544:29]
  wire  _T_1009 = io_in_d_bits_sink == sink; // @[Monitor.scala 546:29]
  wire  _T_1013 = io_in_d_bits_denied == denied; // @[Monitor.scala 547:29]
  wire  _b_first_T = io_in_b_ready & io_in_b_valid; // @[Decoupled.scala 52:35]
  reg  b_first_counter; // @[Edges.scala 228:27]
  wire  b_first_counter1 = b_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  b_first = ~b_first_counter; // @[Edges.scala 230:25]
  reg [1:0] param_2; // @[Monitor.scala 408:22]
  reg [31:0] address_1; // @[Monitor.scala 411:22]
  wire  _T_1020 = io_in_b_valid & ~b_first; // @[Monitor.scala 412:19]
  wire  _T_1025 = io_in_b_bits_param == param_2; // @[Monitor.scala 414:32]
  wire  _T_1037 = io_in_b_bits_address == address_1; // @[Monitor.scala 417:32]
  wire  _c_first_T = io_in_c_ready & io_in_c_valid; // @[Decoupled.scala 52:35]
  wire  c_first_beats1_decode = is_aligned_mask_2[3]; // @[Edges.scala 219:59]
  wire  c_first_beats1_opdata = io_in_c_bits_opcode[0]; // @[Edges.scala 101:36]
  wire  c_first_beats1 = c_first_beats1_opdata & c_first_beats1_decode; // @[Edges.scala 220:14]
  reg  c_first_counter; // @[Edges.scala 228:27]
  wire  c_first_counter1 = c_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  c_first = ~c_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode_3; // @[Monitor.scala 512:22]
  reg [2:0] param_3; // @[Monitor.scala 513:22]
  reg [2:0] size_3; // @[Monitor.scala 514:22]
  reg  source_3; // @[Monitor.scala 515:22]
  reg [31:0] address_2; // @[Monitor.scala 516:22]
  wire  _T_1044 = io_in_c_valid & ~c_first; // @[Monitor.scala 517:19]
  wire  _T_1045 = io_in_c_bits_opcode == opcode_3; // @[Monitor.scala 518:32]
  wire  _T_1049 = io_in_c_bits_param == param_3; // @[Monitor.scala 519:32]
  wire  _T_1053 = io_in_c_bits_size == size_3; // @[Monitor.scala 520:32]
  wire  _T_1057 = io_in_c_bits_source == source_3; // @[Monitor.scala 521:32]
  wire  _T_1061 = io_in_c_bits_address == address_2; // @[Monitor.scala 522:32]
  reg  inflight; // @[Monitor.scala 611:27]
  reg [3:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [3:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg  a_first_counter_1; // @[Edges.scala 228:27]
  wire  a_first_counter1_1 = a_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  a_first_1 = ~a_first_counter_1; // @[Edges.scala 230:25]
  reg  d_first_counter_1; // @[Edges.scala 228:27]
  wire  d_first_counter1_1 = d_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = ~d_first_counter_1; // @[Edges.scala 230:25]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [15:0] _GEN_80 = {{12'd0}, inflight_opcodes}; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_6 = _GEN_80 & _a_opcode_lookup_T_5; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[15:1]}; // @[Monitor.scala 634:152]
  wire [15:0] _GEN_87 = {{12'd0}, inflight_sizes}; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_6 = _GEN_87 & _a_opcode_lookup_T_5; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[15:1]}; // @[Monitor.scala 638:144]
  wire  _T_1067 = io_in_a_valid & a_first_1; // @[Monitor.scala 648:26]
  wire [1:0] _a_set_wo_ready_T = 2'h1 << io_in_a_bits_source; // @[OneHot.scala 57:35]
  wire [1:0] _GEN_27 = io_in_a_valid & a_first_1 ? _a_set_wo_ready_T : 2'h0; // @[Monitor.scala 648:71 649:22]
  wire  _T_1070 = _a_first_T & a_first_1; // @[Monitor.scala 652:27]
  wire [3:0] _a_opcodes_set_interm_T = {io_in_a_bits_opcode, 1'h0}; // @[Monitor.scala 654:53]
  wire [3:0] _a_opcodes_set_interm_T_1 = _a_opcodes_set_interm_T | 4'h1; // @[Monitor.scala 654:61]
  wire [3:0] _a_sizes_set_interm_T = {io_in_a_bits_size, 1'h0}; // @[Monitor.scala 655:51]
  wire [3:0] _a_sizes_set_interm_T_1 = _a_sizes_set_interm_T | 4'h1; // @[Monitor.scala 655:59]
  wire [2:0] _GEN_89 = {io_in_a_bits_source, 2'h0}; // @[Monitor.scala 656:79]
  wire [3:0] _a_opcodes_set_T = {{1'd0}, _GEN_89}; // @[Monitor.scala 656:79]
  wire [3:0] a_opcodes_set_interm = _a_first_T & a_first_1 ? _a_opcodes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 654:28]
  wire [18:0] _GEN_783 = {{15'd0}, a_opcodes_set_interm}; // @[Monitor.scala 656:54]
  wire [18:0] _a_opcodes_set_T_1 = _GEN_783 << _a_opcodes_set_T; // @[Monitor.scala 656:54]
  wire [3:0] a_sizes_set_interm = _a_first_T & a_first_1 ? _a_sizes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 655:28]
  wire [18:0] _GEN_784 = {{15'd0}, a_sizes_set_interm}; // @[Monitor.scala 657:52]
  wire [18:0] _a_sizes_set_T_1 = _GEN_784 << _a_opcodes_set_T; // @[Monitor.scala 657:52]
  wire  _T_1074 = ~(inflight >> io_in_a_bits_source); // @[Monitor.scala 658:17]
  wire [1:0] _GEN_28 = _a_first_T & a_first_1 ? _a_set_wo_ready_T : 2'h0; // @[Monitor.scala 652:72 653:28]
  wire [18:0] _GEN_31 = _a_first_T & a_first_1 ? _a_opcodes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 656:28]
  wire [18:0] _GEN_32 = _a_first_T & a_first_1 ? _a_sizes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 657:28]
  wire  _T_1078 = io_in_d_valid & d_first_1; // @[Monitor.scala 671:26]
  wire  _T_1080 = ~_T_369; // @[Monitor.scala 671:74]
  wire  _T_1081 = io_in_d_valid & d_first_1 & ~_T_369; // @[Monitor.scala 671:71]
  wire [1:0] _GEN_33 = io_in_d_valid & d_first_1 & ~_T_369 ? 2'h1 : 2'h0; // @[Monitor.scala 671:90 672:22]
  wire [30:0] _d_opcodes_clr_T_5 = {{15'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [1:0] _GEN_34 = _d_first_T & d_first_1 & _T_1080 ? 2'h1 : 2'h0; // @[Monitor.scala 675:91 676:21]
  wire [30:0] _GEN_35 = _d_first_T & d_first_1 & _T_1080 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 675:91 677:21]
  wire  same_cycle_resp = _T_1067 & _source_ok_T; // @[Monitor.scala 681:88]
  wire  _T_1093 = inflight | same_cycle_resp; // @[Monitor.scala 682:49]
  wire [2:0] _GEN_39 = 3'h2 == io_in_a_bits_opcode ? 3'h1 : 3'h0; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_40 = 3'h3 == io_in_a_bits_opcode ? 3'h1 : _GEN_39; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_41 = 3'h4 == io_in_a_bits_opcode ? 3'h1 : _GEN_40; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_42 = 3'h5 == io_in_a_bits_opcode ? 3'h2 : _GEN_41; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_43 = 3'h6 == io_in_a_bits_opcode ? 3'h4 : _GEN_42; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_44 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_43; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_51 = 3'h6 == io_in_a_bits_opcode ? 3'h5 : _GEN_42; // @[Monitor.scala 686:{39,39}]
  wire [2:0] _GEN_52 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_51; // @[Monitor.scala 686:{39,39}]
  wire  _T_1098 = io_in_d_bits_opcode == _GEN_52; // @[Monitor.scala 686:39]
  wire  _T_1099 = io_in_d_bits_opcode == _GEN_44 | _T_1098; // @[Monitor.scala 685:77]
  wire  _T_1103 = io_in_a_bits_size == io_in_d_bits_size; // @[Monitor.scala 687:36]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_55 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_56 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_55; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_57 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_56; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_58 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_57; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_59 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_58; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_60 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_59; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_67 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_58; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_68 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_67; // @[Monitor.scala 690:{38,38}]
  wire  _T_1110 = io_in_d_bits_opcode == _GEN_68; // @[Monitor.scala 690:38]
  wire  _T_1111 = io_in_d_bits_opcode == _GEN_60 | _T_1110; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire [3:0] _GEN_91 = {{1'd0}, io_in_d_bits_size}; // @[Monitor.scala 691:36]
  wire  _T_1115 = _GEN_91 == a_size_lookup; // @[Monitor.scala 691:36]
  wire  _T_1125 = _T_1078 & a_first_1 & io_in_a_valid & _source_ok_T & _T_1080; // @[Monitor.scala 694:116]
  wire  _T_1126 = ~io_in_d_ready; // @[Monitor.scala 695:15]
  wire  _T_1127 = ~io_in_d_ready | io_in_a_ready; // @[Monitor.scala 695:32]
  wire  a_set_wo_ready = _GEN_27[0];
  wire  d_clr_wo_ready = _GEN_33[0];
  wire  _T_1134 = a_set_wo_ready != d_clr_wo_ready | ~(|a_set_wo_ready); // @[Monitor.scala 699:48]
  wire  a_set = _GEN_28[0];
  wire  d_clr = _GEN_34[0];
  wire [3:0] a_opcodes_set = _GEN_31[3:0];
  wire [3:0] _inflight_opcodes_T = inflight_opcodes | a_opcodes_set; // @[Monitor.scala 703:43]
  wire [3:0] d_opcodes_clr = _GEN_35[3:0];
  wire [3:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [3:0] _inflight_opcodes_T_2 = _inflight_opcodes_T & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [3:0] a_sizes_set = _GEN_32[3:0];
  wire [3:0] _inflight_sizes_T = inflight_sizes | a_sizes_set; // @[Monitor.scala 704:39]
  wire [3:0] _inflight_sizes_T_2 = _inflight_sizes_T & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [31:0] watchdog; // @[Monitor.scala 706:27]
  wire  _T_1143 = ~(|inflight) | plusarg_reader_out == 32'h0 | watchdog < plusarg_reader_out; // @[Monitor.scala 709:47]
  wire [31:0] _watchdog_T_1 = watchdog + 32'h1; // @[Monitor.scala 711:26]
  reg  inflight_1; // @[Monitor.scala 723:35]
  reg [3:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg  c_first_counter_1; // @[Edges.scala 228:27]
  wire  c_first_counter1_1 = c_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  c_first_1 = ~c_first_counter_1; // @[Edges.scala 230:25]
  reg  d_first_counter_2; // @[Edges.scala 228:27]
  wire  d_first_counter1_2 = d_first_counter_2 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = ~d_first_counter_2; // @[Edges.scala 230:25]
  wire [15:0] _GEN_92 = {{12'd0}, inflight_sizes_1}; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_6 = _GEN_92 & _a_opcode_lookup_T_5; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[15:1]}; // @[Monitor.scala 747:146]
  wire  _T_1153 = io_in_c_bits_opcode[2] & io_in_c_bits_opcode[1]; // @[Edges.scala 67:40]
  wire  _T_1154 = io_in_c_valid & c_first_1 & _T_1153; // @[Monitor.scala 756:37]
  wire [1:0] _c_set_wo_ready_T = 2'h1 << io_in_c_bits_source; // @[OneHot.scala 57:35]
  wire [1:0] _GEN_72 = io_in_c_valid & c_first_1 & _T_1153 ? _c_set_wo_ready_T : 2'h0; // @[Monitor.scala 756:71 757:22]
  wire  _T_1160 = _c_first_T & c_first_1 & _T_1153; // @[Monitor.scala 760:38]
  wire [3:0] _c_sizes_set_interm_T = {io_in_c_bits_size, 1'h0}; // @[Monitor.scala 763:51]
  wire [3:0] _c_sizes_set_interm_T_1 = _c_sizes_set_interm_T | 4'h1; // @[Monitor.scala 763:59]
  wire [2:0] _GEN_94 = {io_in_c_bits_source, 2'h0}; // @[Monitor.scala 765:77]
  wire [3:0] _c_sizes_set_T = {{1'd0}, _GEN_94}; // @[Monitor.scala 765:77]
  wire [3:0] c_sizes_set_interm = _c_first_T & c_first_1 & _T_1153 ? _c_sizes_set_interm_T_1 : 4'h0; // @[Monitor.scala 760:72 763:28]
  wire [18:0] _GEN_785 = {{15'd0}, c_sizes_set_interm}; // @[Monitor.scala 765:52]
  wire [18:0] _c_sizes_set_T_1 = _GEN_785 << _c_sizes_set_T; // @[Monitor.scala 765:52]
  wire  _T_1163 = ~(inflight_1 >> io_in_c_bits_source); // @[Monitor.scala 766:17]
  wire [1:0] _GEN_73 = _c_first_T & c_first_1 & _T_1153 ? _c_set_wo_ready_T : 2'h0; // @[Monitor.scala 760:72 761:28]
  wire [18:0] _GEN_77 = _c_first_T & c_first_1 & _T_1153 ? _c_sizes_set_T_1 : 19'h0; // @[Monitor.scala 760:72 765:28]
  wire  _T_1167 = io_in_d_valid & d_first_2; // @[Monitor.scala 779:26]
  wire  _T_1169 = io_in_d_valid & d_first_2 & _T_369; // @[Monitor.scala 779:71]
  wire [1:0] _GEN_78 = io_in_d_valid & d_first_2 & _T_369 ? 2'h1 : 2'h0; // @[Monitor.scala 779:89 780:22]
  wire [1:0] _GEN_79 = _d_first_T & d_first_2 & _T_369 ? 2'h1 : 2'h0; // @[Monitor.scala 783:90 784:21]
  wire [30:0] _GEN_81 = _d_first_T & d_first_2 & _T_369 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 783:90 786:21]
  wire  same_cycle_resp_1 = _T_1154 & _source_ok_T_2; // @[Monitor.scala 790:88]
  wire  _T_1179 = inflight_1 | same_cycle_resp_1; // @[Monitor.scala 791:49]
  wire  _T_1183 = io_in_d_bits_size == io_in_c_bits_size; // @[Monitor.scala 793:36]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_1187 = _GEN_91 == c_size_lookup; // @[Monitor.scala 795:36]
  wire  _T_1196 = _T_1167 & c_first_1 & io_in_c_valid & _source_ok_T_2 & _T_369; // @[Monitor.scala 799:116]
  wire  _T_1198 = _T_1126 | io_in_c_ready; // @[Monitor.scala 800:32]
  wire  c_set_wo_ready = _GEN_72[0];
  wire  _T_1202 = |c_set_wo_ready; // @[Monitor.scala 804:28]
  wire  d_clr_wo_ready_1 = _GEN_78[0];
  wire  _T_1203 = c_set_wo_ready != d_clr_wo_ready_1; // @[Monitor.scala 805:31]
  wire  c_set = _GEN_73[0];
  wire  d_clr_1 = _GEN_79[0];
  wire [3:0] c_sizes_set = _GEN_77[3:0];
  wire [3:0] _inflight_sizes_T_3 = inflight_sizes_1 | c_sizes_set; // @[Monitor.scala 811:41]
  wire [3:0] d_sizes_clr_1 = _GEN_81[3:0];
  wire [3:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [3:0] _inflight_sizes_T_5 = _inflight_sizes_T_3 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  reg [31:0] watchdog_1; // @[Monitor.scala 813:27]
  wire  _T_1212 = ~(|inflight_1) | plusarg_reader_1_out == 32'h0 | watchdog_1 < plusarg_reader_1_out; // @[Monitor.scala 816:47]
  wire [31:0] _watchdog_T_3 = watchdog_1 + 32'h1; // @[Monitor.scala 818:26]
  reg [31:0] inflight_2; // @[Monitor.scala 823:27]
  reg  d_first_counter_3; // @[Edges.scala 228:27]
  wire  d_first_counter1_3 = d_first_counter_3 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_3 = ~d_first_counter_3; // @[Edges.scala 230:25]
  wire  _T_1224 = io_in_d_bits_opcode[2] & ~io_in_d_bits_opcode[1]; // @[Edges.scala 70:40]
  wire  _T_1225 = _d_first_T & d_first_3 & _T_1224; // @[Monitor.scala 829:38]
  wire [31:0] _d_set_T = 32'h1 << io_in_d_bits_sink; // @[OneHot.scala 57:35]
  wire [31:0] _T_1226 = inflight_2 >> io_in_d_bits_sink; // @[Monitor.scala 831:23]
  wire  _T_1228 = ~_T_1226[0]; // @[Monitor.scala 831:14]
  wire [31:0] d_set = _d_first_T & d_first_3 & _T_1224 ? _d_set_T : 32'h0; // @[Monitor.scala 829:72 830:13]
  wire [31:0] _e_clr_T = 32'h1 << io_in_e_bits_sink; // @[OneHot.scala 57:35]
  wire [31:0] _T_1235 = d_set | inflight_2; // @[Monitor.scala 837:24]
  wire [31:0] _T_1236 = _T_1235 >> io_in_e_bits_sink; // @[Monitor.scala 837:35]
  wire [31:0] e_clr = io_in_e_valid ? _e_clr_T : 32'h0; // @[Monitor.scala 835:73 836:13]
  wire [31:0] _inflight_T_6 = inflight_2 | d_set; // @[Monitor.scala 842:27]
  wire [31:0] _inflight_T_7 = ~e_clr; // @[Monitor.scala 842:38]
  wire [31:0] _inflight_T_8 = _inflight_T_6 & _inflight_T_7; // @[Monitor.scala 842:36]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        a_first_counter <= a_first_beats1;
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      opcode <= io_in_a_bits_opcode; // @[Monitor.scala 397:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      param <= io_in_a_bits_param; // @[Monitor.scala 398:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      size <= io_in_a_bits_size; // @[Monitor.scala 399:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      source <= io_in_a_bits_source; // @[Monitor.scala 400:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      address <= io_in_a_bits_address; // @[Monitor.scala 401:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        d_first_counter <= d_first_beats1;
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      param_1 <= io_in_d_bits_param; // @[Monitor.scala 551:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      size_1 <= io_in_d_bits_size; // @[Monitor.scala 552:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      sink <= io_in_d_bits_sink; // @[Monitor.scala 554:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      denied <= io_in_d_bits_denied; // @[Monitor.scala 555:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      b_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_b_first_T) begin // @[Edges.scala 234:17]
      if (b_first) begin // @[Edges.scala 235:21]
        b_first_counter <= 1'h0;
      end else begin
        b_first_counter <= b_first_counter1;
      end
    end
    if (_b_first_T & b_first) begin // @[Monitor.scala 419:32]
      param_2 <= io_in_b_bits_param; // @[Monitor.scala 421:15]
    end
    if (_b_first_T & b_first) begin // @[Monitor.scala 419:32]
      address_1 <= io_in_b_bits_address; // @[Monitor.scala 424:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      c_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_c_first_T) begin // @[Edges.scala 234:17]
      if (c_first) begin // @[Edges.scala 235:21]
        c_first_counter <= c_first_beats1;
      end else begin
        c_first_counter <= c_first_counter1;
      end
    end
    if (_c_first_T & c_first) begin // @[Monitor.scala 524:32]
      opcode_3 <= io_in_c_bits_opcode; // @[Monitor.scala 525:15]
    end
    if (_c_first_T & c_first) begin // @[Monitor.scala 524:32]
      param_3 <= io_in_c_bits_param; // @[Monitor.scala 526:15]
    end
    if (_c_first_T & c_first) begin // @[Monitor.scala 524:32]
      size_3 <= io_in_c_bits_size; // @[Monitor.scala 527:15]
    end
    if (_c_first_T & c_first) begin // @[Monitor.scala 524:32]
      source_3 <= io_in_c_bits_source; // @[Monitor.scala 528:15]
    end
    if (_c_first_T & c_first) begin // @[Monitor.scala 524:32]
      address_2 <= io_in_c_bits_address; // @[Monitor.scala 529:15]
    end
    if (reset) begin // @[Monitor.scala 611:27]
      inflight <= 1'h0; // @[Monitor.scala 611:27]
    end else begin
      inflight <= (inflight | a_set) & ~d_clr; // @[Monitor.scala 702:14]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 4'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 4'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first_1) begin // @[Edges.scala 235:21]
        a_first_counter_1 <= a_first_beats1;
      end else begin
        a_first_counter_1 <= a_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        d_first_counter_1 <= d_first_beats1;
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 706:27]
      watchdog <= 32'h0; // @[Monitor.scala 706:27]
    end else if (_a_first_T | _d_first_T) begin // @[Monitor.scala 712:47]
      watchdog <= 32'h0; // @[Monitor.scala 712:58]
    end else begin
      watchdog <= _watchdog_T_1; // @[Monitor.scala 711:14]
    end
    if (reset) begin // @[Monitor.scala 723:35]
      inflight_1 <= 1'h0; // @[Monitor.scala 723:35]
    end else begin
      inflight_1 <= (inflight_1 | c_set) & ~d_clr_1; // @[Monitor.scala 809:22]
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 4'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      c_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_c_first_T) begin // @[Edges.scala 234:17]
      if (c_first_1) begin // @[Edges.scala 235:21]
        c_first_counter_1 <= c_first_beats1;
      end else begin
        c_first_counter_1 <= c_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        d_first_counter_2 <= d_first_beats1;
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    if (reset) begin // @[Monitor.scala 813:27]
      watchdog_1 <= 32'h0; // @[Monitor.scala 813:27]
    end else if (_c_first_T | _d_first_T) begin // @[Monitor.scala 819:47]
      watchdog_1 <= 32'h0; // @[Monitor.scala 819:58]
    end else begin
      watchdog_1 <= _watchdog_T_3; // @[Monitor.scala 818:14]
    end
    if (reset) begin // @[Monitor.scala 823:27]
      inflight_2 <= 32'h0; // @[Monitor.scala 823:27]
    end else begin
      inflight_2 <= _inflight_T_8; // @[Monitor.scala 842:14]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_3 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_3) begin // @[Edges.scala 235:21]
        d_first_counter_3 <= d_first_beats1;
      end else begin
        d_first_counter_3 <= d_first_counter1_3;
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~_T_31) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_31 & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~_T_29) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock from a client which does not support Probe (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_29 & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & _T_5) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock carries invalid source ID (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_5 & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~_mask_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock smaller than a beat (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_mask_T & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock address not aligned to size (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~_T_61) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock carries invalid grow param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_61 & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~_T_66) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock contains invalid mask (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_66 & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~_T_70) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock is corrupt (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_70 & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_74 & ~reset & ~_T_31) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_31 & (io_in_a_valid & _T_74 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_74 & ~reset & ~_T_29) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm from a client which does not support Probe (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_29 & (io_in_a_valid & _T_74 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_74 & ~reset & _T_5) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm carries invalid source ID (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_5 & (io_in_a_valid & _T_74 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_74 & ~reset & ~_mask_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm smaller than a beat (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_mask_T & (io_in_a_valid & _T_74 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_74 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm address not aligned to size (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_74 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_74 & ~reset & ~_T_61) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm carries invalid grow param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_61 & (io_in_a_valid & _T_74 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_74 & ~reset & ~_T_124) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm requests NtoB (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_124 & (io_in_a_valid & _T_74 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_74 & ~reset & ~_T_66) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm contains invalid mask (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_66 & (io_in_a_valid & _T_74 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_74 & ~reset & ~_T_70) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm is corrupt (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_70 & (io_in_a_valid & _T_74 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_137 & ~reset & _T_5) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which master claims it can't emit (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_5 & (io_in_a_valid & _T_137 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_137 & ~reset & ~_T_156) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which slave claims it can't support (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_156 & (io_in_a_valid & _T_137 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_137 & ~reset & _T_5) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get carries invalid source ID (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_5 & (io_in_a_valid & _T_137 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_137 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get address not aligned to size (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_137 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_137 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get carries invalid param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_137 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_137 & ~reset & ~_T_171) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get contains invalid mask (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_171 & (io_in_a_valid & _T_137 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_137 & ~reset & ~_T_70) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get is corrupt (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_70 & (io_in_a_valid & _T_137 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_179 & ~reset & ~_T_197) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutFull type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_197 & (io_in_a_valid & _T_179 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_179 & ~reset & _T_5) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull carries invalid source ID (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_5 & (io_in_a_valid & _T_179 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_179 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull address not aligned to size (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_179 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_179 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull carries invalid param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_179 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_179 & ~reset & ~_T_171) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull contains invalid mask (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_171 & (io_in_a_valid & _T_179 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_215 & ~reset & ~_T_197) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutPartial type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_197 & (io_in_a_valid & _T_215 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_215 & ~reset & _T_5) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial carries invalid source ID (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_5 & (io_in_a_valid & _T_215 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_215 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial address not aligned to size (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_215 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_215 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial carries invalid param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_215 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_215 & ~reset & ~_T_249) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial contains invalid mask (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_249 & (io_in_a_valid & _T_215 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_253 & ~reset & ~_T_271) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Arithmetic type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_271 & (io_in_a_valid & _T_253 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_253 & ~reset & _T_5) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic carries invalid source ID (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_5 & (io_in_a_valid & _T_253 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_253 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic address not aligned to size (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_253 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_253 & ~reset & ~_T_281) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic carries invalid opcode param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_281 & (io_in_a_valid & _T_253 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_253 & ~reset & ~_T_171) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic contains invalid mask (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_171 & (io_in_a_valid & _T_253 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_289 & ~reset & ~_T_271) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Logical type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_271 & (io_in_a_valid & _T_289 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_289 & ~reset & _T_5) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical carries invalid source ID (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_5 & (io_in_a_valid & _T_289 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_289 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical address not aligned to size (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_289 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_289 & ~reset & ~_T_317) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical carries invalid opcode param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_317 & (io_in_a_valid & _T_289 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_289 & ~reset & ~_T_171) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical contains invalid mask (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_171 & (io_in_a_valid & _T_289 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_325 & ~reset & ~_T_197) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Hint type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_197 & (io_in_a_valid & _T_325 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_325 & ~reset & _T_5) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint carries invalid source ID (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_5 & (io_in_a_valid & _T_325 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_325 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint address not aligned to size (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_325 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_325 & ~reset & ~_T_353) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint carries invalid opcode param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_353 & (io_in_a_valid & _T_325 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_325 & ~reset & ~_T_171) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint contains invalid mask (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_171 & (io_in_a_valid & _T_325 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_325 & ~reset & ~_T_70) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint is corrupt (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_70 & (io_in_a_valid & _T_325 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_365) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_365 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_369 & _T_2 & ~_T_373) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck smaller than a beat (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_373 & (io_in_d_valid & _T_369 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_369 & _T_2 & ~_T_377) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseeAck carries invalid param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_377 & (io_in_d_valid & _T_369 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_369 & _T_2 & ~_T_381) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is corrupt (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_381 & (io_in_d_valid & _T_369 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_369 & _T_2 & ~_T_385) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is denied (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_385 & (io_in_d_valid & _T_369 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_389 & _T_2 & ~_T_373) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant smaller than a beat (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_373 & (io_in_d_valid & _T_389 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_389 & _T_2 & ~_T_400) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid cap param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_400 & (io_in_d_valid & _T_389 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_389 & _T_2 & ~_T_404) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries toN param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_404 & (io_in_d_valid & _T_389 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_389 & _T_2 & ~_T_381) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant is corrupt (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_381 & (io_in_d_valid & _T_389 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_389 & _T_2 & ~_T_385) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant is denied (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_385 & (io_in_d_valid & _T_389 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_417 & _T_2 & ~_T_373) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData smaller than a beat (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_373 & (io_in_d_valid & _T_417 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_417 & _T_2 & ~_T_400) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid cap param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_400 & (io_in_d_valid & _T_417 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_417 & _T_2 & ~_T_404) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries toN param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_404 & (io_in_d_valid & _T_417 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_417 & _T_2 & ~_T_437) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData is denied but not corrupt (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_437 & (io_in_d_valid & _T_417 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_417 & _T_2 & ~_T_385) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData is denied (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_385 & (io_in_d_valid & _T_417 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_446 & _T_2 & ~_T_377) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck carries invalid param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_377 & (io_in_d_valid & _T_446 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_446 & _T_2 & ~_T_381) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck is corrupt (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_381 & (io_in_d_valid & _T_446 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_446 & _T_2 & ~_T_385) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck is denied (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_385 & (io_in_d_valid & _T_446 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_463 & _T_2 & ~_T_377) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData carries invalid param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_377 & (io_in_d_valid & _T_463 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_463 & _T_2 & ~_T_437) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData is denied but not corrupt (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_437 & (io_in_d_valid & _T_463 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_463 & _T_2 & ~_T_385) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData is denied (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_385 & (io_in_d_valid & _T_463 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_481 & _T_2 & ~_T_377) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck carries invalid param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_377 & (io_in_d_valid & _T_481 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_481 & _T_2 & ~_T_381) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck is corrupt (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_381 & (io_in_d_valid & _T_481 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_481 & _T_2 & ~_T_385) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck is denied (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_385 & (io_in_d_valid & _T_481 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_2 & ~_address_ok_T_4) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel carries Probe type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_4 & (io_in_b_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_2 & ~_address_ok_T_4) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Probe carries unmanaged address (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_4 & (io_in_b_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_2 & ~is_aligned_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Probe address not aligned to size (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_1 & (io_in_b_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_2 & ~_T_539) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Probe carries invalid cap param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_539 & (io_in_b_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_770 & ~reset & ~_address_ok_T_9) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAck carries unmanaged address (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_9 & (io_in_c_valid & _T_770 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_770 & ~reset & _T_760) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAck carries invalid source ID (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_760 & (io_in_c_valid & _T_770 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_770 & ~reset & ~_T_777) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAck smaller than a beat (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_777 & (io_in_c_valid & _T_770 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_770 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAck address not aligned to size (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_770 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_770 & ~reset & ~_T_784) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAck carries invalid report param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_784 & (io_in_c_valid & _T_770 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_770 & ~reset & ~_T_788) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAck is corrupt (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_788 & (io_in_c_valid & _T_770 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_792 & ~reset & ~_address_ok_T_9) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAckData carries unmanaged address (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_9 & (io_in_c_valid & _T_792 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_792 & ~reset & _T_760) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAckData carries invalid source ID (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_760 & (io_in_c_valid & _T_792 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_792 & ~reset & ~_T_777) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAckData smaller than a beat (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_777 & (io_in_c_valid & _T_792 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_792 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAckData address not aligned to size (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_792 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_792 & ~reset & ~_T_784) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAckData carries invalid report param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_784 & (io_in_c_valid & _T_792 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_810 & ~reset & ~_T_826) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel carries Release type unsupported by manager (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_826 & (io_in_c_valid & _T_810 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_810 & ~reset & ~_T_824) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel carries Release from a client which does not support Probe (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_824 & (io_in_c_valid & _T_810 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_810 & ~reset & _T_760) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel Release carries invalid source ID (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_760 & (io_in_c_valid & _T_810 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_810 & ~reset & ~_T_777) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel Release smaller than a beat (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_777 & (io_in_c_valid & _T_810 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_810 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel Release address not aligned to size (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_810 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_810 & ~reset & ~_T_784) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel Release carries invalid report param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_784 & (io_in_c_valid & _T_810 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_810 & ~reset & ~_T_788) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel Release is corrupt (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_788 & (io_in_c_valid & _T_810 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_864 & ~reset & ~_T_826) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel carries ReleaseData type unsupported by manager (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_826 & (io_in_c_valid & _T_864 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_864 & ~reset & ~_T_824) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel carries Release from a client which does not support Probe (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_824 & (io_in_c_valid & _T_864 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_864 & ~reset & _T_760) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ReleaseData carries invalid source ID (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_760 & (io_in_c_valid & _T_864 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_864 & ~reset & ~_T_777) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ReleaseData smaller than a beat (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_777 & (io_in_c_valid & _T_864 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_864 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ReleaseData address not aligned to size (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_864 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_864 & ~reset & ~_T_784) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ReleaseData carries invalid report param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_784 & (io_in_c_valid & _T_864 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_914 & ~reset & ~_address_ok_T_9) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAck carries unmanaged address (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_9 & (io_in_c_valid & _T_914 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_914 & ~reset & _T_760) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAck carries invalid source ID (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_760 & (io_in_c_valid & _T_914 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_914 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAck address not aligned to size (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_914 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_914 & ~reset & ~_T_924) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAck carries invalid param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_924 & (io_in_c_valid & _T_914 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_914 & ~reset & ~_T_788) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAck is corrupt (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_788 & (io_in_c_valid & _T_914 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_932 & ~reset & ~_address_ok_T_9) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAckData carries unmanaged address (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_9 & (io_in_c_valid & _T_932 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_932 & ~reset & _T_760) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAckData carries invalid source ID (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_760 & (io_in_c_valid & _T_932 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_932 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAckData address not aligned to size (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_932 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_932 & ~reset & ~_T_924) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAckData carries invalid param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_924 & (io_in_c_valid & _T_932 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_946 & ~reset & ~_address_ok_T_9) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel HintAck carries unmanaged address (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_9 & (io_in_c_valid & _T_946 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_946 & ~reset & _T_760) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel HintAck carries invalid source ID (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_760 & (io_in_c_valid & _T_946 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_946 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel HintAck address not aligned to size (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_946 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_946 & ~reset & ~_T_924) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel HintAck carries invalid param (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_924 & (io_in_c_valid & _T_946 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_946 & ~reset & ~_T_788) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel HintAck is corrupt (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_788 & (io_in_c_valid & _T_946 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_968 & ~reset & ~_T_969) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel opcode changed within multibeat operation (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_969 & (_T_968 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_968 & ~reset & ~_T_973) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel param changed within multibeat operation (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_973 & (_T_968 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_968 & ~reset & ~_T_977) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel size changed within multibeat operation (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_977 & (_T_968 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_968 & ~reset & ~_T_981) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel source changed within multibeat operation (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_981 & (_T_968 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_968 & ~reset & ~_T_985) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel address changed with multibeat operation (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_985 & (_T_968 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_992 & _T_2 & ~_T_993) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_993 & (_T_992 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_992 & _T_2 & ~_T_997) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel param changed within multibeat operation (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_997 & (_T_992 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_992 & _T_2 & ~_T_1001) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel size changed within multibeat operation (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1001 & (_T_992 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_992 & _T_2 & ~_T_1009) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel sink changed with multibeat operation (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1009 & (_T_992 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_992 & _T_2 & ~_T_1013) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel denied changed with multibeat operation (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1013 & (_T_992 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1020 & ~reset & ~_T_1025) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel param changed within multibeat operation (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1025 & (_T_1020 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1020 & ~reset & ~_T_1037) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel addresss changed with multibeat operation (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1037 & (_T_1020 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1044 & ~reset & ~_T_1045) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel opcode changed within multibeat operation (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1045 & (_T_1044 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1044 & ~reset & ~_T_1049) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel param changed within multibeat operation (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1049 & (_T_1044 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1044 & ~reset & ~_T_1053) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel size changed within multibeat operation (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1053 & (_T_1044 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1044 & ~reset & ~_T_1057) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel source changed within multibeat operation (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1057 & (_T_1044 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1044 & ~reset & ~_T_1061) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel address changed with multibeat operation (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1061 & (_T_1044 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1070 & ~reset & ~_T_1074) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel re-used a source ID (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1074 & (_T_1070 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1081 & _T_2 & ~_T_1093) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1093 & (_T_1081 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1081 & same_cycle_resp & _T_2 & ~_T_1099) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1099 & (_T_1081 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1081 & same_cycle_resp & _T_2 & ~_T_1103) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1103 & (_T_1081 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1081 & ~same_cycle_resp & _T_2 & ~_T_1111) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1111 & (_T_1081 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1081 & ~same_cycle_resp & _T_2 & ~_T_1115) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1115 & (_T_1081 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1125 & _T_2 & ~_T_1127) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1127 & (_T_1125 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_2 & ~_T_1134) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' and 'D' concurrent, despite minlatency 2 (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1134 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_1143) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1143 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1160 & ~reset & ~_T_1163) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel re-used a source ID (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1163 & (_T_1160 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1169 & _T_2 & ~_T_1179) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1179 & (_T_1169 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1169 & same_cycle_resp_1 & _T_2 & ~_T_1183) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1183 & (_T_1169 & same_cycle_resp_1 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1169 & ~same_cycle_resp_1 & _T_2 & ~_T_1187) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1187 & (_T_1169 & ~same_cycle_resp_1 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1196 & _T_2 & ~_T_1198) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1198 & (_T_1196 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1202 & _T_2 & ~_T_1203) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' and 'D' concurrent, despite minlatency 2 (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1203 & (_T_1202 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_1212) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1212 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1225 & _T_2 & ~_T_1228) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel re-used a sink ID (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1228 & (_T_1225 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_e_valid & ~reset & ~_T_1236[0]) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'E' channel acknowledged for nothing inflight (connected at Rift2Link.scala:77:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1236[0] & (io_in_e_valid & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  opcode = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  param = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  size = _RAND_3[2:0];
  _RAND_4 = {1{`RANDOM}};
  source = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  address = _RAND_5[31:0];
  _RAND_6 = {1{`RANDOM}};
  d_first_counter = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  opcode_1 = _RAND_7[2:0];
  _RAND_8 = {1{`RANDOM}};
  param_1 = _RAND_8[1:0];
  _RAND_9 = {1{`RANDOM}};
  size_1 = _RAND_9[2:0];
  _RAND_10 = {1{`RANDOM}};
  sink = _RAND_10[4:0];
  _RAND_11 = {1{`RANDOM}};
  denied = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  b_first_counter = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  param_2 = _RAND_13[1:0];
  _RAND_14 = {1{`RANDOM}};
  address_1 = _RAND_14[31:0];
  _RAND_15 = {1{`RANDOM}};
  c_first_counter = _RAND_15[0:0];
  _RAND_16 = {1{`RANDOM}};
  opcode_3 = _RAND_16[2:0];
  _RAND_17 = {1{`RANDOM}};
  param_3 = _RAND_17[2:0];
  _RAND_18 = {1{`RANDOM}};
  size_3 = _RAND_18[2:0];
  _RAND_19 = {1{`RANDOM}};
  source_3 = _RAND_19[0:0];
  _RAND_20 = {1{`RANDOM}};
  address_2 = _RAND_20[31:0];
  _RAND_21 = {1{`RANDOM}};
  inflight = _RAND_21[0:0];
  _RAND_22 = {1{`RANDOM}};
  inflight_opcodes = _RAND_22[3:0];
  _RAND_23 = {1{`RANDOM}};
  inflight_sizes = _RAND_23[3:0];
  _RAND_24 = {1{`RANDOM}};
  a_first_counter_1 = _RAND_24[0:0];
  _RAND_25 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_25[0:0];
  _RAND_26 = {1{`RANDOM}};
  watchdog = _RAND_26[31:0];
  _RAND_27 = {1{`RANDOM}};
  inflight_1 = _RAND_27[0:0];
  _RAND_28 = {1{`RANDOM}};
  inflight_sizes_1 = _RAND_28[3:0];
  _RAND_29 = {1{`RANDOM}};
  c_first_counter_1 = _RAND_29[0:0];
  _RAND_30 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_30[0:0];
  _RAND_31 = {1{`RANDOM}};
  watchdog_1 = _RAND_31[31:0];
  _RAND_32 = {1{`RANDOM}};
  inflight_2 = _RAND_32[31:0];
  _RAND_33 = {1{`RANDOM}};
  d_first_counter_3 = _RAND_33[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLMonitor_4(
  input         clock,
  input         reset,
  input         io_in_a_ready,
  input         io_in_a_valid,
  input  [2:0]  io_in_a_bits_opcode,
  input  [2:0]  io_in_a_bits_param,
  input  [2:0]  io_in_a_bits_size,
  input         io_in_a_bits_source,
  input  [31:0] io_in_a_bits_address,
  input  [7:0]  io_in_a_bits_mask,
  input         io_in_a_bits_corrupt,
  input         io_in_d_ready,
  input         io_in_d_valid,
  input  [2:0]  io_in_d_bits_opcode,
  input  [1:0]  io_in_d_bits_param,
  input  [2:0]  io_in_d_bits_size,
  input         io_in_d_bits_source,
  input  [4:0]  io_in_d_bits_sink,
  input         io_in_d_bits_denied,
  input         io_in_d_bits_corrupt
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire [10:0] _is_aligned_mask_T_1 = 11'hf << io_in_a_bits_size; // @[package.scala 234:77]
  wire [3:0] is_aligned_mask = ~_is_aligned_mask_T_1[3:0]; // @[package.scala 234:46]
  wire [31:0] _GEN_62 = {{28'd0}, is_aligned_mask}; // @[Edges.scala 20:16]
  wire [31:0] _is_aligned_T = io_in_a_bits_address & _GEN_62; // @[Edges.scala 20:16]
  wire  is_aligned = _is_aligned_T == 32'h0; // @[Edges.scala 20:24]
  wire [1:0] mask_sizeOH_shiftAmount = io_in_a_bits_size[1:0]; // @[OneHot.scala 63:49]
  wire [3:0] _mask_sizeOH_T_1 = 4'h1 << mask_sizeOH_shiftAmount; // @[OneHot.scala 64:12]
  wire [2:0] mask_sizeOH = _mask_sizeOH_T_1[2:0] | 3'h1; // @[Misc.scala 201:81]
  wire  _mask_T = io_in_a_bits_size >= 3'h3; // @[Misc.scala 205:21]
  wire  mask_size = mask_sizeOH[2]; // @[Misc.scala 208:26]
  wire  mask_bit = io_in_a_bits_address[2]; // @[Misc.scala 209:26]
  wire  mask_nbit = ~mask_bit; // @[Misc.scala 210:20]
  wire  mask_acc = _mask_T | mask_size & mask_nbit; // @[Misc.scala 214:29]
  wire  mask_acc_1 = _mask_T | mask_size & mask_bit; // @[Misc.scala 214:29]
  wire  mask_size_1 = mask_sizeOH[1]; // @[Misc.scala 208:26]
  wire  mask_bit_1 = io_in_a_bits_address[1]; // @[Misc.scala 209:26]
  wire  mask_nbit_1 = ~mask_bit_1; // @[Misc.scala 210:20]
  wire  mask_eq_2 = mask_nbit & mask_nbit_1; // @[Misc.scala 213:27]
  wire  mask_acc_2 = mask_acc | mask_size_1 & mask_eq_2; // @[Misc.scala 214:29]
  wire  mask_eq_3 = mask_nbit & mask_bit_1; // @[Misc.scala 213:27]
  wire  mask_acc_3 = mask_acc | mask_size_1 & mask_eq_3; // @[Misc.scala 214:29]
  wire  mask_eq_4 = mask_bit & mask_nbit_1; // @[Misc.scala 213:27]
  wire  mask_acc_4 = mask_acc_1 | mask_size_1 & mask_eq_4; // @[Misc.scala 214:29]
  wire  mask_eq_5 = mask_bit & mask_bit_1; // @[Misc.scala 213:27]
  wire  mask_acc_5 = mask_acc_1 | mask_size_1 & mask_eq_5; // @[Misc.scala 214:29]
  wire  mask_size_2 = mask_sizeOH[0]; // @[Misc.scala 208:26]
  wire  mask_bit_2 = io_in_a_bits_address[0]; // @[Misc.scala 209:26]
  wire  mask_nbit_2 = ~mask_bit_2; // @[Misc.scala 210:20]
  wire  mask_eq_6 = mask_eq_2 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_6 = mask_acc_2 | mask_size_2 & mask_eq_6; // @[Misc.scala 214:29]
  wire  mask_eq_7 = mask_eq_2 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_7 = mask_acc_2 | mask_size_2 & mask_eq_7; // @[Misc.scala 214:29]
  wire  mask_eq_8 = mask_eq_3 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_8 = mask_acc_3 | mask_size_2 & mask_eq_8; // @[Misc.scala 214:29]
  wire  mask_eq_9 = mask_eq_3 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_9 = mask_acc_3 | mask_size_2 & mask_eq_9; // @[Misc.scala 214:29]
  wire  mask_eq_10 = mask_eq_4 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_10 = mask_acc_4 | mask_size_2 & mask_eq_10; // @[Misc.scala 214:29]
  wire  mask_eq_11 = mask_eq_4 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_11 = mask_acc_4 | mask_size_2 & mask_eq_11; // @[Misc.scala 214:29]
  wire  mask_eq_12 = mask_eq_5 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_12 = mask_acc_5 | mask_size_2 & mask_eq_12; // @[Misc.scala 214:29]
  wire  mask_eq_13 = mask_eq_5 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_13 = mask_acc_5 | mask_size_2 & mask_eq_13; // @[Misc.scala 214:29]
  wire [7:0] mask = {mask_acc_13,mask_acc_12,mask_acc_11,mask_acc_10,mask_acc_9,mask_acc_8,mask_acc_7,mask_acc_6}; // @[Cat.scala 33:92]
  wire [32:0] _T_12 = {1'b0,$signed(io_in_a_bits_address)}; // @[Parameters.scala 137:49]
  wire  _T_20 = io_in_a_bits_opcode == 3'h6; // @[Monitor.scala 81:25]
  wire  _T_32 = 3'h4 == io_in_a_bits_size; // @[Parameters.scala 91:48]
  wire [32:0] _T_37 = $signed(_T_12) & 33'sh100000000; // @[Parameters.scala 137:52]
  wire  _T_38 = $signed(_T_37) == 33'sh0; // @[Parameters.scala 137:67]
  wire  _T_39 = _T_32 & _T_38; // @[Parameters.scala 670:56]
  wire  _T_70 = io_in_a_bits_param <= 3'h2; // @[Bundles.scala 108:27]
  wire [7:0] _T_74 = ~io_in_a_bits_mask; // @[Monitor.scala 88:18]
  wire  _T_75 = _T_74 == 8'h0; // @[Monitor.scala 88:31]
  wire  _T_79 = ~io_in_a_bits_corrupt; // @[Monitor.scala 89:18]
  wire  _T_83 = io_in_a_bits_opcode == 3'h7; // @[Monitor.scala 92:25]
  wire  _T_137 = io_in_a_bits_param != 3'h0; // @[Monitor.scala 99:31]
  wire  _T_150 = io_in_a_bits_opcode == 3'h4; // @[Monitor.scala 104:25]
  wire  _T_166 = io_in_a_bits_size <= 3'h4; // @[Parameters.scala 92:42]
  wire  _T_174 = _T_166 & _T_38; // @[Parameters.scala 670:56]
  wire  _T_185 = io_in_a_bits_param == 3'h0; // @[Monitor.scala 109:31]
  wire  _T_189 = io_in_a_bits_mask == mask; // @[Monitor.scala 110:30]
  wire  _T_197 = io_in_a_bits_opcode == 3'h0; // @[Monitor.scala 114:25]
  wire  _T_238 = io_in_a_bits_opcode == 3'h1; // @[Monitor.scala 122:25]
  wire [7:0] _T_275 = ~mask; // @[Monitor.scala 127:33]
  wire [7:0] _T_276 = io_in_a_bits_mask & _T_275; // @[Monitor.scala 127:31]
  wire  _T_277 = _T_276 == 8'h0; // @[Monitor.scala 127:40]
  wire  _T_281 = io_in_a_bits_opcode == 3'h2; // @[Monitor.scala 130:25]
  wire  _T_294 = io_in_a_bits_size <= 3'h3; // @[Parameters.scala 92:42]
  wire  _T_302 = _T_294 & _T_38; // @[Parameters.scala 670:56]
  wire  _T_314 = io_in_a_bits_param <= 3'h4; // @[Bundles.scala 138:33]
  wire  _T_322 = io_in_a_bits_opcode == 3'h3; // @[Monitor.scala 138:25]
  wire  _T_355 = io_in_a_bits_param <= 3'h3; // @[Bundles.scala 145:30]
  wire  _T_363 = io_in_a_bits_opcode == 3'h5; // @[Monitor.scala 146:25]
  wire  _T_396 = io_in_a_bits_param <= 3'h1; // @[Bundles.scala 158:28]
  wire  _T_408 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire  _T_412 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_416 = io_in_d_bits_size >= 3'h3; // @[Monitor.scala 312:27]
  wire  _T_420 = io_in_d_bits_param == 2'h0; // @[Monitor.scala 313:28]
  wire  _T_424 = ~io_in_d_bits_corrupt; // @[Monitor.scala 314:15]
  wire  _T_428 = ~io_in_d_bits_denied; // @[Monitor.scala 315:15]
  wire  _T_432 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_443 = io_in_d_bits_param <= 2'h2; // @[Bundles.scala 102:26]
  wire  _T_447 = io_in_d_bits_param != 2'h2; // @[Monitor.scala 323:28]
  wire  _T_460 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _T_480 = _T_428 | io_in_d_bits_corrupt; // @[Monitor.scala 334:30]
  wire  _T_489 = io_in_d_bits_opcode == 3'h0; // @[Monitor.scala 338:25]
  wire  _T_506 = io_in_d_bits_opcode == 3'h1; // @[Monitor.scala 346:25]
  wire  _T_524 = io_in_d_bits_opcode == 3'h2; // @[Monitor.scala 354:25]
  wire  _a_first_T = io_in_a_ready & io_in_a_valid; // @[Decoupled.scala 52:35]
  wire  a_first_beats1_decode = is_aligned_mask[3]; // @[Edges.scala 219:59]
  wire  a_first_beats1_opdata = ~io_in_a_bits_opcode[2]; // @[Edges.scala 91:28]
  wire  a_first_beats1 = a_first_beats1_opdata & a_first_beats1_decode; // @[Edges.scala 220:14]
  reg  a_first_counter; // @[Edges.scala 228:27]
  wire  a_first_counter1 = a_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  a_first = ~a_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode; // @[Monitor.scala 384:22]
  reg [2:0] param; // @[Monitor.scala 385:22]
  reg [2:0] size; // @[Monitor.scala 386:22]
  reg  source; // @[Monitor.scala 387:22]
  reg [31:0] address; // @[Monitor.scala 388:22]
  wire  _T_554 = io_in_a_valid & ~a_first; // @[Monitor.scala 389:19]
  wire  _T_555 = io_in_a_bits_opcode == opcode; // @[Monitor.scala 390:32]
  wire  _T_559 = io_in_a_bits_param == param; // @[Monitor.scala 391:32]
  wire  _T_563 = io_in_a_bits_size == size; // @[Monitor.scala 392:32]
  wire  _T_567 = io_in_a_bits_source == source; // @[Monitor.scala 393:32]
  wire  _T_571 = io_in_a_bits_address == address; // @[Monitor.scala 394:32]
  wire  _d_first_T = io_in_d_ready & io_in_d_valid; // @[Decoupled.scala 52:35]
  wire [10:0] _d_first_beats1_decode_T_1 = 11'hf << io_in_d_bits_size; // @[package.scala 234:77]
  wire [3:0] _d_first_beats1_decode_T_3 = ~_d_first_beats1_decode_T_1[3:0]; // @[package.scala 234:46]
  wire  d_first_beats1_decode = _d_first_beats1_decode_T_3[3]; // @[Edges.scala 219:59]
  wire  d_first_beats1_opdata = io_in_d_bits_opcode[0]; // @[Edges.scala 105:36]
  wire  d_first_beats1 = d_first_beats1_opdata & d_first_beats1_decode; // @[Edges.scala 220:14]
  reg  d_first_counter; // @[Edges.scala 228:27]
  wire  d_first_counter1 = d_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  d_first = ~d_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  reg [1:0] param_1; // @[Monitor.scala 536:22]
  reg [2:0] size_1; // @[Monitor.scala 537:22]
  reg  source_1; // @[Monitor.scala 538:22]
  reg [4:0] sink; // @[Monitor.scala 539:22]
  reg  denied; // @[Monitor.scala 540:22]
  wire  _T_578 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_579 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  wire  _T_583 = io_in_d_bits_param == param_1; // @[Monitor.scala 543:29]
  wire  _T_587 = io_in_d_bits_size == size_1; // @[Monitor.scala 544:29]
  wire  _T_591 = io_in_d_bits_source == source_1; // @[Monitor.scala 545:29]
  wire  _T_595 = io_in_d_bits_sink == sink; // @[Monitor.scala 546:29]
  wire  _T_599 = io_in_d_bits_denied == denied; // @[Monitor.scala 547:29]
  reg [1:0] inflight; // @[Monitor.scala 611:27]
  reg [7:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [7:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg  a_first_counter_1; // @[Edges.scala 228:27]
  wire  a_first_counter1_1 = a_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  a_first_1 = ~a_first_counter_1; // @[Edges.scala 230:25]
  reg  d_first_counter_1; // @[Edges.scala 228:27]
  wire  d_first_counter1_1 = d_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = ~d_first_counter_1; // @[Edges.scala 230:25]
  wire [2:0] _GEN_64 = {io_in_d_bits_source, 2'h0}; // @[Monitor.scala 634:69]
  wire [3:0] _a_opcode_lookup_T = {{1'd0}, _GEN_64}; // @[Monitor.scala 634:69]
  wire [7:0] _a_opcode_lookup_T_1 = inflight_opcodes >> _a_opcode_lookup_T; // @[Monitor.scala 634:44]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [15:0] _GEN_68 = {{8'd0}, _a_opcode_lookup_T_1}; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_6 = _GEN_68 & _a_opcode_lookup_T_5; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[15:1]}; // @[Monitor.scala 634:152]
  wire [7:0] _a_size_lookup_T_1 = inflight_sizes >> _a_opcode_lookup_T; // @[Monitor.scala 638:40]
  wire [15:0] _GEN_73 = {{8'd0}, _a_size_lookup_T_1}; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_6 = _GEN_73 & _a_opcode_lookup_T_5; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[15:1]}; // @[Monitor.scala 638:144]
  wire  _T_605 = io_in_a_valid & a_first_1; // @[Monitor.scala 648:26]
  wire [1:0] _a_set_wo_ready_T = 2'h1 << io_in_a_bits_source; // @[OneHot.scala 57:35]
  wire [1:0] a_set_wo_ready = io_in_a_valid & a_first_1 ? _a_set_wo_ready_T : 2'h0; // @[Monitor.scala 648:71 649:22]
  wire  _T_608 = _a_first_T & a_first_1; // @[Monitor.scala 652:27]
  wire [3:0] _a_opcodes_set_interm_T = {io_in_a_bits_opcode, 1'h0}; // @[Monitor.scala 654:53]
  wire [3:0] _a_opcodes_set_interm_T_1 = _a_opcodes_set_interm_T | 4'h1; // @[Monitor.scala 654:61]
  wire [3:0] _a_sizes_set_interm_T = {io_in_a_bits_size, 1'h0}; // @[Monitor.scala 655:51]
  wire [3:0] _a_sizes_set_interm_T_1 = _a_sizes_set_interm_T | 4'h1; // @[Monitor.scala 655:59]
  wire [2:0] _GEN_75 = {io_in_a_bits_source, 2'h0}; // @[Monitor.scala 656:79]
  wire [3:0] _a_opcodes_set_T = {{1'd0}, _GEN_75}; // @[Monitor.scala 656:79]
  wire [3:0] a_opcodes_set_interm = _a_first_T & a_first_1 ? _a_opcodes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 654:28]
  wire [18:0] _GEN_477 = {{15'd0}, a_opcodes_set_interm}; // @[Monitor.scala 656:54]
  wire [18:0] _a_opcodes_set_T_1 = _GEN_477 << _a_opcodes_set_T; // @[Monitor.scala 656:54]
  wire [3:0] a_sizes_set_interm = _a_first_T & a_first_1 ? _a_sizes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 655:28]
  wire [18:0] _GEN_478 = {{15'd0}, a_sizes_set_interm}; // @[Monitor.scala 657:52]
  wire [18:0] _a_sizes_set_T_1 = _GEN_478 << _a_opcodes_set_T; // @[Monitor.scala 657:52]
  wire [1:0] _T_610 = inflight >> io_in_a_bits_source; // @[Monitor.scala 658:26]
  wire  _T_612 = ~_T_610[0]; // @[Monitor.scala 658:17]
  wire [1:0] a_set = _a_first_T & a_first_1 ? _a_set_wo_ready_T : 2'h0; // @[Monitor.scala 652:72 653:28]
  wire [18:0] _GEN_19 = _a_first_T & a_first_1 ? _a_opcodes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 656:28]
  wire [18:0] _GEN_20 = _a_first_T & a_first_1 ? _a_sizes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 657:28]
  wire  _T_616 = io_in_d_valid & d_first_1; // @[Monitor.scala 671:26]
  wire  _T_618 = ~_T_412; // @[Monitor.scala 671:74]
  wire  _T_619 = io_in_d_valid & d_first_1 & ~_T_412; // @[Monitor.scala 671:71]
  wire [1:0] _d_clr_wo_ready_T = 2'h1 << io_in_d_bits_source; // @[OneHot.scala 57:35]
  wire [1:0] d_clr_wo_ready = io_in_d_valid & d_first_1 & ~_T_412 ? _d_clr_wo_ready_T : 2'h0; // @[Monitor.scala 671:90 672:22]
  wire [30:0] _GEN_479 = {{15'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [30:0] _d_opcodes_clr_T_5 = _GEN_479 << _a_opcode_lookup_T; // @[Monitor.scala 677:76]
  wire [1:0] d_clr = _d_first_T & d_first_1 & _T_618 ? _d_clr_wo_ready_T : 2'h0; // @[Monitor.scala 675:91 676:21]
  wire [30:0] _GEN_23 = _d_first_T & d_first_1 & _T_618 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 675:91 677:21]
  wire  _same_cycle_resp_T_2 = io_in_a_bits_source == io_in_d_bits_source; // @[Monitor.scala 681:113]
  wire  same_cycle_resp = _T_605 & io_in_a_bits_source == io_in_d_bits_source; // @[Monitor.scala 681:88]
  wire [1:0] _T_629 = inflight >> io_in_d_bits_source; // @[Monitor.scala 682:25]
  wire  _T_631 = _T_629[0] | same_cycle_resp; // @[Monitor.scala 682:49]
  wire [2:0] _GEN_27 = 3'h2 == io_in_a_bits_opcode ? 3'h1 : 3'h0; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_28 = 3'h3 == io_in_a_bits_opcode ? 3'h1 : _GEN_27; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_29 = 3'h4 == io_in_a_bits_opcode ? 3'h1 : _GEN_28; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_30 = 3'h5 == io_in_a_bits_opcode ? 3'h2 : _GEN_29; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_31 = 3'h6 == io_in_a_bits_opcode ? 3'h4 : _GEN_30; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_32 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_31; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_39 = 3'h6 == io_in_a_bits_opcode ? 3'h5 : _GEN_30; // @[Monitor.scala 686:{39,39}]
  wire [2:0] _GEN_40 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_39; // @[Monitor.scala 686:{39,39}]
  wire  _T_636 = io_in_d_bits_opcode == _GEN_40; // @[Monitor.scala 686:39]
  wire  _T_637 = io_in_d_bits_opcode == _GEN_32 | _T_636; // @[Monitor.scala 685:77]
  wire  _T_641 = io_in_a_bits_size == io_in_d_bits_size; // @[Monitor.scala 687:36]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_43 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_44 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_43; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_45 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_44; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_46 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_45; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_47 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_46; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_48 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_47; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_55 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_46; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_56 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_55; // @[Monitor.scala 690:{38,38}]
  wire  _T_648 = io_in_d_bits_opcode == _GEN_56; // @[Monitor.scala 690:38]
  wire  _T_649 = io_in_d_bits_opcode == _GEN_48 | _T_648; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire [3:0] _GEN_79 = {{1'd0}, io_in_d_bits_size}; // @[Monitor.scala 691:36]
  wire  _T_653 = _GEN_79 == a_size_lookup; // @[Monitor.scala 691:36]
  wire  _T_663 = _T_616 & a_first_1 & io_in_a_valid & _same_cycle_resp_T_2 & _T_618; // @[Monitor.scala 694:116]
  wire  _T_665 = ~io_in_d_ready | io_in_a_ready; // @[Monitor.scala 695:32]
  wire  _T_672 = a_set_wo_ready != d_clr_wo_ready | ~(|a_set_wo_ready); // @[Monitor.scala 699:48]
  wire [1:0] _inflight_T = inflight | a_set; // @[Monitor.scala 702:27]
  wire [1:0] _inflight_T_1 = ~d_clr; // @[Monitor.scala 702:38]
  wire [1:0] _inflight_T_2 = _inflight_T & _inflight_T_1; // @[Monitor.scala 702:36]
  wire [7:0] a_opcodes_set = _GEN_19[7:0];
  wire [7:0] _inflight_opcodes_T = inflight_opcodes | a_opcodes_set; // @[Monitor.scala 703:43]
  wire [7:0] d_opcodes_clr = _GEN_23[7:0];
  wire [7:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [7:0] _inflight_opcodes_T_2 = _inflight_opcodes_T & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [7:0] a_sizes_set = _GEN_20[7:0];
  wire [7:0] _inflight_sizes_T = inflight_sizes | a_sizes_set; // @[Monitor.scala 704:39]
  wire [7:0] _inflight_sizes_T_2 = _inflight_sizes_T & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [31:0] watchdog; // @[Monitor.scala 706:27]
  wire  _T_681 = ~(|inflight) | plusarg_reader_out == 32'h0 | watchdog < plusarg_reader_out; // @[Monitor.scala 709:47]
  wire [31:0] _watchdog_T_1 = watchdog + 32'h1; // @[Monitor.scala 711:26]
  reg [1:0] inflight_1; // @[Monitor.scala 723:35]
  reg [7:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg  d_first_counter_2; // @[Edges.scala 228:27]
  wire  d_first_counter1_2 = d_first_counter_2 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = ~d_first_counter_2; // @[Edges.scala 230:25]
  wire [7:0] _c_size_lookup_T_1 = inflight_sizes_1 >> _a_opcode_lookup_T; // @[Monitor.scala 747:42]
  wire [15:0] _GEN_81 = {{8'd0}, _c_size_lookup_T_1}; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_6 = _GEN_81 & _a_opcode_lookup_T_5; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[15:1]}; // @[Monitor.scala 747:146]
  wire  _T_707 = io_in_d_valid & d_first_2 & _T_412; // @[Monitor.scala 779:71]
  wire [1:0] d_clr_1 = _d_first_T & d_first_2 & _T_412 ? _d_clr_wo_ready_T : 2'h0; // @[Monitor.scala 783:90 784:21]
  wire [30:0] _GEN_69 = _d_first_T & d_first_2 & _T_412 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 783:90 786:21]
  wire [1:0] _T_715 = inflight_1 >> io_in_d_bits_source; // @[Monitor.scala 791:25]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_725 = _GEN_79 == c_size_lookup; // @[Monitor.scala 795:36]
  wire [1:0] _inflight_T_4 = ~d_clr_1; // @[Monitor.scala 809:46]
  wire [1:0] _inflight_T_5 = inflight_1 & _inflight_T_4; // @[Monitor.scala 809:44]
  wire [7:0] d_sizes_clr_1 = _GEN_69[7:0];
  wire [7:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [7:0] _inflight_sizes_T_5 = inflight_sizes_1 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  reg [31:0] watchdog_1; // @[Monitor.scala 813:27]
  wire  _T_750 = ~(|inflight_1) | plusarg_reader_1_out == 32'h0 | watchdog_1 < plusarg_reader_1_out; // @[Monitor.scala 816:47]
  wire [31:0] _watchdog_T_3 = watchdog_1 + 32'h1; // @[Monitor.scala 818:26]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        a_first_counter <= a_first_beats1;
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      opcode <= io_in_a_bits_opcode; // @[Monitor.scala 397:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      param <= io_in_a_bits_param; // @[Monitor.scala 398:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      size <= io_in_a_bits_size; // @[Monitor.scala 399:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      source <= io_in_a_bits_source; // @[Monitor.scala 400:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      address <= io_in_a_bits_address; // @[Monitor.scala 401:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        d_first_counter <= d_first_beats1;
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      param_1 <= io_in_d_bits_param; // @[Monitor.scala 551:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      size_1 <= io_in_d_bits_size; // @[Monitor.scala 552:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      source_1 <= io_in_d_bits_source; // @[Monitor.scala 553:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      sink <= io_in_d_bits_sink; // @[Monitor.scala 554:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      denied <= io_in_d_bits_denied; // @[Monitor.scala 555:15]
    end
    if (reset) begin // @[Monitor.scala 611:27]
      inflight <= 2'h0; // @[Monitor.scala 611:27]
    end else begin
      inflight <= _inflight_T_2; // @[Monitor.scala 702:14]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 8'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 8'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first_1) begin // @[Edges.scala 235:21]
        a_first_counter_1 <= a_first_beats1;
      end else begin
        a_first_counter_1 <= a_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        d_first_counter_1 <= d_first_beats1;
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 706:27]
      watchdog <= 32'h0; // @[Monitor.scala 706:27]
    end else if (_a_first_T | _d_first_T) begin // @[Monitor.scala 712:47]
      watchdog <= 32'h0; // @[Monitor.scala 712:58]
    end else begin
      watchdog <= _watchdog_T_1; // @[Monitor.scala 711:14]
    end
    if (reset) begin // @[Monitor.scala 723:35]
      inflight_1 <= 2'h0; // @[Monitor.scala 723:35]
    end else begin
      inflight_1 <= _inflight_T_5; // @[Monitor.scala 809:22]
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 8'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        d_first_counter_2 <= d_first_beats1;
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    if (reset) begin // @[Monitor.scala 813:27]
      watchdog_1 <= 32'h0; // @[Monitor.scala 813:27]
    end else if (_d_first_T) begin // @[Monitor.scala 819:47]
      watchdog_1 <= 32'h0; // @[Monitor.scala 819:58]
    end else begin
      watchdog_1 <= _watchdog_T_3; // @[Monitor.scala 818:14]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_T_39) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_39 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock from a client which does not support Probe (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_mask_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock smaller than a beat (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_mask_T & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock address not aligned to size (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_T_70) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock carries invalid grow param (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_70 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_T_75) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock contains invalid mask (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_75 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_T_79) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock is corrupt (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_79 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_83 & ~reset & ~_T_39) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_39 & (io_in_a_valid & _T_83 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_83 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm from a client which does not support Probe (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_83 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_83 & ~reset & ~_mask_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm smaller than a beat (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_mask_T & (io_in_a_valid & _T_83 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_83 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm address not aligned to size (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_83 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_83 & ~reset & ~_T_70) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm carries invalid grow param (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_70 & (io_in_a_valid & _T_83 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_83 & ~reset & ~_T_137) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm requests NtoB (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_137 & (io_in_a_valid & _T_83 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_83 & ~reset & ~_T_75) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm contains invalid mask (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_75 & (io_in_a_valid & _T_83 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_83 & ~reset & ~_T_79) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm is corrupt (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_79 & (io_in_a_valid & _T_83 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_150 & ~reset & ~_T_174) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which slave claims it can't support (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_174 & (io_in_a_valid & _T_150 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_150 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get address not aligned to size (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_150 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_150 & ~reset & ~_T_185) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get carries invalid param (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_185 & (io_in_a_valid & _T_150 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_150 & ~reset & ~_T_189) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get contains invalid mask (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_189 & (io_in_a_valid & _T_150 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_150 & ~reset & ~_T_79) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get is corrupt (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_79 & (io_in_a_valid & _T_150 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_197 & ~reset & ~_T_174) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutFull type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_174 & (io_in_a_valid & _T_197 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_197 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull address not aligned to size (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_197 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_197 & ~reset & ~_T_185) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull carries invalid param (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_185 & (io_in_a_valid & _T_197 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_197 & ~reset & ~_T_189) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull contains invalid mask (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_189 & (io_in_a_valid & _T_197 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_238 & ~reset & ~_T_174) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutPartial type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_174 & (io_in_a_valid & _T_238 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_238 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial address not aligned to size (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_238 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_238 & ~reset & ~_T_185) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial carries invalid param (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_185 & (io_in_a_valid & _T_238 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_238 & ~reset & ~_T_277) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial contains invalid mask (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_277 & (io_in_a_valid & _T_238 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_281 & ~reset & ~_T_302) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Arithmetic type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_302 & (io_in_a_valid & _T_281 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_281 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic address not aligned to size (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_281 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_281 & ~reset & ~_T_314) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic carries invalid opcode param (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_314 & (io_in_a_valid & _T_281 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_281 & ~reset & ~_T_189) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic contains invalid mask (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_189 & (io_in_a_valid & _T_281 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_322 & ~reset & ~_T_302) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Logical type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_302 & (io_in_a_valid & _T_322 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_322 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical address not aligned to size (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_322 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_322 & ~reset & ~_T_355) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical carries invalid opcode param (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_355 & (io_in_a_valid & _T_322 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_322 & ~reset & ~_T_189) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical contains invalid mask (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_189 & (io_in_a_valid & _T_322 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_363 & ~reset & ~_T_174) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Hint type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_174 & (io_in_a_valid & _T_363 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_363 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint address not aligned to size (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_363 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_363 & ~reset & ~_T_396) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint carries invalid opcode param (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_396 & (io_in_a_valid & _T_363 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_363 & ~reset & ~_T_189) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint contains invalid mask (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_189 & (io_in_a_valid & _T_363 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_363 & ~reset & ~_T_79) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint is corrupt (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_79 & (io_in_a_valid & _T_363 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_408) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_408 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_412 & _T_2 & ~_T_416) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck smaller than a beat (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_416 & (io_in_d_valid & _T_412 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_412 & _T_2 & ~_T_420) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseeAck carries invalid param (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_420 & (io_in_d_valid & _T_412 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_412 & _T_2 & ~_T_424) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is corrupt (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_424 & (io_in_d_valid & _T_412 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_412 & _T_2 & ~_T_428) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is denied (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_428 & (io_in_d_valid & _T_412 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_432 & _T_2 & ~_T_416) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant smaller than a beat (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_416 & (io_in_d_valid & _T_432 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_432 & _T_2 & ~_T_443) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid cap param (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_443 & (io_in_d_valid & _T_432 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_432 & _T_2 & ~_T_447) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries toN param (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_447 & (io_in_d_valid & _T_432 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_432 & _T_2 & ~_T_424) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant is corrupt (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_424 & (io_in_d_valid & _T_432 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_432 & _T_2 & ~_T_428) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant is denied (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_428 & (io_in_d_valid & _T_432 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_460 & _T_2 & ~_T_416) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData smaller than a beat (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_416 & (io_in_d_valid & _T_460 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_460 & _T_2 & ~_T_443) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid cap param (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_443 & (io_in_d_valid & _T_460 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_460 & _T_2 & ~_T_447) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries toN param (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_447 & (io_in_d_valid & _T_460 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_460 & _T_2 & ~_T_480) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData is denied but not corrupt (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_480 & (io_in_d_valid & _T_460 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_460 & _T_2 & ~_T_428) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData is denied (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_428 & (io_in_d_valid & _T_460 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_489 & _T_2 & ~_T_420) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck carries invalid param (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_420 & (io_in_d_valid & _T_489 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_489 & _T_2 & ~_T_424) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck is corrupt (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_424 & (io_in_d_valid & _T_489 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_489 & _T_2 & ~_T_428) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck is denied (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_428 & (io_in_d_valid & _T_489 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_506 & _T_2 & ~_T_420) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData carries invalid param (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_420 & (io_in_d_valid & _T_506 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_506 & _T_2 & ~_T_480) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData is denied but not corrupt (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_480 & (io_in_d_valid & _T_506 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_506 & _T_2 & ~_T_428) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData is denied (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_428 & (io_in_d_valid & _T_506 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_524 & _T_2 & ~_T_420) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck carries invalid param (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_420 & (io_in_d_valid & _T_524 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_524 & _T_2 & ~_T_424) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck is corrupt (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_424 & (io_in_d_valid & _T_524 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_524 & _T_2 & ~_T_428) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck is denied (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_428 & (io_in_d_valid & _T_524 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_554 & ~reset & ~_T_555) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel opcode changed within multibeat operation (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_555 & (_T_554 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_554 & ~reset & ~_T_559) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel param changed within multibeat operation (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_559 & (_T_554 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_554 & ~reset & ~_T_563) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel size changed within multibeat operation (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_563 & (_T_554 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_554 & ~reset & ~_T_567) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel source changed within multibeat operation (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_567 & (_T_554 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_554 & ~reset & ~_T_571) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel address changed with multibeat operation (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_571 & (_T_554 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_578 & _T_2 & ~_T_579) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_579 & (_T_578 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_578 & _T_2 & ~_T_583) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel param changed within multibeat operation (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_583 & (_T_578 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_578 & _T_2 & ~_T_587) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel size changed within multibeat operation (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_587 & (_T_578 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_578 & _T_2 & ~_T_591) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel source changed within multibeat operation (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_591 & (_T_578 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_578 & _T_2 & ~_T_595) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel sink changed with multibeat operation (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_595 & (_T_578 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_578 & _T_2 & ~_T_599) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel denied changed with multibeat operation (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_599 & (_T_578 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_608 & ~reset & ~_T_612) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel re-used a source ID (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_612 & (_T_608 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_619 & _T_2 & ~_T_631) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_631 & (_T_619 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_619 & same_cycle_resp & _T_2 & ~_T_637) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_637 & (_T_619 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_619 & same_cycle_resp & _T_2 & ~_T_641) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_641 & (_T_619 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_619 & ~same_cycle_resp & _T_2 & ~_T_649) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_649 & (_T_619 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_619 & ~same_cycle_resp & _T_2 & ~_T_653) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_653 & (_T_619 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_663 & _T_2 & ~_T_665) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_665 & (_T_663 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_2 & ~_T_672) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' and 'D' concurrent, despite minlatency 2 (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_672 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_681) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_681 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_707 & _T_2 & ~_T_715[0]) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_715[0] & (_T_707 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_707 & _T_2 & ~_T_725) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_725 & (_T_707 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_750) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:78:18)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_750 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  opcode = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  param = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  size = _RAND_3[2:0];
  _RAND_4 = {1{`RANDOM}};
  source = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  address = _RAND_5[31:0];
  _RAND_6 = {1{`RANDOM}};
  d_first_counter = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  opcode_1 = _RAND_7[2:0];
  _RAND_8 = {1{`RANDOM}};
  param_1 = _RAND_8[1:0];
  _RAND_9 = {1{`RANDOM}};
  size_1 = _RAND_9[2:0];
  _RAND_10 = {1{`RANDOM}};
  source_1 = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  sink = _RAND_11[4:0];
  _RAND_12 = {1{`RANDOM}};
  denied = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  inflight = _RAND_13[1:0];
  _RAND_14 = {1{`RANDOM}};
  inflight_opcodes = _RAND_14[7:0];
  _RAND_15 = {1{`RANDOM}};
  inflight_sizes = _RAND_15[7:0];
  _RAND_16 = {1{`RANDOM}};
  a_first_counter_1 = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_17[0:0];
  _RAND_18 = {1{`RANDOM}};
  watchdog = _RAND_18[31:0];
  _RAND_19 = {1{`RANDOM}};
  inflight_1 = _RAND_19[1:0];
  _RAND_20 = {1{`RANDOM}};
  inflight_sizes_1 = _RAND_20[7:0];
  _RAND_21 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_21[0:0];
  _RAND_22 = {1{`RANDOM}};
  watchdog_1 = _RAND_22[31:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLMonitor_5(
  input        clock,
  input        reset,
  input        io_in_d_valid,
  input  [2:0] io_in_d_bits_opcode,
  input  [1:0] io_in_d_bits_param,
  input  [2:0] io_in_d_bits_size,
  input  [4:0] io_in_d_bits_sink,
  input        io_in_d_bits_denied,
  input        io_in_d_bits_corrupt
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire  _T_363 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire  _T_367 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_371 = io_in_d_bits_size >= 3'h3; // @[Monitor.scala 312:27]
  wire  _T_375 = io_in_d_bits_param == 2'h0; // @[Monitor.scala 313:28]
  wire  _T_379 = ~io_in_d_bits_corrupt; // @[Monitor.scala 314:15]
  wire  _T_383 = ~io_in_d_bits_denied; // @[Monitor.scala 315:15]
  wire  _T_387 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_398 = io_in_d_bits_param <= 2'h2; // @[Bundles.scala 102:26]
  wire  _T_402 = io_in_d_bits_param != 2'h2; // @[Monitor.scala 323:28]
  wire  _T_415 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _T_435 = _T_383 | io_in_d_bits_corrupt; // @[Monitor.scala 334:30]
  wire  _T_444 = io_in_d_bits_opcode == 3'h0; // @[Monitor.scala 338:25]
  wire  _T_461 = io_in_d_bits_opcode == 3'h1; // @[Monitor.scala 346:25]
  wire  _T_479 = io_in_d_bits_opcode == 3'h2; // @[Monitor.scala 354:25]
  wire [10:0] _d_first_beats1_decode_T_1 = 11'hf << io_in_d_bits_size; // @[package.scala 234:77]
  wire [3:0] _d_first_beats1_decode_T_3 = ~_d_first_beats1_decode_T_1[3:0]; // @[package.scala 234:46]
  wire  d_first_beats1_decode = _d_first_beats1_decode_T_3[3]; // @[Edges.scala 219:59]
  wire  d_first_beats1_opdata = io_in_d_bits_opcode[0]; // @[Edges.scala 105:36]
  wire  d_first_beats1 = d_first_beats1_opdata & d_first_beats1_decode; // @[Edges.scala 220:14]
  reg  d_first_counter; // @[Edges.scala 228:27]
  wire  d_first_counter1 = d_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  d_first = ~d_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  reg [1:0] param_1; // @[Monitor.scala 536:22]
  reg [2:0] size_1; // @[Monitor.scala 537:22]
  reg [4:0] sink; // @[Monitor.scala 539:22]
  reg  denied; // @[Monitor.scala 540:22]
  wire  _T_533 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_534 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  wire  _T_538 = io_in_d_bits_param == param_1; // @[Monitor.scala 543:29]
  wire  _T_542 = io_in_d_bits_size == size_1; // @[Monitor.scala 544:29]
  wire  _T_550 = io_in_d_bits_sink == sink; // @[Monitor.scala 546:29]
  wire  _T_554 = io_in_d_bits_denied == denied; // @[Monitor.scala 547:29]
  reg [3:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [3:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg  d_first_counter_1; // @[Edges.scala 228:27]
  wire  d_first_counter1_1 = d_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = ~d_first_counter_1; // @[Edges.scala 230:25]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [15:0] _GEN_62 = {{12'd0}, inflight_opcodes}; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_6 = _GEN_62 & _a_opcode_lookup_T_5; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[15:1]}; // @[Monitor.scala 634:152]
  wire [15:0] _GEN_68 = {{12'd0}, inflight_sizes}; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_6 = _GEN_68 & _a_opcode_lookup_T_5; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[15:1]}; // @[Monitor.scala 638:144]
  wire  _T_574 = io_in_d_valid & d_first_1 & ~_T_367; // @[Monitor.scala 671:71]
  wire [30:0] _d_opcodes_clr_T_5 = {{15'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [30:0] _GEN_23 = _T_574 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 675:91 677:21]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_43 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_44 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_43; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_45 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_44; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_46 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_45; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_47 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_46; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_48 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_47; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_55 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_46; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_56 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_55; // @[Monitor.scala 690:{38,38}]
  wire  _T_603 = io_in_d_bits_opcode == _GEN_56; // @[Monitor.scala 690:38]
  wire  _T_604 = io_in_d_bits_opcode == _GEN_48 | _T_603; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire [3:0] _GEN_72 = {{1'd0}, io_in_d_bits_size}; // @[Monitor.scala 691:36]
  wire  _T_608 = _GEN_72 == a_size_lookup; // @[Monitor.scala 691:36]
  wire [3:0] d_opcodes_clr = _GEN_23[3:0];
  wire [3:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [3:0] _inflight_opcodes_T_2 = inflight_opcodes & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [3:0] _inflight_sizes_T_2 = inflight_sizes & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [3:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg  d_first_counter_2; // @[Edges.scala 228:27]
  wire  d_first_counter1_2 = d_first_counter_2 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = ~d_first_counter_2; // @[Edges.scala 230:25]
  wire [15:0] _GEN_73 = {{12'd0}, inflight_sizes_1}; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_6 = _GEN_73 & _a_opcode_lookup_T_5; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[15:1]}; // @[Monitor.scala 747:146]
  wire  _T_662 = io_in_d_valid & d_first_2 & _T_367; // @[Monitor.scala 779:71]
  wire [30:0] _GEN_69 = _T_662 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 783:90 786:21]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_680 = _GEN_72 == c_size_lookup; // @[Monitor.scala 795:36]
  wire [3:0] d_sizes_clr_1 = _GEN_69[3:0];
  wire [3:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [3:0] _inflight_sizes_T_5 = inflight_sizes_1 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (io_in_d_valid) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        d_first_counter <= d_first_beats1;
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (io_in_d_valid & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (io_in_d_valid & d_first) begin // @[Monitor.scala 549:32]
      param_1 <= io_in_d_bits_param; // @[Monitor.scala 551:15]
    end
    if (io_in_d_valid & d_first) begin // @[Monitor.scala 549:32]
      size_1 <= io_in_d_bits_size; // @[Monitor.scala 552:15]
    end
    if (io_in_d_valid & d_first) begin // @[Monitor.scala 549:32]
      sink <= io_in_d_bits_sink; // @[Monitor.scala 554:15]
    end
    if (io_in_d_valid & d_first) begin // @[Monitor.scala 549:32]
      denied <= io_in_d_bits_denied; // @[Monitor.scala 555:15]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 4'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 4'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (io_in_d_valid) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        d_first_counter_1 <= d_first_beats1;
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 4'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 1'h0; // @[Edges.scala 228:27]
    end else if (io_in_d_valid) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        d_first_counter_2 <= d_first_beats1;
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_363) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_363 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_367 & _T_2 & ~_T_371) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck smaller than a beat (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_371 & (io_in_d_valid & _T_367 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_367 & _T_2 & ~_T_375) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseeAck carries invalid param (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_375 & (io_in_d_valid & _T_367 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_367 & _T_2 & ~_T_379) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is corrupt (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_379 & (io_in_d_valid & _T_367 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_367 & _T_2 & ~_T_383) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is denied (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_383 & (io_in_d_valid & _T_367 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_387 & _T_2 & ~_T_371) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant smaller than a beat (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_371 & (io_in_d_valid & _T_387 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_387 & _T_2 & ~_T_398) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid cap param (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_398 & (io_in_d_valid & _T_387 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_387 & _T_2 & ~_T_402) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries toN param (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_402 & (io_in_d_valid & _T_387 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_387 & _T_2 & ~_T_379) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant is corrupt (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_379 & (io_in_d_valid & _T_387 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_387 & _T_2 & ~_T_383) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant is denied (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_383 & (io_in_d_valid & _T_387 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2 & ~_T_371) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData smaller than a beat (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_371 & (io_in_d_valid & _T_415 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2 & ~_T_398) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid cap param (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_398 & (io_in_d_valid & _T_415 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2 & ~_T_402) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries toN param (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_402 & (io_in_d_valid & _T_415 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2 & ~_T_435) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData is denied but not corrupt (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_435 & (io_in_d_valid & _T_415 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2 & ~_T_383) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData is denied (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_383 & (io_in_d_valid & _T_415 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_444 & _T_2 & ~_T_375) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck carries invalid param (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_375 & (io_in_d_valid & _T_444 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_444 & _T_2 & ~_T_379) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck is corrupt (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_379 & (io_in_d_valid & _T_444 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_444 & _T_2 & ~_T_383) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck is denied (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_383 & (io_in_d_valid & _T_444 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_461 & _T_2 & ~_T_375) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData carries invalid param (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_375 & (io_in_d_valid & _T_461 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_461 & _T_2 & ~_T_435) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData is denied but not corrupt (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_435 & (io_in_d_valid & _T_461 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_461 & _T_2 & ~_T_383) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData is denied (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_383 & (io_in_d_valid & _T_461 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_479 & _T_2 & ~_T_375) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck carries invalid param (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_375 & (io_in_d_valid & _T_479 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_479 & _T_2 & ~_T_379) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck is corrupt (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_379 & (io_in_d_valid & _T_479 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_479 & _T_2 & ~_T_383) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck is denied (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_383 & (io_in_d_valid & _T_479 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_533 & _T_2 & ~_T_534) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_534 & (_T_533 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_533 & _T_2 & ~_T_538) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel param changed within multibeat operation (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_538 & (_T_533 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_533 & _T_2 & ~_T_542) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel size changed within multibeat operation (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_542 & (_T_533 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_533 & _T_2 & ~_T_550) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel sink changed with multibeat operation (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_550 & (_T_533 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_533 & _T_2 & ~_T_554) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel denied changed with multibeat operation (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_554 & (_T_533 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_574 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_574 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_574 & _T_2 & ~_T_604) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_604 & (_T_574 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_574 & _T_2 & ~_T_608) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_608 & (_T_574 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_662 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_662 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_662 & _T_2 & ~_T_680) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:79:18)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_680 & (_T_662 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  d_first_counter = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  opcode_1 = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  param_1 = _RAND_2[1:0];
  _RAND_3 = {1{`RANDOM}};
  size_1 = _RAND_3[2:0];
  _RAND_4 = {1{`RANDOM}};
  sink = _RAND_4[4:0];
  _RAND_5 = {1{`RANDOM}};
  denied = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  inflight_opcodes = _RAND_6[3:0];
  _RAND_7 = {1{`RANDOM}};
  inflight_sizes = _RAND_7[3:0];
  _RAND_8 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  inflight_sizes_1 = _RAND_9[3:0];
  _RAND_10 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_10[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLXbar(
  input         clock,
  input         reset,
  output        auto_in_2_a_ready,
  input         auto_in_2_a_valid,
  input  [2:0]  auto_in_2_a_bits_opcode,
  input  [2:0]  auto_in_2_a_bits_param,
  input  [2:0]  auto_in_2_a_bits_size,
  input         auto_in_2_a_bits_source,
  input  [31:0] auto_in_2_a_bits_address,
  input  [7:0]  auto_in_2_a_bits_mask,
  input  [63:0] auto_in_2_a_bits_data,
  input         auto_in_2_a_bits_corrupt,
  input         auto_in_2_d_ready,
  output        auto_in_2_d_valid,
  output [2:0]  auto_in_2_d_bits_opcode,
  output [1:0]  auto_in_2_d_bits_param,
  output [2:0]  auto_in_2_d_bits_size,
  output        auto_in_2_d_bits_source,
  output [4:0]  auto_in_2_d_bits_sink,
  output        auto_in_2_d_bits_denied,
  output [63:0] auto_in_2_d_bits_data,
  output        auto_in_2_d_bits_corrupt,
  output        auto_in_1_a_ready,
  input         auto_in_1_a_valid,
  input  [2:0]  auto_in_1_a_bits_opcode,
  input  [2:0]  auto_in_1_a_bits_param,
  input  [2:0]  auto_in_1_a_bits_size,
  input         auto_in_1_a_bits_source,
  input  [31:0] auto_in_1_a_bits_address,
  input  [7:0]  auto_in_1_a_bits_mask,
  input  [63:0] auto_in_1_a_bits_data,
  input         auto_in_1_a_bits_corrupt,
  input         auto_in_1_b_ready,
  output        auto_in_1_b_valid,
  output [1:0]  auto_in_1_b_bits_param,
  output [31:0] auto_in_1_b_bits_address,
  output        auto_in_1_c_ready,
  input         auto_in_1_c_valid,
  input  [2:0]  auto_in_1_c_bits_opcode,
  input  [2:0]  auto_in_1_c_bits_param,
  input  [2:0]  auto_in_1_c_bits_size,
  input         auto_in_1_c_bits_source,
  input  [31:0] auto_in_1_c_bits_address,
  input  [63:0] auto_in_1_c_bits_data,
  input         auto_in_1_c_bits_corrupt,
  input         auto_in_1_d_ready,
  output        auto_in_1_d_valid,
  output [2:0]  auto_in_1_d_bits_opcode,
  output [1:0]  auto_in_1_d_bits_param,
  output [2:0]  auto_in_1_d_bits_size,
  output [4:0]  auto_in_1_d_bits_sink,
  output        auto_in_1_d_bits_denied,
  output [63:0] auto_in_1_d_bits_data,
  output        auto_in_1_d_bits_corrupt,
  input         auto_in_1_e_valid,
  input  [4:0]  auto_in_1_e_bits_sink,
  output        auto_in_0_a_ready,
  input         auto_in_0_a_valid,
  input  [2:0]  auto_in_0_a_bits_opcode,
  input  [2:0]  auto_in_0_a_bits_param,
  input  [2:0]  auto_in_0_a_bits_size,
  input         auto_in_0_a_bits_source,
  input  [31:0] auto_in_0_a_bits_address,
  input  [7:0]  auto_in_0_a_bits_mask,
  input  [63:0] auto_in_0_a_bits_data,
  input         auto_in_0_a_bits_corrupt,
  input         auto_in_0_d_ready,
  output        auto_in_0_d_valid,
  output [2:0]  auto_in_0_d_bits_opcode,
  output [1:0]  auto_in_0_d_bits_param,
  output [2:0]  auto_in_0_d_bits_size,
  output [4:0]  auto_in_0_d_bits_sink,
  output        auto_in_0_d_bits_denied,
  output [63:0] auto_in_0_d_bits_data,
  output        auto_in_0_d_bits_corrupt,
  input         auto_out_a_ready,
  output        auto_out_a_valid,
  output [2:0]  auto_out_a_bits_opcode,
  output [2:0]  auto_out_a_bits_param,
  output [2:0]  auto_out_a_bits_size,
  output [2:0]  auto_out_a_bits_source,
  output [31:0] auto_out_a_bits_address,
  output [7:0]  auto_out_a_bits_mask,
  output [63:0] auto_out_a_bits_data,
  output        auto_out_a_bits_corrupt,
  output        auto_out_b_ready,
  input         auto_out_b_valid,
  input  [1:0]  auto_out_b_bits_param,
  input  [31:0] auto_out_b_bits_address,
  input         auto_out_c_ready,
  output        auto_out_c_valid,
  output [2:0]  auto_out_c_bits_opcode,
  output [2:0]  auto_out_c_bits_param,
  output [2:0]  auto_out_c_bits_size,
  output [31:0] auto_out_c_bits_address,
  output [63:0] auto_out_c_bits_data,
  output        auto_out_c_bits_corrupt,
  output        auto_out_d_ready,
  input         auto_out_d_valid,
  input  [2:0]  auto_out_d_bits_opcode,
  input  [1:0]  auto_out_d_bits_param,
  input  [2:0]  auto_out_d_bits_size,
  input  [2:0]  auto_out_d_bits_source,
  input  [4:0]  auto_out_d_bits_sink,
  input         auto_out_d_bits_denied,
  input  [63:0] auto_out_d_bits_data,
  input         auto_out_d_bits_corrupt,
  output        auto_out_e_valid,
  output [4:0]  auto_out_e_bits_sink
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
`endif // RANDOMIZE_REG_INIT
  wire  monitor_clock; // @[Nodes.scala 24:25]
  wire  monitor_reset; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_opcode; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_param; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_size; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_bits_source; // @[Nodes.scala 24:25]
  wire [31:0] monitor_io_in_a_bits_address; // @[Nodes.scala 24:25]
  wire [7:0] monitor_io_in_a_bits_mask; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_bits_corrupt; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  wire [1:0] monitor_io_in_d_bits_param; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_size; // @[Nodes.scala 24:25]
  wire [4:0] monitor_io_in_d_bits_sink; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_denied; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_corrupt; // @[Nodes.scala 24:25]
  wire  monitor_1_clock; // @[Nodes.scala 24:25]
  wire  monitor_1_reset; // @[Nodes.scala 24:25]
  wire  monitor_1_io_in_a_ready; // @[Nodes.scala 24:25]
  wire  monitor_1_io_in_a_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_1_io_in_a_bits_opcode; // @[Nodes.scala 24:25]
  wire [2:0] monitor_1_io_in_a_bits_param; // @[Nodes.scala 24:25]
  wire [2:0] monitor_1_io_in_a_bits_size; // @[Nodes.scala 24:25]
  wire  monitor_1_io_in_a_bits_source; // @[Nodes.scala 24:25]
  wire [31:0] monitor_1_io_in_a_bits_address; // @[Nodes.scala 24:25]
  wire [7:0] monitor_1_io_in_a_bits_mask; // @[Nodes.scala 24:25]
  wire  monitor_1_io_in_a_bits_corrupt; // @[Nodes.scala 24:25]
  wire  monitor_1_io_in_b_ready; // @[Nodes.scala 24:25]
  wire  monitor_1_io_in_b_valid; // @[Nodes.scala 24:25]
  wire [1:0] monitor_1_io_in_b_bits_param; // @[Nodes.scala 24:25]
  wire [31:0] monitor_1_io_in_b_bits_address; // @[Nodes.scala 24:25]
  wire  monitor_1_io_in_c_ready; // @[Nodes.scala 24:25]
  wire  monitor_1_io_in_c_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_1_io_in_c_bits_opcode; // @[Nodes.scala 24:25]
  wire [2:0] monitor_1_io_in_c_bits_param; // @[Nodes.scala 24:25]
  wire [2:0] monitor_1_io_in_c_bits_size; // @[Nodes.scala 24:25]
  wire  monitor_1_io_in_c_bits_source; // @[Nodes.scala 24:25]
  wire [31:0] monitor_1_io_in_c_bits_address; // @[Nodes.scala 24:25]
  wire  monitor_1_io_in_c_bits_corrupt; // @[Nodes.scala 24:25]
  wire  monitor_1_io_in_d_ready; // @[Nodes.scala 24:25]
  wire  monitor_1_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_1_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  wire [1:0] monitor_1_io_in_d_bits_param; // @[Nodes.scala 24:25]
  wire [2:0] monitor_1_io_in_d_bits_size; // @[Nodes.scala 24:25]
  wire [4:0] monitor_1_io_in_d_bits_sink; // @[Nodes.scala 24:25]
  wire  monitor_1_io_in_d_bits_denied; // @[Nodes.scala 24:25]
  wire  monitor_1_io_in_d_bits_corrupt; // @[Nodes.scala 24:25]
  wire  monitor_1_io_in_e_valid; // @[Nodes.scala 24:25]
  wire [4:0] monitor_1_io_in_e_bits_sink; // @[Nodes.scala 24:25]
  wire  monitor_2_clock; // @[Nodes.scala 24:25]
  wire  monitor_2_reset; // @[Nodes.scala 24:25]
  wire  monitor_2_io_in_a_ready; // @[Nodes.scala 24:25]
  wire  monitor_2_io_in_a_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_2_io_in_a_bits_opcode; // @[Nodes.scala 24:25]
  wire [2:0] monitor_2_io_in_a_bits_param; // @[Nodes.scala 24:25]
  wire [2:0] monitor_2_io_in_a_bits_size; // @[Nodes.scala 24:25]
  wire  monitor_2_io_in_a_bits_source; // @[Nodes.scala 24:25]
  wire [31:0] monitor_2_io_in_a_bits_address; // @[Nodes.scala 24:25]
  wire [7:0] monitor_2_io_in_a_bits_mask; // @[Nodes.scala 24:25]
  wire  monitor_2_io_in_a_bits_corrupt; // @[Nodes.scala 24:25]
  wire  monitor_2_io_in_d_ready; // @[Nodes.scala 24:25]
  wire  monitor_2_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_2_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  wire [1:0] monitor_2_io_in_d_bits_param; // @[Nodes.scala 24:25]
  wire [2:0] monitor_2_io_in_d_bits_size; // @[Nodes.scala 24:25]
  wire  monitor_2_io_in_d_bits_source; // @[Nodes.scala 24:25]
  wire [4:0] monitor_2_io_in_d_bits_sink; // @[Nodes.scala 24:25]
  wire  monitor_2_io_in_d_bits_denied; // @[Nodes.scala 24:25]
  wire  monitor_2_io_in_d_bits_corrupt; // @[Nodes.scala 24:25]
  wire  monitor_3_clock; // @[Nodes.scala 24:25]
  wire  monitor_3_reset; // @[Nodes.scala 24:25]
  wire  monitor_3_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_3_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  wire [1:0] monitor_3_io_in_d_bits_param; // @[Nodes.scala 24:25]
  wire [2:0] monitor_3_io_in_d_bits_size; // @[Nodes.scala 24:25]
  wire [4:0] monitor_3_io_in_d_bits_sink; // @[Nodes.scala 24:25]
  wire  monitor_3_io_in_d_bits_denied; // @[Nodes.scala 24:25]
  wire  monitor_3_io_in_d_bits_corrupt; // @[Nodes.scala 24:25]
  wire [2:0] _GEN_1 = {{2'd0}, auto_in_0_a_bits_source}; // @[Xbar.scala 237:55]
  wire [2:0] in_0_a_bits_source = _GEN_1 | 3'h4; // @[Xbar.scala 237:55]
  wire  requestDOI_0_0 = auto_out_d_bits_source == 3'h4; // @[Parameters.scala 46:9]
  wire  requestDOI_0_1 = auto_out_d_bits_source == 3'h3; // @[Parameters.scala 46:9]
  wire  requestDOI_0_2 = auto_out_d_bits_source[2:1] == 2'h0; // @[Parameters.scala 54:32]
  wire  requestDOI_0_3 = auto_out_d_bits_source == 3'h2; // @[Parameters.scala 46:9]
  wire [10:0] _beatsAI_decode_T_1 = 11'hf << auto_in_0_a_bits_size; // @[package.scala 234:77]
  wire [3:0] _beatsAI_decode_T_3 = ~_beatsAI_decode_T_1[3:0]; // @[package.scala 234:46]
  wire  beatsAI_decode = _beatsAI_decode_T_3[3]; // @[Edges.scala 219:59]
  wire  beatsAI_opdata = ~auto_in_0_a_bits_opcode[2]; // @[Edges.scala 91:28]
  wire  beatsAI_0 = beatsAI_opdata & beatsAI_decode; // @[Edges.scala 220:14]
  wire [10:0] _beatsAI_decode_T_5 = 11'hf << auto_in_1_a_bits_size; // @[package.scala 234:77]
  wire [3:0] _beatsAI_decode_T_7 = ~_beatsAI_decode_T_5[3:0]; // @[package.scala 234:46]
  wire  beatsAI_decode_1 = _beatsAI_decode_T_7[3]; // @[Edges.scala 219:59]
  wire  beatsAI_opdata_1 = ~auto_in_1_a_bits_opcode[2]; // @[Edges.scala 91:28]
  wire  beatsAI_1 = beatsAI_opdata_1 & beatsAI_decode_1; // @[Edges.scala 220:14]
  wire [10:0] _beatsAI_decode_T_9 = 11'hf << auto_in_2_a_bits_size; // @[package.scala 234:77]
  wire [3:0] _beatsAI_decode_T_11 = ~_beatsAI_decode_T_9[3:0]; // @[package.scala 234:46]
  wire  beatsAI_decode_2 = _beatsAI_decode_T_11[3]; // @[Edges.scala 219:59]
  wire  beatsAI_opdata_2 = ~auto_in_2_a_bits_opcode[2]; // @[Edges.scala 91:28]
  wire  beatsAI_2 = beatsAI_opdata_2 & beatsAI_decode_2; // @[Edges.scala 220:14]
  reg  beatsLeft; // @[Arbiter.scala 87:30]
  wire  idle = ~beatsLeft; // @[Arbiter.scala 88:28]
  wire  latch = idle & auto_out_a_ready; // @[Arbiter.scala 89:24]
  wire [3:0] readys_valid = {1'h0,auto_in_2_a_valid,auto_in_1_a_valid,auto_in_0_a_valid}; // @[Cat.scala 33:92]
  wire  _readys_T_3 = ~reset; // @[Arbiter.scala 22:12]
  reg [3:0] readys_mask; // @[Arbiter.scala 23:23]
  wire [3:0] _readys_filter_T = ~readys_mask; // @[Arbiter.scala 24:30]
  wire [3:0] _readys_filter_T_1 = readys_valid & _readys_filter_T; // @[Arbiter.scala 24:28]
  wire [7:0] readys_filter = {_readys_filter_T_1,1'h0,auto_in_2_a_valid,auto_in_1_a_valid,auto_in_0_a_valid}; // @[Cat.scala 33:92]
  wire [7:0] _GEN_2 = {{1'd0}, readys_filter[7:1]}; // @[package.scala 253:43]
  wire [7:0] _readys_unready_T_1 = readys_filter | _GEN_2; // @[package.scala 253:43]
  wire [7:0] _GEN_3 = {{2'd0}, _readys_unready_T_1[7:2]}; // @[package.scala 253:43]
  wire [7:0] _readys_unready_T_3 = _readys_unready_T_1 | _GEN_3; // @[package.scala 253:43]
  wire [7:0] _readys_unready_T_6 = {readys_mask, 4'h0}; // @[Arbiter.scala 25:66]
  wire [7:0] _GEN_4 = {{1'd0}, _readys_unready_T_3[7:1]}; // @[Arbiter.scala 25:58]
  wire [7:0] readys_unready = _GEN_4 | _readys_unready_T_6; // @[Arbiter.scala 25:58]
  wire [3:0] _readys_readys_T_2 = readys_unready[7:4] & readys_unready[3:0]; // @[Arbiter.scala 26:39]
  wire [3:0] readys_readys = ~_readys_readys_T_2; // @[Arbiter.scala 26:18]
  wire [3:0] _readys_mask_T = readys_readys & readys_valid; // @[Arbiter.scala 28:29]
  wire [4:0] _readys_mask_T_1 = {_readys_mask_T, 1'h0}; // @[package.scala 244:48]
  wire [3:0] _readys_mask_T_3 = _readys_mask_T | _readys_mask_T_1[3:0]; // @[package.scala 244:43]
  wire [5:0] _readys_mask_T_4 = {_readys_mask_T_3, 2'h0}; // @[package.scala 244:48]
  wire [3:0] _readys_mask_T_6 = _readys_mask_T_3 | _readys_mask_T_4[3:0]; // @[package.scala 244:43]
  wire  readys_0 = readys_readys[0]; // @[Arbiter.scala 95:86]
  wire  readys_1 = readys_readys[1]; // @[Arbiter.scala 95:86]
  wire  readys_2 = readys_readys[2]; // @[Arbiter.scala 95:86]
  wire  earlyWinner_0 = readys_0 & auto_in_0_a_valid; // @[Arbiter.scala 97:79]
  wire  earlyWinner_1 = readys_1 & auto_in_1_a_valid; // @[Arbiter.scala 97:79]
  wire  earlyWinner_2 = readys_2 & auto_in_2_a_valid; // @[Arbiter.scala 97:79]
  wire  prefixOR_2 = earlyWinner_0 | earlyWinner_1; // @[Arbiter.scala 104:53]
  wire  prefixOR_3 = prefixOR_2 | earlyWinner_2; // @[Arbiter.scala 104:53]
  wire  _T_20 = auto_in_0_a_valid | auto_in_1_a_valid | auto_in_2_a_valid; // @[Arbiter.scala 107:36]
  wire  _T_22 = ~(auto_in_0_a_valid | auto_in_1_a_valid | auto_in_2_a_valid); // @[Arbiter.scala 107:15]
  wire  maskedBeats_0 = earlyWinner_0 & beatsAI_0; // @[Arbiter.scala 111:73]
  wire  maskedBeats_1 = earlyWinner_1 & beatsAI_1; // @[Arbiter.scala 111:73]
  wire  maskedBeats_2 = earlyWinner_2 & beatsAI_2; // @[Arbiter.scala 111:73]
  wire  initBeats = maskedBeats_0 | maskedBeats_1 | maskedBeats_2; // @[Arbiter.scala 112:44]
  reg  state_0; // @[Arbiter.scala 116:26]
  wire  muxStateEarly_0 = idle ? earlyWinner_0 : state_0; // @[Arbiter.scala 117:30]
  reg  state_1; // @[Arbiter.scala 116:26]
  wire  muxStateEarly_1 = idle ? earlyWinner_1 : state_1; // @[Arbiter.scala 117:30]
  reg  state_2; // @[Arbiter.scala 116:26]
  wire  muxStateEarly_2 = idle ? earlyWinner_2 : state_2; // @[Arbiter.scala 117:30]
  wire  _out_0_a_earlyValid_T_8 = state_0 & auto_in_0_a_valid | state_1 & auto_in_1_a_valid | state_2 &
    auto_in_2_a_valid; // @[Mux.scala 27:73]
  wire  out_4_0_a_earlyValid = idle ? _T_20 : _out_0_a_earlyValid_T_8; // @[Arbiter.scala 125:29]
  wire  _beatsLeft_T_2 = auto_out_a_ready & out_4_0_a_earlyValid; // @[ReadyValidCancel.scala 49:33]
  wire  allowed_0 = idle ? readys_0 : state_0; // @[Arbiter.scala 121:24]
  wire  allowed_1 = idle ? readys_1 : state_1; // @[Arbiter.scala 121:24]
  wire  allowed_2 = idle ? readys_2 : state_2; // @[Arbiter.scala 121:24]
  wire [63:0] _T_48 = muxStateEarly_0 ? auto_in_0_a_bits_data : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _T_49 = muxStateEarly_1 ? auto_in_1_a_bits_data : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _T_50 = muxStateEarly_2 ? auto_in_2_a_bits_data : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _T_52 = _T_48 | _T_49; // @[Mux.scala 27:73]
  wire [7:0] _T_55 = muxStateEarly_0 ? auto_in_0_a_bits_mask : 8'h0; // @[Mux.scala 27:73]
  wire [7:0] _T_56 = muxStateEarly_1 ? auto_in_1_a_bits_mask : 8'h0; // @[Mux.scala 27:73]
  wire [7:0] _T_57 = muxStateEarly_2 ? auto_in_2_a_bits_mask : 8'h0; // @[Mux.scala 27:73]
  wire [7:0] _T_59 = _T_55 | _T_56; // @[Mux.scala 27:73]
  wire [31:0] _T_62 = muxStateEarly_0 ? auto_in_0_a_bits_address : 32'h0; // @[Mux.scala 27:73]
  wire [31:0] _T_63 = muxStateEarly_1 ? auto_in_1_a_bits_address : 32'h0; // @[Mux.scala 27:73]
  wire [31:0] _T_64 = muxStateEarly_2 ? auto_in_2_a_bits_address : 32'h0; // @[Mux.scala 27:73]
  wire [31:0] _T_66 = _T_62 | _T_63; // @[Mux.scala 27:73]
  wire [2:0] _T_69 = muxStateEarly_0 ? in_0_a_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_70 = muxStateEarly_1 ? 3'h3 : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] in_2_a_bits_source = {{2'd0}, auto_in_2_a_bits_source}; // @[Xbar.scala 231:18 237:29]
  wire [2:0] _T_71 = muxStateEarly_2 ? in_2_a_bits_source : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_73 = _T_69 | _T_70; // @[Mux.scala 27:73]
  wire [2:0] _T_76 = muxStateEarly_0 ? auto_in_0_a_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_77 = muxStateEarly_1 ? auto_in_1_a_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_78 = muxStateEarly_2 ? auto_in_2_a_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_80 = _T_76 | _T_77; // @[Mux.scala 27:73]
  wire [2:0] _T_83 = muxStateEarly_0 ? auto_in_0_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_84 = muxStateEarly_1 ? auto_in_1_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_85 = muxStateEarly_2 ? auto_in_2_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_87 = _T_83 | _T_84; // @[Mux.scala 27:73]
  wire [2:0] _T_90 = muxStateEarly_0 ? auto_in_0_a_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_91 = muxStateEarly_1 ? auto_in_1_a_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_92 = muxStateEarly_2 ? auto_in_2_a_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_94 = _T_90 | _T_91; // @[Mux.scala 27:73]
  TLMonitor_2 monitor ( // @[Nodes.scala 24:25]
    .clock(monitor_clock),
    .reset(monitor_reset),
    .io_in_a_ready(monitor_io_in_a_ready),
    .io_in_a_valid(monitor_io_in_a_valid),
    .io_in_a_bits_opcode(monitor_io_in_a_bits_opcode),
    .io_in_a_bits_param(monitor_io_in_a_bits_param),
    .io_in_a_bits_size(monitor_io_in_a_bits_size),
    .io_in_a_bits_source(monitor_io_in_a_bits_source),
    .io_in_a_bits_address(monitor_io_in_a_bits_address),
    .io_in_a_bits_mask(monitor_io_in_a_bits_mask),
    .io_in_a_bits_corrupt(monitor_io_in_a_bits_corrupt),
    .io_in_d_ready(monitor_io_in_d_ready),
    .io_in_d_valid(monitor_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_io_in_d_bits_opcode),
    .io_in_d_bits_param(monitor_io_in_d_bits_param),
    .io_in_d_bits_size(monitor_io_in_d_bits_size),
    .io_in_d_bits_sink(monitor_io_in_d_bits_sink),
    .io_in_d_bits_denied(monitor_io_in_d_bits_denied),
    .io_in_d_bits_corrupt(monitor_io_in_d_bits_corrupt)
  );
  TLMonitor_3 monitor_1 ( // @[Nodes.scala 24:25]
    .clock(monitor_1_clock),
    .reset(monitor_1_reset),
    .io_in_a_ready(monitor_1_io_in_a_ready),
    .io_in_a_valid(monitor_1_io_in_a_valid),
    .io_in_a_bits_opcode(monitor_1_io_in_a_bits_opcode),
    .io_in_a_bits_param(monitor_1_io_in_a_bits_param),
    .io_in_a_bits_size(monitor_1_io_in_a_bits_size),
    .io_in_a_bits_source(monitor_1_io_in_a_bits_source),
    .io_in_a_bits_address(monitor_1_io_in_a_bits_address),
    .io_in_a_bits_mask(monitor_1_io_in_a_bits_mask),
    .io_in_a_bits_corrupt(monitor_1_io_in_a_bits_corrupt),
    .io_in_b_ready(monitor_1_io_in_b_ready),
    .io_in_b_valid(monitor_1_io_in_b_valid),
    .io_in_b_bits_param(monitor_1_io_in_b_bits_param),
    .io_in_b_bits_address(monitor_1_io_in_b_bits_address),
    .io_in_c_ready(monitor_1_io_in_c_ready),
    .io_in_c_valid(monitor_1_io_in_c_valid),
    .io_in_c_bits_opcode(monitor_1_io_in_c_bits_opcode),
    .io_in_c_bits_param(monitor_1_io_in_c_bits_param),
    .io_in_c_bits_size(monitor_1_io_in_c_bits_size),
    .io_in_c_bits_source(monitor_1_io_in_c_bits_source),
    .io_in_c_bits_address(monitor_1_io_in_c_bits_address),
    .io_in_c_bits_corrupt(monitor_1_io_in_c_bits_corrupt),
    .io_in_d_ready(monitor_1_io_in_d_ready),
    .io_in_d_valid(monitor_1_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_1_io_in_d_bits_opcode),
    .io_in_d_bits_param(monitor_1_io_in_d_bits_param),
    .io_in_d_bits_size(monitor_1_io_in_d_bits_size),
    .io_in_d_bits_sink(monitor_1_io_in_d_bits_sink),
    .io_in_d_bits_denied(monitor_1_io_in_d_bits_denied),
    .io_in_d_bits_corrupt(monitor_1_io_in_d_bits_corrupt),
    .io_in_e_valid(monitor_1_io_in_e_valid),
    .io_in_e_bits_sink(monitor_1_io_in_e_bits_sink)
  );
  TLMonitor_4 monitor_2 ( // @[Nodes.scala 24:25]
    .clock(monitor_2_clock),
    .reset(monitor_2_reset),
    .io_in_a_ready(monitor_2_io_in_a_ready),
    .io_in_a_valid(monitor_2_io_in_a_valid),
    .io_in_a_bits_opcode(monitor_2_io_in_a_bits_opcode),
    .io_in_a_bits_param(monitor_2_io_in_a_bits_param),
    .io_in_a_bits_size(monitor_2_io_in_a_bits_size),
    .io_in_a_bits_source(monitor_2_io_in_a_bits_source),
    .io_in_a_bits_address(monitor_2_io_in_a_bits_address),
    .io_in_a_bits_mask(monitor_2_io_in_a_bits_mask),
    .io_in_a_bits_corrupt(monitor_2_io_in_a_bits_corrupt),
    .io_in_d_ready(monitor_2_io_in_d_ready),
    .io_in_d_valid(monitor_2_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_2_io_in_d_bits_opcode),
    .io_in_d_bits_param(monitor_2_io_in_d_bits_param),
    .io_in_d_bits_size(monitor_2_io_in_d_bits_size),
    .io_in_d_bits_source(monitor_2_io_in_d_bits_source),
    .io_in_d_bits_sink(monitor_2_io_in_d_bits_sink),
    .io_in_d_bits_denied(monitor_2_io_in_d_bits_denied),
    .io_in_d_bits_corrupt(monitor_2_io_in_d_bits_corrupt)
  );
  TLMonitor_5 monitor_3 ( // @[Nodes.scala 24:25]
    .clock(monitor_3_clock),
    .reset(monitor_3_reset),
    .io_in_d_valid(monitor_3_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_3_io_in_d_bits_opcode),
    .io_in_d_bits_param(monitor_3_io_in_d_bits_param),
    .io_in_d_bits_size(monitor_3_io_in_d_bits_size),
    .io_in_d_bits_sink(monitor_3_io_in_d_bits_sink),
    .io_in_d_bits_denied(monitor_3_io_in_d_bits_denied),
    .io_in_d_bits_corrupt(monitor_3_io_in_d_bits_corrupt)
  );
  assign auto_in_2_a_ready = auto_out_a_ready & allowed_2; // @[Arbiter.scala 123:31]
  assign auto_in_2_d_valid = auto_out_d_valid & requestDOI_0_2; // @[Xbar.scala 179:40]
  assign auto_in_2_d_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_2_d_bits_param = auto_out_d_bits_param; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_2_d_bits_size = auto_out_d_bits_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_2_d_bits_source = auto_out_d_bits_source[0]; // @[Xbar.scala 228:69]
  assign auto_in_2_d_bits_sink = auto_out_d_bits_sink; // @[Xbar.scala 323:53]
  assign auto_in_2_d_bits_denied = auto_out_d_bits_denied; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_2_d_bits_data = auto_out_d_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_2_d_bits_corrupt = auto_out_d_bits_corrupt; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_1_a_ready = auto_out_a_ready & allowed_1; // @[Arbiter.scala 123:31]
  assign auto_in_1_b_valid = auto_out_b_valid; // @[Xbar.scala 179:40]
  assign auto_in_1_b_bits_param = auto_out_b_bits_param; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_1_b_bits_address = auto_out_b_bits_address; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_1_c_ready = auto_out_c_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_1_d_valid = auto_out_d_valid & requestDOI_0_1; // @[Xbar.scala 179:40]
  assign auto_in_1_d_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_1_d_bits_param = auto_out_d_bits_param; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_1_d_bits_size = auto_out_d_bits_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_1_d_bits_sink = auto_out_d_bits_sink; // @[Xbar.scala 323:53]
  assign auto_in_1_d_bits_denied = auto_out_d_bits_denied; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_1_d_bits_data = auto_out_d_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_1_d_bits_corrupt = auto_out_d_bits_corrupt; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_0_a_ready = auto_out_a_ready & allowed_0; // @[Arbiter.scala 123:31]
  assign auto_in_0_d_valid = auto_out_d_valid & requestDOI_0_0; // @[Xbar.scala 179:40]
  assign auto_in_0_d_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_0_d_bits_param = auto_out_d_bits_param; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_0_d_bits_size = auto_out_d_bits_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_0_d_bits_sink = auto_out_d_bits_sink; // @[Xbar.scala 323:53]
  assign auto_in_0_d_bits_denied = auto_out_d_bits_denied; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_0_d_bits_data = auto_out_d_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_0_d_bits_corrupt = auto_out_d_bits_corrupt; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_out_a_valid = idle ? _T_20 : _out_0_a_earlyValid_T_8; // @[Arbiter.scala 125:29]
  assign auto_out_a_bits_opcode = _T_94 | _T_92; // @[Mux.scala 27:73]
  assign auto_out_a_bits_param = _T_87 | _T_85; // @[Mux.scala 27:73]
  assign auto_out_a_bits_size = _T_80 | _T_78; // @[Mux.scala 27:73]
  assign auto_out_a_bits_source = _T_73 | _T_71; // @[Mux.scala 27:73]
  assign auto_out_a_bits_address = _T_66 | _T_64; // @[Mux.scala 27:73]
  assign auto_out_a_bits_mask = _T_59 | _T_57; // @[Mux.scala 27:73]
  assign auto_out_a_bits_data = _T_52 | _T_50; // @[Mux.scala 27:73]
  assign auto_out_a_bits_corrupt = muxStateEarly_0 & auto_in_0_a_bits_corrupt | muxStateEarly_1 &
    auto_in_1_a_bits_corrupt | muxStateEarly_2 & auto_in_2_a_bits_corrupt; // @[Mux.scala 27:73]
  assign auto_out_b_ready = auto_in_1_b_ready; // @[Mux.scala 27:73]
  assign auto_out_c_valid = auto_in_1_c_valid; // @[ReadyValidCancel.scala 21:38]
  assign auto_out_c_bits_opcode = auto_in_1_c_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_c_bits_param = auto_in_1_c_bits_param; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_c_bits_size = auto_in_1_c_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_c_bits_address = auto_in_1_c_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_c_bits_data = auto_in_1_c_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_c_bits_corrupt = auto_in_1_c_bits_corrupt; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_d_ready = requestDOI_0_0 & auto_in_0_d_ready | requestDOI_0_1 & auto_in_1_d_ready | requestDOI_0_2 &
    auto_in_2_d_ready | requestDOI_0_3; // @[Mux.scala 27:73]
  assign auto_out_e_valid = auto_in_1_e_valid; // @[ReadyValidCancel.scala 21:38]
  assign auto_out_e_bits_sink = auto_in_1_e_bits_sink; // @[Xbar.scala 228:69]
  assign monitor_clock = clock;
  assign monitor_reset = reset;
  assign monitor_io_in_a_ready = auto_out_a_ready & allowed_0; // @[Arbiter.scala 123:31]
  assign monitor_io_in_a_valid = auto_in_0_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_opcode = auto_in_0_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_param = auto_in_0_a_bits_param; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_size = auto_in_0_a_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_source = auto_in_0_a_bits_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_address = auto_in_0_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_mask = auto_in_0_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_corrupt = auto_in_0_a_bits_corrupt; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_ready = auto_in_0_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_valid = auto_out_d_valid & requestDOI_0_0; // @[Xbar.scala 179:40]
  assign monitor_io_in_d_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_io_in_d_bits_param = auto_out_d_bits_param; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_io_in_d_bits_size = auto_out_d_bits_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_io_in_d_bits_sink = auto_out_d_bits_sink; // @[Xbar.scala 323:53]
  assign monitor_io_in_d_bits_denied = auto_out_d_bits_denied; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_io_in_d_bits_corrupt = auto_out_d_bits_corrupt; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_1_clock = clock;
  assign monitor_1_reset = reset;
  assign monitor_1_io_in_a_ready = auto_out_a_ready & allowed_1; // @[Arbiter.scala 123:31]
  assign monitor_1_io_in_a_valid = auto_in_1_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_a_bits_opcode = auto_in_1_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_a_bits_param = auto_in_1_a_bits_param; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_a_bits_size = auto_in_1_a_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_a_bits_source = auto_in_1_a_bits_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_a_bits_address = auto_in_1_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_a_bits_mask = auto_in_1_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_a_bits_corrupt = auto_in_1_a_bits_corrupt; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_b_ready = auto_in_1_b_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_b_valid = auto_out_b_valid; // @[Xbar.scala 179:40]
  assign monitor_1_io_in_b_bits_param = auto_out_b_bits_param; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_1_io_in_b_bits_address = auto_out_b_bits_address; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_1_io_in_c_ready = auto_out_c_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_1_io_in_c_valid = auto_in_1_c_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_c_bits_opcode = auto_in_1_c_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_c_bits_param = auto_in_1_c_bits_param; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_c_bits_size = auto_in_1_c_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_c_bits_source = auto_in_1_c_bits_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_c_bits_address = auto_in_1_c_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_c_bits_corrupt = auto_in_1_c_bits_corrupt; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_d_ready = auto_in_1_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_d_valid = auto_out_d_valid & requestDOI_0_1; // @[Xbar.scala 179:40]
  assign monitor_1_io_in_d_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_1_io_in_d_bits_param = auto_out_d_bits_param; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_1_io_in_d_bits_size = auto_out_d_bits_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_1_io_in_d_bits_sink = auto_out_d_bits_sink; // @[Xbar.scala 323:53]
  assign monitor_1_io_in_d_bits_denied = auto_out_d_bits_denied; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_1_io_in_d_bits_corrupt = auto_out_d_bits_corrupt; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_1_io_in_e_valid = auto_in_1_e_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_e_bits_sink = auto_in_1_e_bits_sink; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_2_clock = clock;
  assign monitor_2_reset = reset;
  assign monitor_2_io_in_a_ready = auto_out_a_ready & allowed_2; // @[Arbiter.scala 123:31]
  assign monitor_2_io_in_a_valid = auto_in_2_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_2_io_in_a_bits_opcode = auto_in_2_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_2_io_in_a_bits_param = auto_in_2_a_bits_param; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_2_io_in_a_bits_size = auto_in_2_a_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_2_io_in_a_bits_source = auto_in_2_a_bits_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_2_io_in_a_bits_address = auto_in_2_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_2_io_in_a_bits_mask = auto_in_2_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_2_io_in_a_bits_corrupt = auto_in_2_a_bits_corrupt; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_2_io_in_d_ready = auto_in_2_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_2_io_in_d_valid = auto_out_d_valid & requestDOI_0_2; // @[Xbar.scala 179:40]
  assign monitor_2_io_in_d_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_2_io_in_d_bits_param = auto_out_d_bits_param; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_2_io_in_d_bits_size = auto_out_d_bits_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_2_io_in_d_bits_source = auto_out_d_bits_source[0]; // @[Xbar.scala 228:69]
  assign monitor_2_io_in_d_bits_sink = auto_out_d_bits_sink; // @[Xbar.scala 323:53]
  assign monitor_2_io_in_d_bits_denied = auto_out_d_bits_denied; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_2_io_in_d_bits_corrupt = auto_out_d_bits_corrupt; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_3_clock = clock;
  assign monitor_3_reset = reset;
  assign monitor_3_io_in_d_valid = auto_out_d_valid & requestDOI_0_3; // @[Xbar.scala 179:40]
  assign monitor_3_io_in_d_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_3_io_in_d_bits_param = auto_out_d_bits_param; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_3_io_in_d_bits_size = auto_out_d_bits_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_3_io_in_d_bits_sink = auto_out_d_bits_sink; // @[Xbar.scala 323:53]
  assign monitor_3_io_in_d_bits_denied = auto_out_d_bits_denied; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_3_io_in_d_bits_corrupt = auto_out_d_bits_corrupt; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  always @(posedge clock) begin
    if (reset) begin // @[Arbiter.scala 87:30]
      beatsLeft <= 1'h0; // @[Arbiter.scala 87:30]
    end else if (latch) begin // @[Arbiter.scala 113:23]
      beatsLeft <= initBeats;
    end else begin
      beatsLeft <= beatsLeft - _beatsLeft_T_2;
    end
    if (reset) begin // @[Arbiter.scala 23:23]
      readys_mask <= 4'hf; // @[Arbiter.scala 23:23]
    end else if (latch & |readys_valid) begin // @[Arbiter.scala 27:32]
      readys_mask <= _readys_mask_T_6; // @[Arbiter.scala 28:12]
    end
    if (reset) begin // @[Arbiter.scala 116:26]
      state_0 <= 1'h0; // @[Arbiter.scala 116:26]
    end else if (idle) begin // @[Arbiter.scala 117:30]
      state_0 <= earlyWinner_0;
    end
    if (reset) begin // @[Arbiter.scala 116:26]
      state_1 <= 1'h0; // @[Arbiter.scala 116:26]
    end else if (idle) begin // @[Arbiter.scala 117:30]
      state_1 <= earlyWinner_1;
    end
    if (reset) begin // @[Arbiter.scala 116:26]
      state_2 <= 1'h0; // @[Arbiter.scala 116:26]
    end else if (idle) begin // @[Arbiter.scala 117:30]
      state_2 <= earlyWinner_2;
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_readys_T_3 & ~((~earlyWinner_0 | ~earlyWinner_1) & (~prefixOR_2 | ~earlyWinner_2))) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Arbiter.scala:105 assert((prefixOR zip earlyWinner) map { case (p,w) => !p || !w } reduce {_ && _})\n"
            ); // @[Arbiter.scala 105:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~((~earlyWinner_0 | ~earlyWinner_1) & (~prefixOR_2 | ~earlyWinner_2)) & _readys_T_3) begin
          $fatal; // @[Arbiter.scala 105:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_readys_T_3 & ~(~(auto_in_0_a_valid | auto_in_1_a_valid | auto_in_2_a_valid) | prefixOR_3)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Arbiter.scala:107 assert (!earlyValids.reduce(_||_) || earlyWinner.reduce(_||_))\n"
            ); // @[Arbiter.scala 107:14]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(auto_in_0_a_valid | auto_in_1_a_valid | auto_in_2_a_valid) | prefixOR_3) & _readys_T_3) begin
          $fatal; // @[Arbiter.scala 107:14]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_readys_T_3 & ~(_T_22 | _T_20)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Arbiter.scala:108 assert (!validQuals .reduce(_||_) || validQuals .reduce(_||_))\n"
            ); // @[Arbiter.scala 108:14]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_22 | _T_20) & _readys_T_3) begin
          $fatal; // @[Arbiter.scala 108:14]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  beatsLeft = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  readys_mask = _RAND_1[3:0];
  _RAND_2 = {1{`RANDOM}};
  state_0 = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  state_1 = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  state_2 = _RAND_4[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLMonitor_6(
  input         clock,
  input         reset,
  input         io_in_a_ready,
  input         io_in_a_valid,
  input  [2:0]  io_in_a_bits_opcode,
  input  [2:0]  io_in_a_bits_param,
  input  [1:0]  io_in_a_bits_size,
  input  [8:0]  io_in_a_bits_source,
  input  [31:0] io_in_a_bits_address,
  input  [7:0]  io_in_a_bits_mask,
  input         io_in_a_bits_corrupt,
  input         io_in_d_ready,
  input         io_in_d_valid,
  input  [2:0]  io_in_d_bits_opcode,
  input  [1:0]  io_in_d_bits_size,
  input  [8:0]  io_in_d_bits_source
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [319:0] _RAND_10;
  reg [1279:0] _RAND_11;
  reg [1279:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [319:0] _RAND_16;
  reg [1279:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire  _source_ok_T_4 = io_in_a_bits_source <= 9'h13f; // @[Parameters.scala 57:20]
  wire [5:0] _is_aligned_mask_T_1 = 6'h7 << io_in_a_bits_size; // @[package.scala 234:77]
  wire [2:0] is_aligned_mask = ~_is_aligned_mask_T_1[2:0]; // @[package.scala 234:46]
  wire [31:0] _GEN_15 = {{29'd0}, is_aligned_mask}; // @[Edges.scala 20:16]
  wire [31:0] _is_aligned_T = io_in_a_bits_address & _GEN_15; // @[Edges.scala 20:16]
  wire  is_aligned = _is_aligned_T == 32'h0; // @[Edges.scala 20:24]
  wire [2:0] _mask_sizeOH_T = {{1'd0}, io_in_a_bits_size}; // @[Misc.scala 201:34]
  wire [1:0] mask_sizeOH_shiftAmount = _mask_sizeOH_T[1:0]; // @[OneHot.scala 63:49]
  wire [3:0] _mask_sizeOH_T_1 = 4'h1 << mask_sizeOH_shiftAmount; // @[OneHot.scala 64:12]
  wire [2:0] mask_sizeOH = _mask_sizeOH_T_1[2:0] | 3'h1; // @[Misc.scala 201:81]
  wire  _mask_T = io_in_a_bits_size >= 2'h3; // @[Misc.scala 205:21]
  wire  mask_size = mask_sizeOH[2]; // @[Misc.scala 208:26]
  wire  mask_bit = io_in_a_bits_address[2]; // @[Misc.scala 209:26]
  wire  mask_nbit = ~mask_bit; // @[Misc.scala 210:20]
  wire  mask_acc = _mask_T | mask_size & mask_nbit; // @[Misc.scala 214:29]
  wire  mask_acc_1 = _mask_T | mask_size & mask_bit; // @[Misc.scala 214:29]
  wire  mask_size_1 = mask_sizeOH[1]; // @[Misc.scala 208:26]
  wire  mask_bit_1 = io_in_a_bits_address[1]; // @[Misc.scala 209:26]
  wire  mask_nbit_1 = ~mask_bit_1; // @[Misc.scala 210:20]
  wire  mask_eq_2 = mask_nbit & mask_nbit_1; // @[Misc.scala 213:27]
  wire  mask_acc_2 = mask_acc | mask_size_1 & mask_eq_2; // @[Misc.scala 214:29]
  wire  mask_eq_3 = mask_nbit & mask_bit_1; // @[Misc.scala 213:27]
  wire  mask_acc_3 = mask_acc | mask_size_1 & mask_eq_3; // @[Misc.scala 214:29]
  wire  mask_eq_4 = mask_bit & mask_nbit_1; // @[Misc.scala 213:27]
  wire  mask_acc_4 = mask_acc_1 | mask_size_1 & mask_eq_4; // @[Misc.scala 214:29]
  wire  mask_eq_5 = mask_bit & mask_bit_1; // @[Misc.scala 213:27]
  wire  mask_acc_5 = mask_acc_1 | mask_size_1 & mask_eq_5; // @[Misc.scala 214:29]
  wire  mask_size_2 = mask_sizeOH[0]; // @[Misc.scala 208:26]
  wire  mask_bit_2 = io_in_a_bits_address[0]; // @[Misc.scala 209:26]
  wire  mask_nbit_2 = ~mask_bit_2; // @[Misc.scala 210:20]
  wire  mask_eq_6 = mask_eq_2 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_6 = mask_acc_2 | mask_size_2 & mask_eq_6; // @[Misc.scala 214:29]
  wire  mask_eq_7 = mask_eq_2 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_7 = mask_acc_2 | mask_size_2 & mask_eq_7; // @[Misc.scala 214:29]
  wire  mask_eq_8 = mask_eq_3 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_8 = mask_acc_3 | mask_size_2 & mask_eq_8; // @[Misc.scala 214:29]
  wire  mask_eq_9 = mask_eq_3 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_9 = mask_acc_3 | mask_size_2 & mask_eq_9; // @[Misc.scala 214:29]
  wire  mask_eq_10 = mask_eq_4 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_10 = mask_acc_4 | mask_size_2 & mask_eq_10; // @[Misc.scala 214:29]
  wire  mask_eq_11 = mask_eq_4 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_11 = mask_acc_4 | mask_size_2 & mask_eq_11; // @[Misc.scala 214:29]
  wire  mask_eq_12 = mask_eq_5 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_12 = mask_acc_5 | mask_size_2 & mask_eq_12; // @[Misc.scala 214:29]
  wire  mask_eq_13 = mask_eq_5 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_13 = mask_acc_5 | mask_size_2 & mask_eq_13; // @[Misc.scala 214:29]
  wire [7:0] mask = {mask_acc_13,mask_acc_12,mask_acc_11,mask_acc_10,mask_acc_9,mask_acc_8,mask_acc_7,mask_acc_6}; // @[Cat.scala 33:92]
  wire  _T_10 = ~_source_ok_T_4; // @[Monitor.scala 63:7]
  wire [32:0] _T_12 = {1'b0,$signed(io_in_a_bits_address)}; // @[Parameters.scala 137:49]
  wire  _T_20 = io_in_a_bits_opcode == 3'h6; // @[Monitor.scala 81:25]
  wire [32:0] _T_36 = $signed(_T_12) & 33'sh100000000; // @[Parameters.scala 137:52]
  wire  _T_37 = $signed(_T_36) == 33'sh0; // @[Parameters.scala 137:67]
  wire  _T_69 = io_in_a_bits_param <= 3'h2; // @[Bundles.scala 108:27]
  wire [7:0] _T_73 = ~io_in_a_bits_mask; // @[Monitor.scala 88:18]
  wire  _T_74 = _T_73 == 8'h0; // @[Monitor.scala 88:31]
  wire  _T_78 = ~io_in_a_bits_corrupt; // @[Monitor.scala 89:18]
  wire  _T_82 = io_in_a_bits_opcode == 3'h7; // @[Monitor.scala 92:25]
  wire  _T_135 = io_in_a_bits_param != 3'h0; // @[Monitor.scala 99:31]
  wire  _T_148 = io_in_a_bits_opcode == 3'h4; // @[Monitor.scala 104:25]
  wire  _T_163 = 2'h3 == io_in_a_bits_size; // @[Parameters.scala 91:48]
  wire  _T_170 = _T_163 & _T_37; // @[Parameters.scala 670:56]
  wire  _T_181 = io_in_a_bits_param == 3'h0; // @[Monitor.scala 109:31]
  wire  _T_185 = io_in_a_bits_mask == mask; // @[Monitor.scala 110:30]
  wire  _T_193 = io_in_a_bits_opcode == 3'h0; // @[Monitor.scala 114:25]
  wire  _T_214 = _source_ok_T_4 & _T_170; // @[Monitor.scala 115:71]
  wire  _T_232 = io_in_a_bits_opcode == 3'h1; // @[Monitor.scala 122:25]
  wire [7:0] _T_267 = ~mask; // @[Monitor.scala 127:33]
  wire [7:0] _T_268 = io_in_a_bits_mask & _T_267; // @[Monitor.scala 127:31]
  wire  _T_269 = _T_268 == 8'h0; // @[Monitor.scala 127:40]
  wire  _T_273 = io_in_a_bits_opcode == 3'h2; // @[Monitor.scala 130:25]
  wire  _T_303 = io_in_a_bits_param <= 3'h4; // @[Bundles.scala 138:33]
  wire  _T_311 = io_in_a_bits_opcode == 3'h3; // @[Monitor.scala 138:25]
  wire  _T_341 = io_in_a_bits_param <= 3'h3; // @[Bundles.scala 145:30]
  wire  _T_349 = io_in_a_bits_opcode == 3'h5; // @[Monitor.scala 146:25]
  wire  _T_379 = io_in_a_bits_param <= 3'h1; // @[Bundles.scala 158:28]
  wire  _T_391 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire  _source_ok_T_10 = io_in_d_bits_source <= 9'h13f; // @[Parameters.scala 57:20]
  wire  _T_395 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_399 = io_in_d_bits_size >= 2'h3; // @[Monitor.scala 312:27]
  wire  _T_415 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_443 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _T_472 = io_in_d_bits_opcode == 3'h0; // @[Monitor.scala 338:25]
  wire  _T_489 = io_in_d_bits_opcode == 3'h1; // @[Monitor.scala 346:25]
  wire  _T_507 = io_in_d_bits_opcode == 3'h2; // @[Monitor.scala 354:25]
  wire  _a_first_T = io_in_a_ready & io_in_a_valid; // @[Decoupled.scala 52:35]
  reg  a_first_counter; // @[Edges.scala 228:27]
  wire  a_first_counter1 = a_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  a_first = ~a_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode; // @[Monitor.scala 384:22]
  reg [2:0] param; // @[Monitor.scala 385:22]
  reg [1:0] size; // @[Monitor.scala 386:22]
  reg [8:0] source; // @[Monitor.scala 387:22]
  reg [31:0] address; // @[Monitor.scala 388:22]
  wire  _T_537 = io_in_a_valid & ~a_first; // @[Monitor.scala 389:19]
  wire  _T_538 = io_in_a_bits_opcode == opcode; // @[Monitor.scala 390:32]
  wire  _T_542 = io_in_a_bits_param == param; // @[Monitor.scala 391:32]
  wire  _T_546 = io_in_a_bits_size == size; // @[Monitor.scala 392:32]
  wire  _T_550 = io_in_a_bits_source == source; // @[Monitor.scala 393:32]
  wire  _T_554 = io_in_a_bits_address == address; // @[Monitor.scala 394:32]
  wire  _d_first_T = io_in_d_ready & io_in_d_valid; // @[Decoupled.scala 52:35]
  reg  d_first_counter; // @[Edges.scala 228:27]
  wire  d_first_counter1 = d_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  d_first = ~d_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  reg [1:0] size_1; // @[Monitor.scala 537:22]
  reg [8:0] source_1; // @[Monitor.scala 538:22]
  wire  _T_561 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_562 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  wire  _T_570 = io_in_d_bits_size == size_1; // @[Monitor.scala 544:29]
  wire  _T_574 = io_in_d_bits_source == source_1; // @[Monitor.scala 545:29]
  reg [319:0] inflight; // @[Monitor.scala 611:27]
  reg [1279:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [1279:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg  a_first_counter_1; // @[Edges.scala 228:27]
  wire  a_first_counter1_1 = a_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  a_first_1 = ~a_first_counter_1; // @[Edges.scala 230:25]
  reg  d_first_counter_1; // @[Edges.scala 228:27]
  wire  d_first_counter1_1 = d_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = ~d_first_counter_1; // @[Edges.scala 230:25]
  wire [10:0] _GEN_21 = {io_in_d_bits_source, 2'h0}; // @[Monitor.scala 634:69]
  wire [11:0] _a_opcode_lookup_T = {{1'd0}, _GEN_21}; // @[Monitor.scala 634:69]
  wire [1279:0] _a_opcode_lookup_T_1 = inflight_opcodes >> _a_opcode_lookup_T; // @[Monitor.scala 634:44]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [1279:0] _GEN_60 = {{1264'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 634:97]
  wire [1279:0] _a_opcode_lookup_T_6 = _a_opcode_lookup_T_1 & _GEN_60; // @[Monitor.scala 634:97]
  wire [1279:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[1279:1]}; // @[Monitor.scala 634:152]
  wire [1279:0] _a_size_lookup_T_1 = inflight_sizes >> _a_opcode_lookup_T; // @[Monitor.scala 638:40]
  wire [1279:0] _a_size_lookup_T_6 = _a_size_lookup_T_1 & _GEN_60; // @[Monitor.scala 638:91]
  wire [1279:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[1279:1]}; // @[Monitor.scala 638:144]
  wire  _T_591 = _a_first_T & a_first_1; // @[Monitor.scala 652:27]
  wire [511:0] _a_set_T = 512'h1 << io_in_a_bits_source; // @[OneHot.scala 57:35]
  wire [3:0] _a_opcodes_set_interm_T = {io_in_a_bits_opcode, 1'h0}; // @[Monitor.scala 654:53]
  wire [3:0] _a_opcodes_set_interm_T_1 = _a_opcodes_set_interm_T | 4'h1; // @[Monitor.scala 654:61]
  wire [2:0] _a_sizes_set_interm_T = {io_in_a_bits_size, 1'h0}; // @[Monitor.scala 655:51]
  wire [2:0] _a_sizes_set_interm_T_1 = _a_sizes_set_interm_T | 3'h1; // @[Monitor.scala 655:59]
  wire [10:0] _GEN_71 = {io_in_a_bits_source, 2'h0}; // @[Monitor.scala 656:79]
  wire [11:0] _a_opcodes_set_T = {{1'd0}, _GEN_71}; // @[Monitor.scala 656:79]
  wire [3:0] a_opcodes_set_interm = _a_first_T & a_first_1 ? _a_opcodes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 654:28]
  wire [4098:0] _GEN_427 = {{4095'd0}, a_opcodes_set_interm}; // @[Monitor.scala 656:54]
  wire [4098:0] _a_opcodes_set_T_1 = _GEN_427 << _a_opcodes_set_T; // @[Monitor.scala 656:54]
  wire [2:0] a_sizes_set_interm = _a_first_T & a_first_1 ? _a_sizes_set_interm_T_1 : 3'h0; // @[Monitor.scala 652:72 655:28]
  wire [4097:0] _GEN_428 = {{4095'd0}, a_sizes_set_interm}; // @[Monitor.scala 657:52]
  wire [4097:0] _a_sizes_set_T_1 = _GEN_428 << _a_opcodes_set_T; // @[Monitor.scala 657:52]
  wire [319:0] _T_593 = inflight >> io_in_a_bits_source; // @[Monitor.scala 658:26]
  wire  _T_595 = ~_T_593[0]; // @[Monitor.scala 658:17]
  wire [511:0] _GEN_16 = _a_first_T & a_first_1 ? _a_set_T : 512'h0; // @[Monitor.scala 652:72 653:28]
  wire [4098:0] _GEN_19 = _a_first_T & a_first_1 ? _a_opcodes_set_T_1 : 4099'h0; // @[Monitor.scala 652:72 656:28]
  wire [4097:0] _GEN_20 = _a_first_T & a_first_1 ? _a_sizes_set_T_1 : 4098'h0; // @[Monitor.scala 652:72 657:28]
  wire  _T_606 = ~_T_395; // @[Monitor.scala 675:75]
  wire [511:0] _d_clr_T = 512'h1 << io_in_d_bits_source; // @[OneHot.scala 57:35]
  wire [4110:0] _GEN_429 = {{4095'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [4110:0] _d_opcodes_clr_T_5 = _GEN_429 << _a_opcode_lookup_T; // @[Monitor.scala 677:76]
  wire [511:0] _GEN_22 = _d_first_T & d_first_1 & ~_T_395 ? _d_clr_T : 512'h0; // @[Monitor.scala 675:91 676:21]
  wire [4110:0] _GEN_23 = _d_first_T & d_first_1 & ~_T_395 ? _d_opcodes_clr_T_5 : 4111'h0; // @[Monitor.scala 675:91 677:21]
  wire  _T_608 = io_in_d_valid & d_first_1; // @[Monitor.scala 680:26]
  wire  _T_611 = io_in_d_valid & d_first_1 & _T_606; // @[Monitor.scala 680:71]
  wire  _same_cycle_resp_T_2 = io_in_a_bits_source == io_in_d_bits_source; // @[Monitor.scala 681:113]
  wire  same_cycle_resp = io_in_a_valid & a_first_1 & io_in_a_bits_source == io_in_d_bits_source; // @[Monitor.scala 681:88]
  wire [319:0] _T_612 = inflight >> io_in_d_bits_source; // @[Monitor.scala 682:25]
  wire  _T_614 = _T_612[0] | same_cycle_resp; // @[Monitor.scala 682:49]
  wire [2:0] _GEN_27 = 3'h2 == io_in_a_bits_opcode ? 3'h1 : 3'h0; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_28 = 3'h3 == io_in_a_bits_opcode ? 3'h1 : _GEN_27; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_29 = 3'h4 == io_in_a_bits_opcode ? 3'h1 : _GEN_28; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_30 = 3'h5 == io_in_a_bits_opcode ? 3'h2 : _GEN_29; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_31 = 3'h6 == io_in_a_bits_opcode ? 3'h4 : _GEN_30; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_32 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_31; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_39 = 3'h6 == io_in_a_bits_opcode ? 3'h5 : _GEN_30; // @[Monitor.scala 686:{39,39}]
  wire [2:0] _GEN_40 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_39; // @[Monitor.scala 686:{39,39}]
  wire  _T_619 = io_in_d_bits_opcode == _GEN_40; // @[Monitor.scala 686:39]
  wire  _T_620 = io_in_d_bits_opcode == _GEN_32 | _T_619; // @[Monitor.scala 685:77]
  wire  _T_624 = io_in_a_bits_size == io_in_d_bits_size; // @[Monitor.scala 687:36]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_43 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_44 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_43; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_45 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_44; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_46 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_45; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_47 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_46; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_48 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_47; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_55 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_46; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_56 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_55; // @[Monitor.scala 690:{38,38}]
  wire  _T_631 = io_in_d_bits_opcode == _GEN_56; // @[Monitor.scala 690:38]
  wire  _T_632 = io_in_d_bits_opcode == _GEN_48 | _T_631; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire [3:0] _GEN_75 = {{2'd0}, io_in_d_bits_size}; // @[Monitor.scala 691:36]
  wire  _T_636 = _GEN_75 == a_size_lookup; // @[Monitor.scala 691:36]
  wire  _T_646 = _T_608 & a_first_1 & io_in_a_valid & _same_cycle_resp_T_2 & _T_606; // @[Monitor.scala 694:116]
  wire  _T_648 = ~io_in_d_ready | io_in_a_ready; // @[Monitor.scala 695:32]
  wire [319:0] a_set = _GEN_16[319:0];
  wire [319:0] _inflight_T = inflight | a_set; // @[Monitor.scala 702:27]
  wire [319:0] d_clr = _GEN_22[319:0];
  wire [319:0] _inflight_T_1 = ~d_clr; // @[Monitor.scala 702:38]
  wire [319:0] _inflight_T_2 = _inflight_T & _inflight_T_1; // @[Monitor.scala 702:36]
  wire [1279:0] a_opcodes_set = _GEN_19[1279:0];
  wire [1279:0] _inflight_opcodes_T = inflight_opcodes | a_opcodes_set; // @[Monitor.scala 703:43]
  wire [1279:0] d_opcodes_clr = _GEN_23[1279:0];
  wire [1279:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [1279:0] _inflight_opcodes_T_2 = _inflight_opcodes_T & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [1279:0] a_sizes_set = _GEN_20[1279:0];
  wire [1279:0] _inflight_sizes_T = inflight_sizes | a_sizes_set; // @[Monitor.scala 704:39]
  wire [1279:0] _inflight_sizes_T_2 = _inflight_sizes_T & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [31:0] watchdog; // @[Monitor.scala 706:27]
  wire  _T_657 = ~(|inflight) | plusarg_reader_out == 32'h0 | watchdog < plusarg_reader_out; // @[Monitor.scala 709:47]
  wire [31:0] _watchdog_T_1 = watchdog + 32'h1; // @[Monitor.scala 711:26]
  reg [319:0] inflight_1; // @[Monitor.scala 723:35]
  reg [1279:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg  d_first_counter_2; // @[Edges.scala 228:27]
  wire  d_first_counter1_2 = d_first_counter_2 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = ~d_first_counter_2; // @[Edges.scala 230:25]
  wire [1279:0] _c_size_lookup_T_1 = inflight_sizes_1 >> _a_opcode_lookup_T; // @[Monitor.scala 747:42]
  wire [1279:0] _c_size_lookup_T_6 = _c_size_lookup_T_1 & _GEN_60; // @[Monitor.scala 747:93]
  wire [1279:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[1279:1]}; // @[Monitor.scala 747:146]
  wire [511:0] _GEN_67 = _d_first_T & d_first_2 & _T_395 ? _d_clr_T : 512'h0; // @[Monitor.scala 783:90 784:21]
  wire [4110:0] _GEN_69 = _d_first_T & d_first_2 & _T_395 ? _d_opcodes_clr_T_5 : 4111'h0; // @[Monitor.scala 783:90 786:21]
  wire  _T_690 = io_in_d_valid & d_first_2 & _T_395; // @[Monitor.scala 789:71]
  wire [319:0] _T_691 = inflight_1 >> io_in_d_bits_source; // @[Monitor.scala 791:25]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_701 = _GEN_75 == c_size_lookup; // @[Monitor.scala 795:36]
  wire [319:0] d_clr_1 = _GEN_67[319:0];
  wire [319:0] _inflight_T_4 = ~d_clr_1; // @[Monitor.scala 809:46]
  wire [319:0] _inflight_T_5 = inflight_1 & _inflight_T_4; // @[Monitor.scala 809:44]
  wire [1279:0] d_sizes_clr_1 = _GEN_69[1279:0];
  wire [1279:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [1279:0] _inflight_sizes_T_5 = inflight_sizes_1 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  reg [31:0] watchdog_1; // @[Monitor.scala 813:27]
  wire  _T_721 = ~(|inflight_1) | plusarg_reader_1_out == 32'h0 | watchdog_1 < plusarg_reader_1_out; // @[Monitor.scala 816:47]
  wire [31:0] _watchdog_T_3 = watchdog_1 + 32'h1; // @[Monitor.scala 818:26]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        a_first_counter <= 1'h0;
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      opcode <= io_in_a_bits_opcode; // @[Monitor.scala 397:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      param <= io_in_a_bits_param; // @[Monitor.scala 398:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      size <= io_in_a_bits_size; // @[Monitor.scala 399:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      source <= io_in_a_bits_source; // @[Monitor.scala 400:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      address <= io_in_a_bits_address; // @[Monitor.scala 401:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        d_first_counter <= 1'h0;
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      size_1 <= io_in_d_bits_size; // @[Monitor.scala 552:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      source_1 <= io_in_d_bits_source; // @[Monitor.scala 553:15]
    end
    if (reset) begin // @[Monitor.scala 611:27]
      inflight <= 320'h0; // @[Monitor.scala 611:27]
    end else begin
      inflight <= _inflight_T_2; // @[Monitor.scala 702:14]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 1280'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 1280'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first_1) begin // @[Edges.scala 235:21]
        a_first_counter_1 <= 1'h0;
      end else begin
        a_first_counter_1 <= a_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        d_first_counter_1 <= 1'h0;
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 706:27]
      watchdog <= 32'h0; // @[Monitor.scala 706:27]
    end else if (_a_first_T | _d_first_T) begin // @[Monitor.scala 712:47]
      watchdog <= 32'h0; // @[Monitor.scala 712:58]
    end else begin
      watchdog <= _watchdog_T_1; // @[Monitor.scala 711:14]
    end
    if (reset) begin // @[Monitor.scala 723:35]
      inflight_1 <= 320'h0; // @[Monitor.scala 723:35]
    end else begin
      inflight_1 <= _inflight_T_5; // @[Monitor.scala 809:22]
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 1280'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        d_first_counter_2 <= 1'h0;
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    if (reset) begin // @[Monitor.scala 813:27]
      watchdog_1 <= 32'h0; // @[Monitor.scala 813:27]
    end else if (_d_first_T) begin // @[Monitor.scala 819:47]
      watchdog_1 <= 32'h0; // @[Monitor.scala 819:58]
    end else begin
      watchdog_1 <= _watchdog_T_3; // @[Monitor.scala 818:14]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock from a client which does not support Probe (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock carries invalid source ID (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_mask_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock smaller than a beat (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_mask_T & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock address not aligned to size (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_T_69) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock carries invalid grow param (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_69 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_T_74) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock contains invalid mask (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_74 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_T_78) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock is corrupt (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_78 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm from a client which does not support Probe (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm carries invalid source ID (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & ~_mask_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm smaller than a beat (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_mask_T & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm address not aligned to size (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & ~_T_69) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm carries invalid grow param (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_69 & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & ~_T_135) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm requests NtoB (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_135 & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & ~_T_74) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm contains invalid mask (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_74 & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & ~_T_78) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm is corrupt (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_78 & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which master claims it can't emit (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & ~_T_170) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which slave claims it can't support (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_170 & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get carries invalid source ID (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get address not aligned to size (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & ~_T_181) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get carries invalid param (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_181 & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & ~_T_185) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get contains invalid mask (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_185 & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & ~_T_78) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get is corrupt (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_78 & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_193 & ~reset & ~_T_214) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutFull type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_214 & (io_in_a_valid & _T_193 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_193 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull carries invalid source ID (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_193 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_193 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull address not aligned to size (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_193 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_193 & ~reset & ~_T_181) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull carries invalid param (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_181 & (io_in_a_valid & _T_193 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_193 & ~reset & ~_T_185) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull contains invalid mask (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_185 & (io_in_a_valid & _T_193 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_232 & ~reset & ~_T_214) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutPartial type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_214 & (io_in_a_valid & _T_232 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_232 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial carries invalid source ID (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_232 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_232 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial address not aligned to size (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_232 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_232 & ~reset & ~_T_181) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial carries invalid param (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_181 & (io_in_a_valid & _T_232 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_232 & ~reset & ~_T_269) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial contains invalid mask (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_269 & (io_in_a_valid & _T_232 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_273 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Arithmetic type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_273 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_273 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic carries invalid source ID (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_273 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_273 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic address not aligned to size (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_273 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_273 & ~reset & ~_T_303) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic carries invalid opcode param (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_303 & (io_in_a_valid & _T_273 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_273 & ~reset & ~_T_185) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic contains invalid mask (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_185 & (io_in_a_valid & _T_273 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_311 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Logical type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_311 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_311 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical carries invalid source ID (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_311 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_311 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical address not aligned to size (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_311 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_311 & ~reset & ~_T_341) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical carries invalid opcode param (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_341 & (io_in_a_valid & _T_311 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_311 & ~reset & ~_T_185) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical contains invalid mask (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_185 & (io_in_a_valid & _T_311 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_349 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Hint type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_349 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_349 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint carries invalid source ID (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_349 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_349 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint address not aligned to size (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_349 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_349 & ~reset & ~_T_379) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint carries invalid opcode param (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_379 & (io_in_a_valid & _T_349 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_349 & ~reset & ~_T_185) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint contains invalid mask (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_185 & (io_in_a_valid & _T_349 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_349 & ~reset & ~_T_78) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint is corrupt (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_78 & (io_in_a_valid & _T_349 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_391) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_391 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_395 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck carries invalid source ID (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_395 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_395 & _T_2 & ~_T_399) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck smaller than a beat (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_399 & (io_in_d_valid & _T_395 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid source ID (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_415 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid sink ID (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2 & ~_T_399) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant smaller than a beat (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_399 & (io_in_d_valid & _T_415 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_443 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid source ID (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_443 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_443 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid sink ID (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_443 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_443 & _T_2 & ~_T_399) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData smaller than a beat (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_399 & (io_in_d_valid & _T_443 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_472 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck carries invalid source ID (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_472 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_489 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData carries invalid source ID (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_489 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_507 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck carries invalid source ID (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_507 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_537 & ~reset & ~_T_538) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel opcode changed within multibeat operation (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_538 & (_T_537 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_537 & ~reset & ~_T_542) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel param changed within multibeat operation (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_542 & (_T_537 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_537 & ~reset & ~_T_546) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel size changed within multibeat operation (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_546 & (_T_537 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_537 & ~reset & ~_T_550) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel source changed within multibeat operation (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_550 & (_T_537 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_537 & ~reset & ~_T_554) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel address changed with multibeat operation (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_554 & (_T_537 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_561 & _T_2 & ~_T_562) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_562 & (_T_561 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_561 & _T_2 & ~_T_570) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel size changed within multibeat operation (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_570 & (_T_561 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_561 & _T_2 & ~_T_574) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel source changed within multibeat operation (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_574 & (_T_561 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_591 & ~reset & ~_T_595) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel re-used a source ID (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_595 & (_T_591 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_611 & _T_2 & ~_T_614) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_614 & (_T_611 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_611 & same_cycle_resp & _T_2 & ~_T_620) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_620 & (_T_611 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_611 & same_cycle_resp & _T_2 & ~_T_624) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_624 & (_T_611 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_611 & ~same_cycle_resp & _T_2 & ~_T_632) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_632 & (_T_611 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_611 & ~same_cycle_resp & _T_2 & ~_T_636) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_636 & (_T_611 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_646 & _T_2 & ~_T_648) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_648 & (_T_646 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_657) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_657 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_690 & _T_2 & ~_T_691[0]) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_691[0] & (_T_690 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_690 & _T_2 & ~_T_701) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_701 & (_T_690 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_721) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:70:17)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_721 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  opcode = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  param = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  size = _RAND_3[1:0];
  _RAND_4 = {1{`RANDOM}};
  source = _RAND_4[8:0];
  _RAND_5 = {1{`RANDOM}};
  address = _RAND_5[31:0];
  _RAND_6 = {1{`RANDOM}};
  d_first_counter = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  opcode_1 = _RAND_7[2:0];
  _RAND_8 = {1{`RANDOM}};
  size_1 = _RAND_8[1:0];
  _RAND_9 = {1{`RANDOM}};
  source_1 = _RAND_9[8:0];
  _RAND_10 = {10{`RANDOM}};
  inflight = _RAND_10[319:0];
  _RAND_11 = {40{`RANDOM}};
  inflight_opcodes = _RAND_11[1279:0];
  _RAND_12 = {40{`RANDOM}};
  inflight_sizes = _RAND_12[1279:0];
  _RAND_13 = {1{`RANDOM}};
  a_first_counter_1 = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  watchdog = _RAND_15[31:0];
  _RAND_16 = {10{`RANDOM}};
  inflight_1 = _RAND_16[319:0];
  _RAND_17 = {40{`RANDOM}};
  inflight_sizes_1 = _RAND_17[1279:0];
  _RAND_18 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  watchdog_1 = _RAND_19[31:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLMonitor_7(
  input         clock,
  input         reset,
  input         io_in_a_ready,
  input         io_in_a_valid,
  input  [2:0]  io_in_a_bits_opcode,
  input  [31:0] io_in_a_bits_address,
  input  [7:0]  io_in_a_bits_mask,
  input         io_in_d_ready,
  input         io_in_d_valid,
  input  [2:0]  io_in_d_bits_opcode,
  input  [1:0]  io_in_d_bits_size
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire [31:0] _is_aligned_T = io_in_a_bits_address & 32'h7; // @[Edges.scala 20:16]
  wire  is_aligned = _is_aligned_T == 32'h0; // @[Edges.scala 20:24]
  wire [32:0] _T_7 = {1'b0,$signed(io_in_a_bits_address)}; // @[Parameters.scala 137:49]
  wire  _T_15 = io_in_a_bits_opcode == 3'h6; // @[Monitor.scala 81:25]
  wire [32:0] _T_26 = $signed(_T_7) & 33'sh100000000; // @[Parameters.scala 137:52]
  wire  _T_27 = $signed(_T_26) == 33'sh0; // @[Parameters.scala 137:67]
  wire [7:0] _T_63 = ~io_in_a_bits_mask; // @[Monitor.scala 88:18]
  wire  _T_64 = _T_63 == 8'h0; // @[Monitor.scala 88:31]
  wire  _T_72 = io_in_a_bits_opcode == 3'h7; // @[Monitor.scala 92:25]
  wire  _T_133 = io_in_a_bits_opcode == 3'h4; // @[Monitor.scala 104:25]
  wire  _T_165 = io_in_a_bits_mask == 8'hff; // @[Monitor.scala 110:30]
  wire  _T_173 = io_in_a_bits_opcode == 3'h0; // @[Monitor.scala 114:25]
  wire  _T_207 = io_in_a_bits_opcode == 3'h1; // @[Monitor.scala 122:25]
  wire  _T_243 = io_in_a_bits_opcode == 3'h2; // @[Monitor.scala 130:25]
  wire  _T_276 = io_in_a_bits_opcode == 3'h3; // @[Monitor.scala 138:25]
  wire  _T_309 = io_in_a_bits_opcode == 3'h5; // @[Monitor.scala 146:25]
  wire  _T_346 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire  _T_350 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_354 = io_in_d_bits_size >= 2'h3; // @[Monitor.scala 312:27]
  wire  _T_370 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_398 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _a_first_T = io_in_a_ready & io_in_a_valid; // @[Decoupled.scala 52:35]
  reg  a_first_counter; // @[Edges.scala 228:27]
  wire  a_first_counter1 = a_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  a_first = ~a_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode; // @[Monitor.scala 384:22]
  reg [31:0] address; // @[Monitor.scala 388:22]
  wire  _T_492 = io_in_a_valid & ~a_first; // @[Monitor.scala 389:19]
  wire  _T_493 = io_in_a_bits_opcode == opcode; // @[Monitor.scala 390:32]
  wire  _T_509 = io_in_a_bits_address == address; // @[Monitor.scala 394:32]
  wire  _d_first_T = io_in_d_ready & io_in_d_valid; // @[Decoupled.scala 52:35]
  reg  d_first_counter; // @[Edges.scala 228:27]
  wire  d_first_counter1 = d_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  d_first = ~d_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  reg [1:0] size_1; // @[Monitor.scala 537:22]
  wire  _T_516 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_517 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  wire  _T_525 = io_in_d_bits_size == size_1; // @[Monitor.scala 544:29]
  reg  inflight; // @[Monitor.scala 611:27]
  reg [3:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [3:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg  a_first_counter_1; // @[Edges.scala 228:27]
  wire  a_first_counter1_1 = a_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  a_first_1 = ~a_first_counter_1; // @[Edges.scala 230:25]
  reg  d_first_counter_1; // @[Edges.scala 228:27]
  wire  d_first_counter1_1 = d_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = ~d_first_counter_1; // @[Edges.scala 230:25]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [15:0] _GEN_15 = {{12'd0}, inflight_opcodes}; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_6 = _GEN_15 & _a_opcode_lookup_T_5; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[15:1]}; // @[Monitor.scala 634:152]
  wire [15:0] _GEN_60 = {{12'd0}, inflight_sizes}; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_6 = _GEN_60 & _a_opcode_lookup_T_5; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[15:1]}; // @[Monitor.scala 638:144]
  wire  _T_546 = _a_first_T & a_first_1; // @[Monitor.scala 652:27]
  wire [3:0] _a_opcodes_set_interm_T = {io_in_a_bits_opcode, 1'h0}; // @[Monitor.scala 654:53]
  wire [3:0] _a_opcodes_set_interm_T_1 = _a_opcodes_set_interm_T | 4'h1; // @[Monitor.scala 654:61]
  wire [3:0] a_opcodes_set_interm = _a_first_T & a_first_1 ? _a_opcodes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 654:28]
  wire [18:0] _a_opcodes_set_T_1 = {{15'd0}, a_opcodes_set_interm}; // @[Monitor.scala 656:54]
  wire [2:0] a_sizes_set_interm = _a_first_T & a_first_1 ? 3'h7 : 3'h0; // @[Monitor.scala 652:72 655:28]
  wire [17:0] _a_sizes_set_T_1 = {{15'd0}, a_sizes_set_interm}; // @[Monitor.scala 657:52]
  wire  _T_550 = ~inflight; // @[Monitor.scala 658:17]
  wire [1:0] _GEN_16 = _a_first_T & a_first_1 ? 2'h1 : 2'h0; // @[Monitor.scala 652:72 653:28]
  wire [18:0] _GEN_19 = _a_first_T & a_first_1 ? _a_opcodes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 656:28]
  wire [17:0] _GEN_20 = _a_first_T & a_first_1 ? _a_sizes_set_T_1 : 18'h0; // @[Monitor.scala 652:72 657:28]
  wire  _T_561 = ~_T_350; // @[Monitor.scala 675:75]
  wire [30:0] _d_opcodes_clr_T_5 = {{15'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [1:0] _GEN_22 = _d_first_T & d_first_1 & ~_T_350 ? 2'h1 : 2'h0; // @[Monitor.scala 675:91 676:21]
  wire [30:0] _GEN_23 = _d_first_T & d_first_1 & ~_T_350 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 675:91 677:21]
  wire  _T_563 = io_in_d_valid & d_first_1; // @[Monitor.scala 680:26]
  wire  _T_566 = io_in_d_valid & d_first_1 & _T_561; // @[Monitor.scala 680:71]
  wire  same_cycle_resp = io_in_a_valid & a_first_1; // @[Monitor.scala 681:44]
  wire  _T_569 = inflight | same_cycle_resp; // @[Monitor.scala 682:49]
  wire [2:0] _GEN_27 = 3'h2 == io_in_a_bits_opcode ? 3'h1 : 3'h0; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_28 = 3'h3 == io_in_a_bits_opcode ? 3'h1 : _GEN_27; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_29 = 3'h4 == io_in_a_bits_opcode ? 3'h1 : _GEN_28; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_30 = 3'h5 == io_in_a_bits_opcode ? 3'h2 : _GEN_29; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_31 = 3'h6 == io_in_a_bits_opcode ? 3'h4 : _GEN_30; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_32 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_31; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_39 = 3'h6 == io_in_a_bits_opcode ? 3'h5 : _GEN_30; // @[Monitor.scala 686:{39,39}]
  wire [2:0] _GEN_40 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_39; // @[Monitor.scala 686:{39,39}]
  wire  _T_574 = io_in_d_bits_opcode == _GEN_40; // @[Monitor.scala 686:39]
  wire  _T_575 = io_in_d_bits_opcode == _GEN_32 | _T_574; // @[Monitor.scala 685:77]
  wire  _T_579 = 2'h3 == io_in_d_bits_size; // @[Monitor.scala 687:36]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_43 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_44 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_43; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_45 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_44; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_46 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_45; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_47 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_46; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_48 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_47; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_55 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_46; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_56 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_55; // @[Monitor.scala 690:{38,38}]
  wire  _T_586 = io_in_d_bits_opcode == _GEN_56; // @[Monitor.scala 690:38]
  wire  _T_587 = io_in_d_bits_opcode == _GEN_48 | _T_586; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire [3:0] _GEN_64 = {{2'd0}, io_in_d_bits_size}; // @[Monitor.scala 691:36]
  wire  _T_591 = _GEN_64 == a_size_lookup; // @[Monitor.scala 691:36]
  wire  _T_601 = _T_563 & a_first_1 & io_in_a_valid & _T_561; // @[Monitor.scala 694:116]
  wire  _T_603 = ~io_in_d_ready | io_in_a_ready; // @[Monitor.scala 695:32]
  wire  a_set = _GEN_16[0];
  wire  d_clr = _GEN_22[0];
  wire [3:0] a_opcodes_set = _GEN_19[3:0];
  wire [3:0] _inflight_opcodes_T = inflight_opcodes | a_opcodes_set; // @[Monitor.scala 703:43]
  wire [3:0] d_opcodes_clr = _GEN_23[3:0];
  wire [3:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [3:0] _inflight_opcodes_T_2 = _inflight_opcodes_T & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [3:0] a_sizes_set = _GEN_20[3:0];
  wire [3:0] _inflight_sizes_T = inflight_sizes | a_sizes_set; // @[Monitor.scala 704:39]
  wire [3:0] _inflight_sizes_T_2 = _inflight_sizes_T & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [31:0] watchdog; // @[Monitor.scala 706:27]
  wire  _T_612 = ~(|inflight) | plusarg_reader_out == 32'h0 | watchdog < plusarg_reader_out; // @[Monitor.scala 709:47]
  wire [31:0] _watchdog_T_1 = watchdog + 32'h1; // @[Monitor.scala 711:26]
  reg [3:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg  d_first_counter_2; // @[Edges.scala 228:27]
  wire  d_first_counter1_2 = d_first_counter_2 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = ~d_first_counter_2; // @[Edges.scala 230:25]
  wire [15:0] _GEN_66 = {{12'd0}, inflight_sizes_1}; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_6 = _GEN_66 & _a_opcode_lookup_T_5; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[15:1]}; // @[Monitor.scala 747:146]
  wire [30:0] _GEN_69 = _d_first_T & d_first_2 & _T_350 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 783:90 786:21]
  wire  _T_645 = io_in_d_valid & d_first_2 & _T_350; // @[Monitor.scala 789:71]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_656 = _GEN_64 == c_size_lookup; // @[Monitor.scala 795:36]
  wire [3:0] d_sizes_clr_1 = _GEN_69[3:0];
  wire [3:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [3:0] _inflight_sizes_T_5 = inflight_sizes_1 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        a_first_counter <= 1'h0;
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      opcode <= io_in_a_bits_opcode; // @[Monitor.scala 397:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      address <= io_in_a_bits_address; // @[Monitor.scala 401:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        d_first_counter <= 1'h0;
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      size_1 <= io_in_d_bits_size; // @[Monitor.scala 552:15]
    end
    if (reset) begin // @[Monitor.scala 611:27]
      inflight <= 1'h0; // @[Monitor.scala 611:27]
    end else begin
      inflight <= (inflight | a_set) & ~d_clr; // @[Monitor.scala 702:14]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 4'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 4'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first_1) begin // @[Edges.scala 235:21]
        a_first_counter_1 <= 1'h0;
      end else begin
        a_first_counter_1 <= a_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        d_first_counter_1 <= 1'h0;
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 706:27]
      watchdog <= 32'h0; // @[Monitor.scala 706:27]
    end else if (_a_first_T | _d_first_T) begin // @[Monitor.scala 712:47]
      watchdog <= 32'h0; // @[Monitor.scala 712:58]
    end else begin
      watchdog <= _watchdog_T_1; // @[Monitor.scala 711:14]
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 4'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        d_first_counter_2 <= 1'h0;
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock from a client which does not support Probe (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock address not aligned to size (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~_T_64) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock contains invalid mask (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_64 & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm from a client which does not support Probe (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm address not aligned to size (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_72 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm requests NtoB (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset & ~_T_64) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm contains invalid mask (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_64 & (io_in_a_valid & _T_72 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~_T_27) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which slave claims it can't support (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_27 & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get address not aligned to size (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~_T_165) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get contains invalid mask (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_165 & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_173 & ~reset & ~_T_27) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutFull type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_27 & (io_in_a_valid & _T_173 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_173 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull address not aligned to size (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_173 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_173 & ~reset & ~_T_165) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull contains invalid mask (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_165 & (io_in_a_valid & _T_173 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_207 & ~reset & ~_T_27) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutPartial type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_27 & (io_in_a_valid & _T_207 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_207 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial address not aligned to size (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_207 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_243 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Arithmetic type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_243 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_243 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic address not aligned to size (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_243 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_243 & ~reset & ~_T_165) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic contains invalid mask (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_165 & (io_in_a_valid & _T_243 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_276 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Logical type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_276 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_276 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical address not aligned to size (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_276 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_276 & ~reset & ~_T_165) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical contains invalid mask (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_165 & (io_in_a_valid & _T_276 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_309 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Hint type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_309 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_309 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint address not aligned to size (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_309 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_309 & ~reset & ~_T_165) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint contains invalid mask (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_165 & (io_in_a_valid & _T_309 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_346) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_346 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_350 & _T_2 & ~_T_354) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck smaller than a beat (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_354 & (io_in_d_valid & _T_350 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_370 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid sink ID (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_370 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_370 & _T_2 & ~_T_354) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant smaller than a beat (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_354 & (io_in_d_valid & _T_370 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_398 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid sink ID (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_398 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_398 & _T_2 & ~_T_354) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData smaller than a beat (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_354 & (io_in_d_valid & _T_398 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_492 & ~reset & ~_T_493) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel opcode changed within multibeat operation (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_493 & (_T_492 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_492 & ~reset & ~_T_509) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel address changed with multibeat operation (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_509 & (_T_492 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_516 & _T_2 & ~_T_517) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_517 & (_T_516 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_516 & _T_2 & ~_T_525) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel size changed within multibeat operation (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_525 & (_T_516 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_546 & ~reset & ~_T_550) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel re-used a source ID (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_550 & (_T_546 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_566 & _T_2 & ~_T_569) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_569 & (_T_566 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_566 & same_cycle_resp & _T_2 & ~_T_575) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_575 & (_T_566 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_566 & same_cycle_resp & _T_2 & ~_T_579) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_579 & (_T_566 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_566 & ~same_cycle_resp & _T_2 & ~_T_587) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_587 & (_T_566 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_566 & ~same_cycle_resp & _T_2 & ~_T_591) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_591 & (_T_566 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_601 & _T_2 & ~_T_603) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_603 & (_T_601 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_612) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_612 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_645 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_645 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_645 & _T_2 & ~_T_656) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:85:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_656 & (_T_645 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  opcode = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  address = _RAND_2[31:0];
  _RAND_3 = {1{`RANDOM}};
  d_first_counter = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  opcode_1 = _RAND_4[2:0];
  _RAND_5 = {1{`RANDOM}};
  size_1 = _RAND_5[1:0];
  _RAND_6 = {1{`RANDOM}};
  inflight = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  inflight_opcodes = _RAND_7[3:0];
  _RAND_8 = {1{`RANDOM}};
  inflight_sizes = _RAND_8[3:0];
  _RAND_9 = {1{`RANDOM}};
  a_first_counter_1 = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  watchdog = _RAND_11[31:0];
  _RAND_12 = {1{`RANDOM}};
  inflight_sizes_1 = _RAND_12[3:0];
  _RAND_13 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_13[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLMonitor_8(
  input         clock,
  input         reset,
  input         io_in_a_ready,
  input         io_in_a_valid,
  input  [2:0]  io_in_a_bits_opcode,
  input  [31:0] io_in_a_bits_address,
  input  [7:0]  io_in_a_bits_mask,
  input         io_in_d_ready,
  input         io_in_d_valid,
  input  [2:0]  io_in_d_bits_opcode,
  input  [1:0]  io_in_d_bits_size
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire [31:0] _is_aligned_T = io_in_a_bits_address & 32'h7; // @[Edges.scala 20:16]
  wire  is_aligned = _is_aligned_T == 32'h0; // @[Edges.scala 20:24]
  wire [32:0] _T_7 = {1'b0,$signed(io_in_a_bits_address)}; // @[Parameters.scala 137:49]
  wire  _T_15 = io_in_a_bits_opcode == 3'h6; // @[Monitor.scala 81:25]
  wire [32:0] _T_26 = $signed(_T_7) & 33'sh100000000; // @[Parameters.scala 137:52]
  wire  _T_27 = $signed(_T_26) == 33'sh0; // @[Parameters.scala 137:67]
  wire [7:0] _T_63 = ~io_in_a_bits_mask; // @[Monitor.scala 88:18]
  wire  _T_64 = _T_63 == 8'h0; // @[Monitor.scala 88:31]
  wire  _T_72 = io_in_a_bits_opcode == 3'h7; // @[Monitor.scala 92:25]
  wire  _T_133 = io_in_a_bits_opcode == 3'h4; // @[Monitor.scala 104:25]
  wire  _T_165 = io_in_a_bits_mask == 8'hff; // @[Monitor.scala 110:30]
  wire  _T_173 = io_in_a_bits_opcode == 3'h0; // @[Monitor.scala 114:25]
  wire  _T_207 = io_in_a_bits_opcode == 3'h1; // @[Monitor.scala 122:25]
  wire  _T_243 = io_in_a_bits_opcode == 3'h2; // @[Monitor.scala 130:25]
  wire  _T_276 = io_in_a_bits_opcode == 3'h3; // @[Monitor.scala 138:25]
  wire  _T_309 = io_in_a_bits_opcode == 3'h5; // @[Monitor.scala 146:25]
  wire  _T_346 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire  _T_350 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_354 = io_in_d_bits_size >= 2'h3; // @[Monitor.scala 312:27]
  wire  _T_370 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_398 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _a_first_T = io_in_a_ready & io_in_a_valid; // @[Decoupled.scala 52:35]
  reg  a_first_counter; // @[Edges.scala 228:27]
  wire  a_first_counter1 = a_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  a_first = ~a_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode; // @[Monitor.scala 384:22]
  reg [31:0] address; // @[Monitor.scala 388:22]
  wire  _T_492 = io_in_a_valid & ~a_first; // @[Monitor.scala 389:19]
  wire  _T_493 = io_in_a_bits_opcode == opcode; // @[Monitor.scala 390:32]
  wire  _T_509 = io_in_a_bits_address == address; // @[Monitor.scala 394:32]
  wire  _d_first_T = io_in_d_ready & io_in_d_valid; // @[Decoupled.scala 52:35]
  reg  d_first_counter; // @[Edges.scala 228:27]
  wire  d_first_counter1 = d_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  d_first = ~d_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  reg [1:0] size_1; // @[Monitor.scala 537:22]
  wire  _T_516 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_517 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  wire  _T_525 = io_in_d_bits_size == size_1; // @[Monitor.scala 544:29]
  reg  inflight; // @[Monitor.scala 611:27]
  reg [3:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [3:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg  a_first_counter_1; // @[Edges.scala 228:27]
  wire  a_first_counter1_1 = a_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  a_first_1 = ~a_first_counter_1; // @[Edges.scala 230:25]
  reg  d_first_counter_1; // @[Edges.scala 228:27]
  wire  d_first_counter1_1 = d_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = ~d_first_counter_1; // @[Edges.scala 230:25]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [15:0] _GEN_15 = {{12'd0}, inflight_opcodes}; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_6 = _GEN_15 & _a_opcode_lookup_T_5; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[15:1]}; // @[Monitor.scala 634:152]
  wire [15:0] _GEN_60 = {{12'd0}, inflight_sizes}; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_6 = _GEN_60 & _a_opcode_lookup_T_5; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[15:1]}; // @[Monitor.scala 638:144]
  wire  _T_546 = _a_first_T & a_first_1; // @[Monitor.scala 652:27]
  wire [3:0] _a_opcodes_set_interm_T = {io_in_a_bits_opcode, 1'h0}; // @[Monitor.scala 654:53]
  wire [3:0] _a_opcodes_set_interm_T_1 = _a_opcodes_set_interm_T | 4'h1; // @[Monitor.scala 654:61]
  wire [3:0] a_opcodes_set_interm = _a_first_T & a_first_1 ? _a_opcodes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 654:28]
  wire [18:0] _a_opcodes_set_T_1 = {{15'd0}, a_opcodes_set_interm}; // @[Monitor.scala 656:54]
  wire [2:0] a_sizes_set_interm = _a_first_T & a_first_1 ? 3'h7 : 3'h0; // @[Monitor.scala 652:72 655:28]
  wire [17:0] _a_sizes_set_T_1 = {{15'd0}, a_sizes_set_interm}; // @[Monitor.scala 657:52]
  wire  _T_550 = ~inflight; // @[Monitor.scala 658:17]
  wire [1:0] _GEN_16 = _a_first_T & a_first_1 ? 2'h1 : 2'h0; // @[Monitor.scala 652:72 653:28]
  wire [18:0] _GEN_19 = _a_first_T & a_first_1 ? _a_opcodes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 656:28]
  wire [17:0] _GEN_20 = _a_first_T & a_first_1 ? _a_sizes_set_T_1 : 18'h0; // @[Monitor.scala 652:72 657:28]
  wire  _T_561 = ~_T_350; // @[Monitor.scala 675:75]
  wire [30:0] _d_opcodes_clr_T_5 = {{15'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [1:0] _GEN_22 = _d_first_T & d_first_1 & ~_T_350 ? 2'h1 : 2'h0; // @[Monitor.scala 675:91 676:21]
  wire [30:0] _GEN_23 = _d_first_T & d_first_1 & ~_T_350 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 675:91 677:21]
  wire  _T_563 = io_in_d_valid & d_first_1; // @[Monitor.scala 680:26]
  wire  _T_566 = io_in_d_valid & d_first_1 & _T_561; // @[Monitor.scala 680:71]
  wire  same_cycle_resp = io_in_a_valid & a_first_1; // @[Monitor.scala 681:44]
  wire  _T_569 = inflight | same_cycle_resp; // @[Monitor.scala 682:49]
  wire [2:0] _GEN_27 = 3'h2 == io_in_a_bits_opcode ? 3'h1 : 3'h0; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_28 = 3'h3 == io_in_a_bits_opcode ? 3'h1 : _GEN_27; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_29 = 3'h4 == io_in_a_bits_opcode ? 3'h1 : _GEN_28; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_30 = 3'h5 == io_in_a_bits_opcode ? 3'h2 : _GEN_29; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_31 = 3'h6 == io_in_a_bits_opcode ? 3'h4 : _GEN_30; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_32 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_31; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_39 = 3'h6 == io_in_a_bits_opcode ? 3'h5 : _GEN_30; // @[Monitor.scala 686:{39,39}]
  wire [2:0] _GEN_40 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_39; // @[Monitor.scala 686:{39,39}]
  wire  _T_574 = io_in_d_bits_opcode == _GEN_40; // @[Monitor.scala 686:39]
  wire  _T_575 = io_in_d_bits_opcode == _GEN_32 | _T_574; // @[Monitor.scala 685:77]
  wire  _T_579 = 2'h3 == io_in_d_bits_size; // @[Monitor.scala 687:36]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_43 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_44 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_43; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_45 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_44; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_46 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_45; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_47 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_46; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_48 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_47; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_55 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_46; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_56 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_55; // @[Monitor.scala 690:{38,38}]
  wire  _T_586 = io_in_d_bits_opcode == _GEN_56; // @[Monitor.scala 690:38]
  wire  _T_587 = io_in_d_bits_opcode == _GEN_48 | _T_586; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire [3:0] _GEN_64 = {{2'd0}, io_in_d_bits_size}; // @[Monitor.scala 691:36]
  wire  _T_591 = _GEN_64 == a_size_lookup; // @[Monitor.scala 691:36]
  wire  _T_601 = _T_563 & a_first_1 & io_in_a_valid & _T_561; // @[Monitor.scala 694:116]
  wire  _T_603 = ~io_in_d_ready | io_in_a_ready; // @[Monitor.scala 695:32]
  wire  a_set = _GEN_16[0];
  wire  d_clr = _GEN_22[0];
  wire [3:0] a_opcodes_set = _GEN_19[3:0];
  wire [3:0] _inflight_opcodes_T = inflight_opcodes | a_opcodes_set; // @[Monitor.scala 703:43]
  wire [3:0] d_opcodes_clr = _GEN_23[3:0];
  wire [3:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [3:0] _inflight_opcodes_T_2 = _inflight_opcodes_T & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [3:0] a_sizes_set = _GEN_20[3:0];
  wire [3:0] _inflight_sizes_T = inflight_sizes | a_sizes_set; // @[Monitor.scala 704:39]
  wire [3:0] _inflight_sizes_T_2 = _inflight_sizes_T & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [31:0] watchdog; // @[Monitor.scala 706:27]
  wire  _T_612 = ~(|inflight) | plusarg_reader_out == 32'h0 | watchdog < plusarg_reader_out; // @[Monitor.scala 709:47]
  wire [31:0] _watchdog_T_1 = watchdog + 32'h1; // @[Monitor.scala 711:26]
  reg [3:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg  d_first_counter_2; // @[Edges.scala 228:27]
  wire  d_first_counter1_2 = d_first_counter_2 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = ~d_first_counter_2; // @[Edges.scala 230:25]
  wire [15:0] _GEN_66 = {{12'd0}, inflight_sizes_1}; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_6 = _GEN_66 & _a_opcode_lookup_T_5; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[15:1]}; // @[Monitor.scala 747:146]
  wire [30:0] _GEN_69 = _d_first_T & d_first_2 & _T_350 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 783:90 786:21]
  wire  _T_645 = io_in_d_valid & d_first_2 & _T_350; // @[Monitor.scala 789:71]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_656 = _GEN_64 == c_size_lookup; // @[Monitor.scala 795:36]
  wire [3:0] d_sizes_clr_1 = _GEN_69[3:0];
  wire [3:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [3:0] _inflight_sizes_T_5 = inflight_sizes_1 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        a_first_counter <= 1'h0;
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      opcode <= io_in_a_bits_opcode; // @[Monitor.scala 397:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      address <= io_in_a_bits_address; // @[Monitor.scala 401:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        d_first_counter <= 1'h0;
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      size_1 <= io_in_d_bits_size; // @[Monitor.scala 552:15]
    end
    if (reset) begin // @[Monitor.scala 611:27]
      inflight <= 1'h0; // @[Monitor.scala 611:27]
    end else begin
      inflight <= (inflight | a_set) & ~d_clr; // @[Monitor.scala 702:14]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 4'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 4'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first_1) begin // @[Edges.scala 235:21]
        a_first_counter_1 <= 1'h0;
      end else begin
        a_first_counter_1 <= a_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        d_first_counter_1 <= 1'h0;
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 706:27]
      watchdog <= 32'h0; // @[Monitor.scala 706:27]
    end else if (_a_first_T | _d_first_T) begin // @[Monitor.scala 712:47]
      watchdog <= 32'h0; // @[Monitor.scala 712:58]
    end else begin
      watchdog <= _watchdog_T_1; // @[Monitor.scala 711:14]
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 4'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        d_first_counter_2 <= 1'h0;
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock from a client which does not support Probe (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock address not aligned to size (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~_T_64) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock contains invalid mask (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_64 & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm from a client which does not support Probe (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm address not aligned to size (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_72 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm requests NtoB (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset & ~_T_64) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm contains invalid mask (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_64 & (io_in_a_valid & _T_72 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~_T_27) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which slave claims it can't support (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_27 & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get address not aligned to size (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~_T_165) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get contains invalid mask (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_165 & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_173 & ~reset & ~_T_27) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutFull type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_27 & (io_in_a_valid & _T_173 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_173 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull address not aligned to size (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_173 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_173 & ~reset & ~_T_165) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull contains invalid mask (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_165 & (io_in_a_valid & _T_173 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_207 & ~reset & ~_T_27) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutPartial type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_27 & (io_in_a_valid & _T_207 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_207 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial address not aligned to size (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_207 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_243 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Arithmetic type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_243 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_243 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic address not aligned to size (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_243 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_243 & ~reset & ~_T_165) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic contains invalid mask (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_165 & (io_in_a_valid & _T_243 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_276 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Logical type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_276 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_276 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical address not aligned to size (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_276 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_276 & ~reset & ~_T_165) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical contains invalid mask (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_165 & (io_in_a_valid & _T_276 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_309 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Hint type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_309 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_309 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint address not aligned to size (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_309 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_309 & ~reset & ~_T_165) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint contains invalid mask (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_165 & (io_in_a_valid & _T_309 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_346) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_346 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_350 & _T_2 & ~_T_354) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck smaller than a beat (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_354 & (io_in_d_valid & _T_350 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_370 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid sink ID (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_370 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_370 & _T_2 & ~_T_354) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant smaller than a beat (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_354 & (io_in_d_valid & _T_370 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_398 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid sink ID (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_398 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_398 & _T_2 & ~_T_354) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData smaller than a beat (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_354 & (io_in_d_valid & _T_398 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_492 & ~reset & ~_T_493) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel opcode changed within multibeat operation (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_493 & (_T_492 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_492 & ~reset & ~_T_509) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel address changed with multibeat operation (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_509 & (_T_492 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_516 & _T_2 & ~_T_517) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_517 & (_T_516 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_516 & _T_2 & ~_T_525) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel size changed within multibeat operation (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_525 & (_T_516 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_546 & ~reset & ~_T_550) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel re-used a source ID (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_550 & (_T_546 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_566 & _T_2 & ~_T_569) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_569 & (_T_566 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_566 & same_cycle_resp & _T_2 & ~_T_575) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_575 & (_T_566 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_566 & same_cycle_resp & _T_2 & ~_T_579) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_579 & (_T_566 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_566 & ~same_cycle_resp & _T_2 & ~_T_587) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_587 & (_T_566 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_566 & ~same_cycle_resp & _T_2 & ~_T_591) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_591 & (_T_566 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_601 & _T_2 & ~_T_603) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_603 & (_T_601 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_612) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_612 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_645 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_645 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_645 & _T_2 & ~_T_656) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:86:15)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_656 & (_T_645 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  opcode = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  address = _RAND_2[31:0];
  _RAND_3 = {1{`RANDOM}};
  d_first_counter = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  opcode_1 = _RAND_4[2:0];
  _RAND_5 = {1{`RANDOM}};
  size_1 = _RAND_5[1:0];
  _RAND_6 = {1{`RANDOM}};
  inflight = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  inflight_opcodes = _RAND_7[3:0];
  _RAND_8 = {1{`RANDOM}};
  inflight_sizes = _RAND_8[3:0];
  _RAND_9 = {1{`RANDOM}};
  a_first_counter_1 = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  watchdog = _RAND_11[31:0];
  _RAND_12 = {1{`RANDOM}};
  inflight_sizes_1 = _RAND_12[3:0];
  _RAND_13 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_13[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLXbar_1(
  input         clock,
  input         reset,
  output        auto_in_2_a_ready,
  input         auto_in_2_a_valid,
  input  [2:0]  auto_in_2_a_bits_opcode,
  input  [31:0] auto_in_2_a_bits_address,
  input  [7:0]  auto_in_2_a_bits_mask,
  input  [63:0] auto_in_2_a_bits_data,
  input         auto_in_2_d_ready,
  output        auto_in_2_d_valid,
  output [2:0]  auto_in_2_d_bits_opcode,
  output [63:0] auto_in_2_d_bits_data,
  output        auto_in_1_a_ready,
  input         auto_in_1_a_valid,
  input  [2:0]  auto_in_1_a_bits_opcode,
  input  [31:0] auto_in_1_a_bits_address,
  input  [7:0]  auto_in_1_a_bits_mask,
  input  [63:0] auto_in_1_a_bits_data,
  input         auto_in_1_d_ready,
  output        auto_in_1_d_valid,
  output [2:0]  auto_in_1_d_bits_opcode,
  output [63:0] auto_in_1_d_bits_data,
  output        auto_in_0_a_ready,
  input         auto_in_0_a_valid,
  input  [2:0]  auto_in_0_a_bits_opcode,
  input  [2:0]  auto_in_0_a_bits_param,
  input  [1:0]  auto_in_0_a_bits_size,
  input  [8:0]  auto_in_0_a_bits_source,
  input  [31:0] auto_in_0_a_bits_address,
  input  [7:0]  auto_in_0_a_bits_mask,
  input  [63:0] auto_in_0_a_bits_data,
  input         auto_in_0_a_bits_corrupt,
  input         auto_in_0_d_ready,
  output        auto_in_0_d_valid,
  output [2:0]  auto_in_0_d_bits_opcode,
  output [1:0]  auto_in_0_d_bits_size,
  output [8:0]  auto_in_0_d_bits_source,
  output [63:0] auto_in_0_d_bits_data,
  input         auto_out_a_ready,
  output        auto_out_a_valid,
  output [2:0]  auto_out_a_bits_opcode,
  output [2:0]  auto_out_a_bits_param,
  output [1:0]  auto_out_a_bits_size,
  output [9:0]  auto_out_a_bits_source,
  output [31:0] auto_out_a_bits_address,
  output [7:0]  auto_out_a_bits_mask,
  output [63:0] auto_out_a_bits_data,
  output        auto_out_a_bits_corrupt,
  output        auto_out_d_ready,
  input         auto_out_d_valid,
  input  [2:0]  auto_out_d_bits_opcode,
  input  [1:0]  auto_out_d_bits_size,
  input  [9:0]  auto_out_d_bits_source,
  input  [63:0] auto_out_d_bits_data
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
`endif // RANDOMIZE_REG_INIT
  wire  monitor_clock; // @[Nodes.scala 24:25]
  wire  monitor_reset; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_opcode; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_param; // @[Nodes.scala 24:25]
  wire [1:0] monitor_io_in_a_bits_size; // @[Nodes.scala 24:25]
  wire [8:0] monitor_io_in_a_bits_source; // @[Nodes.scala 24:25]
  wire [31:0] monitor_io_in_a_bits_address; // @[Nodes.scala 24:25]
  wire [7:0] monitor_io_in_a_bits_mask; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_bits_corrupt; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  wire [1:0] monitor_io_in_d_bits_size; // @[Nodes.scala 24:25]
  wire [8:0] monitor_io_in_d_bits_source; // @[Nodes.scala 24:25]
  wire  monitor_1_clock; // @[Nodes.scala 24:25]
  wire  monitor_1_reset; // @[Nodes.scala 24:25]
  wire  monitor_1_io_in_a_ready; // @[Nodes.scala 24:25]
  wire  monitor_1_io_in_a_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_1_io_in_a_bits_opcode; // @[Nodes.scala 24:25]
  wire [31:0] monitor_1_io_in_a_bits_address; // @[Nodes.scala 24:25]
  wire [7:0] monitor_1_io_in_a_bits_mask; // @[Nodes.scala 24:25]
  wire  monitor_1_io_in_d_ready; // @[Nodes.scala 24:25]
  wire  monitor_1_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_1_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  wire [1:0] monitor_1_io_in_d_bits_size; // @[Nodes.scala 24:25]
  wire  monitor_2_clock; // @[Nodes.scala 24:25]
  wire  monitor_2_reset; // @[Nodes.scala 24:25]
  wire  monitor_2_io_in_a_ready; // @[Nodes.scala 24:25]
  wire  monitor_2_io_in_a_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_2_io_in_a_bits_opcode; // @[Nodes.scala 24:25]
  wire [31:0] monitor_2_io_in_a_bits_address; // @[Nodes.scala 24:25]
  wire [7:0] monitor_2_io_in_a_bits_mask; // @[Nodes.scala 24:25]
  wire  monitor_2_io_in_d_ready; // @[Nodes.scala 24:25]
  wire  monitor_2_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_2_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  wire [1:0] monitor_2_io_in_d_bits_size; // @[Nodes.scala 24:25]
  wire  requestDOI_0_0 = ~auto_out_d_bits_source[9]; // @[Parameters.scala 54:32]
  wire  requestDOI_0_1 = auto_out_d_bits_source == 10'h201; // @[Parameters.scala 46:9]
  wire  requestDOI_0_2 = auto_out_d_bits_source == 10'h200; // @[Parameters.scala 46:9]
  reg  beatsLeft; // @[Arbiter.scala 87:30]
  wire  idle = ~beatsLeft; // @[Arbiter.scala 88:28]
  wire  latch = idle & auto_out_a_ready; // @[Arbiter.scala 89:24]
  wire [2:0] readys_valid = {auto_in_2_a_valid,auto_in_1_a_valid,auto_in_0_a_valid}; // @[Cat.scala 33:92]
  wire  _readys_T_3 = ~reset; // @[Arbiter.scala 22:12]
  reg [2:0] readys_mask; // @[Arbiter.scala 23:23]
  wire [2:0] _readys_filter_T = ~readys_mask; // @[Arbiter.scala 24:30]
  wire [2:0] _readys_filter_T_1 = readys_valid & _readys_filter_T; // @[Arbiter.scala 24:28]
  wire [5:0] readys_filter = {_readys_filter_T_1,auto_in_2_a_valid,auto_in_1_a_valid,auto_in_0_a_valid}; // @[Cat.scala 33:92]
  wire [5:0] _GEN_1 = {{1'd0}, readys_filter[5:1]}; // @[package.scala 253:43]
  wire [5:0] _readys_unready_T_1 = readys_filter | _GEN_1; // @[package.scala 253:43]
  wire [5:0] _GEN_2 = {{2'd0}, _readys_unready_T_1[5:2]}; // @[package.scala 253:43]
  wire [5:0] _readys_unready_T_3 = _readys_unready_T_1 | _GEN_2; // @[package.scala 253:43]
  wire [5:0] _readys_unready_T_6 = {readys_mask, 3'h0}; // @[Arbiter.scala 25:66]
  wire [5:0] _GEN_3 = {{1'd0}, _readys_unready_T_3[5:1]}; // @[Arbiter.scala 25:58]
  wire [5:0] readys_unready = _GEN_3 | _readys_unready_T_6; // @[Arbiter.scala 25:58]
  wire [2:0] _readys_readys_T_2 = readys_unready[5:3] & readys_unready[2:0]; // @[Arbiter.scala 26:39]
  wire [2:0] readys_readys = ~_readys_readys_T_2; // @[Arbiter.scala 26:18]
  wire [2:0] _readys_mask_T = readys_readys & readys_valid; // @[Arbiter.scala 28:29]
  wire [3:0] _readys_mask_T_1 = {_readys_mask_T, 1'h0}; // @[package.scala 244:48]
  wire [2:0] _readys_mask_T_3 = _readys_mask_T | _readys_mask_T_1[2:0]; // @[package.scala 244:43]
  wire [4:0] _readys_mask_T_4 = {_readys_mask_T_3, 2'h0}; // @[package.scala 244:48]
  wire [2:0] _readys_mask_T_6 = _readys_mask_T_3 | _readys_mask_T_4[2:0]; // @[package.scala 244:43]
  wire  readys_0 = readys_readys[0]; // @[Arbiter.scala 95:86]
  wire  readys_1 = readys_readys[1]; // @[Arbiter.scala 95:86]
  wire  readys_2 = readys_readys[2]; // @[Arbiter.scala 95:86]
  wire  earlyWinner_0 = readys_0 & auto_in_0_a_valid; // @[Arbiter.scala 97:79]
  wire  earlyWinner_1 = readys_1 & auto_in_1_a_valid; // @[Arbiter.scala 97:79]
  wire  earlyWinner_2 = readys_2 & auto_in_2_a_valid; // @[Arbiter.scala 97:79]
  wire  prefixOR_2 = earlyWinner_0 | earlyWinner_1; // @[Arbiter.scala 104:53]
  wire  _T_15 = auto_in_0_a_valid | auto_in_1_a_valid | auto_in_2_a_valid; // @[Arbiter.scala 107:36]
  wire  _T_16 = ~(auto_in_0_a_valid | auto_in_1_a_valid | auto_in_2_a_valid); // @[Arbiter.scala 107:15]
  reg  state_0; // @[Arbiter.scala 116:26]
  wire  muxStateEarly_0 = idle ? earlyWinner_0 : state_0; // @[Arbiter.scala 117:30]
  reg  state_1; // @[Arbiter.scala 116:26]
  wire  muxStateEarly_1 = idle ? earlyWinner_1 : state_1; // @[Arbiter.scala 117:30]
  reg  state_2; // @[Arbiter.scala 116:26]
  wire  muxStateEarly_2 = idle ? earlyWinner_2 : state_2; // @[Arbiter.scala 117:30]
  wire  _out_0_a_earlyValid_T_6 = state_0 & auto_in_0_a_valid | state_1 & auto_in_1_a_valid | state_2 &
    auto_in_2_a_valid; // @[Mux.scala 27:73]
  wire  out_3_0_a_earlyValid = idle ? _T_15 : _out_0_a_earlyValid_T_6; // @[Arbiter.scala 125:29]
  wire  _beatsLeft_T_2 = auto_out_a_ready & out_3_0_a_earlyValid; // @[ReadyValidCancel.scala 49:33]
  wire  allowed_0 = idle ? readys_0 : state_0; // @[Arbiter.scala 121:24]
  wire  allowed_1 = idle ? readys_1 : state_1; // @[Arbiter.scala 121:24]
  wire  allowed_2 = idle ? readys_2 : state_2; // @[Arbiter.scala 121:24]
  wire [63:0] _T_37 = muxStateEarly_0 ? auto_in_0_a_bits_data : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _T_38 = muxStateEarly_1 ? auto_in_1_a_bits_data : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _T_39 = muxStateEarly_2 ? auto_in_2_a_bits_data : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _T_40 = _T_37 | _T_38; // @[Mux.scala 27:73]
  wire [7:0] _T_42 = muxStateEarly_0 ? auto_in_0_a_bits_mask : 8'h0; // @[Mux.scala 27:73]
  wire [7:0] _T_43 = muxStateEarly_1 ? auto_in_1_a_bits_mask : 8'h0; // @[Mux.scala 27:73]
  wire [7:0] _T_44 = muxStateEarly_2 ? auto_in_2_a_bits_mask : 8'h0; // @[Mux.scala 27:73]
  wire [7:0] _T_45 = _T_42 | _T_43; // @[Mux.scala 27:73]
  wire [31:0] _T_47 = muxStateEarly_0 ? auto_in_0_a_bits_address : 32'h0; // @[Mux.scala 27:73]
  wire [31:0] _T_48 = muxStateEarly_1 ? auto_in_1_a_bits_address : 32'h0; // @[Mux.scala 27:73]
  wire [31:0] _T_49 = muxStateEarly_2 ? auto_in_2_a_bits_address : 32'h0; // @[Mux.scala 27:73]
  wire [31:0] _T_50 = _T_47 | _T_48; // @[Mux.scala 27:73]
  wire [9:0] in_0_a_bits_source = {{1'd0}, auto_in_0_a_bits_source}; // @[Xbar.scala 231:18 237:29]
  wire [9:0] _T_52 = muxStateEarly_0 ? in_0_a_bits_source : 10'h0; // @[Mux.scala 27:73]
  wire [9:0] _T_53 = muxStateEarly_1 ? 10'h201 : 10'h0; // @[Mux.scala 27:73]
  wire [9:0] _T_54 = muxStateEarly_2 ? 10'h200 : 10'h0; // @[Mux.scala 27:73]
  wire [9:0] _T_55 = _T_52 | _T_53; // @[Mux.scala 27:73]
  wire [1:0] _T_57 = muxStateEarly_0 ? auto_in_0_a_bits_size : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _T_58 = muxStateEarly_1 ? 2'h3 : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _T_59 = muxStateEarly_2 ? 2'h3 : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _T_60 = _T_57 | _T_58; // @[Mux.scala 27:73]
  wire [2:0] _T_67 = muxStateEarly_0 ? auto_in_0_a_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_68 = muxStateEarly_1 ? auto_in_1_a_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_69 = muxStateEarly_2 ? auto_in_2_a_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_70 = _T_67 | _T_68; // @[Mux.scala 27:73]
  TLMonitor_6 monitor ( // @[Nodes.scala 24:25]
    .clock(monitor_clock),
    .reset(monitor_reset),
    .io_in_a_ready(monitor_io_in_a_ready),
    .io_in_a_valid(monitor_io_in_a_valid),
    .io_in_a_bits_opcode(monitor_io_in_a_bits_opcode),
    .io_in_a_bits_param(monitor_io_in_a_bits_param),
    .io_in_a_bits_size(monitor_io_in_a_bits_size),
    .io_in_a_bits_source(monitor_io_in_a_bits_source),
    .io_in_a_bits_address(monitor_io_in_a_bits_address),
    .io_in_a_bits_mask(monitor_io_in_a_bits_mask),
    .io_in_a_bits_corrupt(monitor_io_in_a_bits_corrupt),
    .io_in_d_ready(monitor_io_in_d_ready),
    .io_in_d_valid(monitor_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_io_in_d_bits_opcode),
    .io_in_d_bits_size(monitor_io_in_d_bits_size),
    .io_in_d_bits_source(monitor_io_in_d_bits_source)
  );
  TLMonitor_7 monitor_1 ( // @[Nodes.scala 24:25]
    .clock(monitor_1_clock),
    .reset(monitor_1_reset),
    .io_in_a_ready(monitor_1_io_in_a_ready),
    .io_in_a_valid(monitor_1_io_in_a_valid),
    .io_in_a_bits_opcode(monitor_1_io_in_a_bits_opcode),
    .io_in_a_bits_address(monitor_1_io_in_a_bits_address),
    .io_in_a_bits_mask(monitor_1_io_in_a_bits_mask),
    .io_in_d_ready(monitor_1_io_in_d_ready),
    .io_in_d_valid(monitor_1_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_1_io_in_d_bits_opcode),
    .io_in_d_bits_size(monitor_1_io_in_d_bits_size)
  );
  TLMonitor_8 monitor_2 ( // @[Nodes.scala 24:25]
    .clock(monitor_2_clock),
    .reset(monitor_2_reset),
    .io_in_a_ready(monitor_2_io_in_a_ready),
    .io_in_a_valid(monitor_2_io_in_a_valid),
    .io_in_a_bits_opcode(monitor_2_io_in_a_bits_opcode),
    .io_in_a_bits_address(monitor_2_io_in_a_bits_address),
    .io_in_a_bits_mask(monitor_2_io_in_a_bits_mask),
    .io_in_d_ready(monitor_2_io_in_d_ready),
    .io_in_d_valid(monitor_2_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_2_io_in_d_bits_opcode),
    .io_in_d_bits_size(monitor_2_io_in_d_bits_size)
  );
  assign auto_in_2_a_ready = auto_out_a_ready & allowed_2; // @[Arbiter.scala 123:31]
  assign auto_in_2_d_valid = auto_out_d_valid & requestDOI_0_2; // @[Xbar.scala 179:40]
  assign auto_in_2_d_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_2_d_bits_data = auto_out_d_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_1_a_ready = auto_out_a_ready & allowed_1; // @[Arbiter.scala 123:31]
  assign auto_in_1_d_valid = auto_out_d_valid & requestDOI_0_1; // @[Xbar.scala 179:40]
  assign auto_in_1_d_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_1_d_bits_data = auto_out_d_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_0_a_ready = auto_out_a_ready & allowed_0; // @[Arbiter.scala 123:31]
  assign auto_in_0_d_valid = auto_out_d_valid & requestDOI_0_0; // @[Xbar.scala 179:40]
  assign auto_in_0_d_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_0_d_bits_size = auto_out_d_bits_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_0_d_bits_source = auto_out_d_bits_source[8:0]; // @[Xbar.scala 228:69]
  assign auto_in_0_d_bits_data = auto_out_d_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_out_a_valid = idle ? _T_15 : _out_0_a_earlyValid_T_6; // @[Arbiter.scala 125:29]
  assign auto_out_a_bits_opcode = _T_70 | _T_69; // @[Mux.scala 27:73]
  assign auto_out_a_bits_param = muxStateEarly_0 ? auto_in_0_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  assign auto_out_a_bits_size = _T_60 | _T_59; // @[Mux.scala 27:73]
  assign auto_out_a_bits_source = _T_55 | _T_54; // @[Mux.scala 27:73]
  assign auto_out_a_bits_address = _T_50 | _T_49; // @[Mux.scala 27:73]
  assign auto_out_a_bits_mask = _T_45 | _T_44; // @[Mux.scala 27:73]
  assign auto_out_a_bits_data = _T_40 | _T_39; // @[Mux.scala 27:73]
  assign auto_out_a_bits_corrupt = muxStateEarly_0 & auto_in_0_a_bits_corrupt; // @[Mux.scala 27:73]
  assign auto_out_d_ready = requestDOI_0_0 & auto_in_0_d_ready | requestDOI_0_1 & auto_in_1_d_ready | requestDOI_0_2 &
    auto_in_2_d_ready; // @[Mux.scala 27:73]
  assign monitor_clock = clock;
  assign monitor_reset = reset;
  assign monitor_io_in_a_ready = auto_out_a_ready & allowed_0; // @[Arbiter.scala 123:31]
  assign monitor_io_in_a_valid = auto_in_0_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_opcode = auto_in_0_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_param = auto_in_0_a_bits_param; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_size = auto_in_0_a_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_source = auto_in_0_a_bits_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_address = auto_in_0_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_mask = auto_in_0_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_corrupt = auto_in_0_a_bits_corrupt; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_ready = auto_in_0_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_valid = auto_out_d_valid & requestDOI_0_0; // @[Xbar.scala 179:40]
  assign monitor_io_in_d_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_io_in_d_bits_size = auto_out_d_bits_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_io_in_d_bits_source = auto_out_d_bits_source[8:0]; // @[Xbar.scala 228:69]
  assign monitor_1_clock = clock;
  assign monitor_1_reset = reset;
  assign monitor_1_io_in_a_ready = auto_out_a_ready & allowed_1; // @[Arbiter.scala 123:31]
  assign monitor_1_io_in_a_valid = auto_in_1_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_a_bits_opcode = auto_in_1_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_a_bits_address = auto_in_1_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_a_bits_mask = auto_in_1_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_d_ready = auto_in_1_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_1_io_in_d_valid = auto_out_d_valid & requestDOI_0_1; // @[Xbar.scala 179:40]
  assign monitor_1_io_in_d_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_1_io_in_d_bits_size = auto_out_d_bits_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_2_clock = clock;
  assign monitor_2_reset = reset;
  assign monitor_2_io_in_a_ready = auto_out_a_ready & allowed_2; // @[Arbiter.scala 123:31]
  assign monitor_2_io_in_a_valid = auto_in_2_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_2_io_in_a_bits_opcode = auto_in_2_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_2_io_in_a_bits_address = auto_in_2_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_2_io_in_a_bits_mask = auto_in_2_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_2_io_in_d_ready = auto_in_2_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_2_io_in_d_valid = auto_out_d_valid & requestDOI_0_2; // @[Xbar.scala 179:40]
  assign monitor_2_io_in_d_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_2_io_in_d_bits_size = auto_out_d_bits_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  always @(posedge clock) begin
    if (reset) begin // @[Arbiter.scala 87:30]
      beatsLeft <= 1'h0; // @[Arbiter.scala 87:30]
    end else if (latch) begin // @[Arbiter.scala 113:23]
      beatsLeft <= 1'h0;
    end else begin
      beatsLeft <= beatsLeft - _beatsLeft_T_2;
    end
    if (reset) begin // @[Arbiter.scala 23:23]
      readys_mask <= 3'h7; // @[Arbiter.scala 23:23]
    end else if (latch & |readys_valid) begin // @[Arbiter.scala 27:32]
      readys_mask <= _readys_mask_T_6; // @[Arbiter.scala 28:12]
    end
    if (reset) begin // @[Arbiter.scala 116:26]
      state_0 <= 1'h0; // @[Arbiter.scala 116:26]
    end else if (idle) begin // @[Arbiter.scala 117:30]
      state_0 <= earlyWinner_0;
    end
    if (reset) begin // @[Arbiter.scala 116:26]
      state_1 <= 1'h0; // @[Arbiter.scala 116:26]
    end else if (idle) begin // @[Arbiter.scala 117:30]
      state_1 <= earlyWinner_1;
    end
    if (reset) begin // @[Arbiter.scala 116:26]
      state_2 <= 1'h0; // @[Arbiter.scala 116:26]
    end else if (idle) begin // @[Arbiter.scala 117:30]
      state_2 <= earlyWinner_2;
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_readys_T_3 & ~((~earlyWinner_0 | ~earlyWinner_1) & (~prefixOR_2 | ~earlyWinner_2))) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Arbiter.scala:105 assert((prefixOR zip earlyWinner) map { case (p,w) => !p || !w } reduce {_ && _})\n"
            ); // @[Arbiter.scala 105:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~((~earlyWinner_0 | ~earlyWinner_1) & (~prefixOR_2 | ~earlyWinner_2)) & _readys_T_3) begin
          $fatal; // @[Arbiter.scala 105:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_readys_T_3 & ~(~(auto_in_0_a_valid | auto_in_1_a_valid | auto_in_2_a_valid) | (prefixOR_2 | earlyWinner_2))
          ) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Arbiter.scala:107 assert (!earlyValids.reduce(_||_) || earlyWinner.reduce(_||_))\n"
            ); // @[Arbiter.scala 107:14]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(auto_in_0_a_valid | auto_in_1_a_valid | auto_in_2_a_valid) | (prefixOR_2 | earlyWinner_2)) & _readys_T_3
          ) begin
          $fatal; // @[Arbiter.scala 107:14]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_readys_T_3 & ~(_T_16 | _T_15)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Arbiter.scala:108 assert (!validQuals .reduce(_||_) || validQuals .reduce(_||_))\n"
            ); // @[Arbiter.scala 108:14]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_16 | _T_15) & _readys_T_3) begin
          $fatal; // @[Arbiter.scala 108:14]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  beatsLeft = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  readys_mask = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  state_0 = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  state_1 = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  state_2 = _RAND_4[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLMonitor_9(
  input         clock,
  input         reset,
  input         io_in_a_ready,
  input         io_in_a_valid,
  input  [2:0]  io_in_a_bits_opcode,
  input  [2:0]  io_in_a_bits_param,
  input  [1:0]  io_in_a_bits_size,
  input  [8:0]  io_in_a_bits_source,
  input  [31:0] io_in_a_bits_address,
  input  [7:0]  io_in_a_bits_mask,
  input         io_in_a_bits_corrupt,
  input         io_in_d_ready,
  input         io_in_d_valid,
  input  [2:0]  io_in_d_bits_opcode,
  input  [1:0]  io_in_d_bits_size,
  input  [8:0]  io_in_d_bits_source
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [319:0] _RAND_10;
  reg [1279:0] _RAND_11;
  reg [1279:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [319:0] _RAND_16;
  reg [1279:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire  _source_ok_T_4 = io_in_a_bits_source <= 9'h13f; // @[Parameters.scala 57:20]
  wire [5:0] _is_aligned_mask_T_1 = 6'h7 << io_in_a_bits_size; // @[package.scala 234:77]
  wire [2:0] is_aligned_mask = ~_is_aligned_mask_T_1[2:0]; // @[package.scala 234:46]
  wire [31:0] _GEN_15 = {{29'd0}, is_aligned_mask}; // @[Edges.scala 20:16]
  wire [31:0] _is_aligned_T = io_in_a_bits_address & _GEN_15; // @[Edges.scala 20:16]
  wire  is_aligned = _is_aligned_T == 32'h0; // @[Edges.scala 20:24]
  wire [2:0] _mask_sizeOH_T = {{1'd0}, io_in_a_bits_size}; // @[Misc.scala 201:34]
  wire [1:0] mask_sizeOH_shiftAmount = _mask_sizeOH_T[1:0]; // @[OneHot.scala 63:49]
  wire [3:0] _mask_sizeOH_T_1 = 4'h1 << mask_sizeOH_shiftAmount; // @[OneHot.scala 64:12]
  wire [2:0] mask_sizeOH = _mask_sizeOH_T_1[2:0] | 3'h1; // @[Misc.scala 201:81]
  wire  _mask_T = io_in_a_bits_size >= 2'h3; // @[Misc.scala 205:21]
  wire  mask_size = mask_sizeOH[2]; // @[Misc.scala 208:26]
  wire  mask_bit = io_in_a_bits_address[2]; // @[Misc.scala 209:26]
  wire  mask_nbit = ~mask_bit; // @[Misc.scala 210:20]
  wire  mask_acc = _mask_T | mask_size & mask_nbit; // @[Misc.scala 214:29]
  wire  mask_acc_1 = _mask_T | mask_size & mask_bit; // @[Misc.scala 214:29]
  wire  mask_size_1 = mask_sizeOH[1]; // @[Misc.scala 208:26]
  wire  mask_bit_1 = io_in_a_bits_address[1]; // @[Misc.scala 209:26]
  wire  mask_nbit_1 = ~mask_bit_1; // @[Misc.scala 210:20]
  wire  mask_eq_2 = mask_nbit & mask_nbit_1; // @[Misc.scala 213:27]
  wire  mask_acc_2 = mask_acc | mask_size_1 & mask_eq_2; // @[Misc.scala 214:29]
  wire  mask_eq_3 = mask_nbit & mask_bit_1; // @[Misc.scala 213:27]
  wire  mask_acc_3 = mask_acc | mask_size_1 & mask_eq_3; // @[Misc.scala 214:29]
  wire  mask_eq_4 = mask_bit & mask_nbit_1; // @[Misc.scala 213:27]
  wire  mask_acc_4 = mask_acc_1 | mask_size_1 & mask_eq_4; // @[Misc.scala 214:29]
  wire  mask_eq_5 = mask_bit & mask_bit_1; // @[Misc.scala 213:27]
  wire  mask_acc_5 = mask_acc_1 | mask_size_1 & mask_eq_5; // @[Misc.scala 214:29]
  wire  mask_size_2 = mask_sizeOH[0]; // @[Misc.scala 208:26]
  wire  mask_bit_2 = io_in_a_bits_address[0]; // @[Misc.scala 209:26]
  wire  mask_nbit_2 = ~mask_bit_2; // @[Misc.scala 210:20]
  wire  mask_eq_6 = mask_eq_2 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_6 = mask_acc_2 | mask_size_2 & mask_eq_6; // @[Misc.scala 214:29]
  wire  mask_eq_7 = mask_eq_2 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_7 = mask_acc_2 | mask_size_2 & mask_eq_7; // @[Misc.scala 214:29]
  wire  mask_eq_8 = mask_eq_3 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_8 = mask_acc_3 | mask_size_2 & mask_eq_8; // @[Misc.scala 214:29]
  wire  mask_eq_9 = mask_eq_3 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_9 = mask_acc_3 | mask_size_2 & mask_eq_9; // @[Misc.scala 214:29]
  wire  mask_eq_10 = mask_eq_4 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_10 = mask_acc_4 | mask_size_2 & mask_eq_10; // @[Misc.scala 214:29]
  wire  mask_eq_11 = mask_eq_4 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_11 = mask_acc_4 | mask_size_2 & mask_eq_11; // @[Misc.scala 214:29]
  wire  mask_eq_12 = mask_eq_5 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_12 = mask_acc_5 | mask_size_2 & mask_eq_12; // @[Misc.scala 214:29]
  wire  mask_eq_13 = mask_eq_5 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_13 = mask_acc_5 | mask_size_2 & mask_eq_13; // @[Misc.scala 214:29]
  wire [7:0] mask = {mask_acc_13,mask_acc_12,mask_acc_11,mask_acc_10,mask_acc_9,mask_acc_8,mask_acc_7,mask_acc_6}; // @[Cat.scala 33:92]
  wire  _T_10 = ~_source_ok_T_4; // @[Monitor.scala 63:7]
  wire [32:0] _T_12 = {1'b0,$signed(io_in_a_bits_address)}; // @[Parameters.scala 137:49]
  wire  _T_20 = io_in_a_bits_opcode == 3'h6; // @[Monitor.scala 81:25]
  wire [32:0] _T_36 = $signed(_T_12) & 33'sh100000000; // @[Parameters.scala 137:52]
  wire  _T_37 = $signed(_T_36) == 33'sh0; // @[Parameters.scala 137:67]
  wire  _T_69 = io_in_a_bits_param <= 3'h2; // @[Bundles.scala 108:27]
  wire [7:0] _T_73 = ~io_in_a_bits_mask; // @[Monitor.scala 88:18]
  wire  _T_74 = _T_73 == 8'h0; // @[Monitor.scala 88:31]
  wire  _T_78 = ~io_in_a_bits_corrupt; // @[Monitor.scala 89:18]
  wire  _T_82 = io_in_a_bits_opcode == 3'h7; // @[Monitor.scala 92:25]
  wire  _T_135 = io_in_a_bits_param != 3'h0; // @[Monitor.scala 99:31]
  wire  _T_148 = io_in_a_bits_opcode == 3'h4; // @[Monitor.scala 104:25]
  wire  _T_163 = 2'h3 == io_in_a_bits_size; // @[Parameters.scala 91:48]
  wire  _T_170 = _T_163 & _T_37; // @[Parameters.scala 670:56]
  wire  _T_181 = io_in_a_bits_param == 3'h0; // @[Monitor.scala 109:31]
  wire  _T_185 = io_in_a_bits_mask == mask; // @[Monitor.scala 110:30]
  wire  _T_193 = io_in_a_bits_opcode == 3'h0; // @[Monitor.scala 114:25]
  wire  _T_214 = _source_ok_T_4 & _T_170; // @[Monitor.scala 115:71]
  wire  _T_232 = io_in_a_bits_opcode == 3'h1; // @[Monitor.scala 122:25]
  wire [7:0] _T_267 = ~mask; // @[Monitor.scala 127:33]
  wire [7:0] _T_268 = io_in_a_bits_mask & _T_267; // @[Monitor.scala 127:31]
  wire  _T_269 = _T_268 == 8'h0; // @[Monitor.scala 127:40]
  wire  _T_273 = io_in_a_bits_opcode == 3'h2; // @[Monitor.scala 130:25]
  wire  _T_303 = io_in_a_bits_param <= 3'h4; // @[Bundles.scala 138:33]
  wire  _T_311 = io_in_a_bits_opcode == 3'h3; // @[Monitor.scala 138:25]
  wire  _T_341 = io_in_a_bits_param <= 3'h3; // @[Bundles.scala 145:30]
  wire  _T_349 = io_in_a_bits_opcode == 3'h5; // @[Monitor.scala 146:25]
  wire  _T_379 = io_in_a_bits_param <= 3'h1; // @[Bundles.scala 158:28]
  wire  _T_391 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire  _source_ok_T_10 = io_in_d_bits_source <= 9'h13f; // @[Parameters.scala 57:20]
  wire  _T_395 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_399 = io_in_d_bits_size >= 2'h3; // @[Monitor.scala 312:27]
  wire  _T_415 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_443 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _T_472 = io_in_d_bits_opcode == 3'h0; // @[Monitor.scala 338:25]
  wire  _T_489 = io_in_d_bits_opcode == 3'h1; // @[Monitor.scala 346:25]
  wire  _T_507 = io_in_d_bits_opcode == 3'h2; // @[Monitor.scala 354:25]
  wire  _a_first_T = io_in_a_ready & io_in_a_valid; // @[Decoupled.scala 52:35]
  reg  a_first_counter; // @[Edges.scala 228:27]
  wire  a_first_counter1 = a_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  a_first = ~a_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode; // @[Monitor.scala 384:22]
  reg [2:0] param; // @[Monitor.scala 385:22]
  reg [1:0] size; // @[Monitor.scala 386:22]
  reg [8:0] source; // @[Monitor.scala 387:22]
  reg [31:0] address; // @[Monitor.scala 388:22]
  wire  _T_537 = io_in_a_valid & ~a_first; // @[Monitor.scala 389:19]
  wire  _T_538 = io_in_a_bits_opcode == opcode; // @[Monitor.scala 390:32]
  wire  _T_542 = io_in_a_bits_param == param; // @[Monitor.scala 391:32]
  wire  _T_546 = io_in_a_bits_size == size; // @[Monitor.scala 392:32]
  wire  _T_550 = io_in_a_bits_source == source; // @[Monitor.scala 393:32]
  wire  _T_554 = io_in_a_bits_address == address; // @[Monitor.scala 394:32]
  wire  _d_first_T = io_in_d_ready & io_in_d_valid; // @[Decoupled.scala 52:35]
  reg  d_first_counter; // @[Edges.scala 228:27]
  wire  d_first_counter1 = d_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  d_first = ~d_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  reg [1:0] size_1; // @[Monitor.scala 537:22]
  reg [8:0] source_1; // @[Monitor.scala 538:22]
  wire  _T_561 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_562 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  wire  _T_570 = io_in_d_bits_size == size_1; // @[Monitor.scala 544:29]
  wire  _T_574 = io_in_d_bits_source == source_1; // @[Monitor.scala 545:29]
  reg [319:0] inflight; // @[Monitor.scala 611:27]
  reg [1279:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [1279:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg  a_first_counter_1; // @[Edges.scala 228:27]
  wire  a_first_counter1_1 = a_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  a_first_1 = ~a_first_counter_1; // @[Edges.scala 230:25]
  reg  d_first_counter_1; // @[Edges.scala 228:27]
  wire  d_first_counter1_1 = d_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = ~d_first_counter_1; // @[Edges.scala 230:25]
  wire [10:0] _GEN_21 = {io_in_d_bits_source, 2'h0}; // @[Monitor.scala 634:69]
  wire [11:0] _a_opcode_lookup_T = {{1'd0}, _GEN_21}; // @[Monitor.scala 634:69]
  wire [1279:0] _a_opcode_lookup_T_1 = inflight_opcodes >> _a_opcode_lookup_T; // @[Monitor.scala 634:44]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [1279:0] _GEN_60 = {{1264'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 634:97]
  wire [1279:0] _a_opcode_lookup_T_6 = _a_opcode_lookup_T_1 & _GEN_60; // @[Monitor.scala 634:97]
  wire [1279:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[1279:1]}; // @[Monitor.scala 634:152]
  wire [1279:0] _a_size_lookup_T_1 = inflight_sizes >> _a_opcode_lookup_T; // @[Monitor.scala 638:40]
  wire [1279:0] _a_size_lookup_T_6 = _a_size_lookup_T_1 & _GEN_60; // @[Monitor.scala 638:91]
  wire [1279:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[1279:1]}; // @[Monitor.scala 638:144]
  wire  _T_591 = _a_first_T & a_first_1; // @[Monitor.scala 652:27]
  wire [511:0] _a_set_T = 512'h1 << io_in_a_bits_source; // @[OneHot.scala 57:35]
  wire [3:0] _a_opcodes_set_interm_T = {io_in_a_bits_opcode, 1'h0}; // @[Monitor.scala 654:53]
  wire [3:0] _a_opcodes_set_interm_T_1 = _a_opcodes_set_interm_T | 4'h1; // @[Monitor.scala 654:61]
  wire [2:0] _a_sizes_set_interm_T = {io_in_a_bits_size, 1'h0}; // @[Monitor.scala 655:51]
  wire [2:0] _a_sizes_set_interm_T_1 = _a_sizes_set_interm_T | 3'h1; // @[Monitor.scala 655:59]
  wire [10:0] _GEN_71 = {io_in_a_bits_source, 2'h0}; // @[Monitor.scala 656:79]
  wire [11:0] _a_opcodes_set_T = {{1'd0}, _GEN_71}; // @[Monitor.scala 656:79]
  wire [3:0] a_opcodes_set_interm = _a_first_T & a_first_1 ? _a_opcodes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 654:28]
  wire [4098:0] _GEN_427 = {{4095'd0}, a_opcodes_set_interm}; // @[Monitor.scala 656:54]
  wire [4098:0] _a_opcodes_set_T_1 = _GEN_427 << _a_opcodes_set_T; // @[Monitor.scala 656:54]
  wire [2:0] a_sizes_set_interm = _a_first_T & a_first_1 ? _a_sizes_set_interm_T_1 : 3'h0; // @[Monitor.scala 652:72 655:28]
  wire [4097:0] _GEN_428 = {{4095'd0}, a_sizes_set_interm}; // @[Monitor.scala 657:52]
  wire [4097:0] _a_sizes_set_T_1 = _GEN_428 << _a_opcodes_set_T; // @[Monitor.scala 657:52]
  wire [319:0] _T_593 = inflight >> io_in_a_bits_source; // @[Monitor.scala 658:26]
  wire  _T_595 = ~_T_593[0]; // @[Monitor.scala 658:17]
  wire [511:0] _GEN_16 = _a_first_T & a_first_1 ? _a_set_T : 512'h0; // @[Monitor.scala 652:72 653:28]
  wire [4098:0] _GEN_19 = _a_first_T & a_first_1 ? _a_opcodes_set_T_1 : 4099'h0; // @[Monitor.scala 652:72 656:28]
  wire [4097:0] _GEN_20 = _a_first_T & a_first_1 ? _a_sizes_set_T_1 : 4098'h0; // @[Monitor.scala 652:72 657:28]
  wire  _T_606 = ~_T_395; // @[Monitor.scala 675:75]
  wire [511:0] _d_clr_T = 512'h1 << io_in_d_bits_source; // @[OneHot.scala 57:35]
  wire [4110:0] _GEN_429 = {{4095'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [4110:0] _d_opcodes_clr_T_5 = _GEN_429 << _a_opcode_lookup_T; // @[Monitor.scala 677:76]
  wire [511:0] _GEN_22 = _d_first_T & d_first_1 & ~_T_395 ? _d_clr_T : 512'h0; // @[Monitor.scala 675:91 676:21]
  wire [4110:0] _GEN_23 = _d_first_T & d_first_1 & ~_T_395 ? _d_opcodes_clr_T_5 : 4111'h0; // @[Monitor.scala 675:91 677:21]
  wire  _T_608 = io_in_d_valid & d_first_1; // @[Monitor.scala 680:26]
  wire  _T_611 = io_in_d_valid & d_first_1 & _T_606; // @[Monitor.scala 680:71]
  wire  _same_cycle_resp_T_2 = io_in_a_bits_source == io_in_d_bits_source; // @[Monitor.scala 681:113]
  wire  same_cycle_resp = io_in_a_valid & a_first_1 & io_in_a_bits_source == io_in_d_bits_source; // @[Monitor.scala 681:88]
  wire [319:0] _T_612 = inflight >> io_in_d_bits_source; // @[Monitor.scala 682:25]
  wire  _T_614 = _T_612[0] | same_cycle_resp; // @[Monitor.scala 682:49]
  wire [2:0] _GEN_27 = 3'h2 == io_in_a_bits_opcode ? 3'h1 : 3'h0; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_28 = 3'h3 == io_in_a_bits_opcode ? 3'h1 : _GEN_27; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_29 = 3'h4 == io_in_a_bits_opcode ? 3'h1 : _GEN_28; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_30 = 3'h5 == io_in_a_bits_opcode ? 3'h2 : _GEN_29; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_31 = 3'h6 == io_in_a_bits_opcode ? 3'h4 : _GEN_30; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_32 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_31; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_39 = 3'h6 == io_in_a_bits_opcode ? 3'h5 : _GEN_30; // @[Monitor.scala 686:{39,39}]
  wire [2:0] _GEN_40 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_39; // @[Monitor.scala 686:{39,39}]
  wire  _T_619 = io_in_d_bits_opcode == _GEN_40; // @[Monitor.scala 686:39]
  wire  _T_620 = io_in_d_bits_opcode == _GEN_32 | _T_619; // @[Monitor.scala 685:77]
  wire  _T_624 = io_in_a_bits_size == io_in_d_bits_size; // @[Monitor.scala 687:36]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_43 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_44 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_43; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_45 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_44; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_46 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_45; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_47 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_46; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_48 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_47; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_55 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_46; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_56 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_55; // @[Monitor.scala 690:{38,38}]
  wire  _T_631 = io_in_d_bits_opcode == _GEN_56; // @[Monitor.scala 690:38]
  wire  _T_632 = io_in_d_bits_opcode == _GEN_48 | _T_631; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire [3:0] _GEN_75 = {{2'd0}, io_in_d_bits_size}; // @[Monitor.scala 691:36]
  wire  _T_636 = _GEN_75 == a_size_lookup; // @[Monitor.scala 691:36]
  wire  _T_646 = _T_608 & a_first_1 & io_in_a_valid & _same_cycle_resp_T_2 & _T_606; // @[Monitor.scala 694:116]
  wire  _T_648 = ~io_in_d_ready | io_in_a_ready; // @[Monitor.scala 695:32]
  wire [319:0] a_set = _GEN_16[319:0];
  wire [319:0] _inflight_T = inflight | a_set; // @[Monitor.scala 702:27]
  wire [319:0] d_clr = _GEN_22[319:0];
  wire [319:0] _inflight_T_1 = ~d_clr; // @[Monitor.scala 702:38]
  wire [319:0] _inflight_T_2 = _inflight_T & _inflight_T_1; // @[Monitor.scala 702:36]
  wire [1279:0] a_opcodes_set = _GEN_19[1279:0];
  wire [1279:0] _inflight_opcodes_T = inflight_opcodes | a_opcodes_set; // @[Monitor.scala 703:43]
  wire [1279:0] d_opcodes_clr = _GEN_23[1279:0];
  wire [1279:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [1279:0] _inflight_opcodes_T_2 = _inflight_opcodes_T & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [1279:0] a_sizes_set = _GEN_20[1279:0];
  wire [1279:0] _inflight_sizes_T = inflight_sizes | a_sizes_set; // @[Monitor.scala 704:39]
  wire [1279:0] _inflight_sizes_T_2 = _inflight_sizes_T & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [31:0] watchdog; // @[Monitor.scala 706:27]
  wire  _T_657 = ~(|inflight) | plusarg_reader_out == 32'h0 | watchdog < plusarg_reader_out; // @[Monitor.scala 709:47]
  wire [31:0] _watchdog_T_1 = watchdog + 32'h1; // @[Monitor.scala 711:26]
  reg [319:0] inflight_1; // @[Monitor.scala 723:35]
  reg [1279:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg  d_first_counter_2; // @[Edges.scala 228:27]
  wire  d_first_counter1_2 = d_first_counter_2 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = ~d_first_counter_2; // @[Edges.scala 230:25]
  wire [1279:0] _c_size_lookup_T_1 = inflight_sizes_1 >> _a_opcode_lookup_T; // @[Monitor.scala 747:42]
  wire [1279:0] _c_size_lookup_T_6 = _c_size_lookup_T_1 & _GEN_60; // @[Monitor.scala 747:93]
  wire [1279:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[1279:1]}; // @[Monitor.scala 747:146]
  wire [511:0] _GEN_67 = _d_first_T & d_first_2 & _T_395 ? _d_clr_T : 512'h0; // @[Monitor.scala 783:90 784:21]
  wire [4110:0] _GEN_69 = _d_first_T & d_first_2 & _T_395 ? _d_opcodes_clr_T_5 : 4111'h0; // @[Monitor.scala 783:90 786:21]
  wire  _T_690 = io_in_d_valid & d_first_2 & _T_395; // @[Monitor.scala 789:71]
  wire [319:0] _T_691 = inflight_1 >> io_in_d_bits_source; // @[Monitor.scala 791:25]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_701 = _GEN_75 == c_size_lookup; // @[Monitor.scala 795:36]
  wire [319:0] d_clr_1 = _GEN_67[319:0];
  wire [319:0] _inflight_T_4 = ~d_clr_1; // @[Monitor.scala 809:46]
  wire [319:0] _inflight_T_5 = inflight_1 & _inflight_T_4; // @[Monitor.scala 809:44]
  wire [1279:0] d_sizes_clr_1 = _GEN_69[1279:0];
  wire [1279:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [1279:0] _inflight_sizes_T_5 = inflight_sizes_1 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  reg [31:0] watchdog_1; // @[Monitor.scala 813:27]
  wire  _T_721 = ~(|inflight_1) | plusarg_reader_1_out == 32'h0 | watchdog_1 < plusarg_reader_1_out; // @[Monitor.scala 816:47]
  wire [31:0] _watchdog_T_3 = watchdog_1 + 32'h1; // @[Monitor.scala 818:26]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        a_first_counter <= 1'h0;
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      opcode <= io_in_a_bits_opcode; // @[Monitor.scala 397:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      param <= io_in_a_bits_param; // @[Monitor.scala 398:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      size <= io_in_a_bits_size; // @[Monitor.scala 399:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      source <= io_in_a_bits_source; // @[Monitor.scala 400:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      address <= io_in_a_bits_address; // @[Monitor.scala 401:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        d_first_counter <= 1'h0;
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      size_1 <= io_in_d_bits_size; // @[Monitor.scala 552:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      source_1 <= io_in_d_bits_source; // @[Monitor.scala 553:15]
    end
    if (reset) begin // @[Monitor.scala 611:27]
      inflight <= 320'h0; // @[Monitor.scala 611:27]
    end else begin
      inflight <= _inflight_T_2; // @[Monitor.scala 702:14]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 1280'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 1280'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first_1) begin // @[Edges.scala 235:21]
        a_first_counter_1 <= 1'h0;
      end else begin
        a_first_counter_1 <= a_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        d_first_counter_1 <= 1'h0;
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 706:27]
      watchdog <= 32'h0; // @[Monitor.scala 706:27]
    end else if (_a_first_T | _d_first_T) begin // @[Monitor.scala 712:47]
      watchdog <= 32'h0; // @[Monitor.scala 712:58]
    end else begin
      watchdog <= _watchdog_T_1; // @[Monitor.scala 711:14]
    end
    if (reset) begin // @[Monitor.scala 723:35]
      inflight_1 <= 320'h0; // @[Monitor.scala 723:35]
    end else begin
      inflight_1 <= _inflight_T_5; // @[Monitor.scala 809:22]
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 1280'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        d_first_counter_2 <= 1'h0;
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    if (reset) begin // @[Monitor.scala 813:27]
      watchdog_1 <= 32'h0; // @[Monitor.scala 813:27]
    end else if (_d_first_T) begin // @[Monitor.scala 819:47]
      watchdog_1 <= 32'h0; // @[Monitor.scala 819:58]
    end else begin
      watchdog_1 <= _watchdog_T_3; // @[Monitor.scala 818:14]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock from a client which does not support Probe (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock carries invalid source ID (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_mask_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock smaller than a beat (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_mask_T & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock address not aligned to size (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_T_69) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock carries invalid grow param (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_69 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_T_74) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock contains invalid mask (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_74 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_T_78) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock is corrupt (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_78 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm from a client which does not support Probe (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm carries invalid source ID (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & ~_mask_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm smaller than a beat (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_mask_T & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm address not aligned to size (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & ~_T_69) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm carries invalid grow param (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_69 & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & ~_T_135) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm requests NtoB (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_135 & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & ~_T_74) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm contains invalid mask (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_74 & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & ~_T_78) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm is corrupt (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_78 & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which master claims it can't emit (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & ~_T_170) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which slave claims it can't support (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_170 & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get carries invalid source ID (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get address not aligned to size (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & ~_T_181) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get carries invalid param (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_181 & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & ~_T_185) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get contains invalid mask (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_185 & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & ~_T_78) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get is corrupt (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_78 & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_193 & ~reset & ~_T_214) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutFull type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_214 & (io_in_a_valid & _T_193 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_193 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull carries invalid source ID (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_193 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_193 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull address not aligned to size (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_193 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_193 & ~reset & ~_T_181) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull carries invalid param (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_181 & (io_in_a_valid & _T_193 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_193 & ~reset & ~_T_185) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull contains invalid mask (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_185 & (io_in_a_valid & _T_193 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_232 & ~reset & ~_T_214) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutPartial type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_214 & (io_in_a_valid & _T_232 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_232 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial carries invalid source ID (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_232 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_232 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial address not aligned to size (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_232 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_232 & ~reset & ~_T_181) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial carries invalid param (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_181 & (io_in_a_valid & _T_232 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_232 & ~reset & ~_T_269) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial contains invalid mask (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_269 & (io_in_a_valid & _T_232 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_273 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Arithmetic type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_273 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_273 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic carries invalid source ID (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_273 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_273 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic address not aligned to size (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_273 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_273 & ~reset & ~_T_303) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic carries invalid opcode param (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_303 & (io_in_a_valid & _T_273 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_273 & ~reset & ~_T_185) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic contains invalid mask (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_185 & (io_in_a_valid & _T_273 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_311 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Logical type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_311 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_311 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical carries invalid source ID (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_311 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_311 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical address not aligned to size (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_311 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_311 & ~reset & ~_T_341) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical carries invalid opcode param (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_341 & (io_in_a_valid & _T_311 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_311 & ~reset & ~_T_185) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical contains invalid mask (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_185 & (io_in_a_valid & _T_311 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_349 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Hint type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_349 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_349 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint carries invalid source ID (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_349 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_349 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint address not aligned to size (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_349 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_349 & ~reset & ~_T_379) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint carries invalid opcode param (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_379 & (io_in_a_valid & _T_349 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_349 & ~reset & ~_T_185) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint contains invalid mask (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_185 & (io_in_a_valid & _T_349 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_349 & ~reset & ~_T_78) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint is corrupt (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_78 & (io_in_a_valid & _T_349 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_391) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_391 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_395 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck carries invalid source ID (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_395 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_395 & _T_2 & ~_T_399) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck smaller than a beat (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_399 & (io_in_d_valid & _T_395 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid source ID (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_415 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid sink ID (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2 & ~_T_399) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant smaller than a beat (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_399 & (io_in_d_valid & _T_415 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_443 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid source ID (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_443 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_443 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid sink ID (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_443 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_443 & _T_2 & ~_T_399) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData smaller than a beat (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_399 & (io_in_d_valid & _T_443 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_472 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck carries invalid source ID (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_472 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_489 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData carries invalid source ID (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_489 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_507 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck carries invalid source ID (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_507 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_537 & ~reset & ~_T_538) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel opcode changed within multibeat operation (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_538 & (_T_537 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_537 & ~reset & ~_T_542) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel param changed within multibeat operation (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_542 & (_T_537 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_537 & ~reset & ~_T_546) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel size changed within multibeat operation (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_546 & (_T_537 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_537 & ~reset & ~_T_550) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel source changed within multibeat operation (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_550 & (_T_537 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_537 & ~reset & ~_T_554) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel address changed with multibeat operation (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_554 & (_T_537 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_561 & _T_2 & ~_T_562) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_562 & (_T_561 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_561 & _T_2 & ~_T_570) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel size changed within multibeat operation (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_570 & (_T_561 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_561 & _T_2 & ~_T_574) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel source changed within multibeat operation (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_574 & (_T_561 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_591 & ~reset & ~_T_595) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel re-used a source ID (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_595 & (_T_591 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_611 & _T_2 & ~_T_614) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_614 & (_T_611 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_611 & same_cycle_resp & _T_2 & ~_T_620) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_620 & (_T_611 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_611 & same_cycle_resp & _T_2 & ~_T_624) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_624 & (_T_611 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_611 & ~same_cycle_resp & _T_2 & ~_T_632) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_632 & (_T_611 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_611 & ~same_cycle_resp & _T_2 & ~_T_636) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_636 & (_T_611 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_646 & _T_2 & ~_T_648) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_648 & (_T_646 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_657) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_657 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_690 & _T_2 & ~_T_691[0]) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_691[0] & (_T_690 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_690 & _T_2 & ~_T_701) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_701 & (_T_690 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_721) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:70:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_721 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  opcode = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  param = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  size = _RAND_3[1:0];
  _RAND_4 = {1{`RANDOM}};
  source = _RAND_4[8:0];
  _RAND_5 = {1{`RANDOM}};
  address = _RAND_5[31:0];
  _RAND_6 = {1{`RANDOM}};
  d_first_counter = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  opcode_1 = _RAND_7[2:0];
  _RAND_8 = {1{`RANDOM}};
  size_1 = _RAND_8[1:0];
  _RAND_9 = {1{`RANDOM}};
  source_1 = _RAND_9[8:0];
  _RAND_10 = {10{`RANDOM}};
  inflight = _RAND_10[319:0];
  _RAND_11 = {40{`RANDOM}};
  inflight_opcodes = _RAND_11[1279:0];
  _RAND_12 = {40{`RANDOM}};
  inflight_sizes = _RAND_12[1279:0];
  _RAND_13 = {1{`RANDOM}};
  a_first_counter_1 = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  watchdog = _RAND_15[31:0];
  _RAND_16 = {10{`RANDOM}};
  inflight_1 = _RAND_16[319:0];
  _RAND_17 = {40{`RANDOM}};
  inflight_sizes_1 = _RAND_17[1279:0];
  _RAND_18 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  watchdog_1 = _RAND_19[31:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLFIFOFixer(
  input         clock,
  input         reset,
  output        auto_in_a_ready,
  input         auto_in_a_valid,
  input  [2:0]  auto_in_a_bits_opcode,
  input  [2:0]  auto_in_a_bits_param,
  input  [1:0]  auto_in_a_bits_size,
  input  [8:0]  auto_in_a_bits_source,
  input  [31:0] auto_in_a_bits_address,
  input  [7:0]  auto_in_a_bits_mask,
  input  [63:0] auto_in_a_bits_data,
  input         auto_in_a_bits_corrupt,
  input         auto_in_d_ready,
  output        auto_in_d_valid,
  output [2:0]  auto_in_d_bits_opcode,
  output [1:0]  auto_in_d_bits_size,
  output [8:0]  auto_in_d_bits_source,
  output [63:0] auto_in_d_bits_data,
  input         auto_out_a_ready,
  output        auto_out_a_valid,
  output [2:0]  auto_out_a_bits_opcode,
  output [2:0]  auto_out_a_bits_param,
  output [1:0]  auto_out_a_bits_size,
  output [8:0]  auto_out_a_bits_source,
  output [31:0] auto_out_a_bits_address,
  output [7:0]  auto_out_a_bits_mask,
  output [63:0] auto_out_a_bits_data,
  output        auto_out_a_bits_corrupt,
  output        auto_out_d_ready,
  input         auto_out_d_valid,
  input  [2:0]  auto_out_d_bits_opcode,
  input  [1:0]  auto_out_d_bits_size,
  input  [8:0]  auto_out_d_bits_source,
  input  [63:0] auto_out_d_bits_data
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
  reg [31:0] _RAND_33;
  reg [31:0] _RAND_34;
  reg [31:0] _RAND_35;
  reg [31:0] _RAND_36;
  reg [31:0] _RAND_37;
  reg [31:0] _RAND_38;
  reg [31:0] _RAND_39;
  reg [31:0] _RAND_40;
  reg [31:0] _RAND_41;
  reg [31:0] _RAND_42;
  reg [31:0] _RAND_43;
  reg [31:0] _RAND_44;
  reg [31:0] _RAND_45;
  reg [31:0] _RAND_46;
  reg [31:0] _RAND_47;
  reg [31:0] _RAND_48;
  reg [31:0] _RAND_49;
  reg [31:0] _RAND_50;
  reg [31:0] _RAND_51;
  reg [31:0] _RAND_52;
  reg [31:0] _RAND_53;
  reg [31:0] _RAND_54;
  reg [31:0] _RAND_55;
  reg [31:0] _RAND_56;
  reg [31:0] _RAND_57;
  reg [31:0] _RAND_58;
  reg [31:0] _RAND_59;
  reg [31:0] _RAND_60;
  reg [31:0] _RAND_61;
  reg [31:0] _RAND_62;
  reg [31:0] _RAND_63;
  reg [31:0] _RAND_64;
  reg [31:0] _RAND_65;
  reg [31:0] _RAND_66;
  reg [31:0] _RAND_67;
  reg [31:0] _RAND_68;
  reg [31:0] _RAND_69;
  reg [31:0] _RAND_70;
  reg [31:0] _RAND_71;
  reg [31:0] _RAND_72;
  reg [31:0] _RAND_73;
  reg [31:0] _RAND_74;
  reg [31:0] _RAND_75;
  reg [31:0] _RAND_76;
  reg [31:0] _RAND_77;
  reg [31:0] _RAND_78;
  reg [31:0] _RAND_79;
  reg [31:0] _RAND_80;
  reg [31:0] _RAND_81;
  reg [31:0] _RAND_82;
  reg [31:0] _RAND_83;
  reg [31:0] _RAND_84;
  reg [31:0] _RAND_85;
  reg [31:0] _RAND_86;
  reg [31:0] _RAND_87;
  reg [31:0] _RAND_88;
  reg [31:0] _RAND_89;
  reg [31:0] _RAND_90;
  reg [31:0] _RAND_91;
  reg [31:0] _RAND_92;
  reg [31:0] _RAND_93;
  reg [31:0] _RAND_94;
  reg [31:0] _RAND_95;
  reg [31:0] _RAND_96;
  reg [31:0] _RAND_97;
  reg [31:0] _RAND_98;
  reg [31:0] _RAND_99;
  reg [31:0] _RAND_100;
  reg [31:0] _RAND_101;
  reg [31:0] _RAND_102;
  reg [31:0] _RAND_103;
  reg [31:0] _RAND_104;
  reg [31:0] _RAND_105;
  reg [31:0] _RAND_106;
  reg [31:0] _RAND_107;
  reg [31:0] _RAND_108;
  reg [31:0] _RAND_109;
  reg [31:0] _RAND_110;
  reg [31:0] _RAND_111;
  reg [31:0] _RAND_112;
  reg [31:0] _RAND_113;
  reg [31:0] _RAND_114;
  reg [31:0] _RAND_115;
  reg [31:0] _RAND_116;
  reg [31:0] _RAND_117;
  reg [31:0] _RAND_118;
  reg [31:0] _RAND_119;
  reg [31:0] _RAND_120;
  reg [31:0] _RAND_121;
  reg [31:0] _RAND_122;
  reg [31:0] _RAND_123;
  reg [31:0] _RAND_124;
  reg [31:0] _RAND_125;
  reg [31:0] _RAND_126;
  reg [31:0] _RAND_127;
  reg [31:0] _RAND_128;
  reg [31:0] _RAND_129;
  reg [31:0] _RAND_130;
  reg [31:0] _RAND_131;
  reg [31:0] _RAND_132;
  reg [31:0] _RAND_133;
  reg [31:0] _RAND_134;
  reg [31:0] _RAND_135;
  reg [31:0] _RAND_136;
  reg [31:0] _RAND_137;
  reg [31:0] _RAND_138;
  reg [31:0] _RAND_139;
  reg [31:0] _RAND_140;
  reg [31:0] _RAND_141;
  reg [31:0] _RAND_142;
  reg [31:0] _RAND_143;
  reg [31:0] _RAND_144;
  reg [31:0] _RAND_145;
  reg [31:0] _RAND_146;
  reg [31:0] _RAND_147;
  reg [31:0] _RAND_148;
  reg [31:0] _RAND_149;
  reg [31:0] _RAND_150;
  reg [31:0] _RAND_151;
  reg [31:0] _RAND_152;
  reg [31:0] _RAND_153;
  reg [31:0] _RAND_154;
  reg [31:0] _RAND_155;
  reg [31:0] _RAND_156;
  reg [31:0] _RAND_157;
  reg [31:0] _RAND_158;
  reg [31:0] _RAND_159;
  reg [31:0] _RAND_160;
  reg [31:0] _RAND_161;
  reg [31:0] _RAND_162;
  reg [31:0] _RAND_163;
  reg [31:0] _RAND_164;
  reg [31:0] _RAND_165;
  reg [31:0] _RAND_166;
  reg [31:0] _RAND_167;
  reg [31:0] _RAND_168;
  reg [31:0] _RAND_169;
  reg [31:0] _RAND_170;
  reg [31:0] _RAND_171;
  reg [31:0] _RAND_172;
  reg [31:0] _RAND_173;
  reg [31:0] _RAND_174;
  reg [31:0] _RAND_175;
  reg [31:0] _RAND_176;
  reg [31:0] _RAND_177;
  reg [31:0] _RAND_178;
  reg [31:0] _RAND_179;
  reg [31:0] _RAND_180;
  reg [31:0] _RAND_181;
  reg [31:0] _RAND_182;
  reg [31:0] _RAND_183;
  reg [31:0] _RAND_184;
  reg [31:0] _RAND_185;
  reg [31:0] _RAND_186;
  reg [31:0] _RAND_187;
  reg [31:0] _RAND_188;
  reg [31:0] _RAND_189;
  reg [31:0] _RAND_190;
  reg [31:0] _RAND_191;
  reg [31:0] _RAND_192;
  reg [31:0] _RAND_193;
  reg [31:0] _RAND_194;
  reg [31:0] _RAND_195;
  reg [31:0] _RAND_196;
  reg [31:0] _RAND_197;
  reg [31:0] _RAND_198;
  reg [31:0] _RAND_199;
  reg [31:0] _RAND_200;
  reg [31:0] _RAND_201;
  reg [31:0] _RAND_202;
  reg [31:0] _RAND_203;
  reg [31:0] _RAND_204;
  reg [31:0] _RAND_205;
  reg [31:0] _RAND_206;
  reg [31:0] _RAND_207;
  reg [31:0] _RAND_208;
  reg [31:0] _RAND_209;
  reg [31:0] _RAND_210;
  reg [31:0] _RAND_211;
  reg [31:0] _RAND_212;
  reg [31:0] _RAND_213;
  reg [31:0] _RAND_214;
  reg [31:0] _RAND_215;
  reg [31:0] _RAND_216;
  reg [31:0] _RAND_217;
  reg [31:0] _RAND_218;
  reg [31:0] _RAND_219;
  reg [31:0] _RAND_220;
  reg [31:0] _RAND_221;
  reg [31:0] _RAND_222;
  reg [31:0] _RAND_223;
  reg [31:0] _RAND_224;
  reg [31:0] _RAND_225;
  reg [31:0] _RAND_226;
  reg [31:0] _RAND_227;
  reg [31:0] _RAND_228;
  reg [31:0] _RAND_229;
  reg [31:0] _RAND_230;
  reg [31:0] _RAND_231;
  reg [31:0] _RAND_232;
  reg [31:0] _RAND_233;
  reg [31:0] _RAND_234;
  reg [31:0] _RAND_235;
  reg [31:0] _RAND_236;
  reg [31:0] _RAND_237;
  reg [31:0] _RAND_238;
  reg [31:0] _RAND_239;
  reg [31:0] _RAND_240;
  reg [31:0] _RAND_241;
  reg [31:0] _RAND_242;
  reg [31:0] _RAND_243;
  reg [31:0] _RAND_244;
  reg [31:0] _RAND_245;
  reg [31:0] _RAND_246;
  reg [31:0] _RAND_247;
  reg [31:0] _RAND_248;
  reg [31:0] _RAND_249;
  reg [31:0] _RAND_250;
  reg [31:0] _RAND_251;
  reg [31:0] _RAND_252;
  reg [31:0] _RAND_253;
  reg [31:0] _RAND_254;
  reg [31:0] _RAND_255;
  reg [31:0] _RAND_256;
  reg [31:0] _RAND_257;
  reg [31:0] _RAND_258;
  reg [31:0] _RAND_259;
  reg [31:0] _RAND_260;
  reg [31:0] _RAND_261;
  reg [31:0] _RAND_262;
  reg [31:0] _RAND_263;
  reg [31:0] _RAND_264;
  reg [31:0] _RAND_265;
  reg [31:0] _RAND_266;
  reg [31:0] _RAND_267;
  reg [31:0] _RAND_268;
  reg [31:0] _RAND_269;
  reg [31:0] _RAND_270;
  reg [31:0] _RAND_271;
  reg [31:0] _RAND_272;
  reg [31:0] _RAND_273;
  reg [31:0] _RAND_274;
  reg [31:0] _RAND_275;
  reg [31:0] _RAND_276;
  reg [31:0] _RAND_277;
  reg [31:0] _RAND_278;
  reg [31:0] _RAND_279;
  reg [31:0] _RAND_280;
  reg [31:0] _RAND_281;
  reg [31:0] _RAND_282;
  reg [31:0] _RAND_283;
  reg [31:0] _RAND_284;
  reg [31:0] _RAND_285;
  reg [31:0] _RAND_286;
  reg [31:0] _RAND_287;
  reg [31:0] _RAND_288;
  reg [31:0] _RAND_289;
  reg [31:0] _RAND_290;
  reg [31:0] _RAND_291;
  reg [31:0] _RAND_292;
  reg [31:0] _RAND_293;
  reg [31:0] _RAND_294;
  reg [31:0] _RAND_295;
  reg [31:0] _RAND_296;
  reg [31:0] _RAND_297;
  reg [31:0] _RAND_298;
  reg [31:0] _RAND_299;
  reg [31:0] _RAND_300;
  reg [31:0] _RAND_301;
  reg [31:0] _RAND_302;
  reg [31:0] _RAND_303;
  reg [31:0] _RAND_304;
  reg [31:0] _RAND_305;
  reg [31:0] _RAND_306;
  reg [31:0] _RAND_307;
  reg [31:0] _RAND_308;
  reg [31:0] _RAND_309;
  reg [31:0] _RAND_310;
  reg [31:0] _RAND_311;
  reg [31:0] _RAND_312;
  reg [31:0] _RAND_313;
  reg [31:0] _RAND_314;
  reg [31:0] _RAND_315;
  reg [31:0] _RAND_316;
  reg [31:0] _RAND_317;
  reg [31:0] _RAND_318;
  reg [31:0] _RAND_319;
  reg [31:0] _RAND_320;
  reg [31:0] _RAND_321;
`endif // RANDOMIZE_REG_INIT
  wire  monitor_clock; // @[Nodes.scala 24:25]
  wire  monitor_reset; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_opcode; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_param; // @[Nodes.scala 24:25]
  wire [1:0] monitor_io_in_a_bits_size; // @[Nodes.scala 24:25]
  wire [8:0] monitor_io_in_a_bits_source; // @[Nodes.scala 24:25]
  wire [31:0] monitor_io_in_a_bits_address; // @[Nodes.scala 24:25]
  wire [7:0] monitor_io_in_a_bits_mask; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_bits_corrupt; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  wire [1:0] monitor_io_in_d_bits_size; // @[Nodes.scala 24:25]
  wire [8:0] monitor_io_in_d_bits_source; // @[Nodes.scala 24:25]
  wire  stalls_a_sel = auto_in_a_bits_source <= 9'h13f; // @[Parameters.scala 57:20]
  reg  a_first_counter; // @[Edges.scala 228:27]
  wire  a_first = ~a_first_counter; // @[Edges.scala 230:25]
  reg  flight_0; // @[FIFOFixer.scala 71:27]
  reg  flight_1; // @[FIFOFixer.scala 71:27]
  reg  flight_2; // @[FIFOFixer.scala 71:27]
  reg  flight_3; // @[FIFOFixer.scala 71:27]
  reg  flight_4; // @[FIFOFixer.scala 71:27]
  reg  flight_5; // @[FIFOFixer.scala 71:27]
  reg  flight_6; // @[FIFOFixer.scala 71:27]
  reg  flight_7; // @[FIFOFixer.scala 71:27]
  reg  flight_8; // @[FIFOFixer.scala 71:27]
  reg  flight_9; // @[FIFOFixer.scala 71:27]
  reg  flight_10; // @[FIFOFixer.scala 71:27]
  reg  flight_11; // @[FIFOFixer.scala 71:27]
  reg  flight_12; // @[FIFOFixer.scala 71:27]
  reg  flight_13; // @[FIFOFixer.scala 71:27]
  reg  flight_14; // @[FIFOFixer.scala 71:27]
  reg  flight_15; // @[FIFOFixer.scala 71:27]
  reg  flight_16; // @[FIFOFixer.scala 71:27]
  reg  flight_17; // @[FIFOFixer.scala 71:27]
  reg  flight_18; // @[FIFOFixer.scala 71:27]
  reg  flight_19; // @[FIFOFixer.scala 71:27]
  reg  flight_20; // @[FIFOFixer.scala 71:27]
  reg  flight_21; // @[FIFOFixer.scala 71:27]
  reg  flight_22; // @[FIFOFixer.scala 71:27]
  reg  flight_23; // @[FIFOFixer.scala 71:27]
  reg  flight_24; // @[FIFOFixer.scala 71:27]
  reg  flight_25; // @[FIFOFixer.scala 71:27]
  reg  flight_26; // @[FIFOFixer.scala 71:27]
  reg  flight_27; // @[FIFOFixer.scala 71:27]
  reg  flight_28; // @[FIFOFixer.scala 71:27]
  reg  flight_29; // @[FIFOFixer.scala 71:27]
  reg  flight_30; // @[FIFOFixer.scala 71:27]
  wire  _stalls_T_30 = flight_0 | flight_1 | flight_2 | flight_3 | flight_4 | flight_5 | flight_6 | flight_7 | flight_8
     | flight_9 | flight_10 | flight_11 | flight_12 | flight_13 | flight_14 | flight_15 | flight_16 | flight_17 |
    flight_18 | flight_19 | flight_20 | flight_21 | flight_22 | flight_23 | flight_24 | flight_25 | flight_26 |
    flight_27 | flight_28 | flight_29 | flight_30; // @[FIFOFixer.scala 80:44]
  reg  flight_31; // @[FIFOFixer.scala 71:27]
  reg  flight_32; // @[FIFOFixer.scala 71:27]
  reg  flight_33; // @[FIFOFixer.scala 71:27]
  reg  flight_34; // @[FIFOFixer.scala 71:27]
  reg  flight_35; // @[FIFOFixer.scala 71:27]
  reg  flight_36; // @[FIFOFixer.scala 71:27]
  reg  flight_37; // @[FIFOFixer.scala 71:27]
  reg  flight_38; // @[FIFOFixer.scala 71:27]
  reg  flight_39; // @[FIFOFixer.scala 71:27]
  reg  flight_40; // @[FIFOFixer.scala 71:27]
  reg  flight_41; // @[FIFOFixer.scala 71:27]
  reg  flight_42; // @[FIFOFixer.scala 71:27]
  reg  flight_43; // @[FIFOFixer.scala 71:27]
  reg  flight_44; // @[FIFOFixer.scala 71:27]
  reg  flight_45; // @[FIFOFixer.scala 71:27]
  reg  flight_46; // @[FIFOFixer.scala 71:27]
  reg  flight_47; // @[FIFOFixer.scala 71:27]
  reg  flight_48; // @[FIFOFixer.scala 71:27]
  reg  flight_49; // @[FIFOFixer.scala 71:27]
  reg  flight_50; // @[FIFOFixer.scala 71:27]
  reg  flight_51; // @[FIFOFixer.scala 71:27]
  reg  flight_52; // @[FIFOFixer.scala 71:27]
  reg  flight_53; // @[FIFOFixer.scala 71:27]
  reg  flight_54; // @[FIFOFixer.scala 71:27]
  reg  flight_55; // @[FIFOFixer.scala 71:27]
  reg  flight_56; // @[FIFOFixer.scala 71:27]
  reg  flight_57; // @[FIFOFixer.scala 71:27]
  reg  flight_58; // @[FIFOFixer.scala 71:27]
  reg  flight_59; // @[FIFOFixer.scala 71:27]
  reg  flight_60; // @[FIFOFixer.scala 71:27]
  wire  _stalls_T_60 = _stalls_T_30 | flight_31 | flight_32 | flight_33 | flight_34 | flight_35 | flight_36 | flight_37
     | flight_38 | flight_39 | flight_40 | flight_41 | flight_42 | flight_43 | flight_44 | flight_45 | flight_46 |
    flight_47 | flight_48 | flight_49 | flight_50 | flight_51 | flight_52 | flight_53 | flight_54 | flight_55 |
    flight_56 | flight_57 | flight_58 | flight_59 | flight_60; // @[FIFOFixer.scala 80:44]
  reg  flight_61; // @[FIFOFixer.scala 71:27]
  reg  flight_62; // @[FIFOFixer.scala 71:27]
  reg  flight_63; // @[FIFOFixer.scala 71:27]
  reg  flight_64; // @[FIFOFixer.scala 71:27]
  reg  flight_65; // @[FIFOFixer.scala 71:27]
  reg  flight_66; // @[FIFOFixer.scala 71:27]
  reg  flight_67; // @[FIFOFixer.scala 71:27]
  reg  flight_68; // @[FIFOFixer.scala 71:27]
  reg  flight_69; // @[FIFOFixer.scala 71:27]
  reg  flight_70; // @[FIFOFixer.scala 71:27]
  reg  flight_71; // @[FIFOFixer.scala 71:27]
  reg  flight_72; // @[FIFOFixer.scala 71:27]
  reg  flight_73; // @[FIFOFixer.scala 71:27]
  reg  flight_74; // @[FIFOFixer.scala 71:27]
  reg  flight_75; // @[FIFOFixer.scala 71:27]
  reg  flight_76; // @[FIFOFixer.scala 71:27]
  reg  flight_77; // @[FIFOFixer.scala 71:27]
  reg  flight_78; // @[FIFOFixer.scala 71:27]
  reg  flight_79; // @[FIFOFixer.scala 71:27]
  reg  flight_80; // @[FIFOFixer.scala 71:27]
  reg  flight_81; // @[FIFOFixer.scala 71:27]
  reg  flight_82; // @[FIFOFixer.scala 71:27]
  reg  flight_83; // @[FIFOFixer.scala 71:27]
  reg  flight_84; // @[FIFOFixer.scala 71:27]
  reg  flight_85; // @[FIFOFixer.scala 71:27]
  reg  flight_86; // @[FIFOFixer.scala 71:27]
  reg  flight_87; // @[FIFOFixer.scala 71:27]
  reg  flight_88; // @[FIFOFixer.scala 71:27]
  reg  flight_89; // @[FIFOFixer.scala 71:27]
  reg  flight_90; // @[FIFOFixer.scala 71:27]
  wire  _stalls_T_90 = _stalls_T_60 | flight_61 | flight_62 | flight_63 | flight_64 | flight_65 | flight_66 | flight_67
     | flight_68 | flight_69 | flight_70 | flight_71 | flight_72 | flight_73 | flight_74 | flight_75 | flight_76 |
    flight_77 | flight_78 | flight_79 | flight_80 | flight_81 | flight_82 | flight_83 | flight_84 | flight_85 |
    flight_86 | flight_87 | flight_88 | flight_89 | flight_90; // @[FIFOFixer.scala 80:44]
  reg  flight_91; // @[FIFOFixer.scala 71:27]
  reg  flight_92; // @[FIFOFixer.scala 71:27]
  reg  flight_93; // @[FIFOFixer.scala 71:27]
  reg  flight_94; // @[FIFOFixer.scala 71:27]
  reg  flight_95; // @[FIFOFixer.scala 71:27]
  reg  flight_96; // @[FIFOFixer.scala 71:27]
  reg  flight_97; // @[FIFOFixer.scala 71:27]
  reg  flight_98; // @[FIFOFixer.scala 71:27]
  reg  flight_99; // @[FIFOFixer.scala 71:27]
  reg  flight_100; // @[FIFOFixer.scala 71:27]
  reg  flight_101; // @[FIFOFixer.scala 71:27]
  reg  flight_102; // @[FIFOFixer.scala 71:27]
  reg  flight_103; // @[FIFOFixer.scala 71:27]
  reg  flight_104; // @[FIFOFixer.scala 71:27]
  reg  flight_105; // @[FIFOFixer.scala 71:27]
  reg  flight_106; // @[FIFOFixer.scala 71:27]
  reg  flight_107; // @[FIFOFixer.scala 71:27]
  reg  flight_108; // @[FIFOFixer.scala 71:27]
  reg  flight_109; // @[FIFOFixer.scala 71:27]
  reg  flight_110; // @[FIFOFixer.scala 71:27]
  reg  flight_111; // @[FIFOFixer.scala 71:27]
  reg  flight_112; // @[FIFOFixer.scala 71:27]
  reg  flight_113; // @[FIFOFixer.scala 71:27]
  reg  flight_114; // @[FIFOFixer.scala 71:27]
  reg  flight_115; // @[FIFOFixer.scala 71:27]
  reg  flight_116; // @[FIFOFixer.scala 71:27]
  reg  flight_117; // @[FIFOFixer.scala 71:27]
  reg  flight_118; // @[FIFOFixer.scala 71:27]
  reg  flight_119; // @[FIFOFixer.scala 71:27]
  reg  flight_120; // @[FIFOFixer.scala 71:27]
  wire  _stalls_T_120 = _stalls_T_90 | flight_91 | flight_92 | flight_93 | flight_94 | flight_95 | flight_96 | flight_97
     | flight_98 | flight_99 | flight_100 | flight_101 | flight_102 | flight_103 | flight_104 | flight_105 | flight_106
     | flight_107 | flight_108 | flight_109 | flight_110 | flight_111 | flight_112 | flight_113 | flight_114 |
    flight_115 | flight_116 | flight_117 | flight_118 | flight_119 | flight_120; // @[FIFOFixer.scala 80:44]
  reg  flight_121; // @[FIFOFixer.scala 71:27]
  reg  flight_122; // @[FIFOFixer.scala 71:27]
  reg  flight_123; // @[FIFOFixer.scala 71:27]
  reg  flight_124; // @[FIFOFixer.scala 71:27]
  reg  flight_125; // @[FIFOFixer.scala 71:27]
  reg  flight_126; // @[FIFOFixer.scala 71:27]
  reg  flight_127; // @[FIFOFixer.scala 71:27]
  reg  flight_128; // @[FIFOFixer.scala 71:27]
  reg  flight_129; // @[FIFOFixer.scala 71:27]
  reg  flight_130; // @[FIFOFixer.scala 71:27]
  reg  flight_131; // @[FIFOFixer.scala 71:27]
  reg  flight_132; // @[FIFOFixer.scala 71:27]
  reg  flight_133; // @[FIFOFixer.scala 71:27]
  reg  flight_134; // @[FIFOFixer.scala 71:27]
  reg  flight_135; // @[FIFOFixer.scala 71:27]
  reg  flight_136; // @[FIFOFixer.scala 71:27]
  reg  flight_137; // @[FIFOFixer.scala 71:27]
  reg  flight_138; // @[FIFOFixer.scala 71:27]
  reg  flight_139; // @[FIFOFixer.scala 71:27]
  reg  flight_140; // @[FIFOFixer.scala 71:27]
  reg  flight_141; // @[FIFOFixer.scala 71:27]
  reg  flight_142; // @[FIFOFixer.scala 71:27]
  reg  flight_143; // @[FIFOFixer.scala 71:27]
  reg  flight_144; // @[FIFOFixer.scala 71:27]
  reg  flight_145; // @[FIFOFixer.scala 71:27]
  reg  flight_146; // @[FIFOFixer.scala 71:27]
  reg  flight_147; // @[FIFOFixer.scala 71:27]
  reg  flight_148; // @[FIFOFixer.scala 71:27]
  reg  flight_149; // @[FIFOFixer.scala 71:27]
  reg  flight_150; // @[FIFOFixer.scala 71:27]
  wire  _stalls_T_150 = _stalls_T_120 | flight_121 | flight_122 | flight_123 | flight_124 | flight_125 | flight_126 |
    flight_127 | flight_128 | flight_129 | flight_130 | flight_131 | flight_132 | flight_133 | flight_134 | flight_135
     | flight_136 | flight_137 | flight_138 | flight_139 | flight_140 | flight_141 | flight_142 | flight_143 |
    flight_144 | flight_145 | flight_146 | flight_147 | flight_148 | flight_149 | flight_150; // @[FIFOFixer.scala 80:44]
  reg  flight_151; // @[FIFOFixer.scala 71:27]
  reg  flight_152; // @[FIFOFixer.scala 71:27]
  reg  flight_153; // @[FIFOFixer.scala 71:27]
  reg  flight_154; // @[FIFOFixer.scala 71:27]
  reg  flight_155; // @[FIFOFixer.scala 71:27]
  reg  flight_156; // @[FIFOFixer.scala 71:27]
  reg  flight_157; // @[FIFOFixer.scala 71:27]
  reg  flight_158; // @[FIFOFixer.scala 71:27]
  reg  flight_159; // @[FIFOFixer.scala 71:27]
  reg  flight_160; // @[FIFOFixer.scala 71:27]
  reg  flight_161; // @[FIFOFixer.scala 71:27]
  reg  flight_162; // @[FIFOFixer.scala 71:27]
  reg  flight_163; // @[FIFOFixer.scala 71:27]
  reg  flight_164; // @[FIFOFixer.scala 71:27]
  reg  flight_165; // @[FIFOFixer.scala 71:27]
  reg  flight_166; // @[FIFOFixer.scala 71:27]
  reg  flight_167; // @[FIFOFixer.scala 71:27]
  reg  flight_168; // @[FIFOFixer.scala 71:27]
  reg  flight_169; // @[FIFOFixer.scala 71:27]
  reg  flight_170; // @[FIFOFixer.scala 71:27]
  reg  flight_171; // @[FIFOFixer.scala 71:27]
  reg  flight_172; // @[FIFOFixer.scala 71:27]
  reg  flight_173; // @[FIFOFixer.scala 71:27]
  reg  flight_174; // @[FIFOFixer.scala 71:27]
  reg  flight_175; // @[FIFOFixer.scala 71:27]
  reg  flight_176; // @[FIFOFixer.scala 71:27]
  reg  flight_177; // @[FIFOFixer.scala 71:27]
  reg  flight_178; // @[FIFOFixer.scala 71:27]
  reg  flight_179; // @[FIFOFixer.scala 71:27]
  reg  flight_180; // @[FIFOFixer.scala 71:27]
  wire  _stalls_T_180 = _stalls_T_150 | flight_151 | flight_152 | flight_153 | flight_154 | flight_155 | flight_156 |
    flight_157 | flight_158 | flight_159 | flight_160 | flight_161 | flight_162 | flight_163 | flight_164 | flight_165
     | flight_166 | flight_167 | flight_168 | flight_169 | flight_170 | flight_171 | flight_172 | flight_173 |
    flight_174 | flight_175 | flight_176 | flight_177 | flight_178 | flight_179 | flight_180; // @[FIFOFixer.scala 80:44]
  reg  flight_181; // @[FIFOFixer.scala 71:27]
  reg  flight_182; // @[FIFOFixer.scala 71:27]
  reg  flight_183; // @[FIFOFixer.scala 71:27]
  reg  flight_184; // @[FIFOFixer.scala 71:27]
  reg  flight_185; // @[FIFOFixer.scala 71:27]
  reg  flight_186; // @[FIFOFixer.scala 71:27]
  reg  flight_187; // @[FIFOFixer.scala 71:27]
  reg  flight_188; // @[FIFOFixer.scala 71:27]
  reg  flight_189; // @[FIFOFixer.scala 71:27]
  reg  flight_190; // @[FIFOFixer.scala 71:27]
  reg  flight_191; // @[FIFOFixer.scala 71:27]
  reg  flight_192; // @[FIFOFixer.scala 71:27]
  reg  flight_193; // @[FIFOFixer.scala 71:27]
  reg  flight_194; // @[FIFOFixer.scala 71:27]
  reg  flight_195; // @[FIFOFixer.scala 71:27]
  reg  flight_196; // @[FIFOFixer.scala 71:27]
  reg  flight_197; // @[FIFOFixer.scala 71:27]
  reg  flight_198; // @[FIFOFixer.scala 71:27]
  reg  flight_199; // @[FIFOFixer.scala 71:27]
  reg  flight_200; // @[FIFOFixer.scala 71:27]
  reg  flight_201; // @[FIFOFixer.scala 71:27]
  reg  flight_202; // @[FIFOFixer.scala 71:27]
  reg  flight_203; // @[FIFOFixer.scala 71:27]
  reg  flight_204; // @[FIFOFixer.scala 71:27]
  reg  flight_205; // @[FIFOFixer.scala 71:27]
  reg  flight_206; // @[FIFOFixer.scala 71:27]
  reg  flight_207; // @[FIFOFixer.scala 71:27]
  reg  flight_208; // @[FIFOFixer.scala 71:27]
  reg  flight_209; // @[FIFOFixer.scala 71:27]
  reg  flight_210; // @[FIFOFixer.scala 71:27]
  wire  _stalls_T_210 = _stalls_T_180 | flight_181 | flight_182 | flight_183 | flight_184 | flight_185 | flight_186 |
    flight_187 | flight_188 | flight_189 | flight_190 | flight_191 | flight_192 | flight_193 | flight_194 | flight_195
     | flight_196 | flight_197 | flight_198 | flight_199 | flight_200 | flight_201 | flight_202 | flight_203 |
    flight_204 | flight_205 | flight_206 | flight_207 | flight_208 | flight_209 | flight_210; // @[FIFOFixer.scala 80:44]
  reg  flight_211; // @[FIFOFixer.scala 71:27]
  reg  flight_212; // @[FIFOFixer.scala 71:27]
  reg  flight_213; // @[FIFOFixer.scala 71:27]
  reg  flight_214; // @[FIFOFixer.scala 71:27]
  reg  flight_215; // @[FIFOFixer.scala 71:27]
  reg  flight_216; // @[FIFOFixer.scala 71:27]
  reg  flight_217; // @[FIFOFixer.scala 71:27]
  reg  flight_218; // @[FIFOFixer.scala 71:27]
  reg  flight_219; // @[FIFOFixer.scala 71:27]
  reg  flight_220; // @[FIFOFixer.scala 71:27]
  reg  flight_221; // @[FIFOFixer.scala 71:27]
  reg  flight_222; // @[FIFOFixer.scala 71:27]
  reg  flight_223; // @[FIFOFixer.scala 71:27]
  reg  flight_224; // @[FIFOFixer.scala 71:27]
  reg  flight_225; // @[FIFOFixer.scala 71:27]
  reg  flight_226; // @[FIFOFixer.scala 71:27]
  reg  flight_227; // @[FIFOFixer.scala 71:27]
  reg  flight_228; // @[FIFOFixer.scala 71:27]
  reg  flight_229; // @[FIFOFixer.scala 71:27]
  reg  flight_230; // @[FIFOFixer.scala 71:27]
  reg  flight_231; // @[FIFOFixer.scala 71:27]
  reg  flight_232; // @[FIFOFixer.scala 71:27]
  reg  flight_233; // @[FIFOFixer.scala 71:27]
  reg  flight_234; // @[FIFOFixer.scala 71:27]
  reg  flight_235; // @[FIFOFixer.scala 71:27]
  reg  flight_236; // @[FIFOFixer.scala 71:27]
  reg  flight_237; // @[FIFOFixer.scala 71:27]
  reg  flight_238; // @[FIFOFixer.scala 71:27]
  reg  flight_239; // @[FIFOFixer.scala 71:27]
  reg  flight_240; // @[FIFOFixer.scala 71:27]
  wire  _stalls_T_240 = _stalls_T_210 | flight_211 | flight_212 | flight_213 | flight_214 | flight_215 | flight_216 |
    flight_217 | flight_218 | flight_219 | flight_220 | flight_221 | flight_222 | flight_223 | flight_224 | flight_225
     | flight_226 | flight_227 | flight_228 | flight_229 | flight_230 | flight_231 | flight_232 | flight_233 |
    flight_234 | flight_235 | flight_236 | flight_237 | flight_238 | flight_239 | flight_240; // @[FIFOFixer.scala 80:44]
  reg  flight_241; // @[FIFOFixer.scala 71:27]
  reg  flight_242; // @[FIFOFixer.scala 71:27]
  reg  flight_243; // @[FIFOFixer.scala 71:27]
  reg  flight_244; // @[FIFOFixer.scala 71:27]
  reg  flight_245; // @[FIFOFixer.scala 71:27]
  reg  flight_246; // @[FIFOFixer.scala 71:27]
  reg  flight_247; // @[FIFOFixer.scala 71:27]
  reg  flight_248; // @[FIFOFixer.scala 71:27]
  reg  flight_249; // @[FIFOFixer.scala 71:27]
  reg  flight_250; // @[FIFOFixer.scala 71:27]
  reg  flight_251; // @[FIFOFixer.scala 71:27]
  reg  flight_252; // @[FIFOFixer.scala 71:27]
  reg  flight_253; // @[FIFOFixer.scala 71:27]
  reg  flight_254; // @[FIFOFixer.scala 71:27]
  reg  flight_255; // @[FIFOFixer.scala 71:27]
  reg  flight_256; // @[FIFOFixer.scala 71:27]
  reg  flight_257; // @[FIFOFixer.scala 71:27]
  reg  flight_258; // @[FIFOFixer.scala 71:27]
  reg  flight_259; // @[FIFOFixer.scala 71:27]
  reg  flight_260; // @[FIFOFixer.scala 71:27]
  reg  flight_261; // @[FIFOFixer.scala 71:27]
  reg  flight_262; // @[FIFOFixer.scala 71:27]
  reg  flight_263; // @[FIFOFixer.scala 71:27]
  reg  flight_264; // @[FIFOFixer.scala 71:27]
  reg  flight_265; // @[FIFOFixer.scala 71:27]
  reg  flight_266; // @[FIFOFixer.scala 71:27]
  reg  flight_267; // @[FIFOFixer.scala 71:27]
  reg  flight_268; // @[FIFOFixer.scala 71:27]
  reg  flight_269; // @[FIFOFixer.scala 71:27]
  reg  flight_270; // @[FIFOFixer.scala 71:27]
  wire  _stalls_T_270 = _stalls_T_240 | flight_241 | flight_242 | flight_243 | flight_244 | flight_245 | flight_246 |
    flight_247 | flight_248 | flight_249 | flight_250 | flight_251 | flight_252 | flight_253 | flight_254 | flight_255
     | flight_256 | flight_257 | flight_258 | flight_259 | flight_260 | flight_261 | flight_262 | flight_263 |
    flight_264 | flight_265 | flight_266 | flight_267 | flight_268 | flight_269 | flight_270; // @[FIFOFixer.scala 80:44]
  reg  flight_271; // @[FIFOFixer.scala 71:27]
  reg  flight_272; // @[FIFOFixer.scala 71:27]
  reg  flight_273; // @[FIFOFixer.scala 71:27]
  reg  flight_274; // @[FIFOFixer.scala 71:27]
  reg  flight_275; // @[FIFOFixer.scala 71:27]
  reg  flight_276; // @[FIFOFixer.scala 71:27]
  reg  flight_277; // @[FIFOFixer.scala 71:27]
  reg  flight_278; // @[FIFOFixer.scala 71:27]
  reg  flight_279; // @[FIFOFixer.scala 71:27]
  reg  flight_280; // @[FIFOFixer.scala 71:27]
  reg  flight_281; // @[FIFOFixer.scala 71:27]
  reg  flight_282; // @[FIFOFixer.scala 71:27]
  reg  flight_283; // @[FIFOFixer.scala 71:27]
  reg  flight_284; // @[FIFOFixer.scala 71:27]
  reg  flight_285; // @[FIFOFixer.scala 71:27]
  reg  flight_286; // @[FIFOFixer.scala 71:27]
  reg  flight_287; // @[FIFOFixer.scala 71:27]
  reg  flight_288; // @[FIFOFixer.scala 71:27]
  reg  flight_289; // @[FIFOFixer.scala 71:27]
  reg  flight_290; // @[FIFOFixer.scala 71:27]
  reg  flight_291; // @[FIFOFixer.scala 71:27]
  reg  flight_292; // @[FIFOFixer.scala 71:27]
  reg  flight_293; // @[FIFOFixer.scala 71:27]
  reg  flight_294; // @[FIFOFixer.scala 71:27]
  reg  flight_295; // @[FIFOFixer.scala 71:27]
  reg  flight_296; // @[FIFOFixer.scala 71:27]
  reg  flight_297; // @[FIFOFixer.scala 71:27]
  reg  flight_298; // @[FIFOFixer.scala 71:27]
  reg  flight_299; // @[FIFOFixer.scala 71:27]
  reg  flight_300; // @[FIFOFixer.scala 71:27]
  wire  _stalls_T_300 = _stalls_T_270 | flight_271 | flight_272 | flight_273 | flight_274 | flight_275 | flight_276 |
    flight_277 | flight_278 | flight_279 | flight_280 | flight_281 | flight_282 | flight_283 | flight_284 | flight_285
     | flight_286 | flight_287 | flight_288 | flight_289 | flight_290 | flight_291 | flight_292 | flight_293 |
    flight_294 | flight_295 | flight_296 | flight_297 | flight_298 | flight_299 | flight_300; // @[FIFOFixer.scala 80:44]
  reg  flight_301; // @[FIFOFixer.scala 71:27]
  reg  flight_302; // @[FIFOFixer.scala 71:27]
  reg  flight_303; // @[FIFOFixer.scala 71:27]
  reg  flight_304; // @[FIFOFixer.scala 71:27]
  reg  flight_305; // @[FIFOFixer.scala 71:27]
  reg  flight_306; // @[FIFOFixer.scala 71:27]
  reg  flight_307; // @[FIFOFixer.scala 71:27]
  reg  flight_308; // @[FIFOFixer.scala 71:27]
  reg  flight_309; // @[FIFOFixer.scala 71:27]
  reg  flight_310; // @[FIFOFixer.scala 71:27]
  reg  flight_311; // @[FIFOFixer.scala 71:27]
  reg  flight_312; // @[FIFOFixer.scala 71:27]
  reg  flight_313; // @[FIFOFixer.scala 71:27]
  reg  flight_314; // @[FIFOFixer.scala 71:27]
  reg  flight_315; // @[FIFOFixer.scala 71:27]
  reg  flight_316; // @[FIFOFixer.scala 71:27]
  reg  flight_317; // @[FIFOFixer.scala 71:27]
  reg  flight_318; // @[FIFOFixer.scala 71:27]
  reg  flight_319; // @[FIFOFixer.scala 71:27]
  wire  stalls_0 = stalls_a_sel & a_first & (_stalls_T_300 | flight_301 | flight_302 | flight_303 | flight_304 |
    flight_305 | flight_306 | flight_307 | flight_308 | flight_309 | flight_310 | flight_311 | flight_312 | flight_313
     | flight_314 | flight_315 | flight_316 | flight_317 | flight_318 | flight_319); // @[FIFOFixer.scala 80:26]
  wire  _bundleIn_0_a_ready_T = ~stalls_0; // @[FIFOFixer.scala 88:50]
  wire  bundleIn_0_a_ready = auto_out_a_ready & ~stalls_0; // @[FIFOFixer.scala 88:33]
  wire  _a_first_T = bundleIn_0_a_ready & auto_in_a_valid; // @[Decoupled.scala 52:35]
  wire  a_first_counter1 = a_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  _d_first_T = auto_in_d_ready & auto_out_d_valid; // @[Decoupled.scala 52:35]
  reg  d_first_counter; // @[Edges.scala 228:27]
  wire  d_first_counter1 = d_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_first = ~d_first_counter; // @[Edges.scala 230:25]
  wire  d_first = d_first_first & auto_out_d_bits_opcode != 3'h6; // @[FIFOFixer.scala 67:42]
  wire  _GEN_322 = a_first & _a_first_T ? 9'h0 == auto_in_a_bits_source | flight_0 : flight_0; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_323 = a_first & _a_first_T ? 9'h1 == auto_in_a_bits_source | flight_1 : flight_1; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_324 = a_first & _a_first_T ? 9'h2 == auto_in_a_bits_source | flight_2 : flight_2; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_325 = a_first & _a_first_T ? 9'h3 == auto_in_a_bits_source | flight_3 : flight_3; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_326 = a_first & _a_first_T ? 9'h4 == auto_in_a_bits_source | flight_4 : flight_4; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_327 = a_first & _a_first_T ? 9'h5 == auto_in_a_bits_source | flight_5 : flight_5; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_328 = a_first & _a_first_T ? 9'h6 == auto_in_a_bits_source | flight_6 : flight_6; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_329 = a_first & _a_first_T ? 9'h7 == auto_in_a_bits_source | flight_7 : flight_7; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_330 = a_first & _a_first_T ? 9'h8 == auto_in_a_bits_source | flight_8 : flight_8; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_331 = a_first & _a_first_T ? 9'h9 == auto_in_a_bits_source | flight_9 : flight_9; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_332 = a_first & _a_first_T ? 9'ha == auto_in_a_bits_source | flight_10 : flight_10; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_333 = a_first & _a_first_T ? 9'hb == auto_in_a_bits_source | flight_11 : flight_11; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_334 = a_first & _a_first_T ? 9'hc == auto_in_a_bits_source | flight_12 : flight_12; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_335 = a_first & _a_first_T ? 9'hd == auto_in_a_bits_source | flight_13 : flight_13; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_336 = a_first & _a_first_T ? 9'he == auto_in_a_bits_source | flight_14 : flight_14; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_337 = a_first & _a_first_T ? 9'hf == auto_in_a_bits_source | flight_15 : flight_15; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_338 = a_first & _a_first_T ? 9'h10 == auto_in_a_bits_source | flight_16 : flight_16; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_339 = a_first & _a_first_T ? 9'h11 == auto_in_a_bits_source | flight_17 : flight_17; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_340 = a_first & _a_first_T ? 9'h12 == auto_in_a_bits_source | flight_18 : flight_18; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_341 = a_first & _a_first_T ? 9'h13 == auto_in_a_bits_source | flight_19 : flight_19; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_342 = a_first & _a_first_T ? 9'h14 == auto_in_a_bits_source | flight_20 : flight_20; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_343 = a_first & _a_first_T ? 9'h15 == auto_in_a_bits_source | flight_21 : flight_21; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_344 = a_first & _a_first_T ? 9'h16 == auto_in_a_bits_source | flight_22 : flight_22; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_345 = a_first & _a_first_T ? 9'h17 == auto_in_a_bits_source | flight_23 : flight_23; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_346 = a_first & _a_first_T ? 9'h18 == auto_in_a_bits_source | flight_24 : flight_24; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_347 = a_first & _a_first_T ? 9'h19 == auto_in_a_bits_source | flight_25 : flight_25; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_348 = a_first & _a_first_T ? 9'h1a == auto_in_a_bits_source | flight_26 : flight_26; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_349 = a_first & _a_first_T ? 9'h1b == auto_in_a_bits_source | flight_27 : flight_27; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_350 = a_first & _a_first_T ? 9'h1c == auto_in_a_bits_source | flight_28 : flight_28; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_351 = a_first & _a_first_T ? 9'h1d == auto_in_a_bits_source | flight_29 : flight_29; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_352 = a_first & _a_first_T ? 9'h1e == auto_in_a_bits_source | flight_30 : flight_30; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_353 = a_first & _a_first_T ? 9'h1f == auto_in_a_bits_source | flight_31 : flight_31; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_354 = a_first & _a_first_T ? 9'h20 == auto_in_a_bits_source | flight_32 : flight_32; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_355 = a_first & _a_first_T ? 9'h21 == auto_in_a_bits_source | flight_33 : flight_33; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_356 = a_first & _a_first_T ? 9'h22 == auto_in_a_bits_source | flight_34 : flight_34; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_357 = a_first & _a_first_T ? 9'h23 == auto_in_a_bits_source | flight_35 : flight_35; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_358 = a_first & _a_first_T ? 9'h24 == auto_in_a_bits_source | flight_36 : flight_36; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_359 = a_first & _a_first_T ? 9'h25 == auto_in_a_bits_source | flight_37 : flight_37; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_360 = a_first & _a_first_T ? 9'h26 == auto_in_a_bits_source | flight_38 : flight_38; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_361 = a_first & _a_first_T ? 9'h27 == auto_in_a_bits_source | flight_39 : flight_39; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_362 = a_first & _a_first_T ? 9'h28 == auto_in_a_bits_source | flight_40 : flight_40; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_363 = a_first & _a_first_T ? 9'h29 == auto_in_a_bits_source | flight_41 : flight_41; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_364 = a_first & _a_first_T ? 9'h2a == auto_in_a_bits_source | flight_42 : flight_42; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_365 = a_first & _a_first_T ? 9'h2b == auto_in_a_bits_source | flight_43 : flight_43; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_366 = a_first & _a_first_T ? 9'h2c == auto_in_a_bits_source | flight_44 : flight_44; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_367 = a_first & _a_first_T ? 9'h2d == auto_in_a_bits_source | flight_45 : flight_45; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_368 = a_first & _a_first_T ? 9'h2e == auto_in_a_bits_source | flight_46 : flight_46; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_369 = a_first & _a_first_T ? 9'h2f == auto_in_a_bits_source | flight_47 : flight_47; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_370 = a_first & _a_first_T ? 9'h30 == auto_in_a_bits_source | flight_48 : flight_48; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_371 = a_first & _a_first_T ? 9'h31 == auto_in_a_bits_source | flight_49 : flight_49; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_372 = a_first & _a_first_T ? 9'h32 == auto_in_a_bits_source | flight_50 : flight_50; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_373 = a_first & _a_first_T ? 9'h33 == auto_in_a_bits_source | flight_51 : flight_51; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_374 = a_first & _a_first_T ? 9'h34 == auto_in_a_bits_source | flight_52 : flight_52; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_375 = a_first & _a_first_T ? 9'h35 == auto_in_a_bits_source | flight_53 : flight_53; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_376 = a_first & _a_first_T ? 9'h36 == auto_in_a_bits_source | flight_54 : flight_54; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_377 = a_first & _a_first_T ? 9'h37 == auto_in_a_bits_source | flight_55 : flight_55; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_378 = a_first & _a_first_T ? 9'h38 == auto_in_a_bits_source | flight_56 : flight_56; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_379 = a_first & _a_first_T ? 9'h39 == auto_in_a_bits_source | flight_57 : flight_57; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_380 = a_first & _a_first_T ? 9'h3a == auto_in_a_bits_source | flight_58 : flight_58; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_381 = a_first & _a_first_T ? 9'h3b == auto_in_a_bits_source | flight_59 : flight_59; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_382 = a_first & _a_first_T ? 9'h3c == auto_in_a_bits_source | flight_60 : flight_60; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_383 = a_first & _a_first_T ? 9'h3d == auto_in_a_bits_source | flight_61 : flight_61; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_384 = a_first & _a_first_T ? 9'h3e == auto_in_a_bits_source | flight_62 : flight_62; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_385 = a_first & _a_first_T ? 9'h3f == auto_in_a_bits_source | flight_63 : flight_63; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_386 = a_first & _a_first_T ? 9'h40 == auto_in_a_bits_source | flight_64 : flight_64; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_387 = a_first & _a_first_T ? 9'h41 == auto_in_a_bits_source | flight_65 : flight_65; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_388 = a_first & _a_first_T ? 9'h42 == auto_in_a_bits_source | flight_66 : flight_66; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_389 = a_first & _a_first_T ? 9'h43 == auto_in_a_bits_source | flight_67 : flight_67; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_390 = a_first & _a_first_T ? 9'h44 == auto_in_a_bits_source | flight_68 : flight_68; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_391 = a_first & _a_first_T ? 9'h45 == auto_in_a_bits_source | flight_69 : flight_69; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_392 = a_first & _a_first_T ? 9'h46 == auto_in_a_bits_source | flight_70 : flight_70; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_393 = a_first & _a_first_T ? 9'h47 == auto_in_a_bits_source | flight_71 : flight_71; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_394 = a_first & _a_first_T ? 9'h48 == auto_in_a_bits_source | flight_72 : flight_72; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_395 = a_first & _a_first_T ? 9'h49 == auto_in_a_bits_source | flight_73 : flight_73; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_396 = a_first & _a_first_T ? 9'h4a == auto_in_a_bits_source | flight_74 : flight_74; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_397 = a_first & _a_first_T ? 9'h4b == auto_in_a_bits_source | flight_75 : flight_75; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_398 = a_first & _a_first_T ? 9'h4c == auto_in_a_bits_source | flight_76 : flight_76; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_399 = a_first & _a_first_T ? 9'h4d == auto_in_a_bits_source | flight_77 : flight_77; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_400 = a_first & _a_first_T ? 9'h4e == auto_in_a_bits_source | flight_78 : flight_78; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_401 = a_first & _a_first_T ? 9'h4f == auto_in_a_bits_source | flight_79 : flight_79; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_402 = a_first & _a_first_T ? 9'h50 == auto_in_a_bits_source | flight_80 : flight_80; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_403 = a_first & _a_first_T ? 9'h51 == auto_in_a_bits_source | flight_81 : flight_81; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_404 = a_first & _a_first_T ? 9'h52 == auto_in_a_bits_source | flight_82 : flight_82; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_405 = a_first & _a_first_T ? 9'h53 == auto_in_a_bits_source | flight_83 : flight_83; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_406 = a_first & _a_first_T ? 9'h54 == auto_in_a_bits_source | flight_84 : flight_84; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_407 = a_first & _a_first_T ? 9'h55 == auto_in_a_bits_source | flight_85 : flight_85; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_408 = a_first & _a_first_T ? 9'h56 == auto_in_a_bits_source | flight_86 : flight_86; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_409 = a_first & _a_first_T ? 9'h57 == auto_in_a_bits_source | flight_87 : flight_87; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_410 = a_first & _a_first_T ? 9'h58 == auto_in_a_bits_source | flight_88 : flight_88; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_411 = a_first & _a_first_T ? 9'h59 == auto_in_a_bits_source | flight_89 : flight_89; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_412 = a_first & _a_first_T ? 9'h5a == auto_in_a_bits_source | flight_90 : flight_90; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_413 = a_first & _a_first_T ? 9'h5b == auto_in_a_bits_source | flight_91 : flight_91; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_414 = a_first & _a_first_T ? 9'h5c == auto_in_a_bits_source | flight_92 : flight_92; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_415 = a_first & _a_first_T ? 9'h5d == auto_in_a_bits_source | flight_93 : flight_93; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_416 = a_first & _a_first_T ? 9'h5e == auto_in_a_bits_source | flight_94 : flight_94; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_417 = a_first & _a_first_T ? 9'h5f == auto_in_a_bits_source | flight_95 : flight_95; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_418 = a_first & _a_first_T ? 9'h60 == auto_in_a_bits_source | flight_96 : flight_96; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_419 = a_first & _a_first_T ? 9'h61 == auto_in_a_bits_source | flight_97 : flight_97; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_420 = a_first & _a_first_T ? 9'h62 == auto_in_a_bits_source | flight_98 : flight_98; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_421 = a_first & _a_first_T ? 9'h63 == auto_in_a_bits_source | flight_99 : flight_99; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_422 = a_first & _a_first_T ? 9'h64 == auto_in_a_bits_source | flight_100 : flight_100; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_423 = a_first & _a_first_T ? 9'h65 == auto_in_a_bits_source | flight_101 : flight_101; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_424 = a_first & _a_first_T ? 9'h66 == auto_in_a_bits_source | flight_102 : flight_102; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_425 = a_first & _a_first_T ? 9'h67 == auto_in_a_bits_source | flight_103 : flight_103; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_426 = a_first & _a_first_T ? 9'h68 == auto_in_a_bits_source | flight_104 : flight_104; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_427 = a_first & _a_first_T ? 9'h69 == auto_in_a_bits_source | flight_105 : flight_105; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_428 = a_first & _a_first_T ? 9'h6a == auto_in_a_bits_source | flight_106 : flight_106; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_429 = a_first & _a_first_T ? 9'h6b == auto_in_a_bits_source | flight_107 : flight_107; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_430 = a_first & _a_first_T ? 9'h6c == auto_in_a_bits_source | flight_108 : flight_108; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_431 = a_first & _a_first_T ? 9'h6d == auto_in_a_bits_source | flight_109 : flight_109; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_432 = a_first & _a_first_T ? 9'h6e == auto_in_a_bits_source | flight_110 : flight_110; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_433 = a_first & _a_first_T ? 9'h6f == auto_in_a_bits_source | flight_111 : flight_111; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_434 = a_first & _a_first_T ? 9'h70 == auto_in_a_bits_source | flight_112 : flight_112; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_435 = a_first & _a_first_T ? 9'h71 == auto_in_a_bits_source | flight_113 : flight_113; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_436 = a_first & _a_first_T ? 9'h72 == auto_in_a_bits_source | flight_114 : flight_114; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_437 = a_first & _a_first_T ? 9'h73 == auto_in_a_bits_source | flight_115 : flight_115; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_438 = a_first & _a_first_T ? 9'h74 == auto_in_a_bits_source | flight_116 : flight_116; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_439 = a_first & _a_first_T ? 9'h75 == auto_in_a_bits_source | flight_117 : flight_117; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_440 = a_first & _a_first_T ? 9'h76 == auto_in_a_bits_source | flight_118 : flight_118; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_441 = a_first & _a_first_T ? 9'h77 == auto_in_a_bits_source | flight_119 : flight_119; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_442 = a_first & _a_first_T ? 9'h78 == auto_in_a_bits_source | flight_120 : flight_120; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_443 = a_first & _a_first_T ? 9'h79 == auto_in_a_bits_source | flight_121 : flight_121; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_444 = a_first & _a_first_T ? 9'h7a == auto_in_a_bits_source | flight_122 : flight_122; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_445 = a_first & _a_first_T ? 9'h7b == auto_in_a_bits_source | flight_123 : flight_123; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_446 = a_first & _a_first_T ? 9'h7c == auto_in_a_bits_source | flight_124 : flight_124; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_447 = a_first & _a_first_T ? 9'h7d == auto_in_a_bits_source | flight_125 : flight_125; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_448 = a_first & _a_first_T ? 9'h7e == auto_in_a_bits_source | flight_126 : flight_126; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_449 = a_first & _a_first_T ? 9'h7f == auto_in_a_bits_source | flight_127 : flight_127; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_450 = a_first & _a_first_T ? 9'h80 == auto_in_a_bits_source | flight_128 : flight_128; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_451 = a_first & _a_first_T ? 9'h81 == auto_in_a_bits_source | flight_129 : flight_129; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_452 = a_first & _a_first_T ? 9'h82 == auto_in_a_bits_source | flight_130 : flight_130; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_453 = a_first & _a_first_T ? 9'h83 == auto_in_a_bits_source | flight_131 : flight_131; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_454 = a_first & _a_first_T ? 9'h84 == auto_in_a_bits_source | flight_132 : flight_132; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_455 = a_first & _a_first_T ? 9'h85 == auto_in_a_bits_source | flight_133 : flight_133; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_456 = a_first & _a_first_T ? 9'h86 == auto_in_a_bits_source | flight_134 : flight_134; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_457 = a_first & _a_first_T ? 9'h87 == auto_in_a_bits_source | flight_135 : flight_135; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_458 = a_first & _a_first_T ? 9'h88 == auto_in_a_bits_source | flight_136 : flight_136; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_459 = a_first & _a_first_T ? 9'h89 == auto_in_a_bits_source | flight_137 : flight_137; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_460 = a_first & _a_first_T ? 9'h8a == auto_in_a_bits_source | flight_138 : flight_138; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_461 = a_first & _a_first_T ? 9'h8b == auto_in_a_bits_source | flight_139 : flight_139; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_462 = a_first & _a_first_T ? 9'h8c == auto_in_a_bits_source | flight_140 : flight_140; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_463 = a_first & _a_first_T ? 9'h8d == auto_in_a_bits_source | flight_141 : flight_141; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_464 = a_first & _a_first_T ? 9'h8e == auto_in_a_bits_source | flight_142 : flight_142; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_465 = a_first & _a_first_T ? 9'h8f == auto_in_a_bits_source | flight_143 : flight_143; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_466 = a_first & _a_first_T ? 9'h90 == auto_in_a_bits_source | flight_144 : flight_144; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_467 = a_first & _a_first_T ? 9'h91 == auto_in_a_bits_source | flight_145 : flight_145; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_468 = a_first & _a_first_T ? 9'h92 == auto_in_a_bits_source | flight_146 : flight_146; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_469 = a_first & _a_first_T ? 9'h93 == auto_in_a_bits_source | flight_147 : flight_147; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_470 = a_first & _a_first_T ? 9'h94 == auto_in_a_bits_source | flight_148 : flight_148; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_471 = a_first & _a_first_T ? 9'h95 == auto_in_a_bits_source | flight_149 : flight_149; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_472 = a_first & _a_first_T ? 9'h96 == auto_in_a_bits_source | flight_150 : flight_150; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_473 = a_first & _a_first_T ? 9'h97 == auto_in_a_bits_source | flight_151 : flight_151; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_474 = a_first & _a_first_T ? 9'h98 == auto_in_a_bits_source | flight_152 : flight_152; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_475 = a_first & _a_first_T ? 9'h99 == auto_in_a_bits_source | flight_153 : flight_153; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_476 = a_first & _a_first_T ? 9'h9a == auto_in_a_bits_source | flight_154 : flight_154; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_477 = a_first & _a_first_T ? 9'h9b == auto_in_a_bits_source | flight_155 : flight_155; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_478 = a_first & _a_first_T ? 9'h9c == auto_in_a_bits_source | flight_156 : flight_156; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_479 = a_first & _a_first_T ? 9'h9d == auto_in_a_bits_source | flight_157 : flight_157; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_480 = a_first & _a_first_T ? 9'h9e == auto_in_a_bits_source | flight_158 : flight_158; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_481 = a_first & _a_first_T ? 9'h9f == auto_in_a_bits_source | flight_159 : flight_159; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_482 = a_first & _a_first_T ? 9'ha0 == auto_in_a_bits_source | flight_160 : flight_160; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_483 = a_first & _a_first_T ? 9'ha1 == auto_in_a_bits_source | flight_161 : flight_161; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_484 = a_first & _a_first_T ? 9'ha2 == auto_in_a_bits_source | flight_162 : flight_162; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_485 = a_first & _a_first_T ? 9'ha3 == auto_in_a_bits_source | flight_163 : flight_163; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_486 = a_first & _a_first_T ? 9'ha4 == auto_in_a_bits_source | flight_164 : flight_164; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_487 = a_first & _a_first_T ? 9'ha5 == auto_in_a_bits_source | flight_165 : flight_165; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_488 = a_first & _a_first_T ? 9'ha6 == auto_in_a_bits_source | flight_166 : flight_166; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_489 = a_first & _a_first_T ? 9'ha7 == auto_in_a_bits_source | flight_167 : flight_167; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_490 = a_first & _a_first_T ? 9'ha8 == auto_in_a_bits_source | flight_168 : flight_168; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_491 = a_first & _a_first_T ? 9'ha9 == auto_in_a_bits_source | flight_169 : flight_169; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_492 = a_first & _a_first_T ? 9'haa == auto_in_a_bits_source | flight_170 : flight_170; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_493 = a_first & _a_first_T ? 9'hab == auto_in_a_bits_source | flight_171 : flight_171; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_494 = a_first & _a_first_T ? 9'hac == auto_in_a_bits_source | flight_172 : flight_172; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_495 = a_first & _a_first_T ? 9'had == auto_in_a_bits_source | flight_173 : flight_173; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_496 = a_first & _a_first_T ? 9'hae == auto_in_a_bits_source | flight_174 : flight_174; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_497 = a_first & _a_first_T ? 9'haf == auto_in_a_bits_source | flight_175 : flight_175; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_498 = a_first & _a_first_T ? 9'hb0 == auto_in_a_bits_source | flight_176 : flight_176; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_499 = a_first & _a_first_T ? 9'hb1 == auto_in_a_bits_source | flight_177 : flight_177; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_500 = a_first & _a_first_T ? 9'hb2 == auto_in_a_bits_source | flight_178 : flight_178; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_501 = a_first & _a_first_T ? 9'hb3 == auto_in_a_bits_source | flight_179 : flight_179; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_502 = a_first & _a_first_T ? 9'hb4 == auto_in_a_bits_source | flight_180 : flight_180; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_503 = a_first & _a_first_T ? 9'hb5 == auto_in_a_bits_source | flight_181 : flight_181; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_504 = a_first & _a_first_T ? 9'hb6 == auto_in_a_bits_source | flight_182 : flight_182; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_505 = a_first & _a_first_T ? 9'hb7 == auto_in_a_bits_source | flight_183 : flight_183; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_506 = a_first & _a_first_T ? 9'hb8 == auto_in_a_bits_source | flight_184 : flight_184; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_507 = a_first & _a_first_T ? 9'hb9 == auto_in_a_bits_source | flight_185 : flight_185; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_508 = a_first & _a_first_T ? 9'hba == auto_in_a_bits_source | flight_186 : flight_186; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_509 = a_first & _a_first_T ? 9'hbb == auto_in_a_bits_source | flight_187 : flight_187; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_510 = a_first & _a_first_T ? 9'hbc == auto_in_a_bits_source | flight_188 : flight_188; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_511 = a_first & _a_first_T ? 9'hbd == auto_in_a_bits_source | flight_189 : flight_189; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_512 = a_first & _a_first_T ? 9'hbe == auto_in_a_bits_source | flight_190 : flight_190; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_513 = a_first & _a_first_T ? 9'hbf == auto_in_a_bits_source | flight_191 : flight_191; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_514 = a_first & _a_first_T ? 9'hc0 == auto_in_a_bits_source | flight_192 : flight_192; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_515 = a_first & _a_first_T ? 9'hc1 == auto_in_a_bits_source | flight_193 : flight_193; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_516 = a_first & _a_first_T ? 9'hc2 == auto_in_a_bits_source | flight_194 : flight_194; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_517 = a_first & _a_first_T ? 9'hc3 == auto_in_a_bits_source | flight_195 : flight_195; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_518 = a_first & _a_first_T ? 9'hc4 == auto_in_a_bits_source | flight_196 : flight_196; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_519 = a_first & _a_first_T ? 9'hc5 == auto_in_a_bits_source | flight_197 : flight_197; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_520 = a_first & _a_first_T ? 9'hc6 == auto_in_a_bits_source | flight_198 : flight_198; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_521 = a_first & _a_first_T ? 9'hc7 == auto_in_a_bits_source | flight_199 : flight_199; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_522 = a_first & _a_first_T ? 9'hc8 == auto_in_a_bits_source | flight_200 : flight_200; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_523 = a_first & _a_first_T ? 9'hc9 == auto_in_a_bits_source | flight_201 : flight_201; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_524 = a_first & _a_first_T ? 9'hca == auto_in_a_bits_source | flight_202 : flight_202; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_525 = a_first & _a_first_T ? 9'hcb == auto_in_a_bits_source | flight_203 : flight_203; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_526 = a_first & _a_first_T ? 9'hcc == auto_in_a_bits_source | flight_204 : flight_204; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_527 = a_first & _a_first_T ? 9'hcd == auto_in_a_bits_source | flight_205 : flight_205; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_528 = a_first & _a_first_T ? 9'hce == auto_in_a_bits_source | flight_206 : flight_206; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_529 = a_first & _a_first_T ? 9'hcf == auto_in_a_bits_source | flight_207 : flight_207; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_530 = a_first & _a_first_T ? 9'hd0 == auto_in_a_bits_source | flight_208 : flight_208; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_531 = a_first & _a_first_T ? 9'hd1 == auto_in_a_bits_source | flight_209 : flight_209; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_532 = a_first & _a_first_T ? 9'hd2 == auto_in_a_bits_source | flight_210 : flight_210; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_533 = a_first & _a_first_T ? 9'hd3 == auto_in_a_bits_source | flight_211 : flight_211; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_534 = a_first & _a_first_T ? 9'hd4 == auto_in_a_bits_source | flight_212 : flight_212; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_535 = a_first & _a_first_T ? 9'hd5 == auto_in_a_bits_source | flight_213 : flight_213; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_536 = a_first & _a_first_T ? 9'hd6 == auto_in_a_bits_source | flight_214 : flight_214; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_537 = a_first & _a_first_T ? 9'hd7 == auto_in_a_bits_source | flight_215 : flight_215; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_538 = a_first & _a_first_T ? 9'hd8 == auto_in_a_bits_source | flight_216 : flight_216; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_539 = a_first & _a_first_T ? 9'hd9 == auto_in_a_bits_source | flight_217 : flight_217; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_540 = a_first & _a_first_T ? 9'hda == auto_in_a_bits_source | flight_218 : flight_218; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_541 = a_first & _a_first_T ? 9'hdb == auto_in_a_bits_source | flight_219 : flight_219; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_542 = a_first & _a_first_T ? 9'hdc == auto_in_a_bits_source | flight_220 : flight_220; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_543 = a_first & _a_first_T ? 9'hdd == auto_in_a_bits_source | flight_221 : flight_221; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_544 = a_first & _a_first_T ? 9'hde == auto_in_a_bits_source | flight_222 : flight_222; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_545 = a_first & _a_first_T ? 9'hdf == auto_in_a_bits_source | flight_223 : flight_223; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_546 = a_first & _a_first_T ? 9'he0 == auto_in_a_bits_source | flight_224 : flight_224; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_547 = a_first & _a_first_T ? 9'he1 == auto_in_a_bits_source | flight_225 : flight_225; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_548 = a_first & _a_first_T ? 9'he2 == auto_in_a_bits_source | flight_226 : flight_226; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_549 = a_first & _a_first_T ? 9'he3 == auto_in_a_bits_source | flight_227 : flight_227; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_550 = a_first & _a_first_T ? 9'he4 == auto_in_a_bits_source | flight_228 : flight_228; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_551 = a_first & _a_first_T ? 9'he5 == auto_in_a_bits_source | flight_229 : flight_229; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_552 = a_first & _a_first_T ? 9'he6 == auto_in_a_bits_source | flight_230 : flight_230; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_553 = a_first & _a_first_T ? 9'he7 == auto_in_a_bits_source | flight_231 : flight_231; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_554 = a_first & _a_first_T ? 9'he8 == auto_in_a_bits_source | flight_232 : flight_232; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_555 = a_first & _a_first_T ? 9'he9 == auto_in_a_bits_source | flight_233 : flight_233; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_556 = a_first & _a_first_T ? 9'hea == auto_in_a_bits_source | flight_234 : flight_234; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_557 = a_first & _a_first_T ? 9'heb == auto_in_a_bits_source | flight_235 : flight_235; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_558 = a_first & _a_first_T ? 9'hec == auto_in_a_bits_source | flight_236 : flight_236; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_559 = a_first & _a_first_T ? 9'hed == auto_in_a_bits_source | flight_237 : flight_237; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_560 = a_first & _a_first_T ? 9'hee == auto_in_a_bits_source | flight_238 : flight_238; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_561 = a_first & _a_first_T ? 9'hef == auto_in_a_bits_source | flight_239 : flight_239; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_562 = a_first & _a_first_T ? 9'hf0 == auto_in_a_bits_source | flight_240 : flight_240; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_563 = a_first & _a_first_T ? 9'hf1 == auto_in_a_bits_source | flight_241 : flight_241; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_564 = a_first & _a_first_T ? 9'hf2 == auto_in_a_bits_source | flight_242 : flight_242; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_565 = a_first & _a_first_T ? 9'hf3 == auto_in_a_bits_source | flight_243 : flight_243; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_566 = a_first & _a_first_T ? 9'hf4 == auto_in_a_bits_source | flight_244 : flight_244; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_567 = a_first & _a_first_T ? 9'hf5 == auto_in_a_bits_source | flight_245 : flight_245; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_568 = a_first & _a_first_T ? 9'hf6 == auto_in_a_bits_source | flight_246 : flight_246; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_569 = a_first & _a_first_T ? 9'hf7 == auto_in_a_bits_source | flight_247 : flight_247; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_570 = a_first & _a_first_T ? 9'hf8 == auto_in_a_bits_source | flight_248 : flight_248; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_571 = a_first & _a_first_T ? 9'hf9 == auto_in_a_bits_source | flight_249 : flight_249; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_572 = a_first & _a_first_T ? 9'hfa == auto_in_a_bits_source | flight_250 : flight_250; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_573 = a_first & _a_first_T ? 9'hfb == auto_in_a_bits_source | flight_251 : flight_251; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_574 = a_first & _a_first_T ? 9'hfc == auto_in_a_bits_source | flight_252 : flight_252; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_575 = a_first & _a_first_T ? 9'hfd == auto_in_a_bits_source | flight_253 : flight_253; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_576 = a_first & _a_first_T ? 9'hfe == auto_in_a_bits_source | flight_254 : flight_254; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_577 = a_first & _a_first_T ? 9'hff == auto_in_a_bits_source | flight_255 : flight_255; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_578 = a_first & _a_first_T ? 9'h100 == auto_in_a_bits_source | flight_256 : flight_256; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_579 = a_first & _a_first_T ? 9'h101 == auto_in_a_bits_source | flight_257 : flight_257; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_580 = a_first & _a_first_T ? 9'h102 == auto_in_a_bits_source | flight_258 : flight_258; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_581 = a_first & _a_first_T ? 9'h103 == auto_in_a_bits_source | flight_259 : flight_259; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_582 = a_first & _a_first_T ? 9'h104 == auto_in_a_bits_source | flight_260 : flight_260; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_583 = a_first & _a_first_T ? 9'h105 == auto_in_a_bits_source | flight_261 : flight_261; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_584 = a_first & _a_first_T ? 9'h106 == auto_in_a_bits_source | flight_262 : flight_262; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_585 = a_first & _a_first_T ? 9'h107 == auto_in_a_bits_source | flight_263 : flight_263; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_586 = a_first & _a_first_T ? 9'h108 == auto_in_a_bits_source | flight_264 : flight_264; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_587 = a_first & _a_first_T ? 9'h109 == auto_in_a_bits_source | flight_265 : flight_265; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_588 = a_first & _a_first_T ? 9'h10a == auto_in_a_bits_source | flight_266 : flight_266; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_589 = a_first & _a_first_T ? 9'h10b == auto_in_a_bits_source | flight_267 : flight_267; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_590 = a_first & _a_first_T ? 9'h10c == auto_in_a_bits_source | flight_268 : flight_268; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_591 = a_first & _a_first_T ? 9'h10d == auto_in_a_bits_source | flight_269 : flight_269; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_592 = a_first & _a_first_T ? 9'h10e == auto_in_a_bits_source | flight_270 : flight_270; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_593 = a_first & _a_first_T ? 9'h10f == auto_in_a_bits_source | flight_271 : flight_271; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_594 = a_first & _a_first_T ? 9'h110 == auto_in_a_bits_source | flight_272 : flight_272; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_595 = a_first & _a_first_T ? 9'h111 == auto_in_a_bits_source | flight_273 : flight_273; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_596 = a_first & _a_first_T ? 9'h112 == auto_in_a_bits_source | flight_274 : flight_274; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_597 = a_first & _a_first_T ? 9'h113 == auto_in_a_bits_source | flight_275 : flight_275; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_598 = a_first & _a_first_T ? 9'h114 == auto_in_a_bits_source | flight_276 : flight_276; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_599 = a_first & _a_first_T ? 9'h115 == auto_in_a_bits_source | flight_277 : flight_277; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_600 = a_first & _a_first_T ? 9'h116 == auto_in_a_bits_source | flight_278 : flight_278; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_601 = a_first & _a_first_T ? 9'h117 == auto_in_a_bits_source | flight_279 : flight_279; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_602 = a_first & _a_first_T ? 9'h118 == auto_in_a_bits_source | flight_280 : flight_280; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_603 = a_first & _a_first_T ? 9'h119 == auto_in_a_bits_source | flight_281 : flight_281; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_604 = a_first & _a_first_T ? 9'h11a == auto_in_a_bits_source | flight_282 : flight_282; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_605 = a_first & _a_first_T ? 9'h11b == auto_in_a_bits_source | flight_283 : flight_283; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_606 = a_first & _a_first_T ? 9'h11c == auto_in_a_bits_source | flight_284 : flight_284; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_607 = a_first & _a_first_T ? 9'h11d == auto_in_a_bits_source | flight_285 : flight_285; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_608 = a_first & _a_first_T ? 9'h11e == auto_in_a_bits_source | flight_286 : flight_286; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_609 = a_first & _a_first_T ? 9'h11f == auto_in_a_bits_source | flight_287 : flight_287; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_610 = a_first & _a_first_T ? 9'h120 == auto_in_a_bits_source | flight_288 : flight_288; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_611 = a_first & _a_first_T ? 9'h121 == auto_in_a_bits_source | flight_289 : flight_289; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_612 = a_first & _a_first_T ? 9'h122 == auto_in_a_bits_source | flight_290 : flight_290; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_613 = a_first & _a_first_T ? 9'h123 == auto_in_a_bits_source | flight_291 : flight_291; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_614 = a_first & _a_first_T ? 9'h124 == auto_in_a_bits_source | flight_292 : flight_292; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_615 = a_first & _a_first_T ? 9'h125 == auto_in_a_bits_source | flight_293 : flight_293; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_616 = a_first & _a_first_T ? 9'h126 == auto_in_a_bits_source | flight_294 : flight_294; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_617 = a_first & _a_first_T ? 9'h127 == auto_in_a_bits_source | flight_295 : flight_295; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_618 = a_first & _a_first_T ? 9'h128 == auto_in_a_bits_source | flight_296 : flight_296; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_619 = a_first & _a_first_T ? 9'h129 == auto_in_a_bits_source | flight_297 : flight_297; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_620 = a_first & _a_first_T ? 9'h12a == auto_in_a_bits_source | flight_298 : flight_298; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_621 = a_first & _a_first_T ? 9'h12b == auto_in_a_bits_source | flight_299 : flight_299; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_622 = a_first & _a_first_T ? 9'h12c == auto_in_a_bits_source | flight_300 : flight_300; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_623 = a_first & _a_first_T ? 9'h12d == auto_in_a_bits_source | flight_301 : flight_301; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_624 = a_first & _a_first_T ? 9'h12e == auto_in_a_bits_source | flight_302 : flight_302; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_625 = a_first & _a_first_T ? 9'h12f == auto_in_a_bits_source | flight_303 : flight_303; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_626 = a_first & _a_first_T ? 9'h130 == auto_in_a_bits_source | flight_304 : flight_304; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_627 = a_first & _a_first_T ? 9'h131 == auto_in_a_bits_source | flight_305 : flight_305; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_628 = a_first & _a_first_T ? 9'h132 == auto_in_a_bits_source | flight_306 : flight_306; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_629 = a_first & _a_first_T ? 9'h133 == auto_in_a_bits_source | flight_307 : flight_307; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_630 = a_first & _a_first_T ? 9'h134 == auto_in_a_bits_source | flight_308 : flight_308; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_631 = a_first & _a_first_T ? 9'h135 == auto_in_a_bits_source | flight_309 : flight_309; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_632 = a_first & _a_first_T ? 9'h136 == auto_in_a_bits_source | flight_310 : flight_310; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_633 = a_first & _a_first_T ? 9'h137 == auto_in_a_bits_source | flight_311 : flight_311; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_634 = a_first & _a_first_T ? 9'h138 == auto_in_a_bits_source | flight_312 : flight_312; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_635 = a_first & _a_first_T ? 9'h139 == auto_in_a_bits_source | flight_313 : flight_313; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_636 = a_first & _a_first_T ? 9'h13a == auto_in_a_bits_source | flight_314 : flight_314; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_637 = a_first & _a_first_T ? 9'h13b == auto_in_a_bits_source | flight_315 : flight_315; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_638 = a_first & _a_first_T ? 9'h13c == auto_in_a_bits_source | flight_316 : flight_316; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_639 = a_first & _a_first_T ? 9'h13d == auto_in_a_bits_source | flight_317 : flight_317; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_640 = a_first & _a_first_T ? 9'h13e == auto_in_a_bits_source | flight_318 : flight_318; // @[FIFOFixer.scala 71:27 72:37]
  wire  _GEN_641 = a_first & _a_first_T ? 9'h13f == auto_in_a_bits_source | flight_319 : flight_319; // @[FIFOFixer.scala 71:27 72:37]
  TLMonitor_9 monitor ( // @[Nodes.scala 24:25]
    .clock(monitor_clock),
    .reset(monitor_reset),
    .io_in_a_ready(monitor_io_in_a_ready),
    .io_in_a_valid(monitor_io_in_a_valid),
    .io_in_a_bits_opcode(monitor_io_in_a_bits_opcode),
    .io_in_a_bits_param(monitor_io_in_a_bits_param),
    .io_in_a_bits_size(monitor_io_in_a_bits_size),
    .io_in_a_bits_source(monitor_io_in_a_bits_source),
    .io_in_a_bits_address(monitor_io_in_a_bits_address),
    .io_in_a_bits_mask(monitor_io_in_a_bits_mask),
    .io_in_a_bits_corrupt(monitor_io_in_a_bits_corrupt),
    .io_in_d_ready(monitor_io_in_d_ready),
    .io_in_d_valid(monitor_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_io_in_d_bits_opcode),
    .io_in_d_bits_size(monitor_io_in_d_bits_size),
    .io_in_d_bits_source(monitor_io_in_d_bits_source)
  );
  assign auto_in_a_ready = auto_out_a_ready & ~stalls_0; // @[FIFOFixer.scala 88:33]
  assign auto_in_d_valid = auto_out_d_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_d_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_d_bits_size = auto_out_d_bits_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_d_bits_source = auto_out_d_bits_source; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_d_bits_data = auto_out_d_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_out_a_valid = auto_in_a_valid & _bundleIn_0_a_ready_T; // @[FIFOFixer.scala 87:33]
  assign auto_out_a_bits_opcode = auto_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_a_bits_param = auto_in_a_bits_param; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_a_bits_size = auto_in_a_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_a_bits_source = auto_in_a_bits_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_a_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_a_bits_mask = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_a_bits_data = auto_in_a_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_a_bits_corrupt = auto_in_a_bits_corrupt; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_d_ready = auto_in_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_clock = clock;
  assign monitor_reset = reset;
  assign monitor_io_in_a_ready = auto_out_a_ready & ~stalls_0; // @[FIFOFixer.scala 88:33]
  assign monitor_io_in_a_valid = auto_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_opcode = auto_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_param = auto_in_a_bits_param; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_size = auto_in_a_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_source = auto_in_a_bits_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_mask = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_corrupt = auto_in_a_bits_corrupt; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_ready = auto_in_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_valid = auto_out_d_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_io_in_d_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_io_in_d_bits_size = auto_out_d_bits_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_io_in_d_bits_source = auto_out_d_bits_source; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        a_first_counter <= 1'h0;
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_0 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h0 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_0 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_0 <= _GEN_322;
      end
    end else begin
      flight_0 <= _GEN_322;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_1 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h1 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_1 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_1 <= _GEN_323;
      end
    end else begin
      flight_1 <= _GEN_323;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_2 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h2 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_2 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_2 <= _GEN_324;
      end
    end else begin
      flight_2 <= _GEN_324;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_3 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h3 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_3 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_3 <= _GEN_325;
      end
    end else begin
      flight_3 <= _GEN_325;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_4 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h4 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_4 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_4 <= _GEN_326;
      end
    end else begin
      flight_4 <= _GEN_326;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_5 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h5 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_5 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_5 <= _GEN_327;
      end
    end else begin
      flight_5 <= _GEN_327;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_6 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h6 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_6 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_6 <= _GEN_328;
      end
    end else begin
      flight_6 <= _GEN_328;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_7 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h7 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_7 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_7 <= _GEN_329;
      end
    end else begin
      flight_7 <= _GEN_329;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_8 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h8 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_8 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_8 <= _GEN_330;
      end
    end else begin
      flight_8 <= _GEN_330;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_9 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h9 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_9 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_9 <= _GEN_331;
      end
    end else begin
      flight_9 <= _GEN_331;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_10 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'ha == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_10 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_10 <= _GEN_332;
      end
    end else begin
      flight_10 <= _GEN_332;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_11 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hb == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_11 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_11 <= _GEN_333;
      end
    end else begin
      flight_11 <= _GEN_333;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_12 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hc == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_12 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_12 <= _GEN_334;
      end
    end else begin
      flight_12 <= _GEN_334;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_13 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hd == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_13 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_13 <= _GEN_335;
      end
    end else begin
      flight_13 <= _GEN_335;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_14 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'he == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_14 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_14 <= _GEN_336;
      end
    end else begin
      flight_14 <= _GEN_336;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_15 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hf == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_15 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_15 <= _GEN_337;
      end
    end else begin
      flight_15 <= _GEN_337;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_16 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h10 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_16 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_16 <= _GEN_338;
      end
    end else begin
      flight_16 <= _GEN_338;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_17 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h11 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_17 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_17 <= _GEN_339;
      end
    end else begin
      flight_17 <= _GEN_339;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_18 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h12 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_18 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_18 <= _GEN_340;
      end
    end else begin
      flight_18 <= _GEN_340;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_19 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h13 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_19 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_19 <= _GEN_341;
      end
    end else begin
      flight_19 <= _GEN_341;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_20 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h14 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_20 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_20 <= _GEN_342;
      end
    end else begin
      flight_20 <= _GEN_342;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_21 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h15 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_21 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_21 <= _GEN_343;
      end
    end else begin
      flight_21 <= _GEN_343;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_22 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h16 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_22 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_22 <= _GEN_344;
      end
    end else begin
      flight_22 <= _GEN_344;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_23 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h17 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_23 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_23 <= _GEN_345;
      end
    end else begin
      flight_23 <= _GEN_345;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_24 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h18 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_24 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_24 <= _GEN_346;
      end
    end else begin
      flight_24 <= _GEN_346;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_25 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h19 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_25 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_25 <= _GEN_347;
      end
    end else begin
      flight_25 <= _GEN_347;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_26 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h1a == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_26 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_26 <= _GEN_348;
      end
    end else begin
      flight_26 <= _GEN_348;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_27 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h1b == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_27 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_27 <= _GEN_349;
      end
    end else begin
      flight_27 <= _GEN_349;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_28 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h1c == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_28 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_28 <= _GEN_350;
      end
    end else begin
      flight_28 <= _GEN_350;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_29 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h1d == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_29 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_29 <= _GEN_351;
      end
    end else begin
      flight_29 <= _GEN_351;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_30 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h1e == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_30 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_30 <= _GEN_352;
      end
    end else begin
      flight_30 <= _GEN_352;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_31 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h1f == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_31 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_31 <= _GEN_353;
      end
    end else begin
      flight_31 <= _GEN_353;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_32 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h20 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_32 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_32 <= _GEN_354;
      end
    end else begin
      flight_32 <= _GEN_354;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_33 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h21 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_33 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_33 <= _GEN_355;
      end
    end else begin
      flight_33 <= _GEN_355;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_34 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h22 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_34 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_34 <= _GEN_356;
      end
    end else begin
      flight_34 <= _GEN_356;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_35 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h23 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_35 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_35 <= _GEN_357;
      end
    end else begin
      flight_35 <= _GEN_357;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_36 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h24 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_36 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_36 <= _GEN_358;
      end
    end else begin
      flight_36 <= _GEN_358;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_37 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h25 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_37 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_37 <= _GEN_359;
      end
    end else begin
      flight_37 <= _GEN_359;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_38 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h26 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_38 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_38 <= _GEN_360;
      end
    end else begin
      flight_38 <= _GEN_360;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_39 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h27 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_39 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_39 <= _GEN_361;
      end
    end else begin
      flight_39 <= _GEN_361;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_40 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h28 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_40 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_40 <= _GEN_362;
      end
    end else begin
      flight_40 <= _GEN_362;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_41 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h29 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_41 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_41 <= _GEN_363;
      end
    end else begin
      flight_41 <= _GEN_363;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_42 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h2a == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_42 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_42 <= _GEN_364;
      end
    end else begin
      flight_42 <= _GEN_364;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_43 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h2b == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_43 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_43 <= _GEN_365;
      end
    end else begin
      flight_43 <= _GEN_365;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_44 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h2c == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_44 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_44 <= _GEN_366;
      end
    end else begin
      flight_44 <= _GEN_366;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_45 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h2d == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_45 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_45 <= _GEN_367;
      end
    end else begin
      flight_45 <= _GEN_367;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_46 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h2e == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_46 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_46 <= _GEN_368;
      end
    end else begin
      flight_46 <= _GEN_368;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_47 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h2f == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_47 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_47 <= _GEN_369;
      end
    end else begin
      flight_47 <= _GEN_369;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_48 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h30 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_48 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_48 <= _GEN_370;
      end
    end else begin
      flight_48 <= _GEN_370;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_49 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h31 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_49 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_49 <= _GEN_371;
      end
    end else begin
      flight_49 <= _GEN_371;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_50 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h32 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_50 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_50 <= _GEN_372;
      end
    end else begin
      flight_50 <= _GEN_372;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_51 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h33 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_51 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_51 <= _GEN_373;
      end
    end else begin
      flight_51 <= _GEN_373;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_52 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h34 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_52 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_52 <= _GEN_374;
      end
    end else begin
      flight_52 <= _GEN_374;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_53 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h35 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_53 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_53 <= _GEN_375;
      end
    end else begin
      flight_53 <= _GEN_375;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_54 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h36 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_54 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_54 <= _GEN_376;
      end
    end else begin
      flight_54 <= _GEN_376;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_55 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h37 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_55 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_55 <= _GEN_377;
      end
    end else begin
      flight_55 <= _GEN_377;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_56 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h38 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_56 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_56 <= _GEN_378;
      end
    end else begin
      flight_56 <= _GEN_378;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_57 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h39 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_57 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_57 <= _GEN_379;
      end
    end else begin
      flight_57 <= _GEN_379;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_58 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h3a == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_58 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_58 <= _GEN_380;
      end
    end else begin
      flight_58 <= _GEN_380;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_59 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h3b == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_59 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_59 <= _GEN_381;
      end
    end else begin
      flight_59 <= _GEN_381;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_60 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h3c == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_60 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_60 <= _GEN_382;
      end
    end else begin
      flight_60 <= _GEN_382;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_61 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h3d == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_61 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_61 <= _GEN_383;
      end
    end else begin
      flight_61 <= _GEN_383;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_62 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h3e == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_62 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_62 <= _GEN_384;
      end
    end else begin
      flight_62 <= _GEN_384;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_63 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h3f == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_63 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_63 <= _GEN_385;
      end
    end else begin
      flight_63 <= _GEN_385;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_64 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h40 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_64 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_64 <= _GEN_386;
      end
    end else begin
      flight_64 <= _GEN_386;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_65 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h41 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_65 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_65 <= _GEN_387;
      end
    end else begin
      flight_65 <= _GEN_387;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_66 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h42 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_66 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_66 <= _GEN_388;
      end
    end else begin
      flight_66 <= _GEN_388;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_67 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h43 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_67 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_67 <= _GEN_389;
      end
    end else begin
      flight_67 <= _GEN_389;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_68 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h44 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_68 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_68 <= _GEN_390;
      end
    end else begin
      flight_68 <= _GEN_390;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_69 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h45 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_69 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_69 <= _GEN_391;
      end
    end else begin
      flight_69 <= _GEN_391;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_70 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h46 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_70 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_70 <= _GEN_392;
      end
    end else begin
      flight_70 <= _GEN_392;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_71 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h47 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_71 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_71 <= _GEN_393;
      end
    end else begin
      flight_71 <= _GEN_393;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_72 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h48 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_72 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_72 <= _GEN_394;
      end
    end else begin
      flight_72 <= _GEN_394;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_73 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h49 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_73 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_73 <= _GEN_395;
      end
    end else begin
      flight_73 <= _GEN_395;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_74 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h4a == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_74 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_74 <= _GEN_396;
      end
    end else begin
      flight_74 <= _GEN_396;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_75 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h4b == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_75 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_75 <= _GEN_397;
      end
    end else begin
      flight_75 <= _GEN_397;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_76 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h4c == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_76 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_76 <= _GEN_398;
      end
    end else begin
      flight_76 <= _GEN_398;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_77 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h4d == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_77 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_77 <= _GEN_399;
      end
    end else begin
      flight_77 <= _GEN_399;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_78 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h4e == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_78 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_78 <= _GEN_400;
      end
    end else begin
      flight_78 <= _GEN_400;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_79 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h4f == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_79 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_79 <= _GEN_401;
      end
    end else begin
      flight_79 <= _GEN_401;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_80 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h50 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_80 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_80 <= _GEN_402;
      end
    end else begin
      flight_80 <= _GEN_402;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_81 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h51 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_81 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_81 <= _GEN_403;
      end
    end else begin
      flight_81 <= _GEN_403;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_82 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h52 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_82 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_82 <= _GEN_404;
      end
    end else begin
      flight_82 <= _GEN_404;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_83 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h53 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_83 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_83 <= _GEN_405;
      end
    end else begin
      flight_83 <= _GEN_405;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_84 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h54 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_84 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_84 <= _GEN_406;
      end
    end else begin
      flight_84 <= _GEN_406;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_85 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h55 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_85 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_85 <= _GEN_407;
      end
    end else begin
      flight_85 <= _GEN_407;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_86 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h56 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_86 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_86 <= _GEN_408;
      end
    end else begin
      flight_86 <= _GEN_408;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_87 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h57 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_87 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_87 <= _GEN_409;
      end
    end else begin
      flight_87 <= _GEN_409;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_88 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h58 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_88 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_88 <= _GEN_410;
      end
    end else begin
      flight_88 <= _GEN_410;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_89 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h59 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_89 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_89 <= _GEN_411;
      end
    end else begin
      flight_89 <= _GEN_411;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_90 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h5a == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_90 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_90 <= _GEN_412;
      end
    end else begin
      flight_90 <= _GEN_412;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_91 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h5b == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_91 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_91 <= _GEN_413;
      end
    end else begin
      flight_91 <= _GEN_413;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_92 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h5c == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_92 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_92 <= _GEN_414;
      end
    end else begin
      flight_92 <= _GEN_414;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_93 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h5d == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_93 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_93 <= _GEN_415;
      end
    end else begin
      flight_93 <= _GEN_415;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_94 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h5e == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_94 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_94 <= _GEN_416;
      end
    end else begin
      flight_94 <= _GEN_416;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_95 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h5f == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_95 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_95 <= _GEN_417;
      end
    end else begin
      flight_95 <= _GEN_417;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_96 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h60 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_96 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_96 <= _GEN_418;
      end
    end else begin
      flight_96 <= _GEN_418;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_97 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h61 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_97 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_97 <= _GEN_419;
      end
    end else begin
      flight_97 <= _GEN_419;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_98 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h62 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_98 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_98 <= _GEN_420;
      end
    end else begin
      flight_98 <= _GEN_420;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_99 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h63 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_99 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_99 <= _GEN_421;
      end
    end else begin
      flight_99 <= _GEN_421;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_100 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h64 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_100 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_100 <= _GEN_422;
      end
    end else begin
      flight_100 <= _GEN_422;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_101 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h65 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_101 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_101 <= _GEN_423;
      end
    end else begin
      flight_101 <= _GEN_423;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_102 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h66 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_102 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_102 <= _GEN_424;
      end
    end else begin
      flight_102 <= _GEN_424;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_103 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h67 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_103 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_103 <= _GEN_425;
      end
    end else begin
      flight_103 <= _GEN_425;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_104 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h68 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_104 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_104 <= _GEN_426;
      end
    end else begin
      flight_104 <= _GEN_426;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_105 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h69 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_105 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_105 <= _GEN_427;
      end
    end else begin
      flight_105 <= _GEN_427;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_106 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h6a == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_106 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_106 <= _GEN_428;
      end
    end else begin
      flight_106 <= _GEN_428;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_107 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h6b == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_107 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_107 <= _GEN_429;
      end
    end else begin
      flight_107 <= _GEN_429;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_108 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h6c == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_108 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_108 <= _GEN_430;
      end
    end else begin
      flight_108 <= _GEN_430;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_109 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h6d == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_109 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_109 <= _GEN_431;
      end
    end else begin
      flight_109 <= _GEN_431;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_110 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h6e == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_110 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_110 <= _GEN_432;
      end
    end else begin
      flight_110 <= _GEN_432;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_111 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h6f == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_111 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_111 <= _GEN_433;
      end
    end else begin
      flight_111 <= _GEN_433;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_112 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h70 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_112 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_112 <= _GEN_434;
      end
    end else begin
      flight_112 <= _GEN_434;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_113 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h71 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_113 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_113 <= _GEN_435;
      end
    end else begin
      flight_113 <= _GEN_435;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_114 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h72 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_114 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_114 <= _GEN_436;
      end
    end else begin
      flight_114 <= _GEN_436;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_115 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h73 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_115 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_115 <= _GEN_437;
      end
    end else begin
      flight_115 <= _GEN_437;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_116 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h74 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_116 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_116 <= _GEN_438;
      end
    end else begin
      flight_116 <= _GEN_438;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_117 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h75 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_117 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_117 <= _GEN_439;
      end
    end else begin
      flight_117 <= _GEN_439;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_118 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h76 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_118 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_118 <= _GEN_440;
      end
    end else begin
      flight_118 <= _GEN_440;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_119 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h77 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_119 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_119 <= _GEN_441;
      end
    end else begin
      flight_119 <= _GEN_441;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_120 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h78 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_120 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_120 <= _GEN_442;
      end
    end else begin
      flight_120 <= _GEN_442;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_121 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h79 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_121 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_121 <= _GEN_443;
      end
    end else begin
      flight_121 <= _GEN_443;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_122 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h7a == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_122 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_122 <= _GEN_444;
      end
    end else begin
      flight_122 <= _GEN_444;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_123 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h7b == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_123 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_123 <= _GEN_445;
      end
    end else begin
      flight_123 <= _GEN_445;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_124 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h7c == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_124 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_124 <= _GEN_446;
      end
    end else begin
      flight_124 <= _GEN_446;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_125 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h7d == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_125 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_125 <= _GEN_447;
      end
    end else begin
      flight_125 <= _GEN_447;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_126 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h7e == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_126 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_126 <= _GEN_448;
      end
    end else begin
      flight_126 <= _GEN_448;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_127 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h7f == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_127 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_127 <= _GEN_449;
      end
    end else begin
      flight_127 <= _GEN_449;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_128 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h80 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_128 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_128 <= _GEN_450;
      end
    end else begin
      flight_128 <= _GEN_450;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_129 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h81 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_129 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_129 <= _GEN_451;
      end
    end else begin
      flight_129 <= _GEN_451;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_130 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h82 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_130 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_130 <= _GEN_452;
      end
    end else begin
      flight_130 <= _GEN_452;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_131 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h83 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_131 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_131 <= _GEN_453;
      end
    end else begin
      flight_131 <= _GEN_453;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_132 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h84 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_132 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_132 <= _GEN_454;
      end
    end else begin
      flight_132 <= _GEN_454;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_133 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h85 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_133 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_133 <= _GEN_455;
      end
    end else begin
      flight_133 <= _GEN_455;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_134 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h86 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_134 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_134 <= _GEN_456;
      end
    end else begin
      flight_134 <= _GEN_456;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_135 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h87 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_135 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_135 <= _GEN_457;
      end
    end else begin
      flight_135 <= _GEN_457;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_136 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h88 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_136 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_136 <= _GEN_458;
      end
    end else begin
      flight_136 <= _GEN_458;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_137 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h89 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_137 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_137 <= _GEN_459;
      end
    end else begin
      flight_137 <= _GEN_459;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_138 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h8a == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_138 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_138 <= _GEN_460;
      end
    end else begin
      flight_138 <= _GEN_460;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_139 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h8b == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_139 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_139 <= _GEN_461;
      end
    end else begin
      flight_139 <= _GEN_461;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_140 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h8c == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_140 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_140 <= _GEN_462;
      end
    end else begin
      flight_140 <= _GEN_462;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_141 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h8d == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_141 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_141 <= _GEN_463;
      end
    end else begin
      flight_141 <= _GEN_463;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_142 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h8e == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_142 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_142 <= _GEN_464;
      end
    end else begin
      flight_142 <= _GEN_464;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_143 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h8f == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_143 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_143 <= _GEN_465;
      end
    end else begin
      flight_143 <= _GEN_465;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_144 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h90 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_144 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_144 <= _GEN_466;
      end
    end else begin
      flight_144 <= _GEN_466;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_145 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h91 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_145 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_145 <= _GEN_467;
      end
    end else begin
      flight_145 <= _GEN_467;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_146 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h92 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_146 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_146 <= _GEN_468;
      end
    end else begin
      flight_146 <= _GEN_468;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_147 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h93 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_147 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_147 <= _GEN_469;
      end
    end else begin
      flight_147 <= _GEN_469;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_148 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h94 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_148 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_148 <= _GEN_470;
      end
    end else begin
      flight_148 <= _GEN_470;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_149 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h95 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_149 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_149 <= _GEN_471;
      end
    end else begin
      flight_149 <= _GEN_471;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_150 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h96 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_150 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_150 <= _GEN_472;
      end
    end else begin
      flight_150 <= _GEN_472;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_151 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h97 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_151 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_151 <= _GEN_473;
      end
    end else begin
      flight_151 <= _GEN_473;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_152 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h98 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_152 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_152 <= _GEN_474;
      end
    end else begin
      flight_152 <= _GEN_474;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_153 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h99 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_153 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_153 <= _GEN_475;
      end
    end else begin
      flight_153 <= _GEN_475;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_154 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h9a == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_154 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_154 <= _GEN_476;
      end
    end else begin
      flight_154 <= _GEN_476;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_155 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h9b == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_155 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_155 <= _GEN_477;
      end
    end else begin
      flight_155 <= _GEN_477;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_156 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h9c == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_156 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_156 <= _GEN_478;
      end
    end else begin
      flight_156 <= _GEN_478;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_157 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h9d == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_157 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_157 <= _GEN_479;
      end
    end else begin
      flight_157 <= _GEN_479;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_158 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h9e == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_158 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_158 <= _GEN_480;
      end
    end else begin
      flight_158 <= _GEN_480;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_159 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h9f == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_159 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_159 <= _GEN_481;
      end
    end else begin
      flight_159 <= _GEN_481;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_160 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'ha0 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_160 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_160 <= _GEN_482;
      end
    end else begin
      flight_160 <= _GEN_482;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_161 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'ha1 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_161 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_161 <= _GEN_483;
      end
    end else begin
      flight_161 <= _GEN_483;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_162 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'ha2 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_162 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_162 <= _GEN_484;
      end
    end else begin
      flight_162 <= _GEN_484;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_163 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'ha3 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_163 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_163 <= _GEN_485;
      end
    end else begin
      flight_163 <= _GEN_485;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_164 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'ha4 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_164 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_164 <= _GEN_486;
      end
    end else begin
      flight_164 <= _GEN_486;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_165 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'ha5 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_165 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_165 <= _GEN_487;
      end
    end else begin
      flight_165 <= _GEN_487;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_166 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'ha6 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_166 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_166 <= _GEN_488;
      end
    end else begin
      flight_166 <= _GEN_488;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_167 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'ha7 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_167 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_167 <= _GEN_489;
      end
    end else begin
      flight_167 <= _GEN_489;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_168 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'ha8 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_168 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_168 <= _GEN_490;
      end
    end else begin
      flight_168 <= _GEN_490;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_169 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'ha9 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_169 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_169 <= _GEN_491;
      end
    end else begin
      flight_169 <= _GEN_491;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_170 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'haa == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_170 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_170 <= _GEN_492;
      end
    end else begin
      flight_170 <= _GEN_492;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_171 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hab == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_171 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_171 <= _GEN_493;
      end
    end else begin
      flight_171 <= _GEN_493;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_172 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hac == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_172 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_172 <= _GEN_494;
      end
    end else begin
      flight_172 <= _GEN_494;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_173 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'had == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_173 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_173 <= _GEN_495;
      end
    end else begin
      flight_173 <= _GEN_495;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_174 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hae == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_174 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_174 <= _GEN_496;
      end
    end else begin
      flight_174 <= _GEN_496;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_175 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'haf == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_175 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_175 <= _GEN_497;
      end
    end else begin
      flight_175 <= _GEN_497;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_176 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hb0 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_176 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_176 <= _GEN_498;
      end
    end else begin
      flight_176 <= _GEN_498;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_177 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hb1 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_177 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_177 <= _GEN_499;
      end
    end else begin
      flight_177 <= _GEN_499;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_178 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hb2 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_178 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_178 <= _GEN_500;
      end
    end else begin
      flight_178 <= _GEN_500;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_179 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hb3 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_179 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_179 <= _GEN_501;
      end
    end else begin
      flight_179 <= _GEN_501;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_180 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hb4 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_180 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_180 <= _GEN_502;
      end
    end else begin
      flight_180 <= _GEN_502;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_181 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hb5 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_181 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_181 <= _GEN_503;
      end
    end else begin
      flight_181 <= _GEN_503;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_182 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hb6 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_182 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_182 <= _GEN_504;
      end
    end else begin
      flight_182 <= _GEN_504;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_183 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hb7 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_183 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_183 <= _GEN_505;
      end
    end else begin
      flight_183 <= _GEN_505;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_184 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hb8 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_184 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_184 <= _GEN_506;
      end
    end else begin
      flight_184 <= _GEN_506;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_185 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hb9 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_185 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_185 <= _GEN_507;
      end
    end else begin
      flight_185 <= _GEN_507;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_186 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hba == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_186 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_186 <= _GEN_508;
      end
    end else begin
      flight_186 <= _GEN_508;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_187 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hbb == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_187 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_187 <= _GEN_509;
      end
    end else begin
      flight_187 <= _GEN_509;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_188 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hbc == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_188 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_188 <= _GEN_510;
      end
    end else begin
      flight_188 <= _GEN_510;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_189 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hbd == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_189 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_189 <= _GEN_511;
      end
    end else begin
      flight_189 <= _GEN_511;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_190 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hbe == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_190 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_190 <= _GEN_512;
      end
    end else begin
      flight_190 <= _GEN_512;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_191 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hbf == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_191 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_191 <= _GEN_513;
      end
    end else begin
      flight_191 <= _GEN_513;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_192 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hc0 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_192 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_192 <= _GEN_514;
      end
    end else begin
      flight_192 <= _GEN_514;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_193 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hc1 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_193 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_193 <= _GEN_515;
      end
    end else begin
      flight_193 <= _GEN_515;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_194 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hc2 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_194 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_194 <= _GEN_516;
      end
    end else begin
      flight_194 <= _GEN_516;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_195 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hc3 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_195 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_195 <= _GEN_517;
      end
    end else begin
      flight_195 <= _GEN_517;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_196 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hc4 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_196 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_196 <= _GEN_518;
      end
    end else begin
      flight_196 <= _GEN_518;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_197 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hc5 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_197 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_197 <= _GEN_519;
      end
    end else begin
      flight_197 <= _GEN_519;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_198 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hc6 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_198 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_198 <= _GEN_520;
      end
    end else begin
      flight_198 <= _GEN_520;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_199 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hc7 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_199 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_199 <= _GEN_521;
      end
    end else begin
      flight_199 <= _GEN_521;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_200 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hc8 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_200 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_200 <= _GEN_522;
      end
    end else begin
      flight_200 <= _GEN_522;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_201 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hc9 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_201 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_201 <= _GEN_523;
      end
    end else begin
      flight_201 <= _GEN_523;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_202 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hca == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_202 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_202 <= _GEN_524;
      end
    end else begin
      flight_202 <= _GEN_524;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_203 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hcb == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_203 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_203 <= _GEN_525;
      end
    end else begin
      flight_203 <= _GEN_525;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_204 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hcc == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_204 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_204 <= _GEN_526;
      end
    end else begin
      flight_204 <= _GEN_526;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_205 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hcd == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_205 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_205 <= _GEN_527;
      end
    end else begin
      flight_205 <= _GEN_527;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_206 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hce == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_206 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_206 <= _GEN_528;
      end
    end else begin
      flight_206 <= _GEN_528;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_207 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hcf == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_207 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_207 <= _GEN_529;
      end
    end else begin
      flight_207 <= _GEN_529;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_208 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hd0 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_208 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_208 <= _GEN_530;
      end
    end else begin
      flight_208 <= _GEN_530;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_209 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hd1 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_209 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_209 <= _GEN_531;
      end
    end else begin
      flight_209 <= _GEN_531;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_210 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hd2 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_210 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_210 <= _GEN_532;
      end
    end else begin
      flight_210 <= _GEN_532;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_211 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hd3 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_211 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_211 <= _GEN_533;
      end
    end else begin
      flight_211 <= _GEN_533;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_212 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hd4 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_212 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_212 <= _GEN_534;
      end
    end else begin
      flight_212 <= _GEN_534;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_213 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hd5 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_213 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_213 <= _GEN_535;
      end
    end else begin
      flight_213 <= _GEN_535;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_214 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hd6 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_214 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_214 <= _GEN_536;
      end
    end else begin
      flight_214 <= _GEN_536;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_215 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hd7 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_215 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_215 <= _GEN_537;
      end
    end else begin
      flight_215 <= _GEN_537;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_216 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hd8 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_216 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_216 <= _GEN_538;
      end
    end else begin
      flight_216 <= _GEN_538;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_217 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hd9 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_217 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_217 <= _GEN_539;
      end
    end else begin
      flight_217 <= _GEN_539;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_218 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hda == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_218 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_218 <= _GEN_540;
      end
    end else begin
      flight_218 <= _GEN_540;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_219 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hdb == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_219 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_219 <= _GEN_541;
      end
    end else begin
      flight_219 <= _GEN_541;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_220 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hdc == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_220 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_220 <= _GEN_542;
      end
    end else begin
      flight_220 <= _GEN_542;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_221 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hdd == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_221 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_221 <= _GEN_543;
      end
    end else begin
      flight_221 <= _GEN_543;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_222 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hde == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_222 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_222 <= _GEN_544;
      end
    end else begin
      flight_222 <= _GEN_544;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_223 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hdf == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_223 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_223 <= _GEN_545;
      end
    end else begin
      flight_223 <= _GEN_545;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_224 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'he0 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_224 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_224 <= _GEN_546;
      end
    end else begin
      flight_224 <= _GEN_546;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_225 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'he1 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_225 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_225 <= _GEN_547;
      end
    end else begin
      flight_225 <= _GEN_547;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_226 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'he2 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_226 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_226 <= _GEN_548;
      end
    end else begin
      flight_226 <= _GEN_548;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_227 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'he3 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_227 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_227 <= _GEN_549;
      end
    end else begin
      flight_227 <= _GEN_549;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_228 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'he4 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_228 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_228 <= _GEN_550;
      end
    end else begin
      flight_228 <= _GEN_550;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_229 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'he5 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_229 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_229 <= _GEN_551;
      end
    end else begin
      flight_229 <= _GEN_551;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_230 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'he6 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_230 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_230 <= _GEN_552;
      end
    end else begin
      flight_230 <= _GEN_552;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_231 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'he7 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_231 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_231 <= _GEN_553;
      end
    end else begin
      flight_231 <= _GEN_553;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_232 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'he8 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_232 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_232 <= _GEN_554;
      end
    end else begin
      flight_232 <= _GEN_554;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_233 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'he9 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_233 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_233 <= _GEN_555;
      end
    end else begin
      flight_233 <= _GEN_555;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_234 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hea == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_234 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_234 <= _GEN_556;
      end
    end else begin
      flight_234 <= _GEN_556;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_235 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'heb == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_235 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_235 <= _GEN_557;
      end
    end else begin
      flight_235 <= _GEN_557;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_236 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hec == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_236 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_236 <= _GEN_558;
      end
    end else begin
      flight_236 <= _GEN_558;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_237 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hed == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_237 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_237 <= _GEN_559;
      end
    end else begin
      flight_237 <= _GEN_559;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_238 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hee == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_238 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_238 <= _GEN_560;
      end
    end else begin
      flight_238 <= _GEN_560;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_239 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hef == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_239 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_239 <= _GEN_561;
      end
    end else begin
      flight_239 <= _GEN_561;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_240 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hf0 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_240 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_240 <= _GEN_562;
      end
    end else begin
      flight_240 <= _GEN_562;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_241 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hf1 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_241 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_241 <= _GEN_563;
      end
    end else begin
      flight_241 <= _GEN_563;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_242 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hf2 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_242 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_242 <= _GEN_564;
      end
    end else begin
      flight_242 <= _GEN_564;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_243 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hf3 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_243 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_243 <= _GEN_565;
      end
    end else begin
      flight_243 <= _GEN_565;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_244 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hf4 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_244 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_244 <= _GEN_566;
      end
    end else begin
      flight_244 <= _GEN_566;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_245 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hf5 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_245 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_245 <= _GEN_567;
      end
    end else begin
      flight_245 <= _GEN_567;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_246 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hf6 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_246 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_246 <= _GEN_568;
      end
    end else begin
      flight_246 <= _GEN_568;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_247 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hf7 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_247 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_247 <= _GEN_569;
      end
    end else begin
      flight_247 <= _GEN_569;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_248 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hf8 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_248 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_248 <= _GEN_570;
      end
    end else begin
      flight_248 <= _GEN_570;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_249 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hf9 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_249 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_249 <= _GEN_571;
      end
    end else begin
      flight_249 <= _GEN_571;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_250 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hfa == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_250 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_250 <= _GEN_572;
      end
    end else begin
      flight_250 <= _GEN_572;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_251 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hfb == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_251 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_251 <= _GEN_573;
      end
    end else begin
      flight_251 <= _GEN_573;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_252 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hfc == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_252 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_252 <= _GEN_574;
      end
    end else begin
      flight_252 <= _GEN_574;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_253 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hfd == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_253 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_253 <= _GEN_575;
      end
    end else begin
      flight_253 <= _GEN_575;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_254 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hfe == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_254 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_254 <= _GEN_576;
      end
    end else begin
      flight_254 <= _GEN_576;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_255 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'hff == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_255 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_255 <= _GEN_577;
      end
    end else begin
      flight_255 <= _GEN_577;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_256 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h100 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_256 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_256 <= _GEN_578;
      end
    end else begin
      flight_256 <= _GEN_578;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_257 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h101 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_257 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_257 <= _GEN_579;
      end
    end else begin
      flight_257 <= _GEN_579;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_258 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h102 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_258 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_258 <= _GEN_580;
      end
    end else begin
      flight_258 <= _GEN_580;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_259 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h103 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_259 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_259 <= _GEN_581;
      end
    end else begin
      flight_259 <= _GEN_581;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_260 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h104 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_260 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_260 <= _GEN_582;
      end
    end else begin
      flight_260 <= _GEN_582;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_261 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h105 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_261 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_261 <= _GEN_583;
      end
    end else begin
      flight_261 <= _GEN_583;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_262 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h106 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_262 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_262 <= _GEN_584;
      end
    end else begin
      flight_262 <= _GEN_584;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_263 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h107 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_263 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_263 <= _GEN_585;
      end
    end else begin
      flight_263 <= _GEN_585;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_264 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h108 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_264 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_264 <= _GEN_586;
      end
    end else begin
      flight_264 <= _GEN_586;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_265 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h109 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_265 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_265 <= _GEN_587;
      end
    end else begin
      flight_265 <= _GEN_587;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_266 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h10a == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_266 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_266 <= _GEN_588;
      end
    end else begin
      flight_266 <= _GEN_588;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_267 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h10b == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_267 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_267 <= _GEN_589;
      end
    end else begin
      flight_267 <= _GEN_589;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_268 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h10c == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_268 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_268 <= _GEN_590;
      end
    end else begin
      flight_268 <= _GEN_590;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_269 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h10d == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_269 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_269 <= _GEN_591;
      end
    end else begin
      flight_269 <= _GEN_591;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_270 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h10e == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_270 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_270 <= _GEN_592;
      end
    end else begin
      flight_270 <= _GEN_592;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_271 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h10f == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_271 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_271 <= _GEN_593;
      end
    end else begin
      flight_271 <= _GEN_593;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_272 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h110 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_272 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_272 <= _GEN_594;
      end
    end else begin
      flight_272 <= _GEN_594;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_273 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h111 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_273 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_273 <= _GEN_595;
      end
    end else begin
      flight_273 <= _GEN_595;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_274 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h112 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_274 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_274 <= _GEN_596;
      end
    end else begin
      flight_274 <= _GEN_596;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_275 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h113 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_275 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_275 <= _GEN_597;
      end
    end else begin
      flight_275 <= _GEN_597;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_276 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h114 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_276 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_276 <= _GEN_598;
      end
    end else begin
      flight_276 <= _GEN_598;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_277 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h115 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_277 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_277 <= _GEN_599;
      end
    end else begin
      flight_277 <= _GEN_599;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_278 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h116 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_278 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_278 <= _GEN_600;
      end
    end else begin
      flight_278 <= _GEN_600;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_279 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h117 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_279 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_279 <= _GEN_601;
      end
    end else begin
      flight_279 <= _GEN_601;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_280 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h118 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_280 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_280 <= _GEN_602;
      end
    end else begin
      flight_280 <= _GEN_602;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_281 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h119 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_281 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_281 <= _GEN_603;
      end
    end else begin
      flight_281 <= _GEN_603;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_282 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h11a == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_282 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_282 <= _GEN_604;
      end
    end else begin
      flight_282 <= _GEN_604;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_283 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h11b == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_283 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_283 <= _GEN_605;
      end
    end else begin
      flight_283 <= _GEN_605;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_284 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h11c == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_284 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_284 <= _GEN_606;
      end
    end else begin
      flight_284 <= _GEN_606;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_285 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h11d == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_285 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_285 <= _GEN_607;
      end
    end else begin
      flight_285 <= _GEN_607;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_286 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h11e == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_286 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_286 <= _GEN_608;
      end
    end else begin
      flight_286 <= _GEN_608;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_287 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h11f == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_287 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_287 <= _GEN_609;
      end
    end else begin
      flight_287 <= _GEN_609;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_288 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h120 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_288 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_288 <= _GEN_610;
      end
    end else begin
      flight_288 <= _GEN_610;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_289 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h121 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_289 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_289 <= _GEN_611;
      end
    end else begin
      flight_289 <= _GEN_611;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_290 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h122 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_290 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_290 <= _GEN_612;
      end
    end else begin
      flight_290 <= _GEN_612;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_291 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h123 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_291 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_291 <= _GEN_613;
      end
    end else begin
      flight_291 <= _GEN_613;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_292 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h124 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_292 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_292 <= _GEN_614;
      end
    end else begin
      flight_292 <= _GEN_614;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_293 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h125 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_293 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_293 <= _GEN_615;
      end
    end else begin
      flight_293 <= _GEN_615;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_294 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h126 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_294 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_294 <= _GEN_616;
      end
    end else begin
      flight_294 <= _GEN_616;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_295 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h127 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_295 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_295 <= _GEN_617;
      end
    end else begin
      flight_295 <= _GEN_617;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_296 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h128 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_296 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_296 <= _GEN_618;
      end
    end else begin
      flight_296 <= _GEN_618;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_297 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h129 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_297 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_297 <= _GEN_619;
      end
    end else begin
      flight_297 <= _GEN_619;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_298 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h12a == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_298 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_298 <= _GEN_620;
      end
    end else begin
      flight_298 <= _GEN_620;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_299 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h12b == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_299 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_299 <= _GEN_621;
      end
    end else begin
      flight_299 <= _GEN_621;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_300 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h12c == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_300 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_300 <= _GEN_622;
      end
    end else begin
      flight_300 <= _GEN_622;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_301 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h12d == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_301 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_301 <= _GEN_623;
      end
    end else begin
      flight_301 <= _GEN_623;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_302 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h12e == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_302 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_302 <= _GEN_624;
      end
    end else begin
      flight_302 <= _GEN_624;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_303 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h12f == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_303 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_303 <= _GEN_625;
      end
    end else begin
      flight_303 <= _GEN_625;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_304 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h130 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_304 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_304 <= _GEN_626;
      end
    end else begin
      flight_304 <= _GEN_626;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_305 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h131 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_305 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_305 <= _GEN_627;
      end
    end else begin
      flight_305 <= _GEN_627;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_306 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h132 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_306 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_306 <= _GEN_628;
      end
    end else begin
      flight_306 <= _GEN_628;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_307 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h133 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_307 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_307 <= _GEN_629;
      end
    end else begin
      flight_307 <= _GEN_629;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_308 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h134 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_308 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_308 <= _GEN_630;
      end
    end else begin
      flight_308 <= _GEN_630;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_309 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h135 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_309 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_309 <= _GEN_631;
      end
    end else begin
      flight_309 <= _GEN_631;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_310 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h136 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_310 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_310 <= _GEN_632;
      end
    end else begin
      flight_310 <= _GEN_632;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_311 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h137 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_311 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_311 <= _GEN_633;
      end
    end else begin
      flight_311 <= _GEN_633;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_312 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h138 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_312 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_312 <= _GEN_634;
      end
    end else begin
      flight_312 <= _GEN_634;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_313 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h139 == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_313 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_313 <= _GEN_635;
      end
    end else begin
      flight_313 <= _GEN_635;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_314 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h13a == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_314 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_314 <= _GEN_636;
      end
    end else begin
      flight_314 <= _GEN_636;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_315 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h13b == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_315 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_315 <= _GEN_637;
      end
    end else begin
      flight_315 <= _GEN_637;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_316 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h13c == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_316 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_316 <= _GEN_638;
      end
    end else begin
      flight_316 <= _GEN_638;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_317 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h13d == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_317 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_317 <= _GEN_639;
      end
    end else begin
      flight_317 <= _GEN_639;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_318 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h13e == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_318 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_318 <= _GEN_640;
      end
    end else begin
      flight_318 <= _GEN_640;
    end
    if (reset) begin // @[FIFOFixer.scala 71:27]
      flight_319 <= 1'h0; // @[FIFOFixer.scala 71:27]
    end else if (d_first & _d_first_T) begin // @[FIFOFixer.scala 73:37]
      if (9'h13f == auto_out_d_bits_source) begin // @[FIFOFixer.scala 73:64]
        flight_319 <= 1'h0; // @[FIFOFixer.scala 73:64]
      end else begin
        flight_319 <= _GEN_641;
      end
    end else begin
      flight_319 <= _GEN_641;
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_first) begin // @[Edges.scala 235:21]
        d_first_counter <= 1'h0;
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  flight_0 = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  flight_1 = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  flight_2 = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  flight_3 = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  flight_4 = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  flight_5 = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  flight_6 = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  flight_7 = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  flight_8 = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  flight_9 = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  flight_10 = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  flight_11 = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  flight_12 = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  flight_13 = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  flight_14 = _RAND_15[0:0];
  _RAND_16 = {1{`RANDOM}};
  flight_15 = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  flight_16 = _RAND_17[0:0];
  _RAND_18 = {1{`RANDOM}};
  flight_17 = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  flight_18 = _RAND_19[0:0];
  _RAND_20 = {1{`RANDOM}};
  flight_19 = _RAND_20[0:0];
  _RAND_21 = {1{`RANDOM}};
  flight_20 = _RAND_21[0:0];
  _RAND_22 = {1{`RANDOM}};
  flight_21 = _RAND_22[0:0];
  _RAND_23 = {1{`RANDOM}};
  flight_22 = _RAND_23[0:0];
  _RAND_24 = {1{`RANDOM}};
  flight_23 = _RAND_24[0:0];
  _RAND_25 = {1{`RANDOM}};
  flight_24 = _RAND_25[0:0];
  _RAND_26 = {1{`RANDOM}};
  flight_25 = _RAND_26[0:0];
  _RAND_27 = {1{`RANDOM}};
  flight_26 = _RAND_27[0:0];
  _RAND_28 = {1{`RANDOM}};
  flight_27 = _RAND_28[0:0];
  _RAND_29 = {1{`RANDOM}};
  flight_28 = _RAND_29[0:0];
  _RAND_30 = {1{`RANDOM}};
  flight_29 = _RAND_30[0:0];
  _RAND_31 = {1{`RANDOM}};
  flight_30 = _RAND_31[0:0];
  _RAND_32 = {1{`RANDOM}};
  flight_31 = _RAND_32[0:0];
  _RAND_33 = {1{`RANDOM}};
  flight_32 = _RAND_33[0:0];
  _RAND_34 = {1{`RANDOM}};
  flight_33 = _RAND_34[0:0];
  _RAND_35 = {1{`RANDOM}};
  flight_34 = _RAND_35[0:0];
  _RAND_36 = {1{`RANDOM}};
  flight_35 = _RAND_36[0:0];
  _RAND_37 = {1{`RANDOM}};
  flight_36 = _RAND_37[0:0];
  _RAND_38 = {1{`RANDOM}};
  flight_37 = _RAND_38[0:0];
  _RAND_39 = {1{`RANDOM}};
  flight_38 = _RAND_39[0:0];
  _RAND_40 = {1{`RANDOM}};
  flight_39 = _RAND_40[0:0];
  _RAND_41 = {1{`RANDOM}};
  flight_40 = _RAND_41[0:0];
  _RAND_42 = {1{`RANDOM}};
  flight_41 = _RAND_42[0:0];
  _RAND_43 = {1{`RANDOM}};
  flight_42 = _RAND_43[0:0];
  _RAND_44 = {1{`RANDOM}};
  flight_43 = _RAND_44[0:0];
  _RAND_45 = {1{`RANDOM}};
  flight_44 = _RAND_45[0:0];
  _RAND_46 = {1{`RANDOM}};
  flight_45 = _RAND_46[0:0];
  _RAND_47 = {1{`RANDOM}};
  flight_46 = _RAND_47[0:0];
  _RAND_48 = {1{`RANDOM}};
  flight_47 = _RAND_48[0:0];
  _RAND_49 = {1{`RANDOM}};
  flight_48 = _RAND_49[0:0];
  _RAND_50 = {1{`RANDOM}};
  flight_49 = _RAND_50[0:0];
  _RAND_51 = {1{`RANDOM}};
  flight_50 = _RAND_51[0:0];
  _RAND_52 = {1{`RANDOM}};
  flight_51 = _RAND_52[0:0];
  _RAND_53 = {1{`RANDOM}};
  flight_52 = _RAND_53[0:0];
  _RAND_54 = {1{`RANDOM}};
  flight_53 = _RAND_54[0:0];
  _RAND_55 = {1{`RANDOM}};
  flight_54 = _RAND_55[0:0];
  _RAND_56 = {1{`RANDOM}};
  flight_55 = _RAND_56[0:0];
  _RAND_57 = {1{`RANDOM}};
  flight_56 = _RAND_57[0:0];
  _RAND_58 = {1{`RANDOM}};
  flight_57 = _RAND_58[0:0];
  _RAND_59 = {1{`RANDOM}};
  flight_58 = _RAND_59[0:0];
  _RAND_60 = {1{`RANDOM}};
  flight_59 = _RAND_60[0:0];
  _RAND_61 = {1{`RANDOM}};
  flight_60 = _RAND_61[0:0];
  _RAND_62 = {1{`RANDOM}};
  flight_61 = _RAND_62[0:0];
  _RAND_63 = {1{`RANDOM}};
  flight_62 = _RAND_63[0:0];
  _RAND_64 = {1{`RANDOM}};
  flight_63 = _RAND_64[0:0];
  _RAND_65 = {1{`RANDOM}};
  flight_64 = _RAND_65[0:0];
  _RAND_66 = {1{`RANDOM}};
  flight_65 = _RAND_66[0:0];
  _RAND_67 = {1{`RANDOM}};
  flight_66 = _RAND_67[0:0];
  _RAND_68 = {1{`RANDOM}};
  flight_67 = _RAND_68[0:0];
  _RAND_69 = {1{`RANDOM}};
  flight_68 = _RAND_69[0:0];
  _RAND_70 = {1{`RANDOM}};
  flight_69 = _RAND_70[0:0];
  _RAND_71 = {1{`RANDOM}};
  flight_70 = _RAND_71[0:0];
  _RAND_72 = {1{`RANDOM}};
  flight_71 = _RAND_72[0:0];
  _RAND_73 = {1{`RANDOM}};
  flight_72 = _RAND_73[0:0];
  _RAND_74 = {1{`RANDOM}};
  flight_73 = _RAND_74[0:0];
  _RAND_75 = {1{`RANDOM}};
  flight_74 = _RAND_75[0:0];
  _RAND_76 = {1{`RANDOM}};
  flight_75 = _RAND_76[0:0];
  _RAND_77 = {1{`RANDOM}};
  flight_76 = _RAND_77[0:0];
  _RAND_78 = {1{`RANDOM}};
  flight_77 = _RAND_78[0:0];
  _RAND_79 = {1{`RANDOM}};
  flight_78 = _RAND_79[0:0];
  _RAND_80 = {1{`RANDOM}};
  flight_79 = _RAND_80[0:0];
  _RAND_81 = {1{`RANDOM}};
  flight_80 = _RAND_81[0:0];
  _RAND_82 = {1{`RANDOM}};
  flight_81 = _RAND_82[0:0];
  _RAND_83 = {1{`RANDOM}};
  flight_82 = _RAND_83[0:0];
  _RAND_84 = {1{`RANDOM}};
  flight_83 = _RAND_84[0:0];
  _RAND_85 = {1{`RANDOM}};
  flight_84 = _RAND_85[0:0];
  _RAND_86 = {1{`RANDOM}};
  flight_85 = _RAND_86[0:0];
  _RAND_87 = {1{`RANDOM}};
  flight_86 = _RAND_87[0:0];
  _RAND_88 = {1{`RANDOM}};
  flight_87 = _RAND_88[0:0];
  _RAND_89 = {1{`RANDOM}};
  flight_88 = _RAND_89[0:0];
  _RAND_90 = {1{`RANDOM}};
  flight_89 = _RAND_90[0:0];
  _RAND_91 = {1{`RANDOM}};
  flight_90 = _RAND_91[0:0];
  _RAND_92 = {1{`RANDOM}};
  flight_91 = _RAND_92[0:0];
  _RAND_93 = {1{`RANDOM}};
  flight_92 = _RAND_93[0:0];
  _RAND_94 = {1{`RANDOM}};
  flight_93 = _RAND_94[0:0];
  _RAND_95 = {1{`RANDOM}};
  flight_94 = _RAND_95[0:0];
  _RAND_96 = {1{`RANDOM}};
  flight_95 = _RAND_96[0:0];
  _RAND_97 = {1{`RANDOM}};
  flight_96 = _RAND_97[0:0];
  _RAND_98 = {1{`RANDOM}};
  flight_97 = _RAND_98[0:0];
  _RAND_99 = {1{`RANDOM}};
  flight_98 = _RAND_99[0:0];
  _RAND_100 = {1{`RANDOM}};
  flight_99 = _RAND_100[0:0];
  _RAND_101 = {1{`RANDOM}};
  flight_100 = _RAND_101[0:0];
  _RAND_102 = {1{`RANDOM}};
  flight_101 = _RAND_102[0:0];
  _RAND_103 = {1{`RANDOM}};
  flight_102 = _RAND_103[0:0];
  _RAND_104 = {1{`RANDOM}};
  flight_103 = _RAND_104[0:0];
  _RAND_105 = {1{`RANDOM}};
  flight_104 = _RAND_105[0:0];
  _RAND_106 = {1{`RANDOM}};
  flight_105 = _RAND_106[0:0];
  _RAND_107 = {1{`RANDOM}};
  flight_106 = _RAND_107[0:0];
  _RAND_108 = {1{`RANDOM}};
  flight_107 = _RAND_108[0:0];
  _RAND_109 = {1{`RANDOM}};
  flight_108 = _RAND_109[0:0];
  _RAND_110 = {1{`RANDOM}};
  flight_109 = _RAND_110[0:0];
  _RAND_111 = {1{`RANDOM}};
  flight_110 = _RAND_111[0:0];
  _RAND_112 = {1{`RANDOM}};
  flight_111 = _RAND_112[0:0];
  _RAND_113 = {1{`RANDOM}};
  flight_112 = _RAND_113[0:0];
  _RAND_114 = {1{`RANDOM}};
  flight_113 = _RAND_114[0:0];
  _RAND_115 = {1{`RANDOM}};
  flight_114 = _RAND_115[0:0];
  _RAND_116 = {1{`RANDOM}};
  flight_115 = _RAND_116[0:0];
  _RAND_117 = {1{`RANDOM}};
  flight_116 = _RAND_117[0:0];
  _RAND_118 = {1{`RANDOM}};
  flight_117 = _RAND_118[0:0];
  _RAND_119 = {1{`RANDOM}};
  flight_118 = _RAND_119[0:0];
  _RAND_120 = {1{`RANDOM}};
  flight_119 = _RAND_120[0:0];
  _RAND_121 = {1{`RANDOM}};
  flight_120 = _RAND_121[0:0];
  _RAND_122 = {1{`RANDOM}};
  flight_121 = _RAND_122[0:0];
  _RAND_123 = {1{`RANDOM}};
  flight_122 = _RAND_123[0:0];
  _RAND_124 = {1{`RANDOM}};
  flight_123 = _RAND_124[0:0];
  _RAND_125 = {1{`RANDOM}};
  flight_124 = _RAND_125[0:0];
  _RAND_126 = {1{`RANDOM}};
  flight_125 = _RAND_126[0:0];
  _RAND_127 = {1{`RANDOM}};
  flight_126 = _RAND_127[0:0];
  _RAND_128 = {1{`RANDOM}};
  flight_127 = _RAND_128[0:0];
  _RAND_129 = {1{`RANDOM}};
  flight_128 = _RAND_129[0:0];
  _RAND_130 = {1{`RANDOM}};
  flight_129 = _RAND_130[0:0];
  _RAND_131 = {1{`RANDOM}};
  flight_130 = _RAND_131[0:0];
  _RAND_132 = {1{`RANDOM}};
  flight_131 = _RAND_132[0:0];
  _RAND_133 = {1{`RANDOM}};
  flight_132 = _RAND_133[0:0];
  _RAND_134 = {1{`RANDOM}};
  flight_133 = _RAND_134[0:0];
  _RAND_135 = {1{`RANDOM}};
  flight_134 = _RAND_135[0:0];
  _RAND_136 = {1{`RANDOM}};
  flight_135 = _RAND_136[0:0];
  _RAND_137 = {1{`RANDOM}};
  flight_136 = _RAND_137[0:0];
  _RAND_138 = {1{`RANDOM}};
  flight_137 = _RAND_138[0:0];
  _RAND_139 = {1{`RANDOM}};
  flight_138 = _RAND_139[0:0];
  _RAND_140 = {1{`RANDOM}};
  flight_139 = _RAND_140[0:0];
  _RAND_141 = {1{`RANDOM}};
  flight_140 = _RAND_141[0:0];
  _RAND_142 = {1{`RANDOM}};
  flight_141 = _RAND_142[0:0];
  _RAND_143 = {1{`RANDOM}};
  flight_142 = _RAND_143[0:0];
  _RAND_144 = {1{`RANDOM}};
  flight_143 = _RAND_144[0:0];
  _RAND_145 = {1{`RANDOM}};
  flight_144 = _RAND_145[0:0];
  _RAND_146 = {1{`RANDOM}};
  flight_145 = _RAND_146[0:0];
  _RAND_147 = {1{`RANDOM}};
  flight_146 = _RAND_147[0:0];
  _RAND_148 = {1{`RANDOM}};
  flight_147 = _RAND_148[0:0];
  _RAND_149 = {1{`RANDOM}};
  flight_148 = _RAND_149[0:0];
  _RAND_150 = {1{`RANDOM}};
  flight_149 = _RAND_150[0:0];
  _RAND_151 = {1{`RANDOM}};
  flight_150 = _RAND_151[0:0];
  _RAND_152 = {1{`RANDOM}};
  flight_151 = _RAND_152[0:0];
  _RAND_153 = {1{`RANDOM}};
  flight_152 = _RAND_153[0:0];
  _RAND_154 = {1{`RANDOM}};
  flight_153 = _RAND_154[0:0];
  _RAND_155 = {1{`RANDOM}};
  flight_154 = _RAND_155[0:0];
  _RAND_156 = {1{`RANDOM}};
  flight_155 = _RAND_156[0:0];
  _RAND_157 = {1{`RANDOM}};
  flight_156 = _RAND_157[0:0];
  _RAND_158 = {1{`RANDOM}};
  flight_157 = _RAND_158[0:0];
  _RAND_159 = {1{`RANDOM}};
  flight_158 = _RAND_159[0:0];
  _RAND_160 = {1{`RANDOM}};
  flight_159 = _RAND_160[0:0];
  _RAND_161 = {1{`RANDOM}};
  flight_160 = _RAND_161[0:0];
  _RAND_162 = {1{`RANDOM}};
  flight_161 = _RAND_162[0:0];
  _RAND_163 = {1{`RANDOM}};
  flight_162 = _RAND_163[0:0];
  _RAND_164 = {1{`RANDOM}};
  flight_163 = _RAND_164[0:0];
  _RAND_165 = {1{`RANDOM}};
  flight_164 = _RAND_165[0:0];
  _RAND_166 = {1{`RANDOM}};
  flight_165 = _RAND_166[0:0];
  _RAND_167 = {1{`RANDOM}};
  flight_166 = _RAND_167[0:0];
  _RAND_168 = {1{`RANDOM}};
  flight_167 = _RAND_168[0:0];
  _RAND_169 = {1{`RANDOM}};
  flight_168 = _RAND_169[0:0];
  _RAND_170 = {1{`RANDOM}};
  flight_169 = _RAND_170[0:0];
  _RAND_171 = {1{`RANDOM}};
  flight_170 = _RAND_171[0:0];
  _RAND_172 = {1{`RANDOM}};
  flight_171 = _RAND_172[0:0];
  _RAND_173 = {1{`RANDOM}};
  flight_172 = _RAND_173[0:0];
  _RAND_174 = {1{`RANDOM}};
  flight_173 = _RAND_174[0:0];
  _RAND_175 = {1{`RANDOM}};
  flight_174 = _RAND_175[0:0];
  _RAND_176 = {1{`RANDOM}};
  flight_175 = _RAND_176[0:0];
  _RAND_177 = {1{`RANDOM}};
  flight_176 = _RAND_177[0:0];
  _RAND_178 = {1{`RANDOM}};
  flight_177 = _RAND_178[0:0];
  _RAND_179 = {1{`RANDOM}};
  flight_178 = _RAND_179[0:0];
  _RAND_180 = {1{`RANDOM}};
  flight_179 = _RAND_180[0:0];
  _RAND_181 = {1{`RANDOM}};
  flight_180 = _RAND_181[0:0];
  _RAND_182 = {1{`RANDOM}};
  flight_181 = _RAND_182[0:0];
  _RAND_183 = {1{`RANDOM}};
  flight_182 = _RAND_183[0:0];
  _RAND_184 = {1{`RANDOM}};
  flight_183 = _RAND_184[0:0];
  _RAND_185 = {1{`RANDOM}};
  flight_184 = _RAND_185[0:0];
  _RAND_186 = {1{`RANDOM}};
  flight_185 = _RAND_186[0:0];
  _RAND_187 = {1{`RANDOM}};
  flight_186 = _RAND_187[0:0];
  _RAND_188 = {1{`RANDOM}};
  flight_187 = _RAND_188[0:0];
  _RAND_189 = {1{`RANDOM}};
  flight_188 = _RAND_189[0:0];
  _RAND_190 = {1{`RANDOM}};
  flight_189 = _RAND_190[0:0];
  _RAND_191 = {1{`RANDOM}};
  flight_190 = _RAND_191[0:0];
  _RAND_192 = {1{`RANDOM}};
  flight_191 = _RAND_192[0:0];
  _RAND_193 = {1{`RANDOM}};
  flight_192 = _RAND_193[0:0];
  _RAND_194 = {1{`RANDOM}};
  flight_193 = _RAND_194[0:0];
  _RAND_195 = {1{`RANDOM}};
  flight_194 = _RAND_195[0:0];
  _RAND_196 = {1{`RANDOM}};
  flight_195 = _RAND_196[0:0];
  _RAND_197 = {1{`RANDOM}};
  flight_196 = _RAND_197[0:0];
  _RAND_198 = {1{`RANDOM}};
  flight_197 = _RAND_198[0:0];
  _RAND_199 = {1{`RANDOM}};
  flight_198 = _RAND_199[0:0];
  _RAND_200 = {1{`RANDOM}};
  flight_199 = _RAND_200[0:0];
  _RAND_201 = {1{`RANDOM}};
  flight_200 = _RAND_201[0:0];
  _RAND_202 = {1{`RANDOM}};
  flight_201 = _RAND_202[0:0];
  _RAND_203 = {1{`RANDOM}};
  flight_202 = _RAND_203[0:0];
  _RAND_204 = {1{`RANDOM}};
  flight_203 = _RAND_204[0:0];
  _RAND_205 = {1{`RANDOM}};
  flight_204 = _RAND_205[0:0];
  _RAND_206 = {1{`RANDOM}};
  flight_205 = _RAND_206[0:0];
  _RAND_207 = {1{`RANDOM}};
  flight_206 = _RAND_207[0:0];
  _RAND_208 = {1{`RANDOM}};
  flight_207 = _RAND_208[0:0];
  _RAND_209 = {1{`RANDOM}};
  flight_208 = _RAND_209[0:0];
  _RAND_210 = {1{`RANDOM}};
  flight_209 = _RAND_210[0:0];
  _RAND_211 = {1{`RANDOM}};
  flight_210 = _RAND_211[0:0];
  _RAND_212 = {1{`RANDOM}};
  flight_211 = _RAND_212[0:0];
  _RAND_213 = {1{`RANDOM}};
  flight_212 = _RAND_213[0:0];
  _RAND_214 = {1{`RANDOM}};
  flight_213 = _RAND_214[0:0];
  _RAND_215 = {1{`RANDOM}};
  flight_214 = _RAND_215[0:0];
  _RAND_216 = {1{`RANDOM}};
  flight_215 = _RAND_216[0:0];
  _RAND_217 = {1{`RANDOM}};
  flight_216 = _RAND_217[0:0];
  _RAND_218 = {1{`RANDOM}};
  flight_217 = _RAND_218[0:0];
  _RAND_219 = {1{`RANDOM}};
  flight_218 = _RAND_219[0:0];
  _RAND_220 = {1{`RANDOM}};
  flight_219 = _RAND_220[0:0];
  _RAND_221 = {1{`RANDOM}};
  flight_220 = _RAND_221[0:0];
  _RAND_222 = {1{`RANDOM}};
  flight_221 = _RAND_222[0:0];
  _RAND_223 = {1{`RANDOM}};
  flight_222 = _RAND_223[0:0];
  _RAND_224 = {1{`RANDOM}};
  flight_223 = _RAND_224[0:0];
  _RAND_225 = {1{`RANDOM}};
  flight_224 = _RAND_225[0:0];
  _RAND_226 = {1{`RANDOM}};
  flight_225 = _RAND_226[0:0];
  _RAND_227 = {1{`RANDOM}};
  flight_226 = _RAND_227[0:0];
  _RAND_228 = {1{`RANDOM}};
  flight_227 = _RAND_228[0:0];
  _RAND_229 = {1{`RANDOM}};
  flight_228 = _RAND_229[0:0];
  _RAND_230 = {1{`RANDOM}};
  flight_229 = _RAND_230[0:0];
  _RAND_231 = {1{`RANDOM}};
  flight_230 = _RAND_231[0:0];
  _RAND_232 = {1{`RANDOM}};
  flight_231 = _RAND_232[0:0];
  _RAND_233 = {1{`RANDOM}};
  flight_232 = _RAND_233[0:0];
  _RAND_234 = {1{`RANDOM}};
  flight_233 = _RAND_234[0:0];
  _RAND_235 = {1{`RANDOM}};
  flight_234 = _RAND_235[0:0];
  _RAND_236 = {1{`RANDOM}};
  flight_235 = _RAND_236[0:0];
  _RAND_237 = {1{`RANDOM}};
  flight_236 = _RAND_237[0:0];
  _RAND_238 = {1{`RANDOM}};
  flight_237 = _RAND_238[0:0];
  _RAND_239 = {1{`RANDOM}};
  flight_238 = _RAND_239[0:0];
  _RAND_240 = {1{`RANDOM}};
  flight_239 = _RAND_240[0:0];
  _RAND_241 = {1{`RANDOM}};
  flight_240 = _RAND_241[0:0];
  _RAND_242 = {1{`RANDOM}};
  flight_241 = _RAND_242[0:0];
  _RAND_243 = {1{`RANDOM}};
  flight_242 = _RAND_243[0:0];
  _RAND_244 = {1{`RANDOM}};
  flight_243 = _RAND_244[0:0];
  _RAND_245 = {1{`RANDOM}};
  flight_244 = _RAND_245[0:0];
  _RAND_246 = {1{`RANDOM}};
  flight_245 = _RAND_246[0:0];
  _RAND_247 = {1{`RANDOM}};
  flight_246 = _RAND_247[0:0];
  _RAND_248 = {1{`RANDOM}};
  flight_247 = _RAND_248[0:0];
  _RAND_249 = {1{`RANDOM}};
  flight_248 = _RAND_249[0:0];
  _RAND_250 = {1{`RANDOM}};
  flight_249 = _RAND_250[0:0];
  _RAND_251 = {1{`RANDOM}};
  flight_250 = _RAND_251[0:0];
  _RAND_252 = {1{`RANDOM}};
  flight_251 = _RAND_252[0:0];
  _RAND_253 = {1{`RANDOM}};
  flight_252 = _RAND_253[0:0];
  _RAND_254 = {1{`RANDOM}};
  flight_253 = _RAND_254[0:0];
  _RAND_255 = {1{`RANDOM}};
  flight_254 = _RAND_255[0:0];
  _RAND_256 = {1{`RANDOM}};
  flight_255 = _RAND_256[0:0];
  _RAND_257 = {1{`RANDOM}};
  flight_256 = _RAND_257[0:0];
  _RAND_258 = {1{`RANDOM}};
  flight_257 = _RAND_258[0:0];
  _RAND_259 = {1{`RANDOM}};
  flight_258 = _RAND_259[0:0];
  _RAND_260 = {1{`RANDOM}};
  flight_259 = _RAND_260[0:0];
  _RAND_261 = {1{`RANDOM}};
  flight_260 = _RAND_261[0:0];
  _RAND_262 = {1{`RANDOM}};
  flight_261 = _RAND_262[0:0];
  _RAND_263 = {1{`RANDOM}};
  flight_262 = _RAND_263[0:0];
  _RAND_264 = {1{`RANDOM}};
  flight_263 = _RAND_264[0:0];
  _RAND_265 = {1{`RANDOM}};
  flight_264 = _RAND_265[0:0];
  _RAND_266 = {1{`RANDOM}};
  flight_265 = _RAND_266[0:0];
  _RAND_267 = {1{`RANDOM}};
  flight_266 = _RAND_267[0:0];
  _RAND_268 = {1{`RANDOM}};
  flight_267 = _RAND_268[0:0];
  _RAND_269 = {1{`RANDOM}};
  flight_268 = _RAND_269[0:0];
  _RAND_270 = {1{`RANDOM}};
  flight_269 = _RAND_270[0:0];
  _RAND_271 = {1{`RANDOM}};
  flight_270 = _RAND_271[0:0];
  _RAND_272 = {1{`RANDOM}};
  flight_271 = _RAND_272[0:0];
  _RAND_273 = {1{`RANDOM}};
  flight_272 = _RAND_273[0:0];
  _RAND_274 = {1{`RANDOM}};
  flight_273 = _RAND_274[0:0];
  _RAND_275 = {1{`RANDOM}};
  flight_274 = _RAND_275[0:0];
  _RAND_276 = {1{`RANDOM}};
  flight_275 = _RAND_276[0:0];
  _RAND_277 = {1{`RANDOM}};
  flight_276 = _RAND_277[0:0];
  _RAND_278 = {1{`RANDOM}};
  flight_277 = _RAND_278[0:0];
  _RAND_279 = {1{`RANDOM}};
  flight_278 = _RAND_279[0:0];
  _RAND_280 = {1{`RANDOM}};
  flight_279 = _RAND_280[0:0];
  _RAND_281 = {1{`RANDOM}};
  flight_280 = _RAND_281[0:0];
  _RAND_282 = {1{`RANDOM}};
  flight_281 = _RAND_282[0:0];
  _RAND_283 = {1{`RANDOM}};
  flight_282 = _RAND_283[0:0];
  _RAND_284 = {1{`RANDOM}};
  flight_283 = _RAND_284[0:0];
  _RAND_285 = {1{`RANDOM}};
  flight_284 = _RAND_285[0:0];
  _RAND_286 = {1{`RANDOM}};
  flight_285 = _RAND_286[0:0];
  _RAND_287 = {1{`RANDOM}};
  flight_286 = _RAND_287[0:0];
  _RAND_288 = {1{`RANDOM}};
  flight_287 = _RAND_288[0:0];
  _RAND_289 = {1{`RANDOM}};
  flight_288 = _RAND_289[0:0];
  _RAND_290 = {1{`RANDOM}};
  flight_289 = _RAND_290[0:0];
  _RAND_291 = {1{`RANDOM}};
  flight_290 = _RAND_291[0:0];
  _RAND_292 = {1{`RANDOM}};
  flight_291 = _RAND_292[0:0];
  _RAND_293 = {1{`RANDOM}};
  flight_292 = _RAND_293[0:0];
  _RAND_294 = {1{`RANDOM}};
  flight_293 = _RAND_294[0:0];
  _RAND_295 = {1{`RANDOM}};
  flight_294 = _RAND_295[0:0];
  _RAND_296 = {1{`RANDOM}};
  flight_295 = _RAND_296[0:0];
  _RAND_297 = {1{`RANDOM}};
  flight_296 = _RAND_297[0:0];
  _RAND_298 = {1{`RANDOM}};
  flight_297 = _RAND_298[0:0];
  _RAND_299 = {1{`RANDOM}};
  flight_298 = _RAND_299[0:0];
  _RAND_300 = {1{`RANDOM}};
  flight_299 = _RAND_300[0:0];
  _RAND_301 = {1{`RANDOM}};
  flight_300 = _RAND_301[0:0];
  _RAND_302 = {1{`RANDOM}};
  flight_301 = _RAND_302[0:0];
  _RAND_303 = {1{`RANDOM}};
  flight_302 = _RAND_303[0:0];
  _RAND_304 = {1{`RANDOM}};
  flight_303 = _RAND_304[0:0];
  _RAND_305 = {1{`RANDOM}};
  flight_304 = _RAND_305[0:0];
  _RAND_306 = {1{`RANDOM}};
  flight_305 = _RAND_306[0:0];
  _RAND_307 = {1{`RANDOM}};
  flight_306 = _RAND_307[0:0];
  _RAND_308 = {1{`RANDOM}};
  flight_307 = _RAND_308[0:0];
  _RAND_309 = {1{`RANDOM}};
  flight_308 = _RAND_309[0:0];
  _RAND_310 = {1{`RANDOM}};
  flight_309 = _RAND_310[0:0];
  _RAND_311 = {1{`RANDOM}};
  flight_310 = _RAND_311[0:0];
  _RAND_312 = {1{`RANDOM}};
  flight_311 = _RAND_312[0:0];
  _RAND_313 = {1{`RANDOM}};
  flight_312 = _RAND_313[0:0];
  _RAND_314 = {1{`RANDOM}};
  flight_313 = _RAND_314[0:0];
  _RAND_315 = {1{`RANDOM}};
  flight_314 = _RAND_315[0:0];
  _RAND_316 = {1{`RANDOM}};
  flight_315 = _RAND_316[0:0];
  _RAND_317 = {1{`RANDOM}};
  flight_316 = _RAND_317[0:0];
  _RAND_318 = {1{`RANDOM}};
  flight_317 = _RAND_318[0:0];
  _RAND_319 = {1{`RANDOM}};
  flight_318 = _RAND_319[0:0];
  _RAND_320 = {1{`RANDOM}};
  flight_319 = _RAND_320[0:0];
  _RAND_321 = {1{`RANDOM}};
  d_first_counter = _RAND_321[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLMonitor_10(
  input         clock,
  input         reset,
  input         io_in_a_ready,
  input         io_in_a_valid,
  input  [2:0]  io_in_a_bits_opcode,
  input  [2:0]  io_in_a_bits_param,
  input  [2:0]  io_in_a_bits_size,
  input  [5:0]  io_in_a_bits_source,
  input  [31:0] io_in_a_bits_address,
  input  [7:0]  io_in_a_bits_mask,
  input         io_in_a_bits_corrupt,
  input         io_in_d_ready,
  input         io_in_d_valid,
  input  [2:0]  io_in_d_bits_opcode,
  input  [2:0]  io_in_d_bits_size,
  input  [5:0]  io_in_d_bits_source
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [63:0] _RAND_10;
  reg [159:0] _RAND_11;
  reg [159:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [63:0] _RAND_16;
  reg [159:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire  _source_ok_T_4 = io_in_a_bits_source <= 6'h27; // @[Parameters.scala 57:20]
  wire [11:0] _is_aligned_mask_T_1 = 12'h1f << io_in_a_bits_size; // @[package.scala 234:77]
  wire [4:0] is_aligned_mask = ~_is_aligned_mask_T_1[4:0]; // @[package.scala 234:46]
  wire [31:0] _GEN_15 = {{27'd0}, is_aligned_mask}; // @[Edges.scala 20:16]
  wire [31:0] _is_aligned_T = io_in_a_bits_address & _GEN_15; // @[Edges.scala 20:16]
  wire  is_aligned = _is_aligned_T == 32'h0; // @[Edges.scala 20:24]
  wire [1:0] mask_sizeOH_shiftAmount = io_in_a_bits_size[1:0]; // @[OneHot.scala 63:49]
  wire [3:0] _mask_sizeOH_T_1 = 4'h1 << mask_sizeOH_shiftAmount; // @[OneHot.scala 64:12]
  wire [2:0] mask_sizeOH = _mask_sizeOH_T_1[2:0] | 3'h1; // @[Misc.scala 201:81]
  wire  _mask_T = io_in_a_bits_size >= 3'h3; // @[Misc.scala 205:21]
  wire  mask_size = mask_sizeOH[2]; // @[Misc.scala 208:26]
  wire  mask_bit = io_in_a_bits_address[2]; // @[Misc.scala 209:26]
  wire  mask_nbit = ~mask_bit; // @[Misc.scala 210:20]
  wire  mask_acc = _mask_T | mask_size & mask_nbit; // @[Misc.scala 214:29]
  wire  mask_acc_1 = _mask_T | mask_size & mask_bit; // @[Misc.scala 214:29]
  wire  mask_size_1 = mask_sizeOH[1]; // @[Misc.scala 208:26]
  wire  mask_bit_1 = io_in_a_bits_address[1]; // @[Misc.scala 209:26]
  wire  mask_nbit_1 = ~mask_bit_1; // @[Misc.scala 210:20]
  wire  mask_eq_2 = mask_nbit & mask_nbit_1; // @[Misc.scala 213:27]
  wire  mask_acc_2 = mask_acc | mask_size_1 & mask_eq_2; // @[Misc.scala 214:29]
  wire  mask_eq_3 = mask_nbit & mask_bit_1; // @[Misc.scala 213:27]
  wire  mask_acc_3 = mask_acc | mask_size_1 & mask_eq_3; // @[Misc.scala 214:29]
  wire  mask_eq_4 = mask_bit & mask_nbit_1; // @[Misc.scala 213:27]
  wire  mask_acc_4 = mask_acc_1 | mask_size_1 & mask_eq_4; // @[Misc.scala 214:29]
  wire  mask_eq_5 = mask_bit & mask_bit_1; // @[Misc.scala 213:27]
  wire  mask_acc_5 = mask_acc_1 | mask_size_1 & mask_eq_5; // @[Misc.scala 214:29]
  wire  mask_size_2 = mask_sizeOH[0]; // @[Misc.scala 208:26]
  wire  mask_bit_2 = io_in_a_bits_address[0]; // @[Misc.scala 209:26]
  wire  mask_nbit_2 = ~mask_bit_2; // @[Misc.scala 210:20]
  wire  mask_eq_6 = mask_eq_2 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_6 = mask_acc_2 | mask_size_2 & mask_eq_6; // @[Misc.scala 214:29]
  wire  mask_eq_7 = mask_eq_2 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_7 = mask_acc_2 | mask_size_2 & mask_eq_7; // @[Misc.scala 214:29]
  wire  mask_eq_8 = mask_eq_3 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_8 = mask_acc_3 | mask_size_2 & mask_eq_8; // @[Misc.scala 214:29]
  wire  mask_eq_9 = mask_eq_3 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_9 = mask_acc_3 | mask_size_2 & mask_eq_9; // @[Misc.scala 214:29]
  wire  mask_eq_10 = mask_eq_4 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_10 = mask_acc_4 | mask_size_2 & mask_eq_10; // @[Misc.scala 214:29]
  wire  mask_eq_11 = mask_eq_4 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_11 = mask_acc_4 | mask_size_2 & mask_eq_11; // @[Misc.scala 214:29]
  wire  mask_eq_12 = mask_eq_5 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_12 = mask_acc_5 | mask_size_2 & mask_eq_12; // @[Misc.scala 214:29]
  wire  mask_eq_13 = mask_eq_5 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_13 = mask_acc_5 | mask_size_2 & mask_eq_13; // @[Misc.scala 214:29]
  wire [7:0] mask = {mask_acc_13,mask_acc_12,mask_acc_11,mask_acc_10,mask_acc_9,mask_acc_8,mask_acc_7,mask_acc_6}; // @[Cat.scala 33:92]
  wire  _T_10 = ~_source_ok_T_4; // @[Monitor.scala 63:7]
  wire [32:0] _T_12 = {1'b0,$signed(io_in_a_bits_address)}; // @[Parameters.scala 137:49]
  wire  _T_20 = io_in_a_bits_opcode == 3'h6; // @[Monitor.scala 81:25]
  wire [32:0] _T_36 = $signed(_T_12) & 33'sh100000000; // @[Parameters.scala 137:52]
  wire  _T_37 = $signed(_T_36) == 33'sh0; // @[Parameters.scala 137:67]
  wire  _T_69 = io_in_a_bits_param <= 3'h2; // @[Bundles.scala 108:27]
  wire [7:0] _T_73 = ~io_in_a_bits_mask; // @[Monitor.scala 88:18]
  wire  _T_74 = _T_73 == 8'h0; // @[Monitor.scala 88:31]
  wire  _T_78 = ~io_in_a_bits_corrupt; // @[Monitor.scala 89:18]
  wire  _T_82 = io_in_a_bits_opcode == 3'h7; // @[Monitor.scala 92:25]
  wire  _T_135 = io_in_a_bits_param != 3'h0; // @[Monitor.scala 99:31]
  wire  _T_148 = io_in_a_bits_opcode == 3'h4; // @[Monitor.scala 104:25]
  wire  _T_165 = 3'h3 <= io_in_a_bits_size & io_in_a_bits_size <= 3'h5; // @[Parameters.scala 92:37]
  wire  _T_172 = _T_165 & _T_37; // @[Parameters.scala 670:56]
  wire  _T_183 = io_in_a_bits_param == 3'h0; // @[Monitor.scala 109:31]
  wire  _T_187 = io_in_a_bits_mask == mask; // @[Monitor.scala 110:30]
  wire  _T_195 = io_in_a_bits_opcode == 3'h0; // @[Monitor.scala 114:25]
  wire  _T_218 = _source_ok_T_4 & _T_172; // @[Monitor.scala 115:71]
  wire  _T_236 = io_in_a_bits_opcode == 3'h1; // @[Monitor.scala 122:25]
  wire [7:0] _T_273 = ~mask; // @[Monitor.scala 127:33]
  wire [7:0] _T_274 = io_in_a_bits_mask & _T_273; // @[Monitor.scala 127:31]
  wire  _T_275 = _T_274 == 8'h0; // @[Monitor.scala 127:40]
  wire  _T_279 = io_in_a_bits_opcode == 3'h2; // @[Monitor.scala 130:25]
  wire  _T_309 = io_in_a_bits_param <= 3'h4; // @[Bundles.scala 138:33]
  wire  _T_317 = io_in_a_bits_opcode == 3'h3; // @[Monitor.scala 138:25]
  wire  _T_347 = io_in_a_bits_param <= 3'h3; // @[Bundles.scala 145:30]
  wire  _T_355 = io_in_a_bits_opcode == 3'h5; // @[Monitor.scala 146:25]
  wire  _T_385 = io_in_a_bits_param <= 3'h1; // @[Bundles.scala 158:28]
  wire  _T_397 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire  _source_ok_T_10 = io_in_d_bits_source <= 6'h27; // @[Parameters.scala 57:20]
  wire  _T_401 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_405 = io_in_d_bits_size >= 3'h3; // @[Monitor.scala 312:27]
  wire  _T_421 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_449 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _T_478 = io_in_d_bits_opcode == 3'h0; // @[Monitor.scala 338:25]
  wire  _T_495 = io_in_d_bits_opcode == 3'h1; // @[Monitor.scala 346:25]
  wire  _T_513 = io_in_d_bits_opcode == 3'h2; // @[Monitor.scala 354:25]
  wire  _a_first_T = io_in_a_ready & io_in_a_valid; // @[Decoupled.scala 52:35]
  wire [1:0] a_first_beats1_decode = is_aligned_mask[4:3]; // @[Edges.scala 219:59]
  wire  a_first_beats1_opdata = ~io_in_a_bits_opcode[2]; // @[Edges.scala 91:28]
  reg [1:0] a_first_counter; // @[Edges.scala 228:27]
  wire [1:0] a_first_counter1 = a_first_counter - 2'h1; // @[Edges.scala 229:28]
  wire  a_first = a_first_counter == 2'h0; // @[Edges.scala 230:25]
  reg [2:0] opcode; // @[Monitor.scala 384:22]
  reg [2:0] param; // @[Monitor.scala 385:22]
  reg [2:0] size; // @[Monitor.scala 386:22]
  reg [5:0] source; // @[Monitor.scala 387:22]
  reg [31:0] address; // @[Monitor.scala 388:22]
  wire  _T_543 = io_in_a_valid & ~a_first; // @[Monitor.scala 389:19]
  wire  _T_544 = io_in_a_bits_opcode == opcode; // @[Monitor.scala 390:32]
  wire  _T_548 = io_in_a_bits_param == param; // @[Monitor.scala 391:32]
  wire  _T_552 = io_in_a_bits_size == size; // @[Monitor.scala 392:32]
  wire  _T_556 = io_in_a_bits_source == source; // @[Monitor.scala 393:32]
  wire  _T_560 = io_in_a_bits_address == address; // @[Monitor.scala 394:32]
  wire  _d_first_T = io_in_d_ready & io_in_d_valid; // @[Decoupled.scala 52:35]
  wire [11:0] _d_first_beats1_decode_T_1 = 12'h1f << io_in_d_bits_size; // @[package.scala 234:77]
  wire [4:0] _d_first_beats1_decode_T_3 = ~_d_first_beats1_decode_T_1[4:0]; // @[package.scala 234:46]
  wire [1:0] d_first_beats1_decode = _d_first_beats1_decode_T_3[4:3]; // @[Edges.scala 219:59]
  wire  d_first_beats1_opdata = io_in_d_bits_opcode[0]; // @[Edges.scala 105:36]
  reg [1:0] d_first_counter; // @[Edges.scala 228:27]
  wire [1:0] d_first_counter1 = d_first_counter - 2'h1; // @[Edges.scala 229:28]
  wire  d_first = d_first_counter == 2'h0; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  reg [2:0] size_1; // @[Monitor.scala 537:22]
  reg [5:0] source_1; // @[Monitor.scala 538:22]
  wire  _T_567 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_568 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  wire  _T_576 = io_in_d_bits_size == size_1; // @[Monitor.scala 544:29]
  wire  _T_580 = io_in_d_bits_source == source_1; // @[Monitor.scala 545:29]
  reg [39:0] inflight; // @[Monitor.scala 611:27]
  reg [159:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [159:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg [1:0] a_first_counter_1; // @[Edges.scala 228:27]
  wire [1:0] a_first_counter1_1 = a_first_counter_1 - 2'h1; // @[Edges.scala 229:28]
  wire  a_first_1 = a_first_counter_1 == 2'h0; // @[Edges.scala 230:25]
  reg [1:0] d_first_counter_1; // @[Edges.scala 228:27]
  wire [1:0] d_first_counter1_1 = d_first_counter_1 - 2'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = d_first_counter_1 == 2'h0; // @[Edges.scala 230:25]
  wire [7:0] _GEN_21 = {io_in_d_bits_source, 2'h0}; // @[Monitor.scala 634:69]
  wire [8:0] _a_opcode_lookup_T = {{1'd0}, _GEN_21}; // @[Monitor.scala 634:69]
  wire [159:0] _a_opcode_lookup_T_1 = inflight_opcodes >> _a_opcode_lookup_T; // @[Monitor.scala 634:44]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [159:0] _GEN_60 = {{144'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 634:97]
  wire [159:0] _a_opcode_lookup_T_6 = _a_opcode_lookup_T_1 & _GEN_60; // @[Monitor.scala 634:97]
  wire [159:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[159:1]}; // @[Monitor.scala 634:152]
  wire [159:0] _a_size_lookup_T_1 = inflight_sizes >> _a_opcode_lookup_T; // @[Monitor.scala 638:40]
  wire [159:0] _a_size_lookup_T_6 = _a_size_lookup_T_1 & _GEN_60; // @[Monitor.scala 638:91]
  wire [159:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[159:1]}; // @[Monitor.scala 638:144]
  wire  _T_597 = _a_first_T & a_first_1; // @[Monitor.scala 652:27]
  wire [63:0] _a_set_T = 64'h1 << io_in_a_bits_source; // @[OneHot.scala 57:35]
  wire [3:0] _a_opcodes_set_interm_T = {io_in_a_bits_opcode, 1'h0}; // @[Monitor.scala 654:53]
  wire [3:0] _a_opcodes_set_interm_T_1 = _a_opcodes_set_interm_T | 4'h1; // @[Monitor.scala 654:61]
  wire [3:0] _a_sizes_set_interm_T = {io_in_a_bits_size, 1'h0}; // @[Monitor.scala 655:51]
  wire [3:0] _a_sizes_set_interm_T_1 = _a_sizes_set_interm_T | 4'h1; // @[Monitor.scala 655:59]
  wire [7:0] _GEN_71 = {io_in_a_bits_source, 2'h0}; // @[Monitor.scala 656:79]
  wire [8:0] _a_opcodes_set_T = {{1'd0}, _GEN_71}; // @[Monitor.scala 656:79]
  wire [3:0] a_opcodes_set_interm = _a_first_T & a_first_1 ? _a_opcodes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 654:28]
  wire [514:0] _GEN_427 = {{511'd0}, a_opcodes_set_interm}; // @[Monitor.scala 656:54]
  wire [514:0] _a_opcodes_set_T_1 = _GEN_427 << _a_opcodes_set_T; // @[Monitor.scala 656:54]
  wire [3:0] a_sizes_set_interm = _a_first_T & a_first_1 ? _a_sizes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 655:28]
  wire [514:0] _GEN_428 = {{511'd0}, a_sizes_set_interm}; // @[Monitor.scala 657:52]
  wire [514:0] _a_sizes_set_T_1 = _GEN_428 << _a_opcodes_set_T; // @[Monitor.scala 657:52]
  wire [39:0] _T_599 = inflight >> io_in_a_bits_source; // @[Monitor.scala 658:26]
  wire  _T_601 = ~_T_599[0]; // @[Monitor.scala 658:17]
  wire [63:0] _GEN_16 = _a_first_T & a_first_1 ? _a_set_T : 64'h0; // @[Monitor.scala 652:72 653:28]
  wire [514:0] _GEN_19 = _a_first_T & a_first_1 ? _a_opcodes_set_T_1 : 515'h0; // @[Monitor.scala 652:72 656:28]
  wire [514:0] _GEN_20 = _a_first_T & a_first_1 ? _a_sizes_set_T_1 : 515'h0; // @[Monitor.scala 652:72 657:28]
  wire  _T_612 = ~_T_401; // @[Monitor.scala 675:75]
  wire [63:0] _d_clr_T = 64'h1 << io_in_d_bits_source; // @[OneHot.scala 57:35]
  wire [526:0] _GEN_429 = {{511'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [526:0] _d_opcodes_clr_T_5 = _GEN_429 << _a_opcode_lookup_T; // @[Monitor.scala 677:76]
  wire [63:0] _GEN_22 = _d_first_T & d_first_1 & ~_T_401 ? _d_clr_T : 64'h0; // @[Monitor.scala 675:91 676:21]
  wire [526:0] _GEN_23 = _d_first_T & d_first_1 & ~_T_401 ? _d_opcodes_clr_T_5 : 527'h0; // @[Monitor.scala 675:91 677:21]
  wire  _T_614 = io_in_d_valid & d_first_1; // @[Monitor.scala 680:26]
  wire  _T_617 = io_in_d_valid & d_first_1 & _T_612; // @[Monitor.scala 680:71]
  wire  _same_cycle_resp_T_2 = io_in_a_bits_source == io_in_d_bits_source; // @[Monitor.scala 681:113]
  wire  same_cycle_resp = io_in_a_valid & a_first_1 & io_in_a_bits_source == io_in_d_bits_source; // @[Monitor.scala 681:88]
  wire [39:0] _T_618 = inflight >> io_in_d_bits_source; // @[Monitor.scala 682:25]
  wire  _T_620 = _T_618[0] | same_cycle_resp; // @[Monitor.scala 682:49]
  wire [2:0] _GEN_27 = 3'h2 == io_in_a_bits_opcode ? 3'h1 : 3'h0; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_28 = 3'h3 == io_in_a_bits_opcode ? 3'h1 : _GEN_27; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_29 = 3'h4 == io_in_a_bits_opcode ? 3'h1 : _GEN_28; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_30 = 3'h5 == io_in_a_bits_opcode ? 3'h2 : _GEN_29; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_31 = 3'h6 == io_in_a_bits_opcode ? 3'h4 : _GEN_30; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_32 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_31; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_39 = 3'h6 == io_in_a_bits_opcode ? 3'h5 : _GEN_30; // @[Monitor.scala 686:{39,39}]
  wire [2:0] _GEN_40 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_39; // @[Monitor.scala 686:{39,39}]
  wire  _T_625 = io_in_d_bits_opcode == _GEN_40; // @[Monitor.scala 686:39]
  wire  _T_626 = io_in_d_bits_opcode == _GEN_32 | _T_625; // @[Monitor.scala 685:77]
  wire  _T_630 = io_in_a_bits_size == io_in_d_bits_size; // @[Monitor.scala 687:36]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_43 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_44 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_43; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_45 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_44; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_46 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_45; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_47 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_46; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_48 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_47; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_55 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_46; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_56 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_55; // @[Monitor.scala 690:{38,38}]
  wire  _T_637 = io_in_d_bits_opcode == _GEN_56; // @[Monitor.scala 690:38]
  wire  _T_638 = io_in_d_bits_opcode == _GEN_48 | _T_637; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire [3:0] _GEN_75 = {{1'd0}, io_in_d_bits_size}; // @[Monitor.scala 691:36]
  wire  _T_642 = _GEN_75 == a_size_lookup; // @[Monitor.scala 691:36]
  wire  _T_652 = _T_614 & a_first_1 & io_in_a_valid & _same_cycle_resp_T_2 & _T_612; // @[Monitor.scala 694:116]
  wire  _T_654 = ~io_in_d_ready | io_in_a_ready; // @[Monitor.scala 695:32]
  wire [39:0] a_set = _GEN_16[39:0];
  wire [39:0] _inflight_T = inflight | a_set; // @[Monitor.scala 702:27]
  wire [39:0] d_clr = _GEN_22[39:0];
  wire [39:0] _inflight_T_1 = ~d_clr; // @[Monitor.scala 702:38]
  wire [39:0] _inflight_T_2 = _inflight_T & _inflight_T_1; // @[Monitor.scala 702:36]
  wire [159:0] a_opcodes_set = _GEN_19[159:0];
  wire [159:0] _inflight_opcodes_T = inflight_opcodes | a_opcodes_set; // @[Monitor.scala 703:43]
  wire [159:0] d_opcodes_clr = _GEN_23[159:0];
  wire [159:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [159:0] _inflight_opcodes_T_2 = _inflight_opcodes_T & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [159:0] a_sizes_set = _GEN_20[159:0];
  wire [159:0] _inflight_sizes_T = inflight_sizes | a_sizes_set; // @[Monitor.scala 704:39]
  wire [159:0] _inflight_sizes_T_2 = _inflight_sizes_T & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [31:0] watchdog; // @[Monitor.scala 706:27]
  wire  _T_663 = ~(|inflight) | plusarg_reader_out == 32'h0 | watchdog < plusarg_reader_out; // @[Monitor.scala 709:47]
  wire [31:0] _watchdog_T_1 = watchdog + 32'h1; // @[Monitor.scala 711:26]
  reg [39:0] inflight_1; // @[Monitor.scala 723:35]
  reg [159:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg [1:0] d_first_counter_2; // @[Edges.scala 228:27]
  wire [1:0] d_first_counter1_2 = d_first_counter_2 - 2'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = d_first_counter_2 == 2'h0; // @[Edges.scala 230:25]
  wire [159:0] _c_size_lookup_T_1 = inflight_sizes_1 >> _a_opcode_lookup_T; // @[Monitor.scala 747:42]
  wire [159:0] _c_size_lookup_T_6 = _c_size_lookup_T_1 & _GEN_60; // @[Monitor.scala 747:93]
  wire [159:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[159:1]}; // @[Monitor.scala 747:146]
  wire [63:0] _GEN_67 = _d_first_T & d_first_2 & _T_401 ? _d_clr_T : 64'h0; // @[Monitor.scala 783:90 784:21]
  wire [526:0] _GEN_69 = _d_first_T & d_first_2 & _T_401 ? _d_opcodes_clr_T_5 : 527'h0; // @[Monitor.scala 783:90 786:21]
  wire  _T_696 = io_in_d_valid & d_first_2 & _T_401; // @[Monitor.scala 789:71]
  wire [39:0] _T_697 = inflight_1 >> io_in_d_bits_source; // @[Monitor.scala 791:25]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_707 = _GEN_75 == c_size_lookup; // @[Monitor.scala 795:36]
  wire [39:0] d_clr_1 = _GEN_67[39:0];
  wire [39:0] _inflight_T_4 = ~d_clr_1; // @[Monitor.scala 809:46]
  wire [39:0] _inflight_T_5 = inflight_1 & _inflight_T_4; // @[Monitor.scala 809:44]
  wire [159:0] d_sizes_clr_1 = _GEN_69[159:0];
  wire [159:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [159:0] _inflight_sizes_T_5 = inflight_sizes_1 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  reg [31:0] watchdog_1; // @[Monitor.scala 813:27]
  wire  _T_727 = ~(|inflight_1) | plusarg_reader_1_out == 32'h0 | watchdog_1 < plusarg_reader_1_out; // @[Monitor.scala 816:47]
  wire [31:0] _watchdog_T_3 = watchdog_1 + 32'h1; // @[Monitor.scala 818:26]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 2'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        if (a_first_beats1_opdata) begin // @[Edges.scala 220:14]
          a_first_counter <= a_first_beats1_decode;
        end else begin
          a_first_counter <= 2'h0;
        end
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      opcode <= io_in_a_bits_opcode; // @[Monitor.scala 397:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      param <= io_in_a_bits_param; // @[Monitor.scala 398:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      size <= io_in_a_bits_size; // @[Monitor.scala 399:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      source <= io_in_a_bits_source; // @[Monitor.scala 400:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      address <= io_in_a_bits_address; // @[Monitor.scala 401:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 2'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        if (d_first_beats1_opdata) begin // @[Edges.scala 220:14]
          d_first_counter <= d_first_beats1_decode;
        end else begin
          d_first_counter <= 2'h0;
        end
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      size_1 <= io_in_d_bits_size; // @[Monitor.scala 552:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      source_1 <= io_in_d_bits_source; // @[Monitor.scala 553:15]
    end
    if (reset) begin // @[Monitor.scala 611:27]
      inflight <= 40'h0; // @[Monitor.scala 611:27]
    end else begin
      inflight <= _inflight_T_2; // @[Monitor.scala 702:14]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 160'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 160'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter_1 <= 2'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first_1) begin // @[Edges.scala 235:21]
        if (a_first_beats1_opdata) begin // @[Edges.scala 220:14]
          a_first_counter_1 <= a_first_beats1_decode;
        end else begin
          a_first_counter_1 <= 2'h0;
        end
      end else begin
        a_first_counter_1 <= a_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 2'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        if (d_first_beats1_opdata) begin // @[Edges.scala 220:14]
          d_first_counter_1 <= d_first_beats1_decode;
        end else begin
          d_first_counter_1 <= 2'h0;
        end
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 706:27]
      watchdog <= 32'h0; // @[Monitor.scala 706:27]
    end else if (_a_first_T | _d_first_T) begin // @[Monitor.scala 712:47]
      watchdog <= 32'h0; // @[Monitor.scala 712:58]
    end else begin
      watchdog <= _watchdog_T_1; // @[Monitor.scala 711:14]
    end
    if (reset) begin // @[Monitor.scala 723:35]
      inflight_1 <= 40'h0; // @[Monitor.scala 723:35]
    end else begin
      inflight_1 <= _inflight_T_5; // @[Monitor.scala 809:22]
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 160'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 2'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        if (d_first_beats1_opdata) begin // @[Edges.scala 220:14]
          d_first_counter_2 <= d_first_beats1_decode;
        end else begin
          d_first_counter_2 <= 2'h0;
        end
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    if (reset) begin // @[Monitor.scala 813:27]
      watchdog_1 <= 32'h0; // @[Monitor.scala 813:27]
    end else if (_d_first_T) begin // @[Monitor.scala 819:47]
      watchdog_1 <= 32'h0; // @[Monitor.scala 819:58]
    end else begin
      watchdog_1 <= _watchdog_T_3; // @[Monitor.scala 818:14]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock from a client which does not support Probe (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock carries invalid source ID (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_mask_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock smaller than a beat (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_mask_T & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock address not aligned to size (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_T_69) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock carries invalid grow param (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_69 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_T_74) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock contains invalid mask (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_74 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_T_78) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock is corrupt (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_78 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm from a client which does not support Probe (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm carries invalid source ID (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & ~_mask_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm smaller than a beat (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_mask_T & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm address not aligned to size (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & ~_T_69) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm carries invalid grow param (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_69 & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & ~_T_135) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm requests NtoB (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_135 & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & ~_T_74) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm contains invalid mask (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_74 & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & ~_T_78) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm is corrupt (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_78 & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which master claims it can't emit (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & ~_T_172) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which slave claims it can't support (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_172 & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get carries invalid source ID (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get address not aligned to size (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & ~_T_183) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get carries invalid param (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_183 & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & ~_T_187) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get contains invalid mask (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_187 & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & ~_T_78) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get is corrupt (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_78 & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_195 & ~reset & ~_T_218) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutFull type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_218 & (io_in_a_valid & _T_195 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_195 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull carries invalid source ID (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_195 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_195 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull address not aligned to size (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_195 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_195 & ~reset & ~_T_183) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull carries invalid param (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_183 & (io_in_a_valid & _T_195 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_195 & ~reset & ~_T_187) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull contains invalid mask (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_187 & (io_in_a_valid & _T_195 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_236 & ~reset & ~_T_218) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutPartial type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_218 & (io_in_a_valid & _T_236 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_236 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial carries invalid source ID (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_236 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_236 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial address not aligned to size (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_236 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_236 & ~reset & ~_T_183) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial carries invalid param (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_183 & (io_in_a_valid & _T_236 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_236 & ~reset & ~_T_275) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial contains invalid mask (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_275 & (io_in_a_valid & _T_236 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_279 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Arithmetic type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_279 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_279 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic carries invalid source ID (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_279 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_279 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic address not aligned to size (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_279 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_279 & ~reset & ~_T_309) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic carries invalid opcode param (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_309 & (io_in_a_valid & _T_279 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_279 & ~reset & ~_T_187) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic contains invalid mask (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_187 & (io_in_a_valid & _T_279 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_317 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Logical type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_317 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_317 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical carries invalid source ID (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_317 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_317 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical address not aligned to size (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_317 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_317 & ~reset & ~_T_347) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical carries invalid opcode param (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_347 & (io_in_a_valid & _T_317 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_317 & ~reset & ~_T_187) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical contains invalid mask (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_187 & (io_in_a_valid & _T_317 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_355 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Hint type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_355 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_355 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint carries invalid source ID (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_355 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_355 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint address not aligned to size (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_355 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_355 & ~reset & ~_T_385) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint carries invalid opcode param (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_385 & (io_in_a_valid & _T_355 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_355 & ~reset & ~_T_187) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint contains invalid mask (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_187 & (io_in_a_valid & _T_355 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_355 & ~reset & ~_T_78) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint is corrupt (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_78 & (io_in_a_valid & _T_355 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_397) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_397 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_401 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck carries invalid source ID (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_401 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_401 & _T_2 & ~_T_405) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck smaller than a beat (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_405 & (io_in_d_valid & _T_401 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_421 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid source ID (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_421 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_421 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid sink ID (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_421 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_421 & _T_2 & ~_T_405) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant smaller than a beat (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_405 & (io_in_d_valid & _T_421 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_449 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid source ID (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_449 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_449 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid sink ID (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_449 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_449 & _T_2 & ~_T_405) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData smaller than a beat (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_405 & (io_in_d_valid & _T_449 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_478 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck carries invalid source ID (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_478 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_495 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData carries invalid source ID (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_495 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_513 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck carries invalid source ID (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_513 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_543 & ~reset & ~_T_544) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel opcode changed within multibeat operation (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_544 & (_T_543 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_543 & ~reset & ~_T_548) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel param changed within multibeat operation (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_548 & (_T_543 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_543 & ~reset & ~_T_552) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel size changed within multibeat operation (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_552 & (_T_543 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_543 & ~reset & ~_T_556) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel source changed within multibeat operation (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_556 & (_T_543 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_543 & ~reset & ~_T_560) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel address changed with multibeat operation (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_560 & (_T_543 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_567 & _T_2 & ~_T_568) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_568 & (_T_567 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_567 & _T_2 & ~_T_576) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel size changed within multibeat operation (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_576 & (_T_567 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_567 & _T_2 & ~_T_580) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel source changed within multibeat operation (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_580 & (_T_567 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_597 & ~reset & ~_T_601) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel re-used a source ID (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_601 & (_T_597 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_617 & _T_2 & ~_T_620) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_620 & (_T_617 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_617 & same_cycle_resp & _T_2 & ~_T_626) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_626 & (_T_617 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_617 & same_cycle_resp & _T_2 & ~_T_630) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_630 & (_T_617 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_617 & ~same_cycle_resp & _T_2 & ~_T_638) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_638 & (_T_617 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_617 & ~same_cycle_resp & _T_2 & ~_T_642) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_642 & (_T_617 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_652 & _T_2 & ~_T_654) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_654 & (_T_652 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_663) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_663 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_696 & _T_2 & ~_T_697[0]) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_697[0] & (_T_696 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_696 & _T_2 & ~_T_707) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_707 & (_T_696 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_727) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:71:71)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_727 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[1:0];
  _RAND_1 = {1{`RANDOM}};
  opcode = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  param = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  size = _RAND_3[2:0];
  _RAND_4 = {1{`RANDOM}};
  source = _RAND_4[5:0];
  _RAND_5 = {1{`RANDOM}};
  address = _RAND_5[31:0];
  _RAND_6 = {1{`RANDOM}};
  d_first_counter = _RAND_6[1:0];
  _RAND_7 = {1{`RANDOM}};
  opcode_1 = _RAND_7[2:0];
  _RAND_8 = {1{`RANDOM}};
  size_1 = _RAND_8[2:0];
  _RAND_9 = {1{`RANDOM}};
  source_1 = _RAND_9[5:0];
  _RAND_10 = {2{`RANDOM}};
  inflight = _RAND_10[39:0];
  _RAND_11 = {5{`RANDOM}};
  inflight_opcodes = _RAND_11[159:0];
  _RAND_12 = {5{`RANDOM}};
  inflight_sizes = _RAND_12[159:0];
  _RAND_13 = {1{`RANDOM}};
  a_first_counter_1 = _RAND_13[1:0];
  _RAND_14 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_14[1:0];
  _RAND_15 = {1{`RANDOM}};
  watchdog = _RAND_15[31:0];
  _RAND_16 = {2{`RANDOM}};
  inflight_1 = _RAND_16[39:0];
  _RAND_17 = {5{`RANDOM}};
  inflight_sizes_1 = _RAND_17[159:0];
  _RAND_18 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_18[1:0];
  _RAND_19 = {1{`RANDOM}};
  watchdog_1 = _RAND_19[31:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Repeater(
  input         clock,
  input         reset,
  input         io_repeat,
  output        io_full,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [2:0]  io_enq_bits_opcode,
  input  [2:0]  io_enq_bits_param,
  input  [2:0]  io_enq_bits_size,
  input  [5:0]  io_enq_bits_source,
  input  [31:0] io_enq_bits_address,
  input  [7:0]  io_enq_bits_mask,
  input         io_enq_bits_corrupt,
  input         io_deq_ready,
  output        io_deq_valid,
  output [2:0]  io_deq_bits_opcode,
  output [2:0]  io_deq_bits_param,
  output [2:0]  io_deq_bits_size,
  output [5:0]  io_deq_bits_source,
  output [31:0] io_deq_bits_address,
  output [7:0]  io_deq_bits_mask,
  output        io_deq_bits_corrupt
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
`endif // RANDOMIZE_REG_INIT
  reg  full; // @[Repeater.scala 19:21]
  reg [2:0] saved_opcode; // @[Repeater.scala 20:18]
  reg [2:0] saved_param; // @[Repeater.scala 20:18]
  reg [2:0] saved_size; // @[Repeater.scala 20:18]
  reg [5:0] saved_source; // @[Repeater.scala 20:18]
  reg [31:0] saved_address; // @[Repeater.scala 20:18]
  reg [7:0] saved_mask; // @[Repeater.scala 20:18]
  reg  saved_corrupt; // @[Repeater.scala 20:18]
  wire  _T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_0 = _T & io_repeat | full; // @[Repeater.scala 19:21 28:{38,45}]
  wire  _T_2 = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign io_full = full; // @[Repeater.scala 26:11]
  assign io_enq_ready = io_deq_ready & ~full; // @[Repeater.scala 24:32]
  assign io_deq_valid = io_enq_valid | full; // @[Repeater.scala 23:32]
  assign io_deq_bits_opcode = full ? saved_opcode : io_enq_bits_opcode; // @[Repeater.scala 25:21]
  assign io_deq_bits_param = full ? saved_param : io_enq_bits_param; // @[Repeater.scala 25:21]
  assign io_deq_bits_size = full ? saved_size : io_enq_bits_size; // @[Repeater.scala 25:21]
  assign io_deq_bits_source = full ? saved_source : io_enq_bits_source; // @[Repeater.scala 25:21]
  assign io_deq_bits_address = full ? saved_address : io_enq_bits_address; // @[Repeater.scala 25:21]
  assign io_deq_bits_mask = full ? saved_mask : io_enq_bits_mask; // @[Repeater.scala 25:21]
  assign io_deq_bits_corrupt = full ? saved_corrupt : io_enq_bits_corrupt; // @[Repeater.scala 25:21]
  always @(posedge clock) begin
    if (reset) begin // @[Repeater.scala 19:21]
      full <= 1'h0; // @[Repeater.scala 19:21]
    end else if (_T_2 & ~io_repeat) begin // @[Repeater.scala 29:38]
      full <= 1'h0; // @[Repeater.scala 29:45]
    end else begin
      full <= _GEN_0;
    end
    if (_T & io_repeat) begin // @[Repeater.scala 28:38]
      saved_opcode <= io_enq_bits_opcode; // @[Repeater.scala 28:62]
    end
    if (_T & io_repeat) begin // @[Repeater.scala 28:38]
      saved_param <= io_enq_bits_param; // @[Repeater.scala 28:62]
    end
    if (_T & io_repeat) begin // @[Repeater.scala 28:38]
      saved_size <= io_enq_bits_size; // @[Repeater.scala 28:62]
    end
    if (_T & io_repeat) begin // @[Repeater.scala 28:38]
      saved_source <= io_enq_bits_source; // @[Repeater.scala 28:62]
    end
    if (_T & io_repeat) begin // @[Repeater.scala 28:38]
      saved_address <= io_enq_bits_address; // @[Repeater.scala 28:62]
    end
    if (_T & io_repeat) begin // @[Repeater.scala 28:38]
      saved_mask <= io_enq_bits_mask; // @[Repeater.scala 28:62]
    end
    if (_T & io_repeat) begin // @[Repeater.scala 28:38]
      saved_corrupt <= io_enq_bits_corrupt; // @[Repeater.scala 28:62]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  full = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  saved_opcode = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  saved_param = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  saved_size = _RAND_3[2:0];
  _RAND_4 = {1{`RANDOM}};
  saved_source = _RAND_4[5:0];
  _RAND_5 = {1{`RANDOM}};
  saved_address = _RAND_5[31:0];
  _RAND_6 = {1{`RANDOM}};
  saved_mask = _RAND_6[7:0];
  _RAND_7 = {1{`RANDOM}};
  saved_corrupt = _RAND_7[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLFragmenter(
  input         clock,
  input         reset,
  output        auto_in_a_ready,
  input         auto_in_a_valid,
  input  [2:0]  auto_in_a_bits_opcode,
  input  [2:0]  auto_in_a_bits_param,
  input  [2:0]  auto_in_a_bits_size,
  input  [5:0]  auto_in_a_bits_source,
  input  [31:0] auto_in_a_bits_address,
  input  [7:0]  auto_in_a_bits_mask,
  input  [63:0] auto_in_a_bits_data,
  input         auto_in_a_bits_corrupt,
  input         auto_in_d_ready,
  output        auto_in_d_valid,
  output [2:0]  auto_in_d_bits_opcode,
  output [2:0]  auto_in_d_bits_size,
  output [5:0]  auto_in_d_bits_source,
  output [63:0] auto_in_d_bits_data,
  input         auto_out_a_ready,
  output        auto_out_a_valid,
  output [2:0]  auto_out_a_bits_opcode,
  output [2:0]  auto_out_a_bits_param,
  output [1:0]  auto_out_a_bits_size,
  output [8:0]  auto_out_a_bits_source,
  output [31:0] auto_out_a_bits_address,
  output [7:0]  auto_out_a_bits_mask,
  output [63:0] auto_out_a_bits_data,
  output        auto_out_a_bits_corrupt,
  output        auto_out_d_ready,
  input         auto_out_d_valid,
  input  [2:0]  auto_out_d_bits_opcode,
  input  [1:0]  auto_out_d_bits_size,
  input  [8:0]  auto_out_d_bits_source,
  input  [63:0] auto_out_d_bits_data
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
`endif // RANDOMIZE_REG_INIT
  wire  monitor_clock; // @[Nodes.scala 24:25]
  wire  monitor_reset; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_opcode; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_param; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_size; // @[Nodes.scala 24:25]
  wire [5:0] monitor_io_in_a_bits_source; // @[Nodes.scala 24:25]
  wire [31:0] monitor_io_in_a_bits_address; // @[Nodes.scala 24:25]
  wire [7:0] monitor_io_in_a_bits_mask; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_bits_corrupt; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_size; // @[Nodes.scala 24:25]
  wire [5:0] monitor_io_in_d_bits_source; // @[Nodes.scala 24:25]
  wire  repeater_clock; // @[Fragmenter.scala 262:30]
  wire  repeater_reset; // @[Fragmenter.scala 262:30]
  wire  repeater_io_repeat; // @[Fragmenter.scala 262:30]
  wire  repeater_io_full; // @[Fragmenter.scala 262:30]
  wire  repeater_io_enq_ready; // @[Fragmenter.scala 262:30]
  wire  repeater_io_enq_valid; // @[Fragmenter.scala 262:30]
  wire [2:0] repeater_io_enq_bits_opcode; // @[Fragmenter.scala 262:30]
  wire [2:0] repeater_io_enq_bits_param; // @[Fragmenter.scala 262:30]
  wire [2:0] repeater_io_enq_bits_size; // @[Fragmenter.scala 262:30]
  wire [5:0] repeater_io_enq_bits_source; // @[Fragmenter.scala 262:30]
  wire [31:0] repeater_io_enq_bits_address; // @[Fragmenter.scala 262:30]
  wire [7:0] repeater_io_enq_bits_mask; // @[Fragmenter.scala 262:30]
  wire  repeater_io_enq_bits_corrupt; // @[Fragmenter.scala 262:30]
  wire  repeater_io_deq_ready; // @[Fragmenter.scala 262:30]
  wire  repeater_io_deq_valid; // @[Fragmenter.scala 262:30]
  wire [2:0] repeater_io_deq_bits_opcode; // @[Fragmenter.scala 262:30]
  wire [2:0] repeater_io_deq_bits_param; // @[Fragmenter.scala 262:30]
  wire [2:0] repeater_io_deq_bits_size; // @[Fragmenter.scala 262:30]
  wire [5:0] repeater_io_deq_bits_source; // @[Fragmenter.scala 262:30]
  wire [31:0] repeater_io_deq_bits_address; // @[Fragmenter.scala 262:30]
  wire [7:0] repeater_io_deq_bits_mask; // @[Fragmenter.scala 262:30]
  wire  repeater_io_deq_bits_corrupt; // @[Fragmenter.scala 262:30]
  reg [1:0] acknum; // @[Fragmenter.scala 189:29]
  reg [2:0] dOrig; // @[Fragmenter.scala 190:24]
  reg  dToggle; // @[Fragmenter.scala 191:30]
  wire [1:0] dFragnum = auto_out_d_bits_source[1:0]; // @[Fragmenter.scala 192:41]
  wire  dFirst = acknum == 2'h0; // @[Fragmenter.scala 193:29]
  wire  dLast = dFragnum == 2'h0; // @[Fragmenter.scala 194:30]
  wire [3:0] dsizeOH = 4'h1 << auto_out_d_bits_size; // @[OneHot.scala 64:12]
  wire [5:0] _dsizeOH1_T_1 = 6'h7 << auto_out_d_bits_size; // @[package.scala 234:77]
  wire [2:0] dsizeOH1 = ~_dsizeOH1_T_1[2:0]; // @[package.scala 234:46]
  wire  dHasData = auto_out_d_bits_opcode[0]; // @[Edges.scala 105:36]
  wire  _T_5 = ~reset; // @[Fragmenter.scala 202:16]
  wire  ack_decrement = dHasData | dsizeOH[3]; // @[Fragmenter.scala 204:32]
  wire [4:0] _dFirst_size_T = {dFragnum, 3'h0}; // @[Fragmenter.scala 206:47]
  wire [4:0] _GEN_7 = {{2'd0}, dsizeOH1}; // @[Fragmenter.scala 206:69]
  wire [4:0] _dFirst_size_T_1 = _dFirst_size_T | _GEN_7; // @[Fragmenter.scala 206:69]
  wire [5:0] _dFirst_size_T_2 = {_dFirst_size_T_1, 1'h0}; // @[package.scala 232:35]
  wire [5:0] _dFirst_size_T_3 = _dFirst_size_T_2 | 6'h1; // @[package.scala 232:40]
  wire [5:0] _dFirst_size_T_4 = {1'h0,_dFirst_size_T_1}; // @[Cat.scala 33:92]
  wire [5:0] _dFirst_size_T_5 = ~_dFirst_size_T_4; // @[package.scala 232:53]
  wire [5:0] _dFirst_size_T_6 = _dFirst_size_T_3 & _dFirst_size_T_5; // @[package.scala 232:51]
  wire [1:0] dFirst_size_hi = _dFirst_size_T_6[5:4]; // @[OneHot.scala 30:18]
  wire [3:0] dFirst_size_lo = _dFirst_size_T_6[3:0]; // @[OneHot.scala 31:18]
  wire  _dFirst_size_T_7 = |dFirst_size_hi; // @[OneHot.scala 32:14]
  wire [3:0] _GEN_8 = {{2'd0}, dFirst_size_hi}; // @[OneHot.scala 32:28]
  wire [3:0] _dFirst_size_T_8 = _GEN_8 | dFirst_size_lo; // @[OneHot.scala 32:28]
  wire [1:0] dFirst_size_hi_1 = _dFirst_size_T_8[3:2]; // @[OneHot.scala 30:18]
  wire [1:0] dFirst_size_lo_1 = _dFirst_size_T_8[1:0]; // @[OneHot.scala 31:18]
  wire  _dFirst_size_T_9 = |dFirst_size_hi_1; // @[OneHot.scala 32:14]
  wire [1:0] _dFirst_size_T_10 = dFirst_size_hi_1 | dFirst_size_lo_1; // @[OneHot.scala 32:28]
  wire [2:0] dFirst_size = {_dFirst_size_T_7,_dFirst_size_T_9,_dFirst_size_T_10[1]}; // @[Cat.scala 33:92]
  wire  drop = ~dHasData & ~dLast; // @[Fragmenter.scala 222:30]
  wire  bundleOut_0_d_ready = auto_in_d_ready | drop; // @[Fragmenter.scala 223:35]
  wire  _T_7 = bundleOut_0_d_ready & auto_out_d_valid; // @[Decoupled.scala 52:35]
  wire [1:0] _GEN_9 = {{1'd0}, ack_decrement}; // @[Fragmenter.scala 209:55]
  wire [1:0] _acknum_T_1 = acknum - _GEN_9; // @[Fragmenter.scala 209:55]
  wire [2:0] aFrag = repeater_io_deq_bits_size > 3'h3 ? 3'h3 : repeater_io_deq_bits_size; // @[Fragmenter.scala 285:24]
  wire [11:0] _aOrigOH1_T_1 = 12'h1f << repeater_io_deq_bits_size; // @[package.scala 234:77]
  wire [4:0] aOrigOH1 = ~_aOrigOH1_T_1[4:0]; // @[package.scala 234:46]
  wire [9:0] _aFragOH1_T_1 = 10'h7 << aFrag; // @[package.scala 234:77]
  wire [2:0] aFragOH1 = ~_aFragOH1_T_1[2:0]; // @[package.scala 234:46]
  wire  aHasData = ~repeater_io_deq_bits_opcode[2]; // @[Edges.scala 91:28]
  reg [1:0] gennum; // @[Fragmenter.scala 291:29]
  wire  aFirst = gennum == 2'h0; // @[Fragmenter.scala 292:29]
  wire [1:0] _old_gennum1_T_2 = gennum - 2'h1; // @[Fragmenter.scala 293:79]
  wire [1:0] old_gennum1 = aFirst ? aOrigOH1[4:3] : _old_gennum1_T_2; // @[Fragmenter.scala 293:30]
  wire [1:0] _new_gennum_T = ~old_gennum1; // @[Fragmenter.scala 294:28]
  wire [1:0] new_gennum = ~_new_gennum_T; // @[Fragmenter.scala 294:26]
  reg  aToggle_r; // @[Reg.scala 19:16]
  wire  _GEN_5 = aFirst ? dToggle : aToggle_r; // @[Reg.scala 19:16 20:{18,22}]
  wire  aToggle = ~_GEN_5; // @[Fragmenter.scala 297:23]
  wire  bundleOut_0_a_valid = repeater_io_deq_valid; // @[Nodes.scala 1207:84 Fragmenter.scala 303:15]
  wire  _T_8 = auto_out_a_ready & bundleOut_0_a_valid; // @[Decoupled.scala 52:35]
  wire  _repeater_io_repeat_T = ~aHasData; // @[Fragmenter.scala 302:31]
  wire [4:0] _bundleOut_0_a_bits_address_T = {old_gennum1, 3'h0}; // @[Fragmenter.scala 304:65]
  wire [4:0] _bundleOut_0_a_bits_address_T_1 = ~aOrigOH1; // @[Fragmenter.scala 304:90]
  wire [4:0] _bundleOut_0_a_bits_address_T_2 = _bundleOut_0_a_bits_address_T | _bundleOut_0_a_bits_address_T_1; // @[Fragmenter.scala 304:88]
  wire [4:0] _GEN_10 = {{2'd0}, aFragOH1}; // @[Fragmenter.scala 304:100]
  wire [4:0] _bundleOut_0_a_bits_address_T_3 = _bundleOut_0_a_bits_address_T_2 | _GEN_10; // @[Fragmenter.scala 304:100]
  wire [4:0] _bundleOut_0_a_bits_address_T_4 = _bundleOut_0_a_bits_address_T_3 | 5'h7; // @[Fragmenter.scala 304:111]
  wire [4:0] _bundleOut_0_a_bits_address_T_5 = ~_bundleOut_0_a_bits_address_T_4; // @[Fragmenter.scala 304:51]
  wire [31:0] _GEN_11 = {{27'd0}, _bundleOut_0_a_bits_address_T_5}; // @[Fragmenter.scala 304:49]
  wire [6:0] bundleOut_0_a_bits_source_hi = {repeater_io_deq_bits_source,aToggle}; // @[Cat.scala 33:92]
  wire  _T_9 = ~repeater_io_full; // @[Fragmenter.scala 309:17]
  TLMonitor_10 monitor ( // @[Nodes.scala 24:25]
    .clock(monitor_clock),
    .reset(monitor_reset),
    .io_in_a_ready(monitor_io_in_a_ready),
    .io_in_a_valid(monitor_io_in_a_valid),
    .io_in_a_bits_opcode(monitor_io_in_a_bits_opcode),
    .io_in_a_bits_param(monitor_io_in_a_bits_param),
    .io_in_a_bits_size(monitor_io_in_a_bits_size),
    .io_in_a_bits_source(monitor_io_in_a_bits_source),
    .io_in_a_bits_address(monitor_io_in_a_bits_address),
    .io_in_a_bits_mask(monitor_io_in_a_bits_mask),
    .io_in_a_bits_corrupt(monitor_io_in_a_bits_corrupt),
    .io_in_d_ready(monitor_io_in_d_ready),
    .io_in_d_valid(monitor_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_io_in_d_bits_opcode),
    .io_in_d_bits_size(monitor_io_in_d_bits_size),
    .io_in_d_bits_source(monitor_io_in_d_bits_source)
  );
  Repeater repeater ( // @[Fragmenter.scala 262:30]
    .clock(repeater_clock),
    .reset(repeater_reset),
    .io_repeat(repeater_io_repeat),
    .io_full(repeater_io_full),
    .io_enq_ready(repeater_io_enq_ready),
    .io_enq_valid(repeater_io_enq_valid),
    .io_enq_bits_opcode(repeater_io_enq_bits_opcode),
    .io_enq_bits_param(repeater_io_enq_bits_param),
    .io_enq_bits_size(repeater_io_enq_bits_size),
    .io_enq_bits_source(repeater_io_enq_bits_source),
    .io_enq_bits_address(repeater_io_enq_bits_address),
    .io_enq_bits_mask(repeater_io_enq_bits_mask),
    .io_enq_bits_corrupt(repeater_io_enq_bits_corrupt),
    .io_deq_ready(repeater_io_deq_ready),
    .io_deq_valid(repeater_io_deq_valid),
    .io_deq_bits_opcode(repeater_io_deq_bits_opcode),
    .io_deq_bits_param(repeater_io_deq_bits_param),
    .io_deq_bits_size(repeater_io_deq_bits_size),
    .io_deq_bits_source(repeater_io_deq_bits_source),
    .io_deq_bits_address(repeater_io_deq_bits_address),
    .io_deq_bits_mask(repeater_io_deq_bits_mask),
    .io_deq_bits_corrupt(repeater_io_deq_bits_corrupt)
  );
  assign auto_in_a_ready = repeater_io_enq_ready; // @[Nodes.scala 1210:84 Fragmenter.scala 263:25]
  assign auto_in_d_valid = auto_out_d_valid & ~drop; // @[Fragmenter.scala 224:36]
  assign auto_in_d_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_d_bits_size = dFirst ? dFirst_size : dOrig; // @[Fragmenter.scala 227:32]
  assign auto_in_d_bits_source = auto_out_d_bits_source[8:3]; // @[Fragmenter.scala 226:47]
  assign auto_in_d_bits_data = auto_out_d_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_out_a_valid = repeater_io_deq_valid; // @[Nodes.scala 1207:84 Fragmenter.scala 303:15]
  assign auto_out_a_bits_opcode = repeater_io_deq_bits_opcode; // @[Nodes.scala 1207:84 Fragmenter.scala 303:15]
  assign auto_out_a_bits_param = repeater_io_deq_bits_param; // @[Nodes.scala 1207:84 Fragmenter.scala 303:15]
  assign auto_out_a_bits_size = aFrag[1:0]; // @[Nodes.scala 1207:84 Fragmenter.scala 306:25]
  assign auto_out_a_bits_source = {bundleOut_0_a_bits_source_hi,new_gennum}; // @[Cat.scala 33:92]
  assign auto_out_a_bits_address = repeater_io_deq_bits_address | _GEN_11; // @[Fragmenter.scala 304:49]
  assign auto_out_a_bits_mask = repeater_io_full ? 8'hff : auto_in_a_bits_mask; // @[Fragmenter.scala 313:31]
  assign auto_out_a_bits_data = auto_in_a_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_a_bits_corrupt = repeater_io_deq_bits_corrupt; // @[Nodes.scala 1207:84 Fragmenter.scala 303:15]
  assign auto_out_d_ready = auto_in_d_ready | drop; // @[Fragmenter.scala 223:35]
  assign monitor_clock = clock;
  assign monitor_reset = reset;
  assign monitor_io_in_a_ready = repeater_io_enq_ready; // @[Nodes.scala 1210:84 Fragmenter.scala 263:25]
  assign monitor_io_in_a_valid = auto_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_opcode = auto_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_param = auto_in_a_bits_param; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_size = auto_in_a_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_source = auto_in_a_bits_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_mask = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_corrupt = auto_in_a_bits_corrupt; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_ready = auto_in_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_valid = auto_out_d_valid & ~drop; // @[Fragmenter.scala 224:36]
  assign monitor_io_in_d_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_io_in_d_bits_size = dFirst ? dFirst_size : dOrig; // @[Fragmenter.scala 227:32]
  assign monitor_io_in_d_bits_source = auto_out_d_bits_source[8:3]; // @[Fragmenter.scala 226:47]
  assign repeater_clock = clock;
  assign repeater_reset = reset;
  assign repeater_io_repeat = ~aHasData & new_gennum != 2'h0; // @[Fragmenter.scala 302:41]
  assign repeater_io_enq_valid = auto_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign repeater_io_enq_bits_opcode = auto_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign repeater_io_enq_bits_param = auto_in_a_bits_param; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign repeater_io_enq_bits_size = auto_in_a_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign repeater_io_enq_bits_source = auto_in_a_bits_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign repeater_io_enq_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign repeater_io_enq_bits_mask = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign repeater_io_enq_bits_corrupt = auto_in_a_bits_corrupt; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign repeater_io_deq_ready = auto_out_a_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  always @(posedge clock) begin
    if (reset) begin // @[Fragmenter.scala 189:29]
      acknum <= 2'h0; // @[Fragmenter.scala 189:29]
    end else if (_T_7) begin // @[Fragmenter.scala 208:29]
      if (dFirst) begin // @[Fragmenter.scala 209:24]
        acknum <= dFragnum;
      end else begin
        acknum <= _acknum_T_1;
      end
    end
    if (_T_7) begin // @[Fragmenter.scala 208:29]
      if (dFirst) begin // @[Fragmenter.scala 210:25]
        dOrig <= dFirst_size; // @[Fragmenter.scala 211:19]
      end
    end
    if (reset) begin // @[Fragmenter.scala 191:30]
      dToggle <= 1'h0; // @[Fragmenter.scala 191:30]
    end else if (_T_7) begin // @[Fragmenter.scala 208:29]
      if (dFirst) begin // @[Fragmenter.scala 210:25]
        dToggle <= auto_out_d_bits_source[2]; // @[Fragmenter.scala 212:21]
      end
    end
    if (reset) begin // @[Fragmenter.scala 291:29]
      gennum <= 2'h0; // @[Fragmenter.scala 291:29]
    end else if (_T_8) begin // @[Fragmenter.scala 300:29]
      gennum <= new_gennum; // @[Fragmenter.scala 300:38]
    end
    if (aFirst) begin // @[Reg.scala 20:18]
      aToggle_r <= dToggle; // @[Reg.scala 20:22]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_5 & ~(~repeater_io_full | _repeater_io_repeat_T)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Fragmenter.scala:309 assert (!repeater.io.full || !aHasData)\n"
            ); // @[Fragmenter.scala 309:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~repeater_io_full | _repeater_io_repeat_T) & _T_5) begin
          $fatal; // @[Fragmenter.scala 309:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_5 & ~(_T_9 | repeater_io_deq_bits_mask == 8'hff)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Fragmenter.scala:312 assert (!repeater.io.full || in_a.bits.mask === fullMask)\n"
            ); // @[Fragmenter.scala 312:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_9 | repeater_io_deq_bits_mask == 8'hff) & _T_5) begin
          $fatal; // @[Fragmenter.scala 312:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  acknum = _RAND_0[1:0];
  _RAND_1 = {1{`RANDOM}};
  dOrig = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  dToggle = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  gennum = _RAND_3[1:0];
  _RAND_4 = {1{`RANDOM}};
  aToggle_r = _RAND_4[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLWidthWidget(
  output        auto_in_a_ready,
  input         auto_in_a_valid,
  input  [2:0]  auto_in_a_bits_opcode,
  input  [2:0]  auto_in_a_bits_param,
  input  [2:0]  auto_in_a_bits_size,
  input  [5:0]  auto_in_a_bits_source,
  input  [31:0] auto_in_a_bits_address,
  input  [7:0]  auto_in_a_bits_mask,
  input  [63:0] auto_in_a_bits_data,
  input         auto_in_a_bits_corrupt,
  input         auto_in_d_ready,
  output        auto_in_d_valid,
  output [2:0]  auto_in_d_bits_opcode,
  output [2:0]  auto_in_d_bits_size,
  output [5:0]  auto_in_d_bits_source,
  output [63:0] auto_in_d_bits_data,
  input         auto_out_a_ready,
  output        auto_out_a_valid,
  output [2:0]  auto_out_a_bits_opcode,
  output [2:0]  auto_out_a_bits_param,
  output [2:0]  auto_out_a_bits_size,
  output [5:0]  auto_out_a_bits_source,
  output [31:0] auto_out_a_bits_address,
  output [7:0]  auto_out_a_bits_mask,
  output [63:0] auto_out_a_bits_data,
  output        auto_out_a_bits_corrupt,
  output        auto_out_d_ready,
  input         auto_out_d_valid,
  input  [2:0]  auto_out_d_bits_opcode,
  input  [2:0]  auto_out_d_bits_size,
  input  [5:0]  auto_out_d_bits_source,
  input  [63:0] auto_out_d_bits_data
);
  assign auto_in_a_ready = auto_out_a_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_d_valid = auto_out_d_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_d_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_d_bits_size = auto_out_d_bits_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_d_bits_source = auto_out_d_bits_source; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_d_bits_data = auto_out_d_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_out_a_valid = auto_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_a_bits_opcode = auto_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_a_bits_param = auto_in_a_bits_param; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_a_bits_size = auto_in_a_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_a_bits_source = auto_in_a_bits_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_a_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_a_bits_mask = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_a_bits_data = auto_in_a_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_a_bits_corrupt = auto_in_a_bits_corrupt; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_d_ready = auto_in_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
endmodule
module TLMonitor_11(
  input         clock,
  input         reset,
  input         io_in_a_ready,
  input         io_in_a_valid,
  input  [2:0]  io_in_a_bits_opcode,
  input  [2:0]  io_in_a_bits_param,
  input  [2:0]  io_in_a_bits_size,
  input  [4:0]  io_in_a_bits_source,
  input  [31:0] io_in_a_bits_address,
  input  [7:0]  io_in_a_bits_mask,
  input         io_in_a_bits_corrupt,
  input         io_in_c_ready,
  input         io_in_c_valid,
  input  [2:0]  io_in_c_bits_opcode,
  input  [2:0]  io_in_c_bits_param,
  input  [2:0]  io_in_c_bits_size,
  input  [4:0]  io_in_c_bits_source,
  input  [31:0] io_in_c_bits_address,
  input         io_in_c_bits_corrupt,
  input         io_in_d_ready,
  input         io_in_d_valid,
  input  [2:0]  io_in_d_bits_opcode,
  input  [1:0]  io_in_d_bits_param,
  input  [2:0]  io_in_d_bits_size,
  input  [4:0]  io_in_d_bits_source,
  input  [2:0]  io_in_d_bits_sink,
  input         io_in_d_bits_denied,
  input         io_in_d_bits_corrupt,
  input         io_in_e_valid,
  input  [2:0]  io_in_e_bits_sink
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [95:0] _RAND_20;
  reg [95:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [95:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire  _source_ok_T_4 = io_in_a_bits_source <= 5'h13; // @[Parameters.scala 57:20]
  wire [11:0] _is_aligned_mask_T_1 = 12'h1f << io_in_a_bits_size; // @[package.scala 234:77]
  wire [4:0] is_aligned_mask = ~_is_aligned_mask_T_1[4:0]; // @[package.scala 234:46]
  wire [31:0] _GEN_27 = {{27'd0}, is_aligned_mask}; // @[Edges.scala 20:16]
  wire [31:0] _is_aligned_T = io_in_a_bits_address & _GEN_27; // @[Edges.scala 20:16]
  wire  is_aligned = _is_aligned_T == 32'h0; // @[Edges.scala 20:24]
  wire [1:0] mask_sizeOH_shiftAmount = io_in_a_bits_size[1:0]; // @[OneHot.scala 63:49]
  wire [3:0] _mask_sizeOH_T_1 = 4'h1 << mask_sizeOH_shiftAmount; // @[OneHot.scala 64:12]
  wire [2:0] mask_sizeOH = _mask_sizeOH_T_1[2:0] | 3'h1; // @[Misc.scala 201:81]
  wire  _mask_T = io_in_a_bits_size >= 3'h3; // @[Misc.scala 205:21]
  wire  mask_size = mask_sizeOH[2]; // @[Misc.scala 208:26]
  wire  mask_bit = io_in_a_bits_address[2]; // @[Misc.scala 209:26]
  wire  mask_nbit = ~mask_bit; // @[Misc.scala 210:20]
  wire  mask_acc = _mask_T | mask_size & mask_nbit; // @[Misc.scala 214:29]
  wire  mask_acc_1 = _mask_T | mask_size & mask_bit; // @[Misc.scala 214:29]
  wire  mask_size_1 = mask_sizeOH[1]; // @[Misc.scala 208:26]
  wire  mask_bit_1 = io_in_a_bits_address[1]; // @[Misc.scala 209:26]
  wire  mask_nbit_1 = ~mask_bit_1; // @[Misc.scala 210:20]
  wire  mask_eq_2 = mask_nbit & mask_nbit_1; // @[Misc.scala 213:27]
  wire  mask_acc_2 = mask_acc | mask_size_1 & mask_eq_2; // @[Misc.scala 214:29]
  wire  mask_eq_3 = mask_nbit & mask_bit_1; // @[Misc.scala 213:27]
  wire  mask_acc_3 = mask_acc | mask_size_1 & mask_eq_3; // @[Misc.scala 214:29]
  wire  mask_eq_4 = mask_bit & mask_nbit_1; // @[Misc.scala 213:27]
  wire  mask_acc_4 = mask_acc_1 | mask_size_1 & mask_eq_4; // @[Misc.scala 214:29]
  wire  mask_eq_5 = mask_bit & mask_bit_1; // @[Misc.scala 213:27]
  wire  mask_acc_5 = mask_acc_1 | mask_size_1 & mask_eq_5; // @[Misc.scala 214:29]
  wire  mask_size_2 = mask_sizeOH[0]; // @[Misc.scala 208:26]
  wire  mask_bit_2 = io_in_a_bits_address[0]; // @[Misc.scala 209:26]
  wire  mask_nbit_2 = ~mask_bit_2; // @[Misc.scala 210:20]
  wire  mask_eq_6 = mask_eq_2 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_6 = mask_acc_2 | mask_size_2 & mask_eq_6; // @[Misc.scala 214:29]
  wire  mask_eq_7 = mask_eq_2 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_7 = mask_acc_2 | mask_size_2 & mask_eq_7; // @[Misc.scala 214:29]
  wire  mask_eq_8 = mask_eq_3 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_8 = mask_acc_3 | mask_size_2 & mask_eq_8; // @[Misc.scala 214:29]
  wire  mask_eq_9 = mask_eq_3 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_9 = mask_acc_3 | mask_size_2 & mask_eq_9; // @[Misc.scala 214:29]
  wire  mask_eq_10 = mask_eq_4 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_10 = mask_acc_4 | mask_size_2 & mask_eq_10; // @[Misc.scala 214:29]
  wire  mask_eq_11 = mask_eq_4 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_11 = mask_acc_4 | mask_size_2 & mask_eq_11; // @[Misc.scala 214:29]
  wire  mask_eq_12 = mask_eq_5 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_acc_12 = mask_acc_5 | mask_size_2 & mask_eq_12; // @[Misc.scala 214:29]
  wire  mask_eq_13 = mask_eq_5 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_acc_13 = mask_acc_5 | mask_size_2 & mask_eq_13; // @[Misc.scala 214:29]
  wire [7:0] mask = {mask_acc_13,mask_acc_12,mask_acc_11,mask_acc_10,mask_acc_9,mask_acc_8,mask_acc_7,mask_acc_6}; // @[Cat.scala 33:92]
  wire  _T_10 = ~_source_ok_T_4; // @[Monitor.scala 63:7]
  wire [32:0] _T_12 = {1'b0,$signed(io_in_a_bits_address)}; // @[Parameters.scala 137:49]
  wire  _T_20 = io_in_a_bits_opcode == 3'h6; // @[Monitor.scala 81:25]
  wire  _T_34 = 3'h3 <= io_in_a_bits_size & io_in_a_bits_size <= 3'h5; // @[Parameters.scala 92:37]
  wire [32:0] _T_39 = $signed(_T_12) & 33'sh100000000; // @[Parameters.scala 137:52]
  wire  _T_40 = $signed(_T_39) == 33'sh0; // @[Parameters.scala 137:67]
  wire  _T_41 = _T_34 & _T_40; // @[Parameters.scala 670:56]
  wire  _T_43 = _source_ok_T_4 & _T_41; // @[Monitor.scala 82:72]
  wire  _T_47 = 3'h4 == io_in_a_bits_size; // @[Parameters.scala 91:48]
  wire  _T_59 = _T_47 & _T_40; // @[Monitor.scala 83:78]
  wire  _T_73 = io_in_a_bits_param <= 3'h2; // @[Bundles.scala 108:27]
  wire [7:0] _T_77 = ~io_in_a_bits_mask; // @[Monitor.scala 88:18]
  wire  _T_78 = _T_77 == 8'h0; // @[Monitor.scala 88:31]
  wire  _T_82 = ~io_in_a_bits_corrupt; // @[Monitor.scala 89:18]
  wire  _T_86 = io_in_a_bits_opcode == 3'h7; // @[Monitor.scala 92:25]
  wire  _T_143 = io_in_a_bits_param != 3'h0; // @[Monitor.scala 99:31]
  wire  _T_156 = io_in_a_bits_opcode == 3'h4; // @[Monitor.scala 104:25]
  wire  _T_191 = io_in_a_bits_param == 3'h0; // @[Monitor.scala 109:31]
  wire  _T_195 = io_in_a_bits_mask == mask; // @[Monitor.scala 110:30]
  wire  _T_203 = io_in_a_bits_opcode == 3'h0; // @[Monitor.scala 114:25]
  wire  _T_244 = io_in_a_bits_opcode == 3'h1; // @[Monitor.scala 122:25]
  wire [7:0] _T_281 = ~mask; // @[Monitor.scala 127:33]
  wire [7:0] _T_282 = io_in_a_bits_mask & _T_281; // @[Monitor.scala 127:31]
  wire  _T_283 = _T_282 == 8'h0; // @[Monitor.scala 127:40]
  wire  _T_287 = io_in_a_bits_opcode == 3'h2; // @[Monitor.scala 130:25]
  wire  _T_317 = io_in_a_bits_param <= 3'h4; // @[Bundles.scala 138:33]
  wire  _T_325 = io_in_a_bits_opcode == 3'h3; // @[Monitor.scala 138:25]
  wire  _T_355 = io_in_a_bits_param <= 3'h3; // @[Bundles.scala 145:30]
  wire  _T_363 = io_in_a_bits_opcode == 3'h5; // @[Monitor.scala 146:25]
  wire  _T_393 = io_in_a_bits_param <= 3'h1; // @[Bundles.scala 158:28]
  wire  _T_405 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire  _source_ok_T_10 = io_in_d_bits_source <= 5'h13; // @[Parameters.scala 57:20]
  wire  _T_409 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_413 = io_in_d_bits_size >= 3'h3; // @[Monitor.scala 312:27]
  wire  _T_417 = io_in_d_bits_param == 2'h0; // @[Monitor.scala 313:28]
  wire  _T_421 = ~io_in_d_bits_corrupt; // @[Monitor.scala 314:15]
  wire  _T_425 = ~io_in_d_bits_denied; // @[Monitor.scala 315:15]
  wire  _T_429 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_440 = io_in_d_bits_param <= 2'h2; // @[Bundles.scala 102:26]
  wire  _T_444 = io_in_d_bits_param != 2'h2; // @[Monitor.scala 323:28]
  wire  _T_457 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _T_477 = _T_425 | io_in_d_bits_corrupt; // @[Monitor.scala 334:30]
  wire  _T_486 = io_in_d_bits_opcode == 3'h0; // @[Monitor.scala 338:25]
  wire  _T_503 = io_in_d_bits_opcode == 3'h1; // @[Monitor.scala 346:25]
  wire  _T_521 = io_in_d_bits_opcode == 3'h2; // @[Monitor.scala 354:25]
  wire  _source_ok_T_16 = io_in_c_bits_source <= 5'h13; // @[Parameters.scala 57:20]
  wire [11:0] _is_aligned_mask_T_7 = 12'h1f << io_in_c_bits_size; // @[package.scala 234:77]
  wire [4:0] is_aligned_mask_2 = ~_is_aligned_mask_T_7[4:0]; // @[package.scala 234:46]
  wire [31:0] _GEN_33 = {{27'd0}, is_aligned_mask_2}; // @[Edges.scala 20:16]
  wire [31:0] _is_aligned_T_2 = io_in_c_bits_address & _GEN_33; // @[Edges.scala 20:16]
  wire  is_aligned_2 = _is_aligned_T_2 == 32'h0; // @[Edges.scala 20:24]
  wire [32:0] _address_ok_T_6 = {1'b0,$signed(io_in_c_bits_address)}; // @[Parameters.scala 137:49]
  wire [32:0] _address_ok_T_8 = $signed(_address_ok_T_6) & 33'sh100000000; // @[Parameters.scala 137:52]
  wire  _address_ok_T_9 = $signed(_address_ok_T_8) == 33'sh0; // @[Parameters.scala 137:67]
  wire  _T_810 = ~_source_ok_T_16; // @[Monitor.scala 63:7]
  wire  _T_820 = io_in_c_bits_opcode == 3'h4; // @[Monitor.scala 242:25]
  wire  _T_827 = io_in_c_bits_size >= 3'h3; // @[Monitor.scala 245:30]
  wire  _T_834 = io_in_c_bits_param <= 3'h5; // @[Bundles.scala 120:29]
  wire  _T_838 = ~io_in_c_bits_corrupt; // @[Monitor.scala 248:18]
  wire  _T_842 = io_in_c_bits_opcode == 3'h5; // @[Monitor.scala 251:25]
  wire  _T_860 = io_in_c_bits_opcode == 3'h6; // @[Monitor.scala 259:25]
  wire  _T_874 = 3'h3 <= io_in_c_bits_size & io_in_c_bits_size <= 3'h5; // @[Parameters.scala 92:37]
  wire  _T_881 = _T_874 & _address_ok_T_9; // @[Parameters.scala 670:56]
  wire  _T_883 = _source_ok_T_16 & _T_881; // @[Monitor.scala 260:78]
  wire  _T_887 = 3'h4 == io_in_c_bits_size; // @[Parameters.scala 91:48]
  wire  _T_899 = _T_887 & _address_ok_T_9; // @[Monitor.scala 261:78]
  wire  _T_921 = io_in_c_bits_opcode == 3'h7; // @[Monitor.scala 269:25]
  wire  _T_978 = io_in_c_bits_opcode == 3'h0; // @[Monitor.scala 278:25]
  wire  _T_988 = io_in_c_bits_param == 3'h0; // @[Monitor.scala 282:31]
  wire  _T_996 = io_in_c_bits_opcode == 3'h1; // @[Monitor.scala 286:25]
  wire  _T_1010 = io_in_c_bits_opcode == 3'h2; // @[Monitor.scala 293:25]
  wire  _a_first_T = io_in_a_ready & io_in_a_valid; // @[Decoupled.scala 52:35]
  wire [1:0] a_first_beats1_decode = is_aligned_mask[4:3]; // @[Edges.scala 219:59]
  wire  a_first_beats1_opdata = ~io_in_a_bits_opcode[2]; // @[Edges.scala 91:28]
  reg [1:0] a_first_counter; // @[Edges.scala 228:27]
  wire [1:0] a_first_counter1 = a_first_counter - 2'h1; // @[Edges.scala 229:28]
  wire  a_first = a_first_counter == 2'h0; // @[Edges.scala 230:25]
  reg [2:0] opcode; // @[Monitor.scala 384:22]
  reg [2:0] param; // @[Monitor.scala 385:22]
  reg [2:0] size; // @[Monitor.scala 386:22]
  reg [4:0] source; // @[Monitor.scala 387:22]
  reg [31:0] address; // @[Monitor.scala 388:22]
  wire  _T_1032 = io_in_a_valid & ~a_first; // @[Monitor.scala 389:19]
  wire  _T_1033 = io_in_a_bits_opcode == opcode; // @[Monitor.scala 390:32]
  wire  _T_1037 = io_in_a_bits_param == param; // @[Monitor.scala 391:32]
  wire  _T_1041 = io_in_a_bits_size == size; // @[Monitor.scala 392:32]
  wire  _T_1045 = io_in_a_bits_source == source; // @[Monitor.scala 393:32]
  wire  _T_1049 = io_in_a_bits_address == address; // @[Monitor.scala 394:32]
  wire  _d_first_T = io_in_d_ready & io_in_d_valid; // @[Decoupled.scala 52:35]
  wire [11:0] _d_first_beats1_decode_T_1 = 12'h1f << io_in_d_bits_size; // @[package.scala 234:77]
  wire [4:0] _d_first_beats1_decode_T_3 = ~_d_first_beats1_decode_T_1[4:0]; // @[package.scala 234:46]
  wire [1:0] d_first_beats1_decode = _d_first_beats1_decode_T_3[4:3]; // @[Edges.scala 219:59]
  wire  d_first_beats1_opdata = io_in_d_bits_opcode[0]; // @[Edges.scala 105:36]
  reg [1:0] d_first_counter; // @[Edges.scala 228:27]
  wire [1:0] d_first_counter1 = d_first_counter - 2'h1; // @[Edges.scala 229:28]
  wire  d_first = d_first_counter == 2'h0; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  reg [1:0] param_1; // @[Monitor.scala 536:22]
  reg [2:0] size_1; // @[Monitor.scala 537:22]
  reg [4:0] source_1; // @[Monitor.scala 538:22]
  reg [2:0] sink; // @[Monitor.scala 539:22]
  reg  denied; // @[Monitor.scala 540:22]
  wire  _T_1056 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_1057 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  wire  _T_1061 = io_in_d_bits_param == param_1; // @[Monitor.scala 543:29]
  wire  _T_1065 = io_in_d_bits_size == size_1; // @[Monitor.scala 544:29]
  wire  _T_1069 = io_in_d_bits_source == source_1; // @[Monitor.scala 545:29]
  wire  _T_1073 = io_in_d_bits_sink == sink; // @[Monitor.scala 546:29]
  wire  _T_1077 = io_in_d_bits_denied == denied; // @[Monitor.scala 547:29]
  wire  _c_first_T = io_in_c_ready & io_in_c_valid; // @[Decoupled.scala 52:35]
  wire [1:0] c_first_beats1_decode = is_aligned_mask_2[4:3]; // @[Edges.scala 219:59]
  wire  c_first_beats1_opdata = io_in_c_bits_opcode[0]; // @[Edges.scala 101:36]
  reg [1:0] c_first_counter; // @[Edges.scala 228:27]
  wire [1:0] c_first_counter1 = c_first_counter - 2'h1; // @[Edges.scala 229:28]
  wire  c_first = c_first_counter == 2'h0; // @[Edges.scala 230:25]
  reg [2:0] opcode_3; // @[Monitor.scala 512:22]
  reg [2:0] param_3; // @[Monitor.scala 513:22]
  reg [2:0] size_3; // @[Monitor.scala 514:22]
  reg [4:0] source_3; // @[Monitor.scala 515:22]
  reg [31:0] address_2; // @[Monitor.scala 516:22]
  wire  _T_1108 = io_in_c_valid & ~c_first; // @[Monitor.scala 517:19]
  wire  _T_1109 = io_in_c_bits_opcode == opcode_3; // @[Monitor.scala 518:32]
  wire  _T_1113 = io_in_c_bits_param == param_3; // @[Monitor.scala 519:32]
  wire  _T_1117 = io_in_c_bits_size == size_3; // @[Monitor.scala 520:32]
  wire  _T_1121 = io_in_c_bits_source == source_3; // @[Monitor.scala 521:32]
  wire  _T_1125 = io_in_c_bits_address == address_2; // @[Monitor.scala 522:32]
  reg [19:0] inflight; // @[Monitor.scala 611:27]
  reg [79:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [79:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg [1:0] a_first_counter_1; // @[Edges.scala 228:27]
  wire [1:0] a_first_counter1_1 = a_first_counter_1 - 2'h1; // @[Edges.scala 229:28]
  wire  a_first_1 = a_first_counter_1 == 2'h0; // @[Edges.scala 230:25]
  reg [1:0] d_first_counter_1; // @[Edges.scala 228:27]
  wire [1:0] d_first_counter1_1 = d_first_counter_1 - 2'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = d_first_counter_1 == 2'h0; // @[Edges.scala 230:25]
  wire [6:0] _GEN_72 = {io_in_d_bits_source, 2'h0}; // @[Monitor.scala 634:69]
  wire [7:0] _a_opcode_lookup_T = {{1'd0}, _GEN_72}; // @[Monitor.scala 634:69]
  wire [79:0] _a_opcode_lookup_T_1 = inflight_opcodes >> _a_opcode_lookup_T; // @[Monitor.scala 634:44]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [79:0] _GEN_74 = {{64'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 634:97]
  wire [79:0] _a_opcode_lookup_T_6 = _a_opcode_lookup_T_1 & _GEN_74; // @[Monitor.scala 634:97]
  wire [79:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[79:1]}; // @[Monitor.scala 634:152]
  wire [79:0] _a_size_lookup_T_1 = inflight_sizes >> _a_opcode_lookup_T; // @[Monitor.scala 638:40]
  wire [79:0] _a_size_lookup_T_6 = _a_size_lookup_T_1 & _GEN_74; // @[Monitor.scala 638:91]
  wire [79:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[79:1]}; // @[Monitor.scala 638:144]
  wire  _T_1134 = _a_first_T & a_first_1; // @[Monitor.scala 652:27]
  wire [31:0] _a_set_T = 32'h1 << io_in_a_bits_source; // @[OneHot.scala 57:35]
  wire [3:0] _a_opcodes_set_interm_T = {io_in_a_bits_opcode, 1'h0}; // @[Monitor.scala 654:53]
  wire [3:0] _a_opcodes_set_interm_T_1 = _a_opcodes_set_interm_T | 4'h1; // @[Monitor.scala 654:61]
  wire [3:0] _a_sizes_set_interm_T = {io_in_a_bits_size, 1'h0}; // @[Monitor.scala 655:51]
  wire [3:0] _a_sizes_set_interm_T_1 = _a_sizes_set_interm_T | 4'h1; // @[Monitor.scala 655:59]
  wire [6:0] _GEN_87 = {io_in_a_bits_source, 2'h0}; // @[Monitor.scala 656:79]
  wire [7:0] _a_opcodes_set_T = {{1'd0}, _GEN_87}; // @[Monitor.scala 656:79]
  wire [3:0] a_opcodes_set_interm = _a_first_T & a_first_1 ? _a_opcodes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 654:28]
  wire [258:0] _GEN_787 = {{255'd0}, a_opcodes_set_interm}; // @[Monitor.scala 656:54]
  wire [258:0] _a_opcodes_set_T_1 = _GEN_787 << _a_opcodes_set_T; // @[Monitor.scala 656:54]
  wire [3:0] a_sizes_set_interm = _a_first_T & a_first_1 ? _a_sizes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 655:28]
  wire [258:0] _GEN_788 = {{255'd0}, a_sizes_set_interm}; // @[Monitor.scala 657:52]
  wire [258:0] _a_sizes_set_T_1 = _GEN_788 << _a_opcodes_set_T; // @[Monitor.scala 657:52]
  wire [19:0] _T_1136 = inflight >> io_in_a_bits_source; // @[Monitor.scala 658:26]
  wire  _T_1138 = ~_T_1136[0]; // @[Monitor.scala 658:17]
  wire [31:0] _GEN_28 = _a_first_T & a_first_1 ? _a_set_T : 32'h0; // @[Monitor.scala 652:72 653:28]
  wire [258:0] _GEN_31 = _a_first_T & a_first_1 ? _a_opcodes_set_T_1 : 259'h0; // @[Monitor.scala 652:72 656:28]
  wire [258:0] _GEN_32 = _a_first_T & a_first_1 ? _a_sizes_set_T_1 : 259'h0; // @[Monitor.scala 652:72 657:28]
  wire  _T_1149 = ~_T_409; // @[Monitor.scala 675:75]
  wire [31:0] _d_clr_T = 32'h1 << io_in_d_bits_source; // @[OneHot.scala 57:35]
  wire [270:0] _GEN_789 = {{255'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [270:0] _d_opcodes_clr_T_5 = _GEN_789 << _a_opcode_lookup_T; // @[Monitor.scala 677:76]
  wire [31:0] _GEN_34 = _d_first_T & d_first_1 & ~_T_409 ? _d_clr_T : 32'h0; // @[Monitor.scala 675:91 676:21]
  wire [270:0] _GEN_35 = _d_first_T & d_first_1 & ~_T_409 ? _d_opcodes_clr_T_5 : 271'h0; // @[Monitor.scala 675:91 677:21]
  wire  _T_1151 = io_in_d_valid & d_first_1; // @[Monitor.scala 680:26]
  wire  _T_1154 = io_in_d_valid & d_first_1 & _T_1149; // @[Monitor.scala 680:71]
  wire  _same_cycle_resp_T_2 = io_in_a_bits_source == io_in_d_bits_source; // @[Monitor.scala 681:113]
  wire  same_cycle_resp = io_in_a_valid & a_first_1 & io_in_a_bits_source == io_in_d_bits_source; // @[Monitor.scala 681:88]
  wire [19:0] _T_1155 = inflight >> io_in_d_bits_source; // @[Monitor.scala 682:25]
  wire  _T_1157 = _T_1155[0] | same_cycle_resp; // @[Monitor.scala 682:49]
  wire [2:0] _GEN_39 = 3'h2 == io_in_a_bits_opcode ? 3'h1 : 3'h0; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_40 = 3'h3 == io_in_a_bits_opcode ? 3'h1 : _GEN_39; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_41 = 3'h4 == io_in_a_bits_opcode ? 3'h1 : _GEN_40; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_42 = 3'h5 == io_in_a_bits_opcode ? 3'h2 : _GEN_41; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_43 = 3'h6 == io_in_a_bits_opcode ? 3'h4 : _GEN_42; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_44 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_43; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_51 = 3'h6 == io_in_a_bits_opcode ? 3'h5 : _GEN_42; // @[Monitor.scala 686:{39,39}]
  wire [2:0] _GEN_52 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_51; // @[Monitor.scala 686:{39,39}]
  wire  _T_1162 = io_in_d_bits_opcode == _GEN_52; // @[Monitor.scala 686:39]
  wire  _T_1163 = io_in_d_bits_opcode == _GEN_44 | _T_1162; // @[Monitor.scala 685:77]
  wire  _T_1167 = io_in_a_bits_size == io_in_d_bits_size; // @[Monitor.scala 687:36]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_55 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_56 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_55; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_57 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_56; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_58 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_57; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_59 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_58; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_60 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_59; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_67 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_58; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_68 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_67; // @[Monitor.scala 690:{38,38}]
  wire  _T_1174 = io_in_d_bits_opcode == _GEN_68; // @[Monitor.scala 690:38]
  wire  _T_1175 = io_in_d_bits_opcode == _GEN_60 | _T_1174; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire [3:0] _GEN_91 = {{1'd0}, io_in_d_bits_size}; // @[Monitor.scala 691:36]
  wire  _T_1179 = _GEN_91 == a_size_lookup; // @[Monitor.scala 691:36]
  wire  _T_1189 = _T_1151 & a_first_1 & io_in_a_valid & _same_cycle_resp_T_2 & _T_1149; // @[Monitor.scala 694:116]
  wire  _T_1190 = ~io_in_d_ready; // @[Monitor.scala 695:15]
  wire  _T_1191 = ~io_in_d_ready | io_in_a_ready; // @[Monitor.scala 695:32]
  wire [19:0] a_set = _GEN_28[19:0];
  wire [19:0] _inflight_T = inflight | a_set; // @[Monitor.scala 702:27]
  wire [19:0] d_clr = _GEN_34[19:0];
  wire [19:0] _inflight_T_1 = ~d_clr; // @[Monitor.scala 702:38]
  wire [19:0] _inflight_T_2 = _inflight_T & _inflight_T_1; // @[Monitor.scala 702:36]
  wire [79:0] a_opcodes_set = _GEN_31[79:0];
  wire [79:0] _inflight_opcodes_T = inflight_opcodes | a_opcodes_set; // @[Monitor.scala 703:43]
  wire [79:0] d_opcodes_clr = _GEN_35[79:0];
  wire [79:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [79:0] _inflight_opcodes_T_2 = _inflight_opcodes_T & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [79:0] a_sizes_set = _GEN_32[79:0];
  wire [79:0] _inflight_sizes_T = inflight_sizes | a_sizes_set; // @[Monitor.scala 704:39]
  wire [79:0] _inflight_sizes_T_2 = _inflight_sizes_T & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [31:0] watchdog; // @[Monitor.scala 706:27]
  wire  _T_1200 = ~(|inflight) | plusarg_reader_out == 32'h0 | watchdog < plusarg_reader_out; // @[Monitor.scala 709:47]
  wire [31:0] _watchdog_T_1 = watchdog + 32'h1; // @[Monitor.scala 711:26]
  reg [19:0] inflight_1; // @[Monitor.scala 723:35]
  reg [79:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg [1:0] c_first_counter_1; // @[Edges.scala 228:27]
  wire [1:0] c_first_counter1_1 = c_first_counter_1 - 2'h1; // @[Edges.scala 229:28]
  wire  c_first_1 = c_first_counter_1 == 2'h0; // @[Edges.scala 230:25]
  reg [1:0] d_first_counter_2; // @[Edges.scala 228:27]
  wire [1:0] d_first_counter1_2 = d_first_counter_2 - 2'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = d_first_counter_2 == 2'h0; // @[Edges.scala 230:25]
  wire [79:0] _c_size_lookup_T_1 = inflight_sizes_1 >> _a_opcode_lookup_T; // @[Monitor.scala 747:42]
  wire [79:0] _c_size_lookup_T_6 = _c_size_lookup_T_1 & _GEN_74; // @[Monitor.scala 747:93]
  wire [79:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[79:1]}; // @[Monitor.scala 747:146]
  wire  _T_1216 = io_in_c_bits_opcode[2] & io_in_c_bits_opcode[1]; // @[Edges.scala 67:40]
  wire  _T_1217 = _c_first_T & c_first_1 & _T_1216; // @[Monitor.scala 760:38]
  wire [31:0] _c_set_T = 32'h1 << io_in_c_bits_source; // @[OneHot.scala 57:35]
  wire [3:0] _c_sizes_set_interm_T = {io_in_c_bits_size, 1'h0}; // @[Monitor.scala 763:51]
  wire [3:0] _c_sizes_set_interm_T_1 = _c_sizes_set_interm_T | 4'h1; // @[Monitor.scala 763:59]
  wire [6:0] _GEN_95 = {io_in_c_bits_source, 2'h0}; // @[Monitor.scala 765:77]
  wire [7:0] _c_sizes_set_T = {{1'd0}, _GEN_95}; // @[Monitor.scala 765:77]
  wire [3:0] c_sizes_set_interm = _c_first_T & c_first_1 & _T_1216 ? _c_sizes_set_interm_T_1 : 4'h0; // @[Monitor.scala 760:72 763:28]
  wire [258:0] _GEN_791 = {{255'd0}, c_sizes_set_interm}; // @[Monitor.scala 765:52]
  wire [258:0] _c_sizes_set_T_1 = _GEN_791 << _c_sizes_set_T; // @[Monitor.scala 765:52]
  wire [19:0] _T_1218 = inflight_1 >> io_in_c_bits_source; // @[Monitor.scala 766:26]
  wire  _T_1220 = ~_T_1218[0]; // @[Monitor.scala 766:17]
  wire [31:0] _GEN_73 = _c_first_T & c_first_1 & _T_1216 ? _c_set_T : 32'h0; // @[Monitor.scala 760:72 761:28]
  wire [258:0] _GEN_77 = _c_first_T & c_first_1 & _T_1216 ? _c_sizes_set_T_1 : 259'h0; // @[Monitor.scala 760:72 765:28]
  wire [31:0] _GEN_79 = _d_first_T & d_first_2 & _T_409 ? _d_clr_T : 32'h0; // @[Monitor.scala 783:90 784:21]
  wire [270:0] _GEN_81 = _d_first_T & d_first_2 & _T_409 ? _d_opcodes_clr_T_5 : 271'h0; // @[Monitor.scala 783:90 786:21]
  wire  _T_1231 = io_in_d_valid & d_first_2; // @[Monitor.scala 789:26]
  wire  _T_1233 = io_in_d_valid & d_first_2 & _T_409; // @[Monitor.scala 789:71]
  wire  _same_cycle_resp_T_8 = io_in_c_bits_source == io_in_d_bits_source; // @[Monitor.scala 790:113]
  wire  same_cycle_resp_1 = io_in_c_valid & c_first_1 & _T_1216 & io_in_c_bits_source == io_in_d_bits_source; // @[Monitor.scala 790:88]
  wire [19:0] _T_1234 = inflight_1 >> io_in_d_bits_source; // @[Monitor.scala 791:25]
  wire  _T_1236 = _T_1234[0] | same_cycle_resp_1; // @[Monitor.scala 791:49]
  wire  _T_1240 = io_in_d_bits_size == io_in_c_bits_size; // @[Monitor.scala 793:36]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_1244 = _GEN_91 == c_size_lookup; // @[Monitor.scala 795:36]
  wire  _T_1253 = _T_1231 & c_first_1 & io_in_c_valid & _same_cycle_resp_T_8 & _T_409; // @[Monitor.scala 799:116]
  wire  _T_1255 = _T_1190 | io_in_c_ready; // @[Monitor.scala 800:32]
  wire [19:0] c_set = _GEN_73[19:0];
  wire [19:0] _inflight_T_3 = inflight_1 | c_set; // @[Monitor.scala 809:35]
  wire [19:0] d_clr_1 = _GEN_79[19:0];
  wire [19:0] _inflight_T_4 = ~d_clr_1; // @[Monitor.scala 809:46]
  wire [19:0] _inflight_T_5 = _inflight_T_3 & _inflight_T_4; // @[Monitor.scala 809:44]
  wire [79:0] c_sizes_set = _GEN_77[79:0];
  wire [79:0] _inflight_sizes_T_3 = inflight_sizes_1 | c_sizes_set; // @[Monitor.scala 811:41]
  wire [79:0] d_sizes_clr_1 = _GEN_81[79:0];
  wire [79:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [79:0] _inflight_sizes_T_5 = _inflight_sizes_T_3 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  reg [31:0] watchdog_1; // @[Monitor.scala 813:27]
  wire  _T_1264 = ~(|inflight_1) | plusarg_reader_1_out == 32'h0 | watchdog_1 < plusarg_reader_1_out; // @[Monitor.scala 816:47]
  wire [31:0] _watchdog_T_3 = watchdog_1 + 32'h1; // @[Monitor.scala 818:26]
  reg [7:0] inflight_2; // @[Monitor.scala 823:27]
  reg [1:0] d_first_counter_3; // @[Edges.scala 228:27]
  wire [1:0] d_first_counter1_3 = d_first_counter_3 - 2'h1; // @[Edges.scala 229:28]
  wire  d_first_3 = d_first_counter_3 == 2'h0; // @[Edges.scala 230:25]
  wire  _T_1276 = io_in_d_bits_opcode[2] & ~io_in_d_bits_opcode[1]; // @[Edges.scala 70:40]
  wire  _T_1277 = _d_first_T & d_first_3 & _T_1276; // @[Monitor.scala 829:38]
  wire [7:0] _d_set_T = 8'h1 << io_in_d_bits_sink; // @[OneHot.scala 57:35]
  wire [7:0] _T_1278 = inflight_2 >> io_in_d_bits_sink; // @[Monitor.scala 831:23]
  wire  _T_1280 = ~_T_1278[0]; // @[Monitor.scala 831:14]
  wire [7:0] d_set = _d_first_T & d_first_3 & _T_1276 ? _d_set_T : 8'h0; // @[Monitor.scala 829:72 830:13]
  wire [7:0] _e_clr_T = 8'h1 << io_in_e_bits_sink; // @[OneHot.scala 57:35]
  wire [7:0] _T_1287 = d_set | inflight_2; // @[Monitor.scala 837:24]
  wire [7:0] _T_1288 = _T_1287 >> io_in_e_bits_sink; // @[Monitor.scala 837:35]
  wire [7:0] e_clr = io_in_e_valid ? _e_clr_T : 8'h0; // @[Monitor.scala 835:73 836:13]
  wire [7:0] _inflight_T_6 = inflight_2 | d_set; // @[Monitor.scala 842:27]
  wire [7:0] _inflight_T_7 = ~e_clr; // @[Monitor.scala 842:38]
  wire [7:0] _inflight_T_8 = _inflight_T_6 & _inflight_T_7; // @[Monitor.scala 842:36]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 2'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        if (a_first_beats1_opdata) begin // @[Edges.scala 220:14]
          a_first_counter <= a_first_beats1_decode;
        end else begin
          a_first_counter <= 2'h0;
        end
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      opcode <= io_in_a_bits_opcode; // @[Monitor.scala 397:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      param <= io_in_a_bits_param; // @[Monitor.scala 398:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      size <= io_in_a_bits_size; // @[Monitor.scala 399:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      source <= io_in_a_bits_source; // @[Monitor.scala 400:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      address <= io_in_a_bits_address; // @[Monitor.scala 401:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 2'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        if (d_first_beats1_opdata) begin // @[Edges.scala 220:14]
          d_first_counter <= d_first_beats1_decode;
        end else begin
          d_first_counter <= 2'h0;
        end
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      param_1 <= io_in_d_bits_param; // @[Monitor.scala 551:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      size_1 <= io_in_d_bits_size; // @[Monitor.scala 552:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      source_1 <= io_in_d_bits_source; // @[Monitor.scala 553:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      sink <= io_in_d_bits_sink; // @[Monitor.scala 554:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      denied <= io_in_d_bits_denied; // @[Monitor.scala 555:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      c_first_counter <= 2'h0; // @[Edges.scala 228:27]
    end else if (_c_first_T) begin // @[Edges.scala 234:17]
      if (c_first) begin // @[Edges.scala 235:21]
        if (c_first_beats1_opdata) begin // @[Edges.scala 220:14]
          c_first_counter <= c_first_beats1_decode;
        end else begin
          c_first_counter <= 2'h0;
        end
      end else begin
        c_first_counter <= c_first_counter1;
      end
    end
    if (_c_first_T & c_first) begin // @[Monitor.scala 524:32]
      opcode_3 <= io_in_c_bits_opcode; // @[Monitor.scala 525:15]
    end
    if (_c_first_T & c_first) begin // @[Monitor.scala 524:32]
      param_3 <= io_in_c_bits_param; // @[Monitor.scala 526:15]
    end
    if (_c_first_T & c_first) begin // @[Monitor.scala 524:32]
      size_3 <= io_in_c_bits_size; // @[Monitor.scala 527:15]
    end
    if (_c_first_T & c_first) begin // @[Monitor.scala 524:32]
      source_3 <= io_in_c_bits_source; // @[Monitor.scala 528:15]
    end
    if (_c_first_T & c_first) begin // @[Monitor.scala 524:32]
      address_2 <= io_in_c_bits_address; // @[Monitor.scala 529:15]
    end
    if (reset) begin // @[Monitor.scala 611:27]
      inflight <= 20'h0; // @[Monitor.scala 611:27]
    end else begin
      inflight <= _inflight_T_2; // @[Monitor.scala 702:14]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 80'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 80'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter_1 <= 2'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first_1) begin // @[Edges.scala 235:21]
        if (a_first_beats1_opdata) begin // @[Edges.scala 220:14]
          a_first_counter_1 <= a_first_beats1_decode;
        end else begin
          a_first_counter_1 <= 2'h0;
        end
      end else begin
        a_first_counter_1 <= a_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 2'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        if (d_first_beats1_opdata) begin // @[Edges.scala 220:14]
          d_first_counter_1 <= d_first_beats1_decode;
        end else begin
          d_first_counter_1 <= 2'h0;
        end
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 706:27]
      watchdog <= 32'h0; // @[Monitor.scala 706:27]
    end else if (_a_first_T | _d_first_T) begin // @[Monitor.scala 712:47]
      watchdog <= 32'h0; // @[Monitor.scala 712:58]
    end else begin
      watchdog <= _watchdog_T_1; // @[Monitor.scala 711:14]
    end
    if (reset) begin // @[Monitor.scala 723:35]
      inflight_1 <= 20'h0; // @[Monitor.scala 723:35]
    end else begin
      inflight_1 <= _inflight_T_5; // @[Monitor.scala 809:22]
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 80'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      c_first_counter_1 <= 2'h0; // @[Edges.scala 228:27]
    end else if (_c_first_T) begin // @[Edges.scala 234:17]
      if (c_first_1) begin // @[Edges.scala 235:21]
        if (c_first_beats1_opdata) begin // @[Edges.scala 220:14]
          c_first_counter_1 <= c_first_beats1_decode;
        end else begin
          c_first_counter_1 <= 2'h0;
        end
      end else begin
        c_first_counter_1 <= c_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 2'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        if (d_first_beats1_opdata) begin // @[Edges.scala 220:14]
          d_first_counter_2 <= d_first_beats1_decode;
        end else begin
          d_first_counter_2 <= 2'h0;
        end
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    if (reset) begin // @[Monitor.scala 813:27]
      watchdog_1 <= 32'h0; // @[Monitor.scala 813:27]
    end else if (_c_first_T | _d_first_T) begin // @[Monitor.scala 819:47]
      watchdog_1 <= 32'h0; // @[Monitor.scala 819:58]
    end else begin
      watchdog_1 <= _watchdog_T_3; // @[Monitor.scala 818:14]
    end
    if (reset) begin // @[Monitor.scala 823:27]
      inflight_2 <= 8'h0; // @[Monitor.scala 823:27]
    end else begin
      inflight_2 <= _inflight_T_8; // @[Monitor.scala 842:14]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_3 <= 2'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_3) begin // @[Edges.scala 235:21]
        if (d_first_beats1_opdata) begin // @[Edges.scala 220:14]
          d_first_counter_3 <= d_first_beats1_decode;
        end else begin
          d_first_counter_3 <= 2'h0;
        end
      end else begin
        d_first_counter_3 <= d_first_counter1_3;
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_T_43) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_43 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_T_59) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock from a client which does not support Probe (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_59 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock carries invalid source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_mask_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock smaller than a beat (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_mask_T & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock address not aligned to size (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_T_73) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock carries invalid grow param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_73 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_T_78) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock contains invalid mask (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_78 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_T_82) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock is corrupt (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_82 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_86 & ~reset & ~_T_43) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_43 & (io_in_a_valid & _T_86 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_86 & ~reset & ~_T_59) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm from a client which does not support Probe (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_59 & (io_in_a_valid & _T_86 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_86 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm carries invalid source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_86 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_86 & ~reset & ~_mask_T) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm smaller than a beat (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_mask_T & (io_in_a_valid & _T_86 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_86 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm address not aligned to size (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_86 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_86 & ~reset & ~_T_73) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm carries invalid grow param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_73 & (io_in_a_valid & _T_86 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_86 & ~reset & ~_T_143) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm requests NtoB (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_143 & (io_in_a_valid & _T_86 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_86 & ~reset & ~_T_78) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm contains invalid mask (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_78 & (io_in_a_valid & _T_86 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_86 & ~reset & ~_T_82) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm is corrupt (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_82 & (io_in_a_valid & _T_86 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_156 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which master claims it can't emit (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_156 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_156 & ~reset & ~_T_41) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which slave claims it can't support (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_41 & (io_in_a_valid & _T_156 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_156 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get carries invalid source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_156 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_156 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get address not aligned to size (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_156 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_156 & ~reset & ~_T_191) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get carries invalid param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_191 & (io_in_a_valid & _T_156 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_156 & ~reset & ~_T_195) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get contains invalid mask (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_195 & (io_in_a_valid & _T_156 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_156 & ~reset & ~_T_82) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get is corrupt (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_82 & (io_in_a_valid & _T_156 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_203 & ~reset & ~_T_43) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutFull type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_43 & (io_in_a_valid & _T_203 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_203 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull carries invalid source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_203 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_203 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull address not aligned to size (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_203 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_203 & ~reset & ~_T_191) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull carries invalid param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_191 & (io_in_a_valid & _T_203 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_203 & ~reset & ~_T_195) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull contains invalid mask (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_195 & (io_in_a_valid & _T_203 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_244 & ~reset & ~_T_43) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutPartial type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_43 & (io_in_a_valid & _T_244 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_244 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial carries invalid source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_244 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_244 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial address not aligned to size (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_244 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_244 & ~reset & ~_T_191) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial carries invalid param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_191 & (io_in_a_valid & _T_244 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_244 & ~reset & ~_T_283) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial contains invalid mask (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_283 & (io_in_a_valid & _T_244 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_287 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Arithmetic type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_287 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_287 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic carries invalid source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_287 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_287 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic address not aligned to size (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_287 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_287 & ~reset & ~_T_317) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic carries invalid opcode param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_317 & (io_in_a_valid & _T_287 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_287 & ~reset & ~_T_195) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic contains invalid mask (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_195 & (io_in_a_valid & _T_287 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_325 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Logical type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_325 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_325 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical carries invalid source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_325 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_325 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical address not aligned to size (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_325 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_325 & ~reset & ~_T_355) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical carries invalid opcode param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_355 & (io_in_a_valid & _T_325 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_325 & ~reset & ~_T_195) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical contains invalid mask (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_195 & (io_in_a_valid & _T_325 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_363 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Hint type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_363 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_363 & ~reset & _T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint carries invalid source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_10 & (io_in_a_valid & _T_363 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_363 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint address not aligned to size (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_363 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_363 & ~reset & ~_T_393) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint carries invalid opcode param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_393 & (io_in_a_valid & _T_363 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_363 & ~reset & ~_T_195) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint contains invalid mask (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_195 & (io_in_a_valid & _T_363 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_363 & ~reset & ~_T_82) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint is corrupt (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_82 & (io_in_a_valid & _T_363 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_405) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_405 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_409 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck carries invalid source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_409 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_409 & _T_2 & ~_T_413) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck smaller than a beat (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_413 & (io_in_d_valid & _T_409 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_409 & _T_2 & ~_T_417) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseeAck carries invalid param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_417 & (io_in_d_valid & _T_409 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_409 & _T_2 & ~_T_421) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is corrupt (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_421 & (io_in_d_valid & _T_409 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_409 & _T_2 & ~_T_425) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is denied (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_425 & (io_in_d_valid & _T_409 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_429 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_429 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_429 & _T_2 & ~_T_413) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant smaller than a beat (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_413 & (io_in_d_valid & _T_429 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_429 & _T_2 & ~_T_440) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid cap param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_440 & (io_in_d_valid & _T_429 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_429 & _T_2 & ~_T_444) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries toN param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_444 & (io_in_d_valid & _T_429 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_429 & _T_2 & ~_T_421) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant is corrupt (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_421 & (io_in_d_valid & _T_429 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_429 & _T_2 & ~_T_425) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant is denied (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_425 & (io_in_d_valid & _T_429 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_457 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_457 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_457 & _T_2 & ~_T_413) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData smaller than a beat (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_413 & (io_in_d_valid & _T_457 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_457 & _T_2 & ~_T_440) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid cap param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_440 & (io_in_d_valid & _T_457 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_457 & _T_2 & ~_T_444) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries toN param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_444 & (io_in_d_valid & _T_457 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_457 & _T_2 & ~_T_477) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData is denied but not corrupt (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_477 & (io_in_d_valid & _T_457 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_457 & _T_2 & ~_T_425) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData is denied (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_425 & (io_in_d_valid & _T_457 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_486 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck carries invalid source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_486 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_486 & _T_2 & ~_T_417) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck carries invalid param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_417 & (io_in_d_valid & _T_486 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_486 & _T_2 & ~_T_421) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck is corrupt (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_421 & (io_in_d_valid & _T_486 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_486 & _T_2 & ~_T_425) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck is denied (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_425 & (io_in_d_valid & _T_486 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_503 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData carries invalid source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_503 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_503 & _T_2 & ~_T_417) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData carries invalid param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_417 & (io_in_d_valid & _T_503 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_503 & _T_2 & ~_T_477) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData is denied but not corrupt (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_477 & (io_in_d_valid & _T_503 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_503 & _T_2 & ~_T_425) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData is denied (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_425 & (io_in_d_valid & _T_503 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_521 & _T_2 & ~_source_ok_T_10) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck carries invalid source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_10 & (io_in_d_valid & _T_521 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_521 & _T_2 & ~_T_417) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck carries invalid param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_417 & (io_in_d_valid & _T_521 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_521 & _T_2 & ~_T_421) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck is corrupt (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_421 & (io_in_d_valid & _T_521 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_521 & _T_2 & ~_T_425) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck is denied (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_425 & (io_in_d_valid & _T_521 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_820 & ~reset & ~_address_ok_T_9) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAck carries unmanaged address (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_9 & (io_in_c_valid & _T_820 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_820 & ~reset & _T_810) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAck carries invalid source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_810 & (io_in_c_valid & _T_820 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_820 & ~reset & ~_T_827) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAck smaller than a beat (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_827 & (io_in_c_valid & _T_820 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_820 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAck address not aligned to size (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_820 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_820 & ~reset & ~_T_834) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAck carries invalid report param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_834 & (io_in_c_valid & _T_820 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_820 & ~reset & ~_T_838) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAck is corrupt (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_838 & (io_in_c_valid & _T_820 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_842 & ~reset & ~_address_ok_T_9) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAckData carries unmanaged address (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_9 & (io_in_c_valid & _T_842 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_842 & ~reset & _T_810) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAckData carries invalid source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_810 & (io_in_c_valid & _T_842 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_842 & ~reset & ~_T_827) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAckData smaller than a beat (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_827 & (io_in_c_valid & _T_842 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_842 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAckData address not aligned to size (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_842 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_842 & ~reset & ~_T_834) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAckData carries invalid report param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_834 & (io_in_c_valid & _T_842 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_860 & ~reset & ~_T_883) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel carries Release type unsupported by manager (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_883 & (io_in_c_valid & _T_860 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_860 & ~reset & ~_T_899) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel carries Release from a client which does not support Probe (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_899 & (io_in_c_valid & _T_860 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_860 & ~reset & _T_810) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel Release carries invalid source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_810 & (io_in_c_valid & _T_860 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_860 & ~reset & ~_T_827) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel Release smaller than a beat (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_827 & (io_in_c_valid & _T_860 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_860 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel Release address not aligned to size (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_860 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_860 & ~reset & ~_T_834) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel Release carries invalid report param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_834 & (io_in_c_valid & _T_860 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_860 & ~reset & ~_T_838) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel Release is corrupt (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_838 & (io_in_c_valid & _T_860 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_921 & ~reset & ~_T_883) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel carries ReleaseData type unsupported by manager (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_883 & (io_in_c_valid & _T_921 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_921 & ~reset & ~_T_899) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel carries Release from a client which does not support Probe (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_899 & (io_in_c_valid & _T_921 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_921 & ~reset & _T_810) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ReleaseData carries invalid source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_810 & (io_in_c_valid & _T_921 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_921 & ~reset & ~_T_827) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ReleaseData smaller than a beat (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_827 & (io_in_c_valid & _T_921 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_921 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ReleaseData address not aligned to size (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_921 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_921 & ~reset & ~_T_834) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ReleaseData carries invalid report param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_834 & (io_in_c_valid & _T_921 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_978 & ~reset & ~_address_ok_T_9) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAck carries unmanaged address (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_9 & (io_in_c_valid & _T_978 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_978 & ~reset & _T_810) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAck carries invalid source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_810 & (io_in_c_valid & _T_978 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_978 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAck address not aligned to size (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_978 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_978 & ~reset & ~_T_988) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAck carries invalid param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_988 & (io_in_c_valid & _T_978 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_978 & ~reset & ~_T_838) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAck is corrupt (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_838 & (io_in_c_valid & _T_978 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_996 & ~reset & ~_address_ok_T_9) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAckData carries unmanaged address (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_9 & (io_in_c_valid & _T_996 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_996 & ~reset & _T_810) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAckData carries invalid source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_810 & (io_in_c_valid & _T_996 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_996 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAckData address not aligned to size (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_996 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_996 & ~reset & ~_T_988) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAckData carries invalid param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_988 & (io_in_c_valid & _T_996 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1010 & ~reset & ~_address_ok_T_9) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel HintAck carries unmanaged address (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_9 & (io_in_c_valid & _T_1010 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1010 & ~reset & _T_810) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel HintAck carries invalid source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_810 & (io_in_c_valid & _T_1010 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1010 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel HintAck address not aligned to size (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_1010 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1010 & ~reset & ~_T_988) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel HintAck carries invalid param (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_988 & (io_in_c_valid & _T_1010 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_1010 & ~reset & ~_T_838) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel HintAck is corrupt (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_838 & (io_in_c_valid & _T_1010 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1032 & ~reset & ~_T_1033) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel opcode changed within multibeat operation (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1033 & (_T_1032 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1032 & ~reset & ~_T_1037) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel param changed within multibeat operation (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1037 & (_T_1032 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1032 & ~reset & ~_T_1041) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel size changed within multibeat operation (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1041 & (_T_1032 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1032 & ~reset & ~_T_1045) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel source changed within multibeat operation (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1045 & (_T_1032 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1032 & ~reset & ~_T_1049) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel address changed with multibeat operation (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1049 & (_T_1032 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1056 & _T_2 & ~_T_1057) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1057 & (_T_1056 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1056 & _T_2 & ~_T_1061) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel param changed within multibeat operation (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1061 & (_T_1056 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1056 & _T_2 & ~_T_1065) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel size changed within multibeat operation (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1065 & (_T_1056 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1056 & _T_2 & ~_T_1069) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel source changed within multibeat operation (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1069 & (_T_1056 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1056 & _T_2 & ~_T_1073) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel sink changed with multibeat operation (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1073 & (_T_1056 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1056 & _T_2 & ~_T_1077) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel denied changed with multibeat operation (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1077 & (_T_1056 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1108 & ~reset & ~_T_1109) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel opcode changed within multibeat operation (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1109 & (_T_1108 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1108 & ~reset & ~_T_1113) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel param changed within multibeat operation (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1113 & (_T_1108 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1108 & ~reset & ~_T_1117) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel size changed within multibeat operation (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1117 & (_T_1108 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1108 & ~reset & ~_T_1121) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel source changed within multibeat operation (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1121 & (_T_1108 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1108 & ~reset & ~_T_1125) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel address changed with multibeat operation (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1125 & (_T_1108 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1134 & ~reset & ~_T_1138) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel re-used a source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1138 & (_T_1134 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1154 & _T_2 & ~_T_1157) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1157 & (_T_1154 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1154 & same_cycle_resp & _T_2 & ~_T_1163) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1163 & (_T_1154 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1154 & same_cycle_resp & _T_2 & ~_T_1167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1167 & (_T_1154 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1154 & ~same_cycle_resp & _T_2 & ~_T_1175) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1175 & (_T_1154 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1154 & ~same_cycle_resp & _T_2 & ~_T_1179) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1179 & (_T_1154 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1189 & _T_2 & ~_T_1191) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1191 & (_T_1189 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_1200) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1200 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1217 & ~reset & ~_T_1220) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel re-used a source ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1220 & (_T_1217 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1233 & _T_2 & ~_T_1236) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1236 & (_T_1233 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1233 & same_cycle_resp_1 & _T_2 & ~_T_1240) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1240 & (_T_1233 & same_cycle_resp_1 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1233 & ~same_cycle_resp_1 & _T_2 & ~_T_1244) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1244 & (_T_1233 & ~same_cycle_resp_1 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1253 & _T_2 & ~_T_1255) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1255 & (_T_1253 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_1264) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1264 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1277 & _T_2 & ~_T_1280) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel re-used a sink ID (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1280 & (_T_1277 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_e_valid & ~reset & ~_T_1288[0]) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'E' channel acknowledged for nothing inflight (connected at Rift2Link.scala:72:56)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1288[0] & (io_in_e_valid & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[1:0];
  _RAND_1 = {1{`RANDOM}};
  opcode = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  param = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  size = _RAND_3[2:0];
  _RAND_4 = {1{`RANDOM}};
  source = _RAND_4[4:0];
  _RAND_5 = {1{`RANDOM}};
  address = _RAND_5[31:0];
  _RAND_6 = {1{`RANDOM}};
  d_first_counter = _RAND_6[1:0];
  _RAND_7 = {1{`RANDOM}};
  opcode_1 = _RAND_7[2:0];
  _RAND_8 = {1{`RANDOM}};
  param_1 = _RAND_8[1:0];
  _RAND_9 = {1{`RANDOM}};
  size_1 = _RAND_9[2:0];
  _RAND_10 = {1{`RANDOM}};
  source_1 = _RAND_10[4:0];
  _RAND_11 = {1{`RANDOM}};
  sink = _RAND_11[2:0];
  _RAND_12 = {1{`RANDOM}};
  denied = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  c_first_counter = _RAND_13[1:0];
  _RAND_14 = {1{`RANDOM}};
  opcode_3 = _RAND_14[2:0];
  _RAND_15 = {1{`RANDOM}};
  param_3 = _RAND_15[2:0];
  _RAND_16 = {1{`RANDOM}};
  size_3 = _RAND_16[2:0];
  _RAND_17 = {1{`RANDOM}};
  source_3 = _RAND_17[4:0];
  _RAND_18 = {1{`RANDOM}};
  address_2 = _RAND_18[31:0];
  _RAND_19 = {1{`RANDOM}};
  inflight = _RAND_19[19:0];
  _RAND_20 = {3{`RANDOM}};
  inflight_opcodes = _RAND_20[79:0];
  _RAND_21 = {3{`RANDOM}};
  inflight_sizes = _RAND_21[79:0];
  _RAND_22 = {1{`RANDOM}};
  a_first_counter_1 = _RAND_22[1:0];
  _RAND_23 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_23[1:0];
  _RAND_24 = {1{`RANDOM}};
  watchdog = _RAND_24[31:0];
  _RAND_25 = {1{`RANDOM}};
  inflight_1 = _RAND_25[19:0];
  _RAND_26 = {3{`RANDOM}};
  inflight_sizes_1 = _RAND_26[79:0];
  _RAND_27 = {1{`RANDOM}};
  c_first_counter_1 = _RAND_27[1:0];
  _RAND_28 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_28[1:0];
  _RAND_29 = {1{`RANDOM}};
  watchdog_1 = _RAND_29[31:0];
  _RAND_30 = {1{`RANDOM}};
  inflight_2 = _RAND_30[7:0];
  _RAND_31 = {1{`RANDOM}};
  d_first_counter_3 = _RAND_31[1:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module IDPool(
  input        clock,
  input        reset,
  input        io_free_valid,
  input  [2:0] io_free_bits,
  input        io_alloc_ready,
  output       io_alloc_valid,
  output [2:0] io_alloc_bits
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
`endif // RANDOMIZE_REG_INIT
  reg [7:0] bitmap; // @[IDPool.scala 18:23]
  reg [2:0] select; // @[IDPool.scala 19:23]
  reg  valid; // @[IDPool.scala 20:23]
  wire [7:0] _taken_T = 8'h1 << io_alloc_bits; // @[OneHot.scala 64:12]
  wire [7:0] taken = io_alloc_ready ? _taken_T : 8'h0; // @[IDPool.scala 25:19]
  wire [7:0] _given_T = 8'h1 << io_free_bits; // @[OneHot.scala 64:12]
  wire [7:0] given = io_free_valid ? _given_T : 8'h0; // @[IDPool.scala 26:19]
  wire [7:0] _bitmap1_T = ~taken; // @[IDPool.scala 27:27]
  wire [7:0] _bitmap1_T_1 = bitmap & _bitmap1_T; // @[IDPool.scala 27:25]
  wire [7:0] bitmap1 = _bitmap1_T_1 | given; // @[IDPool.scala 27:35]
  wire [2:0] _select1_T_8 = bitmap1[6] ? 3'h6 : 3'h7; // @[Mux.scala 47:70]
  wire [2:0] _select1_T_9 = bitmap1[5] ? 3'h5 : _select1_T_8; // @[Mux.scala 47:70]
  wire [2:0] _select1_T_10 = bitmap1[4] ? 3'h4 : _select1_T_9; // @[Mux.scala 47:70]
  wire [2:0] _select1_T_11 = bitmap1[3] ? 3'h3 : _select1_T_10; // @[Mux.scala 47:70]
  wire [2:0] _select1_T_12 = bitmap1[2] ? 3'h2 : _select1_T_11; // @[Mux.scala 47:70]
  wire  _valid1_T = |bitmap; // @[IDPool.scala 29:28]
  wire [1:0] _valid1_T_9 = bitmap[0] + bitmap[1]; // @[Bitwise.scala 51:90]
  wire [1:0] _valid1_T_11 = bitmap[2] + bitmap[3]; // @[Bitwise.scala 51:90]
  wire [2:0] _valid1_T_13 = _valid1_T_9 + _valid1_T_11; // @[Bitwise.scala 51:90]
  wire [1:0] _valid1_T_15 = bitmap[4] + bitmap[5]; // @[Bitwise.scala 51:90]
  wire [1:0] _valid1_T_17 = bitmap[6] + bitmap[7]; // @[Bitwise.scala 51:90]
  wire [2:0] _valid1_T_19 = _valid1_T_15 + _valid1_T_17; // @[Bitwise.scala 51:90]
  wire [3:0] _valid1_T_21 = _valid1_T_13 + _valid1_T_19; // @[Bitwise.scala 51:90]
  wire  _valid1_T_26 = |bitmap & ~(_valid1_T_21 == 4'h1 & io_alloc_ready); // @[IDPool.scala 29:32]
  wire  valid1 = _valid1_T_26 | io_free_valid; // @[IDPool.scala 30:17]
  wire  _GEN_1 = io_alloc_ready | io_free_valid ? valid1 : valid; // @[IDPool.scala 33:42 35:12 20:23]
  wire  _T_2 = ~io_alloc_valid & io_free_valid; // @[IDPool.scala 39:44]
  wire [7:0] _T_7 = _bitmap1_T_1 >> io_free_bits; // @[IDPool.scala 44:47]
  wire  _T_12 = ~reset; // @[IDPool.scala 44:10]
  reg  REG; // @[IDPool.scala 51:36]
  wire  _T_22 = io_alloc_valid & REG; // @[IDPool.scala 51:26]
  wire [2:0] _T_31 = bitmap[6] ? 3'h6 : 3'h7; // @[Mux.scala 47:70]
  wire [2:0] _T_32 = bitmap[5] ? 3'h5 : _T_31; // @[Mux.scala 47:70]
  wire [2:0] _T_33 = bitmap[4] ? 3'h4 : _T_32; // @[Mux.scala 47:70]
  wire [2:0] _T_34 = bitmap[3] ? 3'h3 : _T_33; // @[Mux.scala 47:70]
  wire [2:0] _T_35 = bitmap[2] ? 3'h2 : _T_34; // @[Mux.scala 47:70]
  wire [2:0] _T_36 = bitmap[1] ? 3'h1 : _T_35; // @[Mux.scala 47:70]
  wire [2:0] _T_37 = bitmap[0] ? 3'h0 : _T_36; // @[Mux.scala 47:70]
  assign io_alloc_valid = valid; // @[IDPool.scala 22:18]
  assign io_alloc_bits = select; // @[IDPool.scala 23:18]
  always @(posedge clock) begin
    if (reset) begin // @[IDPool.scala 18:23]
      bitmap <= 8'hff; // @[IDPool.scala 18:23]
    end else if (io_alloc_ready | io_free_valid) begin // @[IDPool.scala 33:42]
      bitmap <= bitmap1; // @[IDPool.scala 34:12]
    end
    if (reset) begin // @[IDPool.scala 19:23]
      select <= 3'h0; // @[IDPool.scala 19:23]
    end else if (io_alloc_ready | ~io_alloc_valid & io_free_valid) begin // @[IDPool.scala 39:63]
      if (bitmap1[0]) begin // @[Mux.scala 47:70]
        select <= 3'h0;
      end else if (bitmap1[1]) begin // @[Mux.scala 47:70]
        select <= 3'h1;
      end else begin
        select <= _select1_T_12;
      end
    end
    valid <= reset | _GEN_1; // @[IDPool.scala 20:{23,23}]
    REG <= io_alloc_ready | _T_2; // @[IDPool.scala 51:52]
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~io_free_valid | ~_T_7[0])) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at IDPool.scala:44 assert (!io.free.valid || !(bitmap & ~taken)(io.free.bits))\n"); // @[IDPool.scala 44:10]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~io_free_valid | ~_T_7[0]) & ~reset) begin
          $fatal; // @[IDPool.scala 44:10]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_12 & ~(valid == _valid1_T)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at IDPool.scala:48 assert (valid === bitmap.orR)\n"); // @[IDPool.scala 48:12]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(valid == _valid1_T) & _T_12) begin
          $fatal; // @[IDPool.scala 48:12]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_22 & _T_12 & ~(select == _T_37)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at IDPool.scala:52 assert (select === PriorityEncoder(bitmap))\n"
            ); // @[IDPool.scala 52:14]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(select == _T_37) & (_T_22 & _T_12)) begin
          $fatal; // @[IDPool.scala 52:14]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  bitmap = _RAND_0[7:0];
  _RAND_1 = {1{`RANDOM}};
  select = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  valid = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  REG = _RAND_3[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_31(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [2:0]  io_enq_bits_opcode,
  input  [2:0]  io_enq_bits_size,
  input  [4:0]  io_enq_bits_source,
  input         io_deq_ready,
  output        io_deq_valid,
  output [2:0]  io_deq_bits_opcode,
  output [1:0]  io_deq_bits_param,
  output [2:0]  io_deq_bits_size,
  output [4:0]  io_deq_bits_source,
  output        io_deq_bits_denied,
  output [63:0] io_deq_bits_data,
  output        io_deq_bits_corrupt
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [63:0] _RAND_5;
  reg [31:0] _RAND_6;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
`endif // RANDOMIZE_REG_INIT
  reg [2:0] ram_opcode [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_opcode_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_opcode_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_opcode_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_opcode_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_en; // @[Decoupled.scala 275:95]
  reg [1:0] ram_param [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_param_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [1:0] ram_param_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [1:0] ram_param_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] ram_size [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_size_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_size_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_en; // @[Decoupled.scala 275:95]
  reg [4:0] ram_source [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_source_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_source_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [4:0] ram_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [4:0] ram_source_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_denied [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_denied_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_denied_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_denied_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_denied_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_denied_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_denied_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_denied_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_data [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_corrupt [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_en; // @[Decoupled.scala 275:95]
  reg  enq_ptr_value; // @[Counter.scala 61:40]
  reg  deq_ptr_value; // @[Counter.scala 61:40]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  ptr_match = enq_ptr_value == deq_ptr_value; // @[Decoupled.scala 279:33]
  wire  empty = ptr_match & ~maybe_full; // @[Decoupled.scala 280:25]
  wire  full = ptr_match & maybe_full; // @[Decoupled.scala 281:24]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_deq = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign ram_opcode_io_deq_bits_MPORT_en = 1'h1;
  assign ram_opcode_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_opcode_io_deq_bits_MPORT_data = ram_opcode[ram_opcode_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_opcode_MPORT_data = io_enq_bits_opcode;
  assign ram_opcode_MPORT_addr = enq_ptr_value;
  assign ram_opcode_MPORT_mask = 1'h1;
  assign ram_opcode_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_param_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_param_io_deq_bits_MPORT_data = ram_param[ram_param_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_MPORT_data = 2'h0;
  assign ram_param_MPORT_addr = enq_ptr_value;
  assign ram_param_MPORT_mask = 1'h1;
  assign ram_param_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_size_io_deq_bits_MPORT_en = 1'h1;
  assign ram_size_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_size_io_deq_bits_MPORT_data = ram_size[ram_size_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_size_MPORT_data = io_enq_bits_size;
  assign ram_size_MPORT_addr = enq_ptr_value;
  assign ram_size_MPORT_mask = 1'h1;
  assign ram_size_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_source_io_deq_bits_MPORT_en = 1'h1;
  assign ram_source_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_source_io_deq_bits_MPORT_data = ram_source[ram_source_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_source_MPORT_data = io_enq_bits_source;
  assign ram_source_MPORT_addr = enq_ptr_value;
  assign ram_source_MPORT_mask = 1'h1;
  assign ram_source_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_denied_io_deq_bits_MPORT_en = 1'h1;
  assign ram_denied_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_denied_io_deq_bits_MPORT_data = ram_denied[ram_denied_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_denied_MPORT_data = 1'h0;
  assign ram_denied_MPORT_addr = enq_ptr_value;
  assign ram_denied_MPORT_mask = 1'h1;
  assign ram_denied_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_data_io_deq_bits_MPORT_en = 1'h1;
  assign ram_data_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_data_io_deq_bits_MPORT_data = ram_data[ram_data_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_data_MPORT_data = 64'h0;
  assign ram_data_MPORT_addr = enq_ptr_value;
  assign ram_data_MPORT_mask = 1'h1;
  assign ram_data_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_corrupt_io_deq_bits_MPORT_en = 1'h1;
  assign ram_corrupt_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_corrupt_io_deq_bits_MPORT_data = ram_corrupt[ram_corrupt_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_corrupt_MPORT_data = 1'h0;
  assign ram_corrupt_MPORT_addr = enq_ptr_value;
  assign ram_corrupt_MPORT_mask = 1'h1;
  assign ram_corrupt_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = ~full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_opcode = ram_opcode_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_param = ram_param_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_size = ram_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_source = ram_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_denied = ram_denied_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_data = ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_corrupt = ram_corrupt_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_opcode_MPORT_en & ram_opcode_MPORT_mask) begin
      ram_opcode[ram_opcode_MPORT_addr] <= ram_opcode_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_MPORT_en & ram_param_MPORT_mask) begin
      ram_param[ram_param_MPORT_addr] <= ram_param_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_size_MPORT_en & ram_size_MPORT_mask) begin
      ram_size[ram_size_MPORT_addr] <= ram_size_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_source_MPORT_en & ram_source_MPORT_mask) begin
      ram_source[ram_source_MPORT_addr] <= ram_source_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_denied_MPORT_en & ram_denied_MPORT_mask) begin
      ram_denied[ram_denied_MPORT_addr] <= ram_denied_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_data_MPORT_en & ram_data_MPORT_mask) begin
      ram_data[ram_data_MPORT_addr] <= ram_data_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_corrupt_MPORT_en & ram_corrupt_MPORT_mask) begin
      ram_corrupt[ram_corrupt_MPORT_addr] <= ram_corrupt_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Counter.scala 61:40]
      enq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_enq) begin // @[Decoupled.scala 288:16]
      enq_ptr_value <= enq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Counter.scala 61:40]
      deq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_deq) begin // @[Decoupled.scala 292:16]
      deq_ptr_value <= deq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_opcode[initvar] = _RAND_0[2:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_param[initvar] = _RAND_1[1:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_size[initvar] = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_source[initvar] = _RAND_3[4:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_denied[initvar] = _RAND_4[0:0];
  _RAND_5 = {2{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_data[initvar] = _RAND_5[63:0];
  _RAND_6 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_corrupt[initvar] = _RAND_6[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_7 = {1{`RANDOM}};
  enq_ptr_value = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  deq_ptr_value = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  maybe_full = _RAND_9[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLCacheCork(
  input         clock,
  input         reset,
  output        auto_in_a_ready,
  input         auto_in_a_valid,
  input  [2:0]  auto_in_a_bits_opcode,
  input  [2:0]  auto_in_a_bits_param,
  input  [2:0]  auto_in_a_bits_size,
  input  [4:0]  auto_in_a_bits_source,
  input  [31:0] auto_in_a_bits_address,
  input  [7:0]  auto_in_a_bits_mask,
  input  [63:0] auto_in_a_bits_data,
  input         auto_in_a_bits_corrupt,
  output        auto_in_c_ready,
  input         auto_in_c_valid,
  input  [2:0]  auto_in_c_bits_opcode,
  input  [2:0]  auto_in_c_bits_param,
  input  [2:0]  auto_in_c_bits_size,
  input  [4:0]  auto_in_c_bits_source,
  input  [31:0] auto_in_c_bits_address,
  input  [63:0] auto_in_c_bits_data,
  input         auto_in_c_bits_corrupt,
  input         auto_in_d_ready,
  output        auto_in_d_valid,
  output [2:0]  auto_in_d_bits_opcode,
  output [1:0]  auto_in_d_bits_param,
  output [2:0]  auto_in_d_bits_size,
  output [4:0]  auto_in_d_bits_source,
  output [2:0]  auto_in_d_bits_sink,
  output        auto_in_d_bits_denied,
  output [63:0] auto_in_d_bits_data,
  output        auto_in_d_bits_corrupt,
  input         auto_in_e_valid,
  input  [2:0]  auto_in_e_bits_sink,
  input         auto_out_a_ready,
  output        auto_out_a_valid,
  output [2:0]  auto_out_a_bits_opcode,
  output [2:0]  auto_out_a_bits_param,
  output [2:0]  auto_out_a_bits_size,
  output [5:0]  auto_out_a_bits_source,
  output [31:0] auto_out_a_bits_address,
  output [7:0]  auto_out_a_bits_mask,
  output [63:0] auto_out_a_bits_data,
  output        auto_out_a_bits_corrupt,
  output        auto_out_d_ready,
  input         auto_out_d_valid,
  input  [2:0]  auto_out_d_bits_opcode,
  input  [2:0]  auto_out_d_bits_size,
  input  [5:0]  auto_out_d_bits_source,
  input  [63:0] auto_out_d_bits_data
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
`endif // RANDOMIZE_REG_INIT
  wire  monitor_clock; // @[Nodes.scala 24:25]
  wire  monitor_reset; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_opcode; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_param; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_size; // @[Nodes.scala 24:25]
  wire [4:0] monitor_io_in_a_bits_source; // @[Nodes.scala 24:25]
  wire [31:0] monitor_io_in_a_bits_address; // @[Nodes.scala 24:25]
  wire [7:0] monitor_io_in_a_bits_mask; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_bits_corrupt; // @[Nodes.scala 24:25]
  wire  monitor_io_in_c_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_c_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_c_bits_opcode; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_c_bits_param; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_c_bits_size; // @[Nodes.scala 24:25]
  wire [4:0] monitor_io_in_c_bits_source; // @[Nodes.scala 24:25]
  wire [31:0] monitor_io_in_c_bits_address; // @[Nodes.scala 24:25]
  wire  monitor_io_in_c_bits_corrupt; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  wire [1:0] monitor_io_in_d_bits_param; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_size; // @[Nodes.scala 24:25]
  wire [4:0] monitor_io_in_d_bits_source; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_sink; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_denied; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_corrupt; // @[Nodes.scala 24:25]
  wire  monitor_io_in_e_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_e_bits_sink; // @[Nodes.scala 24:25]
  wire  pool_clock; // @[CacheCork.scala 117:26]
  wire  pool_reset; // @[CacheCork.scala 117:26]
  wire  pool_io_free_valid; // @[CacheCork.scala 117:26]
  wire [2:0] pool_io_free_bits; // @[CacheCork.scala 117:26]
  wire  pool_io_alloc_ready; // @[CacheCork.scala 117:26]
  wire  pool_io_alloc_valid; // @[CacheCork.scala 117:26]
  wire [2:0] pool_io_alloc_bits; // @[CacheCork.scala 117:26]
  wire  q_clock; // @[Decoupled.scala 377:21]
  wire  q_reset; // @[Decoupled.scala 377:21]
  wire  q_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  q_io_enq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] q_io_enq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [2:0] q_io_enq_bits_size; // @[Decoupled.scala 377:21]
  wire [4:0] q_io_enq_bits_source; // @[Decoupled.scala 377:21]
  wire  q_io_deq_ready; // @[Decoupled.scala 377:21]
  wire  q_io_deq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] q_io_deq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [1:0] q_io_deq_bits_param; // @[Decoupled.scala 377:21]
  wire [2:0] q_io_deq_bits_size; // @[Decoupled.scala 377:21]
  wire [4:0] q_io_deq_bits_source; // @[Decoupled.scala 377:21]
  wire  q_io_deq_bits_denied; // @[Decoupled.scala 377:21]
  wire [63:0] q_io_deq_bits_data; // @[Decoupled.scala 377:21]
  wire  q_io_deq_bits_corrupt; // @[Decoupled.scala 377:21]
  wire  q_1_clock; // @[Decoupled.scala 377:21]
  wire  q_1_reset; // @[Decoupled.scala 377:21]
  wire  q_1_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  q_1_io_enq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] q_1_io_enq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [2:0] q_1_io_enq_bits_size; // @[Decoupled.scala 377:21]
  wire [4:0] q_1_io_enq_bits_source; // @[Decoupled.scala 377:21]
  wire  q_1_io_deq_ready; // @[Decoupled.scala 377:21]
  wire  q_1_io_deq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] q_1_io_deq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [1:0] q_1_io_deq_bits_param; // @[Decoupled.scala 377:21]
  wire [2:0] q_1_io_deq_bits_size; // @[Decoupled.scala 377:21]
  wire [4:0] q_1_io_deq_bits_source; // @[Decoupled.scala 377:21]
  wire  q_1_io_deq_bits_denied; // @[Decoupled.scala 377:21]
  wire [63:0] q_1_io_deq_bits_data; // @[Decoupled.scala 377:21]
  wire  q_1_io_deq_bits_corrupt; // @[Decoupled.scala 377:21]
  wire  isPut = auto_in_a_bits_opcode == 3'h0 | auto_in_a_bits_opcode == 3'h1; // @[CacheCork.scala 66:54]
  wire  _toD_T = auto_in_a_bits_opcode == 3'h6; // @[CacheCork.scala 67:37]
  wire  _toD_T_3 = auto_in_a_bits_opcode == 3'h7; // @[CacheCork.scala 68:37]
  wire  toD = auto_in_a_bits_opcode == 3'h6 & auto_in_a_bits_param == 3'h2 | _toD_T_3; // @[CacheCork.scala 67:97]
  wire  a_d_ready = q_1_io_enq_ready; // @[CacheCork.scala 65:23 Decoupled.scala 381:17]
  reg [1:0] beatsLeft; // @[Arbiter.scala 87:30]
  wire  idle = beatsLeft == 2'h0; // @[Arbiter.scala 88:28]
  wire  a_a_valid = auto_in_a_valid & ~toD; // @[CacheCork.scala 71:33]
  wire  _c_a_valid_T = auto_in_c_bits_opcode == 3'h7; // @[CacheCork.scala 92:53]
  wire  c_a_valid = auto_in_c_valid & auto_in_c_bits_opcode == 3'h7; // @[CacheCork.scala 92:33]
  wire [1:0] _readys_T = {a_a_valid,c_a_valid}; // @[Cat.scala 33:92]
  wire [2:0] _readys_T_1 = {_readys_T, 1'h0}; // @[package.scala 244:48]
  wire [1:0] _readys_T_3 = _readys_T | _readys_T_1[1:0]; // @[package.scala 244:43]
  wire [2:0] _readys_T_5 = {_readys_T_3, 1'h0}; // @[Arbiter.scala 16:78]
  wire [1:0] _readys_T_7 = ~_readys_T_5[1:0]; // @[Arbiter.scala 16:61]
  wire  readys__1 = _readys_T_7[1]; // @[Arbiter.scala 95:86]
  reg  state__1; // @[Arbiter.scala 116:26]
  wire  allowed__1 = idle ? readys__1 : state__1; // @[Arbiter.scala 121:24]
  wire  out_1_ready = auto_out_a_ready & allowed__1; // @[Arbiter.scala 123:31]
  wire [5:0] _a_a_bits_source_T = {auto_in_a_bits_source, 1'h0}; // @[CacheCork.scala 73:45]
  wire [5:0] _GEN_69 = {{5'd0}, isPut}; // @[CacheCork.scala 73:50]
  wire [5:0] _a_a_bits_source_T_2 = _a_a_bits_source_T | _GEN_69; // @[CacheCork.scala 73:50]
  wire [5:0] _a_a_bits_source_T_4 = _a_a_bits_source_T | 6'h1; // @[CacheCork.scala 79:52]
  wire [2:0] a_a_bits_opcode = _toD_T | _toD_T_3 ? 3'h4 : auto_in_a_bits_opcode; // @[CacheCork.scala 72:18 76:86 77:27]
  wire [2:0] a_a_bits_param = _toD_T | _toD_T_3 ? 3'h0 : auto_in_a_bits_param; // @[CacheCork.scala 72:18 76:86 78:27]
  wire [5:0] a_a_bits_source = _toD_T | _toD_T_3 ? _a_a_bits_source_T_4 : _a_a_bits_source_T_2; // @[CacheCork.scala 73:25 76:86 79:27]
  wire [5:0] c_a_bits_a_source = {auto_in_c_bits_source, 1'h0}; // @[CacheCork.scala 94:41]
  wire [1:0] c_a_bits_a_mask_sizeOH_shiftAmount = auto_in_c_bits_size[1:0]; // @[OneHot.scala 63:49]
  wire [3:0] _c_a_bits_a_mask_sizeOH_T_1 = 4'h1 << c_a_bits_a_mask_sizeOH_shiftAmount; // @[OneHot.scala 64:12]
  wire [2:0] c_a_bits_a_mask_sizeOH = _c_a_bits_a_mask_sizeOH_T_1[2:0] | 3'h1; // @[Misc.scala 201:81]
  wire  _c_a_bits_a_mask_T = auto_in_c_bits_size >= 3'h3; // @[Misc.scala 205:21]
  wire  c_a_bits_a_mask_size = c_a_bits_a_mask_sizeOH[2]; // @[Misc.scala 208:26]
  wire  c_a_bits_a_mask_bit = auto_in_c_bits_address[2]; // @[Misc.scala 209:26]
  wire  c_a_bits_a_mask_nbit = ~c_a_bits_a_mask_bit; // @[Misc.scala 210:20]
  wire  c_a_bits_a_mask_acc = _c_a_bits_a_mask_T | c_a_bits_a_mask_size & c_a_bits_a_mask_nbit; // @[Misc.scala 214:29]
  wire  c_a_bits_a_mask_acc_1 = _c_a_bits_a_mask_T | c_a_bits_a_mask_size & c_a_bits_a_mask_bit; // @[Misc.scala 214:29]
  wire  c_a_bits_a_mask_size_1 = c_a_bits_a_mask_sizeOH[1]; // @[Misc.scala 208:26]
  wire  c_a_bits_a_mask_bit_1 = auto_in_c_bits_address[1]; // @[Misc.scala 209:26]
  wire  c_a_bits_a_mask_nbit_1 = ~c_a_bits_a_mask_bit_1; // @[Misc.scala 210:20]
  wire  c_a_bits_a_mask_eq_2 = c_a_bits_a_mask_nbit & c_a_bits_a_mask_nbit_1; // @[Misc.scala 213:27]
  wire  c_a_bits_a_mask_acc_2 = c_a_bits_a_mask_acc | c_a_bits_a_mask_size_1 & c_a_bits_a_mask_eq_2; // @[Misc.scala 214:29]
  wire  c_a_bits_a_mask_eq_3 = c_a_bits_a_mask_nbit & c_a_bits_a_mask_bit_1; // @[Misc.scala 213:27]
  wire  c_a_bits_a_mask_acc_3 = c_a_bits_a_mask_acc | c_a_bits_a_mask_size_1 & c_a_bits_a_mask_eq_3; // @[Misc.scala 214:29]
  wire  c_a_bits_a_mask_eq_4 = c_a_bits_a_mask_bit & c_a_bits_a_mask_nbit_1; // @[Misc.scala 213:27]
  wire  c_a_bits_a_mask_acc_4 = c_a_bits_a_mask_acc_1 | c_a_bits_a_mask_size_1 & c_a_bits_a_mask_eq_4; // @[Misc.scala 214:29]
  wire  c_a_bits_a_mask_eq_5 = c_a_bits_a_mask_bit & c_a_bits_a_mask_bit_1; // @[Misc.scala 213:27]
  wire  c_a_bits_a_mask_acc_5 = c_a_bits_a_mask_acc_1 | c_a_bits_a_mask_size_1 & c_a_bits_a_mask_eq_5; // @[Misc.scala 214:29]
  wire  c_a_bits_a_mask_size_2 = c_a_bits_a_mask_sizeOH[0]; // @[Misc.scala 208:26]
  wire  c_a_bits_a_mask_bit_2 = auto_in_c_bits_address[0]; // @[Misc.scala 209:26]
  wire  c_a_bits_a_mask_nbit_2 = ~c_a_bits_a_mask_bit_2; // @[Misc.scala 210:20]
  wire  c_a_bits_a_mask_eq_6 = c_a_bits_a_mask_eq_2 & c_a_bits_a_mask_nbit_2; // @[Misc.scala 213:27]
  wire  c_a_bits_a_mask_acc_6 = c_a_bits_a_mask_acc_2 | c_a_bits_a_mask_size_2 & c_a_bits_a_mask_eq_6; // @[Misc.scala 214:29]
  wire  c_a_bits_a_mask_eq_7 = c_a_bits_a_mask_eq_2 & c_a_bits_a_mask_bit_2; // @[Misc.scala 213:27]
  wire  c_a_bits_a_mask_acc_7 = c_a_bits_a_mask_acc_2 | c_a_bits_a_mask_size_2 & c_a_bits_a_mask_eq_7; // @[Misc.scala 214:29]
  wire  c_a_bits_a_mask_eq_8 = c_a_bits_a_mask_eq_3 & c_a_bits_a_mask_nbit_2; // @[Misc.scala 213:27]
  wire  c_a_bits_a_mask_acc_8 = c_a_bits_a_mask_acc_3 | c_a_bits_a_mask_size_2 & c_a_bits_a_mask_eq_8; // @[Misc.scala 214:29]
  wire  c_a_bits_a_mask_eq_9 = c_a_bits_a_mask_eq_3 & c_a_bits_a_mask_bit_2; // @[Misc.scala 213:27]
  wire  c_a_bits_a_mask_acc_9 = c_a_bits_a_mask_acc_3 | c_a_bits_a_mask_size_2 & c_a_bits_a_mask_eq_9; // @[Misc.scala 214:29]
  wire  c_a_bits_a_mask_eq_10 = c_a_bits_a_mask_eq_4 & c_a_bits_a_mask_nbit_2; // @[Misc.scala 213:27]
  wire  c_a_bits_a_mask_acc_10 = c_a_bits_a_mask_acc_4 | c_a_bits_a_mask_size_2 & c_a_bits_a_mask_eq_10; // @[Misc.scala 214:29]
  wire  c_a_bits_a_mask_eq_11 = c_a_bits_a_mask_eq_4 & c_a_bits_a_mask_bit_2; // @[Misc.scala 213:27]
  wire  c_a_bits_a_mask_acc_11 = c_a_bits_a_mask_acc_4 | c_a_bits_a_mask_size_2 & c_a_bits_a_mask_eq_11; // @[Misc.scala 214:29]
  wire  c_a_bits_a_mask_eq_12 = c_a_bits_a_mask_eq_5 & c_a_bits_a_mask_nbit_2; // @[Misc.scala 213:27]
  wire  c_a_bits_a_mask_acc_12 = c_a_bits_a_mask_acc_5 | c_a_bits_a_mask_size_2 & c_a_bits_a_mask_eq_12; // @[Misc.scala 214:29]
  wire  c_a_bits_a_mask_eq_13 = c_a_bits_a_mask_eq_5 & c_a_bits_a_mask_bit_2; // @[Misc.scala 213:27]
  wire  c_a_bits_a_mask_acc_13 = c_a_bits_a_mask_acc_5 | c_a_bits_a_mask_size_2 & c_a_bits_a_mask_eq_13; // @[Misc.scala 214:29]
  wire [7:0] c_a_bits_a_mask = {c_a_bits_a_mask_acc_13,c_a_bits_a_mask_acc_12,c_a_bits_a_mask_acc_11,
    c_a_bits_a_mask_acc_10,c_a_bits_a_mask_acc_9,c_a_bits_a_mask_acc_8,c_a_bits_a_mask_acc_7,c_a_bits_a_mask_acc_6}; // @[Cat.scala 33:92]
  wire  _c_d_valid_T = auto_in_c_bits_opcode == 3'h6; // @[CacheCork.scala 103:53]
  wire  _T_9 = ~reset; // @[CacheCork.scala 106:16]
  wire  c_d_ready = q_io_enq_ready; // @[CacheCork.scala 102:23 Decoupled.scala 381:17]
  wire  readys__0 = _readys_T_7[0]; // @[Arbiter.scala 95:86]
  reg  state__0; // @[Arbiter.scala 116:26]
  wire  allowed__0 = idle ? readys__0 : state__0; // @[Arbiter.scala 121:24]
  wire  out_ready = auto_out_a_ready & allowed__0; // @[Arbiter.scala 123:31]
  reg [1:0] d_first_counter; // @[Edges.scala 228:27]
  wire  d_first = d_first_counter == 2'h0; // @[Edges.scala 230:25]
  reg [1:0] beatsLeft_1; // @[Arbiter.scala 87:30]
  wire  idle_1 = beatsLeft_1 == 2'h0; // @[Arbiter.scala 88:28]
  wire  out_5_earlyValid = q_1_io_deq_valid; // @[ReadyValidCancel.scala 68:19 69:20]
  wire  out_4_earlyValid = q_io_deq_valid; // @[ReadyValidCancel.scala 68:19 69:20]
  wire [2:0] _readys_T_10 = {out_5_earlyValid,out_4_earlyValid,auto_out_d_valid}; // @[Cat.scala 33:92]
  wire [3:0] _readys_T_11 = {_readys_T_10, 1'h0}; // @[package.scala 244:48]
  wire [2:0] _readys_T_13 = _readys_T_10 | _readys_T_11[2:0]; // @[package.scala 244:43]
  wire [4:0] _readys_T_14 = {_readys_T_13, 2'h0}; // @[package.scala 244:48]
  wire [2:0] _readys_T_16 = _readys_T_13 | _readys_T_14[2:0]; // @[package.scala 244:43]
  wire [3:0] _readys_T_18 = {_readys_T_16, 1'h0}; // @[Arbiter.scala 16:78]
  wire [2:0] _readys_T_20 = ~_readys_T_18[2:0]; // @[Arbiter.scala 16:61]
  wire  readys_1_0 = _readys_T_20[0]; // @[Arbiter.scala 95:86]
  wire  earlyWinner_1_0 = readys_1_0 & auto_out_d_valid; // @[Arbiter.scala 97:79]
  reg  state_1_0; // @[Arbiter.scala 116:26]
  wire  muxStateEarly_1_0 = idle_1 ? earlyWinner_1_0 : state_1_0; // @[Arbiter.scala 117:30]
  wire [2:0] _GEN_66 = auto_out_d_bits_opcode == 3'h1 & auto_out_d_bits_source[0] ? 3'h5 : auto_out_d_bits_opcode; // @[CacheCork.scala 132:13 152:76 153:27]
  wire [2:0] d_d_bits_opcode = auto_out_d_bits_opcode == 3'h0 & ~auto_out_d_bits_source[0] ? 3'h6 : _GEN_66; // @[CacheCork.scala 156:73 157:27]
  wire [2:0] _T_141 = muxStateEarly_1_0 ? d_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire  readys_1_1 = _readys_T_20[1]; // @[Arbiter.scala 95:86]
  wire  earlyWinner_1_1 = readys_1_1 & out_4_earlyValid; // @[Arbiter.scala 97:79]
  reg  state_1_1; // @[Arbiter.scala 116:26]
  wire  muxStateEarly_1_1 = idle_1 ? earlyWinner_1_1 : state_1_1; // @[Arbiter.scala 117:30]
  wire [2:0] out_4_bits_opcode = q_io_deq_bits_opcode; // @[ReadyValidCancel.scala 68:19 71:14]
  wire [2:0] _T_142 = muxStateEarly_1_1 ? out_4_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_144 = _T_141 | _T_142; // @[Mux.scala 27:73]
  wire  readys_1_2 = _readys_T_20[2]; // @[Arbiter.scala 95:86]
  wire  earlyWinner_1_2 = readys_1_2 & out_5_earlyValid; // @[Arbiter.scala 97:79]
  reg  state_1_2; // @[Arbiter.scala 116:26]
  wire  muxStateEarly_1_2 = idle_1 ? earlyWinner_1_2 : state_1_2; // @[Arbiter.scala 117:30]
  wire [2:0] out_5_bits_opcode = q_1_io_deq_bits_opcode; // @[ReadyValidCancel.scala 68:19 71:14]
  wire [2:0] _T_143 = muxStateEarly_1_2 ? out_5_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] sink_ACancel_1_bits_opcode = _T_144 | _T_143; // @[Mux.scala 27:73]
  wire  d_grant = sink_ACancel_1_bits_opcode == 3'h5 | sink_ACancel_1_bits_opcode == 3'h4; // @[CacheCork.scala 123:54]
  wire  _in_d_ready_T_3 = pool_io_alloc_valid | ~d_first | ~d_grant; // @[CacheCork.scala 126:70]
  wire  in_d_ready = auto_in_d_ready & (pool_io_alloc_valid | ~d_first | ~d_grant); // @[CacheCork.scala 126:34]
  wire  _sink_ACancel_earlyValid_T_6 = auto_out_d_valid | out_4_earlyValid | out_5_earlyValid; // @[Arbiter.scala 125:56]
  wire  _sink_ACancel_earlyValid_T_11 = state_1_0 & auto_out_d_valid | state_1_1 & out_4_earlyValid | state_1_2 &
    out_5_earlyValid; // @[Mux.scala 27:73]
  wire  sink_ACancel_1_earlyValid = idle_1 ? auto_out_d_valid | out_4_earlyValid | out_5_earlyValid :
    _sink_ACancel_earlyValid_T_11; // @[Arbiter.scala 125:29]
  wire  _d_first_T = in_d_ready & sink_ACancel_1_earlyValid; // @[Decoupled.scala 52:35]
  wire [2:0] _T_131 = muxStateEarly_1_0 ? auto_out_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] out_4_bits_size = q_io_deq_bits_size; // @[ReadyValidCancel.scala 68:19 71:14]
  wire [2:0] _T_132 = muxStateEarly_1_1 ? out_4_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_134 = _T_131 | _T_132; // @[Mux.scala 27:73]
  wire [2:0] out_5_bits_size = q_1_io_deq_bits_size; // @[ReadyValidCancel.scala 68:19 71:14]
  wire [2:0] _T_133 = muxStateEarly_1_2 ? out_5_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] sink_ACancel_1_bits_size = _T_134 | _T_133; // @[Mux.scala 27:73]
  wire [11:0] _d_first_beats1_decode_T_1 = 12'h1f << sink_ACancel_1_bits_size; // @[package.scala 234:77]
  wire [4:0] _d_first_beats1_decode_T_3 = ~_d_first_beats1_decode_T_1[4:0]; // @[package.scala 234:46]
  wire [1:0] d_first_beats1_decode = _d_first_beats1_decode_T_3[4:3]; // @[Edges.scala 219:59]
  wire  d_first_beats1_opdata = sink_ACancel_1_bits_opcode[0]; // @[Edges.scala 105:36]
  wire [1:0] d_first_counter1 = d_first_counter - 2'h1; // @[Edges.scala 229:28]
  wire  bundleIn_0_d_valid = sink_ACancel_1_earlyValid & _in_d_ready_T_3; // @[CacheCork.scala 125:34]
  wire  _pool_io_alloc_ready_T = auto_in_d_ready & bundleIn_0_d_valid; // @[Decoupled.scala 52:35]
  reg [2:0] bundleIn_0_d_bits_sink_r; // @[Reg.scala 19:16]
  wire [4:0] d_d_bits_source = auto_out_d_bits_source[5:1]; // @[CacheCork.scala 133:46]
  wire [11:0] _decode_T_1 = 12'h1f << auto_in_c_bits_size; // @[package.scala 234:77]
  wire [4:0] _decode_T_3 = ~_decode_T_1[4:0]; // @[package.scala 234:46]
  wire [1:0] decode = _decode_T_3[4:3]; // @[Edges.scala 219:59]
  wire [11:0] _decode_T_5 = 12'h1f << auto_in_a_bits_size; // @[package.scala 234:77]
  wire [4:0] _decode_T_7 = ~_decode_T_5[4:0]; // @[package.scala 234:46]
  wire [1:0] decode_1 = _decode_T_7[4:3]; // @[Edges.scala 219:59]
  wire  opdata_1 = ~a_a_bits_opcode[2]; // @[Edges.scala 91:28]
  wire [1:0] _T_24 = opdata_1 ? decode_1 : 2'h0; // @[Edges.scala 220:14]
  wire  latch = idle & auto_out_a_ready; // @[Arbiter.scala 89:24]
  wire  earlyWinner__0 = readys__0 & c_a_valid; // @[Arbiter.scala 97:79]
  wire  earlyWinner__1 = readys__1 & a_a_valid; // @[Arbiter.scala 97:79]
  wire  _T_35 = c_a_valid | a_a_valid; // @[Arbiter.scala 107:36]
  wire  _T_36 = ~(c_a_valid | a_a_valid); // @[Arbiter.scala 107:15]
  wire [1:0] maskedBeats_0 = earlyWinner__0 ? decode : 2'h0; // @[Arbiter.scala 111:73]
  wire [1:0] maskedBeats_1 = earlyWinner__1 ? _T_24 : 2'h0; // @[Arbiter.scala 111:73]
  wire [1:0] initBeats = maskedBeats_0 | maskedBeats_1; // @[Arbiter.scala 112:44]
  wire  muxStateEarly__0 = idle ? earlyWinner__0 : state__0; // @[Arbiter.scala 117:30]
  wire  muxStateEarly__1 = idle ? earlyWinner__1 : state__1; // @[Arbiter.scala 117:30]
  wire  _sink_ACancel_earlyValid_T_3 = state__0 & c_a_valid | state__1 & a_a_valid; // @[Mux.scala 27:73]
  wire  sink_ACancel_earlyValid = idle ? _T_35 : _sink_ACancel_earlyValid_T_3; // @[Arbiter.scala 125:29]
  wire  _beatsLeft_T_2 = auto_out_a_ready & sink_ACancel_earlyValid; // @[ReadyValidCancel.scala 49:33]
  wire [1:0] _GEN_70 = {{1'd0}, _beatsLeft_T_2}; // @[Arbiter.scala 113:52]
  wire [1:0] _beatsLeft_T_4 = beatsLeft - _GEN_70; // @[Arbiter.scala 113:52]
  wire [63:0] _T_52 = muxStateEarly__0 ? auto_in_c_bits_data : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _T_53 = muxStateEarly__1 ? auto_in_a_bits_data : 64'h0; // @[Mux.scala 27:73]
  wire [7:0] _T_55 = muxStateEarly__0 ? c_a_bits_a_mask : 8'h0; // @[Mux.scala 27:73]
  wire [7:0] _T_56 = muxStateEarly__1 ? auto_in_a_bits_mask : 8'h0; // @[Mux.scala 27:73]
  wire [31:0] _T_58 = muxStateEarly__0 ? auto_in_c_bits_address : 32'h0; // @[Mux.scala 27:73]
  wire [31:0] _T_59 = muxStateEarly__1 ? auto_in_a_bits_address : 32'h0; // @[Mux.scala 27:73]
  wire [5:0] _T_61 = muxStateEarly__0 ? c_a_bits_a_source : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _T_62 = muxStateEarly__1 ? a_a_bits_source : 6'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_64 = muxStateEarly__0 ? auto_in_c_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_65 = muxStateEarly__1 ? auto_in_a_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [11:0] _decode_T_9 = 12'h1f << auto_out_d_bits_size; // @[package.scala 234:77]
  wire [4:0] _decode_T_11 = ~_decode_T_9[4:0]; // @[package.scala 234:46]
  wire [1:0] decode_2 = _decode_T_11[4:3]; // @[Edges.scala 219:59]
  wire  opdata_2 = d_d_bits_opcode[0]; // @[Edges.scala 105:36]
  wire  latch_1 = idle_1 & in_d_ready; // @[Arbiter.scala 89:24]
  wire  prefixOR_2 = earlyWinner_1_0 | earlyWinner_1_1; // @[Arbiter.scala 104:53]
  wire  _T_90 = ~_sink_ACancel_earlyValid_T_6; // @[Arbiter.scala 107:15]
  wire [1:0] _GEN_71 = {{1'd0}, _d_first_T}; // @[Arbiter.scala 113:52]
  wire [1:0] _beatsLeft_T_10 = beatsLeft_1 - _GEN_71; // @[Arbiter.scala 113:52]
  wire  allowed_1_0 = idle_1 ? readys_1_0 : state_1_0; // @[Arbiter.scala 121:24]
  wire  allowed_1_1 = idle_1 ? readys_1_1 : state_1_1; // @[Arbiter.scala 121:24]
  wire  allowed_1_2 = idle_1 ? readys_1_2 : state_1_2; // @[Arbiter.scala 121:24]
  wire  out_4_bits_corrupt = q_io_deq_bits_corrupt; // @[ReadyValidCancel.scala 68:19 71:14]
  wire  out_5_bits_corrupt = q_1_io_deq_bits_corrupt; // @[ReadyValidCancel.scala 68:19 71:14]
  wire [63:0] _T_111 = muxStateEarly_1_0 ? auto_out_d_bits_data : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] out_4_bits_data = q_io_deq_bits_data; // @[ReadyValidCancel.scala 68:19 71:14]
  wire [63:0] _T_112 = muxStateEarly_1_1 ? out_4_bits_data : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] out_5_bits_data = q_1_io_deq_bits_data; // @[ReadyValidCancel.scala 68:19 71:14]
  wire [63:0] _T_113 = muxStateEarly_1_2 ? out_5_bits_data : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _T_114 = _T_111 | _T_112; // @[Mux.scala 27:73]
  wire  out_4_bits_denied = q_io_deq_bits_denied; // @[ReadyValidCancel.scala 68:19 71:14]
  wire  out_5_bits_denied = q_1_io_deq_bits_denied; // @[ReadyValidCancel.scala 68:19 71:14]
  wire [4:0] _T_126 = muxStateEarly_1_0 ? d_d_bits_source : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] out_4_bits_source = q_io_deq_bits_source; // @[ReadyValidCancel.scala 68:19 71:14]
  wire [4:0] _T_127 = muxStateEarly_1_1 ? out_4_bits_source : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] out_5_bits_source = q_1_io_deq_bits_source; // @[ReadyValidCancel.scala 68:19 71:14]
  wire [4:0] _T_128 = muxStateEarly_1_2 ? out_5_bits_source : 5'h0; // @[Mux.scala 27:73]
  wire [4:0] _T_129 = _T_126 | _T_127; // @[Mux.scala 27:73]
  wire [1:0] out_4_bits_param = q_io_deq_bits_param; // @[ReadyValidCancel.scala 68:19 71:14]
  wire [1:0] _T_137 = muxStateEarly_1_1 ? out_4_bits_param : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] out_5_bits_param = q_1_io_deq_bits_param; // @[ReadyValidCancel.scala 68:19 71:14]
  wire [1:0] _T_138 = muxStateEarly_1_2 ? out_5_bits_param : 2'h0; // @[Mux.scala 27:73]
  TLMonitor_11 monitor ( // @[Nodes.scala 24:25]
    .clock(monitor_clock),
    .reset(monitor_reset),
    .io_in_a_ready(monitor_io_in_a_ready),
    .io_in_a_valid(monitor_io_in_a_valid),
    .io_in_a_bits_opcode(monitor_io_in_a_bits_opcode),
    .io_in_a_bits_param(monitor_io_in_a_bits_param),
    .io_in_a_bits_size(monitor_io_in_a_bits_size),
    .io_in_a_bits_source(monitor_io_in_a_bits_source),
    .io_in_a_bits_address(monitor_io_in_a_bits_address),
    .io_in_a_bits_mask(monitor_io_in_a_bits_mask),
    .io_in_a_bits_corrupt(monitor_io_in_a_bits_corrupt),
    .io_in_c_ready(monitor_io_in_c_ready),
    .io_in_c_valid(monitor_io_in_c_valid),
    .io_in_c_bits_opcode(monitor_io_in_c_bits_opcode),
    .io_in_c_bits_param(monitor_io_in_c_bits_param),
    .io_in_c_bits_size(monitor_io_in_c_bits_size),
    .io_in_c_bits_source(monitor_io_in_c_bits_source),
    .io_in_c_bits_address(monitor_io_in_c_bits_address),
    .io_in_c_bits_corrupt(monitor_io_in_c_bits_corrupt),
    .io_in_d_ready(monitor_io_in_d_ready),
    .io_in_d_valid(monitor_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_io_in_d_bits_opcode),
    .io_in_d_bits_param(monitor_io_in_d_bits_param),
    .io_in_d_bits_size(monitor_io_in_d_bits_size),
    .io_in_d_bits_source(monitor_io_in_d_bits_source),
    .io_in_d_bits_sink(monitor_io_in_d_bits_sink),
    .io_in_d_bits_denied(monitor_io_in_d_bits_denied),
    .io_in_d_bits_corrupt(monitor_io_in_d_bits_corrupt),
    .io_in_e_valid(monitor_io_in_e_valid),
    .io_in_e_bits_sink(monitor_io_in_e_bits_sink)
  );
  IDPool pool ( // @[CacheCork.scala 117:26]
    .clock(pool_clock),
    .reset(pool_reset),
    .io_free_valid(pool_io_free_valid),
    .io_free_bits(pool_io_free_bits),
    .io_alloc_ready(pool_io_alloc_ready),
    .io_alloc_valid(pool_io_alloc_valid),
    .io_alloc_bits(pool_io_alloc_bits)
  );
  Queue_31 q ( // @[Decoupled.scala 377:21]
    .clock(q_clock),
    .reset(q_reset),
    .io_enq_ready(q_io_enq_ready),
    .io_enq_valid(q_io_enq_valid),
    .io_enq_bits_opcode(q_io_enq_bits_opcode),
    .io_enq_bits_size(q_io_enq_bits_size),
    .io_enq_bits_source(q_io_enq_bits_source),
    .io_deq_ready(q_io_deq_ready),
    .io_deq_valid(q_io_deq_valid),
    .io_deq_bits_opcode(q_io_deq_bits_opcode),
    .io_deq_bits_param(q_io_deq_bits_param),
    .io_deq_bits_size(q_io_deq_bits_size),
    .io_deq_bits_source(q_io_deq_bits_source),
    .io_deq_bits_denied(q_io_deq_bits_denied),
    .io_deq_bits_data(q_io_deq_bits_data),
    .io_deq_bits_corrupt(q_io_deq_bits_corrupt)
  );
  Queue_31 q_1 ( // @[Decoupled.scala 377:21]
    .clock(q_1_clock),
    .reset(q_1_reset),
    .io_enq_ready(q_1_io_enq_ready),
    .io_enq_valid(q_1_io_enq_valid),
    .io_enq_bits_opcode(q_1_io_enq_bits_opcode),
    .io_enq_bits_size(q_1_io_enq_bits_size),
    .io_enq_bits_source(q_1_io_enq_bits_source),
    .io_deq_ready(q_1_io_deq_ready),
    .io_deq_valid(q_1_io_deq_valid),
    .io_deq_bits_opcode(q_1_io_deq_bits_opcode),
    .io_deq_bits_param(q_1_io_deq_bits_param),
    .io_deq_bits_size(q_1_io_deq_bits_size),
    .io_deq_bits_source(q_1_io_deq_bits_source),
    .io_deq_bits_denied(q_1_io_deq_bits_denied),
    .io_deq_bits_data(q_1_io_deq_bits_data),
    .io_deq_bits_corrupt(q_1_io_deq_bits_corrupt)
  );
  assign auto_in_a_ready = toD ? a_d_ready : out_1_ready; // @[CacheCork.scala 69:26]
  assign auto_in_c_ready = _c_d_valid_T ? c_d_ready : out_ready; // @[CacheCork.scala 107:26]
  assign auto_in_d_valid = sink_ACancel_1_earlyValid & _in_d_ready_T_3; // @[CacheCork.scala 125:34]
  assign auto_in_d_bits_opcode = _T_144 | _T_143; // @[Mux.scala 27:73]
  assign auto_in_d_bits_param = _T_137 | _T_138; // @[Mux.scala 27:73]
  assign auto_in_d_bits_size = _T_134 | _T_133; // @[Mux.scala 27:73]
  assign auto_in_d_bits_source = _T_129 | _T_128; // @[Mux.scala 27:73]
  assign auto_in_d_bits_sink = d_first ? pool_io_alloc_bits : bundleIn_0_d_bits_sink_r; // @[package.scala 79:42]
  assign auto_in_d_bits_denied = muxStateEarly_1_1 & out_4_bits_denied | muxStateEarly_1_2 & out_5_bits_denied; // @[Mux.scala 27:73]
  assign auto_in_d_bits_data = _T_114 | _T_113; // @[Mux.scala 27:73]
  assign auto_in_d_bits_corrupt = muxStateEarly_1_1 & out_4_bits_corrupt | muxStateEarly_1_2 & out_5_bits_corrupt; // @[Mux.scala 27:73]
  assign auto_out_a_valid = idle ? _T_35 : _sink_ACancel_earlyValid_T_3; // @[Arbiter.scala 125:29]
  assign auto_out_a_bits_opcode = muxStateEarly__1 ? a_a_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  assign auto_out_a_bits_param = muxStateEarly__1 ? a_a_bits_param : 3'h0; // @[Mux.scala 27:73]
  assign auto_out_a_bits_size = _T_64 | _T_65; // @[Mux.scala 27:73]
  assign auto_out_a_bits_source = _T_61 | _T_62; // @[Mux.scala 27:73]
  assign auto_out_a_bits_address = _T_58 | _T_59; // @[Mux.scala 27:73]
  assign auto_out_a_bits_mask = _T_55 | _T_56; // @[Mux.scala 27:73]
  assign auto_out_a_bits_data = _T_52 | _T_53; // @[Mux.scala 27:73]
  assign auto_out_a_bits_corrupt = muxStateEarly__0 & auto_in_c_bits_corrupt | muxStateEarly__1 & auto_in_a_bits_corrupt
    ; // @[Mux.scala 27:73]
  assign auto_out_d_ready = in_d_ready & allowed_1_0; // @[Arbiter.scala 123:31]
  assign monitor_clock = clock;
  assign monitor_reset = reset;
  assign monitor_io_in_a_ready = toD ? a_d_ready : out_1_ready; // @[CacheCork.scala 69:26]
  assign monitor_io_in_a_valid = auto_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_opcode = auto_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_param = auto_in_a_bits_param; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_size = auto_in_a_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_source = auto_in_a_bits_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_mask = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_corrupt = auto_in_a_bits_corrupt; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_c_ready = _c_d_valid_T ? c_d_ready : out_ready; // @[CacheCork.scala 107:26]
  assign monitor_io_in_c_valid = auto_in_c_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_c_bits_opcode = auto_in_c_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_c_bits_param = auto_in_c_bits_param; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_c_bits_size = auto_in_c_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_c_bits_source = auto_in_c_bits_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_c_bits_address = auto_in_c_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_c_bits_corrupt = auto_in_c_bits_corrupt; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_ready = auto_in_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_valid = sink_ACancel_1_earlyValid & _in_d_ready_T_3; // @[CacheCork.scala 125:34]
  assign monitor_io_in_d_bits_opcode = _T_144 | _T_143; // @[Mux.scala 27:73]
  assign monitor_io_in_d_bits_param = _T_137 | _T_138; // @[Mux.scala 27:73]
  assign monitor_io_in_d_bits_size = _T_134 | _T_133; // @[Mux.scala 27:73]
  assign monitor_io_in_d_bits_source = _T_129 | _T_128; // @[Mux.scala 27:73]
  assign monitor_io_in_d_bits_sink = d_first ? pool_io_alloc_bits : bundleIn_0_d_bits_sink_r; // @[package.scala 79:42]
  assign monitor_io_in_d_bits_denied = muxStateEarly_1_1 & out_4_bits_denied | muxStateEarly_1_2 & out_5_bits_denied; // @[Mux.scala 27:73]
  assign monitor_io_in_d_bits_corrupt = muxStateEarly_1_1 & out_4_bits_corrupt | muxStateEarly_1_2 & out_5_bits_corrupt; // @[Mux.scala 27:73]
  assign monitor_io_in_e_valid = auto_in_e_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_e_bits_sink = auto_in_e_bits_sink; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign pool_clock = clock;
  assign pool_reset = reset;
  assign pool_io_free_valid = auto_in_e_valid; // @[Decoupled.scala 52:35]
  assign pool_io_free_bits = auto_in_e_bits_sink; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign pool_io_alloc_ready = _pool_io_alloc_ready_T & d_first & d_grant; // @[CacheCork.scala 124:55]
  assign q_clock = clock;
  assign q_reset = reset;
  assign q_io_enq_valid = auto_in_c_valid & auto_in_c_bits_opcode == 3'h6; // @[CacheCork.scala 103:33]
  assign q_io_enq_bits_opcode = 3'h6; // @[Edges.scala 642:17 643:15]
  assign q_io_enq_bits_size = auto_in_c_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign q_io_enq_bits_source = auto_in_c_bits_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign q_io_deq_ready = in_d_ready & allowed_1_1; // @[Arbiter.scala 123:31]
  assign q_1_clock = clock;
  assign q_1_reset = reset;
  assign q_1_io_enq_valid = auto_in_a_valid & toD; // @[CacheCork.scala 83:33]
  assign q_1_io_enq_bits_opcode = 3'h4; // @[Edges.scala 614:17 615:15]
  assign q_1_io_enq_bits_size = auto_in_a_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign q_1_io_enq_bits_source = auto_in_a_bits_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign q_1_io_deq_ready = in_d_ready & allowed_1_2; // @[Arbiter.scala 123:31]
  always @(posedge clock) begin
    if (reset) begin // @[Arbiter.scala 87:30]
      beatsLeft <= 2'h0; // @[Arbiter.scala 87:30]
    end else if (latch) begin // @[Arbiter.scala 113:23]
      beatsLeft <= initBeats;
    end else begin
      beatsLeft <= _beatsLeft_T_4;
    end
    if (reset) begin // @[Arbiter.scala 116:26]
      state__1 <= 1'h0; // @[Arbiter.scala 116:26]
    end else if (idle) begin // @[Arbiter.scala 117:30]
      state__1 <= earlyWinner__1;
    end
    if (reset) begin // @[Arbiter.scala 116:26]
      state__0 <= 1'h0; // @[Arbiter.scala 116:26]
    end else if (idle) begin // @[Arbiter.scala 117:30]
      state__0 <= earlyWinner__0;
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 2'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        if (d_first_beats1_opdata) begin // @[Edges.scala 220:14]
          d_first_counter <= d_first_beats1_decode;
        end else begin
          d_first_counter <= 2'h0;
        end
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (reset) begin // @[Arbiter.scala 87:30]
      beatsLeft_1 <= 2'h0; // @[Arbiter.scala 87:30]
    end else if (latch_1) begin // @[Arbiter.scala 113:23]
      if (earlyWinner_1_0) begin // @[Arbiter.scala 111:73]
        if (opdata_2) begin // @[Edges.scala 220:14]
          beatsLeft_1 <= decode_2;
        end else begin
          beatsLeft_1 <= 2'h0;
        end
      end else begin
        beatsLeft_1 <= 2'h0;
      end
    end else begin
      beatsLeft_1 <= _beatsLeft_T_10;
    end
    if (reset) begin // @[Arbiter.scala 116:26]
      state_1_0 <= 1'h0; // @[Arbiter.scala 116:26]
    end else if (idle_1) begin // @[Arbiter.scala 117:30]
      state_1_0 <= earlyWinner_1_0;
    end
    if (reset) begin // @[Arbiter.scala 116:26]
      state_1_1 <= 1'h0; // @[Arbiter.scala 116:26]
    end else if (idle_1) begin // @[Arbiter.scala 117:30]
      state_1_1 <= earlyWinner_1_1;
    end
    if (reset) begin // @[Arbiter.scala 116:26]
      state_1_2 <= 1'h0; // @[Arbiter.scala 116:26]
    end else if (idle_1) begin // @[Arbiter.scala 117:30]
      state_1_2 <= earlyWinner_1_2;
    end
    if (d_first) begin // @[Reg.scala 20:18]
      bundleIn_0_d_bits_sink_r <= pool_io_alloc_bits; // @[Reg.scala 20:22]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~auto_in_c_valid | _c_d_valid_T | _c_a_valid_T)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at CacheCork.scala:106 assert (!in.c.valid || in.c.bits.opcode === Release || in.c.bits.opcode === ReleaseData)\n"
            ); // @[CacheCork.scala 106:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~auto_in_c_valid | _c_d_valid_T | _c_a_valid_T) & ~reset) begin
          $fatal; // @[CacheCork.scala 106:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_9 & ~(~earlyWinner__0 | ~earlyWinner__1)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Arbiter.scala:105 assert((prefixOR zip earlyWinner) map { case (p,w) => !p || !w } reduce {_ && _})\n"
            ); // @[Arbiter.scala 105:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~earlyWinner__0 | ~earlyWinner__1) & _T_9) begin
          $fatal; // @[Arbiter.scala 105:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_9 & ~(~(c_a_valid | a_a_valid) | (earlyWinner__0 | earlyWinner__1))) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Arbiter.scala:107 assert (!earlyValids.reduce(_||_) || earlyWinner.reduce(_||_))\n"
            ); // @[Arbiter.scala 107:14]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(c_a_valid | a_a_valid) | (earlyWinner__0 | earlyWinner__1)) & _T_9) begin
          $fatal; // @[Arbiter.scala 107:14]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_9 & ~(_T_36 | _T_35)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Arbiter.scala:108 assert (!validQuals .reduce(_||_) || validQuals .reduce(_||_))\n"
            ); // @[Arbiter.scala 108:14]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_36 | _T_35) & _T_9) begin
          $fatal; // @[Arbiter.scala 108:14]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_9 & ~((~earlyWinner_1_0 | ~earlyWinner_1_1) & (~prefixOR_2 | ~earlyWinner_1_2))) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Arbiter.scala:105 assert((prefixOR zip earlyWinner) map { case (p,w) => !p || !w } reduce {_ && _})\n"
            ); // @[Arbiter.scala 105:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~((~earlyWinner_1_0 | ~earlyWinner_1_1) & (~prefixOR_2 | ~earlyWinner_1_2)) & _T_9) begin
          $fatal; // @[Arbiter.scala 105:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_9 & ~(~_sink_ACancel_earlyValid_T_6 | (prefixOR_2 | earlyWinner_1_2))) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Arbiter.scala:107 assert (!earlyValids.reduce(_||_) || earlyWinner.reduce(_||_))\n"
            ); // @[Arbiter.scala 107:14]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~_sink_ACancel_earlyValid_T_6 | (prefixOR_2 | earlyWinner_1_2)) & _T_9) begin
          $fatal; // @[Arbiter.scala 107:14]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_9 & ~(_T_90 | _sink_ACancel_earlyValid_T_6)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Arbiter.scala:108 assert (!validQuals .reduce(_||_) || validQuals .reduce(_||_))\n"
            ); // @[Arbiter.scala 108:14]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_90 | _sink_ACancel_earlyValid_T_6) & _T_9) begin
          $fatal; // @[Arbiter.scala 108:14]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  beatsLeft = _RAND_0[1:0];
  _RAND_1 = {1{`RANDOM}};
  state__1 = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  state__0 = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  d_first_counter = _RAND_3[1:0];
  _RAND_4 = {1{`RANDOM}};
  beatsLeft_1 = _RAND_4[1:0];
  _RAND_5 = {1{`RANDOM}};
  state_1_0 = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  state_1_1 = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  state_1_2 = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  bundleIn_0_d_bits_sink_r = _RAND_8[2:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLMonitor_12(
  input         clock,
  input         reset,
  input         io_in_a_ready,
  input         io_in_a_valid,
  input  [31:0] io_in_a_bits_address,
  input         io_in_d_valid,
  input  [2:0]  io_in_d_bits_opcode,
  input  [1:0]  io_in_d_bits_param,
  input  [2:0]  io_in_d_bits_size,
  input         io_in_d_bits_source,
  input  [4:0]  io_in_d_bits_sink,
  input         io_in_d_bits_denied,
  input         io_in_d_bits_corrupt
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire [31:0] _is_aligned_T = io_in_a_bits_address & 32'hf; // @[Edges.scala 20:16]
  wire  is_aligned = _is_aligned_T == 32'h0; // @[Edges.scala 20:24]
  wire [32:0] _T_7 = {1'b0,$signed(io_in_a_bits_address)}; // @[Parameters.scala 137:49]
  wire [32:0] _T_27 = $signed(_T_7) & 33'sh100000000; // @[Parameters.scala 137:52]
  wire  _T_28 = $signed(_T_27) == 33'sh0; // @[Parameters.scala 137:67]
  wire  _T_363 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire  _source_ok_T_1 = ~io_in_d_bits_source; // @[Parameters.scala 46:9]
  wire  _T_367 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_371 = io_in_d_bits_size >= 3'h3; // @[Monitor.scala 312:27]
  wire  _T_375 = io_in_d_bits_param == 2'h0; // @[Monitor.scala 313:28]
  wire  _T_379 = ~io_in_d_bits_corrupt; // @[Monitor.scala 314:15]
  wire  _T_383 = ~io_in_d_bits_denied; // @[Monitor.scala 315:15]
  wire  _T_387 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_398 = io_in_d_bits_param <= 2'h2; // @[Bundles.scala 102:26]
  wire  _T_402 = io_in_d_bits_param != 2'h2; // @[Monitor.scala 323:28]
  wire  _T_415 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _T_435 = _T_383 | io_in_d_bits_corrupt; // @[Monitor.scala 334:30]
  wire  _T_444 = io_in_d_bits_opcode == 3'h0; // @[Monitor.scala 338:25]
  wire  _T_461 = io_in_d_bits_opcode == 3'h1; // @[Monitor.scala 346:25]
  wire  _T_479 = io_in_d_bits_opcode == 3'h2; // @[Monitor.scala 354:25]
  wire  _a_first_T = io_in_a_ready & io_in_a_valid; // @[Decoupled.scala 52:35]
  reg  a_first_counter; // @[Edges.scala 228:27]
  wire  a_first_counter1 = a_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  a_first = ~a_first_counter; // @[Edges.scala 230:25]
  reg [31:0] address; // @[Monitor.scala 388:22]
  wire  _T_509 = io_in_a_valid & ~a_first; // @[Monitor.scala 389:19]
  wire  _T_526 = io_in_a_bits_address == address; // @[Monitor.scala 394:32]
  wire [10:0] _d_first_beats1_decode_T_1 = 11'hf << io_in_d_bits_size; // @[package.scala 234:77]
  wire [3:0] _d_first_beats1_decode_T_3 = ~_d_first_beats1_decode_T_1[3:0]; // @[package.scala 234:46]
  wire  d_first_beats1_decode = _d_first_beats1_decode_T_3[3]; // @[Edges.scala 219:59]
  wire  d_first_beats1_opdata = io_in_d_bits_opcode[0]; // @[Edges.scala 105:36]
  wire  d_first_beats1 = d_first_beats1_opdata & d_first_beats1_decode; // @[Edges.scala 220:14]
  reg  d_first_counter; // @[Edges.scala 228:27]
  wire  d_first_counter1 = d_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  d_first = ~d_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  reg [1:0] param_1; // @[Monitor.scala 536:22]
  reg [2:0] size_1; // @[Monitor.scala 537:22]
  reg  source_1; // @[Monitor.scala 538:22]
  reg [4:0] sink; // @[Monitor.scala 539:22]
  reg  denied; // @[Monitor.scala 540:22]
  wire  _T_533 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_534 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  wire  _T_538 = io_in_d_bits_param == param_1; // @[Monitor.scala 543:29]
  wire  _T_542 = io_in_d_bits_size == size_1; // @[Monitor.scala 544:29]
  wire  _T_546 = io_in_d_bits_source == source_1; // @[Monitor.scala 545:29]
  wire  _T_550 = io_in_d_bits_sink == sink; // @[Monitor.scala 546:29]
  wire  _T_554 = io_in_d_bits_denied == denied; // @[Monitor.scala 547:29]
  reg  inflight; // @[Monitor.scala 611:27]
  reg [3:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [3:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg  a_first_counter_1; // @[Edges.scala 228:27]
  wire  a_first_counter1_1 = a_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  a_first_1 = ~a_first_counter_1; // @[Edges.scala 230:25]
  reg  d_first_counter_1; // @[Edges.scala 228:27]
  wire  d_first_counter1_1 = d_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = ~d_first_counter_1; // @[Edges.scala 230:25]
  wire [2:0] _GEN_62 = {io_in_d_bits_source, 2'h0}; // @[Monitor.scala 634:69]
  wire [3:0] _a_opcode_lookup_T = {{1'd0}, _GEN_62}; // @[Monitor.scala 634:69]
  wire [3:0] _a_opcode_lookup_T_1 = inflight_opcodes >> _a_opcode_lookup_T; // @[Monitor.scala 634:44]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [15:0] _GEN_64 = {{12'd0}, _a_opcode_lookup_T_1}; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_6 = _GEN_64 & _a_opcode_lookup_T_5; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[15:1]}; // @[Monitor.scala 634:152]
  wire [3:0] _a_size_lookup_T_1 = inflight_sizes >> _a_opcode_lookup_T; // @[Monitor.scala 638:40]
  wire [15:0] _GEN_72 = {{12'd0}, _a_size_lookup_T_1}; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_6 = _GEN_72 & _a_opcode_lookup_T_5; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[15:1]}; // @[Monitor.scala 638:144]
  wire  _T_560 = io_in_a_valid & a_first_1; // @[Monitor.scala 648:26]
  wire [1:0] _GEN_15 = io_in_a_valid & a_first_1 ? 2'h1 : 2'h0; // @[Monitor.scala 648:71 649:22]
  wire  _T_563 = _a_first_T & a_first_1; // @[Monitor.scala 652:27]
  wire [3:0] a_opcodes_set_interm = _a_first_T & a_first_1 ? 4'h9 : 4'h0; // @[Monitor.scala 652:72 654:28]
  wire [18:0] _a_opcodes_set_T_1 = {{15'd0}, a_opcodes_set_interm}; // @[Monitor.scala 656:54]
  wire  _T_567 = ~inflight; // @[Monitor.scala 658:17]
  wire [1:0] _GEN_16 = _a_first_T & a_first_1 ? 2'h1 : 2'h0; // @[Monitor.scala 652:72 653:28]
  wire [18:0] _GEN_19 = _a_first_T & a_first_1 ? _a_opcodes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 656:28]
  wire  _T_571 = io_in_d_valid & d_first_1; // @[Monitor.scala 671:26]
  wire  _T_573 = ~_T_367; // @[Monitor.scala 671:74]
  wire  _T_574 = io_in_d_valid & d_first_1 & ~_T_367; // @[Monitor.scala 671:71]
  wire [1:0] _d_clr_wo_ready_T = 2'h1 << io_in_d_bits_source; // @[OneHot.scala 57:35]
  wire [1:0] _GEN_21 = io_in_d_valid & d_first_1 & ~_T_367 ? _d_clr_wo_ready_T : 2'h0; // @[Monitor.scala 671:90 672:22]
  wire [30:0] _GEN_298 = {{15'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [30:0] _d_opcodes_clr_T_5 = _GEN_298 << _a_opcode_lookup_T; // @[Monitor.scala 677:76]
  wire [30:0] _GEN_23 = _T_574 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 675:91 677:21]
  wire  same_cycle_resp = _T_560 & _source_ok_T_1; // @[Monitor.scala 681:88]
  wire  _T_586 = inflight >> io_in_d_bits_source | same_cycle_resp; // @[Monitor.scala 682:49]
  wire  _T_592 = _T_461 | _T_461; // @[Monitor.scala 685:77]
  wire  _T_596 = 3'h4 == io_in_d_bits_size; // @[Monitor.scala 687:36]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_43 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_44 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_43; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_45 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_44; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_46 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_45; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_47 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_46; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_48 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_47; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_55 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_46; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_56 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_55; // @[Monitor.scala 690:{38,38}]
  wire  _T_603 = io_in_d_bits_opcode == _GEN_56; // @[Monitor.scala 690:38]
  wire  _T_604 = io_in_d_bits_opcode == _GEN_48 | _T_603; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire [3:0] _GEN_76 = {{1'd0}, io_in_d_bits_size}; // @[Monitor.scala 691:36]
  wire  _T_608 = _GEN_76 == a_size_lookup; // @[Monitor.scala 691:36]
  wire  _T_618 = _T_571 & a_first_1 & io_in_a_valid & _source_ok_T_1 & _T_573; // @[Monitor.scala 694:116]
  wire  a_set_wo_ready = _GEN_15[0];
  wire  d_clr_wo_ready = _GEN_21[0];
  wire  _T_627 = a_set_wo_ready != d_clr_wo_ready | ~(|a_set_wo_ready); // @[Monitor.scala 699:48]
  wire  a_set = _GEN_16[0];
  wire [3:0] a_opcodes_set = _GEN_19[3:0];
  wire [3:0] _inflight_opcodes_T = inflight_opcodes | a_opcodes_set; // @[Monitor.scala 703:43]
  wire [3:0] d_opcodes_clr = _GEN_23[3:0];
  wire [3:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [3:0] _inflight_opcodes_T_2 = _inflight_opcodes_T & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [3:0] _inflight_sizes_T = inflight_sizes | a_opcodes_set; // @[Monitor.scala 704:39]
  wire [3:0] _inflight_sizes_T_2 = _inflight_sizes_T & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [31:0] watchdog; // @[Monitor.scala 706:27]
  wire  _T_636 = ~(|inflight) | plusarg_reader_out == 32'h0 | watchdog < plusarg_reader_out; // @[Monitor.scala 709:47]
  wire [31:0] _watchdog_T_1 = watchdog + 32'h1; // @[Monitor.scala 711:26]
  reg [3:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg  d_first_counter_2; // @[Edges.scala 228:27]
  wire  d_first_counter1_2 = d_first_counter_2 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = ~d_first_counter_2; // @[Edges.scala 230:25]
  wire [3:0] _c_size_lookup_T_1 = inflight_sizes_1 >> _a_opcode_lookup_T; // @[Monitor.scala 747:42]
  wire [15:0] _GEN_78 = {{12'd0}, _c_size_lookup_T_1}; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_6 = _GEN_78 & _a_opcode_lookup_T_5; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[15:1]}; // @[Monitor.scala 747:146]
  wire  _T_662 = io_in_d_valid & d_first_2 & _T_367; // @[Monitor.scala 779:71]
  wire [30:0] _GEN_69 = _T_662 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 783:90 786:21]
  wire  _T_670 = 1'h0 >> io_in_d_bits_source; // @[Monitor.scala 791:25]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_680 = _GEN_76 == c_size_lookup; // @[Monitor.scala 795:36]
  wire [3:0] d_sizes_clr_1 = _GEN_69[3:0];
  wire [3:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [3:0] _inflight_sizes_T_5 = inflight_sizes_1 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        a_first_counter <= 1'h0;
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      address <= io_in_a_bits_address; // @[Monitor.scala 401:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (io_in_d_valid) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        d_first_counter <= d_first_beats1;
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (io_in_d_valid & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (io_in_d_valid & d_first) begin // @[Monitor.scala 549:32]
      param_1 <= io_in_d_bits_param; // @[Monitor.scala 551:15]
    end
    if (io_in_d_valid & d_first) begin // @[Monitor.scala 549:32]
      size_1 <= io_in_d_bits_size; // @[Monitor.scala 552:15]
    end
    if (io_in_d_valid & d_first) begin // @[Monitor.scala 549:32]
      source_1 <= io_in_d_bits_source; // @[Monitor.scala 553:15]
    end
    if (io_in_d_valid & d_first) begin // @[Monitor.scala 549:32]
      sink <= io_in_d_bits_sink; // @[Monitor.scala 554:15]
    end
    if (io_in_d_valid & d_first) begin // @[Monitor.scala 549:32]
      denied <= io_in_d_bits_denied; // @[Monitor.scala 555:15]
    end
    if (reset) begin // @[Monitor.scala 611:27]
      inflight <= 1'h0; // @[Monitor.scala 611:27]
    end else begin
      inflight <= (inflight | a_set) & ~d_clr_wo_ready; // @[Monitor.scala 702:14]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 4'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 4'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first_1) begin // @[Edges.scala 235:21]
        a_first_counter_1 <= 1'h0;
      end else begin
        a_first_counter_1 <= a_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (io_in_d_valid) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        d_first_counter_1 <= d_first_beats1;
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 706:27]
      watchdog <= 32'h0; // @[Monitor.scala 706:27]
    end else if (_a_first_T | io_in_d_valid) begin // @[Monitor.scala 712:47]
      watchdog <= 32'h0; // @[Monitor.scala 712:58]
    end else begin
      watchdog <= _watchdog_T_1; // @[Monitor.scala 711:14]
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 4'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 1'h0; // @[Edges.scala 228:27]
    end else if (io_in_d_valid) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        d_first_counter_2 <= d_first_beats1;
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & ~reset & ~_T_28) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which slave claims it can't support (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_28 & (io_in_a_valid & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get address not aligned to size (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_363) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_363 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_367 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck carries invalid source ID (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_367 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_367 & _T_2 & ~_T_371) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck smaller than a beat (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_371 & (io_in_d_valid & _T_367 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_367 & _T_2 & ~_T_375) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseeAck carries invalid param (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_375 & (io_in_d_valid & _T_367 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_367 & _T_2 & ~_T_379) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is corrupt (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_379 & (io_in_d_valid & _T_367 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_367 & _T_2 & ~_T_383) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is denied (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_383 & (io_in_d_valid & _T_367 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_387 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid source ID (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_387 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_387 & _T_2 & ~_T_371) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant smaller than a beat (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_371 & (io_in_d_valid & _T_387 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_387 & _T_2 & ~_T_398) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid cap param (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_398 & (io_in_d_valid & _T_387 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_387 & _T_2 & ~_T_402) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries toN param (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_402 & (io_in_d_valid & _T_387 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_387 & _T_2 & ~_T_379) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant is corrupt (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_379 & (io_in_d_valid & _T_387 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_387 & _T_2 & ~_T_383) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant is denied (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_383 & (io_in_d_valid & _T_387 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid source ID (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_415 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2 & ~_T_371) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData smaller than a beat (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_371 & (io_in_d_valid & _T_415 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2 & ~_T_398) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid cap param (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_398 & (io_in_d_valid & _T_415 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2 & ~_T_402) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries toN param (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_402 & (io_in_d_valid & _T_415 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2 & ~_T_435) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData is denied but not corrupt (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_435 & (io_in_d_valid & _T_415 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_415 & _T_2 & ~_T_383) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData is denied (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_383 & (io_in_d_valid & _T_415 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_444 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck carries invalid source ID (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_444 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_444 & _T_2 & ~_T_375) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck carries invalid param (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_375 & (io_in_d_valid & _T_444 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_444 & _T_2 & ~_T_379) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck is corrupt (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_379 & (io_in_d_valid & _T_444 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_444 & _T_2 & ~_T_383) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck is denied (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_383 & (io_in_d_valid & _T_444 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_461 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData carries invalid source ID (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_461 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_461 & _T_2 & ~_T_375) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData carries invalid param (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_375 & (io_in_d_valid & _T_461 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_461 & _T_2 & ~_T_435) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData is denied but not corrupt (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_435 & (io_in_d_valid & _T_461 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_461 & _T_2 & ~_T_383) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData is denied (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_383 & (io_in_d_valid & _T_461 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_479 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck carries invalid source ID (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_479 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_479 & _T_2 & ~_T_375) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck carries invalid param (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_375 & (io_in_d_valid & _T_479 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_479 & _T_2 & ~_T_379) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck is corrupt (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_379 & (io_in_d_valid & _T_479 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_479 & _T_2 & ~_T_383) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck is denied (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_383 & (io_in_d_valid & _T_479 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_509 & ~reset & ~_T_526) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel address changed with multibeat operation (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_526 & (_T_509 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_533 & _T_2 & ~_T_534) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_534 & (_T_533 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_533 & _T_2 & ~_T_538) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel param changed within multibeat operation (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_538 & (_T_533 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_533 & _T_2 & ~_T_542) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel size changed within multibeat operation (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_542 & (_T_533 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_533 & _T_2 & ~_T_546) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel source changed within multibeat operation (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_546 & (_T_533 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_533 & _T_2 & ~_T_550) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel sink changed with multibeat operation (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_550 & (_T_533 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_533 & _T_2 & ~_T_554) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel denied changed with multibeat operation (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_554 & (_T_533 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_563 & ~reset & ~_T_567) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel re-used a source ID (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_567 & (_T_563 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_574 & _T_2 & ~_T_586) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_586 & (_T_574 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_574 & same_cycle_resp & _T_2 & ~_T_592) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_592 & (_T_574 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_574 & same_cycle_resp & _T_2 & ~_T_596) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_596 & (_T_574 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_574 & ~same_cycle_resp & _T_2 & ~_T_604) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_604 & (_T_574 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_574 & ~same_cycle_resp & _T_2 & ~_T_608) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_608 & (_T_574 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_618 & _T_2 & ~io_in_a_ready) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~io_in_a_ready & (_T_618 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_2 & ~_T_627) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' and 'D' concurrent, despite minlatency 4 (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_627 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_636) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_636 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_662 & _T_2 & ~_T_670) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_670 & (_T_662 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_662 & _T_2 & ~_T_680) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:76:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_680 & (_T_662 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  address = _RAND_1[31:0];
  _RAND_2 = {1{`RANDOM}};
  d_first_counter = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  opcode_1 = _RAND_3[2:0];
  _RAND_4 = {1{`RANDOM}};
  param_1 = _RAND_4[1:0];
  _RAND_5 = {1{`RANDOM}};
  size_1 = _RAND_5[2:0];
  _RAND_6 = {1{`RANDOM}};
  source_1 = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  sink = _RAND_7[4:0];
  _RAND_8 = {1{`RANDOM}};
  denied = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  inflight = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  inflight_opcodes = _RAND_10[3:0];
  _RAND_11 = {1{`RANDOM}};
  inflight_sizes = _RAND_11[3:0];
  _RAND_12 = {1{`RANDOM}};
  a_first_counter_1 = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  watchdog = _RAND_14[31:0];
  _RAND_15 = {1{`RANDOM}};
  inflight_sizes_1 = _RAND_15[3:0];
  _RAND_16 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_16[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_33(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [2:0]  io_enq_bits_opcode,
  input  [2:0]  io_enq_bits_param,
  input         io_enq_bits_source,
  input  [31:0] io_enq_bits_address,
  input         io_deq_ready,
  output        io_deq_valid,
  output [2:0]  io_deq_bits_opcode,
  output [2:0]  io_deq_bits_param,
  output [2:0]  io_deq_bits_size,
  output        io_deq_bits_source,
  output [31:0] io_deq_bits_address,
  output [7:0]  io_deq_bits_mask,
  output [63:0] io_deq_bits_data,
  output        io_deq_bits_corrupt
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [63:0] _RAND_6;
  reg [31:0] _RAND_7;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
`endif // RANDOMIZE_REG_INIT
  reg [2:0] ram_opcode [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_opcode_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_opcode_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_opcode_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_opcode_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] ram_param [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_param_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_param_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_param_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] ram_size [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_size_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_size_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_source [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_source_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_source_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_en; // @[Decoupled.scala 275:95]
  reg [31:0] ram_address [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_address_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_address_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [31:0] ram_address_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [31:0] ram_address_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_address_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_address_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_address_MPORT_en; // @[Decoupled.scala 275:95]
  reg [7:0] ram_mask [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_mask_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_mask_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [7:0] ram_mask_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [7:0] ram_mask_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_mask_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_mask_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_mask_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_data [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_corrupt [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_en; // @[Decoupled.scala 275:95]
  reg  enq_ptr_value; // @[Counter.scala 61:40]
  reg  deq_ptr_value; // @[Counter.scala 61:40]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  ptr_match = enq_ptr_value == deq_ptr_value; // @[Decoupled.scala 279:33]
  wire  empty = ptr_match & ~maybe_full; // @[Decoupled.scala 280:25]
  wire  full = ptr_match & maybe_full; // @[Decoupled.scala 281:24]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_deq = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign ram_opcode_io_deq_bits_MPORT_en = 1'h1;
  assign ram_opcode_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_opcode_io_deq_bits_MPORT_data = ram_opcode[ram_opcode_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_opcode_MPORT_data = io_enq_bits_opcode;
  assign ram_opcode_MPORT_addr = enq_ptr_value;
  assign ram_opcode_MPORT_mask = 1'h1;
  assign ram_opcode_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_param_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_param_io_deq_bits_MPORT_data = ram_param[ram_param_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_MPORT_data = io_enq_bits_param;
  assign ram_param_MPORT_addr = enq_ptr_value;
  assign ram_param_MPORT_mask = 1'h1;
  assign ram_param_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_size_io_deq_bits_MPORT_en = 1'h1;
  assign ram_size_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_size_io_deq_bits_MPORT_data = ram_size[ram_size_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_size_MPORT_data = 3'h4;
  assign ram_size_MPORT_addr = enq_ptr_value;
  assign ram_size_MPORT_mask = 1'h1;
  assign ram_size_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_source_io_deq_bits_MPORT_en = 1'h1;
  assign ram_source_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_source_io_deq_bits_MPORT_data = ram_source[ram_source_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_source_MPORT_data = io_enq_bits_source;
  assign ram_source_MPORT_addr = enq_ptr_value;
  assign ram_source_MPORT_mask = 1'h1;
  assign ram_source_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_address_io_deq_bits_MPORT_en = 1'h1;
  assign ram_address_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_address_io_deq_bits_MPORT_data = ram_address[ram_address_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_address_MPORT_data = io_enq_bits_address;
  assign ram_address_MPORT_addr = enq_ptr_value;
  assign ram_address_MPORT_mask = 1'h1;
  assign ram_address_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_mask_io_deq_bits_MPORT_en = 1'h1;
  assign ram_mask_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_mask_io_deq_bits_MPORT_data = ram_mask[ram_mask_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_mask_MPORT_data = 8'hff;
  assign ram_mask_MPORT_addr = enq_ptr_value;
  assign ram_mask_MPORT_mask = 1'h1;
  assign ram_mask_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_data_io_deq_bits_MPORT_en = 1'h1;
  assign ram_data_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_data_io_deq_bits_MPORT_data = ram_data[ram_data_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_data_MPORT_data = 64'h0;
  assign ram_data_MPORT_addr = enq_ptr_value;
  assign ram_data_MPORT_mask = 1'h1;
  assign ram_data_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_corrupt_io_deq_bits_MPORT_en = 1'h1;
  assign ram_corrupt_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_corrupt_io_deq_bits_MPORT_data = ram_corrupt[ram_corrupt_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_corrupt_MPORT_data = 1'h0;
  assign ram_corrupt_MPORT_addr = enq_ptr_value;
  assign ram_corrupt_MPORT_mask = 1'h1;
  assign ram_corrupt_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = ~full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_opcode = ram_opcode_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_param = ram_param_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_size = ram_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_source = ram_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_address = ram_address_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_mask = ram_mask_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_data = ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_corrupt = ram_corrupt_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_opcode_MPORT_en & ram_opcode_MPORT_mask) begin
      ram_opcode[ram_opcode_MPORT_addr] <= ram_opcode_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_MPORT_en & ram_param_MPORT_mask) begin
      ram_param[ram_param_MPORT_addr] <= ram_param_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_size_MPORT_en & ram_size_MPORT_mask) begin
      ram_size[ram_size_MPORT_addr] <= ram_size_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_source_MPORT_en & ram_source_MPORT_mask) begin
      ram_source[ram_source_MPORT_addr] <= ram_source_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_address_MPORT_en & ram_address_MPORT_mask) begin
      ram_address[ram_address_MPORT_addr] <= ram_address_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_mask_MPORT_en & ram_mask_MPORT_mask) begin
      ram_mask[ram_mask_MPORT_addr] <= ram_mask_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_data_MPORT_en & ram_data_MPORT_mask) begin
      ram_data[ram_data_MPORT_addr] <= ram_data_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_corrupt_MPORT_en & ram_corrupt_MPORT_mask) begin
      ram_corrupt[ram_corrupt_MPORT_addr] <= ram_corrupt_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Counter.scala 61:40]
      enq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_enq) begin // @[Decoupled.scala 288:16]
      enq_ptr_value <= enq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Counter.scala 61:40]
      deq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_deq) begin // @[Decoupled.scala 292:16]
      deq_ptr_value <= deq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_opcode[initvar] = _RAND_0[2:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_param[initvar] = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_size[initvar] = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_source[initvar] = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_address[initvar] = _RAND_4[31:0];
  _RAND_5 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_mask[initvar] = _RAND_5[7:0];
  _RAND_6 = {2{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_data[initvar] = _RAND_6[63:0];
  _RAND_7 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_corrupt[initvar] = _RAND_7[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_8 = {1{`RANDOM}};
  enq_ptr_value = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  deq_ptr_value = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  maybe_full = _RAND_10[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_34(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [2:0]  io_enq_bits_opcode,
  input  [1:0]  io_enq_bits_param,
  input  [2:0]  io_enq_bits_size,
  input         io_enq_bits_source,
  input  [4:0]  io_enq_bits_sink,
  input         io_enq_bits_denied,
  input  [63:0] io_enq_bits_data,
  input         io_enq_bits_corrupt,
  input         io_deq_ready,
  output        io_deq_valid,
  output [2:0]  io_deq_bits_opcode,
  output [1:0]  io_deq_bits_param,
  output [2:0]  io_deq_bits_size,
  output        io_deq_bits_source,
  output [4:0]  io_deq_bits_sink,
  output        io_deq_bits_denied,
  output [63:0] io_deq_bits_data,
  output        io_deq_bits_corrupt
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [63:0] _RAND_6;
  reg [31:0] _RAND_7;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
`endif // RANDOMIZE_REG_INIT
  reg [2:0] ram_opcode [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_opcode_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_opcode_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_opcode_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_opcode_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_en; // @[Decoupled.scala 275:95]
  reg [1:0] ram_param [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_param_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [1:0] ram_param_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [1:0] ram_param_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] ram_size [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_size_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_size_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_source [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_source_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_source_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_en; // @[Decoupled.scala 275:95]
  reg [4:0] ram_sink [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_sink_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_sink_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [4:0] ram_sink_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [4:0] ram_sink_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_sink_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_sink_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_sink_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_denied [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_denied_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_denied_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_denied_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_denied_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_denied_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_denied_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_denied_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_data [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_corrupt [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_en; // @[Decoupled.scala 275:95]
  reg  enq_ptr_value; // @[Counter.scala 61:40]
  reg  deq_ptr_value; // @[Counter.scala 61:40]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  ptr_match = enq_ptr_value == deq_ptr_value; // @[Decoupled.scala 279:33]
  wire  empty = ptr_match & ~maybe_full; // @[Decoupled.scala 280:25]
  wire  full = ptr_match & maybe_full; // @[Decoupled.scala 281:24]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_deq = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign ram_opcode_io_deq_bits_MPORT_en = 1'h1;
  assign ram_opcode_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_opcode_io_deq_bits_MPORT_data = ram_opcode[ram_opcode_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_opcode_MPORT_data = io_enq_bits_opcode;
  assign ram_opcode_MPORT_addr = enq_ptr_value;
  assign ram_opcode_MPORT_mask = 1'h1;
  assign ram_opcode_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_param_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_param_io_deq_bits_MPORT_data = ram_param[ram_param_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_MPORT_data = io_enq_bits_param;
  assign ram_param_MPORT_addr = enq_ptr_value;
  assign ram_param_MPORT_mask = 1'h1;
  assign ram_param_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_size_io_deq_bits_MPORT_en = 1'h1;
  assign ram_size_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_size_io_deq_bits_MPORT_data = ram_size[ram_size_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_size_MPORT_data = io_enq_bits_size;
  assign ram_size_MPORT_addr = enq_ptr_value;
  assign ram_size_MPORT_mask = 1'h1;
  assign ram_size_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_source_io_deq_bits_MPORT_en = 1'h1;
  assign ram_source_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_source_io_deq_bits_MPORT_data = ram_source[ram_source_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_source_MPORT_data = io_enq_bits_source;
  assign ram_source_MPORT_addr = enq_ptr_value;
  assign ram_source_MPORT_mask = 1'h1;
  assign ram_source_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_sink_io_deq_bits_MPORT_en = 1'h1;
  assign ram_sink_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_sink_io_deq_bits_MPORT_data = ram_sink[ram_sink_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_sink_MPORT_data = io_enq_bits_sink;
  assign ram_sink_MPORT_addr = enq_ptr_value;
  assign ram_sink_MPORT_mask = 1'h1;
  assign ram_sink_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_denied_io_deq_bits_MPORT_en = 1'h1;
  assign ram_denied_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_denied_io_deq_bits_MPORT_data = ram_denied[ram_denied_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_denied_MPORT_data = io_enq_bits_denied;
  assign ram_denied_MPORT_addr = enq_ptr_value;
  assign ram_denied_MPORT_mask = 1'h1;
  assign ram_denied_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_data_io_deq_bits_MPORT_en = 1'h1;
  assign ram_data_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_data_io_deq_bits_MPORT_data = ram_data[ram_data_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_data_MPORT_data = io_enq_bits_data;
  assign ram_data_MPORT_addr = enq_ptr_value;
  assign ram_data_MPORT_mask = 1'h1;
  assign ram_data_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_corrupt_io_deq_bits_MPORT_en = 1'h1;
  assign ram_corrupt_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_corrupt_io_deq_bits_MPORT_data = ram_corrupt[ram_corrupt_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_corrupt_MPORT_data = io_enq_bits_corrupt;
  assign ram_corrupt_MPORT_addr = enq_ptr_value;
  assign ram_corrupt_MPORT_mask = 1'h1;
  assign ram_corrupt_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = ~full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_opcode = ram_opcode_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_param = ram_param_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_size = ram_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_source = ram_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_sink = ram_sink_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_denied = ram_denied_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_data = ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_corrupt = ram_corrupt_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_opcode_MPORT_en & ram_opcode_MPORT_mask) begin
      ram_opcode[ram_opcode_MPORT_addr] <= ram_opcode_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_MPORT_en & ram_param_MPORT_mask) begin
      ram_param[ram_param_MPORT_addr] <= ram_param_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_size_MPORT_en & ram_size_MPORT_mask) begin
      ram_size[ram_size_MPORT_addr] <= ram_size_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_source_MPORT_en & ram_source_MPORT_mask) begin
      ram_source[ram_source_MPORT_addr] <= ram_source_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_sink_MPORT_en & ram_sink_MPORT_mask) begin
      ram_sink[ram_sink_MPORT_addr] <= ram_sink_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_denied_MPORT_en & ram_denied_MPORT_mask) begin
      ram_denied[ram_denied_MPORT_addr] <= ram_denied_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_data_MPORT_en & ram_data_MPORT_mask) begin
      ram_data[ram_data_MPORT_addr] <= ram_data_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_corrupt_MPORT_en & ram_corrupt_MPORT_mask) begin
      ram_corrupt[ram_corrupt_MPORT_addr] <= ram_corrupt_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Counter.scala 61:40]
      enq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_enq) begin // @[Decoupled.scala 288:16]
      enq_ptr_value <= enq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Counter.scala 61:40]
      deq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_deq) begin // @[Decoupled.scala 292:16]
      deq_ptr_value <= deq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_opcode[initvar] = _RAND_0[2:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_param[initvar] = _RAND_1[1:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_size[initvar] = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_source[initvar] = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_sink[initvar] = _RAND_4[4:0];
  _RAND_5 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_denied[initvar] = _RAND_5[0:0];
  _RAND_6 = {2{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_data[initvar] = _RAND_6[63:0];
  _RAND_7 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_corrupt[initvar] = _RAND_7[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_8 = {1{`RANDOM}};
  enq_ptr_value = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  deq_ptr_value = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  maybe_full = _RAND_10[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLBuffer(
  input         clock,
  input         reset,
  output        auto_in_a_ready,
  input         auto_in_a_valid,
  input  [31:0] auto_in_a_bits_address,
  output        auto_in_d_valid,
  output [2:0]  auto_in_d_bits_opcode,
  output [2:0]  auto_in_d_bits_size,
  output [63:0] auto_in_d_bits_data,
  input         auto_out_a_ready,
  output        auto_out_a_valid,
  output [2:0]  auto_out_a_bits_opcode,
  output [2:0]  auto_out_a_bits_param,
  output [2:0]  auto_out_a_bits_size,
  output        auto_out_a_bits_source,
  output [31:0] auto_out_a_bits_address,
  output [7:0]  auto_out_a_bits_mask,
  output [63:0] auto_out_a_bits_data,
  output        auto_out_a_bits_corrupt,
  output        auto_out_d_ready,
  input         auto_out_d_valid,
  input  [2:0]  auto_out_d_bits_opcode,
  input  [1:0]  auto_out_d_bits_param,
  input  [2:0]  auto_out_d_bits_size,
  input  [4:0]  auto_out_d_bits_sink,
  input         auto_out_d_bits_denied,
  input  [63:0] auto_out_d_bits_data,
  input         auto_out_d_bits_corrupt
);
  wire  monitor_clock; // @[Nodes.scala 24:25]
  wire  monitor_reset; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_valid; // @[Nodes.scala 24:25]
  wire [31:0] monitor_io_in_a_bits_address; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  wire [1:0] monitor_io_in_d_bits_param; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_size; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_source; // @[Nodes.scala 24:25]
  wire [4:0] monitor_io_in_d_bits_sink; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_denied; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_corrupt; // @[Nodes.scala 24:25]
  wire  bundleOut_0_a_q_clock; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_reset; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_io_enq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] bundleOut_0_a_q_io_enq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [2:0] bundleOut_0_a_q_io_enq_bits_param; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_io_enq_bits_source; // @[Decoupled.scala 377:21]
  wire [31:0] bundleOut_0_a_q_io_enq_bits_address; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_io_deq_ready; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_io_deq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] bundleOut_0_a_q_io_deq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [2:0] bundleOut_0_a_q_io_deq_bits_param; // @[Decoupled.scala 377:21]
  wire [2:0] bundleOut_0_a_q_io_deq_bits_size; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_io_deq_bits_source; // @[Decoupled.scala 377:21]
  wire [31:0] bundleOut_0_a_q_io_deq_bits_address; // @[Decoupled.scala 377:21]
  wire [7:0] bundleOut_0_a_q_io_deq_bits_mask; // @[Decoupled.scala 377:21]
  wire [63:0] bundleOut_0_a_q_io_deq_bits_data; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_io_deq_bits_corrupt; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_clock; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_reset; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_enq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] bundleIn_0_d_q_io_enq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [1:0] bundleIn_0_d_q_io_enq_bits_param; // @[Decoupled.scala 377:21]
  wire [2:0] bundleIn_0_d_q_io_enq_bits_size; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_enq_bits_source; // @[Decoupled.scala 377:21]
  wire [4:0] bundleIn_0_d_q_io_enq_bits_sink; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_enq_bits_denied; // @[Decoupled.scala 377:21]
  wire [63:0] bundleIn_0_d_q_io_enq_bits_data; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_enq_bits_corrupt; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_deq_ready; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_deq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] bundleIn_0_d_q_io_deq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [1:0] bundleIn_0_d_q_io_deq_bits_param; // @[Decoupled.scala 377:21]
  wire [2:0] bundleIn_0_d_q_io_deq_bits_size; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_deq_bits_source; // @[Decoupled.scala 377:21]
  wire [4:0] bundleIn_0_d_q_io_deq_bits_sink; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_deq_bits_denied; // @[Decoupled.scala 377:21]
  wire [63:0] bundleIn_0_d_q_io_deq_bits_data; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_deq_bits_corrupt; // @[Decoupled.scala 377:21]
  TLMonitor_12 monitor ( // @[Nodes.scala 24:25]
    .clock(monitor_clock),
    .reset(monitor_reset),
    .io_in_a_ready(monitor_io_in_a_ready),
    .io_in_a_valid(monitor_io_in_a_valid),
    .io_in_a_bits_address(monitor_io_in_a_bits_address),
    .io_in_d_valid(monitor_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_io_in_d_bits_opcode),
    .io_in_d_bits_param(monitor_io_in_d_bits_param),
    .io_in_d_bits_size(monitor_io_in_d_bits_size),
    .io_in_d_bits_source(monitor_io_in_d_bits_source),
    .io_in_d_bits_sink(monitor_io_in_d_bits_sink),
    .io_in_d_bits_denied(monitor_io_in_d_bits_denied),
    .io_in_d_bits_corrupt(monitor_io_in_d_bits_corrupt)
  );
  Queue_33 bundleOut_0_a_q ( // @[Decoupled.scala 377:21]
    .clock(bundleOut_0_a_q_clock),
    .reset(bundleOut_0_a_q_reset),
    .io_enq_ready(bundleOut_0_a_q_io_enq_ready),
    .io_enq_valid(bundleOut_0_a_q_io_enq_valid),
    .io_enq_bits_opcode(bundleOut_0_a_q_io_enq_bits_opcode),
    .io_enq_bits_param(bundleOut_0_a_q_io_enq_bits_param),
    .io_enq_bits_source(bundleOut_0_a_q_io_enq_bits_source),
    .io_enq_bits_address(bundleOut_0_a_q_io_enq_bits_address),
    .io_deq_ready(bundleOut_0_a_q_io_deq_ready),
    .io_deq_valid(bundleOut_0_a_q_io_deq_valid),
    .io_deq_bits_opcode(bundleOut_0_a_q_io_deq_bits_opcode),
    .io_deq_bits_param(bundleOut_0_a_q_io_deq_bits_param),
    .io_deq_bits_size(bundleOut_0_a_q_io_deq_bits_size),
    .io_deq_bits_source(bundleOut_0_a_q_io_deq_bits_source),
    .io_deq_bits_address(bundleOut_0_a_q_io_deq_bits_address),
    .io_deq_bits_mask(bundleOut_0_a_q_io_deq_bits_mask),
    .io_deq_bits_data(bundleOut_0_a_q_io_deq_bits_data),
    .io_deq_bits_corrupt(bundleOut_0_a_q_io_deq_bits_corrupt)
  );
  Queue_34 bundleIn_0_d_q ( // @[Decoupled.scala 377:21]
    .clock(bundleIn_0_d_q_clock),
    .reset(bundleIn_0_d_q_reset),
    .io_enq_ready(bundleIn_0_d_q_io_enq_ready),
    .io_enq_valid(bundleIn_0_d_q_io_enq_valid),
    .io_enq_bits_opcode(bundleIn_0_d_q_io_enq_bits_opcode),
    .io_enq_bits_param(bundleIn_0_d_q_io_enq_bits_param),
    .io_enq_bits_size(bundleIn_0_d_q_io_enq_bits_size),
    .io_enq_bits_source(bundleIn_0_d_q_io_enq_bits_source),
    .io_enq_bits_sink(bundleIn_0_d_q_io_enq_bits_sink),
    .io_enq_bits_denied(bundleIn_0_d_q_io_enq_bits_denied),
    .io_enq_bits_data(bundleIn_0_d_q_io_enq_bits_data),
    .io_enq_bits_corrupt(bundleIn_0_d_q_io_enq_bits_corrupt),
    .io_deq_ready(bundleIn_0_d_q_io_deq_ready),
    .io_deq_valid(bundleIn_0_d_q_io_deq_valid),
    .io_deq_bits_opcode(bundleIn_0_d_q_io_deq_bits_opcode),
    .io_deq_bits_param(bundleIn_0_d_q_io_deq_bits_param),
    .io_deq_bits_size(bundleIn_0_d_q_io_deq_bits_size),
    .io_deq_bits_source(bundleIn_0_d_q_io_deq_bits_source),
    .io_deq_bits_sink(bundleIn_0_d_q_io_deq_bits_sink),
    .io_deq_bits_denied(bundleIn_0_d_q_io_deq_bits_denied),
    .io_deq_bits_data(bundleIn_0_d_q_io_deq_bits_data),
    .io_deq_bits_corrupt(bundleIn_0_d_q_io_deq_bits_corrupt)
  );
  assign auto_in_a_ready = bundleOut_0_a_q_io_enq_ready; // @[Nodes.scala 1210:84 Decoupled.scala 381:17]
  assign auto_in_d_valid = bundleIn_0_d_q_io_deq_valid; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign auto_in_d_bits_opcode = bundleIn_0_d_q_io_deq_bits_opcode; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign auto_in_d_bits_size = bundleIn_0_d_q_io_deq_bits_size; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign auto_in_d_bits_data = bundleIn_0_d_q_io_deq_bits_data; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign auto_out_a_valid = bundleOut_0_a_q_io_deq_valid; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_opcode = bundleOut_0_a_q_io_deq_bits_opcode; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_param = bundleOut_0_a_q_io_deq_bits_param; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_size = bundleOut_0_a_q_io_deq_bits_size; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_source = bundleOut_0_a_q_io_deq_bits_source; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_address = bundleOut_0_a_q_io_deq_bits_address; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_mask = bundleOut_0_a_q_io_deq_bits_mask; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_data = bundleOut_0_a_q_io_deq_bits_data; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_corrupt = bundleOut_0_a_q_io_deq_bits_corrupt; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_d_ready = bundleIn_0_d_q_io_enq_ready; // @[Nodes.scala 1207:84 Decoupled.scala 381:17]
  assign monitor_clock = clock;
  assign monitor_reset = reset;
  assign monitor_io_in_a_ready = bundleOut_0_a_q_io_enq_ready; // @[Nodes.scala 1210:84 Decoupled.scala 381:17]
  assign monitor_io_in_a_valid = auto_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_valid = bundleIn_0_d_q_io_deq_valid; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign monitor_io_in_d_bits_opcode = bundleIn_0_d_q_io_deq_bits_opcode; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign monitor_io_in_d_bits_param = bundleIn_0_d_q_io_deq_bits_param; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign monitor_io_in_d_bits_size = bundleIn_0_d_q_io_deq_bits_size; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign monitor_io_in_d_bits_source = bundleIn_0_d_q_io_deq_bits_source; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign monitor_io_in_d_bits_sink = bundleIn_0_d_q_io_deq_bits_sink; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign monitor_io_in_d_bits_denied = bundleIn_0_d_q_io_deq_bits_denied; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign monitor_io_in_d_bits_corrupt = bundleIn_0_d_q_io_deq_bits_corrupt; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign bundleOut_0_a_q_clock = clock;
  assign bundleOut_0_a_q_reset = reset;
  assign bundleOut_0_a_q_io_enq_valid = auto_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_a_q_io_enq_bits_opcode = 3'h4; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_a_q_io_enq_bits_param = 3'h0; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_a_q_io_enq_bits_source = 1'h0; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_a_q_io_enq_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_a_q_io_deq_ready = auto_out_a_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_clock = clock;
  assign bundleIn_0_d_q_reset = reset;
  assign bundleIn_0_d_q_io_enq_valid = auto_out_d_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_param = auto_out_d_bits_param; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_size = auto_out_d_bits_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_source = 1'h0; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_sink = auto_out_d_bits_sink; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_denied = auto_out_d_bits_denied; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_data = auto_out_d_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_corrupt = auto_out_d_bits_corrupt; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_deq_ready = 1'h1; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
endmodule
module TLMonitor_13(
  input         clock,
  input         reset,
  input         io_in_a_ready,
  input         io_in_a_valid,
  input  [31:0] io_in_a_bits_address,
  input         io_in_b_ready,
  input         io_in_b_valid,
  input  [2:0]  io_in_b_bits_opcode,
  input  [1:0]  io_in_b_bits_param,
  input  [2:0]  io_in_b_bits_size,
  input         io_in_b_bits_source,
  input  [31:0] io_in_b_bits_address,
  input  [7:0]  io_in_b_bits_mask,
  input         io_in_b_bits_corrupt,
  input         io_in_c_ready,
  input         io_in_c_valid,
  input  [2:0]  io_in_c_bits_opcode,
  input  [2:0]  io_in_c_bits_param,
  input  [2:0]  io_in_c_bits_size,
  input  [31:0] io_in_c_bits_address,
  input         io_in_d_ready,
  input         io_in_d_valid,
  input  [2:0]  io_in_d_bits_opcode,
  input  [1:0]  io_in_d_bits_param,
  input  [2:0]  io_in_d_bits_size,
  input         io_in_d_bits_source,
  input  [4:0]  io_in_d_bits_sink,
  input         io_in_d_bits_denied,
  input         io_in_d_bits_corrupt,
  input         io_in_e_ready,
  input         io_in_e_valid,
  input  [4:0]  io_in_e_bits_sink
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire [31:0] _is_aligned_T = io_in_a_bits_address & 32'hf; // @[Edges.scala 20:16]
  wire  is_aligned = _is_aligned_T == 32'h0; // @[Edges.scala 20:24]
  wire [32:0] _T_7 = {1'b0,$signed(io_in_a_bits_address)}; // @[Parameters.scala 137:49]
  wire [32:0] _T_27 = $signed(_T_7) & 33'sh100000000; // @[Parameters.scala 137:52]
  wire  _T_28 = $signed(_T_27) == 33'sh0; // @[Parameters.scala 137:67]
  wire  _T_365 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire  _source_ok_T_1 = ~io_in_d_bits_source; // @[Parameters.scala 46:9]
  wire  _T_369 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_373 = io_in_d_bits_size >= 3'h3; // @[Monitor.scala 312:27]
  wire  _T_377 = io_in_d_bits_param == 2'h0; // @[Monitor.scala 313:28]
  wire  _T_381 = ~io_in_d_bits_corrupt; // @[Monitor.scala 314:15]
  wire  _T_385 = ~io_in_d_bits_denied; // @[Monitor.scala 315:15]
  wire  _T_389 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_400 = io_in_d_bits_param <= 2'h2; // @[Bundles.scala 102:26]
  wire  _T_404 = io_in_d_bits_param != 2'h2; // @[Monitor.scala 323:28]
  wire  _T_417 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _T_437 = _T_385 | io_in_d_bits_corrupt; // @[Monitor.scala 334:30]
  wire  _T_446 = io_in_d_bits_opcode == 3'h0; // @[Monitor.scala 338:25]
  wire  _T_463 = io_in_d_bits_opcode == 3'h1; // @[Monitor.scala 346:25]
  wire  _T_481 = io_in_d_bits_opcode == 3'h2; // @[Monitor.scala 354:25]
  wire  _T_498 = io_in_b_bits_opcode <= 3'h6; // @[Bundles.scala 40:24]
  wire  _T_502 = ~io_in_b_bits_source; // @[Parameters.scala 46:9]
  wire  _T_503 = ~_T_502; // @[Monitor.scala 63:7]
  wire [32:0] _T_505 = {1'b0,$signed(io_in_b_bits_address)}; // @[Parameters.scala 137:49]
  wire [32:0] _address_ok_T_3 = $signed(_T_505) & 33'sh100000000; // @[Parameters.scala 137:52]
  wire  _address_ok_T_4 = $signed(_address_ok_T_3) == 33'sh0; // @[Parameters.scala 137:67]
  wire [10:0] _is_aligned_mask_T_4 = 11'hf << io_in_b_bits_size; // @[package.scala 234:77]
  wire [3:0] is_aligned_mask_1 = ~_is_aligned_mask_T_4[3:0]; // @[package.scala 234:46]
  wire [31:0] _GEN_74 = {{28'd0}, is_aligned_mask_1}; // @[Edges.scala 20:16]
  wire [31:0] _is_aligned_T_1 = io_in_b_bits_address & _GEN_74; // @[Edges.scala 20:16]
  wire  is_aligned_1 = _is_aligned_T_1 == 32'h0; // @[Edges.scala 20:24]
  wire [1:0] mask_sizeOH_shiftAmount_1 = io_in_b_bits_size[1:0]; // @[OneHot.scala 63:49]
  wire [3:0] _mask_sizeOH_T_4 = 4'h1 << mask_sizeOH_shiftAmount_1; // @[OneHot.scala 64:12]
  wire [2:0] mask_sizeOH_1 = _mask_sizeOH_T_4[2:0] | 3'h1; // @[Misc.scala 201:81]
  wire  _mask_T_1 = io_in_b_bits_size >= 3'h3; // @[Misc.scala 205:21]
  wire  mask_size_3 = mask_sizeOH_1[2]; // @[Misc.scala 208:26]
  wire  mask_bit_3 = io_in_b_bits_address[2]; // @[Misc.scala 209:26]
  wire  mask_nbit_3 = ~mask_bit_3; // @[Misc.scala 210:20]
  wire  mask_acc_14 = _mask_T_1 | mask_size_3 & mask_nbit_3; // @[Misc.scala 214:29]
  wire  mask_acc_15 = _mask_T_1 | mask_size_3 & mask_bit_3; // @[Misc.scala 214:29]
  wire  mask_size_4 = mask_sizeOH_1[1]; // @[Misc.scala 208:26]
  wire  mask_bit_4 = io_in_b_bits_address[1]; // @[Misc.scala 209:26]
  wire  mask_nbit_4 = ~mask_bit_4; // @[Misc.scala 210:20]
  wire  mask_eq_16 = mask_nbit_3 & mask_nbit_4; // @[Misc.scala 213:27]
  wire  mask_acc_16 = mask_acc_14 | mask_size_4 & mask_eq_16; // @[Misc.scala 214:29]
  wire  mask_eq_17 = mask_nbit_3 & mask_bit_4; // @[Misc.scala 213:27]
  wire  mask_acc_17 = mask_acc_14 | mask_size_4 & mask_eq_17; // @[Misc.scala 214:29]
  wire  mask_eq_18 = mask_bit_3 & mask_nbit_4; // @[Misc.scala 213:27]
  wire  mask_acc_18 = mask_acc_15 | mask_size_4 & mask_eq_18; // @[Misc.scala 214:29]
  wire  mask_eq_19 = mask_bit_3 & mask_bit_4; // @[Misc.scala 213:27]
  wire  mask_acc_19 = mask_acc_15 | mask_size_4 & mask_eq_19; // @[Misc.scala 214:29]
  wire  mask_size_5 = mask_sizeOH_1[0]; // @[Misc.scala 208:26]
  wire  mask_bit_5 = io_in_b_bits_address[0]; // @[Misc.scala 209:26]
  wire  mask_nbit_5 = ~mask_bit_5; // @[Misc.scala 210:20]
  wire  mask_eq_20 = mask_eq_16 & mask_nbit_5; // @[Misc.scala 213:27]
  wire  mask_acc_20 = mask_acc_16 | mask_size_5 & mask_eq_20; // @[Misc.scala 214:29]
  wire  mask_eq_21 = mask_eq_16 & mask_bit_5; // @[Misc.scala 213:27]
  wire  mask_acc_21 = mask_acc_16 | mask_size_5 & mask_eq_21; // @[Misc.scala 214:29]
  wire  mask_eq_22 = mask_eq_17 & mask_nbit_5; // @[Misc.scala 213:27]
  wire  mask_acc_22 = mask_acc_17 | mask_size_5 & mask_eq_22; // @[Misc.scala 214:29]
  wire  mask_eq_23 = mask_eq_17 & mask_bit_5; // @[Misc.scala 213:27]
  wire  mask_acc_23 = mask_acc_17 | mask_size_5 & mask_eq_23; // @[Misc.scala 214:29]
  wire  mask_eq_24 = mask_eq_18 & mask_nbit_5; // @[Misc.scala 213:27]
  wire  mask_acc_24 = mask_acc_18 | mask_size_5 & mask_eq_24; // @[Misc.scala 214:29]
  wire  mask_eq_25 = mask_eq_18 & mask_bit_5; // @[Misc.scala 213:27]
  wire  mask_acc_25 = mask_acc_18 | mask_size_5 & mask_eq_25; // @[Misc.scala 214:29]
  wire  mask_eq_26 = mask_eq_19 & mask_nbit_5; // @[Misc.scala 213:27]
  wire  mask_acc_26 = mask_acc_19 | mask_size_5 & mask_eq_26; // @[Misc.scala 214:29]
  wire  mask_eq_27 = mask_eq_19 & mask_bit_5; // @[Misc.scala 213:27]
  wire  mask_acc_27 = mask_acc_19 | mask_size_5 & mask_eq_27; // @[Misc.scala 214:29]
  wire [7:0] mask_1 = {mask_acc_27,mask_acc_26,mask_acc_25,mask_acc_24,mask_acc_23,mask_acc_22,mask_acc_21,mask_acc_20}; // @[Cat.scala 33:92]
  wire  _T_513 = io_in_b_bits_opcode == 3'h6; // @[Monitor.scala 167:25]
  wire  _T_514 = 3'h4 == io_in_b_bits_size; // @[Parameters.scala 91:48]
  wire  _T_526 = _T_514 & _address_ok_T_4; // @[Monitor.scala 168:75]
  wire  _T_532 = ~_address_ok_T_4; // @[Monitor.scala 49:11]
  wire  _T_538 = ~is_aligned_1; // @[Monitor.scala 49:11]
  wire  _T_539 = io_in_b_bits_param <= 2'h2; // @[Bundles.scala 102:26]
  wire  _T_543 = io_in_b_bits_mask == mask_1; // @[Monitor.scala 173:27]
  wire  _T_546 = ~_T_543; // @[Monitor.scala 49:11]
  wire  _T_547 = ~io_in_b_bits_corrupt; // @[Monitor.scala 174:15]
  wire  _T_550 = ~_T_547; // @[Monitor.scala 49:11]
  wire  _T_551 = io_in_b_bits_opcode == 3'h4; // @[Monitor.scala 177:25]
  wire  _T_576 = io_in_b_bits_param == 2'h0; // @[Monitor.scala 182:31]
  wire  _T_588 = io_in_b_bits_opcode == 3'h0; // @[Monitor.scala 187:25]
  wire  _T_621 = io_in_b_bits_opcode == 3'h1; // @[Monitor.scala 196:25]
  wire [7:0] _T_650 = ~mask_1; // @[Monitor.scala 202:33]
  wire [7:0] _T_651 = io_in_b_bits_mask & _T_650; // @[Monitor.scala 202:31]
  wire  _T_652 = _T_651 == 8'h0; // @[Monitor.scala 202:40]
  wire  _T_656 = io_in_b_bits_opcode == 3'h2; // @[Monitor.scala 205:25]
  wire  _T_689 = io_in_b_bits_opcode == 3'h3; // @[Monitor.scala 214:25]
  wire  _T_722 = io_in_b_bits_opcode == 3'h5; // @[Monitor.scala 223:25]
  wire [10:0] _is_aligned_mask_T_7 = 11'hf << io_in_c_bits_size; // @[package.scala 234:77]
  wire [3:0] is_aligned_mask_2 = ~_is_aligned_mask_T_7[3:0]; // @[package.scala 234:46]
  wire [31:0] _GEN_76 = {{28'd0}, is_aligned_mask_2}; // @[Edges.scala 20:16]
  wire [31:0] _is_aligned_T_2 = io_in_c_bits_address & _GEN_76; // @[Edges.scala 20:16]
  wire  is_aligned_2 = _is_aligned_T_2 == 32'h0; // @[Edges.scala 20:24]
  wire [32:0] _address_ok_T_6 = {1'b0,$signed(io_in_c_bits_address)}; // @[Parameters.scala 137:49]
  wire [32:0] _address_ok_T_8 = $signed(_address_ok_T_6) & 33'sh100000000; // @[Parameters.scala 137:52]
  wire  _address_ok_T_9 = $signed(_address_ok_T_8) == 33'sh0; // @[Parameters.scala 137:67]
  wire  _T_770 = io_in_c_bits_opcode == 3'h4; // @[Monitor.scala 242:25]
  wire  _T_777 = io_in_c_bits_size >= 3'h3; // @[Monitor.scala 245:30]
  wire  _T_784 = io_in_c_bits_param <= 3'h5; // @[Bundles.scala 120:29]
  wire  _T_792 = io_in_c_bits_opcode == 3'h5; // @[Monitor.scala 251:25]
  wire  _T_810 = io_in_c_bits_opcode == 3'h6; // @[Monitor.scala 259:25]
  wire  _T_817 = 3'h4 == io_in_c_bits_size; // @[Parameters.scala 91:48]
  wire  _T_824 = _T_817 & _address_ok_T_9; // @[Parameters.scala 670:56]
  wire  _T_864 = io_in_c_bits_opcode == 3'h7; // @[Monitor.scala 269:25]
  wire  _T_914 = io_in_c_bits_opcode == 3'h0; // @[Monitor.scala 278:25]
  wire  _T_924 = io_in_c_bits_param == 3'h0; // @[Monitor.scala 282:31]
  wire  _T_932 = io_in_c_bits_opcode == 3'h1; // @[Monitor.scala 286:25]
  wire  _T_946 = io_in_c_bits_opcode == 3'h2; // @[Monitor.scala 293:25]
  wire  _a_first_T = io_in_a_ready & io_in_a_valid; // @[Decoupled.scala 52:35]
  reg  a_first_counter; // @[Edges.scala 228:27]
  wire  a_first_counter1 = a_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  a_first = ~a_first_counter; // @[Edges.scala 230:25]
  reg [31:0] address; // @[Monitor.scala 388:22]
  wire  _T_968 = io_in_a_valid & ~a_first; // @[Monitor.scala 389:19]
  wire  _T_985 = io_in_a_bits_address == address; // @[Monitor.scala 394:32]
  wire  _d_first_T = io_in_d_ready & io_in_d_valid; // @[Decoupled.scala 52:35]
  wire [10:0] _d_first_beats1_decode_T_1 = 11'hf << io_in_d_bits_size; // @[package.scala 234:77]
  wire [3:0] _d_first_beats1_decode_T_3 = ~_d_first_beats1_decode_T_1[3:0]; // @[package.scala 234:46]
  wire  d_first_beats1_decode = _d_first_beats1_decode_T_3[3]; // @[Edges.scala 219:59]
  wire  d_first_beats1_opdata = io_in_d_bits_opcode[0]; // @[Edges.scala 105:36]
  wire  d_first_beats1 = d_first_beats1_opdata & d_first_beats1_decode; // @[Edges.scala 220:14]
  reg  d_first_counter; // @[Edges.scala 228:27]
  wire  d_first_counter1 = d_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  d_first = ~d_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  reg [1:0] param_1; // @[Monitor.scala 536:22]
  reg [2:0] size_1; // @[Monitor.scala 537:22]
  reg  source_1; // @[Monitor.scala 538:22]
  reg [4:0] sink; // @[Monitor.scala 539:22]
  reg  denied; // @[Monitor.scala 540:22]
  wire  _T_992 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_993 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  wire  _T_997 = io_in_d_bits_param == param_1; // @[Monitor.scala 543:29]
  wire  _T_1001 = io_in_d_bits_size == size_1; // @[Monitor.scala 544:29]
  wire  _T_1005 = io_in_d_bits_source == source_1; // @[Monitor.scala 545:29]
  wire  _T_1009 = io_in_d_bits_sink == sink; // @[Monitor.scala 546:29]
  wire  _T_1013 = io_in_d_bits_denied == denied; // @[Monitor.scala 547:29]
  wire  _b_first_T = io_in_b_ready & io_in_b_valid; // @[Decoupled.scala 52:35]
  reg  b_first_counter; // @[Edges.scala 228:27]
  wire  b_first_counter1 = b_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  b_first = ~b_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode_2; // @[Monitor.scala 407:22]
  reg [1:0] param_2; // @[Monitor.scala 408:22]
  reg [2:0] size_2; // @[Monitor.scala 409:22]
  reg  source_2; // @[Monitor.scala 410:22]
  reg [31:0] address_1; // @[Monitor.scala 411:22]
  wire  _T_1020 = io_in_b_valid & ~b_first; // @[Monitor.scala 412:19]
  wire  _T_1021 = io_in_b_bits_opcode == opcode_2; // @[Monitor.scala 413:32]
  wire  _T_1025 = io_in_b_bits_param == param_2; // @[Monitor.scala 414:32]
  wire  _T_1029 = io_in_b_bits_size == size_2; // @[Monitor.scala 415:32]
  wire  _T_1033 = io_in_b_bits_source == source_2; // @[Monitor.scala 416:32]
  wire  _T_1037 = io_in_b_bits_address == address_1; // @[Monitor.scala 417:32]
  wire  _c_first_T = io_in_c_ready & io_in_c_valid; // @[Decoupled.scala 52:35]
  wire  c_first_beats1_decode = is_aligned_mask_2[3]; // @[Edges.scala 219:59]
  wire  c_first_beats1_opdata = io_in_c_bits_opcode[0]; // @[Edges.scala 101:36]
  wire  c_first_beats1 = c_first_beats1_opdata & c_first_beats1_decode; // @[Edges.scala 220:14]
  reg  c_first_counter; // @[Edges.scala 228:27]
  wire  c_first_counter1 = c_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  c_first = ~c_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode_3; // @[Monitor.scala 512:22]
  reg [2:0] param_3; // @[Monitor.scala 513:22]
  reg [2:0] size_3; // @[Monitor.scala 514:22]
  reg [31:0] address_2; // @[Monitor.scala 516:22]
  wire  _T_1044 = io_in_c_valid & ~c_first; // @[Monitor.scala 517:19]
  wire  _T_1045 = io_in_c_bits_opcode == opcode_3; // @[Monitor.scala 518:32]
  wire  _T_1049 = io_in_c_bits_param == param_3; // @[Monitor.scala 519:32]
  wire  _T_1053 = io_in_c_bits_size == size_3; // @[Monitor.scala 520:32]
  wire  _T_1061 = io_in_c_bits_address == address_2; // @[Monitor.scala 522:32]
  reg  inflight; // @[Monitor.scala 611:27]
  reg [3:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [3:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg  a_first_counter_1; // @[Edges.scala 228:27]
  wire  a_first_counter1_1 = a_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  a_first_1 = ~a_first_counter_1; // @[Edges.scala 230:25]
  reg  d_first_counter_1; // @[Edges.scala 228:27]
  wire  d_first_counter1_1 = d_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = ~d_first_counter_1; // @[Edges.scala 230:25]
  wire [2:0] _GEN_80 = {io_in_d_bits_source, 2'h0}; // @[Monitor.scala 634:69]
  wire [3:0] _a_opcode_lookup_T = {{1'd0}, _GEN_80}; // @[Monitor.scala 634:69]
  wire [3:0] _a_opcode_lookup_T_1 = inflight_opcodes >> _a_opcode_lookup_T; // @[Monitor.scala 634:44]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [15:0] _GEN_86 = {{12'd0}, _a_opcode_lookup_T_1}; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_6 = _GEN_86 & _a_opcode_lookup_T_5; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[15:1]}; // @[Monitor.scala 634:152]
  wire [3:0] _a_size_lookup_T_1 = inflight_sizes >> _a_opcode_lookup_T; // @[Monitor.scala 638:40]
  wire [15:0] _GEN_89 = {{12'd0}, _a_size_lookup_T_1}; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_6 = _GEN_89 & _a_opcode_lookup_T_5; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[15:1]}; // @[Monitor.scala 638:144]
  wire  _T_1067 = io_in_a_valid & a_first_1; // @[Monitor.scala 648:26]
  wire [1:0] _GEN_27 = io_in_a_valid & a_first_1 ? 2'h1 : 2'h0; // @[Monitor.scala 648:71 649:22]
  wire  _T_1070 = _a_first_T & a_first_1; // @[Monitor.scala 652:27]
  wire [3:0] a_opcodes_set_interm = _a_first_T & a_first_1 ? 4'hd : 4'h0; // @[Monitor.scala 652:72 654:28]
  wire [18:0] _a_opcodes_set_T_1 = {{15'd0}, a_opcodes_set_interm}; // @[Monitor.scala 656:54]
  wire [3:0] a_sizes_set_interm = _a_first_T & a_first_1 ? 4'h9 : 4'h0; // @[Monitor.scala 652:72 655:28]
  wire [18:0] _a_sizes_set_T_1 = {{15'd0}, a_sizes_set_interm}; // @[Monitor.scala 657:52]
  wire  _T_1074 = ~inflight; // @[Monitor.scala 658:17]
  wire [1:0] _GEN_28 = _a_first_T & a_first_1 ? 2'h1 : 2'h0; // @[Monitor.scala 652:72 653:28]
  wire [18:0] _GEN_31 = _a_first_T & a_first_1 ? _a_opcodes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 656:28]
  wire [18:0] _GEN_32 = _a_first_T & a_first_1 ? _a_sizes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 657:28]
  wire  _T_1078 = io_in_d_valid & d_first_1; // @[Monitor.scala 671:26]
  wire  _T_1080 = ~_T_369; // @[Monitor.scala 671:74]
  wire  _T_1081 = io_in_d_valid & d_first_1 & ~_T_369; // @[Monitor.scala 671:71]
  wire [1:0] _d_clr_wo_ready_T = 2'h1 << io_in_d_bits_source; // @[OneHot.scala 57:35]
  wire [1:0] _GEN_33 = io_in_d_valid & d_first_1 & ~_T_369 ? _d_clr_wo_ready_T : 2'h0; // @[Monitor.scala 671:90 672:22]
  wire [30:0] _GEN_700 = {{15'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [30:0] _d_opcodes_clr_T_5 = _GEN_700 << _a_opcode_lookup_T; // @[Monitor.scala 677:76]
  wire [1:0] _GEN_34 = _d_first_T & d_first_1 & _T_1080 ? _d_clr_wo_ready_T : 2'h0; // @[Monitor.scala 675:91 676:21]
  wire [30:0] _GEN_35 = _d_first_T & d_first_1 & _T_1080 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 675:91 677:21]
  wire  same_cycle_resp = _T_1067 & _source_ok_T_1; // @[Monitor.scala 681:88]
  wire  _T_1093 = inflight >> io_in_d_bits_source | same_cycle_resp; // @[Monitor.scala 682:49]
  wire  _T_1099 = _T_389 | _T_417; // @[Monitor.scala 685:77]
  wire  _T_1103 = 3'h4 == io_in_d_bits_size; // @[Monitor.scala 687:36]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_55 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_56 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_55; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_57 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_56; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_58 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_57; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_59 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_58; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_60 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_59; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_67 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_58; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_68 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_67; // @[Monitor.scala 690:{38,38}]
  wire  _T_1110 = io_in_d_bits_opcode == _GEN_68; // @[Monitor.scala 690:38]
  wire  _T_1111 = io_in_d_bits_opcode == _GEN_60 | _T_1110; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire [3:0] _GEN_93 = {{1'd0}, io_in_d_bits_size}; // @[Monitor.scala 691:36]
  wire  _T_1115 = _GEN_93 == a_size_lookup; // @[Monitor.scala 691:36]
  wire  _T_1125 = _T_1078 & a_first_1 & io_in_a_valid & _source_ok_T_1 & _T_1080; // @[Monitor.scala 694:116]
  wire  _T_1126 = ~io_in_d_ready; // @[Monitor.scala 695:15]
  wire  _T_1127 = ~io_in_d_ready | io_in_a_ready; // @[Monitor.scala 695:32]
  wire  a_set_wo_ready = _GEN_27[0];
  wire  d_clr_wo_ready = _GEN_33[0];
  wire  _T_1134 = a_set_wo_ready != d_clr_wo_ready | ~(|a_set_wo_ready); // @[Monitor.scala 699:48]
  wire  a_set = _GEN_28[0];
  wire  d_clr = _GEN_34[0];
  wire [3:0] a_opcodes_set = _GEN_31[3:0];
  wire [3:0] _inflight_opcodes_T = inflight_opcodes | a_opcodes_set; // @[Monitor.scala 703:43]
  wire [3:0] d_opcodes_clr = _GEN_35[3:0];
  wire [3:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [3:0] _inflight_opcodes_T_2 = _inflight_opcodes_T & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [3:0] a_sizes_set = _GEN_32[3:0];
  wire [3:0] _inflight_sizes_T = inflight_sizes | a_sizes_set; // @[Monitor.scala 704:39]
  wire [3:0] _inflight_sizes_T_2 = _inflight_sizes_T & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [31:0] watchdog; // @[Monitor.scala 706:27]
  wire  _T_1143 = ~(|inflight) | plusarg_reader_out == 32'h0 | watchdog < plusarg_reader_out; // @[Monitor.scala 709:47]
  wire [31:0] _watchdog_T_1 = watchdog + 32'h1; // @[Monitor.scala 711:26]
  reg  inflight_1; // @[Monitor.scala 723:35]
  reg [3:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg  c_first_counter_1; // @[Edges.scala 228:27]
  wire  c_first_counter1_1 = c_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  c_first_1 = ~c_first_counter_1; // @[Edges.scala 230:25]
  reg  d_first_counter_2; // @[Edges.scala 228:27]
  wire  d_first_counter1_2 = d_first_counter_2 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = ~d_first_counter_2; // @[Edges.scala 230:25]
  wire [3:0] _c_size_lookup_T_1 = inflight_sizes_1 >> _a_opcode_lookup_T; // @[Monitor.scala 747:42]
  wire [15:0] _GEN_95 = {{12'd0}, _c_size_lookup_T_1}; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_6 = _GEN_95 & _a_opcode_lookup_T_5; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[15:1]}; // @[Monitor.scala 747:146]
  wire  _T_1153 = io_in_c_bits_opcode[2] & io_in_c_bits_opcode[1]; // @[Edges.scala 67:40]
  wire  _T_1154 = io_in_c_valid & c_first_1 & _T_1153; // @[Monitor.scala 756:37]
  wire [1:0] _GEN_72 = io_in_c_valid & c_first_1 & _T_1153 ? 2'h1 : 2'h0; // @[Monitor.scala 756:71 757:22]
  wire  _T_1160 = _c_first_T & c_first_1 & _T_1153; // @[Monitor.scala 760:38]
  wire [3:0] _c_sizes_set_interm_T = {io_in_c_bits_size, 1'h0}; // @[Monitor.scala 763:51]
  wire [3:0] _c_sizes_set_interm_T_1 = _c_sizes_set_interm_T | 4'h1; // @[Monitor.scala 763:59]
  wire [3:0] c_sizes_set_interm = _c_first_T & c_first_1 & _T_1153 ? _c_sizes_set_interm_T_1 : 4'h0; // @[Monitor.scala 760:72 763:28]
  wire [18:0] _c_sizes_set_T_1 = {{15'd0}, c_sizes_set_interm}; // @[Monitor.scala 765:52]
  wire  _T_1163 = ~inflight_1; // @[Monitor.scala 766:17]
  wire [1:0] _GEN_73 = _c_first_T & c_first_1 & _T_1153 ? 2'h1 : 2'h0; // @[Monitor.scala 760:72 761:28]
  wire [18:0] _GEN_77 = _c_first_T & c_first_1 & _T_1153 ? _c_sizes_set_T_1 : 19'h0; // @[Monitor.scala 760:72 765:28]
  wire  _T_1167 = io_in_d_valid & d_first_2; // @[Monitor.scala 779:26]
  wire  _T_1169 = io_in_d_valid & d_first_2 & _T_369; // @[Monitor.scala 779:71]
  wire [1:0] _GEN_78 = io_in_d_valid & d_first_2 & _T_369 ? _d_clr_wo_ready_T : 2'h0; // @[Monitor.scala 779:89 780:22]
  wire [1:0] _GEN_79 = _d_first_T & d_first_2 & _T_369 ? _d_clr_wo_ready_T : 2'h0; // @[Monitor.scala 783:90 784:21]
  wire [30:0] _GEN_81 = _d_first_T & d_first_2 & _T_369 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 783:90 786:21]
  wire  same_cycle_resp_1 = _T_1154 & _source_ok_T_1; // @[Monitor.scala 790:88]
  wire  _T_1179 = inflight_1 >> io_in_d_bits_source | same_cycle_resp_1; // @[Monitor.scala 791:49]
  wire  _T_1183 = io_in_d_bits_size == io_in_c_bits_size; // @[Monitor.scala 793:36]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_1187 = _GEN_93 == c_size_lookup; // @[Monitor.scala 795:36]
  wire  _T_1196 = _T_1167 & c_first_1 & io_in_c_valid & _source_ok_T_1 & _T_369; // @[Monitor.scala 799:116]
  wire  _T_1198 = _T_1126 | io_in_c_ready; // @[Monitor.scala 800:32]
  wire  c_set_wo_ready = _GEN_72[0];
  wire  _T_1202 = |c_set_wo_ready; // @[Monitor.scala 804:28]
  wire  d_clr_wo_ready_1 = _GEN_78[0];
  wire  _T_1203 = c_set_wo_ready != d_clr_wo_ready_1; // @[Monitor.scala 805:31]
  wire  c_set = _GEN_73[0];
  wire  d_clr_1 = _GEN_79[0];
  wire [3:0] c_sizes_set = _GEN_77[3:0];
  wire [3:0] _inflight_sizes_T_3 = inflight_sizes_1 | c_sizes_set; // @[Monitor.scala 811:41]
  wire [3:0] d_sizes_clr_1 = _GEN_81[3:0];
  wire [3:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [3:0] _inflight_sizes_T_5 = _inflight_sizes_T_3 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  reg [31:0] watchdog_1; // @[Monitor.scala 813:27]
  wire  _T_1212 = ~(|inflight_1) | plusarg_reader_1_out == 32'h0 | watchdog_1 < plusarg_reader_1_out; // @[Monitor.scala 816:47]
  wire [31:0] _watchdog_T_3 = watchdog_1 + 32'h1; // @[Monitor.scala 818:26]
  reg [31:0] inflight_2; // @[Monitor.scala 823:27]
  reg  d_first_counter_3; // @[Edges.scala 228:27]
  wire  d_first_counter1_3 = d_first_counter_3 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_3 = ~d_first_counter_3; // @[Edges.scala 230:25]
  wire  _T_1224 = io_in_d_bits_opcode[2] & ~io_in_d_bits_opcode[1]; // @[Edges.scala 70:40]
  wire  _T_1225 = _d_first_T & d_first_3 & _T_1224; // @[Monitor.scala 829:38]
  wire [31:0] _d_set_T = 32'h1 << io_in_d_bits_sink; // @[OneHot.scala 57:35]
  wire [31:0] _T_1226 = inflight_2 >> io_in_d_bits_sink; // @[Monitor.scala 831:23]
  wire  _T_1228 = ~_T_1226[0]; // @[Monitor.scala 831:14]
  wire [31:0] d_set = _d_first_T & d_first_3 & _T_1224 ? _d_set_T : 32'h0; // @[Monitor.scala 829:72 830:13]
  wire  _T_1232 = io_in_e_ready & io_in_e_valid; // @[Decoupled.scala 52:35]
  wire [31:0] _e_clr_T = 32'h1 << io_in_e_bits_sink; // @[OneHot.scala 57:35]
  wire [31:0] _T_1235 = d_set | inflight_2; // @[Monitor.scala 837:24]
  wire [31:0] _T_1236 = _T_1235 >> io_in_e_bits_sink; // @[Monitor.scala 837:35]
  wire [31:0] e_clr = _T_1232 ? _e_clr_T : 32'h0; // @[Monitor.scala 835:73 836:13]
  wire [31:0] _inflight_T_6 = inflight_2 | d_set; // @[Monitor.scala 842:27]
  wire [31:0] _inflight_T_7 = ~e_clr; // @[Monitor.scala 842:38]
  wire [31:0] _inflight_T_8 = _inflight_T_6 & _inflight_T_7; // @[Monitor.scala 842:36]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        a_first_counter <= 1'h0;
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      address <= io_in_a_bits_address; // @[Monitor.scala 401:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        d_first_counter <= d_first_beats1;
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      param_1 <= io_in_d_bits_param; // @[Monitor.scala 551:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      size_1 <= io_in_d_bits_size; // @[Monitor.scala 552:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      source_1 <= io_in_d_bits_source; // @[Monitor.scala 553:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      sink <= io_in_d_bits_sink; // @[Monitor.scala 554:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      denied <= io_in_d_bits_denied; // @[Monitor.scala 555:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      b_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_b_first_T) begin // @[Edges.scala 234:17]
      if (b_first) begin // @[Edges.scala 235:21]
        b_first_counter <= 1'h0;
      end else begin
        b_first_counter <= b_first_counter1;
      end
    end
    if (_b_first_T & b_first) begin // @[Monitor.scala 419:32]
      opcode_2 <= io_in_b_bits_opcode; // @[Monitor.scala 420:15]
    end
    if (_b_first_T & b_first) begin // @[Monitor.scala 419:32]
      param_2 <= io_in_b_bits_param; // @[Monitor.scala 421:15]
    end
    if (_b_first_T & b_first) begin // @[Monitor.scala 419:32]
      size_2 <= io_in_b_bits_size; // @[Monitor.scala 422:15]
    end
    if (_b_first_T & b_first) begin // @[Monitor.scala 419:32]
      source_2 <= io_in_b_bits_source; // @[Monitor.scala 423:15]
    end
    if (_b_first_T & b_first) begin // @[Monitor.scala 419:32]
      address_1 <= io_in_b_bits_address; // @[Monitor.scala 424:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      c_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_c_first_T) begin // @[Edges.scala 234:17]
      if (c_first) begin // @[Edges.scala 235:21]
        c_first_counter <= c_first_beats1;
      end else begin
        c_first_counter <= c_first_counter1;
      end
    end
    if (_c_first_T & c_first) begin // @[Monitor.scala 524:32]
      opcode_3 <= io_in_c_bits_opcode; // @[Monitor.scala 525:15]
    end
    if (_c_first_T & c_first) begin // @[Monitor.scala 524:32]
      param_3 <= io_in_c_bits_param; // @[Monitor.scala 526:15]
    end
    if (_c_first_T & c_first) begin // @[Monitor.scala 524:32]
      size_3 <= io_in_c_bits_size; // @[Monitor.scala 527:15]
    end
    if (_c_first_T & c_first) begin // @[Monitor.scala 524:32]
      address_2 <= io_in_c_bits_address; // @[Monitor.scala 529:15]
    end
    if (reset) begin // @[Monitor.scala 611:27]
      inflight <= 1'h0; // @[Monitor.scala 611:27]
    end else begin
      inflight <= (inflight | a_set) & ~d_clr; // @[Monitor.scala 702:14]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 4'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 4'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first_1) begin // @[Edges.scala 235:21]
        a_first_counter_1 <= 1'h0;
      end else begin
        a_first_counter_1 <= a_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        d_first_counter_1 <= d_first_beats1;
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 706:27]
      watchdog <= 32'h0; // @[Monitor.scala 706:27]
    end else if (_a_first_T | _d_first_T) begin // @[Monitor.scala 712:47]
      watchdog <= 32'h0; // @[Monitor.scala 712:58]
    end else begin
      watchdog <= _watchdog_T_1; // @[Monitor.scala 711:14]
    end
    if (reset) begin // @[Monitor.scala 723:35]
      inflight_1 <= 1'h0; // @[Monitor.scala 723:35]
    end else begin
      inflight_1 <= (inflight_1 | c_set) & ~d_clr_1; // @[Monitor.scala 809:22]
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 4'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      c_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_c_first_T) begin // @[Edges.scala 234:17]
      if (c_first_1) begin // @[Edges.scala 235:21]
        c_first_counter_1 <= c_first_beats1;
      end else begin
        c_first_counter_1 <= c_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        d_first_counter_2 <= d_first_beats1;
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    if (reset) begin // @[Monitor.scala 813:27]
      watchdog_1 <= 32'h0; // @[Monitor.scala 813:27]
    end else if (_c_first_T | _d_first_T) begin // @[Monitor.scala 819:47]
      watchdog_1 <= 32'h0; // @[Monitor.scala 819:58]
    end else begin
      watchdog_1 <= _watchdog_T_3; // @[Monitor.scala 818:14]
    end
    if (reset) begin // @[Monitor.scala 823:27]
      inflight_2 <= 32'h0; // @[Monitor.scala 823:27]
    end else begin
      inflight_2 <= _inflight_T_8; // @[Monitor.scala 842:14]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_3 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_3) begin // @[Edges.scala 235:21]
        d_first_counter_3 <= d_first_beats1;
      end else begin
        d_first_counter_3 <= d_first_counter1_3;
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & ~reset & ~_T_28) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_28 & (io_in_a_valid & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & ~reset & ~_T_28) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock from a client which does not support Probe (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_28 & (io_in_a_valid & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock address not aligned to size (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_365) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_365 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_369 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck carries invalid source ID (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_369 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_369 & _T_2 & ~_T_373) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck smaller than a beat (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_373 & (io_in_d_valid & _T_369 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_369 & _T_2 & ~_T_377) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseeAck carries invalid param (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_377 & (io_in_d_valid & _T_369 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_369 & _T_2 & ~_T_381) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is corrupt (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_381 & (io_in_d_valid & _T_369 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_369 & _T_2 & ~_T_385) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is denied (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_385 & (io_in_d_valid & _T_369 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_389 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid source ID (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_389 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_389 & _T_2 & ~_T_373) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant smaller than a beat (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_373 & (io_in_d_valid & _T_389 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_389 & _T_2 & ~_T_400) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid cap param (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_400 & (io_in_d_valid & _T_389 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_389 & _T_2 & ~_T_404) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries toN param (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_404 & (io_in_d_valid & _T_389 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_389 & _T_2 & ~_T_381) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant is corrupt (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_381 & (io_in_d_valid & _T_389 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_389 & _T_2 & ~_T_385) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant is denied (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_385 & (io_in_d_valid & _T_389 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_417 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid source ID (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_417 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_417 & _T_2 & ~_T_373) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData smaller than a beat (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_373 & (io_in_d_valid & _T_417 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_417 & _T_2 & ~_T_400) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid cap param (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_400 & (io_in_d_valid & _T_417 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_417 & _T_2 & ~_T_404) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries toN param (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_404 & (io_in_d_valid & _T_417 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_417 & _T_2 & ~_T_437) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData is denied but not corrupt (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_437 & (io_in_d_valid & _T_417 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_417 & _T_2 & ~_T_385) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData is denied (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_385 & (io_in_d_valid & _T_417 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_446 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck carries invalid source ID (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_446 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_446 & _T_2 & ~_T_377) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck carries invalid param (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_377 & (io_in_d_valid & _T_446 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_446 & _T_2 & ~_T_381) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck is corrupt (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_381 & (io_in_d_valid & _T_446 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_446 & _T_2 & ~_T_385) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck is denied (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_385 & (io_in_d_valid & _T_446 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_463 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData carries invalid source ID (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_463 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_463 & _T_2 & ~_T_377) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData carries invalid param (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_377 & (io_in_d_valid & _T_463 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_463 & _T_2 & ~_T_437) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData is denied but not corrupt (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_437 & (io_in_d_valid & _T_463 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_463 & _T_2 & ~_T_385) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData is denied (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_385 & (io_in_d_valid & _T_463 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_481 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck carries invalid source ID (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_481 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_481 & _T_2 & ~_T_377) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck carries invalid param (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_377 & (io_in_d_valid & _T_481 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_481 & _T_2 & ~_T_381) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck is corrupt (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_381 & (io_in_d_valid & _T_481 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_481 & _T_2 & ~_T_385) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck is denied (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_385 & (io_in_d_valid & _T_481 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & ~reset & ~_T_498) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel has invalid opcode (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_498 & (io_in_b_valid & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_513 & _T_2 & ~_T_526) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel carries Probe type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_526 & (io_in_b_valid & _T_513 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_513 & _T_2 & ~_address_ok_T_4) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Probe carries unmanaged address (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_4 & (io_in_b_valid & _T_513 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_513 & _T_2 & _T_503) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Probe carries source that is not first source (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_503 & (io_in_b_valid & _T_513 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_513 & _T_2 & ~is_aligned_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Probe address not aligned to size (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_1 & (io_in_b_valid & _T_513 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_513 & _T_2 & ~_T_539) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Probe carries invalid cap param (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_539 & (io_in_b_valid & _T_513 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_513 & _T_2 & ~_T_543) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Probe contains invalid mask (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_543 & (io_in_b_valid & _T_513 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_513 & _T_2 & ~_T_547) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Probe is corrupt (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_547 & (io_in_b_valid & _T_513 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_551 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel carries Get type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_b_valid & _T_551 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_551 & ~reset & _T_532) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Get carries unmanaged address (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_532 & (io_in_b_valid & _T_551 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_551 & ~reset & _T_503) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Get carries source that is not first source (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_503 & (io_in_b_valid & _T_551 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_551 & ~reset & _T_538) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Get address not aligned to size (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_538 & (io_in_b_valid & _T_551 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_551 & ~reset & ~_T_576) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Get carries invalid param (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_576 & (io_in_b_valid & _T_551 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_551 & ~reset & _T_546) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Get contains invalid mask (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_546 & (io_in_b_valid & _T_551 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_551 & ~reset & _T_550) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Get is corrupt (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_550 & (io_in_b_valid & _T_551 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_588 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel carries PutFull type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_b_valid & _T_588 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_588 & ~reset & _T_532) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel PutFull carries unmanaged address (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_532 & (io_in_b_valid & _T_588 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_588 & ~reset & _T_503) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel PutFull carries source that is not first source (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_503 & (io_in_b_valid & _T_588 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_588 & ~reset & _T_538) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel PutFull address not aligned to size (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_538 & (io_in_b_valid & _T_588 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_588 & ~reset & ~_T_576) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel PutFull carries invalid param (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_576 & (io_in_b_valid & _T_588 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_588 & ~reset & _T_546) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel PutFull contains invalid mask (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_546 & (io_in_b_valid & _T_588 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_621 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel carries PutPartial type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_b_valid & _T_621 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_621 & ~reset & _T_532) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel PutPartial carries unmanaged address (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_532 & (io_in_b_valid & _T_621 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_621 & ~reset & _T_503) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel PutPartial carries source that is not first source (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_503 & (io_in_b_valid & _T_621 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_621 & ~reset & _T_538) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel PutPartial address not aligned to size (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_538 & (io_in_b_valid & _T_621 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_621 & ~reset & ~_T_576) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel PutPartial carries invalid param (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_576 & (io_in_b_valid & _T_621 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_621 & ~reset & ~_T_652) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel PutPartial contains invalid mask (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_652 & (io_in_b_valid & _T_621 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_656 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel carries Arithmetic type unsupported by master (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_b_valid & _T_656 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_656 & ~reset & _T_532) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Arithmetic carries unmanaged address (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_532 & (io_in_b_valid & _T_656 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_656 & ~reset & _T_503) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Arithmetic carries source that is not first source (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_503 & (io_in_b_valid & _T_656 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_656 & ~reset & _T_538) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Arithmetic address not aligned to size (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_538 & (io_in_b_valid & _T_656 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_656 & ~reset & _T_546) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Arithmetic contains invalid mask (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_546 & (io_in_b_valid & _T_656 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_689 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel carries Logical type unsupported by client (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_b_valid & _T_689 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_689 & ~reset & _T_532) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Logical carries unmanaged address (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_532 & (io_in_b_valid & _T_689 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_689 & ~reset & _T_503) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Logical carries source that is not first source (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_503 & (io_in_b_valid & _T_689 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_689 & ~reset & _T_538) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Logical address not aligned to size (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_538 & (io_in_b_valid & _T_689 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_689 & ~reset & _T_546) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Logical contains invalid mask (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_546 & (io_in_b_valid & _T_689 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_722 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel carries Hint type unsupported by client (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_b_valid & _T_722 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_722 & ~reset & _T_532) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Hint carries unmanaged address (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_532 & (io_in_b_valid & _T_722 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_722 & ~reset & _T_503) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Hint carries source that is not first source (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_503 & (io_in_b_valid & _T_722 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_722 & ~reset & _T_538) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Hint address not aligned to size (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_538 & (io_in_b_valid & _T_722 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_722 & ~reset & _T_546) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Hint contains invalid mask (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_546 & (io_in_b_valid & _T_722 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_b_valid & _T_722 & ~reset & _T_550) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel Hint is corrupt (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_550 & (io_in_b_valid & _T_722 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_770 & ~reset & ~_address_ok_T_9) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAck carries unmanaged address (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_9 & (io_in_c_valid & _T_770 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_770 & ~reset & ~_T_777) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAck smaller than a beat (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_777 & (io_in_c_valid & _T_770 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_770 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAck address not aligned to size (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_770 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_770 & ~reset & ~_T_784) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAck carries invalid report param (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_784 & (io_in_c_valid & _T_770 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_792 & ~reset & ~_address_ok_T_9) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAckData carries unmanaged address (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_9 & (io_in_c_valid & _T_792 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_792 & ~reset & ~_T_777) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAckData smaller than a beat (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_777 & (io_in_c_valid & _T_792 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_792 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAckData address not aligned to size (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_792 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_792 & ~reset & ~_T_784) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ProbeAckData carries invalid report param (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_784 & (io_in_c_valid & _T_792 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_810 & ~reset & ~_T_824) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel carries Release type unsupported by manager (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_824 & (io_in_c_valid & _T_810 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_810 & ~reset & ~_T_824) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel carries Release from a client which does not support Probe (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_824 & (io_in_c_valid & _T_810 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_810 & ~reset & ~_T_777) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel Release smaller than a beat (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_777 & (io_in_c_valid & _T_810 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_810 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel Release address not aligned to size (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_810 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_810 & ~reset & ~_T_784) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel Release carries invalid report param (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_784 & (io_in_c_valid & _T_810 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_864 & ~reset & ~_T_824) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel carries ReleaseData type unsupported by manager (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_824 & (io_in_c_valid & _T_864 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_864 & ~reset & ~_T_824) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel carries Release from a client which does not support Probe (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_824 & (io_in_c_valid & _T_864 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_864 & ~reset & ~_T_777) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ReleaseData smaller than a beat (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_777 & (io_in_c_valid & _T_864 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_864 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ReleaseData address not aligned to size (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_864 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_864 & ~reset & ~_T_784) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel ReleaseData carries invalid report param (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_784 & (io_in_c_valid & _T_864 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_914 & ~reset & ~_address_ok_T_9) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAck carries unmanaged address (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_9 & (io_in_c_valid & _T_914 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_914 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAck address not aligned to size (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_914 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_914 & ~reset & ~_T_924) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAck carries invalid param (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_924 & (io_in_c_valid & _T_914 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_932 & ~reset & ~_address_ok_T_9) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAckData carries unmanaged address (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_9 & (io_in_c_valid & _T_932 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_932 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAckData address not aligned to size (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_932 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_932 & ~reset & ~_T_924) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel AccessAckData carries invalid param (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_924 & (io_in_c_valid & _T_932 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_946 & ~reset & ~_address_ok_T_9) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel HintAck carries unmanaged address (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_address_ok_T_9 & (io_in_c_valid & _T_946 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_946 & ~reset & ~is_aligned_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel HintAck address not aligned to size (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned_2 & (io_in_c_valid & _T_946 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_c_valid & _T_946 & ~reset & ~_T_924) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel HintAck carries invalid param (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_924 & (io_in_c_valid & _T_946 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_968 & ~reset & ~_T_985) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel address changed with multibeat operation (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_985 & (_T_968 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_992 & _T_2 & ~_T_993) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_993 & (_T_992 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_992 & _T_2 & ~_T_997) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel param changed within multibeat operation (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_997 & (_T_992 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_992 & _T_2 & ~_T_1001) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel size changed within multibeat operation (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1001 & (_T_992 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_992 & _T_2 & ~_T_1005) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel source changed within multibeat operation (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1005 & (_T_992 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_992 & _T_2 & ~_T_1009) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel sink changed with multibeat operation (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1009 & (_T_992 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_992 & _T_2 & ~_T_1013) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel denied changed with multibeat operation (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1013 & (_T_992 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1020 & ~reset & ~_T_1021) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel opcode changed within multibeat operation (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1021 & (_T_1020 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1020 & ~reset & ~_T_1025) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel param changed within multibeat operation (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1025 & (_T_1020 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1020 & ~reset & ~_T_1029) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel size changed within multibeat operation (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1029 & (_T_1020 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1020 & ~reset & ~_T_1033) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel source changed within multibeat operation (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1033 & (_T_1020 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1020 & ~reset & ~_T_1037) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'B' channel addresss changed with multibeat operation (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1037 & (_T_1020 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1044 & ~reset & ~_T_1045) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel opcode changed within multibeat operation (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1045 & (_T_1044 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1044 & ~reset & ~_T_1049) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel param changed within multibeat operation (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1049 & (_T_1044 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1044 & ~reset & ~_T_1053) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel size changed within multibeat operation (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1053 & (_T_1044 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1044 & ~reset & ~_T_1061) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel address changed with multibeat operation (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1061 & (_T_1044 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1070 & ~reset & ~_T_1074) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel re-used a source ID (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1074 & (_T_1070 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1081 & _T_2 & ~_T_1093) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1093 & (_T_1081 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1081 & same_cycle_resp & _T_2 & ~_T_1099) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1099 & (_T_1081 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1081 & same_cycle_resp & _T_2 & ~_T_1103) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1103 & (_T_1081 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1081 & ~same_cycle_resp & _T_2 & ~_T_1111) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1111 & (_T_1081 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1081 & ~same_cycle_resp & _T_2 & ~_T_1115) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1115 & (_T_1081 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1125 & _T_2 & ~_T_1127) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1127 & (_T_1125 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_2 & ~_T_1134) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' and 'D' concurrent, despite minlatency 4 (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1134 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_1143) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1143 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1160 & ~reset & ~_T_1163) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' channel re-used a source ID (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1163 & (_T_1160 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1169 & _T_2 & ~_T_1179) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1179 & (_T_1169 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1169 & same_cycle_resp_1 & _T_2 & ~_T_1183) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1183 & (_T_1169 & same_cycle_resp_1 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1169 & ~same_cycle_resp_1 & _T_2 & ~_T_1187) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1187 & (_T_1169 & ~same_cycle_resp_1 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1196 & _T_2 & ~_T_1198) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1198 & (_T_1196 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1202 & _T_2 & ~_T_1203) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'C' and 'D' concurrent, despite minlatency 4 (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1203 & (_T_1202 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_1212) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1212 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1225 & _T_2 & ~_T_1228) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel re-used a sink ID (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1228 & (_T_1225 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_1232 & ~reset & ~_T_1236[0]) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'E' channel acknowledged for nothing inflight (connected at Rift2Link.scala:77:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_1236[0] & (_T_1232 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  address = _RAND_1[31:0];
  _RAND_2 = {1{`RANDOM}};
  d_first_counter = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  opcode_1 = _RAND_3[2:0];
  _RAND_4 = {1{`RANDOM}};
  param_1 = _RAND_4[1:0];
  _RAND_5 = {1{`RANDOM}};
  size_1 = _RAND_5[2:0];
  _RAND_6 = {1{`RANDOM}};
  source_1 = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  sink = _RAND_7[4:0];
  _RAND_8 = {1{`RANDOM}};
  denied = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  b_first_counter = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  opcode_2 = _RAND_10[2:0];
  _RAND_11 = {1{`RANDOM}};
  param_2 = _RAND_11[1:0];
  _RAND_12 = {1{`RANDOM}};
  size_2 = _RAND_12[2:0];
  _RAND_13 = {1{`RANDOM}};
  source_2 = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  address_1 = _RAND_14[31:0];
  _RAND_15 = {1{`RANDOM}};
  c_first_counter = _RAND_15[0:0];
  _RAND_16 = {1{`RANDOM}};
  opcode_3 = _RAND_16[2:0];
  _RAND_17 = {1{`RANDOM}};
  param_3 = _RAND_17[2:0];
  _RAND_18 = {1{`RANDOM}};
  size_3 = _RAND_18[2:0];
  _RAND_19 = {1{`RANDOM}};
  address_2 = _RAND_19[31:0];
  _RAND_20 = {1{`RANDOM}};
  inflight = _RAND_20[0:0];
  _RAND_21 = {1{`RANDOM}};
  inflight_opcodes = _RAND_21[3:0];
  _RAND_22 = {1{`RANDOM}};
  inflight_sizes = _RAND_22[3:0];
  _RAND_23 = {1{`RANDOM}};
  a_first_counter_1 = _RAND_23[0:0];
  _RAND_24 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_24[0:0];
  _RAND_25 = {1{`RANDOM}};
  watchdog = _RAND_25[31:0];
  _RAND_26 = {1{`RANDOM}};
  inflight_1 = _RAND_26[0:0];
  _RAND_27 = {1{`RANDOM}};
  inflight_sizes_1 = _RAND_27[3:0];
  _RAND_28 = {1{`RANDOM}};
  c_first_counter_1 = _RAND_28[0:0];
  _RAND_29 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_29[0:0];
  _RAND_30 = {1{`RANDOM}};
  watchdog_1 = _RAND_30[31:0];
  _RAND_31 = {1{`RANDOM}};
  inflight_2 = _RAND_31[31:0];
  _RAND_32 = {1{`RANDOM}};
  d_first_counter_3 = _RAND_32[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_37(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [1:0]  io_enq_bits_param,
  input  [31:0] io_enq_bits_address,
  input         io_deq_ready,
  output        io_deq_valid,
  output [2:0]  io_deq_bits_opcode,
  output [1:0]  io_deq_bits_param,
  output [2:0]  io_deq_bits_size,
  output        io_deq_bits_source,
  output [31:0] io_deq_bits_address,
  output [7:0]  io_deq_bits_mask,
  output        io_deq_bits_corrupt
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
`endif // RANDOMIZE_REG_INIT
  reg [2:0] ram_opcode [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_opcode_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_opcode_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_opcode_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_opcode_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_en; // @[Decoupled.scala 275:95]
  reg [1:0] ram_param [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_param_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [1:0] ram_param_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [1:0] ram_param_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] ram_size [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_size_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_size_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_source [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_source_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_source_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_en; // @[Decoupled.scala 275:95]
  reg [31:0] ram_address [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_address_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_address_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [31:0] ram_address_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [31:0] ram_address_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_address_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_address_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_address_MPORT_en; // @[Decoupled.scala 275:95]
  reg [7:0] ram_mask [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_mask_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_mask_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [7:0] ram_mask_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [7:0] ram_mask_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_mask_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_mask_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_mask_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_corrupt [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_en; // @[Decoupled.scala 275:95]
  reg  enq_ptr_value; // @[Counter.scala 61:40]
  reg  deq_ptr_value; // @[Counter.scala 61:40]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  ptr_match = enq_ptr_value == deq_ptr_value; // @[Decoupled.scala 279:33]
  wire  empty = ptr_match & ~maybe_full; // @[Decoupled.scala 280:25]
  wire  full = ptr_match & maybe_full; // @[Decoupled.scala 281:24]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_deq = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign ram_opcode_io_deq_bits_MPORT_en = 1'h1;
  assign ram_opcode_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_opcode_io_deq_bits_MPORT_data = ram_opcode[ram_opcode_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_opcode_MPORT_data = 3'h6;
  assign ram_opcode_MPORT_addr = enq_ptr_value;
  assign ram_opcode_MPORT_mask = 1'h1;
  assign ram_opcode_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_param_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_param_io_deq_bits_MPORT_data = ram_param[ram_param_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_MPORT_data = io_enq_bits_param;
  assign ram_param_MPORT_addr = enq_ptr_value;
  assign ram_param_MPORT_mask = 1'h1;
  assign ram_param_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_size_io_deq_bits_MPORT_en = 1'h1;
  assign ram_size_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_size_io_deq_bits_MPORT_data = ram_size[ram_size_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_size_MPORT_data = 3'h4;
  assign ram_size_MPORT_addr = enq_ptr_value;
  assign ram_size_MPORT_mask = 1'h1;
  assign ram_size_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_source_io_deq_bits_MPORT_en = 1'h1;
  assign ram_source_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_source_io_deq_bits_MPORT_data = ram_source[ram_source_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_source_MPORT_data = 1'h0;
  assign ram_source_MPORT_addr = enq_ptr_value;
  assign ram_source_MPORT_mask = 1'h1;
  assign ram_source_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_address_io_deq_bits_MPORT_en = 1'h1;
  assign ram_address_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_address_io_deq_bits_MPORT_data = ram_address[ram_address_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_address_MPORT_data = io_enq_bits_address;
  assign ram_address_MPORT_addr = enq_ptr_value;
  assign ram_address_MPORT_mask = 1'h1;
  assign ram_address_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_mask_io_deq_bits_MPORT_en = 1'h1;
  assign ram_mask_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_mask_io_deq_bits_MPORT_data = ram_mask[ram_mask_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_mask_MPORT_data = 8'hff;
  assign ram_mask_MPORT_addr = enq_ptr_value;
  assign ram_mask_MPORT_mask = 1'h1;
  assign ram_mask_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_corrupt_io_deq_bits_MPORT_en = 1'h1;
  assign ram_corrupt_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_corrupt_io_deq_bits_MPORT_data = ram_corrupt[ram_corrupt_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_corrupt_MPORT_data = 1'h0;
  assign ram_corrupt_MPORT_addr = enq_ptr_value;
  assign ram_corrupt_MPORT_mask = 1'h1;
  assign ram_corrupt_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = ~full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_opcode = ram_opcode_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_param = ram_param_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_size = ram_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_source = ram_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_address = ram_address_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_mask = ram_mask_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_corrupt = ram_corrupt_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_opcode_MPORT_en & ram_opcode_MPORT_mask) begin
      ram_opcode[ram_opcode_MPORT_addr] <= ram_opcode_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_MPORT_en & ram_param_MPORT_mask) begin
      ram_param[ram_param_MPORT_addr] <= ram_param_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_size_MPORT_en & ram_size_MPORT_mask) begin
      ram_size[ram_size_MPORT_addr] <= ram_size_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_source_MPORT_en & ram_source_MPORT_mask) begin
      ram_source[ram_source_MPORT_addr] <= ram_source_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_address_MPORT_en & ram_address_MPORT_mask) begin
      ram_address[ram_address_MPORT_addr] <= ram_address_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_mask_MPORT_en & ram_mask_MPORT_mask) begin
      ram_mask[ram_mask_MPORT_addr] <= ram_mask_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_corrupt_MPORT_en & ram_corrupt_MPORT_mask) begin
      ram_corrupt[ram_corrupt_MPORT_addr] <= ram_corrupt_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Counter.scala 61:40]
      enq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_enq) begin // @[Decoupled.scala 288:16]
      enq_ptr_value <= enq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Counter.scala 61:40]
      deq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_deq) begin // @[Decoupled.scala 292:16]
      deq_ptr_value <= deq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_opcode[initvar] = _RAND_0[2:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_param[initvar] = _RAND_1[1:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_size[initvar] = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_source[initvar] = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_address[initvar] = _RAND_4[31:0];
  _RAND_5 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_mask[initvar] = _RAND_5[7:0];
  _RAND_6 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_corrupt[initvar] = _RAND_6[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_7 = {1{`RANDOM}};
  enq_ptr_value = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  deq_ptr_value = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  maybe_full = _RAND_9[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_38(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [2:0]  io_enq_bits_opcode,
  input  [2:0]  io_enq_bits_param,
  input  [2:0]  io_enq_bits_size,
  input  [31:0] io_enq_bits_address,
  input  [63:0] io_enq_bits_data,
  input         io_deq_ready,
  output        io_deq_valid,
  output [2:0]  io_deq_bits_opcode,
  output [2:0]  io_deq_bits_param,
  output [2:0]  io_deq_bits_size,
  output        io_deq_bits_source,
  output [31:0] io_deq_bits_address,
  output [63:0] io_deq_bits_data,
  output        io_deq_bits_corrupt
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [63:0] _RAND_5;
  reg [31:0] _RAND_6;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
`endif // RANDOMIZE_REG_INIT
  reg [2:0] ram_opcode [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_opcode_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_opcode_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_opcode_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_opcode_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_opcode_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] ram_param [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_param_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_param_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_param_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_param_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_param_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] ram_size [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_size_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_size_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_source [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_source_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_source_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_source_MPORT_en; // @[Decoupled.scala 275:95]
  reg [31:0] ram_address [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_address_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_address_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [31:0] ram_address_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [31:0] ram_address_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_address_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_address_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_address_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_data [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_corrupt [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_corrupt_MPORT_en; // @[Decoupled.scala 275:95]
  reg  enq_ptr_value; // @[Counter.scala 61:40]
  reg  deq_ptr_value; // @[Counter.scala 61:40]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  ptr_match = enq_ptr_value == deq_ptr_value; // @[Decoupled.scala 279:33]
  wire  empty = ptr_match & ~maybe_full; // @[Decoupled.scala 280:25]
  wire  full = ptr_match & maybe_full; // @[Decoupled.scala 281:24]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_deq = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign ram_opcode_io_deq_bits_MPORT_en = 1'h1;
  assign ram_opcode_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_opcode_io_deq_bits_MPORT_data = ram_opcode[ram_opcode_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_opcode_MPORT_data = io_enq_bits_opcode;
  assign ram_opcode_MPORT_addr = enq_ptr_value;
  assign ram_opcode_MPORT_mask = 1'h1;
  assign ram_opcode_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_param_io_deq_bits_MPORT_en = 1'h1;
  assign ram_param_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_param_io_deq_bits_MPORT_data = ram_param[ram_param_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_param_MPORT_data = io_enq_bits_param;
  assign ram_param_MPORT_addr = enq_ptr_value;
  assign ram_param_MPORT_mask = 1'h1;
  assign ram_param_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_size_io_deq_bits_MPORT_en = 1'h1;
  assign ram_size_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_size_io_deq_bits_MPORT_data = ram_size[ram_size_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_size_MPORT_data = io_enq_bits_size;
  assign ram_size_MPORT_addr = enq_ptr_value;
  assign ram_size_MPORT_mask = 1'h1;
  assign ram_size_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_source_io_deq_bits_MPORT_en = 1'h1;
  assign ram_source_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_source_io_deq_bits_MPORT_data = ram_source[ram_source_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_source_MPORT_data = 1'h0;
  assign ram_source_MPORT_addr = enq_ptr_value;
  assign ram_source_MPORT_mask = 1'h1;
  assign ram_source_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_address_io_deq_bits_MPORT_en = 1'h1;
  assign ram_address_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_address_io_deq_bits_MPORT_data = ram_address[ram_address_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_address_MPORT_data = io_enq_bits_address;
  assign ram_address_MPORT_addr = enq_ptr_value;
  assign ram_address_MPORT_mask = 1'h1;
  assign ram_address_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_data_io_deq_bits_MPORT_en = 1'h1;
  assign ram_data_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_data_io_deq_bits_MPORT_data = ram_data[ram_data_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_data_MPORT_data = io_enq_bits_data;
  assign ram_data_MPORT_addr = enq_ptr_value;
  assign ram_data_MPORT_mask = 1'h1;
  assign ram_data_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_corrupt_io_deq_bits_MPORT_en = 1'h1;
  assign ram_corrupt_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_corrupt_io_deq_bits_MPORT_data = ram_corrupt[ram_corrupt_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_corrupt_MPORT_data = 1'h0;
  assign ram_corrupt_MPORT_addr = enq_ptr_value;
  assign ram_corrupt_MPORT_mask = 1'h1;
  assign ram_corrupt_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = ~full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_opcode = ram_opcode_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_param = ram_param_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_size = ram_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_source = ram_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_address = ram_address_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_data = ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_corrupt = ram_corrupt_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_opcode_MPORT_en & ram_opcode_MPORT_mask) begin
      ram_opcode[ram_opcode_MPORT_addr] <= ram_opcode_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_param_MPORT_en & ram_param_MPORT_mask) begin
      ram_param[ram_param_MPORT_addr] <= ram_param_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_size_MPORT_en & ram_size_MPORT_mask) begin
      ram_size[ram_size_MPORT_addr] <= ram_size_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_source_MPORT_en & ram_source_MPORT_mask) begin
      ram_source[ram_source_MPORT_addr] <= ram_source_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_address_MPORT_en & ram_address_MPORT_mask) begin
      ram_address[ram_address_MPORT_addr] <= ram_address_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_data_MPORT_en & ram_data_MPORT_mask) begin
      ram_data[ram_data_MPORT_addr] <= ram_data_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_corrupt_MPORT_en & ram_corrupt_MPORT_mask) begin
      ram_corrupt[ram_corrupt_MPORT_addr] <= ram_corrupt_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Counter.scala 61:40]
      enq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_enq) begin // @[Decoupled.scala 288:16]
      enq_ptr_value <= enq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Counter.scala 61:40]
      deq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_deq) begin // @[Decoupled.scala 292:16]
      deq_ptr_value <= deq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_opcode[initvar] = _RAND_0[2:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_param[initvar] = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_size[initvar] = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_source[initvar] = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_address[initvar] = _RAND_4[31:0];
  _RAND_5 = {2{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_data[initvar] = _RAND_5[63:0];
  _RAND_6 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_corrupt[initvar] = _RAND_6[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_7 = {1{`RANDOM}};
  enq_ptr_value = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  deq_ptr_value = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  maybe_full = _RAND_9[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_39(
  input        clock,
  input        reset,
  output       io_enq_ready,
  input        io_enq_valid,
  input  [4:0] io_enq_bits_sink,
  output       io_deq_valid,
  output [4:0] io_deq_bits_sink
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
`endif // RANDOMIZE_REG_INIT
  reg [4:0] ram_sink [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_sink_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_sink_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [4:0] ram_sink_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [4:0] ram_sink_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_sink_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_sink_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_sink_MPORT_en; // @[Decoupled.scala 275:95]
  reg  enq_ptr_value; // @[Counter.scala 61:40]
  reg  deq_ptr_value; // @[Counter.scala 61:40]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  ptr_match = enq_ptr_value == deq_ptr_value; // @[Decoupled.scala 279:33]
  wire  empty = ptr_match & ~maybe_full; // @[Decoupled.scala 280:25]
  wire  full = ptr_match & maybe_full; // @[Decoupled.scala 281:24]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  assign ram_sink_io_deq_bits_MPORT_en = 1'h1;
  assign ram_sink_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_sink_io_deq_bits_MPORT_data = ram_sink[ram_sink_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_sink_MPORT_data = io_enq_bits_sink;
  assign ram_sink_MPORT_addr = enq_ptr_value;
  assign ram_sink_MPORT_mask = 1'h1;
  assign ram_sink_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = ~full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_sink = ram_sink_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_sink_MPORT_en & ram_sink_MPORT_mask) begin
      ram_sink[ram_sink_MPORT_addr] <= ram_sink_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Counter.scala 61:40]
      enq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_enq) begin // @[Decoupled.scala 288:16]
      enq_ptr_value <= enq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Counter.scala 61:40]
      deq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (io_deq_valid) begin // @[Decoupled.scala 292:16]
      deq_ptr_value <= deq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != io_deq_valid) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_sink[initvar] = _RAND_0[4:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_1 = {1{`RANDOM}};
  enq_ptr_value = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  deq_ptr_value = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  maybe_full = _RAND_3[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLBuffer_1(
  input         clock,
  input         reset,
  output        auto_in_a_ready,
  input         auto_in_a_valid,
  input  [31:0] auto_in_a_bits_address,
  input         auto_in_b_ready,
  output        auto_in_b_valid,
  output [31:0] auto_in_b_bits_address,
  output        auto_in_c_ready,
  input         auto_in_c_valid,
  input  [2:0]  auto_in_c_bits_opcode,
  input  [2:0]  auto_in_c_bits_param,
  input  [2:0]  auto_in_c_bits_size,
  input  [31:0] auto_in_c_bits_address,
  input  [63:0] auto_in_c_bits_data,
  input         auto_in_d_ready,
  output        auto_in_d_valid,
  output [2:0]  auto_in_d_bits_opcode,
  output [2:0]  auto_in_d_bits_size,
  output        auto_in_d_bits_source,
  output [4:0]  auto_in_d_bits_sink,
  output [63:0] auto_in_d_bits_data,
  output        auto_in_e_ready,
  input         auto_in_e_valid,
  input  [4:0]  auto_in_e_bits_sink,
  input         auto_out_a_ready,
  output        auto_out_a_valid,
  output [2:0]  auto_out_a_bits_opcode,
  output [2:0]  auto_out_a_bits_param,
  output [2:0]  auto_out_a_bits_size,
  output        auto_out_a_bits_source,
  output [31:0] auto_out_a_bits_address,
  output [7:0]  auto_out_a_bits_mask,
  output [63:0] auto_out_a_bits_data,
  output        auto_out_a_bits_corrupt,
  output        auto_out_b_ready,
  input         auto_out_b_valid,
  input  [1:0]  auto_out_b_bits_param,
  input  [31:0] auto_out_b_bits_address,
  input         auto_out_c_ready,
  output        auto_out_c_valid,
  output [2:0]  auto_out_c_bits_opcode,
  output [2:0]  auto_out_c_bits_param,
  output [2:0]  auto_out_c_bits_size,
  output        auto_out_c_bits_source,
  output [31:0] auto_out_c_bits_address,
  output [63:0] auto_out_c_bits_data,
  output        auto_out_c_bits_corrupt,
  output        auto_out_d_ready,
  input         auto_out_d_valid,
  input  [2:0]  auto_out_d_bits_opcode,
  input  [1:0]  auto_out_d_bits_param,
  input  [2:0]  auto_out_d_bits_size,
  input  [4:0]  auto_out_d_bits_sink,
  input         auto_out_d_bits_denied,
  input  [63:0] auto_out_d_bits_data,
  input         auto_out_d_bits_corrupt,
  output        auto_out_e_valid,
  output [4:0]  auto_out_e_bits_sink
);
  wire  monitor_clock; // @[Nodes.scala 24:25]
  wire  monitor_reset; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_valid; // @[Nodes.scala 24:25]
  wire [31:0] monitor_io_in_a_bits_address; // @[Nodes.scala 24:25]
  wire  monitor_io_in_b_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_b_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_b_bits_opcode; // @[Nodes.scala 24:25]
  wire [1:0] monitor_io_in_b_bits_param; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_b_bits_size; // @[Nodes.scala 24:25]
  wire  monitor_io_in_b_bits_source; // @[Nodes.scala 24:25]
  wire [31:0] monitor_io_in_b_bits_address; // @[Nodes.scala 24:25]
  wire [7:0] monitor_io_in_b_bits_mask; // @[Nodes.scala 24:25]
  wire  monitor_io_in_b_bits_corrupt; // @[Nodes.scala 24:25]
  wire  monitor_io_in_c_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_c_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_c_bits_opcode; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_c_bits_param; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_c_bits_size; // @[Nodes.scala 24:25]
  wire [31:0] monitor_io_in_c_bits_address; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  wire [1:0] monitor_io_in_d_bits_param; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_size; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_source; // @[Nodes.scala 24:25]
  wire [4:0] monitor_io_in_d_bits_sink; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_denied; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_corrupt; // @[Nodes.scala 24:25]
  wire  monitor_io_in_e_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_e_valid; // @[Nodes.scala 24:25]
  wire [4:0] monitor_io_in_e_bits_sink; // @[Nodes.scala 24:25]
  wire  bundleOut_0_a_q_clock; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_reset; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_io_enq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] bundleOut_0_a_q_io_enq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [2:0] bundleOut_0_a_q_io_enq_bits_param; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_io_enq_bits_source; // @[Decoupled.scala 377:21]
  wire [31:0] bundleOut_0_a_q_io_enq_bits_address; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_io_deq_ready; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_io_deq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] bundleOut_0_a_q_io_deq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [2:0] bundleOut_0_a_q_io_deq_bits_param; // @[Decoupled.scala 377:21]
  wire [2:0] bundleOut_0_a_q_io_deq_bits_size; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_io_deq_bits_source; // @[Decoupled.scala 377:21]
  wire [31:0] bundleOut_0_a_q_io_deq_bits_address; // @[Decoupled.scala 377:21]
  wire [7:0] bundleOut_0_a_q_io_deq_bits_mask; // @[Decoupled.scala 377:21]
  wire [63:0] bundleOut_0_a_q_io_deq_bits_data; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_io_deq_bits_corrupt; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_clock; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_reset; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_enq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] bundleIn_0_d_q_io_enq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [1:0] bundleIn_0_d_q_io_enq_bits_param; // @[Decoupled.scala 377:21]
  wire [2:0] bundleIn_0_d_q_io_enq_bits_size; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_enq_bits_source; // @[Decoupled.scala 377:21]
  wire [4:0] bundleIn_0_d_q_io_enq_bits_sink; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_enq_bits_denied; // @[Decoupled.scala 377:21]
  wire [63:0] bundleIn_0_d_q_io_enq_bits_data; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_enq_bits_corrupt; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_deq_ready; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_deq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] bundleIn_0_d_q_io_deq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [1:0] bundleIn_0_d_q_io_deq_bits_param; // @[Decoupled.scala 377:21]
  wire [2:0] bundleIn_0_d_q_io_deq_bits_size; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_deq_bits_source; // @[Decoupled.scala 377:21]
  wire [4:0] bundleIn_0_d_q_io_deq_bits_sink; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_deq_bits_denied; // @[Decoupled.scala 377:21]
  wire [63:0] bundleIn_0_d_q_io_deq_bits_data; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_deq_bits_corrupt; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_b_q_clock; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_b_q_reset; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_b_q_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_b_q_io_enq_valid; // @[Decoupled.scala 377:21]
  wire [1:0] bundleIn_0_b_q_io_enq_bits_param; // @[Decoupled.scala 377:21]
  wire [31:0] bundleIn_0_b_q_io_enq_bits_address; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_b_q_io_deq_ready; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_b_q_io_deq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] bundleIn_0_b_q_io_deq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [1:0] bundleIn_0_b_q_io_deq_bits_param; // @[Decoupled.scala 377:21]
  wire [2:0] bundleIn_0_b_q_io_deq_bits_size; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_b_q_io_deq_bits_source; // @[Decoupled.scala 377:21]
  wire [31:0] bundleIn_0_b_q_io_deq_bits_address; // @[Decoupled.scala 377:21]
  wire [7:0] bundleIn_0_b_q_io_deq_bits_mask; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_b_q_io_deq_bits_corrupt; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_c_q_clock; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_c_q_reset; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_c_q_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_c_q_io_enq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] bundleOut_0_c_q_io_enq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [2:0] bundleOut_0_c_q_io_enq_bits_param; // @[Decoupled.scala 377:21]
  wire [2:0] bundleOut_0_c_q_io_enq_bits_size; // @[Decoupled.scala 377:21]
  wire [31:0] bundleOut_0_c_q_io_enq_bits_address; // @[Decoupled.scala 377:21]
  wire [63:0] bundleOut_0_c_q_io_enq_bits_data; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_c_q_io_deq_ready; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_c_q_io_deq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] bundleOut_0_c_q_io_deq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [2:0] bundleOut_0_c_q_io_deq_bits_param; // @[Decoupled.scala 377:21]
  wire [2:0] bundleOut_0_c_q_io_deq_bits_size; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_c_q_io_deq_bits_source; // @[Decoupled.scala 377:21]
  wire [31:0] bundleOut_0_c_q_io_deq_bits_address; // @[Decoupled.scala 377:21]
  wire [63:0] bundleOut_0_c_q_io_deq_bits_data; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_c_q_io_deq_bits_corrupt; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_e_q_clock; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_e_q_reset; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_e_q_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_e_q_io_enq_valid; // @[Decoupled.scala 377:21]
  wire [4:0] bundleOut_0_e_q_io_enq_bits_sink; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_e_q_io_deq_valid; // @[Decoupled.scala 377:21]
  wire [4:0] bundleOut_0_e_q_io_deq_bits_sink; // @[Decoupled.scala 377:21]
  TLMonitor_13 monitor ( // @[Nodes.scala 24:25]
    .clock(monitor_clock),
    .reset(monitor_reset),
    .io_in_a_ready(monitor_io_in_a_ready),
    .io_in_a_valid(monitor_io_in_a_valid),
    .io_in_a_bits_address(monitor_io_in_a_bits_address),
    .io_in_b_ready(monitor_io_in_b_ready),
    .io_in_b_valid(monitor_io_in_b_valid),
    .io_in_b_bits_opcode(monitor_io_in_b_bits_opcode),
    .io_in_b_bits_param(monitor_io_in_b_bits_param),
    .io_in_b_bits_size(monitor_io_in_b_bits_size),
    .io_in_b_bits_source(monitor_io_in_b_bits_source),
    .io_in_b_bits_address(monitor_io_in_b_bits_address),
    .io_in_b_bits_mask(monitor_io_in_b_bits_mask),
    .io_in_b_bits_corrupt(monitor_io_in_b_bits_corrupt),
    .io_in_c_ready(monitor_io_in_c_ready),
    .io_in_c_valid(monitor_io_in_c_valid),
    .io_in_c_bits_opcode(monitor_io_in_c_bits_opcode),
    .io_in_c_bits_param(monitor_io_in_c_bits_param),
    .io_in_c_bits_size(monitor_io_in_c_bits_size),
    .io_in_c_bits_address(monitor_io_in_c_bits_address),
    .io_in_d_ready(monitor_io_in_d_ready),
    .io_in_d_valid(monitor_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_io_in_d_bits_opcode),
    .io_in_d_bits_param(monitor_io_in_d_bits_param),
    .io_in_d_bits_size(monitor_io_in_d_bits_size),
    .io_in_d_bits_source(monitor_io_in_d_bits_source),
    .io_in_d_bits_sink(monitor_io_in_d_bits_sink),
    .io_in_d_bits_denied(monitor_io_in_d_bits_denied),
    .io_in_d_bits_corrupt(monitor_io_in_d_bits_corrupt),
    .io_in_e_ready(monitor_io_in_e_ready),
    .io_in_e_valid(monitor_io_in_e_valid),
    .io_in_e_bits_sink(monitor_io_in_e_bits_sink)
  );
  Queue_33 bundleOut_0_a_q ( // @[Decoupled.scala 377:21]
    .clock(bundleOut_0_a_q_clock),
    .reset(bundleOut_0_a_q_reset),
    .io_enq_ready(bundleOut_0_a_q_io_enq_ready),
    .io_enq_valid(bundleOut_0_a_q_io_enq_valid),
    .io_enq_bits_opcode(bundleOut_0_a_q_io_enq_bits_opcode),
    .io_enq_bits_param(bundleOut_0_a_q_io_enq_bits_param),
    .io_enq_bits_source(bundleOut_0_a_q_io_enq_bits_source),
    .io_enq_bits_address(bundleOut_0_a_q_io_enq_bits_address),
    .io_deq_ready(bundleOut_0_a_q_io_deq_ready),
    .io_deq_valid(bundleOut_0_a_q_io_deq_valid),
    .io_deq_bits_opcode(bundleOut_0_a_q_io_deq_bits_opcode),
    .io_deq_bits_param(bundleOut_0_a_q_io_deq_bits_param),
    .io_deq_bits_size(bundleOut_0_a_q_io_deq_bits_size),
    .io_deq_bits_source(bundleOut_0_a_q_io_deq_bits_source),
    .io_deq_bits_address(bundleOut_0_a_q_io_deq_bits_address),
    .io_deq_bits_mask(bundleOut_0_a_q_io_deq_bits_mask),
    .io_deq_bits_data(bundleOut_0_a_q_io_deq_bits_data),
    .io_deq_bits_corrupt(bundleOut_0_a_q_io_deq_bits_corrupt)
  );
  Queue_34 bundleIn_0_d_q ( // @[Decoupled.scala 377:21]
    .clock(bundleIn_0_d_q_clock),
    .reset(bundleIn_0_d_q_reset),
    .io_enq_ready(bundleIn_0_d_q_io_enq_ready),
    .io_enq_valid(bundleIn_0_d_q_io_enq_valid),
    .io_enq_bits_opcode(bundleIn_0_d_q_io_enq_bits_opcode),
    .io_enq_bits_param(bundleIn_0_d_q_io_enq_bits_param),
    .io_enq_bits_size(bundleIn_0_d_q_io_enq_bits_size),
    .io_enq_bits_source(bundleIn_0_d_q_io_enq_bits_source),
    .io_enq_bits_sink(bundleIn_0_d_q_io_enq_bits_sink),
    .io_enq_bits_denied(bundleIn_0_d_q_io_enq_bits_denied),
    .io_enq_bits_data(bundleIn_0_d_q_io_enq_bits_data),
    .io_enq_bits_corrupt(bundleIn_0_d_q_io_enq_bits_corrupt),
    .io_deq_ready(bundleIn_0_d_q_io_deq_ready),
    .io_deq_valid(bundleIn_0_d_q_io_deq_valid),
    .io_deq_bits_opcode(bundleIn_0_d_q_io_deq_bits_opcode),
    .io_deq_bits_param(bundleIn_0_d_q_io_deq_bits_param),
    .io_deq_bits_size(bundleIn_0_d_q_io_deq_bits_size),
    .io_deq_bits_source(bundleIn_0_d_q_io_deq_bits_source),
    .io_deq_bits_sink(bundleIn_0_d_q_io_deq_bits_sink),
    .io_deq_bits_denied(bundleIn_0_d_q_io_deq_bits_denied),
    .io_deq_bits_data(bundleIn_0_d_q_io_deq_bits_data),
    .io_deq_bits_corrupt(bundleIn_0_d_q_io_deq_bits_corrupt)
  );
  Queue_37 bundleIn_0_b_q ( // @[Decoupled.scala 377:21]
    .clock(bundleIn_0_b_q_clock),
    .reset(bundleIn_0_b_q_reset),
    .io_enq_ready(bundleIn_0_b_q_io_enq_ready),
    .io_enq_valid(bundleIn_0_b_q_io_enq_valid),
    .io_enq_bits_param(bundleIn_0_b_q_io_enq_bits_param),
    .io_enq_bits_address(bundleIn_0_b_q_io_enq_bits_address),
    .io_deq_ready(bundleIn_0_b_q_io_deq_ready),
    .io_deq_valid(bundleIn_0_b_q_io_deq_valid),
    .io_deq_bits_opcode(bundleIn_0_b_q_io_deq_bits_opcode),
    .io_deq_bits_param(bundleIn_0_b_q_io_deq_bits_param),
    .io_deq_bits_size(bundleIn_0_b_q_io_deq_bits_size),
    .io_deq_bits_source(bundleIn_0_b_q_io_deq_bits_source),
    .io_deq_bits_address(bundleIn_0_b_q_io_deq_bits_address),
    .io_deq_bits_mask(bundleIn_0_b_q_io_deq_bits_mask),
    .io_deq_bits_corrupt(bundleIn_0_b_q_io_deq_bits_corrupt)
  );
  Queue_38 bundleOut_0_c_q ( // @[Decoupled.scala 377:21]
    .clock(bundleOut_0_c_q_clock),
    .reset(bundleOut_0_c_q_reset),
    .io_enq_ready(bundleOut_0_c_q_io_enq_ready),
    .io_enq_valid(bundleOut_0_c_q_io_enq_valid),
    .io_enq_bits_opcode(bundleOut_0_c_q_io_enq_bits_opcode),
    .io_enq_bits_param(bundleOut_0_c_q_io_enq_bits_param),
    .io_enq_bits_size(bundleOut_0_c_q_io_enq_bits_size),
    .io_enq_bits_address(bundleOut_0_c_q_io_enq_bits_address),
    .io_enq_bits_data(bundleOut_0_c_q_io_enq_bits_data),
    .io_deq_ready(bundleOut_0_c_q_io_deq_ready),
    .io_deq_valid(bundleOut_0_c_q_io_deq_valid),
    .io_deq_bits_opcode(bundleOut_0_c_q_io_deq_bits_opcode),
    .io_deq_bits_param(bundleOut_0_c_q_io_deq_bits_param),
    .io_deq_bits_size(bundleOut_0_c_q_io_deq_bits_size),
    .io_deq_bits_source(bundleOut_0_c_q_io_deq_bits_source),
    .io_deq_bits_address(bundleOut_0_c_q_io_deq_bits_address),
    .io_deq_bits_data(bundleOut_0_c_q_io_deq_bits_data),
    .io_deq_bits_corrupt(bundleOut_0_c_q_io_deq_bits_corrupt)
  );
  Queue_39 bundleOut_0_e_q ( // @[Decoupled.scala 377:21]
    .clock(bundleOut_0_e_q_clock),
    .reset(bundleOut_0_e_q_reset),
    .io_enq_ready(bundleOut_0_e_q_io_enq_ready),
    .io_enq_valid(bundleOut_0_e_q_io_enq_valid),
    .io_enq_bits_sink(bundleOut_0_e_q_io_enq_bits_sink),
    .io_deq_valid(bundleOut_0_e_q_io_deq_valid),
    .io_deq_bits_sink(bundleOut_0_e_q_io_deq_bits_sink)
  );
  assign auto_in_a_ready = bundleOut_0_a_q_io_enq_ready; // @[Nodes.scala 1210:84 Decoupled.scala 381:17]
  assign auto_in_b_valid = bundleIn_0_b_q_io_deq_valid; // @[Nodes.scala 1210:84 Buffer.scala 41:15]
  assign auto_in_b_bits_address = bundleIn_0_b_q_io_deq_bits_address; // @[Nodes.scala 1210:84 Buffer.scala 41:15]
  assign auto_in_c_ready = bundleOut_0_c_q_io_enq_ready; // @[Nodes.scala 1210:84 Decoupled.scala 381:17]
  assign auto_in_d_valid = bundleIn_0_d_q_io_deq_valid; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign auto_in_d_bits_opcode = bundleIn_0_d_q_io_deq_bits_opcode; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign auto_in_d_bits_size = bundleIn_0_d_q_io_deq_bits_size; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign auto_in_d_bits_source = bundleIn_0_d_q_io_deq_bits_source; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign auto_in_d_bits_sink = bundleIn_0_d_q_io_deq_bits_sink; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign auto_in_d_bits_data = bundleIn_0_d_q_io_deq_bits_data; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign auto_in_e_ready = bundleOut_0_e_q_io_enq_ready; // @[Nodes.scala 1210:84 Decoupled.scala 381:17]
  assign auto_out_a_valid = bundleOut_0_a_q_io_deq_valid; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_opcode = bundleOut_0_a_q_io_deq_bits_opcode; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_param = bundleOut_0_a_q_io_deq_bits_param; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_size = bundleOut_0_a_q_io_deq_bits_size; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_source = bundleOut_0_a_q_io_deq_bits_source; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_address = bundleOut_0_a_q_io_deq_bits_address; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_mask = bundleOut_0_a_q_io_deq_bits_mask; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_data = bundleOut_0_a_q_io_deq_bits_data; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_corrupt = bundleOut_0_a_q_io_deq_bits_corrupt; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_b_ready = bundleIn_0_b_q_io_enq_ready; // @[Nodes.scala 1207:84 Decoupled.scala 381:17]
  assign auto_out_c_valid = bundleOut_0_c_q_io_deq_valid; // @[Nodes.scala 1207:84 Buffer.scala 42:15]
  assign auto_out_c_bits_opcode = bundleOut_0_c_q_io_deq_bits_opcode; // @[Nodes.scala 1207:84 Buffer.scala 42:15]
  assign auto_out_c_bits_param = bundleOut_0_c_q_io_deq_bits_param; // @[Nodes.scala 1207:84 Buffer.scala 42:15]
  assign auto_out_c_bits_size = bundleOut_0_c_q_io_deq_bits_size; // @[Nodes.scala 1207:84 Buffer.scala 42:15]
  assign auto_out_c_bits_source = bundleOut_0_c_q_io_deq_bits_source; // @[Nodes.scala 1207:84 Buffer.scala 42:15]
  assign auto_out_c_bits_address = bundleOut_0_c_q_io_deq_bits_address; // @[Nodes.scala 1207:84 Buffer.scala 42:15]
  assign auto_out_c_bits_data = bundleOut_0_c_q_io_deq_bits_data; // @[Nodes.scala 1207:84 Buffer.scala 42:15]
  assign auto_out_c_bits_corrupt = bundleOut_0_c_q_io_deq_bits_corrupt; // @[Nodes.scala 1207:84 Buffer.scala 42:15]
  assign auto_out_d_ready = bundleIn_0_d_q_io_enq_ready; // @[Nodes.scala 1207:84 Decoupled.scala 381:17]
  assign auto_out_e_valid = bundleOut_0_e_q_io_deq_valid; // @[Nodes.scala 1207:84 Buffer.scala 43:15]
  assign auto_out_e_bits_sink = bundleOut_0_e_q_io_deq_bits_sink; // @[Nodes.scala 1207:84 Buffer.scala 43:15]
  assign monitor_clock = clock;
  assign monitor_reset = reset;
  assign monitor_io_in_a_ready = bundleOut_0_a_q_io_enq_ready; // @[Nodes.scala 1210:84 Decoupled.scala 381:17]
  assign monitor_io_in_a_valid = auto_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_b_ready = auto_in_b_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_b_valid = bundleIn_0_b_q_io_deq_valid; // @[Nodes.scala 1210:84 Buffer.scala 41:15]
  assign monitor_io_in_b_bits_opcode = bundleIn_0_b_q_io_deq_bits_opcode; // @[Nodes.scala 1210:84 Buffer.scala 41:15]
  assign monitor_io_in_b_bits_param = bundleIn_0_b_q_io_deq_bits_param; // @[Nodes.scala 1210:84 Buffer.scala 41:15]
  assign monitor_io_in_b_bits_size = bundleIn_0_b_q_io_deq_bits_size; // @[Nodes.scala 1210:84 Buffer.scala 41:15]
  assign monitor_io_in_b_bits_source = bundleIn_0_b_q_io_deq_bits_source; // @[Nodes.scala 1210:84 Buffer.scala 41:15]
  assign monitor_io_in_b_bits_address = bundleIn_0_b_q_io_deq_bits_address; // @[Nodes.scala 1210:84 Buffer.scala 41:15]
  assign monitor_io_in_b_bits_mask = bundleIn_0_b_q_io_deq_bits_mask; // @[Nodes.scala 1210:84 Buffer.scala 41:15]
  assign monitor_io_in_b_bits_corrupt = bundleIn_0_b_q_io_deq_bits_corrupt; // @[Nodes.scala 1210:84 Buffer.scala 41:15]
  assign monitor_io_in_c_ready = bundleOut_0_c_q_io_enq_ready; // @[Nodes.scala 1210:84 Decoupled.scala 381:17]
  assign monitor_io_in_c_valid = auto_in_c_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_c_bits_opcode = auto_in_c_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_c_bits_param = auto_in_c_bits_param; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_c_bits_size = auto_in_c_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_c_bits_address = auto_in_c_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_ready = auto_in_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_valid = bundleIn_0_d_q_io_deq_valid; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign monitor_io_in_d_bits_opcode = bundleIn_0_d_q_io_deq_bits_opcode; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign monitor_io_in_d_bits_param = bundleIn_0_d_q_io_deq_bits_param; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign monitor_io_in_d_bits_size = bundleIn_0_d_q_io_deq_bits_size; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign monitor_io_in_d_bits_source = bundleIn_0_d_q_io_deq_bits_source; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign monitor_io_in_d_bits_sink = bundleIn_0_d_q_io_deq_bits_sink; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign monitor_io_in_d_bits_denied = bundleIn_0_d_q_io_deq_bits_denied; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign monitor_io_in_d_bits_corrupt = bundleIn_0_d_q_io_deq_bits_corrupt; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign monitor_io_in_e_ready = bundleOut_0_e_q_io_enq_ready; // @[Nodes.scala 1210:84 Decoupled.scala 381:17]
  assign monitor_io_in_e_valid = auto_in_e_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_e_bits_sink = auto_in_e_bits_sink; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_a_q_clock = clock;
  assign bundleOut_0_a_q_reset = reset;
  assign bundleOut_0_a_q_io_enq_valid = auto_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_a_q_io_enq_bits_opcode = 3'h6; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_a_q_io_enq_bits_param = 3'h1; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_a_q_io_enq_bits_source = 1'h0; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_a_q_io_enq_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_a_q_io_deq_ready = auto_out_a_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_clock = clock;
  assign bundleIn_0_d_q_reset = reset;
  assign bundleIn_0_d_q_io_enq_valid = auto_out_d_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_param = auto_out_d_bits_param; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_size = auto_out_d_bits_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_source = 1'h0; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_sink = auto_out_d_bits_sink; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_denied = auto_out_d_bits_denied; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_data = auto_out_d_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_corrupt = auto_out_d_bits_corrupt; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_deq_ready = auto_in_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleIn_0_b_q_clock = clock;
  assign bundleIn_0_b_q_reset = reset;
  assign bundleIn_0_b_q_io_enq_valid = auto_out_b_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_b_q_io_enq_bits_param = auto_out_b_bits_param; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_b_q_io_enq_bits_address = auto_out_b_bits_address; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_b_q_io_deq_ready = auto_in_b_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_c_q_clock = clock;
  assign bundleOut_0_c_q_reset = reset;
  assign bundleOut_0_c_q_io_enq_valid = auto_in_c_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_c_q_io_enq_bits_opcode = auto_in_c_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_c_q_io_enq_bits_param = auto_in_c_bits_param; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_c_q_io_enq_bits_size = auto_in_c_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_c_q_io_enq_bits_address = auto_in_c_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_c_q_io_enq_bits_data = auto_in_c_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_c_q_io_deq_ready = auto_out_c_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleOut_0_e_q_clock = clock;
  assign bundleOut_0_e_q_reset = reset;
  assign bundleOut_0_e_q_io_enq_valid = auto_in_e_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_e_q_io_enq_bits_sink = auto_in_e_bits_sink; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
endmodule
module TLMonitor_14(
  input         clock,
  input         reset,
  input         io_in_a_ready,
  input         io_in_a_valid,
  input         io_in_a_bits_source,
  input  [31:0] io_in_a_bits_address,
  input         io_in_d_ready,
  input         io_in_d_valid,
  input  [2:0]  io_in_d_bits_opcode,
  input  [1:0]  io_in_d_bits_param,
  input  [2:0]  io_in_d_bits_size,
  input         io_in_d_bits_source,
  input  [4:0]  io_in_d_bits_sink,
  input         io_in_d_bits_denied,
  input         io_in_d_bits_corrupt
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire [31:0] _is_aligned_T = io_in_a_bits_address & 32'hf; // @[Edges.scala 20:16]
  wire  is_aligned = _is_aligned_T == 32'h0; // @[Edges.scala 20:24]
  wire [32:0] _T_12 = {1'b0,$signed(io_in_a_bits_address)}; // @[Parameters.scala 137:49]
  wire [32:0] _T_37 = $signed(_T_12) & 33'sh100000000; // @[Parameters.scala 137:52]
  wire  _T_38 = $signed(_T_37) == 33'sh0; // @[Parameters.scala 137:67]
  wire  _T_408 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire  _T_412 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_416 = io_in_d_bits_size >= 3'h3; // @[Monitor.scala 312:27]
  wire  _T_420 = io_in_d_bits_param == 2'h0; // @[Monitor.scala 313:28]
  wire  _T_424 = ~io_in_d_bits_corrupt; // @[Monitor.scala 314:15]
  wire  _T_428 = ~io_in_d_bits_denied; // @[Monitor.scala 315:15]
  wire  _T_432 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_443 = io_in_d_bits_param <= 2'h2; // @[Bundles.scala 102:26]
  wire  _T_447 = io_in_d_bits_param != 2'h2; // @[Monitor.scala 323:28]
  wire  _T_460 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _T_480 = _T_428 | io_in_d_bits_corrupt; // @[Monitor.scala 334:30]
  wire  _T_489 = io_in_d_bits_opcode == 3'h0; // @[Monitor.scala 338:25]
  wire  _T_506 = io_in_d_bits_opcode == 3'h1; // @[Monitor.scala 346:25]
  wire  _T_524 = io_in_d_bits_opcode == 3'h2; // @[Monitor.scala 354:25]
  wire  _a_first_T = io_in_a_ready & io_in_a_valid; // @[Decoupled.scala 52:35]
  reg  a_first_counter; // @[Edges.scala 228:27]
  wire  a_first_counter1 = a_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  a_first = ~a_first_counter; // @[Edges.scala 230:25]
  reg  source; // @[Monitor.scala 387:22]
  reg [31:0] address; // @[Monitor.scala 388:22]
  wire  _T_554 = io_in_a_valid & ~a_first; // @[Monitor.scala 389:19]
  wire  _T_567 = io_in_a_bits_source == source; // @[Monitor.scala 393:32]
  wire  _T_571 = io_in_a_bits_address == address; // @[Monitor.scala 394:32]
  wire  _d_first_T = io_in_d_ready & io_in_d_valid; // @[Decoupled.scala 52:35]
  wire [10:0] _d_first_beats1_decode_T_1 = 11'hf << io_in_d_bits_size; // @[package.scala 234:77]
  wire [3:0] _d_first_beats1_decode_T_3 = ~_d_first_beats1_decode_T_1[3:0]; // @[package.scala 234:46]
  wire  d_first_beats1_decode = _d_first_beats1_decode_T_3[3]; // @[Edges.scala 219:59]
  wire  d_first_beats1_opdata = io_in_d_bits_opcode[0]; // @[Edges.scala 105:36]
  wire  d_first_beats1 = d_first_beats1_opdata & d_first_beats1_decode; // @[Edges.scala 220:14]
  reg  d_first_counter; // @[Edges.scala 228:27]
  wire  d_first_counter1 = d_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  d_first = ~d_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  reg [1:0] param_1; // @[Monitor.scala 536:22]
  reg [2:0] size_1; // @[Monitor.scala 537:22]
  reg  source_1; // @[Monitor.scala 538:22]
  reg [4:0] sink; // @[Monitor.scala 539:22]
  reg  denied; // @[Monitor.scala 540:22]
  wire  _T_578 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_579 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  wire  _T_583 = io_in_d_bits_param == param_1; // @[Monitor.scala 543:29]
  wire  _T_587 = io_in_d_bits_size == size_1; // @[Monitor.scala 544:29]
  wire  _T_591 = io_in_d_bits_source == source_1; // @[Monitor.scala 545:29]
  wire  _T_595 = io_in_d_bits_sink == sink; // @[Monitor.scala 546:29]
  wire  _T_599 = io_in_d_bits_denied == denied; // @[Monitor.scala 547:29]
  reg [1:0] inflight; // @[Monitor.scala 611:27]
  reg [7:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [7:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg  a_first_counter_1; // @[Edges.scala 228:27]
  wire  a_first_counter1_1 = a_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  a_first_1 = ~a_first_counter_1; // @[Edges.scala 230:25]
  reg  d_first_counter_1; // @[Edges.scala 228:27]
  wire  d_first_counter1_1 = d_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = ~d_first_counter_1; // @[Edges.scala 230:25]
  wire [2:0] _GEN_62 = {io_in_d_bits_source, 2'h0}; // @[Monitor.scala 634:69]
  wire [3:0] _a_opcode_lookup_T = {{1'd0}, _GEN_62}; // @[Monitor.scala 634:69]
  wire [7:0] _a_opcode_lookup_T_1 = inflight_opcodes >> _a_opcode_lookup_T; // @[Monitor.scala 634:44]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [15:0] _GEN_64 = {{8'd0}, _a_opcode_lookup_T_1}; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_6 = _GEN_64 & _a_opcode_lookup_T_5; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[15:1]}; // @[Monitor.scala 634:152]
  wire [7:0] _a_size_lookup_T_1 = inflight_sizes >> _a_opcode_lookup_T; // @[Monitor.scala 638:40]
  wire [15:0] _GEN_72 = {{8'd0}, _a_size_lookup_T_1}; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_6 = _GEN_72 & _a_opcode_lookup_T_5; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[15:1]}; // @[Monitor.scala 638:144]
  wire  _T_605 = io_in_a_valid & a_first_1; // @[Monitor.scala 648:26]
  wire [1:0] _a_set_wo_ready_T = 2'h1 << io_in_a_bits_source; // @[OneHot.scala 57:35]
  wire [1:0] a_set_wo_ready = io_in_a_valid & a_first_1 ? _a_set_wo_ready_T : 2'h0; // @[Monitor.scala 648:71 649:22]
  wire  _T_608 = _a_first_T & a_first_1; // @[Monitor.scala 652:27]
  wire [2:0] _GEN_74 = {io_in_a_bits_source, 2'h0}; // @[Monitor.scala 656:79]
  wire [3:0] _a_opcodes_set_T = {{1'd0}, _GEN_74}; // @[Monitor.scala 656:79]
  wire [3:0] a_opcodes_set_interm = _a_first_T & a_first_1 ? 4'h9 : 4'h0; // @[Monitor.scala 652:72 654:28]
  wire [18:0] _GEN_274 = {{15'd0}, a_opcodes_set_interm}; // @[Monitor.scala 656:54]
  wire [18:0] _a_opcodes_set_T_1 = _GEN_274 << _a_opcodes_set_T; // @[Monitor.scala 656:54]
  wire [1:0] _T_610 = inflight >> io_in_a_bits_source; // @[Monitor.scala 658:26]
  wire  _T_612 = ~_T_610[0]; // @[Monitor.scala 658:17]
  wire [1:0] a_set = _a_first_T & a_first_1 ? _a_set_wo_ready_T : 2'h0; // @[Monitor.scala 652:72 653:28]
  wire [18:0] _GEN_19 = _a_first_T & a_first_1 ? _a_opcodes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 656:28]
  wire  _T_616 = io_in_d_valid & d_first_1; // @[Monitor.scala 671:26]
  wire  _T_618 = ~_T_412; // @[Monitor.scala 671:74]
  wire  _T_619 = io_in_d_valid & d_first_1 & ~_T_412; // @[Monitor.scala 671:71]
  wire [1:0] _d_clr_wo_ready_T = 2'h1 << io_in_d_bits_source; // @[OneHot.scala 57:35]
  wire [1:0] d_clr_wo_ready = io_in_d_valid & d_first_1 & ~_T_412 ? _d_clr_wo_ready_T : 2'h0; // @[Monitor.scala 671:90 672:22]
  wire [30:0] _GEN_276 = {{15'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [30:0] _d_opcodes_clr_T_5 = _GEN_276 << _a_opcode_lookup_T; // @[Monitor.scala 677:76]
  wire [1:0] d_clr = _d_first_T & d_first_1 & _T_618 ? _d_clr_wo_ready_T : 2'h0; // @[Monitor.scala 675:91 676:21]
  wire [30:0] _GEN_23 = _d_first_T & d_first_1 & _T_618 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 675:91 677:21]
  wire  _same_cycle_resp_T_2 = io_in_a_bits_source == io_in_d_bits_source; // @[Monitor.scala 681:113]
  wire  same_cycle_resp = _T_605 & io_in_a_bits_source == io_in_d_bits_source; // @[Monitor.scala 681:88]
  wire [1:0] _T_629 = inflight >> io_in_d_bits_source; // @[Monitor.scala 682:25]
  wire  _T_631 = _T_629[0] | same_cycle_resp; // @[Monitor.scala 682:49]
  wire  _T_637 = _T_506 | _T_506; // @[Monitor.scala 685:77]
  wire  _T_641 = 3'h4 == io_in_d_bits_size; // @[Monitor.scala 687:36]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_43 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_44 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_43; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_45 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_44; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_46 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_45; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_47 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_46; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_48 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_47; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_55 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_46; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_56 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_55; // @[Monitor.scala 690:{38,38}]
  wire  _T_648 = io_in_d_bits_opcode == _GEN_56; // @[Monitor.scala 690:38]
  wire  _T_649 = io_in_d_bits_opcode == _GEN_48 | _T_648; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire [3:0] _GEN_78 = {{1'd0}, io_in_d_bits_size}; // @[Monitor.scala 691:36]
  wire  _T_653 = _GEN_78 == a_size_lookup; // @[Monitor.scala 691:36]
  wire  _T_663 = _T_616 & a_first_1 & io_in_a_valid & _same_cycle_resp_T_2 & _T_618; // @[Monitor.scala 694:116]
  wire  _T_665 = ~io_in_d_ready | io_in_a_ready; // @[Monitor.scala 695:32]
  wire  _T_672 = a_set_wo_ready != d_clr_wo_ready | ~(|a_set_wo_ready); // @[Monitor.scala 699:48]
  wire [1:0] _inflight_T = inflight | a_set; // @[Monitor.scala 702:27]
  wire [1:0] _inflight_T_1 = ~d_clr; // @[Monitor.scala 702:38]
  wire [1:0] _inflight_T_2 = _inflight_T & _inflight_T_1; // @[Monitor.scala 702:36]
  wire [7:0] a_opcodes_set = _GEN_19[7:0];
  wire [7:0] _inflight_opcodes_T = inflight_opcodes | a_opcodes_set; // @[Monitor.scala 703:43]
  wire [7:0] d_opcodes_clr = _GEN_23[7:0];
  wire [7:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [7:0] _inflight_opcodes_T_2 = _inflight_opcodes_T & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [7:0] _inflight_sizes_T = inflight_sizes | a_opcodes_set; // @[Monitor.scala 704:39]
  wire [7:0] _inflight_sizes_T_2 = _inflight_sizes_T & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [31:0] watchdog; // @[Monitor.scala 706:27]
  wire  _T_681 = ~(|inflight) | plusarg_reader_out == 32'h0 | watchdog < plusarg_reader_out; // @[Monitor.scala 709:47]
  wire [31:0] _watchdog_T_1 = watchdog + 32'h1; // @[Monitor.scala 711:26]
  reg [1:0] inflight_1; // @[Monitor.scala 723:35]
  reg [7:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg  d_first_counter_2; // @[Edges.scala 228:27]
  wire  d_first_counter1_2 = d_first_counter_2 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = ~d_first_counter_2; // @[Edges.scala 230:25]
  wire [7:0] _c_size_lookup_T_1 = inflight_sizes_1 >> _a_opcode_lookup_T; // @[Monitor.scala 747:42]
  wire [15:0] _GEN_80 = {{8'd0}, _c_size_lookup_T_1}; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_6 = _GEN_80 & _a_opcode_lookup_T_5; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[15:1]}; // @[Monitor.scala 747:146]
  wire  _T_707 = io_in_d_valid & d_first_2 & _T_412; // @[Monitor.scala 779:71]
  wire [1:0] d_clr_1 = _d_first_T & d_first_2 & _T_412 ? _d_clr_wo_ready_T : 2'h0; // @[Monitor.scala 783:90 784:21]
  wire [30:0] _GEN_69 = _d_first_T & d_first_2 & _T_412 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 783:90 786:21]
  wire [1:0] _T_715 = inflight_1 >> io_in_d_bits_source; // @[Monitor.scala 791:25]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_725 = _GEN_78 == c_size_lookup; // @[Monitor.scala 795:36]
  wire [1:0] _inflight_T_4 = ~d_clr_1; // @[Monitor.scala 809:46]
  wire [1:0] _inflight_T_5 = inflight_1 & _inflight_T_4; // @[Monitor.scala 809:44]
  wire [7:0] d_sizes_clr_1 = _GEN_69[7:0];
  wire [7:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [7:0] _inflight_sizes_T_5 = inflight_sizes_1 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  reg [31:0] watchdog_1; // @[Monitor.scala 813:27]
  wire  _T_750 = ~(|inflight_1) | plusarg_reader_1_out == 32'h0 | watchdog_1 < plusarg_reader_1_out; // @[Monitor.scala 816:47]
  wire [31:0] _watchdog_T_3 = watchdog_1 + 32'h1; // @[Monitor.scala 818:26]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        a_first_counter <= 1'h0;
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      source <= io_in_a_bits_source; // @[Monitor.scala 400:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      address <= io_in_a_bits_address; // @[Monitor.scala 401:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        d_first_counter <= d_first_beats1;
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      param_1 <= io_in_d_bits_param; // @[Monitor.scala 551:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      size_1 <= io_in_d_bits_size; // @[Monitor.scala 552:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      source_1 <= io_in_d_bits_source; // @[Monitor.scala 553:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      sink <= io_in_d_bits_sink; // @[Monitor.scala 554:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      denied <= io_in_d_bits_denied; // @[Monitor.scala 555:15]
    end
    if (reset) begin // @[Monitor.scala 611:27]
      inflight <= 2'h0; // @[Monitor.scala 611:27]
    end else begin
      inflight <= _inflight_T_2; // @[Monitor.scala 702:14]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 8'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 8'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first_1) begin // @[Edges.scala 235:21]
        a_first_counter_1 <= 1'h0;
      end else begin
        a_first_counter_1 <= a_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        d_first_counter_1 <= d_first_beats1;
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 706:27]
      watchdog <= 32'h0; // @[Monitor.scala 706:27]
    end else if (_a_first_T | _d_first_T) begin // @[Monitor.scala 712:47]
      watchdog <= 32'h0; // @[Monitor.scala 712:58]
    end else begin
      watchdog <= _watchdog_T_1; // @[Monitor.scala 711:14]
    end
    if (reset) begin // @[Monitor.scala 723:35]
      inflight_1 <= 2'h0; // @[Monitor.scala 723:35]
    end else begin
      inflight_1 <= _inflight_T_5; // @[Monitor.scala 809:22]
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 8'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        d_first_counter_2 <= d_first_beats1;
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    if (reset) begin // @[Monitor.scala 813:27]
      watchdog_1 <= 32'h0; // @[Monitor.scala 813:27]
    end else if (_d_first_T) begin // @[Monitor.scala 819:47]
      watchdog_1 <= 32'h0; // @[Monitor.scala 819:58]
    end else begin
      watchdog_1 <= _watchdog_T_3; // @[Monitor.scala 818:14]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & ~reset & ~_T_38) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which slave claims it can't support (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_38 & (io_in_a_valid & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get address not aligned to size (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_408) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_408 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_412 & _T_2 & ~_T_416) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck smaller than a beat (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_416 & (io_in_d_valid & _T_412 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_412 & _T_2 & ~_T_420) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseeAck carries invalid param (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_420 & (io_in_d_valid & _T_412 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_412 & _T_2 & ~_T_424) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is corrupt (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_424 & (io_in_d_valid & _T_412 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_412 & _T_2 & ~_T_428) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is denied (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_428 & (io_in_d_valid & _T_412 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_432 & _T_2 & ~_T_416) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant smaller than a beat (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_416 & (io_in_d_valid & _T_432 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_432 & _T_2 & ~_T_443) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid cap param (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_443 & (io_in_d_valid & _T_432 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_432 & _T_2 & ~_T_447) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries toN param (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_447 & (io_in_d_valid & _T_432 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_432 & _T_2 & ~_T_424) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant is corrupt (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_424 & (io_in_d_valid & _T_432 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_432 & _T_2 & ~_T_428) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant is denied (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_428 & (io_in_d_valid & _T_432 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_460 & _T_2 & ~_T_416) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData smaller than a beat (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_416 & (io_in_d_valid & _T_460 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_460 & _T_2 & ~_T_443) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid cap param (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_443 & (io_in_d_valid & _T_460 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_460 & _T_2 & ~_T_447) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries toN param (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_447 & (io_in_d_valid & _T_460 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_460 & _T_2 & ~_T_480) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData is denied but not corrupt (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_480 & (io_in_d_valid & _T_460 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_460 & _T_2 & ~_T_428) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData is denied (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_428 & (io_in_d_valid & _T_460 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_489 & _T_2 & ~_T_420) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck carries invalid param (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_420 & (io_in_d_valid & _T_489 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_489 & _T_2 & ~_T_424) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck is corrupt (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_424 & (io_in_d_valid & _T_489 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_489 & _T_2 & ~_T_428) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck is denied (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_428 & (io_in_d_valid & _T_489 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_506 & _T_2 & ~_T_420) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData carries invalid param (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_420 & (io_in_d_valid & _T_506 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_506 & _T_2 & ~_T_480) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData is denied but not corrupt (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_480 & (io_in_d_valid & _T_506 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_506 & _T_2 & ~_T_428) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData is denied (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_428 & (io_in_d_valid & _T_506 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_524 & _T_2 & ~_T_420) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck carries invalid param (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_420 & (io_in_d_valid & _T_524 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_524 & _T_2 & ~_T_424) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck is corrupt (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_424 & (io_in_d_valid & _T_524 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_524 & _T_2 & ~_T_428) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck is denied (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_428 & (io_in_d_valid & _T_524 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_554 & ~reset & ~_T_567) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel source changed within multibeat operation (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_567 & (_T_554 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_554 & ~reset & ~_T_571) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel address changed with multibeat operation (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_571 & (_T_554 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_578 & _T_2 & ~_T_579) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_579 & (_T_578 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_578 & _T_2 & ~_T_583) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel param changed within multibeat operation (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_583 & (_T_578 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_578 & _T_2 & ~_T_587) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel size changed within multibeat operation (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_587 & (_T_578 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_578 & _T_2 & ~_T_591) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel source changed within multibeat operation (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_591 & (_T_578 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_578 & _T_2 & ~_T_595) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel sink changed with multibeat operation (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_595 & (_T_578 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_578 & _T_2 & ~_T_599) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel denied changed with multibeat operation (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_599 & (_T_578 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_608 & ~reset & ~_T_612) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel re-used a source ID (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_612 & (_T_608 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_619 & _T_2 & ~_T_631) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_631 & (_T_619 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_619 & same_cycle_resp & _T_2 & ~_T_637) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_637 & (_T_619 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_619 & same_cycle_resp & _T_2 & ~_T_641) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_641 & (_T_619 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_619 & ~same_cycle_resp & _T_2 & ~_T_649) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_649 & (_T_619 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_619 & ~same_cycle_resp & _T_2 & ~_T_653) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_653 & (_T_619 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_663 & _T_2 & ~_T_665) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_665 & (_T_663 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_2 & ~_T_672) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' and 'D' concurrent, despite minlatency 4 (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_672 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_681) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_681 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_707 & _T_2 & ~_T_715[0]) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_715[0] & (_T_707 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_707 & _T_2 & ~_T_725) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_725 & (_T_707 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_750) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:78:32)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_750 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  source = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  address = _RAND_2[31:0];
  _RAND_3 = {1{`RANDOM}};
  d_first_counter = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  opcode_1 = _RAND_4[2:0];
  _RAND_5 = {1{`RANDOM}};
  param_1 = _RAND_5[1:0];
  _RAND_6 = {1{`RANDOM}};
  size_1 = _RAND_6[2:0];
  _RAND_7 = {1{`RANDOM}};
  source_1 = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  sink = _RAND_8[4:0];
  _RAND_9 = {1{`RANDOM}};
  denied = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  inflight = _RAND_10[1:0];
  _RAND_11 = {1{`RANDOM}};
  inflight_opcodes = _RAND_11[7:0];
  _RAND_12 = {1{`RANDOM}};
  inflight_sizes = _RAND_12[7:0];
  _RAND_13 = {1{`RANDOM}};
  a_first_counter_1 = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  watchdog = _RAND_15[31:0];
  _RAND_16 = {1{`RANDOM}};
  inflight_1 = _RAND_16[1:0];
  _RAND_17 = {1{`RANDOM}};
  inflight_sizes_1 = _RAND_17[7:0];
  _RAND_18 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  watchdog_1 = _RAND_19[31:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLBuffer_2(
  input         clock,
  input         reset,
  output        auto_in_a_ready,
  input         auto_in_a_valid,
  input         auto_in_a_bits_source,
  input  [31:0] auto_in_a_bits_address,
  input         auto_in_d_ready,
  output        auto_in_d_valid,
  output [2:0]  auto_in_d_bits_opcode,
  output [2:0]  auto_in_d_bits_size,
  output        auto_in_d_bits_source,
  output [63:0] auto_in_d_bits_data,
  input         auto_out_a_ready,
  output        auto_out_a_valid,
  output [2:0]  auto_out_a_bits_opcode,
  output [2:0]  auto_out_a_bits_param,
  output [2:0]  auto_out_a_bits_size,
  output        auto_out_a_bits_source,
  output [31:0] auto_out_a_bits_address,
  output [7:0]  auto_out_a_bits_mask,
  output [63:0] auto_out_a_bits_data,
  output        auto_out_a_bits_corrupt,
  output        auto_out_d_ready,
  input         auto_out_d_valid,
  input  [2:0]  auto_out_d_bits_opcode,
  input  [1:0]  auto_out_d_bits_param,
  input  [2:0]  auto_out_d_bits_size,
  input         auto_out_d_bits_source,
  input  [4:0]  auto_out_d_bits_sink,
  input         auto_out_d_bits_denied,
  input  [63:0] auto_out_d_bits_data,
  input         auto_out_d_bits_corrupt
);
  wire  monitor_clock; // @[Nodes.scala 24:25]
  wire  monitor_reset; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_valid; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_bits_source; // @[Nodes.scala 24:25]
  wire [31:0] monitor_io_in_a_bits_address; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  wire [1:0] monitor_io_in_d_bits_param; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_size; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_source; // @[Nodes.scala 24:25]
  wire [4:0] monitor_io_in_d_bits_sink; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_denied; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_corrupt; // @[Nodes.scala 24:25]
  wire  bundleOut_0_a_q_clock; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_reset; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_io_enq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] bundleOut_0_a_q_io_enq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [2:0] bundleOut_0_a_q_io_enq_bits_param; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_io_enq_bits_source; // @[Decoupled.scala 377:21]
  wire [31:0] bundleOut_0_a_q_io_enq_bits_address; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_io_deq_ready; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_io_deq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] bundleOut_0_a_q_io_deq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [2:0] bundleOut_0_a_q_io_deq_bits_param; // @[Decoupled.scala 377:21]
  wire [2:0] bundleOut_0_a_q_io_deq_bits_size; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_io_deq_bits_source; // @[Decoupled.scala 377:21]
  wire [31:0] bundleOut_0_a_q_io_deq_bits_address; // @[Decoupled.scala 377:21]
  wire [7:0] bundleOut_0_a_q_io_deq_bits_mask; // @[Decoupled.scala 377:21]
  wire [63:0] bundleOut_0_a_q_io_deq_bits_data; // @[Decoupled.scala 377:21]
  wire  bundleOut_0_a_q_io_deq_bits_corrupt; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_clock; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_reset; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_enq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] bundleIn_0_d_q_io_enq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [1:0] bundleIn_0_d_q_io_enq_bits_param; // @[Decoupled.scala 377:21]
  wire [2:0] bundleIn_0_d_q_io_enq_bits_size; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_enq_bits_source; // @[Decoupled.scala 377:21]
  wire [4:0] bundleIn_0_d_q_io_enq_bits_sink; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_enq_bits_denied; // @[Decoupled.scala 377:21]
  wire [63:0] bundleIn_0_d_q_io_enq_bits_data; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_enq_bits_corrupt; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_deq_ready; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_deq_valid; // @[Decoupled.scala 377:21]
  wire [2:0] bundleIn_0_d_q_io_deq_bits_opcode; // @[Decoupled.scala 377:21]
  wire [1:0] bundleIn_0_d_q_io_deq_bits_param; // @[Decoupled.scala 377:21]
  wire [2:0] bundleIn_0_d_q_io_deq_bits_size; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_deq_bits_source; // @[Decoupled.scala 377:21]
  wire [4:0] bundleIn_0_d_q_io_deq_bits_sink; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_deq_bits_denied; // @[Decoupled.scala 377:21]
  wire [63:0] bundleIn_0_d_q_io_deq_bits_data; // @[Decoupled.scala 377:21]
  wire  bundleIn_0_d_q_io_deq_bits_corrupt; // @[Decoupled.scala 377:21]
  TLMonitor_14 monitor ( // @[Nodes.scala 24:25]
    .clock(monitor_clock),
    .reset(monitor_reset),
    .io_in_a_ready(monitor_io_in_a_ready),
    .io_in_a_valid(monitor_io_in_a_valid),
    .io_in_a_bits_source(monitor_io_in_a_bits_source),
    .io_in_a_bits_address(monitor_io_in_a_bits_address),
    .io_in_d_ready(monitor_io_in_d_ready),
    .io_in_d_valid(monitor_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_io_in_d_bits_opcode),
    .io_in_d_bits_param(monitor_io_in_d_bits_param),
    .io_in_d_bits_size(monitor_io_in_d_bits_size),
    .io_in_d_bits_source(monitor_io_in_d_bits_source),
    .io_in_d_bits_sink(monitor_io_in_d_bits_sink),
    .io_in_d_bits_denied(monitor_io_in_d_bits_denied),
    .io_in_d_bits_corrupt(monitor_io_in_d_bits_corrupt)
  );
  Queue_33 bundleOut_0_a_q ( // @[Decoupled.scala 377:21]
    .clock(bundleOut_0_a_q_clock),
    .reset(bundleOut_0_a_q_reset),
    .io_enq_ready(bundleOut_0_a_q_io_enq_ready),
    .io_enq_valid(bundleOut_0_a_q_io_enq_valid),
    .io_enq_bits_opcode(bundleOut_0_a_q_io_enq_bits_opcode),
    .io_enq_bits_param(bundleOut_0_a_q_io_enq_bits_param),
    .io_enq_bits_source(bundleOut_0_a_q_io_enq_bits_source),
    .io_enq_bits_address(bundleOut_0_a_q_io_enq_bits_address),
    .io_deq_ready(bundleOut_0_a_q_io_deq_ready),
    .io_deq_valid(bundleOut_0_a_q_io_deq_valid),
    .io_deq_bits_opcode(bundleOut_0_a_q_io_deq_bits_opcode),
    .io_deq_bits_param(bundleOut_0_a_q_io_deq_bits_param),
    .io_deq_bits_size(bundleOut_0_a_q_io_deq_bits_size),
    .io_deq_bits_source(bundleOut_0_a_q_io_deq_bits_source),
    .io_deq_bits_address(bundleOut_0_a_q_io_deq_bits_address),
    .io_deq_bits_mask(bundleOut_0_a_q_io_deq_bits_mask),
    .io_deq_bits_data(bundleOut_0_a_q_io_deq_bits_data),
    .io_deq_bits_corrupt(bundleOut_0_a_q_io_deq_bits_corrupt)
  );
  Queue_34 bundleIn_0_d_q ( // @[Decoupled.scala 377:21]
    .clock(bundleIn_0_d_q_clock),
    .reset(bundleIn_0_d_q_reset),
    .io_enq_ready(bundleIn_0_d_q_io_enq_ready),
    .io_enq_valid(bundleIn_0_d_q_io_enq_valid),
    .io_enq_bits_opcode(bundleIn_0_d_q_io_enq_bits_opcode),
    .io_enq_bits_param(bundleIn_0_d_q_io_enq_bits_param),
    .io_enq_bits_size(bundleIn_0_d_q_io_enq_bits_size),
    .io_enq_bits_source(bundleIn_0_d_q_io_enq_bits_source),
    .io_enq_bits_sink(bundleIn_0_d_q_io_enq_bits_sink),
    .io_enq_bits_denied(bundleIn_0_d_q_io_enq_bits_denied),
    .io_enq_bits_data(bundleIn_0_d_q_io_enq_bits_data),
    .io_enq_bits_corrupt(bundleIn_0_d_q_io_enq_bits_corrupt),
    .io_deq_ready(bundleIn_0_d_q_io_deq_ready),
    .io_deq_valid(bundleIn_0_d_q_io_deq_valid),
    .io_deq_bits_opcode(bundleIn_0_d_q_io_deq_bits_opcode),
    .io_deq_bits_param(bundleIn_0_d_q_io_deq_bits_param),
    .io_deq_bits_size(bundleIn_0_d_q_io_deq_bits_size),
    .io_deq_bits_source(bundleIn_0_d_q_io_deq_bits_source),
    .io_deq_bits_sink(bundleIn_0_d_q_io_deq_bits_sink),
    .io_deq_bits_denied(bundleIn_0_d_q_io_deq_bits_denied),
    .io_deq_bits_data(bundleIn_0_d_q_io_deq_bits_data),
    .io_deq_bits_corrupt(bundleIn_0_d_q_io_deq_bits_corrupt)
  );
  assign auto_in_a_ready = bundleOut_0_a_q_io_enq_ready; // @[Nodes.scala 1210:84 Decoupled.scala 381:17]
  assign auto_in_d_valid = bundleIn_0_d_q_io_deq_valid; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign auto_in_d_bits_opcode = bundleIn_0_d_q_io_deq_bits_opcode; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign auto_in_d_bits_size = bundleIn_0_d_q_io_deq_bits_size; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign auto_in_d_bits_source = bundleIn_0_d_q_io_deq_bits_source; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign auto_in_d_bits_data = bundleIn_0_d_q_io_deq_bits_data; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign auto_out_a_valid = bundleOut_0_a_q_io_deq_valid; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_opcode = bundleOut_0_a_q_io_deq_bits_opcode; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_param = bundleOut_0_a_q_io_deq_bits_param; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_size = bundleOut_0_a_q_io_deq_bits_size; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_source = bundleOut_0_a_q_io_deq_bits_source; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_address = bundleOut_0_a_q_io_deq_bits_address; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_mask = bundleOut_0_a_q_io_deq_bits_mask; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_data = bundleOut_0_a_q_io_deq_bits_data; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_a_bits_corrupt = bundleOut_0_a_q_io_deq_bits_corrupt; // @[Nodes.scala 1207:84 Buffer.scala 37:13]
  assign auto_out_d_ready = bundleIn_0_d_q_io_enq_ready; // @[Nodes.scala 1207:84 Decoupled.scala 381:17]
  assign monitor_clock = clock;
  assign monitor_reset = reset;
  assign monitor_io_in_a_ready = bundleOut_0_a_q_io_enq_ready; // @[Nodes.scala 1210:84 Decoupled.scala 381:17]
  assign monitor_io_in_a_valid = auto_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_source = auto_in_a_bits_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_ready = auto_in_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_valid = bundleIn_0_d_q_io_deq_valid; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign monitor_io_in_d_bits_opcode = bundleIn_0_d_q_io_deq_bits_opcode; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign monitor_io_in_d_bits_param = bundleIn_0_d_q_io_deq_bits_param; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign monitor_io_in_d_bits_size = bundleIn_0_d_q_io_deq_bits_size; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign monitor_io_in_d_bits_source = bundleIn_0_d_q_io_deq_bits_source; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign monitor_io_in_d_bits_sink = bundleIn_0_d_q_io_deq_bits_sink; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign monitor_io_in_d_bits_denied = bundleIn_0_d_q_io_deq_bits_denied; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign monitor_io_in_d_bits_corrupt = bundleIn_0_d_q_io_deq_bits_corrupt; // @[Nodes.scala 1210:84 Buffer.scala 38:13]
  assign bundleOut_0_a_q_clock = clock;
  assign bundleOut_0_a_q_reset = reset;
  assign bundleOut_0_a_q_io_enq_valid = auto_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_a_q_io_enq_bits_opcode = 3'h4; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_a_q_io_enq_bits_param = 3'h0; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_a_q_io_enq_bits_source = auto_in_a_bits_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_a_q_io_enq_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign bundleOut_0_a_q_io_deq_ready = auto_out_a_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_clock = clock;
  assign bundleIn_0_d_q_reset = reset;
  assign bundleIn_0_d_q_io_enq_valid = auto_out_d_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_param = auto_out_d_bits_param; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_size = auto_out_d_bits_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_source = auto_out_d_bits_source; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_sink = auto_out_d_bits_sink; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_denied = auto_out_d_bits_denied; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_data = auto_out_d_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_enq_bits_corrupt = auto_out_d_bits_corrupt; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign bundleIn_0_d_q_io_deq_ready = auto_in_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
endmodule
module Rift2LinkA(
  input         clock,
  input         reset,
  input         io_rtc_clock,
  output        io_dm_hartIsInReset,
  input         io_dm_hartResetReq,
  input         io_dm_hartHaltReq,
  input         io_aclint_msi,
  input         io_aclint_mti,
  input         io_aclint_ssi,
  input         io_aclint_sti,
  input         io_plic_mei,
  input         io_plic_sei,
  output        io_hspi_clk,
  input         io_hspi_rx_enable,
  input  [15:0] io_hspi_rx_data,
  output        io_hspi_tx_enable,
  output [15:0] io_hspi_tx_data,
  output        io_hspi_oen
);
  wire  i_rift2Core_clock; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_reset; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_mmu_client_out_a_ready; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_mmu_client_out_a_valid; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_mmu_client_out_a_bits_source; // @[Rift2Link.scala 47:31]
  wire [31:0] i_rift2Core_auto_mmu_client_out_a_bits_address; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_mmu_client_out_d_ready; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_mmu_client_out_d_valid; // @[Rift2Link.scala 47:31]
  wire [2:0] i_rift2Core_auto_mmu_client_out_d_bits_opcode; // @[Rift2Link.scala 47:31]
  wire [2:0] i_rift2Core_auto_mmu_client_out_d_bits_size; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_mmu_client_out_d_bits_source; // @[Rift2Link.scala 47:31]
  wire [63:0] i_rift2Core_auto_mmu_client_out_d_bits_data; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_periph_client_out_a_ready; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_periph_client_out_a_valid; // @[Rift2Link.scala 47:31]
  wire [2:0] i_rift2Core_auto_periph_client_out_a_bits_opcode; // @[Rift2Link.scala 47:31]
  wire [31:0] i_rift2Core_auto_periph_client_out_a_bits_address; // @[Rift2Link.scala 47:31]
  wire [7:0] i_rift2Core_auto_periph_client_out_a_bits_mask; // @[Rift2Link.scala 47:31]
  wire [63:0] i_rift2Core_auto_periph_client_out_a_bits_data; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_periph_client_out_d_ready; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_periph_client_out_d_valid; // @[Rift2Link.scala 47:31]
  wire [2:0] i_rift2Core_auto_periph_client_out_d_bits_opcode; // @[Rift2Link.scala 47:31]
  wire [63:0] i_rift2Core_auto_periph_client_out_d_bits_data; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_system_client_out_a_ready; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_system_client_out_a_valid; // @[Rift2Link.scala 47:31]
  wire [2:0] i_rift2Core_auto_system_client_out_a_bits_opcode; // @[Rift2Link.scala 47:31]
  wire [31:0] i_rift2Core_auto_system_client_out_a_bits_address; // @[Rift2Link.scala 47:31]
  wire [7:0] i_rift2Core_auto_system_client_out_a_bits_mask; // @[Rift2Link.scala 47:31]
  wire [63:0] i_rift2Core_auto_system_client_out_a_bits_data; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_system_client_out_d_ready; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_system_client_out_d_valid; // @[Rift2Link.scala 47:31]
  wire [2:0] i_rift2Core_auto_system_client_out_d_bits_opcode; // @[Rift2Link.scala 47:31]
  wire [63:0] i_rift2Core_auto_system_client_out_d_bits_data; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_dcache_client_out_a_ready; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_dcache_client_out_a_valid; // @[Rift2Link.scala 47:31]
  wire [31:0] i_rift2Core_auto_dcache_client_out_a_bits_address; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_dcache_client_out_b_ready; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_dcache_client_out_b_valid; // @[Rift2Link.scala 47:31]
  wire [31:0] i_rift2Core_auto_dcache_client_out_b_bits_address; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_dcache_client_out_c_ready; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_dcache_client_out_c_valid; // @[Rift2Link.scala 47:31]
  wire [2:0] i_rift2Core_auto_dcache_client_out_c_bits_opcode; // @[Rift2Link.scala 47:31]
  wire [2:0] i_rift2Core_auto_dcache_client_out_c_bits_param; // @[Rift2Link.scala 47:31]
  wire [2:0] i_rift2Core_auto_dcache_client_out_c_bits_size; // @[Rift2Link.scala 47:31]
  wire [31:0] i_rift2Core_auto_dcache_client_out_c_bits_address; // @[Rift2Link.scala 47:31]
  wire [63:0] i_rift2Core_auto_dcache_client_out_c_bits_data; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_dcache_client_out_d_ready; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_dcache_client_out_d_valid; // @[Rift2Link.scala 47:31]
  wire [2:0] i_rift2Core_auto_dcache_client_out_d_bits_opcode; // @[Rift2Link.scala 47:31]
  wire [2:0] i_rift2Core_auto_dcache_client_out_d_bits_size; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_dcache_client_out_d_bits_source; // @[Rift2Link.scala 47:31]
  wire [4:0] i_rift2Core_auto_dcache_client_out_d_bits_sink; // @[Rift2Link.scala 47:31]
  wire [63:0] i_rift2Core_auto_dcache_client_out_d_bits_data; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_dcache_client_out_e_ready; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_dcache_client_out_e_valid; // @[Rift2Link.scala 47:31]
  wire [4:0] i_rift2Core_auto_dcache_client_out_e_bits_sink; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_icache_client_out_a_ready; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_icache_client_out_a_valid; // @[Rift2Link.scala 47:31]
  wire [31:0] i_rift2Core_auto_icache_client_out_a_bits_address; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_auto_icache_client_out_d_valid; // @[Rift2Link.scala 47:31]
  wire [2:0] i_rift2Core_auto_icache_client_out_d_bits_opcode; // @[Rift2Link.scala 47:31]
  wire [2:0] i_rift2Core_auto_icache_client_out_d_bits_size; // @[Rift2Link.scala 47:31]
  wire [63:0] i_rift2Core_auto_icache_client_out_d_bits_data; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_io_dm_hartIsInReset; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_io_dm_hartResetReq; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_io_dm_hartHaltReq; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_io_rtc_clock; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_io_aclint_msi; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_io_aclint_mti; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_io_aclint_ssi; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_io_aclint_sti; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_io_plic_mei; // @[Rift2Link.scala 47:31]
  wire  i_rift2Core_io_plic_sei; // @[Rift2Link.scala 47:31]
  wire  sifiveCache_clock; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_reset; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_in_a_ready; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_in_a_valid; // @[Rift2Link.scala 49:54]
  wire [2:0] sifiveCache_auto_in_a_bits_opcode; // @[Rift2Link.scala 49:54]
  wire [2:0] sifiveCache_auto_in_a_bits_param; // @[Rift2Link.scala 49:54]
  wire [2:0] sifiveCache_auto_in_a_bits_size; // @[Rift2Link.scala 49:54]
  wire [2:0] sifiveCache_auto_in_a_bits_source; // @[Rift2Link.scala 49:54]
  wire [31:0] sifiveCache_auto_in_a_bits_address; // @[Rift2Link.scala 49:54]
  wire [7:0] sifiveCache_auto_in_a_bits_mask; // @[Rift2Link.scala 49:54]
  wire [63:0] sifiveCache_auto_in_a_bits_data; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_in_a_bits_corrupt; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_in_b_ready; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_in_b_valid; // @[Rift2Link.scala 49:54]
  wire [1:0] sifiveCache_auto_in_b_bits_param; // @[Rift2Link.scala 49:54]
  wire [31:0] sifiveCache_auto_in_b_bits_address; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_in_c_ready; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_in_c_valid; // @[Rift2Link.scala 49:54]
  wire [2:0] sifiveCache_auto_in_c_bits_opcode; // @[Rift2Link.scala 49:54]
  wire [2:0] sifiveCache_auto_in_c_bits_param; // @[Rift2Link.scala 49:54]
  wire [2:0] sifiveCache_auto_in_c_bits_size; // @[Rift2Link.scala 49:54]
  wire [31:0] sifiveCache_auto_in_c_bits_address; // @[Rift2Link.scala 49:54]
  wire [63:0] sifiveCache_auto_in_c_bits_data; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_in_c_bits_corrupt; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_in_d_ready; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_in_d_valid; // @[Rift2Link.scala 49:54]
  wire [2:0] sifiveCache_auto_in_d_bits_opcode; // @[Rift2Link.scala 49:54]
  wire [1:0] sifiveCache_auto_in_d_bits_param; // @[Rift2Link.scala 49:54]
  wire [2:0] sifiveCache_auto_in_d_bits_size; // @[Rift2Link.scala 49:54]
  wire [2:0] sifiveCache_auto_in_d_bits_source; // @[Rift2Link.scala 49:54]
  wire [4:0] sifiveCache_auto_in_d_bits_sink; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_in_d_bits_denied; // @[Rift2Link.scala 49:54]
  wire [63:0] sifiveCache_auto_in_d_bits_data; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_in_d_bits_corrupt; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_in_e_valid; // @[Rift2Link.scala 49:54]
  wire [4:0] sifiveCache_auto_in_e_bits_sink; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_out_a_ready; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_out_a_valid; // @[Rift2Link.scala 49:54]
  wire [2:0] sifiveCache_auto_out_a_bits_opcode; // @[Rift2Link.scala 49:54]
  wire [2:0] sifiveCache_auto_out_a_bits_param; // @[Rift2Link.scala 49:54]
  wire [2:0] sifiveCache_auto_out_a_bits_size; // @[Rift2Link.scala 49:54]
  wire [4:0] sifiveCache_auto_out_a_bits_source; // @[Rift2Link.scala 49:54]
  wire [31:0] sifiveCache_auto_out_a_bits_address; // @[Rift2Link.scala 49:54]
  wire [7:0] sifiveCache_auto_out_a_bits_mask; // @[Rift2Link.scala 49:54]
  wire [63:0] sifiveCache_auto_out_a_bits_data; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_out_a_bits_corrupt; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_out_c_ready; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_out_c_valid; // @[Rift2Link.scala 49:54]
  wire [2:0] sifiveCache_auto_out_c_bits_opcode; // @[Rift2Link.scala 49:54]
  wire [2:0] sifiveCache_auto_out_c_bits_param; // @[Rift2Link.scala 49:54]
  wire [2:0] sifiveCache_auto_out_c_bits_size; // @[Rift2Link.scala 49:54]
  wire [4:0] sifiveCache_auto_out_c_bits_source; // @[Rift2Link.scala 49:54]
  wire [31:0] sifiveCache_auto_out_c_bits_address; // @[Rift2Link.scala 49:54]
  wire [63:0] sifiveCache_auto_out_c_bits_data; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_out_c_bits_corrupt; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_out_d_ready; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_out_d_valid; // @[Rift2Link.scala 49:54]
  wire [2:0] sifiveCache_auto_out_d_bits_opcode; // @[Rift2Link.scala 49:54]
  wire [1:0] sifiveCache_auto_out_d_bits_param; // @[Rift2Link.scala 49:54]
  wire [2:0] sifiveCache_auto_out_d_bits_size; // @[Rift2Link.scala 49:54]
  wire [4:0] sifiveCache_auto_out_d_bits_source; // @[Rift2Link.scala 49:54]
  wire [2:0] sifiveCache_auto_out_d_bits_sink; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_out_d_bits_denied; // @[Rift2Link.scala 49:54]
  wire [63:0] sifiveCache_auto_out_d_bits_data; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_out_d_bits_corrupt; // @[Rift2Link.scala 49:54]
  wire  sifiveCache_auto_out_e_valid; // @[Rift2Link.scala 49:54]
  wire [2:0] sifiveCache_auto_out_e_bits_sink; // @[Rift2Link.scala 49:54]
  wire  chipLinkMst_clock; // @[Rift2Link.scala 57:31]
  wire  chipLinkMst_reset; // @[Rift2Link.scala 57:31]
  wire  chipLinkMst_auto_chip_link_master_in_a_ready; // @[Rift2Link.scala 57:31]
  wire  chipLinkMst_auto_chip_link_master_in_a_valid; // @[Rift2Link.scala 57:31]
  wire [2:0] chipLinkMst_auto_chip_link_master_in_a_bits_opcode; // @[Rift2Link.scala 57:31]
  wire [2:0] chipLinkMst_auto_chip_link_master_in_a_bits_param; // @[Rift2Link.scala 57:31]
  wire [1:0] chipLinkMst_auto_chip_link_master_in_a_bits_size; // @[Rift2Link.scala 57:31]
  wire [9:0] chipLinkMst_auto_chip_link_master_in_a_bits_source; // @[Rift2Link.scala 57:31]
  wire [31:0] chipLinkMst_auto_chip_link_master_in_a_bits_address; // @[Rift2Link.scala 57:31]
  wire [7:0] chipLinkMst_auto_chip_link_master_in_a_bits_mask; // @[Rift2Link.scala 57:31]
  wire [63:0] chipLinkMst_auto_chip_link_master_in_a_bits_data; // @[Rift2Link.scala 57:31]
  wire  chipLinkMst_auto_chip_link_master_in_a_bits_corrupt; // @[Rift2Link.scala 57:31]
  wire  chipLinkMst_auto_chip_link_master_in_d_ready; // @[Rift2Link.scala 57:31]
  wire  chipLinkMst_auto_chip_link_master_in_d_valid; // @[Rift2Link.scala 57:31]
  wire [2:0] chipLinkMst_auto_chip_link_master_in_d_bits_opcode; // @[Rift2Link.scala 57:31]
  wire [1:0] chipLinkMst_auto_chip_link_master_in_d_bits_size; // @[Rift2Link.scala 57:31]
  wire [9:0] chipLinkMst_auto_chip_link_master_in_d_bits_source; // @[Rift2Link.scala 57:31]
  wire [63:0] chipLinkMst_auto_chip_link_master_in_d_bits_data; // @[Rift2Link.scala 57:31]
  wire  chipLinkMst_io_hspi_clk; // @[Rift2Link.scala 57:31]
  wire  chipLinkMst_io_hspi_rx_enable; // @[Rift2Link.scala 57:31]
  wire [15:0] chipLinkMst_io_hspi_rx_data; // @[Rift2Link.scala 57:31]
  wire  chipLinkMst_io_hspi_tx_enable; // @[Rift2Link.scala 57:31]
  wire [15:0] chipLinkMst_io_hspi_tx_data; // @[Rift2Link.scala 57:31]
  wire  chipLinkMst_io_hspi_oen; // @[Rift2Link.scala 57:31]
  wire  xbar_clock; // @[Xbar.scala 142:26]
  wire  xbar_reset; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_2_a_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_2_a_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_in_2_a_bits_opcode; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_in_2_a_bits_param; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_in_2_a_bits_size; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_2_a_bits_source; // @[Xbar.scala 142:26]
  wire [31:0] xbar_auto_in_2_a_bits_address; // @[Xbar.scala 142:26]
  wire [7:0] xbar_auto_in_2_a_bits_mask; // @[Xbar.scala 142:26]
  wire [63:0] xbar_auto_in_2_a_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_2_a_bits_corrupt; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_2_d_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_2_d_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_in_2_d_bits_opcode; // @[Xbar.scala 142:26]
  wire [1:0] xbar_auto_in_2_d_bits_param; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_in_2_d_bits_size; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_2_d_bits_source; // @[Xbar.scala 142:26]
  wire [4:0] xbar_auto_in_2_d_bits_sink; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_2_d_bits_denied; // @[Xbar.scala 142:26]
  wire [63:0] xbar_auto_in_2_d_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_2_d_bits_corrupt; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_1_a_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_1_a_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_in_1_a_bits_opcode; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_in_1_a_bits_param; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_in_1_a_bits_size; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_1_a_bits_source; // @[Xbar.scala 142:26]
  wire [31:0] xbar_auto_in_1_a_bits_address; // @[Xbar.scala 142:26]
  wire [7:0] xbar_auto_in_1_a_bits_mask; // @[Xbar.scala 142:26]
  wire [63:0] xbar_auto_in_1_a_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_1_a_bits_corrupt; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_1_b_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_1_b_valid; // @[Xbar.scala 142:26]
  wire [1:0] xbar_auto_in_1_b_bits_param; // @[Xbar.scala 142:26]
  wire [31:0] xbar_auto_in_1_b_bits_address; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_1_c_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_1_c_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_in_1_c_bits_opcode; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_in_1_c_bits_param; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_in_1_c_bits_size; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_1_c_bits_source; // @[Xbar.scala 142:26]
  wire [31:0] xbar_auto_in_1_c_bits_address; // @[Xbar.scala 142:26]
  wire [63:0] xbar_auto_in_1_c_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_1_c_bits_corrupt; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_1_d_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_1_d_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_in_1_d_bits_opcode; // @[Xbar.scala 142:26]
  wire [1:0] xbar_auto_in_1_d_bits_param; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_in_1_d_bits_size; // @[Xbar.scala 142:26]
  wire [4:0] xbar_auto_in_1_d_bits_sink; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_1_d_bits_denied; // @[Xbar.scala 142:26]
  wire [63:0] xbar_auto_in_1_d_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_1_d_bits_corrupt; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_1_e_valid; // @[Xbar.scala 142:26]
  wire [4:0] xbar_auto_in_1_e_bits_sink; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_0_a_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_0_a_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_in_0_a_bits_opcode; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_in_0_a_bits_param; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_in_0_a_bits_size; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_0_a_bits_source; // @[Xbar.scala 142:26]
  wire [31:0] xbar_auto_in_0_a_bits_address; // @[Xbar.scala 142:26]
  wire [7:0] xbar_auto_in_0_a_bits_mask; // @[Xbar.scala 142:26]
  wire [63:0] xbar_auto_in_0_a_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_0_a_bits_corrupt; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_0_d_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_0_d_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_in_0_d_bits_opcode; // @[Xbar.scala 142:26]
  wire [1:0] xbar_auto_in_0_d_bits_param; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_in_0_d_bits_size; // @[Xbar.scala 142:26]
  wire [4:0] xbar_auto_in_0_d_bits_sink; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_0_d_bits_denied; // @[Xbar.scala 142:26]
  wire [63:0] xbar_auto_in_0_d_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_0_d_bits_corrupt; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_a_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_a_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_a_bits_opcode; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_a_bits_param; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_a_bits_size; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_a_bits_source; // @[Xbar.scala 142:26]
  wire [31:0] xbar_auto_out_a_bits_address; // @[Xbar.scala 142:26]
  wire [7:0] xbar_auto_out_a_bits_mask; // @[Xbar.scala 142:26]
  wire [63:0] xbar_auto_out_a_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_a_bits_corrupt; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_b_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_b_valid; // @[Xbar.scala 142:26]
  wire [1:0] xbar_auto_out_b_bits_param; // @[Xbar.scala 142:26]
  wire [31:0] xbar_auto_out_b_bits_address; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_c_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_c_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_c_bits_opcode; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_c_bits_param; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_c_bits_size; // @[Xbar.scala 142:26]
  wire [31:0] xbar_auto_out_c_bits_address; // @[Xbar.scala 142:26]
  wire [63:0] xbar_auto_out_c_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_c_bits_corrupt; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_d_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_d_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_d_bits_opcode; // @[Xbar.scala 142:26]
  wire [1:0] xbar_auto_out_d_bits_param; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_d_bits_size; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_d_bits_source; // @[Xbar.scala 142:26]
  wire [4:0] xbar_auto_out_d_bits_sink; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_d_bits_denied; // @[Xbar.scala 142:26]
  wire [63:0] xbar_auto_out_d_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_d_bits_corrupt; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_e_valid; // @[Xbar.scala 142:26]
  wire [4:0] xbar_auto_out_e_bits_sink; // @[Xbar.scala 142:26]
  wire  xbar_1_clock; // @[Xbar.scala 142:26]
  wire  xbar_1_reset; // @[Xbar.scala 142:26]
  wire  xbar_1_auto_in_2_a_ready; // @[Xbar.scala 142:26]
  wire  xbar_1_auto_in_2_a_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_1_auto_in_2_a_bits_opcode; // @[Xbar.scala 142:26]
  wire [31:0] xbar_1_auto_in_2_a_bits_address; // @[Xbar.scala 142:26]
  wire [7:0] xbar_1_auto_in_2_a_bits_mask; // @[Xbar.scala 142:26]
  wire [63:0] xbar_1_auto_in_2_a_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_1_auto_in_2_d_ready; // @[Xbar.scala 142:26]
  wire  xbar_1_auto_in_2_d_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_1_auto_in_2_d_bits_opcode; // @[Xbar.scala 142:26]
  wire [63:0] xbar_1_auto_in_2_d_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_1_auto_in_1_a_ready; // @[Xbar.scala 142:26]
  wire  xbar_1_auto_in_1_a_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_1_auto_in_1_a_bits_opcode; // @[Xbar.scala 142:26]
  wire [31:0] xbar_1_auto_in_1_a_bits_address; // @[Xbar.scala 142:26]
  wire [7:0] xbar_1_auto_in_1_a_bits_mask; // @[Xbar.scala 142:26]
  wire [63:0] xbar_1_auto_in_1_a_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_1_auto_in_1_d_ready; // @[Xbar.scala 142:26]
  wire  xbar_1_auto_in_1_d_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_1_auto_in_1_d_bits_opcode; // @[Xbar.scala 142:26]
  wire [63:0] xbar_1_auto_in_1_d_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_1_auto_in_0_a_ready; // @[Xbar.scala 142:26]
  wire  xbar_1_auto_in_0_a_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_1_auto_in_0_a_bits_opcode; // @[Xbar.scala 142:26]
  wire [2:0] xbar_1_auto_in_0_a_bits_param; // @[Xbar.scala 142:26]
  wire [1:0] xbar_1_auto_in_0_a_bits_size; // @[Xbar.scala 142:26]
  wire [8:0] xbar_1_auto_in_0_a_bits_source; // @[Xbar.scala 142:26]
  wire [31:0] xbar_1_auto_in_0_a_bits_address; // @[Xbar.scala 142:26]
  wire [7:0] xbar_1_auto_in_0_a_bits_mask; // @[Xbar.scala 142:26]
  wire [63:0] xbar_1_auto_in_0_a_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_1_auto_in_0_a_bits_corrupt; // @[Xbar.scala 142:26]
  wire  xbar_1_auto_in_0_d_ready; // @[Xbar.scala 142:26]
  wire  xbar_1_auto_in_0_d_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_1_auto_in_0_d_bits_opcode; // @[Xbar.scala 142:26]
  wire [1:0] xbar_1_auto_in_0_d_bits_size; // @[Xbar.scala 142:26]
  wire [8:0] xbar_1_auto_in_0_d_bits_source; // @[Xbar.scala 142:26]
  wire [63:0] xbar_1_auto_in_0_d_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_1_auto_out_a_ready; // @[Xbar.scala 142:26]
  wire  xbar_1_auto_out_a_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_1_auto_out_a_bits_opcode; // @[Xbar.scala 142:26]
  wire [2:0] xbar_1_auto_out_a_bits_param; // @[Xbar.scala 142:26]
  wire [1:0] xbar_1_auto_out_a_bits_size; // @[Xbar.scala 142:26]
  wire [9:0] xbar_1_auto_out_a_bits_source; // @[Xbar.scala 142:26]
  wire [31:0] xbar_1_auto_out_a_bits_address; // @[Xbar.scala 142:26]
  wire [7:0] xbar_1_auto_out_a_bits_mask; // @[Xbar.scala 142:26]
  wire [63:0] xbar_1_auto_out_a_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_1_auto_out_a_bits_corrupt; // @[Xbar.scala 142:26]
  wire  xbar_1_auto_out_d_ready; // @[Xbar.scala 142:26]
  wire  xbar_1_auto_out_d_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_1_auto_out_d_bits_opcode; // @[Xbar.scala 142:26]
  wire [1:0] xbar_1_auto_out_d_bits_size; // @[Xbar.scala 142:26]
  wire [9:0] xbar_1_auto_out_d_bits_source; // @[Xbar.scala 142:26]
  wire [63:0] xbar_1_auto_out_d_bits_data; // @[Xbar.scala 142:26]
  wire  fixer_clock; // @[FIFOFixer.scala 144:27]
  wire  fixer_reset; // @[FIFOFixer.scala 144:27]
  wire  fixer_auto_in_a_ready; // @[FIFOFixer.scala 144:27]
  wire  fixer_auto_in_a_valid; // @[FIFOFixer.scala 144:27]
  wire [2:0] fixer_auto_in_a_bits_opcode; // @[FIFOFixer.scala 144:27]
  wire [2:0] fixer_auto_in_a_bits_param; // @[FIFOFixer.scala 144:27]
  wire [1:0] fixer_auto_in_a_bits_size; // @[FIFOFixer.scala 144:27]
  wire [8:0] fixer_auto_in_a_bits_source; // @[FIFOFixer.scala 144:27]
  wire [31:0] fixer_auto_in_a_bits_address; // @[FIFOFixer.scala 144:27]
  wire [7:0] fixer_auto_in_a_bits_mask; // @[FIFOFixer.scala 144:27]
  wire [63:0] fixer_auto_in_a_bits_data; // @[FIFOFixer.scala 144:27]
  wire  fixer_auto_in_a_bits_corrupt; // @[FIFOFixer.scala 144:27]
  wire  fixer_auto_in_d_ready; // @[FIFOFixer.scala 144:27]
  wire  fixer_auto_in_d_valid; // @[FIFOFixer.scala 144:27]
  wire [2:0] fixer_auto_in_d_bits_opcode; // @[FIFOFixer.scala 144:27]
  wire [1:0] fixer_auto_in_d_bits_size; // @[FIFOFixer.scala 144:27]
  wire [8:0] fixer_auto_in_d_bits_source; // @[FIFOFixer.scala 144:27]
  wire [63:0] fixer_auto_in_d_bits_data; // @[FIFOFixer.scala 144:27]
  wire  fixer_auto_out_a_ready; // @[FIFOFixer.scala 144:27]
  wire  fixer_auto_out_a_valid; // @[FIFOFixer.scala 144:27]
  wire [2:0] fixer_auto_out_a_bits_opcode; // @[FIFOFixer.scala 144:27]
  wire [2:0] fixer_auto_out_a_bits_param; // @[FIFOFixer.scala 144:27]
  wire [1:0] fixer_auto_out_a_bits_size; // @[FIFOFixer.scala 144:27]
  wire [8:0] fixer_auto_out_a_bits_source; // @[FIFOFixer.scala 144:27]
  wire [31:0] fixer_auto_out_a_bits_address; // @[FIFOFixer.scala 144:27]
  wire [7:0] fixer_auto_out_a_bits_mask; // @[FIFOFixer.scala 144:27]
  wire [63:0] fixer_auto_out_a_bits_data; // @[FIFOFixer.scala 144:27]
  wire  fixer_auto_out_a_bits_corrupt; // @[FIFOFixer.scala 144:27]
  wire  fixer_auto_out_d_ready; // @[FIFOFixer.scala 144:27]
  wire  fixer_auto_out_d_valid; // @[FIFOFixer.scala 144:27]
  wire [2:0] fixer_auto_out_d_bits_opcode; // @[FIFOFixer.scala 144:27]
  wire [1:0] fixer_auto_out_d_bits_size; // @[FIFOFixer.scala 144:27]
  wire [8:0] fixer_auto_out_d_bits_source; // @[FIFOFixer.scala 144:27]
  wire [63:0] fixer_auto_out_d_bits_data; // @[FIFOFixer.scala 144:27]
  wire  fragmenter_clock; // @[Fragmenter.scala 333:34]
  wire  fragmenter_reset; // @[Fragmenter.scala 333:34]
  wire  fragmenter_auto_in_a_ready; // @[Fragmenter.scala 333:34]
  wire  fragmenter_auto_in_a_valid; // @[Fragmenter.scala 333:34]
  wire [2:0] fragmenter_auto_in_a_bits_opcode; // @[Fragmenter.scala 333:34]
  wire [2:0] fragmenter_auto_in_a_bits_param; // @[Fragmenter.scala 333:34]
  wire [2:0] fragmenter_auto_in_a_bits_size; // @[Fragmenter.scala 333:34]
  wire [5:0] fragmenter_auto_in_a_bits_source; // @[Fragmenter.scala 333:34]
  wire [31:0] fragmenter_auto_in_a_bits_address; // @[Fragmenter.scala 333:34]
  wire [7:0] fragmenter_auto_in_a_bits_mask; // @[Fragmenter.scala 333:34]
  wire [63:0] fragmenter_auto_in_a_bits_data; // @[Fragmenter.scala 333:34]
  wire  fragmenter_auto_in_a_bits_corrupt; // @[Fragmenter.scala 333:34]
  wire  fragmenter_auto_in_d_ready; // @[Fragmenter.scala 333:34]
  wire  fragmenter_auto_in_d_valid; // @[Fragmenter.scala 333:34]
  wire [2:0] fragmenter_auto_in_d_bits_opcode; // @[Fragmenter.scala 333:34]
  wire [2:0] fragmenter_auto_in_d_bits_size; // @[Fragmenter.scala 333:34]
  wire [5:0] fragmenter_auto_in_d_bits_source; // @[Fragmenter.scala 333:34]
  wire [63:0] fragmenter_auto_in_d_bits_data; // @[Fragmenter.scala 333:34]
  wire  fragmenter_auto_out_a_ready; // @[Fragmenter.scala 333:34]
  wire  fragmenter_auto_out_a_valid; // @[Fragmenter.scala 333:34]
  wire [2:0] fragmenter_auto_out_a_bits_opcode; // @[Fragmenter.scala 333:34]
  wire [2:0] fragmenter_auto_out_a_bits_param; // @[Fragmenter.scala 333:34]
  wire [1:0] fragmenter_auto_out_a_bits_size; // @[Fragmenter.scala 333:34]
  wire [8:0] fragmenter_auto_out_a_bits_source; // @[Fragmenter.scala 333:34]
  wire [31:0] fragmenter_auto_out_a_bits_address; // @[Fragmenter.scala 333:34]
  wire [7:0] fragmenter_auto_out_a_bits_mask; // @[Fragmenter.scala 333:34]
  wire [63:0] fragmenter_auto_out_a_bits_data; // @[Fragmenter.scala 333:34]
  wire  fragmenter_auto_out_a_bits_corrupt; // @[Fragmenter.scala 333:34]
  wire  fragmenter_auto_out_d_ready; // @[Fragmenter.scala 333:34]
  wire  fragmenter_auto_out_d_valid; // @[Fragmenter.scala 333:34]
  wire [2:0] fragmenter_auto_out_d_bits_opcode; // @[Fragmenter.scala 333:34]
  wire [1:0] fragmenter_auto_out_d_bits_size; // @[Fragmenter.scala 333:34]
  wire [8:0] fragmenter_auto_out_d_bits_source; // @[Fragmenter.scala 333:34]
  wire [63:0] fragmenter_auto_out_d_bits_data; // @[Fragmenter.scala 333:34]
  wire  widget_auto_in_a_ready; // @[WidthWidget.scala 219:28]
  wire  widget_auto_in_a_valid; // @[WidthWidget.scala 219:28]
  wire [2:0] widget_auto_in_a_bits_opcode; // @[WidthWidget.scala 219:28]
  wire [2:0] widget_auto_in_a_bits_param; // @[WidthWidget.scala 219:28]
  wire [2:0] widget_auto_in_a_bits_size; // @[WidthWidget.scala 219:28]
  wire [5:0] widget_auto_in_a_bits_source; // @[WidthWidget.scala 219:28]
  wire [31:0] widget_auto_in_a_bits_address; // @[WidthWidget.scala 219:28]
  wire [7:0] widget_auto_in_a_bits_mask; // @[WidthWidget.scala 219:28]
  wire [63:0] widget_auto_in_a_bits_data; // @[WidthWidget.scala 219:28]
  wire  widget_auto_in_a_bits_corrupt; // @[WidthWidget.scala 219:28]
  wire  widget_auto_in_d_ready; // @[WidthWidget.scala 219:28]
  wire  widget_auto_in_d_valid; // @[WidthWidget.scala 219:28]
  wire [2:0] widget_auto_in_d_bits_opcode; // @[WidthWidget.scala 219:28]
  wire [2:0] widget_auto_in_d_bits_size; // @[WidthWidget.scala 219:28]
  wire [5:0] widget_auto_in_d_bits_source; // @[WidthWidget.scala 219:28]
  wire [63:0] widget_auto_in_d_bits_data; // @[WidthWidget.scala 219:28]
  wire  widget_auto_out_a_ready; // @[WidthWidget.scala 219:28]
  wire  widget_auto_out_a_valid; // @[WidthWidget.scala 219:28]
  wire [2:0] widget_auto_out_a_bits_opcode; // @[WidthWidget.scala 219:28]
  wire [2:0] widget_auto_out_a_bits_param; // @[WidthWidget.scala 219:28]
  wire [2:0] widget_auto_out_a_bits_size; // @[WidthWidget.scala 219:28]
  wire [5:0] widget_auto_out_a_bits_source; // @[WidthWidget.scala 219:28]
  wire [31:0] widget_auto_out_a_bits_address; // @[WidthWidget.scala 219:28]
  wire [7:0] widget_auto_out_a_bits_mask; // @[WidthWidget.scala 219:28]
  wire [63:0] widget_auto_out_a_bits_data; // @[WidthWidget.scala 219:28]
  wire  widget_auto_out_a_bits_corrupt; // @[WidthWidget.scala 219:28]
  wire  widget_auto_out_d_ready; // @[WidthWidget.scala 219:28]
  wire  widget_auto_out_d_valid; // @[WidthWidget.scala 219:28]
  wire [2:0] widget_auto_out_d_bits_opcode; // @[WidthWidget.scala 219:28]
  wire [2:0] widget_auto_out_d_bits_size; // @[WidthWidget.scala 219:28]
  wire [5:0] widget_auto_out_d_bits_source; // @[WidthWidget.scala 219:28]
  wire [63:0] widget_auto_out_d_bits_data; // @[WidthWidget.scala 219:28]
  wire  cork_clock; // @[CacheCork.scala 177:26]
  wire  cork_reset; // @[CacheCork.scala 177:26]
  wire  cork_auto_in_a_ready; // @[CacheCork.scala 177:26]
  wire  cork_auto_in_a_valid; // @[CacheCork.scala 177:26]
  wire [2:0] cork_auto_in_a_bits_opcode; // @[CacheCork.scala 177:26]
  wire [2:0] cork_auto_in_a_bits_param; // @[CacheCork.scala 177:26]
  wire [2:0] cork_auto_in_a_bits_size; // @[CacheCork.scala 177:26]
  wire [4:0] cork_auto_in_a_bits_source; // @[CacheCork.scala 177:26]
  wire [31:0] cork_auto_in_a_bits_address; // @[CacheCork.scala 177:26]
  wire [7:0] cork_auto_in_a_bits_mask; // @[CacheCork.scala 177:26]
  wire [63:0] cork_auto_in_a_bits_data; // @[CacheCork.scala 177:26]
  wire  cork_auto_in_a_bits_corrupt; // @[CacheCork.scala 177:26]
  wire  cork_auto_in_c_ready; // @[CacheCork.scala 177:26]
  wire  cork_auto_in_c_valid; // @[CacheCork.scala 177:26]
  wire [2:0] cork_auto_in_c_bits_opcode; // @[CacheCork.scala 177:26]
  wire [2:0] cork_auto_in_c_bits_param; // @[CacheCork.scala 177:26]
  wire [2:0] cork_auto_in_c_bits_size; // @[CacheCork.scala 177:26]
  wire [4:0] cork_auto_in_c_bits_source; // @[CacheCork.scala 177:26]
  wire [31:0] cork_auto_in_c_bits_address; // @[CacheCork.scala 177:26]
  wire [63:0] cork_auto_in_c_bits_data; // @[CacheCork.scala 177:26]
  wire  cork_auto_in_c_bits_corrupt; // @[CacheCork.scala 177:26]
  wire  cork_auto_in_d_ready; // @[CacheCork.scala 177:26]
  wire  cork_auto_in_d_valid; // @[CacheCork.scala 177:26]
  wire [2:0] cork_auto_in_d_bits_opcode; // @[CacheCork.scala 177:26]
  wire [1:0] cork_auto_in_d_bits_param; // @[CacheCork.scala 177:26]
  wire [2:0] cork_auto_in_d_bits_size; // @[CacheCork.scala 177:26]
  wire [4:0] cork_auto_in_d_bits_source; // @[CacheCork.scala 177:26]
  wire [2:0] cork_auto_in_d_bits_sink; // @[CacheCork.scala 177:26]
  wire  cork_auto_in_d_bits_denied; // @[CacheCork.scala 177:26]
  wire [63:0] cork_auto_in_d_bits_data; // @[CacheCork.scala 177:26]
  wire  cork_auto_in_d_bits_corrupt; // @[CacheCork.scala 177:26]
  wire  cork_auto_in_e_valid; // @[CacheCork.scala 177:26]
  wire [2:0] cork_auto_in_e_bits_sink; // @[CacheCork.scala 177:26]
  wire  cork_auto_out_a_ready; // @[CacheCork.scala 177:26]
  wire  cork_auto_out_a_valid; // @[CacheCork.scala 177:26]
  wire [2:0] cork_auto_out_a_bits_opcode; // @[CacheCork.scala 177:26]
  wire [2:0] cork_auto_out_a_bits_param; // @[CacheCork.scala 177:26]
  wire [2:0] cork_auto_out_a_bits_size; // @[CacheCork.scala 177:26]
  wire [5:0] cork_auto_out_a_bits_source; // @[CacheCork.scala 177:26]
  wire [31:0] cork_auto_out_a_bits_address; // @[CacheCork.scala 177:26]
  wire [7:0] cork_auto_out_a_bits_mask; // @[CacheCork.scala 177:26]
  wire [63:0] cork_auto_out_a_bits_data; // @[CacheCork.scala 177:26]
  wire  cork_auto_out_a_bits_corrupt; // @[CacheCork.scala 177:26]
  wire  cork_auto_out_d_ready; // @[CacheCork.scala 177:26]
  wire  cork_auto_out_d_valid; // @[CacheCork.scala 177:26]
  wire [2:0] cork_auto_out_d_bits_opcode; // @[CacheCork.scala 177:26]
  wire [2:0] cork_auto_out_d_bits_size; // @[CacheCork.scala 177:26]
  wire [5:0] cork_auto_out_d_bits_source; // @[CacheCork.scala 177:26]
  wire [63:0] cork_auto_out_d_bits_data; // @[CacheCork.scala 177:26]
  wire  buffer_clock; // @[Buffer.scala 68:28]
  wire  buffer_reset; // @[Buffer.scala 68:28]
  wire  buffer_auto_in_a_ready; // @[Buffer.scala 68:28]
  wire  buffer_auto_in_a_valid; // @[Buffer.scala 68:28]
  wire [31:0] buffer_auto_in_a_bits_address; // @[Buffer.scala 68:28]
  wire  buffer_auto_in_d_valid; // @[Buffer.scala 68:28]
  wire [2:0] buffer_auto_in_d_bits_opcode; // @[Buffer.scala 68:28]
  wire [2:0] buffer_auto_in_d_bits_size; // @[Buffer.scala 68:28]
  wire [63:0] buffer_auto_in_d_bits_data; // @[Buffer.scala 68:28]
  wire  buffer_auto_out_a_ready; // @[Buffer.scala 68:28]
  wire  buffer_auto_out_a_valid; // @[Buffer.scala 68:28]
  wire [2:0] buffer_auto_out_a_bits_opcode; // @[Buffer.scala 68:28]
  wire [2:0] buffer_auto_out_a_bits_param; // @[Buffer.scala 68:28]
  wire [2:0] buffer_auto_out_a_bits_size; // @[Buffer.scala 68:28]
  wire  buffer_auto_out_a_bits_source; // @[Buffer.scala 68:28]
  wire [31:0] buffer_auto_out_a_bits_address; // @[Buffer.scala 68:28]
  wire [7:0] buffer_auto_out_a_bits_mask; // @[Buffer.scala 68:28]
  wire [63:0] buffer_auto_out_a_bits_data; // @[Buffer.scala 68:28]
  wire  buffer_auto_out_a_bits_corrupt; // @[Buffer.scala 68:28]
  wire  buffer_auto_out_d_ready; // @[Buffer.scala 68:28]
  wire  buffer_auto_out_d_valid; // @[Buffer.scala 68:28]
  wire [2:0] buffer_auto_out_d_bits_opcode; // @[Buffer.scala 68:28]
  wire [1:0] buffer_auto_out_d_bits_param; // @[Buffer.scala 68:28]
  wire [2:0] buffer_auto_out_d_bits_size; // @[Buffer.scala 68:28]
  wire [4:0] buffer_auto_out_d_bits_sink; // @[Buffer.scala 68:28]
  wire  buffer_auto_out_d_bits_denied; // @[Buffer.scala 68:28]
  wire [63:0] buffer_auto_out_d_bits_data; // @[Buffer.scala 68:28]
  wire  buffer_auto_out_d_bits_corrupt; // @[Buffer.scala 68:28]
  wire  buffer_1_clock; // @[Buffer.scala 68:28]
  wire  buffer_1_reset; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_in_a_ready; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_in_a_valid; // @[Buffer.scala 68:28]
  wire [31:0] buffer_1_auto_in_a_bits_address; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_in_b_ready; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_in_b_valid; // @[Buffer.scala 68:28]
  wire [31:0] buffer_1_auto_in_b_bits_address; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_in_c_ready; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_in_c_valid; // @[Buffer.scala 68:28]
  wire [2:0] buffer_1_auto_in_c_bits_opcode; // @[Buffer.scala 68:28]
  wire [2:0] buffer_1_auto_in_c_bits_param; // @[Buffer.scala 68:28]
  wire [2:0] buffer_1_auto_in_c_bits_size; // @[Buffer.scala 68:28]
  wire [31:0] buffer_1_auto_in_c_bits_address; // @[Buffer.scala 68:28]
  wire [63:0] buffer_1_auto_in_c_bits_data; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_in_d_ready; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_in_d_valid; // @[Buffer.scala 68:28]
  wire [2:0] buffer_1_auto_in_d_bits_opcode; // @[Buffer.scala 68:28]
  wire [2:0] buffer_1_auto_in_d_bits_size; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_in_d_bits_source; // @[Buffer.scala 68:28]
  wire [4:0] buffer_1_auto_in_d_bits_sink; // @[Buffer.scala 68:28]
  wire [63:0] buffer_1_auto_in_d_bits_data; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_in_e_ready; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_in_e_valid; // @[Buffer.scala 68:28]
  wire [4:0] buffer_1_auto_in_e_bits_sink; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_out_a_ready; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_out_a_valid; // @[Buffer.scala 68:28]
  wire [2:0] buffer_1_auto_out_a_bits_opcode; // @[Buffer.scala 68:28]
  wire [2:0] buffer_1_auto_out_a_bits_param; // @[Buffer.scala 68:28]
  wire [2:0] buffer_1_auto_out_a_bits_size; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_out_a_bits_source; // @[Buffer.scala 68:28]
  wire [31:0] buffer_1_auto_out_a_bits_address; // @[Buffer.scala 68:28]
  wire [7:0] buffer_1_auto_out_a_bits_mask; // @[Buffer.scala 68:28]
  wire [63:0] buffer_1_auto_out_a_bits_data; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_out_a_bits_corrupt; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_out_b_ready; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_out_b_valid; // @[Buffer.scala 68:28]
  wire [1:0] buffer_1_auto_out_b_bits_param; // @[Buffer.scala 68:28]
  wire [31:0] buffer_1_auto_out_b_bits_address; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_out_c_ready; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_out_c_valid; // @[Buffer.scala 68:28]
  wire [2:0] buffer_1_auto_out_c_bits_opcode; // @[Buffer.scala 68:28]
  wire [2:0] buffer_1_auto_out_c_bits_param; // @[Buffer.scala 68:28]
  wire [2:0] buffer_1_auto_out_c_bits_size; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_out_c_bits_source; // @[Buffer.scala 68:28]
  wire [31:0] buffer_1_auto_out_c_bits_address; // @[Buffer.scala 68:28]
  wire [63:0] buffer_1_auto_out_c_bits_data; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_out_c_bits_corrupt; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_out_d_ready; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_out_d_valid; // @[Buffer.scala 68:28]
  wire [2:0] buffer_1_auto_out_d_bits_opcode; // @[Buffer.scala 68:28]
  wire [1:0] buffer_1_auto_out_d_bits_param; // @[Buffer.scala 68:28]
  wire [2:0] buffer_1_auto_out_d_bits_size; // @[Buffer.scala 68:28]
  wire [4:0] buffer_1_auto_out_d_bits_sink; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_out_d_bits_denied; // @[Buffer.scala 68:28]
  wire [63:0] buffer_1_auto_out_d_bits_data; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_out_d_bits_corrupt; // @[Buffer.scala 68:28]
  wire  buffer_1_auto_out_e_valid; // @[Buffer.scala 68:28]
  wire [4:0] buffer_1_auto_out_e_bits_sink; // @[Buffer.scala 68:28]
  wire  buffer_2_clock; // @[Buffer.scala 68:28]
  wire  buffer_2_reset; // @[Buffer.scala 68:28]
  wire  buffer_2_auto_in_a_ready; // @[Buffer.scala 68:28]
  wire  buffer_2_auto_in_a_valid; // @[Buffer.scala 68:28]
  wire  buffer_2_auto_in_a_bits_source; // @[Buffer.scala 68:28]
  wire [31:0] buffer_2_auto_in_a_bits_address; // @[Buffer.scala 68:28]
  wire  buffer_2_auto_in_d_ready; // @[Buffer.scala 68:28]
  wire  buffer_2_auto_in_d_valid; // @[Buffer.scala 68:28]
  wire [2:0] buffer_2_auto_in_d_bits_opcode; // @[Buffer.scala 68:28]
  wire [2:0] buffer_2_auto_in_d_bits_size; // @[Buffer.scala 68:28]
  wire  buffer_2_auto_in_d_bits_source; // @[Buffer.scala 68:28]
  wire [63:0] buffer_2_auto_in_d_bits_data; // @[Buffer.scala 68:28]
  wire  buffer_2_auto_out_a_ready; // @[Buffer.scala 68:28]
  wire  buffer_2_auto_out_a_valid; // @[Buffer.scala 68:28]
  wire [2:0] buffer_2_auto_out_a_bits_opcode; // @[Buffer.scala 68:28]
  wire [2:0] buffer_2_auto_out_a_bits_param; // @[Buffer.scala 68:28]
  wire [2:0] buffer_2_auto_out_a_bits_size; // @[Buffer.scala 68:28]
  wire  buffer_2_auto_out_a_bits_source; // @[Buffer.scala 68:28]
  wire [31:0] buffer_2_auto_out_a_bits_address; // @[Buffer.scala 68:28]
  wire [7:0] buffer_2_auto_out_a_bits_mask; // @[Buffer.scala 68:28]
  wire [63:0] buffer_2_auto_out_a_bits_data; // @[Buffer.scala 68:28]
  wire  buffer_2_auto_out_a_bits_corrupt; // @[Buffer.scala 68:28]
  wire  buffer_2_auto_out_d_ready; // @[Buffer.scala 68:28]
  wire  buffer_2_auto_out_d_valid; // @[Buffer.scala 68:28]
  wire [2:0] buffer_2_auto_out_d_bits_opcode; // @[Buffer.scala 68:28]
  wire [1:0] buffer_2_auto_out_d_bits_param; // @[Buffer.scala 68:28]
  wire [2:0] buffer_2_auto_out_d_bits_size; // @[Buffer.scala 68:28]
  wire  buffer_2_auto_out_d_bits_source; // @[Buffer.scala 68:28]
  wire [4:0] buffer_2_auto_out_d_bits_sink; // @[Buffer.scala 68:28]
  wire  buffer_2_auto_out_d_bits_denied; // @[Buffer.scala 68:28]
  wire [63:0] buffer_2_auto_out_d_bits_data; // @[Buffer.scala 68:28]
  wire  buffer_2_auto_out_d_bits_corrupt; // @[Buffer.scala 68:28]
  Rift2Core i_rift2Core ( // @[Rift2Link.scala 47:31]
    .clock(i_rift2Core_clock),
    .reset(i_rift2Core_reset),
    .auto_mmu_client_out_a_ready(i_rift2Core_auto_mmu_client_out_a_ready),
    .auto_mmu_client_out_a_valid(i_rift2Core_auto_mmu_client_out_a_valid),
    .auto_mmu_client_out_a_bits_source(i_rift2Core_auto_mmu_client_out_a_bits_source),
    .auto_mmu_client_out_a_bits_address(i_rift2Core_auto_mmu_client_out_a_bits_address),
    .auto_mmu_client_out_d_ready(i_rift2Core_auto_mmu_client_out_d_ready),
    .auto_mmu_client_out_d_valid(i_rift2Core_auto_mmu_client_out_d_valid),
    .auto_mmu_client_out_d_bits_opcode(i_rift2Core_auto_mmu_client_out_d_bits_opcode),
    .auto_mmu_client_out_d_bits_size(i_rift2Core_auto_mmu_client_out_d_bits_size),
    .auto_mmu_client_out_d_bits_source(i_rift2Core_auto_mmu_client_out_d_bits_source),
    .auto_mmu_client_out_d_bits_data(i_rift2Core_auto_mmu_client_out_d_bits_data),
    .auto_periph_client_out_a_ready(i_rift2Core_auto_periph_client_out_a_ready),
    .auto_periph_client_out_a_valid(i_rift2Core_auto_periph_client_out_a_valid),
    .auto_periph_client_out_a_bits_opcode(i_rift2Core_auto_periph_client_out_a_bits_opcode),
    .auto_periph_client_out_a_bits_address(i_rift2Core_auto_periph_client_out_a_bits_address),
    .auto_periph_client_out_a_bits_mask(i_rift2Core_auto_periph_client_out_a_bits_mask),
    .auto_periph_client_out_a_bits_data(i_rift2Core_auto_periph_client_out_a_bits_data),
    .auto_periph_client_out_d_ready(i_rift2Core_auto_periph_client_out_d_ready),
    .auto_periph_client_out_d_valid(i_rift2Core_auto_periph_client_out_d_valid),
    .auto_periph_client_out_d_bits_opcode(i_rift2Core_auto_periph_client_out_d_bits_opcode),
    .auto_periph_client_out_d_bits_data(i_rift2Core_auto_periph_client_out_d_bits_data),
    .auto_system_client_out_a_ready(i_rift2Core_auto_system_client_out_a_ready),
    .auto_system_client_out_a_valid(i_rift2Core_auto_system_client_out_a_valid),
    .auto_system_client_out_a_bits_opcode(i_rift2Core_auto_system_client_out_a_bits_opcode),
    .auto_system_client_out_a_bits_address(i_rift2Core_auto_system_client_out_a_bits_address),
    .auto_system_client_out_a_bits_mask(i_rift2Core_auto_system_client_out_a_bits_mask),
    .auto_system_client_out_a_bits_data(i_rift2Core_auto_system_client_out_a_bits_data),
    .auto_system_client_out_d_ready(i_rift2Core_auto_system_client_out_d_ready),
    .auto_system_client_out_d_valid(i_rift2Core_auto_system_client_out_d_valid),
    .auto_system_client_out_d_bits_opcode(i_rift2Core_auto_system_client_out_d_bits_opcode),
    .auto_system_client_out_d_bits_data(i_rift2Core_auto_system_client_out_d_bits_data),
    .auto_dcache_client_out_a_ready(i_rift2Core_auto_dcache_client_out_a_ready),
    .auto_dcache_client_out_a_valid(i_rift2Core_auto_dcache_client_out_a_valid),
    .auto_dcache_client_out_a_bits_address(i_rift2Core_auto_dcache_client_out_a_bits_address),
    .auto_dcache_client_out_b_ready(i_rift2Core_auto_dcache_client_out_b_ready),
    .auto_dcache_client_out_b_valid(i_rift2Core_auto_dcache_client_out_b_valid),
    .auto_dcache_client_out_b_bits_address(i_rift2Core_auto_dcache_client_out_b_bits_address),
    .auto_dcache_client_out_c_ready(i_rift2Core_auto_dcache_client_out_c_ready),
    .auto_dcache_client_out_c_valid(i_rift2Core_auto_dcache_client_out_c_valid),
    .auto_dcache_client_out_c_bits_opcode(i_rift2Core_auto_dcache_client_out_c_bits_opcode),
    .auto_dcache_client_out_c_bits_param(i_rift2Core_auto_dcache_client_out_c_bits_param),
    .auto_dcache_client_out_c_bits_size(i_rift2Core_auto_dcache_client_out_c_bits_size),
    .auto_dcache_client_out_c_bits_address(i_rift2Core_auto_dcache_client_out_c_bits_address),
    .auto_dcache_client_out_c_bits_data(i_rift2Core_auto_dcache_client_out_c_bits_data),
    .auto_dcache_client_out_d_ready(i_rift2Core_auto_dcache_client_out_d_ready),
    .auto_dcache_client_out_d_valid(i_rift2Core_auto_dcache_client_out_d_valid),
    .auto_dcache_client_out_d_bits_opcode(i_rift2Core_auto_dcache_client_out_d_bits_opcode),
    .auto_dcache_client_out_d_bits_size(i_rift2Core_auto_dcache_client_out_d_bits_size),
    .auto_dcache_client_out_d_bits_source(i_rift2Core_auto_dcache_client_out_d_bits_source),
    .auto_dcache_client_out_d_bits_sink(i_rift2Core_auto_dcache_client_out_d_bits_sink),
    .auto_dcache_client_out_d_bits_data(i_rift2Core_auto_dcache_client_out_d_bits_data),
    .auto_dcache_client_out_e_ready(i_rift2Core_auto_dcache_client_out_e_ready),
    .auto_dcache_client_out_e_valid(i_rift2Core_auto_dcache_client_out_e_valid),
    .auto_dcache_client_out_e_bits_sink(i_rift2Core_auto_dcache_client_out_e_bits_sink),
    .auto_icache_client_out_a_ready(i_rift2Core_auto_icache_client_out_a_ready),
    .auto_icache_client_out_a_valid(i_rift2Core_auto_icache_client_out_a_valid),
    .auto_icache_client_out_a_bits_address(i_rift2Core_auto_icache_client_out_a_bits_address),
    .auto_icache_client_out_d_valid(i_rift2Core_auto_icache_client_out_d_valid),
    .auto_icache_client_out_d_bits_opcode(i_rift2Core_auto_icache_client_out_d_bits_opcode),
    .auto_icache_client_out_d_bits_size(i_rift2Core_auto_icache_client_out_d_bits_size),
    .auto_icache_client_out_d_bits_data(i_rift2Core_auto_icache_client_out_d_bits_data),
    .io_dm_hartIsInReset(i_rift2Core_io_dm_hartIsInReset),
    .io_dm_hartResetReq(i_rift2Core_io_dm_hartResetReq),
    .io_dm_hartHaltReq(i_rift2Core_io_dm_hartHaltReq),
    .io_rtc_clock(i_rift2Core_io_rtc_clock),
    .io_aclint_msi(i_rift2Core_io_aclint_msi),
    .io_aclint_mti(i_rift2Core_io_aclint_mti),
    .io_aclint_ssi(i_rift2Core_io_aclint_ssi),
    .io_aclint_sti(i_rift2Core_io_aclint_sti),
    .io_plic_mei(i_rift2Core_io_plic_mei),
    .io_plic_sei(i_rift2Core_io_plic_sei)
  );
  InclusiveCache sifiveCache ( // @[Rift2Link.scala 49:54]
    .clock(sifiveCache_clock),
    .reset(sifiveCache_reset),
    .auto_in_a_ready(sifiveCache_auto_in_a_ready),
    .auto_in_a_valid(sifiveCache_auto_in_a_valid),
    .auto_in_a_bits_opcode(sifiveCache_auto_in_a_bits_opcode),
    .auto_in_a_bits_param(sifiveCache_auto_in_a_bits_param),
    .auto_in_a_bits_size(sifiveCache_auto_in_a_bits_size),
    .auto_in_a_bits_source(sifiveCache_auto_in_a_bits_source),
    .auto_in_a_bits_address(sifiveCache_auto_in_a_bits_address),
    .auto_in_a_bits_mask(sifiveCache_auto_in_a_bits_mask),
    .auto_in_a_bits_data(sifiveCache_auto_in_a_bits_data),
    .auto_in_a_bits_corrupt(sifiveCache_auto_in_a_bits_corrupt),
    .auto_in_b_ready(sifiveCache_auto_in_b_ready),
    .auto_in_b_valid(sifiveCache_auto_in_b_valid),
    .auto_in_b_bits_param(sifiveCache_auto_in_b_bits_param),
    .auto_in_b_bits_address(sifiveCache_auto_in_b_bits_address),
    .auto_in_c_ready(sifiveCache_auto_in_c_ready),
    .auto_in_c_valid(sifiveCache_auto_in_c_valid),
    .auto_in_c_bits_opcode(sifiveCache_auto_in_c_bits_opcode),
    .auto_in_c_bits_param(sifiveCache_auto_in_c_bits_param),
    .auto_in_c_bits_size(sifiveCache_auto_in_c_bits_size),
    .auto_in_c_bits_address(sifiveCache_auto_in_c_bits_address),
    .auto_in_c_bits_data(sifiveCache_auto_in_c_bits_data),
    .auto_in_c_bits_corrupt(sifiveCache_auto_in_c_bits_corrupt),
    .auto_in_d_ready(sifiveCache_auto_in_d_ready),
    .auto_in_d_valid(sifiveCache_auto_in_d_valid),
    .auto_in_d_bits_opcode(sifiveCache_auto_in_d_bits_opcode),
    .auto_in_d_bits_param(sifiveCache_auto_in_d_bits_param),
    .auto_in_d_bits_size(sifiveCache_auto_in_d_bits_size),
    .auto_in_d_bits_source(sifiveCache_auto_in_d_bits_source),
    .auto_in_d_bits_sink(sifiveCache_auto_in_d_bits_sink),
    .auto_in_d_bits_denied(sifiveCache_auto_in_d_bits_denied),
    .auto_in_d_bits_data(sifiveCache_auto_in_d_bits_data),
    .auto_in_d_bits_corrupt(sifiveCache_auto_in_d_bits_corrupt),
    .auto_in_e_valid(sifiveCache_auto_in_e_valid),
    .auto_in_e_bits_sink(sifiveCache_auto_in_e_bits_sink),
    .auto_out_a_ready(sifiveCache_auto_out_a_ready),
    .auto_out_a_valid(sifiveCache_auto_out_a_valid),
    .auto_out_a_bits_opcode(sifiveCache_auto_out_a_bits_opcode),
    .auto_out_a_bits_param(sifiveCache_auto_out_a_bits_param),
    .auto_out_a_bits_size(sifiveCache_auto_out_a_bits_size),
    .auto_out_a_bits_source(sifiveCache_auto_out_a_bits_source),
    .auto_out_a_bits_address(sifiveCache_auto_out_a_bits_address),
    .auto_out_a_bits_mask(sifiveCache_auto_out_a_bits_mask),
    .auto_out_a_bits_data(sifiveCache_auto_out_a_bits_data),
    .auto_out_a_bits_corrupt(sifiveCache_auto_out_a_bits_corrupt),
    .auto_out_c_ready(sifiveCache_auto_out_c_ready),
    .auto_out_c_valid(sifiveCache_auto_out_c_valid),
    .auto_out_c_bits_opcode(sifiveCache_auto_out_c_bits_opcode),
    .auto_out_c_bits_param(sifiveCache_auto_out_c_bits_param),
    .auto_out_c_bits_size(sifiveCache_auto_out_c_bits_size),
    .auto_out_c_bits_source(sifiveCache_auto_out_c_bits_source),
    .auto_out_c_bits_address(sifiveCache_auto_out_c_bits_address),
    .auto_out_c_bits_data(sifiveCache_auto_out_c_bits_data),
    .auto_out_c_bits_corrupt(sifiveCache_auto_out_c_bits_corrupt),
    .auto_out_d_ready(sifiveCache_auto_out_d_ready),
    .auto_out_d_valid(sifiveCache_auto_out_d_valid),
    .auto_out_d_bits_opcode(sifiveCache_auto_out_d_bits_opcode),
    .auto_out_d_bits_param(sifiveCache_auto_out_d_bits_param),
    .auto_out_d_bits_size(sifiveCache_auto_out_d_bits_size),
    .auto_out_d_bits_source(sifiveCache_auto_out_d_bits_source),
    .auto_out_d_bits_sink(sifiveCache_auto_out_d_bits_sink),
    .auto_out_d_bits_denied(sifiveCache_auto_out_d_bits_denied),
    .auto_out_d_bits_data(sifiveCache_auto_out_d_bits_data),
    .auto_out_d_bits_corrupt(sifiveCache_auto_out_d_bits_corrupt),
    .auto_out_e_valid(sifiveCache_auto_out_e_valid),
    .auto_out_e_bits_sink(sifiveCache_auto_out_e_bits_sink)
  );
  ChipLinkMaster chipLinkMst ( // @[Rift2Link.scala 57:31]
    .clock(chipLinkMst_clock),
    .reset(chipLinkMst_reset),
    .auto_chip_link_master_in_a_ready(chipLinkMst_auto_chip_link_master_in_a_ready),
    .auto_chip_link_master_in_a_valid(chipLinkMst_auto_chip_link_master_in_a_valid),
    .auto_chip_link_master_in_a_bits_opcode(chipLinkMst_auto_chip_link_master_in_a_bits_opcode),
    .auto_chip_link_master_in_a_bits_param(chipLinkMst_auto_chip_link_master_in_a_bits_param),
    .auto_chip_link_master_in_a_bits_size(chipLinkMst_auto_chip_link_master_in_a_bits_size),
    .auto_chip_link_master_in_a_bits_source(chipLinkMst_auto_chip_link_master_in_a_bits_source),
    .auto_chip_link_master_in_a_bits_address(chipLinkMst_auto_chip_link_master_in_a_bits_address),
    .auto_chip_link_master_in_a_bits_mask(chipLinkMst_auto_chip_link_master_in_a_bits_mask),
    .auto_chip_link_master_in_a_bits_data(chipLinkMst_auto_chip_link_master_in_a_bits_data),
    .auto_chip_link_master_in_a_bits_corrupt(chipLinkMst_auto_chip_link_master_in_a_bits_corrupt),
    .auto_chip_link_master_in_d_ready(chipLinkMst_auto_chip_link_master_in_d_ready),
    .auto_chip_link_master_in_d_valid(chipLinkMst_auto_chip_link_master_in_d_valid),
    .auto_chip_link_master_in_d_bits_opcode(chipLinkMst_auto_chip_link_master_in_d_bits_opcode),
    .auto_chip_link_master_in_d_bits_size(chipLinkMst_auto_chip_link_master_in_d_bits_size),
    .auto_chip_link_master_in_d_bits_source(chipLinkMst_auto_chip_link_master_in_d_bits_source),
    .auto_chip_link_master_in_d_bits_data(chipLinkMst_auto_chip_link_master_in_d_bits_data),
    .io_hspi_clk(chipLinkMst_io_hspi_clk),
    .io_hspi_rx_enable(chipLinkMst_io_hspi_rx_enable),
    .io_hspi_rx_data(chipLinkMst_io_hspi_rx_data),
    .io_hspi_tx_enable(chipLinkMst_io_hspi_tx_enable),
    .io_hspi_tx_data(chipLinkMst_io_hspi_tx_data),
    .io_hspi_oen(chipLinkMst_io_hspi_oen)
  );
  TLXbar xbar ( // @[Xbar.scala 142:26]
    .clock(xbar_clock),
    .reset(xbar_reset),
    .auto_in_2_a_ready(xbar_auto_in_2_a_ready),
    .auto_in_2_a_valid(xbar_auto_in_2_a_valid),
    .auto_in_2_a_bits_opcode(xbar_auto_in_2_a_bits_opcode),
    .auto_in_2_a_bits_param(xbar_auto_in_2_a_bits_param),
    .auto_in_2_a_bits_size(xbar_auto_in_2_a_bits_size),
    .auto_in_2_a_bits_source(xbar_auto_in_2_a_bits_source),
    .auto_in_2_a_bits_address(xbar_auto_in_2_a_bits_address),
    .auto_in_2_a_bits_mask(xbar_auto_in_2_a_bits_mask),
    .auto_in_2_a_bits_data(xbar_auto_in_2_a_bits_data),
    .auto_in_2_a_bits_corrupt(xbar_auto_in_2_a_bits_corrupt),
    .auto_in_2_d_ready(xbar_auto_in_2_d_ready),
    .auto_in_2_d_valid(xbar_auto_in_2_d_valid),
    .auto_in_2_d_bits_opcode(xbar_auto_in_2_d_bits_opcode),
    .auto_in_2_d_bits_param(xbar_auto_in_2_d_bits_param),
    .auto_in_2_d_bits_size(xbar_auto_in_2_d_bits_size),
    .auto_in_2_d_bits_source(xbar_auto_in_2_d_bits_source),
    .auto_in_2_d_bits_sink(xbar_auto_in_2_d_bits_sink),
    .auto_in_2_d_bits_denied(xbar_auto_in_2_d_bits_denied),
    .auto_in_2_d_bits_data(xbar_auto_in_2_d_bits_data),
    .auto_in_2_d_bits_corrupt(xbar_auto_in_2_d_bits_corrupt),
    .auto_in_1_a_ready(xbar_auto_in_1_a_ready),
    .auto_in_1_a_valid(xbar_auto_in_1_a_valid),
    .auto_in_1_a_bits_opcode(xbar_auto_in_1_a_bits_opcode),
    .auto_in_1_a_bits_param(xbar_auto_in_1_a_bits_param),
    .auto_in_1_a_bits_size(xbar_auto_in_1_a_bits_size),
    .auto_in_1_a_bits_source(xbar_auto_in_1_a_bits_source),
    .auto_in_1_a_bits_address(xbar_auto_in_1_a_bits_address),
    .auto_in_1_a_bits_mask(xbar_auto_in_1_a_bits_mask),
    .auto_in_1_a_bits_data(xbar_auto_in_1_a_bits_data),
    .auto_in_1_a_bits_corrupt(xbar_auto_in_1_a_bits_corrupt),
    .auto_in_1_b_ready(xbar_auto_in_1_b_ready),
    .auto_in_1_b_valid(xbar_auto_in_1_b_valid),
    .auto_in_1_b_bits_param(xbar_auto_in_1_b_bits_param),
    .auto_in_1_b_bits_address(xbar_auto_in_1_b_bits_address),
    .auto_in_1_c_ready(xbar_auto_in_1_c_ready),
    .auto_in_1_c_valid(xbar_auto_in_1_c_valid),
    .auto_in_1_c_bits_opcode(xbar_auto_in_1_c_bits_opcode),
    .auto_in_1_c_bits_param(xbar_auto_in_1_c_bits_param),
    .auto_in_1_c_bits_size(xbar_auto_in_1_c_bits_size),
    .auto_in_1_c_bits_source(xbar_auto_in_1_c_bits_source),
    .auto_in_1_c_bits_address(xbar_auto_in_1_c_bits_address),
    .auto_in_1_c_bits_data(xbar_auto_in_1_c_bits_data),
    .auto_in_1_c_bits_corrupt(xbar_auto_in_1_c_bits_corrupt),
    .auto_in_1_d_ready(xbar_auto_in_1_d_ready),
    .auto_in_1_d_valid(xbar_auto_in_1_d_valid),
    .auto_in_1_d_bits_opcode(xbar_auto_in_1_d_bits_opcode),
    .auto_in_1_d_bits_param(xbar_auto_in_1_d_bits_param),
    .auto_in_1_d_bits_size(xbar_auto_in_1_d_bits_size),
    .auto_in_1_d_bits_sink(xbar_auto_in_1_d_bits_sink),
    .auto_in_1_d_bits_denied(xbar_auto_in_1_d_bits_denied),
    .auto_in_1_d_bits_data(xbar_auto_in_1_d_bits_data),
    .auto_in_1_d_bits_corrupt(xbar_auto_in_1_d_bits_corrupt),
    .auto_in_1_e_valid(xbar_auto_in_1_e_valid),
    .auto_in_1_e_bits_sink(xbar_auto_in_1_e_bits_sink),
    .auto_in_0_a_ready(xbar_auto_in_0_a_ready),
    .auto_in_0_a_valid(xbar_auto_in_0_a_valid),
    .auto_in_0_a_bits_opcode(xbar_auto_in_0_a_bits_opcode),
    .auto_in_0_a_bits_param(xbar_auto_in_0_a_bits_param),
    .auto_in_0_a_bits_size(xbar_auto_in_0_a_bits_size),
    .auto_in_0_a_bits_source(xbar_auto_in_0_a_bits_source),
    .auto_in_0_a_bits_address(xbar_auto_in_0_a_bits_address),
    .auto_in_0_a_bits_mask(xbar_auto_in_0_a_bits_mask),
    .auto_in_0_a_bits_data(xbar_auto_in_0_a_bits_data),
    .auto_in_0_a_bits_corrupt(xbar_auto_in_0_a_bits_corrupt),
    .auto_in_0_d_ready(xbar_auto_in_0_d_ready),
    .auto_in_0_d_valid(xbar_auto_in_0_d_valid),
    .auto_in_0_d_bits_opcode(xbar_auto_in_0_d_bits_opcode),
    .auto_in_0_d_bits_param(xbar_auto_in_0_d_bits_param),
    .auto_in_0_d_bits_size(xbar_auto_in_0_d_bits_size),
    .auto_in_0_d_bits_sink(xbar_auto_in_0_d_bits_sink),
    .auto_in_0_d_bits_denied(xbar_auto_in_0_d_bits_denied),
    .auto_in_0_d_bits_data(xbar_auto_in_0_d_bits_data),
    .auto_in_0_d_bits_corrupt(xbar_auto_in_0_d_bits_corrupt),
    .auto_out_a_ready(xbar_auto_out_a_ready),
    .auto_out_a_valid(xbar_auto_out_a_valid),
    .auto_out_a_bits_opcode(xbar_auto_out_a_bits_opcode),
    .auto_out_a_bits_param(xbar_auto_out_a_bits_param),
    .auto_out_a_bits_size(xbar_auto_out_a_bits_size),
    .auto_out_a_bits_source(xbar_auto_out_a_bits_source),
    .auto_out_a_bits_address(xbar_auto_out_a_bits_address),
    .auto_out_a_bits_mask(xbar_auto_out_a_bits_mask),
    .auto_out_a_bits_data(xbar_auto_out_a_bits_data),
    .auto_out_a_bits_corrupt(xbar_auto_out_a_bits_corrupt),
    .auto_out_b_ready(xbar_auto_out_b_ready),
    .auto_out_b_valid(xbar_auto_out_b_valid),
    .auto_out_b_bits_param(xbar_auto_out_b_bits_param),
    .auto_out_b_bits_address(xbar_auto_out_b_bits_address),
    .auto_out_c_ready(xbar_auto_out_c_ready),
    .auto_out_c_valid(xbar_auto_out_c_valid),
    .auto_out_c_bits_opcode(xbar_auto_out_c_bits_opcode),
    .auto_out_c_bits_param(xbar_auto_out_c_bits_param),
    .auto_out_c_bits_size(xbar_auto_out_c_bits_size),
    .auto_out_c_bits_address(xbar_auto_out_c_bits_address),
    .auto_out_c_bits_data(xbar_auto_out_c_bits_data),
    .auto_out_c_bits_corrupt(xbar_auto_out_c_bits_corrupt),
    .auto_out_d_ready(xbar_auto_out_d_ready),
    .auto_out_d_valid(xbar_auto_out_d_valid),
    .auto_out_d_bits_opcode(xbar_auto_out_d_bits_opcode),
    .auto_out_d_bits_param(xbar_auto_out_d_bits_param),
    .auto_out_d_bits_size(xbar_auto_out_d_bits_size),
    .auto_out_d_bits_source(xbar_auto_out_d_bits_source),
    .auto_out_d_bits_sink(xbar_auto_out_d_bits_sink),
    .auto_out_d_bits_denied(xbar_auto_out_d_bits_denied),
    .auto_out_d_bits_data(xbar_auto_out_d_bits_data),
    .auto_out_d_bits_corrupt(xbar_auto_out_d_bits_corrupt),
    .auto_out_e_valid(xbar_auto_out_e_valid),
    .auto_out_e_bits_sink(xbar_auto_out_e_bits_sink)
  );
  TLXbar_1 xbar_1 ( // @[Xbar.scala 142:26]
    .clock(xbar_1_clock),
    .reset(xbar_1_reset),
    .auto_in_2_a_ready(xbar_1_auto_in_2_a_ready),
    .auto_in_2_a_valid(xbar_1_auto_in_2_a_valid),
    .auto_in_2_a_bits_opcode(xbar_1_auto_in_2_a_bits_opcode),
    .auto_in_2_a_bits_address(xbar_1_auto_in_2_a_bits_address),
    .auto_in_2_a_bits_mask(xbar_1_auto_in_2_a_bits_mask),
    .auto_in_2_a_bits_data(xbar_1_auto_in_2_a_bits_data),
    .auto_in_2_d_ready(xbar_1_auto_in_2_d_ready),
    .auto_in_2_d_valid(xbar_1_auto_in_2_d_valid),
    .auto_in_2_d_bits_opcode(xbar_1_auto_in_2_d_bits_opcode),
    .auto_in_2_d_bits_data(xbar_1_auto_in_2_d_bits_data),
    .auto_in_1_a_ready(xbar_1_auto_in_1_a_ready),
    .auto_in_1_a_valid(xbar_1_auto_in_1_a_valid),
    .auto_in_1_a_bits_opcode(xbar_1_auto_in_1_a_bits_opcode),
    .auto_in_1_a_bits_address(xbar_1_auto_in_1_a_bits_address),
    .auto_in_1_a_bits_mask(xbar_1_auto_in_1_a_bits_mask),
    .auto_in_1_a_bits_data(xbar_1_auto_in_1_a_bits_data),
    .auto_in_1_d_ready(xbar_1_auto_in_1_d_ready),
    .auto_in_1_d_valid(xbar_1_auto_in_1_d_valid),
    .auto_in_1_d_bits_opcode(xbar_1_auto_in_1_d_bits_opcode),
    .auto_in_1_d_bits_data(xbar_1_auto_in_1_d_bits_data),
    .auto_in_0_a_ready(xbar_1_auto_in_0_a_ready),
    .auto_in_0_a_valid(xbar_1_auto_in_0_a_valid),
    .auto_in_0_a_bits_opcode(xbar_1_auto_in_0_a_bits_opcode),
    .auto_in_0_a_bits_param(xbar_1_auto_in_0_a_bits_param),
    .auto_in_0_a_bits_size(xbar_1_auto_in_0_a_bits_size),
    .auto_in_0_a_bits_source(xbar_1_auto_in_0_a_bits_source),
    .auto_in_0_a_bits_address(xbar_1_auto_in_0_a_bits_address),
    .auto_in_0_a_bits_mask(xbar_1_auto_in_0_a_bits_mask),
    .auto_in_0_a_bits_data(xbar_1_auto_in_0_a_bits_data),
    .auto_in_0_a_bits_corrupt(xbar_1_auto_in_0_a_bits_corrupt),
    .auto_in_0_d_ready(xbar_1_auto_in_0_d_ready),
    .auto_in_0_d_valid(xbar_1_auto_in_0_d_valid),
    .auto_in_0_d_bits_opcode(xbar_1_auto_in_0_d_bits_opcode),
    .auto_in_0_d_bits_size(xbar_1_auto_in_0_d_bits_size),
    .auto_in_0_d_bits_source(xbar_1_auto_in_0_d_bits_source),
    .auto_in_0_d_bits_data(xbar_1_auto_in_0_d_bits_data),
    .auto_out_a_ready(xbar_1_auto_out_a_ready),
    .auto_out_a_valid(xbar_1_auto_out_a_valid),
    .auto_out_a_bits_opcode(xbar_1_auto_out_a_bits_opcode),
    .auto_out_a_bits_param(xbar_1_auto_out_a_bits_param),
    .auto_out_a_bits_size(xbar_1_auto_out_a_bits_size),
    .auto_out_a_bits_source(xbar_1_auto_out_a_bits_source),
    .auto_out_a_bits_address(xbar_1_auto_out_a_bits_address),
    .auto_out_a_bits_mask(xbar_1_auto_out_a_bits_mask),
    .auto_out_a_bits_data(xbar_1_auto_out_a_bits_data),
    .auto_out_a_bits_corrupt(xbar_1_auto_out_a_bits_corrupt),
    .auto_out_d_ready(xbar_1_auto_out_d_ready),
    .auto_out_d_valid(xbar_1_auto_out_d_valid),
    .auto_out_d_bits_opcode(xbar_1_auto_out_d_bits_opcode),
    .auto_out_d_bits_size(xbar_1_auto_out_d_bits_size),
    .auto_out_d_bits_source(xbar_1_auto_out_d_bits_source),
    .auto_out_d_bits_data(xbar_1_auto_out_d_bits_data)
  );
  TLFIFOFixer fixer ( // @[FIFOFixer.scala 144:27]
    .clock(fixer_clock),
    .reset(fixer_reset),
    .auto_in_a_ready(fixer_auto_in_a_ready),
    .auto_in_a_valid(fixer_auto_in_a_valid),
    .auto_in_a_bits_opcode(fixer_auto_in_a_bits_opcode),
    .auto_in_a_bits_param(fixer_auto_in_a_bits_param),
    .auto_in_a_bits_size(fixer_auto_in_a_bits_size),
    .auto_in_a_bits_source(fixer_auto_in_a_bits_source),
    .auto_in_a_bits_address(fixer_auto_in_a_bits_address),
    .auto_in_a_bits_mask(fixer_auto_in_a_bits_mask),
    .auto_in_a_bits_data(fixer_auto_in_a_bits_data),
    .auto_in_a_bits_corrupt(fixer_auto_in_a_bits_corrupt),
    .auto_in_d_ready(fixer_auto_in_d_ready),
    .auto_in_d_valid(fixer_auto_in_d_valid),
    .auto_in_d_bits_opcode(fixer_auto_in_d_bits_opcode),
    .auto_in_d_bits_size(fixer_auto_in_d_bits_size),
    .auto_in_d_bits_source(fixer_auto_in_d_bits_source),
    .auto_in_d_bits_data(fixer_auto_in_d_bits_data),
    .auto_out_a_ready(fixer_auto_out_a_ready),
    .auto_out_a_valid(fixer_auto_out_a_valid),
    .auto_out_a_bits_opcode(fixer_auto_out_a_bits_opcode),
    .auto_out_a_bits_param(fixer_auto_out_a_bits_param),
    .auto_out_a_bits_size(fixer_auto_out_a_bits_size),
    .auto_out_a_bits_source(fixer_auto_out_a_bits_source),
    .auto_out_a_bits_address(fixer_auto_out_a_bits_address),
    .auto_out_a_bits_mask(fixer_auto_out_a_bits_mask),
    .auto_out_a_bits_data(fixer_auto_out_a_bits_data),
    .auto_out_a_bits_corrupt(fixer_auto_out_a_bits_corrupt),
    .auto_out_d_ready(fixer_auto_out_d_ready),
    .auto_out_d_valid(fixer_auto_out_d_valid),
    .auto_out_d_bits_opcode(fixer_auto_out_d_bits_opcode),
    .auto_out_d_bits_size(fixer_auto_out_d_bits_size),
    .auto_out_d_bits_source(fixer_auto_out_d_bits_source),
    .auto_out_d_bits_data(fixer_auto_out_d_bits_data)
  );
  TLFragmenter fragmenter ( // @[Fragmenter.scala 333:34]
    .clock(fragmenter_clock),
    .reset(fragmenter_reset),
    .auto_in_a_ready(fragmenter_auto_in_a_ready),
    .auto_in_a_valid(fragmenter_auto_in_a_valid),
    .auto_in_a_bits_opcode(fragmenter_auto_in_a_bits_opcode),
    .auto_in_a_bits_param(fragmenter_auto_in_a_bits_param),
    .auto_in_a_bits_size(fragmenter_auto_in_a_bits_size),
    .auto_in_a_bits_source(fragmenter_auto_in_a_bits_source),
    .auto_in_a_bits_address(fragmenter_auto_in_a_bits_address),
    .auto_in_a_bits_mask(fragmenter_auto_in_a_bits_mask),
    .auto_in_a_bits_data(fragmenter_auto_in_a_bits_data),
    .auto_in_a_bits_corrupt(fragmenter_auto_in_a_bits_corrupt),
    .auto_in_d_ready(fragmenter_auto_in_d_ready),
    .auto_in_d_valid(fragmenter_auto_in_d_valid),
    .auto_in_d_bits_opcode(fragmenter_auto_in_d_bits_opcode),
    .auto_in_d_bits_size(fragmenter_auto_in_d_bits_size),
    .auto_in_d_bits_source(fragmenter_auto_in_d_bits_source),
    .auto_in_d_bits_data(fragmenter_auto_in_d_bits_data),
    .auto_out_a_ready(fragmenter_auto_out_a_ready),
    .auto_out_a_valid(fragmenter_auto_out_a_valid),
    .auto_out_a_bits_opcode(fragmenter_auto_out_a_bits_opcode),
    .auto_out_a_bits_param(fragmenter_auto_out_a_bits_param),
    .auto_out_a_bits_size(fragmenter_auto_out_a_bits_size),
    .auto_out_a_bits_source(fragmenter_auto_out_a_bits_source),
    .auto_out_a_bits_address(fragmenter_auto_out_a_bits_address),
    .auto_out_a_bits_mask(fragmenter_auto_out_a_bits_mask),
    .auto_out_a_bits_data(fragmenter_auto_out_a_bits_data),
    .auto_out_a_bits_corrupt(fragmenter_auto_out_a_bits_corrupt),
    .auto_out_d_ready(fragmenter_auto_out_d_ready),
    .auto_out_d_valid(fragmenter_auto_out_d_valid),
    .auto_out_d_bits_opcode(fragmenter_auto_out_d_bits_opcode),
    .auto_out_d_bits_size(fragmenter_auto_out_d_bits_size),
    .auto_out_d_bits_source(fragmenter_auto_out_d_bits_source),
    .auto_out_d_bits_data(fragmenter_auto_out_d_bits_data)
  );
  TLWidthWidget widget ( // @[WidthWidget.scala 219:28]
    .auto_in_a_ready(widget_auto_in_a_ready),
    .auto_in_a_valid(widget_auto_in_a_valid),
    .auto_in_a_bits_opcode(widget_auto_in_a_bits_opcode),
    .auto_in_a_bits_param(widget_auto_in_a_bits_param),
    .auto_in_a_bits_size(widget_auto_in_a_bits_size),
    .auto_in_a_bits_source(widget_auto_in_a_bits_source),
    .auto_in_a_bits_address(widget_auto_in_a_bits_address),
    .auto_in_a_bits_mask(widget_auto_in_a_bits_mask),
    .auto_in_a_bits_data(widget_auto_in_a_bits_data),
    .auto_in_a_bits_corrupt(widget_auto_in_a_bits_corrupt),
    .auto_in_d_ready(widget_auto_in_d_ready),
    .auto_in_d_valid(widget_auto_in_d_valid),
    .auto_in_d_bits_opcode(widget_auto_in_d_bits_opcode),
    .auto_in_d_bits_size(widget_auto_in_d_bits_size),
    .auto_in_d_bits_source(widget_auto_in_d_bits_source),
    .auto_in_d_bits_data(widget_auto_in_d_bits_data),
    .auto_out_a_ready(widget_auto_out_a_ready),
    .auto_out_a_valid(widget_auto_out_a_valid),
    .auto_out_a_bits_opcode(widget_auto_out_a_bits_opcode),
    .auto_out_a_bits_param(widget_auto_out_a_bits_param),
    .auto_out_a_bits_size(widget_auto_out_a_bits_size),
    .auto_out_a_bits_source(widget_auto_out_a_bits_source),
    .auto_out_a_bits_address(widget_auto_out_a_bits_address),
    .auto_out_a_bits_mask(widget_auto_out_a_bits_mask),
    .auto_out_a_bits_data(widget_auto_out_a_bits_data),
    .auto_out_a_bits_corrupt(widget_auto_out_a_bits_corrupt),
    .auto_out_d_ready(widget_auto_out_d_ready),
    .auto_out_d_valid(widget_auto_out_d_valid),
    .auto_out_d_bits_opcode(widget_auto_out_d_bits_opcode),
    .auto_out_d_bits_size(widget_auto_out_d_bits_size),
    .auto_out_d_bits_source(widget_auto_out_d_bits_source),
    .auto_out_d_bits_data(widget_auto_out_d_bits_data)
  );
  TLCacheCork cork ( // @[CacheCork.scala 177:26]
    .clock(cork_clock),
    .reset(cork_reset),
    .auto_in_a_ready(cork_auto_in_a_ready),
    .auto_in_a_valid(cork_auto_in_a_valid),
    .auto_in_a_bits_opcode(cork_auto_in_a_bits_opcode),
    .auto_in_a_bits_param(cork_auto_in_a_bits_param),
    .auto_in_a_bits_size(cork_auto_in_a_bits_size),
    .auto_in_a_bits_source(cork_auto_in_a_bits_source),
    .auto_in_a_bits_address(cork_auto_in_a_bits_address),
    .auto_in_a_bits_mask(cork_auto_in_a_bits_mask),
    .auto_in_a_bits_data(cork_auto_in_a_bits_data),
    .auto_in_a_bits_corrupt(cork_auto_in_a_bits_corrupt),
    .auto_in_c_ready(cork_auto_in_c_ready),
    .auto_in_c_valid(cork_auto_in_c_valid),
    .auto_in_c_bits_opcode(cork_auto_in_c_bits_opcode),
    .auto_in_c_bits_param(cork_auto_in_c_bits_param),
    .auto_in_c_bits_size(cork_auto_in_c_bits_size),
    .auto_in_c_bits_source(cork_auto_in_c_bits_source),
    .auto_in_c_bits_address(cork_auto_in_c_bits_address),
    .auto_in_c_bits_data(cork_auto_in_c_bits_data),
    .auto_in_c_bits_corrupt(cork_auto_in_c_bits_corrupt),
    .auto_in_d_ready(cork_auto_in_d_ready),
    .auto_in_d_valid(cork_auto_in_d_valid),
    .auto_in_d_bits_opcode(cork_auto_in_d_bits_opcode),
    .auto_in_d_bits_param(cork_auto_in_d_bits_param),
    .auto_in_d_bits_size(cork_auto_in_d_bits_size),
    .auto_in_d_bits_source(cork_auto_in_d_bits_source),
    .auto_in_d_bits_sink(cork_auto_in_d_bits_sink),
    .auto_in_d_bits_denied(cork_auto_in_d_bits_denied),
    .auto_in_d_bits_data(cork_auto_in_d_bits_data),
    .auto_in_d_bits_corrupt(cork_auto_in_d_bits_corrupt),
    .auto_in_e_valid(cork_auto_in_e_valid),
    .auto_in_e_bits_sink(cork_auto_in_e_bits_sink),
    .auto_out_a_ready(cork_auto_out_a_ready),
    .auto_out_a_valid(cork_auto_out_a_valid),
    .auto_out_a_bits_opcode(cork_auto_out_a_bits_opcode),
    .auto_out_a_bits_param(cork_auto_out_a_bits_param),
    .auto_out_a_bits_size(cork_auto_out_a_bits_size),
    .auto_out_a_bits_source(cork_auto_out_a_bits_source),
    .auto_out_a_bits_address(cork_auto_out_a_bits_address),
    .auto_out_a_bits_mask(cork_auto_out_a_bits_mask),
    .auto_out_a_bits_data(cork_auto_out_a_bits_data),
    .auto_out_a_bits_corrupt(cork_auto_out_a_bits_corrupt),
    .auto_out_d_ready(cork_auto_out_d_ready),
    .auto_out_d_valid(cork_auto_out_d_valid),
    .auto_out_d_bits_opcode(cork_auto_out_d_bits_opcode),
    .auto_out_d_bits_size(cork_auto_out_d_bits_size),
    .auto_out_d_bits_source(cork_auto_out_d_bits_source),
    .auto_out_d_bits_data(cork_auto_out_d_bits_data)
  );
  TLBuffer buffer ( // @[Buffer.scala 68:28]
    .clock(buffer_clock),
    .reset(buffer_reset),
    .auto_in_a_ready(buffer_auto_in_a_ready),
    .auto_in_a_valid(buffer_auto_in_a_valid),
    .auto_in_a_bits_address(buffer_auto_in_a_bits_address),
    .auto_in_d_valid(buffer_auto_in_d_valid),
    .auto_in_d_bits_opcode(buffer_auto_in_d_bits_opcode),
    .auto_in_d_bits_size(buffer_auto_in_d_bits_size),
    .auto_in_d_bits_data(buffer_auto_in_d_bits_data),
    .auto_out_a_ready(buffer_auto_out_a_ready),
    .auto_out_a_valid(buffer_auto_out_a_valid),
    .auto_out_a_bits_opcode(buffer_auto_out_a_bits_opcode),
    .auto_out_a_bits_param(buffer_auto_out_a_bits_param),
    .auto_out_a_bits_size(buffer_auto_out_a_bits_size),
    .auto_out_a_bits_source(buffer_auto_out_a_bits_source),
    .auto_out_a_bits_address(buffer_auto_out_a_bits_address),
    .auto_out_a_bits_mask(buffer_auto_out_a_bits_mask),
    .auto_out_a_bits_data(buffer_auto_out_a_bits_data),
    .auto_out_a_bits_corrupt(buffer_auto_out_a_bits_corrupt),
    .auto_out_d_ready(buffer_auto_out_d_ready),
    .auto_out_d_valid(buffer_auto_out_d_valid),
    .auto_out_d_bits_opcode(buffer_auto_out_d_bits_opcode),
    .auto_out_d_bits_param(buffer_auto_out_d_bits_param),
    .auto_out_d_bits_size(buffer_auto_out_d_bits_size),
    .auto_out_d_bits_sink(buffer_auto_out_d_bits_sink),
    .auto_out_d_bits_denied(buffer_auto_out_d_bits_denied),
    .auto_out_d_bits_data(buffer_auto_out_d_bits_data),
    .auto_out_d_bits_corrupt(buffer_auto_out_d_bits_corrupt)
  );
  TLBuffer_1 buffer_1 ( // @[Buffer.scala 68:28]
    .clock(buffer_1_clock),
    .reset(buffer_1_reset),
    .auto_in_a_ready(buffer_1_auto_in_a_ready),
    .auto_in_a_valid(buffer_1_auto_in_a_valid),
    .auto_in_a_bits_address(buffer_1_auto_in_a_bits_address),
    .auto_in_b_ready(buffer_1_auto_in_b_ready),
    .auto_in_b_valid(buffer_1_auto_in_b_valid),
    .auto_in_b_bits_address(buffer_1_auto_in_b_bits_address),
    .auto_in_c_ready(buffer_1_auto_in_c_ready),
    .auto_in_c_valid(buffer_1_auto_in_c_valid),
    .auto_in_c_bits_opcode(buffer_1_auto_in_c_bits_opcode),
    .auto_in_c_bits_param(buffer_1_auto_in_c_bits_param),
    .auto_in_c_bits_size(buffer_1_auto_in_c_bits_size),
    .auto_in_c_bits_address(buffer_1_auto_in_c_bits_address),
    .auto_in_c_bits_data(buffer_1_auto_in_c_bits_data),
    .auto_in_d_ready(buffer_1_auto_in_d_ready),
    .auto_in_d_valid(buffer_1_auto_in_d_valid),
    .auto_in_d_bits_opcode(buffer_1_auto_in_d_bits_opcode),
    .auto_in_d_bits_size(buffer_1_auto_in_d_bits_size),
    .auto_in_d_bits_source(buffer_1_auto_in_d_bits_source),
    .auto_in_d_bits_sink(buffer_1_auto_in_d_bits_sink),
    .auto_in_d_bits_data(buffer_1_auto_in_d_bits_data),
    .auto_in_e_ready(buffer_1_auto_in_e_ready),
    .auto_in_e_valid(buffer_1_auto_in_e_valid),
    .auto_in_e_bits_sink(buffer_1_auto_in_e_bits_sink),
    .auto_out_a_ready(buffer_1_auto_out_a_ready),
    .auto_out_a_valid(buffer_1_auto_out_a_valid),
    .auto_out_a_bits_opcode(buffer_1_auto_out_a_bits_opcode),
    .auto_out_a_bits_param(buffer_1_auto_out_a_bits_param),
    .auto_out_a_bits_size(buffer_1_auto_out_a_bits_size),
    .auto_out_a_bits_source(buffer_1_auto_out_a_bits_source),
    .auto_out_a_bits_address(buffer_1_auto_out_a_bits_address),
    .auto_out_a_bits_mask(buffer_1_auto_out_a_bits_mask),
    .auto_out_a_bits_data(buffer_1_auto_out_a_bits_data),
    .auto_out_a_bits_corrupt(buffer_1_auto_out_a_bits_corrupt),
    .auto_out_b_ready(buffer_1_auto_out_b_ready),
    .auto_out_b_valid(buffer_1_auto_out_b_valid),
    .auto_out_b_bits_param(buffer_1_auto_out_b_bits_param),
    .auto_out_b_bits_address(buffer_1_auto_out_b_bits_address),
    .auto_out_c_ready(buffer_1_auto_out_c_ready),
    .auto_out_c_valid(buffer_1_auto_out_c_valid),
    .auto_out_c_bits_opcode(buffer_1_auto_out_c_bits_opcode),
    .auto_out_c_bits_param(buffer_1_auto_out_c_bits_param),
    .auto_out_c_bits_size(buffer_1_auto_out_c_bits_size),
    .auto_out_c_bits_source(buffer_1_auto_out_c_bits_source),
    .auto_out_c_bits_address(buffer_1_auto_out_c_bits_address),
    .auto_out_c_bits_data(buffer_1_auto_out_c_bits_data),
    .auto_out_c_bits_corrupt(buffer_1_auto_out_c_bits_corrupt),
    .auto_out_d_ready(buffer_1_auto_out_d_ready),
    .auto_out_d_valid(buffer_1_auto_out_d_valid),
    .auto_out_d_bits_opcode(buffer_1_auto_out_d_bits_opcode),
    .auto_out_d_bits_param(buffer_1_auto_out_d_bits_param),
    .auto_out_d_bits_size(buffer_1_auto_out_d_bits_size),
    .auto_out_d_bits_sink(buffer_1_auto_out_d_bits_sink),
    .auto_out_d_bits_denied(buffer_1_auto_out_d_bits_denied),
    .auto_out_d_bits_data(buffer_1_auto_out_d_bits_data),
    .auto_out_d_bits_corrupt(buffer_1_auto_out_d_bits_corrupt),
    .auto_out_e_valid(buffer_1_auto_out_e_valid),
    .auto_out_e_bits_sink(buffer_1_auto_out_e_bits_sink)
  );
  TLBuffer_2 buffer_2 ( // @[Buffer.scala 68:28]
    .clock(buffer_2_clock),
    .reset(buffer_2_reset),
    .auto_in_a_ready(buffer_2_auto_in_a_ready),
    .auto_in_a_valid(buffer_2_auto_in_a_valid),
    .auto_in_a_bits_source(buffer_2_auto_in_a_bits_source),
    .auto_in_a_bits_address(buffer_2_auto_in_a_bits_address),
    .auto_in_d_ready(buffer_2_auto_in_d_ready),
    .auto_in_d_valid(buffer_2_auto_in_d_valid),
    .auto_in_d_bits_opcode(buffer_2_auto_in_d_bits_opcode),
    .auto_in_d_bits_size(buffer_2_auto_in_d_bits_size),
    .auto_in_d_bits_source(buffer_2_auto_in_d_bits_source),
    .auto_in_d_bits_data(buffer_2_auto_in_d_bits_data),
    .auto_out_a_ready(buffer_2_auto_out_a_ready),
    .auto_out_a_valid(buffer_2_auto_out_a_valid),
    .auto_out_a_bits_opcode(buffer_2_auto_out_a_bits_opcode),
    .auto_out_a_bits_param(buffer_2_auto_out_a_bits_param),
    .auto_out_a_bits_size(buffer_2_auto_out_a_bits_size),
    .auto_out_a_bits_source(buffer_2_auto_out_a_bits_source),
    .auto_out_a_bits_address(buffer_2_auto_out_a_bits_address),
    .auto_out_a_bits_mask(buffer_2_auto_out_a_bits_mask),
    .auto_out_a_bits_data(buffer_2_auto_out_a_bits_data),
    .auto_out_a_bits_corrupt(buffer_2_auto_out_a_bits_corrupt),
    .auto_out_d_ready(buffer_2_auto_out_d_ready),
    .auto_out_d_valid(buffer_2_auto_out_d_valid),
    .auto_out_d_bits_opcode(buffer_2_auto_out_d_bits_opcode),
    .auto_out_d_bits_param(buffer_2_auto_out_d_bits_param),
    .auto_out_d_bits_size(buffer_2_auto_out_d_bits_size),
    .auto_out_d_bits_source(buffer_2_auto_out_d_bits_source),
    .auto_out_d_bits_sink(buffer_2_auto_out_d_bits_sink),
    .auto_out_d_bits_denied(buffer_2_auto_out_d_bits_denied),
    .auto_out_d_bits_data(buffer_2_auto_out_d_bits_data),
    .auto_out_d_bits_corrupt(buffer_2_auto_out_d_bits_corrupt)
  );
  assign io_dm_hartIsInReset = i_rift2Core_io_dm_hartIsInReset; // @[Rift2Link.scala 110:17]
  assign io_hspi_clk = chipLinkMst_io_hspi_clk; // @[Rift2Link.scala 118:17]
  assign io_hspi_tx_enable = chipLinkMst_io_hspi_tx_enable; // @[Rift2Link.scala 116:16]
  assign io_hspi_tx_data = chipLinkMst_io_hspi_tx_data; // @[Rift2Link.scala 116:16]
  assign io_hspi_oen = chipLinkMst_io_hspi_oen; // @[Rift2Link.scala 120:17]
  assign i_rift2Core_clock = clock;
  assign i_rift2Core_reset = reset;
  assign i_rift2Core_auto_mmu_client_out_a_ready = buffer_2_auto_in_a_ready; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_mmu_client_out_d_valid = buffer_2_auto_in_d_valid; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_mmu_client_out_d_bits_opcode = buffer_2_auto_in_d_bits_opcode; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_mmu_client_out_d_bits_size = buffer_2_auto_in_d_bits_size; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_mmu_client_out_d_bits_source = buffer_2_auto_in_d_bits_source; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_mmu_client_out_d_bits_data = buffer_2_auto_in_d_bits_data; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_periph_client_out_a_ready = xbar_1_auto_in_2_a_ready; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_periph_client_out_d_valid = xbar_1_auto_in_2_d_valid; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_periph_client_out_d_bits_opcode = xbar_1_auto_in_2_d_bits_opcode; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_periph_client_out_d_bits_data = xbar_1_auto_in_2_d_bits_data; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_system_client_out_a_ready = xbar_1_auto_in_1_a_ready; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_system_client_out_d_valid = xbar_1_auto_in_1_d_valid; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_system_client_out_d_bits_opcode = xbar_1_auto_in_1_d_bits_opcode; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_system_client_out_d_bits_data = xbar_1_auto_in_1_d_bits_data; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_dcache_client_out_a_ready = buffer_1_auto_in_a_ready; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_dcache_client_out_b_valid = buffer_1_auto_in_b_valid; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_dcache_client_out_b_bits_address = buffer_1_auto_in_b_bits_address; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_dcache_client_out_c_ready = buffer_1_auto_in_c_ready; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_dcache_client_out_d_valid = buffer_1_auto_in_d_valid; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_dcache_client_out_d_bits_opcode = buffer_1_auto_in_d_bits_opcode; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_dcache_client_out_d_bits_size = buffer_1_auto_in_d_bits_size; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_dcache_client_out_d_bits_source = buffer_1_auto_in_d_bits_source; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_dcache_client_out_d_bits_sink = buffer_1_auto_in_d_bits_sink; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_dcache_client_out_d_bits_data = buffer_1_auto_in_d_bits_data; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_dcache_client_out_e_ready = buffer_1_auto_in_e_ready; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_icache_client_out_a_ready = buffer_auto_in_a_ready; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_icache_client_out_d_valid = buffer_auto_in_d_valid; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_icache_client_out_d_bits_opcode = buffer_auto_in_d_bits_opcode; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_icache_client_out_d_bits_size = buffer_auto_in_d_bits_size; // @[LazyModule.scala 298:16]
  assign i_rift2Core_auto_icache_client_out_d_bits_data = buffer_auto_in_d_bits_data; // @[LazyModule.scala 298:16]
  assign i_rift2Core_io_dm_hartResetReq = io_dm_hartResetReq; // @[Rift2Link.scala 110:17]
  assign i_rift2Core_io_dm_hartHaltReq = io_dm_hartHaltReq; // @[Rift2Link.scala 110:17]
  assign i_rift2Core_io_rtc_clock = io_rtc_clock; // @[Rift2Link.scala 122:37]
  assign i_rift2Core_io_aclint_msi = io_aclint_msi; // @[Rift2Link.scala 112:34]
  assign i_rift2Core_io_aclint_mti = io_aclint_mti; // @[Rift2Link.scala 112:34]
  assign i_rift2Core_io_aclint_ssi = io_aclint_ssi; // @[Rift2Link.scala 112:34]
  assign i_rift2Core_io_aclint_sti = io_aclint_sti; // @[Rift2Link.scala 112:34]
  assign i_rift2Core_io_plic_mei = io_plic_mei; // @[Rift2Link.scala 113:32]
  assign i_rift2Core_io_plic_sei = io_plic_sei; // @[Rift2Link.scala 113:32]
  assign sifiveCache_clock = clock;
  assign sifiveCache_reset = reset;
  assign sifiveCache_auto_in_a_valid = xbar_auto_out_a_valid; // @[LazyModule.scala 296:16]
  assign sifiveCache_auto_in_a_bits_opcode = xbar_auto_out_a_bits_opcode; // @[LazyModule.scala 296:16]
  assign sifiveCache_auto_in_a_bits_param = xbar_auto_out_a_bits_param; // @[LazyModule.scala 296:16]
  assign sifiveCache_auto_in_a_bits_size = xbar_auto_out_a_bits_size; // @[LazyModule.scala 296:16]
  assign sifiveCache_auto_in_a_bits_source = xbar_auto_out_a_bits_source; // @[LazyModule.scala 296:16]
  assign sifiveCache_auto_in_a_bits_address = xbar_auto_out_a_bits_address; // @[LazyModule.scala 296:16]
  assign sifiveCache_auto_in_a_bits_mask = xbar_auto_out_a_bits_mask; // @[LazyModule.scala 296:16]
  assign sifiveCache_auto_in_a_bits_data = xbar_auto_out_a_bits_data; // @[LazyModule.scala 296:16]
  assign sifiveCache_auto_in_a_bits_corrupt = xbar_auto_out_a_bits_corrupt; // @[LazyModule.scala 296:16]
  assign sifiveCache_auto_in_b_ready = xbar_auto_out_b_ready; // @[LazyModule.scala 296:16]
  assign sifiveCache_auto_in_c_valid = xbar_auto_out_c_valid; // @[LazyModule.scala 296:16]
  assign sifiveCache_auto_in_c_bits_opcode = xbar_auto_out_c_bits_opcode; // @[LazyModule.scala 296:16]
  assign sifiveCache_auto_in_c_bits_param = xbar_auto_out_c_bits_param; // @[LazyModule.scala 296:16]
  assign sifiveCache_auto_in_c_bits_size = xbar_auto_out_c_bits_size; // @[LazyModule.scala 296:16]
  assign sifiveCache_auto_in_c_bits_address = xbar_auto_out_c_bits_address; // @[LazyModule.scala 296:16]
  assign sifiveCache_auto_in_c_bits_data = xbar_auto_out_c_bits_data; // @[LazyModule.scala 296:16]
  assign sifiveCache_auto_in_c_bits_corrupt = xbar_auto_out_c_bits_corrupt; // @[LazyModule.scala 296:16]
  assign sifiveCache_auto_in_d_ready = xbar_auto_out_d_ready; // @[LazyModule.scala 296:16]
  assign sifiveCache_auto_in_e_valid = xbar_auto_out_e_valid; // @[LazyModule.scala 296:16]
  assign sifiveCache_auto_in_e_bits_sink = xbar_auto_out_e_bits_sink; // @[LazyModule.scala 296:16]
  assign sifiveCache_auto_out_a_ready = cork_auto_in_a_ready; // @[LazyModule.scala 298:16]
  assign sifiveCache_auto_out_c_ready = cork_auto_in_c_ready; // @[LazyModule.scala 298:16]
  assign sifiveCache_auto_out_d_valid = cork_auto_in_d_valid; // @[LazyModule.scala 298:16]
  assign sifiveCache_auto_out_d_bits_opcode = cork_auto_in_d_bits_opcode; // @[LazyModule.scala 298:16]
  assign sifiveCache_auto_out_d_bits_param = cork_auto_in_d_bits_param; // @[LazyModule.scala 298:16]
  assign sifiveCache_auto_out_d_bits_size = cork_auto_in_d_bits_size; // @[LazyModule.scala 298:16]
  assign sifiveCache_auto_out_d_bits_source = cork_auto_in_d_bits_source; // @[LazyModule.scala 298:16]
  assign sifiveCache_auto_out_d_bits_sink = cork_auto_in_d_bits_sink; // @[LazyModule.scala 298:16]
  assign sifiveCache_auto_out_d_bits_denied = cork_auto_in_d_bits_denied; // @[LazyModule.scala 298:16]
  assign sifiveCache_auto_out_d_bits_data = cork_auto_in_d_bits_data; // @[LazyModule.scala 298:16]
  assign sifiveCache_auto_out_d_bits_corrupt = cork_auto_in_d_bits_corrupt; // @[LazyModule.scala 298:16]
  assign chipLinkMst_clock = clock;
  assign chipLinkMst_reset = reset;
  assign chipLinkMst_auto_chip_link_master_in_a_valid = xbar_1_auto_out_a_valid; // @[LazyModule.scala 296:16]
  assign chipLinkMst_auto_chip_link_master_in_a_bits_opcode = xbar_1_auto_out_a_bits_opcode; // @[LazyModule.scala 296:16]
  assign chipLinkMst_auto_chip_link_master_in_a_bits_param = xbar_1_auto_out_a_bits_param; // @[LazyModule.scala 296:16]
  assign chipLinkMst_auto_chip_link_master_in_a_bits_size = xbar_1_auto_out_a_bits_size; // @[LazyModule.scala 296:16]
  assign chipLinkMst_auto_chip_link_master_in_a_bits_source = xbar_1_auto_out_a_bits_source; // @[LazyModule.scala 296:16]
  assign chipLinkMst_auto_chip_link_master_in_a_bits_address = xbar_1_auto_out_a_bits_address; // @[LazyModule.scala 296:16]
  assign chipLinkMst_auto_chip_link_master_in_a_bits_mask = xbar_1_auto_out_a_bits_mask; // @[LazyModule.scala 296:16]
  assign chipLinkMst_auto_chip_link_master_in_a_bits_data = xbar_1_auto_out_a_bits_data; // @[LazyModule.scala 296:16]
  assign chipLinkMst_auto_chip_link_master_in_a_bits_corrupt = xbar_1_auto_out_a_bits_corrupt; // @[LazyModule.scala 296:16]
  assign chipLinkMst_auto_chip_link_master_in_d_ready = xbar_1_auto_out_d_ready; // @[LazyModule.scala 296:16]
  assign chipLinkMst_io_hspi_rx_enable = io_hspi_rx_enable; // @[Rift2Link.scala 117:35]
  assign chipLinkMst_io_hspi_rx_data = io_hspi_rx_data; // @[Rift2Link.scala 117:35]
  assign xbar_clock = clock;
  assign xbar_reset = reset;
  assign xbar_auto_in_2_a_valid = buffer_2_auto_out_a_valid; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_2_a_bits_opcode = buffer_2_auto_out_a_bits_opcode; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_2_a_bits_param = buffer_2_auto_out_a_bits_param; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_2_a_bits_size = buffer_2_auto_out_a_bits_size; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_2_a_bits_source = buffer_2_auto_out_a_bits_source; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_2_a_bits_address = buffer_2_auto_out_a_bits_address; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_2_a_bits_mask = buffer_2_auto_out_a_bits_mask; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_2_a_bits_data = buffer_2_auto_out_a_bits_data; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_2_a_bits_corrupt = buffer_2_auto_out_a_bits_corrupt; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_2_d_ready = buffer_2_auto_out_d_ready; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_1_a_valid = buffer_1_auto_out_a_valid; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_1_a_bits_opcode = buffer_1_auto_out_a_bits_opcode; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_1_a_bits_param = buffer_1_auto_out_a_bits_param; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_1_a_bits_size = buffer_1_auto_out_a_bits_size; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_1_a_bits_source = buffer_1_auto_out_a_bits_source; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_1_a_bits_address = buffer_1_auto_out_a_bits_address; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_1_a_bits_mask = buffer_1_auto_out_a_bits_mask; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_1_a_bits_data = buffer_1_auto_out_a_bits_data; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_1_a_bits_corrupt = buffer_1_auto_out_a_bits_corrupt; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_1_b_ready = buffer_1_auto_out_b_ready; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_1_c_valid = buffer_1_auto_out_c_valid; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_1_c_bits_opcode = buffer_1_auto_out_c_bits_opcode; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_1_c_bits_param = buffer_1_auto_out_c_bits_param; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_1_c_bits_size = buffer_1_auto_out_c_bits_size; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_1_c_bits_source = buffer_1_auto_out_c_bits_source; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_1_c_bits_address = buffer_1_auto_out_c_bits_address; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_1_c_bits_data = buffer_1_auto_out_c_bits_data; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_1_c_bits_corrupt = buffer_1_auto_out_c_bits_corrupt; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_1_d_ready = buffer_1_auto_out_d_ready; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_1_e_valid = buffer_1_auto_out_e_valid; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_1_e_bits_sink = buffer_1_auto_out_e_bits_sink; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_0_a_valid = buffer_auto_out_a_valid; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_0_a_bits_opcode = buffer_auto_out_a_bits_opcode; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_0_a_bits_param = buffer_auto_out_a_bits_param; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_0_a_bits_size = buffer_auto_out_a_bits_size; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_0_a_bits_source = buffer_auto_out_a_bits_source; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_0_a_bits_address = buffer_auto_out_a_bits_address; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_0_a_bits_mask = buffer_auto_out_a_bits_mask; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_0_a_bits_data = buffer_auto_out_a_bits_data; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_0_a_bits_corrupt = buffer_auto_out_a_bits_corrupt; // @[LazyModule.scala 296:16]
  assign xbar_auto_in_0_d_ready = buffer_auto_out_d_ready; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_a_ready = sifiveCache_auto_in_a_ready; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_b_valid = sifiveCache_auto_in_b_valid; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_b_bits_param = sifiveCache_auto_in_b_bits_param; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_b_bits_address = sifiveCache_auto_in_b_bits_address; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_c_ready = sifiveCache_auto_in_c_ready; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_d_valid = sifiveCache_auto_in_d_valid; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_d_bits_opcode = sifiveCache_auto_in_d_bits_opcode; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_d_bits_param = sifiveCache_auto_in_d_bits_param; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_d_bits_size = sifiveCache_auto_in_d_bits_size; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_d_bits_source = sifiveCache_auto_in_d_bits_source; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_d_bits_sink = sifiveCache_auto_in_d_bits_sink; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_d_bits_denied = sifiveCache_auto_in_d_bits_denied; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_d_bits_data = sifiveCache_auto_in_d_bits_data; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_d_bits_corrupt = sifiveCache_auto_in_d_bits_corrupt; // @[LazyModule.scala 296:16]
  assign xbar_1_clock = clock;
  assign xbar_1_reset = reset;
  assign xbar_1_auto_in_2_a_valid = i_rift2Core_auto_periph_client_out_a_valid; // @[LazyModule.scala 298:16]
  assign xbar_1_auto_in_2_a_bits_opcode = i_rift2Core_auto_periph_client_out_a_bits_opcode; // @[LazyModule.scala 298:16]
  assign xbar_1_auto_in_2_a_bits_address = i_rift2Core_auto_periph_client_out_a_bits_address; // @[LazyModule.scala 298:16]
  assign xbar_1_auto_in_2_a_bits_mask = i_rift2Core_auto_periph_client_out_a_bits_mask; // @[LazyModule.scala 298:16]
  assign xbar_1_auto_in_2_a_bits_data = i_rift2Core_auto_periph_client_out_a_bits_data; // @[LazyModule.scala 298:16]
  assign xbar_1_auto_in_2_d_ready = i_rift2Core_auto_periph_client_out_d_ready; // @[LazyModule.scala 298:16]
  assign xbar_1_auto_in_1_a_valid = i_rift2Core_auto_system_client_out_a_valid; // @[LazyModule.scala 298:16]
  assign xbar_1_auto_in_1_a_bits_opcode = i_rift2Core_auto_system_client_out_a_bits_opcode; // @[LazyModule.scala 298:16]
  assign xbar_1_auto_in_1_a_bits_address = i_rift2Core_auto_system_client_out_a_bits_address; // @[LazyModule.scala 298:16]
  assign xbar_1_auto_in_1_a_bits_mask = i_rift2Core_auto_system_client_out_a_bits_mask; // @[LazyModule.scala 298:16]
  assign xbar_1_auto_in_1_a_bits_data = i_rift2Core_auto_system_client_out_a_bits_data; // @[LazyModule.scala 298:16]
  assign xbar_1_auto_in_1_d_ready = i_rift2Core_auto_system_client_out_d_ready; // @[LazyModule.scala 298:16]
  assign xbar_1_auto_in_0_a_valid = fixer_auto_out_a_valid; // @[LazyModule.scala 296:16]
  assign xbar_1_auto_in_0_a_bits_opcode = fixer_auto_out_a_bits_opcode; // @[LazyModule.scala 296:16]
  assign xbar_1_auto_in_0_a_bits_param = fixer_auto_out_a_bits_param; // @[LazyModule.scala 296:16]
  assign xbar_1_auto_in_0_a_bits_size = fixer_auto_out_a_bits_size; // @[LazyModule.scala 296:16]
  assign xbar_1_auto_in_0_a_bits_source = fixer_auto_out_a_bits_source; // @[LazyModule.scala 296:16]
  assign xbar_1_auto_in_0_a_bits_address = fixer_auto_out_a_bits_address; // @[LazyModule.scala 296:16]
  assign xbar_1_auto_in_0_a_bits_mask = fixer_auto_out_a_bits_mask; // @[LazyModule.scala 296:16]
  assign xbar_1_auto_in_0_a_bits_data = fixer_auto_out_a_bits_data; // @[LazyModule.scala 296:16]
  assign xbar_1_auto_in_0_a_bits_corrupt = fixer_auto_out_a_bits_corrupt; // @[LazyModule.scala 296:16]
  assign xbar_1_auto_in_0_d_ready = fixer_auto_out_d_ready; // @[LazyModule.scala 296:16]
  assign xbar_1_auto_out_a_ready = chipLinkMst_auto_chip_link_master_in_a_ready; // @[LazyModule.scala 296:16]
  assign xbar_1_auto_out_d_valid = chipLinkMst_auto_chip_link_master_in_d_valid; // @[LazyModule.scala 296:16]
  assign xbar_1_auto_out_d_bits_opcode = chipLinkMst_auto_chip_link_master_in_d_bits_opcode; // @[LazyModule.scala 296:16]
  assign xbar_1_auto_out_d_bits_size = chipLinkMst_auto_chip_link_master_in_d_bits_size; // @[LazyModule.scala 296:16]
  assign xbar_1_auto_out_d_bits_source = chipLinkMst_auto_chip_link_master_in_d_bits_source; // @[LazyModule.scala 296:16]
  assign xbar_1_auto_out_d_bits_data = chipLinkMst_auto_chip_link_master_in_d_bits_data; // @[LazyModule.scala 296:16]
  assign fixer_clock = clock;
  assign fixer_reset = reset;
  assign fixer_auto_in_a_valid = fragmenter_auto_out_a_valid; // @[LazyModule.scala 296:16]
  assign fixer_auto_in_a_bits_opcode = fragmenter_auto_out_a_bits_opcode; // @[LazyModule.scala 296:16]
  assign fixer_auto_in_a_bits_param = fragmenter_auto_out_a_bits_param; // @[LazyModule.scala 296:16]
  assign fixer_auto_in_a_bits_size = fragmenter_auto_out_a_bits_size; // @[LazyModule.scala 296:16]
  assign fixer_auto_in_a_bits_source = fragmenter_auto_out_a_bits_source; // @[LazyModule.scala 296:16]
  assign fixer_auto_in_a_bits_address = fragmenter_auto_out_a_bits_address; // @[LazyModule.scala 296:16]
  assign fixer_auto_in_a_bits_mask = fragmenter_auto_out_a_bits_mask; // @[LazyModule.scala 296:16]
  assign fixer_auto_in_a_bits_data = fragmenter_auto_out_a_bits_data; // @[LazyModule.scala 296:16]
  assign fixer_auto_in_a_bits_corrupt = fragmenter_auto_out_a_bits_corrupt; // @[LazyModule.scala 296:16]
  assign fixer_auto_in_d_ready = fragmenter_auto_out_d_ready; // @[LazyModule.scala 296:16]
  assign fixer_auto_out_a_ready = xbar_1_auto_in_0_a_ready; // @[LazyModule.scala 296:16]
  assign fixer_auto_out_d_valid = xbar_1_auto_in_0_d_valid; // @[LazyModule.scala 296:16]
  assign fixer_auto_out_d_bits_opcode = xbar_1_auto_in_0_d_bits_opcode; // @[LazyModule.scala 296:16]
  assign fixer_auto_out_d_bits_size = xbar_1_auto_in_0_d_bits_size; // @[LazyModule.scala 296:16]
  assign fixer_auto_out_d_bits_source = xbar_1_auto_in_0_d_bits_source; // @[LazyModule.scala 296:16]
  assign fixer_auto_out_d_bits_data = xbar_1_auto_in_0_d_bits_data; // @[LazyModule.scala 296:16]
  assign fragmenter_clock = clock;
  assign fragmenter_reset = reset;
  assign fragmenter_auto_in_a_valid = widget_auto_out_a_valid; // @[LazyModule.scala 296:16]
  assign fragmenter_auto_in_a_bits_opcode = widget_auto_out_a_bits_opcode; // @[LazyModule.scala 296:16]
  assign fragmenter_auto_in_a_bits_param = widget_auto_out_a_bits_param; // @[LazyModule.scala 296:16]
  assign fragmenter_auto_in_a_bits_size = widget_auto_out_a_bits_size; // @[LazyModule.scala 296:16]
  assign fragmenter_auto_in_a_bits_source = widget_auto_out_a_bits_source; // @[LazyModule.scala 296:16]
  assign fragmenter_auto_in_a_bits_address = widget_auto_out_a_bits_address; // @[LazyModule.scala 296:16]
  assign fragmenter_auto_in_a_bits_mask = widget_auto_out_a_bits_mask; // @[LazyModule.scala 296:16]
  assign fragmenter_auto_in_a_bits_data = widget_auto_out_a_bits_data; // @[LazyModule.scala 296:16]
  assign fragmenter_auto_in_a_bits_corrupt = widget_auto_out_a_bits_corrupt; // @[LazyModule.scala 296:16]
  assign fragmenter_auto_in_d_ready = widget_auto_out_d_ready; // @[LazyModule.scala 296:16]
  assign fragmenter_auto_out_a_ready = fixer_auto_in_a_ready; // @[LazyModule.scala 296:16]
  assign fragmenter_auto_out_d_valid = fixer_auto_in_d_valid; // @[LazyModule.scala 296:16]
  assign fragmenter_auto_out_d_bits_opcode = fixer_auto_in_d_bits_opcode; // @[LazyModule.scala 296:16]
  assign fragmenter_auto_out_d_bits_size = fixer_auto_in_d_bits_size; // @[LazyModule.scala 296:16]
  assign fragmenter_auto_out_d_bits_source = fixer_auto_in_d_bits_source; // @[LazyModule.scala 296:16]
  assign fragmenter_auto_out_d_bits_data = fixer_auto_in_d_bits_data; // @[LazyModule.scala 296:16]
  assign widget_auto_in_a_valid = cork_auto_out_a_valid; // @[LazyModule.scala 296:16]
  assign widget_auto_in_a_bits_opcode = cork_auto_out_a_bits_opcode; // @[LazyModule.scala 296:16]
  assign widget_auto_in_a_bits_param = cork_auto_out_a_bits_param; // @[LazyModule.scala 296:16]
  assign widget_auto_in_a_bits_size = cork_auto_out_a_bits_size; // @[LazyModule.scala 296:16]
  assign widget_auto_in_a_bits_source = cork_auto_out_a_bits_source; // @[LazyModule.scala 296:16]
  assign widget_auto_in_a_bits_address = cork_auto_out_a_bits_address; // @[LazyModule.scala 296:16]
  assign widget_auto_in_a_bits_mask = cork_auto_out_a_bits_mask; // @[LazyModule.scala 296:16]
  assign widget_auto_in_a_bits_data = cork_auto_out_a_bits_data; // @[LazyModule.scala 296:16]
  assign widget_auto_in_a_bits_corrupt = cork_auto_out_a_bits_corrupt; // @[LazyModule.scala 296:16]
  assign widget_auto_in_d_ready = cork_auto_out_d_ready; // @[LazyModule.scala 296:16]
  assign widget_auto_out_a_ready = fragmenter_auto_in_a_ready; // @[LazyModule.scala 296:16]
  assign widget_auto_out_d_valid = fragmenter_auto_in_d_valid; // @[LazyModule.scala 296:16]
  assign widget_auto_out_d_bits_opcode = fragmenter_auto_in_d_bits_opcode; // @[LazyModule.scala 296:16]
  assign widget_auto_out_d_bits_size = fragmenter_auto_in_d_bits_size; // @[LazyModule.scala 296:16]
  assign widget_auto_out_d_bits_source = fragmenter_auto_in_d_bits_source; // @[LazyModule.scala 296:16]
  assign widget_auto_out_d_bits_data = fragmenter_auto_in_d_bits_data; // @[LazyModule.scala 296:16]
  assign cork_clock = clock;
  assign cork_reset = reset;
  assign cork_auto_in_a_valid = sifiveCache_auto_out_a_valid; // @[LazyModule.scala 298:16]
  assign cork_auto_in_a_bits_opcode = sifiveCache_auto_out_a_bits_opcode; // @[LazyModule.scala 298:16]
  assign cork_auto_in_a_bits_param = sifiveCache_auto_out_a_bits_param; // @[LazyModule.scala 298:16]
  assign cork_auto_in_a_bits_size = sifiveCache_auto_out_a_bits_size; // @[LazyModule.scala 298:16]
  assign cork_auto_in_a_bits_source = sifiveCache_auto_out_a_bits_source; // @[LazyModule.scala 298:16]
  assign cork_auto_in_a_bits_address = sifiveCache_auto_out_a_bits_address; // @[LazyModule.scala 298:16]
  assign cork_auto_in_a_bits_mask = sifiveCache_auto_out_a_bits_mask; // @[LazyModule.scala 298:16]
  assign cork_auto_in_a_bits_data = sifiveCache_auto_out_a_bits_data; // @[LazyModule.scala 298:16]
  assign cork_auto_in_a_bits_corrupt = sifiveCache_auto_out_a_bits_corrupt; // @[LazyModule.scala 298:16]
  assign cork_auto_in_c_valid = sifiveCache_auto_out_c_valid; // @[LazyModule.scala 298:16]
  assign cork_auto_in_c_bits_opcode = sifiveCache_auto_out_c_bits_opcode; // @[LazyModule.scala 298:16]
  assign cork_auto_in_c_bits_param = sifiveCache_auto_out_c_bits_param; // @[LazyModule.scala 298:16]
  assign cork_auto_in_c_bits_size = sifiveCache_auto_out_c_bits_size; // @[LazyModule.scala 298:16]
  assign cork_auto_in_c_bits_source = sifiveCache_auto_out_c_bits_source; // @[LazyModule.scala 298:16]
  assign cork_auto_in_c_bits_address = sifiveCache_auto_out_c_bits_address; // @[LazyModule.scala 298:16]
  assign cork_auto_in_c_bits_data = sifiveCache_auto_out_c_bits_data; // @[LazyModule.scala 298:16]
  assign cork_auto_in_c_bits_corrupt = sifiveCache_auto_out_c_bits_corrupt; // @[LazyModule.scala 298:16]
  assign cork_auto_in_d_ready = sifiveCache_auto_out_d_ready; // @[LazyModule.scala 298:16]
  assign cork_auto_in_e_valid = sifiveCache_auto_out_e_valid; // @[LazyModule.scala 298:16]
  assign cork_auto_in_e_bits_sink = sifiveCache_auto_out_e_bits_sink; // @[LazyModule.scala 298:16]
  assign cork_auto_out_a_ready = widget_auto_in_a_ready; // @[LazyModule.scala 296:16]
  assign cork_auto_out_d_valid = widget_auto_in_d_valid; // @[LazyModule.scala 296:16]
  assign cork_auto_out_d_bits_opcode = widget_auto_in_d_bits_opcode; // @[LazyModule.scala 296:16]
  assign cork_auto_out_d_bits_size = widget_auto_in_d_bits_size; // @[LazyModule.scala 296:16]
  assign cork_auto_out_d_bits_source = widget_auto_in_d_bits_source; // @[LazyModule.scala 296:16]
  assign cork_auto_out_d_bits_data = widget_auto_in_d_bits_data; // @[LazyModule.scala 296:16]
  assign buffer_clock = clock;
  assign buffer_reset = reset;
  assign buffer_auto_in_a_valid = i_rift2Core_auto_icache_client_out_a_valid; // @[LazyModule.scala 298:16]
  assign buffer_auto_in_a_bits_address = i_rift2Core_auto_icache_client_out_a_bits_address; // @[LazyModule.scala 298:16]
  assign buffer_auto_out_a_ready = xbar_auto_in_0_a_ready; // @[LazyModule.scala 296:16]
  assign buffer_auto_out_d_valid = xbar_auto_in_0_d_valid; // @[LazyModule.scala 296:16]
  assign buffer_auto_out_d_bits_opcode = xbar_auto_in_0_d_bits_opcode; // @[LazyModule.scala 296:16]
  assign buffer_auto_out_d_bits_param = xbar_auto_in_0_d_bits_param; // @[LazyModule.scala 296:16]
  assign buffer_auto_out_d_bits_size = xbar_auto_in_0_d_bits_size; // @[LazyModule.scala 296:16]
  assign buffer_auto_out_d_bits_sink = xbar_auto_in_0_d_bits_sink; // @[LazyModule.scala 296:16]
  assign buffer_auto_out_d_bits_denied = xbar_auto_in_0_d_bits_denied; // @[LazyModule.scala 296:16]
  assign buffer_auto_out_d_bits_data = xbar_auto_in_0_d_bits_data; // @[LazyModule.scala 296:16]
  assign buffer_auto_out_d_bits_corrupt = xbar_auto_in_0_d_bits_corrupt; // @[LazyModule.scala 296:16]
  assign buffer_1_clock = clock;
  assign buffer_1_reset = reset;
  assign buffer_1_auto_in_a_valid = i_rift2Core_auto_dcache_client_out_a_valid; // @[LazyModule.scala 298:16]
  assign buffer_1_auto_in_a_bits_address = i_rift2Core_auto_dcache_client_out_a_bits_address; // @[LazyModule.scala 298:16]
  assign buffer_1_auto_in_b_ready = i_rift2Core_auto_dcache_client_out_b_ready; // @[LazyModule.scala 298:16]
  assign buffer_1_auto_in_c_valid = i_rift2Core_auto_dcache_client_out_c_valid; // @[LazyModule.scala 298:16]
  assign buffer_1_auto_in_c_bits_opcode = i_rift2Core_auto_dcache_client_out_c_bits_opcode; // @[LazyModule.scala 298:16]
  assign buffer_1_auto_in_c_bits_param = i_rift2Core_auto_dcache_client_out_c_bits_param; // @[LazyModule.scala 298:16]
  assign buffer_1_auto_in_c_bits_size = i_rift2Core_auto_dcache_client_out_c_bits_size; // @[LazyModule.scala 298:16]
  assign buffer_1_auto_in_c_bits_address = i_rift2Core_auto_dcache_client_out_c_bits_address; // @[LazyModule.scala 298:16]
  assign buffer_1_auto_in_c_bits_data = i_rift2Core_auto_dcache_client_out_c_bits_data; // @[LazyModule.scala 298:16]
  assign buffer_1_auto_in_d_ready = i_rift2Core_auto_dcache_client_out_d_ready; // @[LazyModule.scala 298:16]
  assign buffer_1_auto_in_e_valid = i_rift2Core_auto_dcache_client_out_e_valid; // @[LazyModule.scala 298:16]
  assign buffer_1_auto_in_e_bits_sink = i_rift2Core_auto_dcache_client_out_e_bits_sink; // @[LazyModule.scala 298:16]
  assign buffer_1_auto_out_a_ready = xbar_auto_in_1_a_ready; // @[LazyModule.scala 296:16]
  assign buffer_1_auto_out_b_valid = xbar_auto_in_1_b_valid; // @[LazyModule.scala 296:16]
  assign buffer_1_auto_out_b_bits_param = xbar_auto_in_1_b_bits_param; // @[LazyModule.scala 296:16]
  assign buffer_1_auto_out_b_bits_address = xbar_auto_in_1_b_bits_address; // @[LazyModule.scala 296:16]
  assign buffer_1_auto_out_c_ready = xbar_auto_in_1_c_ready; // @[LazyModule.scala 296:16]
  assign buffer_1_auto_out_d_valid = xbar_auto_in_1_d_valid; // @[LazyModule.scala 296:16]
  assign buffer_1_auto_out_d_bits_opcode = xbar_auto_in_1_d_bits_opcode; // @[LazyModule.scala 296:16]
  assign buffer_1_auto_out_d_bits_param = xbar_auto_in_1_d_bits_param; // @[LazyModule.scala 296:16]
  assign buffer_1_auto_out_d_bits_size = xbar_auto_in_1_d_bits_size; // @[LazyModule.scala 296:16]
  assign buffer_1_auto_out_d_bits_sink = xbar_auto_in_1_d_bits_sink; // @[LazyModule.scala 296:16]
  assign buffer_1_auto_out_d_bits_denied = xbar_auto_in_1_d_bits_denied; // @[LazyModule.scala 296:16]
  assign buffer_1_auto_out_d_bits_data = xbar_auto_in_1_d_bits_data; // @[LazyModule.scala 296:16]
  assign buffer_1_auto_out_d_bits_corrupt = xbar_auto_in_1_d_bits_corrupt; // @[LazyModule.scala 296:16]
  assign buffer_2_clock = clock;
  assign buffer_2_reset = reset;
  assign buffer_2_auto_in_a_valid = i_rift2Core_auto_mmu_client_out_a_valid; // @[LazyModule.scala 298:16]
  assign buffer_2_auto_in_a_bits_source = i_rift2Core_auto_mmu_client_out_a_bits_source; // @[LazyModule.scala 298:16]
  assign buffer_2_auto_in_a_bits_address = i_rift2Core_auto_mmu_client_out_a_bits_address; // @[LazyModule.scala 298:16]
  assign buffer_2_auto_in_d_ready = i_rift2Core_auto_mmu_client_out_d_ready; // @[LazyModule.scala 298:16]
  assign buffer_2_auto_out_a_ready = xbar_auto_in_2_a_ready; // @[LazyModule.scala 296:16]
  assign buffer_2_auto_out_d_valid = xbar_auto_in_2_d_valid; // @[LazyModule.scala 296:16]
  assign buffer_2_auto_out_d_bits_opcode = xbar_auto_in_2_d_bits_opcode; // @[LazyModule.scala 296:16]
  assign buffer_2_auto_out_d_bits_param = xbar_auto_in_2_d_bits_param; // @[LazyModule.scala 296:16]
  assign buffer_2_auto_out_d_bits_size = xbar_auto_in_2_d_bits_size; // @[LazyModule.scala 296:16]
  assign buffer_2_auto_out_d_bits_source = xbar_auto_in_2_d_bits_source; // @[LazyModule.scala 296:16]
  assign buffer_2_auto_out_d_bits_sink = xbar_auto_in_2_d_bits_sink; // @[LazyModule.scala 296:16]
  assign buffer_2_auto_out_d_bits_denied = xbar_auto_in_2_d_bits_denied; // @[LazyModule.scala 296:16]
  assign buffer_2_auto_out_d_bits_data = xbar_auto_in_2_d_bits_data; // @[LazyModule.scala 296:16]
  assign buffer_2_auto_out_d_bits_corrupt = xbar_auto_in_2_d_bits_corrupt; // @[LazyModule.scala 296:16]
endmodule
module TLMaster(
  input         clock,
  input         reset,
  output        io_req_ready,
  input         io_req_valid,
  input  [31:0] io_req_bits_paddr,
  input  [63:0] io_req_bits_wdata,
  input  [7:0]  io_req_bits_wmask,
  input         io_rsp_ready,
  output        io_rsp_valid,
  output [63:0] io_rsp_bits_rdata,
  input         io_a_ready,
  output        io_a_valid,
  output [2:0]  io_a_bits_opcode,
  output [31:0] io_a_bits_address,
  output [7:0]  io_a_bits_mask,
  output [63:0] io_a_bits_data,
  output        io_d_ready,
  input         io_d_valid,
  input  [63:0] io_d_bits_data
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [63:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [63:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
`endif // RANDOMIZE_REG_INIT
  reg [31:0] reqInfo_paddr; // @[Chiplink.scala 312:22]
  reg [63:0] reqInfo_wdata; // @[Chiplink.scala 312:22]
  reg [7:0] reqInfo_wmask; // @[Chiplink.scala 312:22]
  reg [63:0] rspInfo_rdata; // @[Chiplink.scala 313:22]
  reg  reqReady; // @[Chiplink.scala 315:28]
  reg  rspValid; // @[Chiplink.scala 316:28]
  reg  tlAValid; // @[Chiplink.scala 317:27]
  reg  tlDReady; // @[Chiplink.scala 318:27]
  reg  isRead; // @[Chiplink.scala 320:21]
  wire  _T_1 = io_req_ready & io_req_valid; // @[Decoupled.scala 52:35]
  wire  _T_2 = io_a_ready & io_a_valid; // @[Decoupled.scala 52:35]
  wire  _T_3 = io_d_ready & io_d_valid; // @[Decoupled.scala 52:35]
  wire  _T_4 = io_rsp_ready & io_rsp_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_8 = _T_4 ? 1'h0 : rspValid; // @[Chiplink.scala 356:32 357:16 316:28]
  wire  _GEN_9 = _T_4 | reqReady; // @[Chiplink.scala 356:32 358:16 315:28]
  wire  _GEN_10 = _T_3 | _GEN_8; // @[Chiplink.scala 353:30 354:16]
  wire  _GEN_11 = _T_3 ? 1'h0 : tlDReady; // @[Chiplink.scala 353:30 355:16 318:27]
  wire  _GEN_12 = _T_3 ? reqReady : _GEN_9; // @[Chiplink.scala 315:28 353:30]
  wire  _GEN_13 = _T_2 ? 1'h0 : tlAValid; // @[Chiplink.scala 350:30 351:16 317:27]
  wire  _GEN_14 = _T_2 | _GEN_11; // @[Chiplink.scala 350:30 352:16]
  wire  _GEN_16 = _T_2 ? reqReady : _GEN_12; // @[Chiplink.scala 315:28 350:30]
  wire  _GEN_17 = _T_1 | _GEN_13; // @[Chiplink.scala 347:25 348:16]
  wire  _GEN_18 = _T_1 ? 1'h0 : _GEN_16; // @[Chiplink.scala 347:25 349:16]
  assign io_req_ready = reqReady; // @[Chiplink.scala 324:18]
  assign io_rsp_valid = rspValid; // @[Chiplink.scala 325:18]
  assign io_rsp_bits_rdata = rspInfo_rdata; // @[Chiplink.scala 370:17]
  assign io_a_valid = tlAValid; // @[Chiplink.scala 326:16]
  assign io_a_bits_opcode = reqInfo_wmask == 8'h0 ? 3'h4 : 3'h1; // @[Chiplink.scala 329:35 330:17 337:17]
  assign io_a_bits_address = reqInfo_paddr; // @[Chiplink.scala 329:35 330:17 337:17]
  assign io_a_bits_mask = reqInfo_wmask == 8'h0 ? 8'hff : reqInfo_wmask; // @[Chiplink.scala 329:35 330:17 337:17]
  assign io_a_bits_data = reqInfo_wmask == 8'h0 ? 64'h0 : reqInfo_wdata; // @[Chiplink.scala 329:35 330:17 337:17]
  assign io_d_ready = tlDReady; // @[Chiplink.scala 327:16]
  always @(posedge clock) begin
    if (_T_1) begin // @[Chiplink.scala 361:25]
      reqInfo_paddr <= io_req_bits_paddr; // @[Chiplink.scala 362:15]
    end
    if (_T_1) begin // @[Chiplink.scala 361:25]
      reqInfo_wdata <= io_req_bits_wdata; // @[Chiplink.scala 362:15]
    end
    if (_T_1) begin // @[Chiplink.scala 361:25]
      reqInfo_wmask <= io_req_bits_wmask; // @[Chiplink.scala 362:15]
    end
    if (_T_3) begin // @[Chiplink.scala 366:23]
      if (isRead) begin // @[Chiplink.scala 367:27]
        rspInfo_rdata <= io_d_bits_data;
      end else begin
        rspInfo_rdata <= 64'h0;
      end
    end
    reqReady <= reset | _GEN_18; // @[Chiplink.scala 315:{28,28}]
    if (reset) begin // @[Chiplink.scala 316:28]
      rspValid <= 1'h0; // @[Chiplink.scala 316:28]
    end else if (!(_T_1)) begin // @[Chiplink.scala 347:25]
      if (!(_T_2)) begin // @[Chiplink.scala 350:30]
        rspValid <= _GEN_10;
      end
    end
    if (reset) begin // @[Chiplink.scala 317:27]
      tlAValid <= 1'h0; // @[Chiplink.scala 317:27]
    end else begin
      tlAValid <= _GEN_17;
    end
    if (reset) begin // @[Chiplink.scala 318:27]
      tlDReady <= 1'h0; // @[Chiplink.scala 318:27]
    end else if (!(_T_1)) begin // @[Chiplink.scala 347:25]
      tlDReady <= _GEN_14;
    end
    if (_T_1) begin // @[Chiplink.scala 361:25]
      isRead <= io_req_bits_wmask == 8'h0; // @[Chiplink.scala 363:14]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  reqInfo_paddr = _RAND_0[31:0];
  _RAND_1 = {2{`RANDOM}};
  reqInfo_wdata = _RAND_1[63:0];
  _RAND_2 = {1{`RANDOM}};
  reqInfo_wmask = _RAND_2[7:0];
  _RAND_3 = {2{`RANDOM}};
  rspInfo_rdata = _RAND_3[63:0];
  _RAND_4 = {1{`RANDOM}};
  reqReady = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  rspValid = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  tlAValid = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  tlDReady = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  isRead = _RAND_8[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module HexSpiSlave(
  input         io_hspi_clk,
  input         io_hspi_reset,
  input         io_hspi_rx_enable,
  input  [15:0] io_hspi_rx_data,
  output        io_hspi_tx_enable,
  output [15:0] io_hspi_tx_data,
  input         io_req_ready,
  output        io_req_valid,
  output [31:0] io_req_bits_paddr,
  output [63:0] io_req_bits_wdata,
  output [7:0]  io_req_bits_wmask,
  output        io_rsp_ready,
  input         io_rsp_valid,
  input  [63:0] io_rsp_bits_rdata
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [127:0] _RAND_3;
  reg [63:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
`endif // RANDOMIZE_REG_INIT
  reg [3:0] txCounter; // @[Chiplink.scala 386:30]
  reg [2:0] rxCounter; // @[Chiplink.scala 387:30]
  reg  isTxRxn; // @[Chiplink.scala 388:28]
  reg [111:0] reqInfo; // @[Chiplink.scala 390:24]
  reg [63:0] rspInfo; // @[Chiplink.scala 391:24]
  reg  reqValid; // @[Chiplink.scala 393:29]
  reg  rspReady; // @[Chiplink.scala 394:29]
  wire  _T_1 = ~isTxRxn; // @[Chiplink.scala 404:17]
  wire [2:0] _rxCounter_T_1 = rxCounter + 3'h1; // @[Chiplink.scala 406:32]
  wire [127:0] _reqInfo_T = {io_hspi_rx_data,reqInfo}; // @[Cat.scala 33:92]
  wire  _T_12 = io_req_ready & io_req_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_0 = _T_12 ? 1'h0 : reqValid; // @[Chiplink.scala 411:34 412:18 393:29]
  wire  _GEN_1 = _T_12 | rspReady; // @[Chiplink.scala 411:34 413:18 394:29]
  wire  _GEN_2 = rxCounter == 3'h7 & _T_1 | isTxRxn; // @[Chiplink.scala 408:50 409:17 388:28]
  wire  _GEN_3 = rxCounter == 3'h7 & _T_1 | _GEN_0; // @[Chiplink.scala 408:50 410:18]
  wire  _GEN_4 = rxCounter == 3'h7 & _T_1 ? rspReady : _GEN_1; // @[Chiplink.scala 394:29 408:50]
  wire [2:0] _GEN_5 = io_hspi_rx_enable ? _rxCounter_T_1 : rxCounter; // @[Chiplink.scala 403:32 406:19 387:30]
  wire  _GEN_7 = io_hspi_rx_enable ? isTxRxn : _GEN_2; // @[Chiplink.scala 388:28 403:32]
  wire  _GEN_9 = io_hspi_rx_enable ? rspReady : _GEN_4; // @[Chiplink.scala 394:29 403:32]
  wire  _T_13 = io_rsp_ready & io_rsp_valid; // @[Decoupled.scala 52:35]
  wire  _T_14 = txCounter < 4'h4; // @[Chiplink.scala 424:30]
  wire [3:0] _txCounter_T_1 = txCounter + 4'h1; // @[Chiplink.scala 425:32]
  wire [47:0] updateInfo = rspInfo[63:16]; // @[Chiplink.scala 426:34]
  wire [15:0] _GEN_15 = txCounter < 4'h4 ? updateInfo[15:0] : 16'h0; // @[Chiplink.scala 424:38 429:27]
  wire  _GEN_19 = _T_13 ? 1'h0 : _GEN_9; // @[Chiplink.scala 416:27 418:18]
  wire  _GEN_26 = io_hspi_rx_enable & ~io_hspi_reset; // @[Chiplink.scala 404:15]
  assign io_hspi_tx_enable = _T_13 | _T_14; // @[Chiplink.scala 416:27 423:27]
  assign io_hspi_tx_data = _T_13 ? io_rsp_bits_rdata[15:0] : _GEN_15; // @[Chiplink.scala 416:27 422:25]
  assign io_req_valid = reqValid; // @[Chiplink.scala 396:20]
  assign io_req_bits_paddr = reqInfo[111:80]; // @[Chiplink.scala 397:35]
  assign io_req_bits_wdata = reqInfo[79:16]; // @[Chiplink.scala 398:35]
  assign io_req_bits_wmask = reqInfo[15:8]; // @[Chiplink.scala 399:35]
  assign io_rsp_ready = rspReady; // @[Chiplink.scala 401:20]
  always @(posedge io_hspi_clk) begin
    if (io_hspi_reset) begin // @[Chiplink.scala 386:30]
      txCounter <= 4'hf; // @[Chiplink.scala 386:30]
    end else if (_T_13) begin // @[Chiplink.scala 416:27]
      txCounter <= 4'h1; // @[Chiplink.scala 420:19]
    end else if (txCounter < 4'h4) begin // @[Chiplink.scala 424:38]
      txCounter <= _txCounter_T_1; // @[Chiplink.scala 425:19]
    end
    if (io_hspi_reset) begin // @[Chiplink.scala 387:30]
      rxCounter <= 3'h0; // @[Chiplink.scala 387:30]
    end else if (_T_13) begin // @[Chiplink.scala 416:27]
      rxCounter <= _GEN_5;
    end else if (txCounter < 4'h4) begin // @[Chiplink.scala 424:38]
      rxCounter <= _GEN_5;
    end else if (txCounter == 4'h4 & isTxRxn) begin // @[Chiplink.scala 431:50]
      rxCounter <= 3'h0; // @[Chiplink.scala 433:19]
    end else begin
      rxCounter <= _GEN_5;
    end
    if (io_hspi_reset) begin // @[Chiplink.scala 388:28]
      isTxRxn <= 1'h0; // @[Chiplink.scala 388:28]
    end else if (_T_13) begin // @[Chiplink.scala 416:27]
      isTxRxn <= _GEN_7;
    end else if (txCounter < 4'h4) begin // @[Chiplink.scala 424:38]
      isTxRxn <= _GEN_7;
    end else if (txCounter == 4'h4 & isTxRxn) begin // @[Chiplink.scala 431:50]
      isTxRxn <= 1'h0; // @[Chiplink.scala 432:17]
    end else begin
      isTxRxn <= _GEN_7;
    end
    if (io_hspi_rx_enable) begin // @[Chiplink.scala 403:32]
      reqInfo <= _reqInfo_T[127:16]; // @[Chiplink.scala 407:17]
    end
    if (_T_13) begin // @[Chiplink.scala 416:27]
      rspInfo <= io_rsp_bits_rdata; // @[Chiplink.scala 419:17]
    end else if (txCounter < 4'h4) begin // @[Chiplink.scala 424:38]
      rspInfo <= {{16'd0}, updateInfo}; // @[Chiplink.scala 427:17]
    end
    if (io_hspi_reset) begin // @[Chiplink.scala 393:29]
      reqValid <= 1'h0; // @[Chiplink.scala 393:29]
    end else if (!(io_hspi_rx_enable)) begin // @[Chiplink.scala 403:32]
      reqValid <= _GEN_3;
    end
    rspReady <= io_hspi_reset | _GEN_19; // @[Chiplink.scala 394:{29,29}]
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_hspi_rx_enable & ~io_hspi_reset & ~(~isTxRxn)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Chiplink.scala:404 assert( ~isTxRxn )\n"); // @[Chiplink.scala 404:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~isTxRxn) & (io_hspi_rx_enable & ~io_hspi_reset)) begin
          $fatal; // @[Chiplink.scala 404:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_26 & ~(rxCounter < 3'h7)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Chiplink.scala:405 assert( rxCounter < 7.U )\n"); // @[Chiplink.scala 405:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(rxCounter < 3'h7) & _GEN_26) begin
          $fatal; // @[Chiplink.scala 405:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  txCounter = _RAND_0[3:0];
  _RAND_1 = {1{`RANDOM}};
  rxCounter = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  isTxRxn = _RAND_2[0:0];
  _RAND_3 = {4{`RANDOM}};
  reqInfo = _RAND_3[111:0];
  _RAND_4 = {2{`RANDOM}};
  rspInfo = _RAND_4[63:0];
  _RAND_5 = {1{`RANDOM}};
  reqValid = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  rspReady = _RAND_6[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module AsyncResetSynchronizerPrimitiveShiftReg_d2_i0(
  input   clock,
  input   reset,
  input   io_d,
  output  io_q
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
`endif // RANDOMIZE_REG_INIT
  reg  sync_0; // @[SynchronizerReg.scala 51:87]
  reg  sync_1; // @[SynchronizerReg.scala 51:87]
  assign io_q = sync_0; // @[SynchronizerReg.scala 59:8]
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[SynchronizerReg.scala 51:87]
      sync_0 <= 1'h0; // @[SynchronizerReg.scala 51:87]
    end else begin
      sync_0 <= sync_1; // @[SynchronizerReg.scala 57:10]
    end
  end
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[SynchronizerReg.scala 54:22]
      sync_1 <= 1'h0;
    end else begin
      sync_1 <= io_d;
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  sync_0 = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  sync_1 = _RAND_1[0:0];
`endif // RANDOMIZE_REG_INIT
  if (reset) begin
    sync_0 = 1'h0;
  end
  if (reset) begin
    sync_1 = 1'h0;
  end
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module AsyncResetSynchronizerShiftReg_w4_d2_i0(
  input        clock,
  input        reset,
  input  [3:0] io_d,
  output [3:0] io_q
);
  wire  output_chain_clock; // @[ShiftReg.scala 45:23]
  wire  output_chain_reset; // @[ShiftReg.scala 45:23]
  wire  output_chain_io_d; // @[ShiftReg.scala 45:23]
  wire  output_chain_io_q; // @[ShiftReg.scala 45:23]
  wire  output_chain_1_clock; // @[ShiftReg.scala 45:23]
  wire  output_chain_1_reset; // @[ShiftReg.scala 45:23]
  wire  output_chain_1_io_d; // @[ShiftReg.scala 45:23]
  wire  output_chain_1_io_q; // @[ShiftReg.scala 45:23]
  wire  output_chain_2_clock; // @[ShiftReg.scala 45:23]
  wire  output_chain_2_reset; // @[ShiftReg.scala 45:23]
  wire  output_chain_2_io_d; // @[ShiftReg.scala 45:23]
  wire  output_chain_2_io_q; // @[ShiftReg.scala 45:23]
  wire  output_chain_3_clock; // @[ShiftReg.scala 45:23]
  wire  output_chain_3_reset; // @[ShiftReg.scala 45:23]
  wire  output_chain_3_io_d; // @[ShiftReg.scala 45:23]
  wire  output_chain_3_io_q; // @[ShiftReg.scala 45:23]
  wire  output_1 = output_chain_1_io_q; // @[ShiftReg.scala 48:{24,24}]
  wire  output_0 = output_chain_io_q; // @[ShiftReg.scala 48:{24,24}]
  wire [1:0] io_q_lo = {output_1,output_0}; // @[Cat.scala 33:92]
  wire  output_3 = output_chain_3_io_q; // @[ShiftReg.scala 48:{24,24}]
  wire  output_2 = output_chain_2_io_q; // @[ShiftReg.scala 48:{24,24}]
  wire [1:0] io_q_hi = {output_3,output_2}; // @[Cat.scala 33:92]
  AsyncResetSynchronizerPrimitiveShiftReg_d2_i0 output_chain ( // @[ShiftReg.scala 45:23]
    .clock(output_chain_clock),
    .reset(output_chain_reset),
    .io_d(output_chain_io_d),
    .io_q(output_chain_io_q)
  );
  AsyncResetSynchronizerPrimitiveShiftReg_d2_i0 output_chain_1 ( // @[ShiftReg.scala 45:23]
    .clock(output_chain_1_clock),
    .reset(output_chain_1_reset),
    .io_d(output_chain_1_io_d),
    .io_q(output_chain_1_io_q)
  );
  AsyncResetSynchronizerPrimitiveShiftReg_d2_i0 output_chain_2 ( // @[ShiftReg.scala 45:23]
    .clock(output_chain_2_clock),
    .reset(output_chain_2_reset),
    .io_d(output_chain_2_io_d),
    .io_q(output_chain_2_io_q)
  );
  AsyncResetSynchronizerPrimitiveShiftReg_d2_i0 output_chain_3 ( // @[ShiftReg.scala 45:23]
    .clock(output_chain_3_clock),
    .reset(output_chain_3_reset),
    .io_d(output_chain_3_io_d),
    .io_q(output_chain_3_io_q)
  );
  assign io_q = {io_q_hi,io_q_lo}; // @[Cat.scala 33:92]
  assign output_chain_clock = clock;
  assign output_chain_reset = reset; // @[SynchronizerReg.scala 86:21]
  assign output_chain_io_d = io_d[0]; // @[SynchronizerReg.scala 87:41]
  assign output_chain_1_clock = clock;
  assign output_chain_1_reset = reset; // @[SynchronizerReg.scala 86:21]
  assign output_chain_1_io_d = io_d[1]; // @[SynchronizerReg.scala 87:41]
  assign output_chain_2_clock = clock;
  assign output_chain_2_reset = reset; // @[SynchronizerReg.scala 86:21]
  assign output_chain_2_io_d = io_d[2]; // @[SynchronizerReg.scala 87:41]
  assign output_chain_3_clock = clock;
  assign output_chain_3_reset = reset; // @[SynchronizerReg.scala 86:21]
  assign output_chain_3_io_d = io_d[3]; // @[SynchronizerReg.scala 87:41]
endmodule
module ClockCrossingReg_w104(
  input          clock,
  input  [103:0] io_d,
  output [103:0] io_q,
  input          io_en
);
`ifdef RANDOMIZE_REG_INIT
  reg [127:0] _RAND_0;
`endif // RANDOMIZE_REG_INIT
  reg [103:0] cdc_reg; // @[Reg.scala 19:16]
  assign io_q = cdc_reg; // @[SynchronizerReg.scala 202:8]
  always @(posedge clock) begin
    if (io_en) begin // @[Reg.scala 20:18]
      cdc_reg <= io_d; // @[Reg.scala 20:22]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {4{`RANDOM}};
  cdc_reg = _RAND_0[103:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module AsyncResetSynchronizerShiftReg_w1_d2_i0(
  input   clock,
  input   reset,
  input   io_d,
  output  io_q
);
  wire  output_chain_clock; // @[ShiftReg.scala 45:23]
  wire  output_chain_reset; // @[ShiftReg.scala 45:23]
  wire  output_chain_io_d; // @[ShiftReg.scala 45:23]
  wire  output_chain_io_q; // @[ShiftReg.scala 45:23]
  AsyncResetSynchronizerPrimitiveShiftReg_d2_i0 output_chain ( // @[ShiftReg.scala 45:23]
    .clock(output_chain_clock),
    .reset(output_chain_reset),
    .io_d(output_chain_io_d),
    .io_q(output_chain_io_q)
  );
  assign io_q = output_chain_io_q; // @[ShiftReg.scala 48:{24,24}]
  assign output_chain_clock = clock;
  assign output_chain_reset = reset; // @[SynchronizerReg.scala 86:21]
  assign output_chain_io_d = io_d; // @[SynchronizerReg.scala 87:41]
endmodule
module AsyncValidSync(
  input   io_in,
  output  io_out,
  input   clock,
  input   reset
);
  wire  io_out_sink_valid_0_clock; // @[ShiftReg.scala 45:23]
  wire  io_out_sink_valid_0_reset; // @[ShiftReg.scala 45:23]
  wire  io_out_sink_valid_0_io_d; // @[ShiftReg.scala 45:23]
  wire  io_out_sink_valid_0_io_q; // @[ShiftReg.scala 45:23]
  AsyncResetSynchronizerShiftReg_w1_d2_i0 io_out_sink_valid_0 ( // @[ShiftReg.scala 45:23]
    .clock(io_out_sink_valid_0_clock),
    .reset(io_out_sink_valid_0_reset),
    .io_d(io_out_sink_valid_0_io_d),
    .io_q(io_out_sink_valid_0_io_q)
  );
  assign io_out = io_out_sink_valid_0_io_q; // @[ShiftReg.scala 48:{24,24}]
  assign io_out_sink_valid_0_clock = clock;
  assign io_out_sink_valid_0_reset = reset;
  assign io_out_sink_valid_0_io_d = io_in; // @[ShiftReg.scala 47:16]
endmodule
module AsyncQueueSink(
  input         clock,
  input         reset,
  input         io_deq_ready,
  output        io_deq_valid,
  output [31:0] io_deq_bits_paddr,
  output [63:0] io_deq_bits_wdata,
  output [7:0]  io_deq_bits_wmask,
  input  [31:0] io_async_mem_0_paddr,
  input  [63:0] io_async_mem_0_wdata,
  input  [7:0]  io_async_mem_0_wmask,
  input  [31:0] io_async_mem_1_paddr,
  input  [63:0] io_async_mem_1_wdata,
  input  [7:0]  io_async_mem_1_wmask,
  input  [31:0] io_async_mem_2_paddr,
  input  [63:0] io_async_mem_2_wdata,
  input  [7:0]  io_async_mem_2_wmask,
  input  [31:0] io_async_mem_3_paddr,
  input  [63:0] io_async_mem_3_wdata,
  input  [7:0]  io_async_mem_3_wmask,
  input  [31:0] io_async_mem_4_paddr,
  input  [63:0] io_async_mem_4_wdata,
  input  [7:0]  io_async_mem_4_wmask,
  input  [31:0] io_async_mem_5_paddr,
  input  [63:0] io_async_mem_5_wdata,
  input  [7:0]  io_async_mem_5_wmask,
  input  [31:0] io_async_mem_6_paddr,
  input  [63:0] io_async_mem_6_wdata,
  input  [7:0]  io_async_mem_6_wmask,
  input  [31:0] io_async_mem_7_paddr,
  input  [63:0] io_async_mem_7_wdata,
  input  [7:0]  io_async_mem_7_wmask,
  output [3:0]  io_async_ridx,
  input  [3:0]  io_async_widx,
  output        io_async_safe_ridx_valid,
  input         io_async_safe_widx_valid,
  input         io_async_safe_source_reset_n,
  output        io_async_safe_sink_reset_n
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
`endif // RANDOMIZE_REG_INIT
  wire  widx_widx_gray_clock; // @[ShiftReg.scala 45:23]
  wire  widx_widx_gray_reset; // @[ShiftReg.scala 45:23]
  wire [3:0] widx_widx_gray_io_d; // @[ShiftReg.scala 45:23]
  wire [3:0] widx_widx_gray_io_q; // @[ShiftReg.scala 45:23]
  wire  io_deq_bits_deq_bits_reg_clock; // @[SynchronizerReg.scala 207:25]
  wire [103:0] io_deq_bits_deq_bits_reg_io_d; // @[SynchronizerReg.scala 207:25]
  wire [103:0] io_deq_bits_deq_bits_reg_io_q; // @[SynchronizerReg.scala 207:25]
  wire  io_deq_bits_deq_bits_reg_io_en; // @[SynchronizerReg.scala 207:25]
  wire  sink_valid_0_io_in; // @[AsyncQueue.scala 168:33]
  wire  sink_valid_0_io_out; // @[AsyncQueue.scala 168:33]
  wire  sink_valid_0_clock; // @[AsyncQueue.scala 168:33]
  wire  sink_valid_0_reset; // @[AsyncQueue.scala 168:33]
  wire  sink_valid_1_io_in; // @[AsyncQueue.scala 169:33]
  wire  sink_valid_1_io_out; // @[AsyncQueue.scala 169:33]
  wire  sink_valid_1_clock; // @[AsyncQueue.scala 169:33]
  wire  sink_valid_1_reset; // @[AsyncQueue.scala 169:33]
  wire  source_extend_io_in; // @[AsyncQueue.scala 171:31]
  wire  source_extend_io_out; // @[AsyncQueue.scala 171:31]
  wire  source_extend_clock; // @[AsyncQueue.scala 171:31]
  wire  source_extend_reset; // @[AsyncQueue.scala 171:31]
  wire  source_valid_io_in; // @[AsyncQueue.scala 172:31]
  wire  source_valid_io_out; // @[AsyncQueue.scala 172:31]
  wire  source_valid_clock; // @[AsyncQueue.scala 172:31]
  wire  source_valid_reset; // @[AsyncQueue.scala 172:31]
  wire  _ridx_T_1 = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire  source_ready = source_valid_io_out;
  wire  _ridx_T_2 = ~source_ready; // @[AsyncQueue.scala 144:79]
  reg [3:0] ridx_ridx_bin; // @[AsyncQueue.scala 52:25]
  wire [3:0] _GEN_24 = {{3'd0}, _ridx_T_1}; // @[AsyncQueue.scala 53:43]
  wire [3:0] _ridx_incremented_T_1 = ridx_ridx_bin + _GEN_24; // @[AsyncQueue.scala 53:43]
  wire [3:0] ridx_incremented = _ridx_T_2 ? 4'h0 : _ridx_incremented_T_1; // @[AsyncQueue.scala 53:23]
  wire [3:0] _GEN_25 = {{1'd0}, ridx_incremented[3:1]}; // @[AsyncQueue.scala 54:17]
  wire [3:0] ridx = ridx_incremented ^ _GEN_25; // @[AsyncQueue.scala 54:17]
  wire [3:0] widx = widx_widx_gray_io_q; // @[ShiftReg.scala 48:{24,24}]
  wire [2:0] _index_T_2 = {ridx[3], 2'h0}; // @[AsyncQueue.scala 152:75]
  wire [2:0] index = ridx[2:0] ^ _index_T_2; // @[AsyncQueue.scala 152:55]
  wire [31:0] _GEN_1 = 3'h1 == index ? io_async_mem_1_paddr : io_async_mem_0_paddr; // @[SynchronizerReg.scala 209:{24,24}]
  wire [31:0] _GEN_2 = 3'h2 == index ? io_async_mem_2_paddr : _GEN_1; // @[SynchronizerReg.scala 209:{24,24}]
  wire [31:0] _GEN_3 = 3'h3 == index ? io_async_mem_3_paddr : _GEN_2; // @[SynchronizerReg.scala 209:{24,24}]
  wire [31:0] _GEN_4 = 3'h4 == index ? io_async_mem_4_paddr : _GEN_3; // @[SynchronizerReg.scala 209:{24,24}]
  wire [31:0] _GEN_5 = 3'h5 == index ? io_async_mem_5_paddr : _GEN_4; // @[SynchronizerReg.scala 209:{24,24}]
  wire [31:0] _GEN_6 = 3'h6 == index ? io_async_mem_6_paddr : _GEN_5; // @[SynchronizerReg.scala 209:{24,24}]
  wire [31:0] _GEN_7 = 3'h7 == index ? io_async_mem_7_paddr : _GEN_6; // @[SynchronizerReg.scala 209:{24,24}]
  wire [63:0] _GEN_9 = 3'h1 == index ? io_async_mem_1_wdata : io_async_mem_0_wdata; // @[SynchronizerReg.scala 209:{24,24}]
  wire [63:0] _GEN_10 = 3'h2 == index ? io_async_mem_2_wdata : _GEN_9; // @[SynchronizerReg.scala 209:{24,24}]
  wire [63:0] _GEN_11 = 3'h3 == index ? io_async_mem_3_wdata : _GEN_10; // @[SynchronizerReg.scala 209:{24,24}]
  wire [63:0] _GEN_12 = 3'h4 == index ? io_async_mem_4_wdata : _GEN_11; // @[SynchronizerReg.scala 209:{24,24}]
  wire [63:0] _GEN_13 = 3'h5 == index ? io_async_mem_5_wdata : _GEN_12; // @[SynchronizerReg.scala 209:{24,24}]
  wire [63:0] _GEN_14 = 3'h6 == index ? io_async_mem_6_wdata : _GEN_13; // @[SynchronizerReg.scala 209:{24,24}]
  wire [63:0] _GEN_15 = 3'h7 == index ? io_async_mem_7_wdata : _GEN_14; // @[SynchronizerReg.scala 209:{24,24}]
  wire [95:0] io_deq_bits_deq_bits_reg_io_d_hi = {_GEN_7,_GEN_15}; // @[SynchronizerReg.scala 209:24]
  wire [7:0] _GEN_17 = 3'h1 == index ? io_async_mem_1_wmask : io_async_mem_0_wmask; // @[SynchronizerReg.scala 209:{24,24}]
  wire [7:0] _GEN_18 = 3'h2 == index ? io_async_mem_2_wmask : _GEN_17; // @[SynchronizerReg.scala 209:{24,24}]
  wire [7:0] _GEN_19 = 3'h3 == index ? io_async_mem_3_wmask : _GEN_18; // @[SynchronizerReg.scala 209:{24,24}]
  wire [7:0] _GEN_20 = 3'h4 == index ? io_async_mem_4_wmask : _GEN_19; // @[SynchronizerReg.scala 209:{24,24}]
  wire [7:0] _GEN_21 = 3'h5 == index ? io_async_mem_5_wmask : _GEN_20; // @[SynchronizerReg.scala 209:{24,24}]
  wire [7:0] _GEN_22 = 3'h6 == index ? io_async_mem_6_wmask : _GEN_21; // @[SynchronizerReg.scala 209:{24,24}]
  wire [7:0] _GEN_23 = 3'h7 == index ? io_async_mem_7_wmask : _GEN_22; // @[SynchronizerReg.scala 209:{24,24}]
  wire [103:0] _io_deq_bits_WIRE_1 = io_deq_bits_deq_bits_reg_io_q;
  reg  valid_reg; // @[AsyncQueue.scala 161:56]
  reg [3:0] ridx_gray; // @[AsyncQueue.scala 164:55]
  AsyncResetSynchronizerShiftReg_w4_d2_i0 widx_widx_gray ( // @[ShiftReg.scala 45:23]
    .clock(widx_widx_gray_clock),
    .reset(widx_widx_gray_reset),
    .io_d(widx_widx_gray_io_d),
    .io_q(widx_widx_gray_io_q)
  );
  ClockCrossingReg_w104 io_deq_bits_deq_bits_reg ( // @[SynchronizerReg.scala 207:25]
    .clock(io_deq_bits_deq_bits_reg_clock),
    .io_d(io_deq_bits_deq_bits_reg_io_d),
    .io_q(io_deq_bits_deq_bits_reg_io_q),
    .io_en(io_deq_bits_deq_bits_reg_io_en)
  );
  AsyncValidSync sink_valid_0 ( // @[AsyncQueue.scala 168:33]
    .io_in(sink_valid_0_io_in),
    .io_out(sink_valid_0_io_out),
    .clock(sink_valid_0_clock),
    .reset(sink_valid_0_reset)
  );
  AsyncValidSync sink_valid_1 ( // @[AsyncQueue.scala 169:33]
    .io_in(sink_valid_1_io_in),
    .io_out(sink_valid_1_io_out),
    .clock(sink_valid_1_clock),
    .reset(sink_valid_1_reset)
  );
  AsyncValidSync source_extend ( // @[AsyncQueue.scala 171:31]
    .io_in(source_extend_io_in),
    .io_out(source_extend_io_out),
    .clock(source_extend_clock),
    .reset(source_extend_reset)
  );
  AsyncValidSync source_valid ( // @[AsyncQueue.scala 172:31]
    .io_in(source_valid_io_in),
    .io_out(source_valid_io_out),
    .clock(source_valid_clock),
    .reset(source_valid_reset)
  );
  assign io_deq_valid = valid_reg & source_ready; // @[AsyncQueue.scala 162:29]
  assign io_deq_bits_paddr = _io_deq_bits_WIRE_1[103:72]; // @[SynchronizerReg.scala 211:26]
  assign io_deq_bits_wdata = _io_deq_bits_WIRE_1[71:8]; // @[SynchronizerReg.scala 211:26]
  assign io_deq_bits_wmask = _io_deq_bits_WIRE_1[7:0]; // @[SynchronizerReg.scala 211:26]
  assign io_async_ridx = ridx_gray; // @[AsyncQueue.scala 165:17]
  assign io_async_safe_ridx_valid = sink_valid_1_io_out; // @[AsyncQueue.scala 185:20]
  assign io_async_safe_sink_reset_n = ~reset; // @[AsyncQueue.scala 189:25]
  assign widx_widx_gray_clock = clock;
  assign widx_widx_gray_reset = reset;
  assign widx_widx_gray_io_d = io_async_widx; // @[ShiftReg.scala 47:16]
  assign io_deq_bits_deq_bits_reg_clock = clock;
  assign io_deq_bits_deq_bits_reg_io_d = {io_deq_bits_deq_bits_reg_io_d_hi,_GEN_23}; // @[SynchronizerReg.scala 209:24]
  assign io_deq_bits_deq_bits_reg_io_en = source_ready & ridx != widx; // @[AsyncQueue.scala 146:28]
  assign sink_valid_0_io_in = 1'h1; // @[AsyncQueue.scala 183:24]
  assign sink_valid_0_clock = clock; // @[AsyncQueue.scala 178:25]
  assign sink_valid_0_reset = reset | ~io_async_safe_source_reset_n; // @[AsyncQueue.scala 173:66]
  assign sink_valid_1_io_in = sink_valid_0_io_out; // @[AsyncQueue.scala 184:24]
  assign sink_valid_1_clock = clock; // @[AsyncQueue.scala 179:25]
  assign sink_valid_1_reset = reset | ~io_async_safe_source_reset_n; // @[AsyncQueue.scala 174:66]
  assign source_extend_io_in = io_async_safe_widx_valid; // @[AsyncQueue.scala 186:25]
  assign source_extend_clock = clock; // @[AsyncQueue.scala 180:25]
  assign source_extend_reset = reset | ~io_async_safe_source_reset_n; // @[AsyncQueue.scala 175:66]
  assign source_valid_io_in = source_extend_io_out; // @[AsyncQueue.scala 187:24]
  assign source_valid_clock = clock; // @[AsyncQueue.scala 181:25]
  assign source_valid_reset = reset; // @[AsyncQueue.scala 176:34]
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[AsyncQueue.scala 53:23]
      ridx_ridx_bin <= 4'h0;
    end else if (_ridx_T_2) begin
      ridx_ridx_bin <= 4'h0;
    end else begin
      ridx_ridx_bin <= _ridx_incremented_T_1;
    end
  end
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[AsyncQueue.scala 146:28]
      valid_reg <= 1'h0;
    end else begin
      valid_reg <= source_ready & ridx != widx;
    end
  end
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[AsyncQueue.scala 54:17]
      ridx_gray <= 4'h0;
    end else begin
      ridx_gray <= ridx_incremented ^ _GEN_25;
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  ridx_ridx_bin = _RAND_0[3:0];
  _RAND_1 = {1{`RANDOM}};
  valid_reg = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  ridx_gray = _RAND_2[3:0];
`endif // RANDOMIZE_REG_INIT
  if (reset) begin
    ridx_ridx_bin = 4'h0;
  end
  if (reset) begin
    valid_reg = 1'h0;
  end
  if (reset) begin
    ridx_gray = 4'h0;
  end
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module AsyncQueueSource(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [63:0] io_enq_bits_rdata,
  output [63:0] io_async_mem_0_rdata,
  output [63:0] io_async_mem_1_rdata,
  output [63:0] io_async_mem_2_rdata,
  output [63:0] io_async_mem_3_rdata,
  output [63:0] io_async_mem_4_rdata,
  output [63:0] io_async_mem_5_rdata,
  output [63:0] io_async_mem_6_rdata,
  output [63:0] io_async_mem_7_rdata,
  input  [3:0]  io_async_ridx,
  output [3:0]  io_async_widx,
  input         io_async_safe_ridx_valid,
  output        io_async_safe_widx_valid,
  output        io_async_safe_source_reset_n,
  input         io_async_safe_sink_reset_n
);
`ifdef RANDOMIZE_REG_INIT
  reg [63:0] _RAND_0;
  reg [63:0] _RAND_1;
  reg [63:0] _RAND_2;
  reg [63:0] _RAND_3;
  reg [63:0] _RAND_4;
  reg [63:0] _RAND_5;
  reg [63:0] _RAND_6;
  reg [63:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
`endif // RANDOMIZE_REG_INIT
  wire  ridx_ridx_gray_clock; // @[ShiftReg.scala 45:23]
  wire  ridx_ridx_gray_reset; // @[ShiftReg.scala 45:23]
  wire [3:0] ridx_ridx_gray_io_d; // @[ShiftReg.scala 45:23]
  wire [3:0] ridx_ridx_gray_io_q; // @[ShiftReg.scala 45:23]
  wire  source_valid_0_io_in; // @[AsyncQueue.scala 100:32]
  wire  source_valid_0_io_out; // @[AsyncQueue.scala 100:32]
  wire  source_valid_0_clock; // @[AsyncQueue.scala 100:32]
  wire  source_valid_0_reset; // @[AsyncQueue.scala 100:32]
  wire  source_valid_1_io_in; // @[AsyncQueue.scala 101:32]
  wire  source_valid_1_io_out; // @[AsyncQueue.scala 101:32]
  wire  source_valid_1_clock; // @[AsyncQueue.scala 101:32]
  wire  source_valid_1_reset; // @[AsyncQueue.scala 101:32]
  wire  sink_extend_io_in; // @[AsyncQueue.scala 103:30]
  wire  sink_extend_io_out; // @[AsyncQueue.scala 103:30]
  wire  sink_extend_clock; // @[AsyncQueue.scala 103:30]
  wire  sink_extend_reset; // @[AsyncQueue.scala 103:30]
  wire  sink_valid_io_in; // @[AsyncQueue.scala 104:30]
  wire  sink_valid_io_out; // @[AsyncQueue.scala 104:30]
  wire  sink_valid_clock; // @[AsyncQueue.scala 104:30]
  wire  sink_valid_reset; // @[AsyncQueue.scala 104:30]
  reg [63:0] mem_0_rdata; // @[AsyncQueue.scala 80:16]
  reg [63:0] mem_1_rdata; // @[AsyncQueue.scala 80:16]
  reg [63:0] mem_2_rdata; // @[AsyncQueue.scala 80:16]
  reg [63:0] mem_3_rdata; // @[AsyncQueue.scala 80:16]
  reg [63:0] mem_4_rdata; // @[AsyncQueue.scala 80:16]
  reg [63:0] mem_5_rdata; // @[AsyncQueue.scala 80:16]
  reg [63:0] mem_6_rdata; // @[AsyncQueue.scala 80:16]
  reg [63:0] mem_7_rdata; // @[AsyncQueue.scala 80:16]
  wire  _widx_T_1 = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  sink_ready = sink_valid_io_out;
  wire  _widx_T_2 = ~sink_ready; // @[AsyncQueue.scala 81:79]
  reg [3:0] widx_widx_bin; // @[AsyncQueue.scala 52:25]
  wire [3:0] _GEN_16 = {{3'd0}, _widx_T_1}; // @[AsyncQueue.scala 53:43]
  wire [3:0] _widx_incremented_T_1 = widx_widx_bin + _GEN_16; // @[AsyncQueue.scala 53:43]
  wire [3:0] widx_incremented = _widx_T_2 ? 4'h0 : _widx_incremented_T_1; // @[AsyncQueue.scala 53:23]
  wire [3:0] _GEN_17 = {{1'd0}, widx_incremented[3:1]}; // @[AsyncQueue.scala 54:17]
  wire [3:0] widx = widx_incremented ^ _GEN_17; // @[AsyncQueue.scala 54:17]
  wire [3:0] ridx = ridx_ridx_gray_io_q; // @[ShiftReg.scala 48:{24,24}]
  wire [3:0] _ready_T = ridx ^ 4'hc; // @[AsyncQueue.scala 83:44]
  wire [2:0] _index_T_2 = {io_async_widx[3], 2'h0}; // @[AsyncQueue.scala 85:93]
  wire [2:0] index = io_async_widx[2:0] ^ _index_T_2; // @[AsyncQueue.scala 85:64]
  reg  ready_reg; // @[AsyncQueue.scala 88:56]
  reg [3:0] widx_gray; // @[AsyncQueue.scala 91:55]
  AsyncResetSynchronizerShiftReg_w4_d2_i0 ridx_ridx_gray ( // @[ShiftReg.scala 45:23]
    .clock(ridx_ridx_gray_clock),
    .reset(ridx_ridx_gray_reset),
    .io_d(ridx_ridx_gray_io_d),
    .io_q(ridx_ridx_gray_io_q)
  );
  AsyncValidSync source_valid_0 ( // @[AsyncQueue.scala 100:32]
    .io_in(source_valid_0_io_in),
    .io_out(source_valid_0_io_out),
    .clock(source_valid_0_clock),
    .reset(source_valid_0_reset)
  );
  AsyncValidSync source_valid_1 ( // @[AsyncQueue.scala 101:32]
    .io_in(source_valid_1_io_in),
    .io_out(source_valid_1_io_out),
    .clock(source_valid_1_clock),
    .reset(source_valid_1_reset)
  );
  AsyncValidSync sink_extend ( // @[AsyncQueue.scala 103:30]
    .io_in(sink_extend_io_in),
    .io_out(sink_extend_io_out),
    .clock(sink_extend_clock),
    .reset(sink_extend_reset)
  );
  AsyncValidSync sink_valid ( // @[AsyncQueue.scala 104:30]
    .io_in(sink_valid_io_in),
    .io_out(sink_valid_io_out),
    .clock(sink_valid_clock),
    .reset(sink_valid_reset)
  );
  assign io_enq_ready = ready_reg & sink_ready; // @[AsyncQueue.scala 89:29]
  assign io_async_mem_0_rdata = mem_0_rdata; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_1_rdata = mem_1_rdata; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_2_rdata = mem_2_rdata; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_3_rdata = mem_3_rdata; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_4_rdata = mem_4_rdata; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_5_rdata = mem_5_rdata; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_6_rdata = mem_6_rdata; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_7_rdata = mem_7_rdata; // @[AsyncQueue.scala 96:31]
  assign io_async_widx = widx_gray; // @[AsyncQueue.scala 92:17]
  assign io_async_safe_widx_valid = source_valid_1_io_out; // @[AsyncQueue.scala 117:20]
  assign io_async_safe_source_reset_n = ~reset; // @[AsyncQueue.scala 121:27]
  assign ridx_ridx_gray_clock = clock;
  assign ridx_ridx_gray_reset = reset;
  assign ridx_ridx_gray_io_d = io_async_ridx; // @[ShiftReg.scala 47:16]
  assign source_valid_0_io_in = 1'h1; // @[AsyncQueue.scala 115:26]
  assign source_valid_0_clock = clock; // @[AsyncQueue.scala 110:26]
  assign source_valid_0_reset = reset | ~io_async_safe_sink_reset_n; // @[AsyncQueue.scala 105:65]
  assign source_valid_1_io_in = source_valid_0_io_out; // @[AsyncQueue.scala 116:26]
  assign source_valid_1_clock = clock; // @[AsyncQueue.scala 111:26]
  assign source_valid_1_reset = reset | ~io_async_safe_sink_reset_n; // @[AsyncQueue.scala 106:65]
  assign sink_extend_io_in = io_async_safe_ridx_valid; // @[AsyncQueue.scala 118:23]
  assign sink_extend_clock = clock; // @[AsyncQueue.scala 112:26]
  assign sink_extend_reset = reset | ~io_async_safe_sink_reset_n; // @[AsyncQueue.scala 107:65]
  assign sink_valid_io_in = sink_extend_io_out; // @[AsyncQueue.scala 119:22]
  assign sink_valid_clock = clock; // @[AsyncQueue.scala 113:26]
  assign sink_valid_reset = reset; // @[AsyncQueue.scala 108:35]
  always @(posedge clock) begin
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h0 == index) begin // @[AsyncQueue.scala 86:37]
        mem_0_rdata <= io_enq_bits_rdata; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h1 == index) begin // @[AsyncQueue.scala 86:37]
        mem_1_rdata <= io_enq_bits_rdata; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h2 == index) begin // @[AsyncQueue.scala 86:37]
        mem_2_rdata <= io_enq_bits_rdata; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h3 == index) begin // @[AsyncQueue.scala 86:37]
        mem_3_rdata <= io_enq_bits_rdata; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h4 == index) begin // @[AsyncQueue.scala 86:37]
        mem_4_rdata <= io_enq_bits_rdata; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h5 == index) begin // @[AsyncQueue.scala 86:37]
        mem_5_rdata <= io_enq_bits_rdata; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h6 == index) begin // @[AsyncQueue.scala 86:37]
        mem_6_rdata <= io_enq_bits_rdata; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h7 == index) begin // @[AsyncQueue.scala 86:37]
        mem_7_rdata <= io_enq_bits_rdata; // @[AsyncQueue.scala 86:37]
      end
    end
  end
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[AsyncQueue.scala 53:23]
      widx_widx_bin <= 4'h0;
    end else if (_widx_T_2) begin
      widx_widx_bin <= 4'h0;
    end else begin
      widx_widx_bin <= _widx_incremented_T_1;
    end
  end
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[AsyncQueue.scala 83:26]
      ready_reg <= 1'h0;
    end else begin
      ready_reg <= sink_ready & widx != _ready_T;
    end
  end
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[AsyncQueue.scala 54:17]
      widx_gray <= 4'h0;
    end else begin
      widx_gray <= widx_incremented ^ _GEN_17;
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {2{`RANDOM}};
  mem_0_rdata = _RAND_0[63:0];
  _RAND_1 = {2{`RANDOM}};
  mem_1_rdata = _RAND_1[63:0];
  _RAND_2 = {2{`RANDOM}};
  mem_2_rdata = _RAND_2[63:0];
  _RAND_3 = {2{`RANDOM}};
  mem_3_rdata = _RAND_3[63:0];
  _RAND_4 = {2{`RANDOM}};
  mem_4_rdata = _RAND_4[63:0];
  _RAND_5 = {2{`RANDOM}};
  mem_5_rdata = _RAND_5[63:0];
  _RAND_6 = {2{`RANDOM}};
  mem_6_rdata = _RAND_6[63:0];
  _RAND_7 = {2{`RANDOM}};
  mem_7_rdata = _RAND_7[63:0];
  _RAND_8 = {1{`RANDOM}};
  widx_widx_bin = _RAND_8[3:0];
  _RAND_9 = {1{`RANDOM}};
  ready_reg = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  widx_gray = _RAND_10[3:0];
`endif // RANDOMIZE_REG_INIT
  if (reset) begin
    widx_widx_bin = 4'h0;
  end
  if (reset) begin
    ready_reg = 1'h0;
  end
  if (reset) begin
    widx_gray = 4'h0;
  end
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module ClockCrossingReg_w64(
  input         clock,
  input  [63:0] io_d,
  output [63:0] io_q,
  input         io_en
);
`ifdef RANDOMIZE_REG_INIT
  reg [63:0] _RAND_0;
`endif // RANDOMIZE_REG_INIT
  reg [63:0] cdc_reg; // @[Reg.scala 19:16]
  assign io_q = cdc_reg; // @[SynchronizerReg.scala 202:8]
  always @(posedge clock) begin
    if (io_en) begin // @[Reg.scala 20:18]
      cdc_reg <= io_d; // @[Reg.scala 20:22]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {2{`RANDOM}};
  cdc_reg = _RAND_0[63:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module AsyncQueueSink_1(
  input         clock,
  input         reset,
  input         io_deq_ready,
  output        io_deq_valid,
  output [63:0] io_deq_bits_rdata,
  input  [63:0] io_async_mem_0_rdata,
  input  [63:0] io_async_mem_1_rdata,
  input  [63:0] io_async_mem_2_rdata,
  input  [63:0] io_async_mem_3_rdata,
  input  [63:0] io_async_mem_4_rdata,
  input  [63:0] io_async_mem_5_rdata,
  input  [63:0] io_async_mem_6_rdata,
  input  [63:0] io_async_mem_7_rdata,
  output [3:0]  io_async_ridx,
  input  [3:0]  io_async_widx,
  output        io_async_safe_ridx_valid,
  input         io_async_safe_widx_valid,
  input         io_async_safe_source_reset_n,
  output        io_async_safe_sink_reset_n
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
`endif // RANDOMIZE_REG_INIT
  wire  widx_widx_gray_clock; // @[ShiftReg.scala 45:23]
  wire  widx_widx_gray_reset; // @[ShiftReg.scala 45:23]
  wire [3:0] widx_widx_gray_io_d; // @[ShiftReg.scala 45:23]
  wire [3:0] widx_widx_gray_io_q; // @[ShiftReg.scala 45:23]
  wire  io_deq_bits_deq_bits_reg_clock; // @[SynchronizerReg.scala 207:25]
  wire [63:0] io_deq_bits_deq_bits_reg_io_d; // @[SynchronizerReg.scala 207:25]
  wire [63:0] io_deq_bits_deq_bits_reg_io_q; // @[SynchronizerReg.scala 207:25]
  wire  io_deq_bits_deq_bits_reg_io_en; // @[SynchronizerReg.scala 207:25]
  wire  sink_valid_0_io_in; // @[AsyncQueue.scala 168:33]
  wire  sink_valid_0_io_out; // @[AsyncQueue.scala 168:33]
  wire  sink_valid_0_clock; // @[AsyncQueue.scala 168:33]
  wire  sink_valid_0_reset; // @[AsyncQueue.scala 168:33]
  wire  sink_valid_1_io_in; // @[AsyncQueue.scala 169:33]
  wire  sink_valid_1_io_out; // @[AsyncQueue.scala 169:33]
  wire  sink_valid_1_clock; // @[AsyncQueue.scala 169:33]
  wire  sink_valid_1_reset; // @[AsyncQueue.scala 169:33]
  wire  source_extend_io_in; // @[AsyncQueue.scala 171:31]
  wire  source_extend_io_out; // @[AsyncQueue.scala 171:31]
  wire  source_extend_clock; // @[AsyncQueue.scala 171:31]
  wire  source_extend_reset; // @[AsyncQueue.scala 171:31]
  wire  source_valid_io_in; // @[AsyncQueue.scala 172:31]
  wire  source_valid_io_out; // @[AsyncQueue.scala 172:31]
  wire  source_valid_clock; // @[AsyncQueue.scala 172:31]
  wire  source_valid_reset; // @[AsyncQueue.scala 172:31]
  wire  _ridx_T_1 = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire  source_ready = source_valid_io_out;
  wire  _ridx_T_2 = ~source_ready; // @[AsyncQueue.scala 144:79]
  reg [3:0] ridx_ridx_bin; // @[AsyncQueue.scala 52:25]
  wire [3:0] _GEN_8 = {{3'd0}, _ridx_T_1}; // @[AsyncQueue.scala 53:43]
  wire [3:0] _ridx_incremented_T_1 = ridx_ridx_bin + _GEN_8; // @[AsyncQueue.scala 53:43]
  wire [3:0] ridx_incremented = _ridx_T_2 ? 4'h0 : _ridx_incremented_T_1; // @[AsyncQueue.scala 53:23]
  wire [3:0] _GEN_9 = {{1'd0}, ridx_incremented[3:1]}; // @[AsyncQueue.scala 54:17]
  wire [3:0] ridx = ridx_incremented ^ _GEN_9; // @[AsyncQueue.scala 54:17]
  wire [3:0] widx = widx_widx_gray_io_q; // @[ShiftReg.scala 48:{24,24}]
  wire [2:0] _index_T_2 = {ridx[3], 2'h0}; // @[AsyncQueue.scala 152:75]
  wire [2:0] index = ridx[2:0] ^ _index_T_2; // @[AsyncQueue.scala 152:55]
  wire [63:0] _GEN_1 = 3'h1 == index ? io_async_mem_1_rdata : io_async_mem_0_rdata; // @[SynchronizerReg.scala 209:{18,18}]
  wire [63:0] _GEN_2 = 3'h2 == index ? io_async_mem_2_rdata : _GEN_1; // @[SynchronizerReg.scala 209:{18,18}]
  wire [63:0] _GEN_3 = 3'h3 == index ? io_async_mem_3_rdata : _GEN_2; // @[SynchronizerReg.scala 209:{18,18}]
  wire [63:0] _GEN_4 = 3'h4 == index ? io_async_mem_4_rdata : _GEN_3; // @[SynchronizerReg.scala 209:{18,18}]
  wire [63:0] _GEN_5 = 3'h5 == index ? io_async_mem_5_rdata : _GEN_4; // @[SynchronizerReg.scala 209:{18,18}]
  wire [63:0] _GEN_6 = 3'h6 == index ? io_async_mem_6_rdata : _GEN_5; // @[SynchronizerReg.scala 209:{18,18}]
  reg  valid_reg; // @[AsyncQueue.scala 161:56]
  reg [3:0] ridx_gray; // @[AsyncQueue.scala 164:55]
  AsyncResetSynchronizerShiftReg_w4_d2_i0 widx_widx_gray ( // @[ShiftReg.scala 45:23]
    .clock(widx_widx_gray_clock),
    .reset(widx_widx_gray_reset),
    .io_d(widx_widx_gray_io_d),
    .io_q(widx_widx_gray_io_q)
  );
  ClockCrossingReg_w64 io_deq_bits_deq_bits_reg ( // @[SynchronizerReg.scala 207:25]
    .clock(io_deq_bits_deq_bits_reg_clock),
    .io_d(io_deq_bits_deq_bits_reg_io_d),
    .io_q(io_deq_bits_deq_bits_reg_io_q),
    .io_en(io_deq_bits_deq_bits_reg_io_en)
  );
  AsyncValidSync sink_valid_0 ( // @[AsyncQueue.scala 168:33]
    .io_in(sink_valid_0_io_in),
    .io_out(sink_valid_0_io_out),
    .clock(sink_valid_0_clock),
    .reset(sink_valid_0_reset)
  );
  AsyncValidSync sink_valid_1 ( // @[AsyncQueue.scala 169:33]
    .io_in(sink_valid_1_io_in),
    .io_out(sink_valid_1_io_out),
    .clock(sink_valid_1_clock),
    .reset(sink_valid_1_reset)
  );
  AsyncValidSync source_extend ( // @[AsyncQueue.scala 171:31]
    .io_in(source_extend_io_in),
    .io_out(source_extend_io_out),
    .clock(source_extend_clock),
    .reset(source_extend_reset)
  );
  AsyncValidSync source_valid ( // @[AsyncQueue.scala 172:31]
    .io_in(source_valid_io_in),
    .io_out(source_valid_io_out),
    .clock(source_valid_clock),
    .reset(source_valid_reset)
  );
  assign io_deq_valid = valid_reg & source_ready; // @[AsyncQueue.scala 162:29]
  assign io_deq_bits_rdata = io_deq_bits_deq_bits_reg_io_q; // @[SynchronizerReg.scala 211:26]
  assign io_async_ridx = ridx_gray; // @[AsyncQueue.scala 165:17]
  assign io_async_safe_ridx_valid = sink_valid_1_io_out; // @[AsyncQueue.scala 185:20]
  assign io_async_safe_sink_reset_n = ~reset; // @[AsyncQueue.scala 189:25]
  assign widx_widx_gray_clock = clock;
  assign widx_widx_gray_reset = reset;
  assign widx_widx_gray_io_d = io_async_widx; // @[ShiftReg.scala 47:16]
  assign io_deq_bits_deq_bits_reg_clock = clock;
  assign io_deq_bits_deq_bits_reg_io_d = 3'h7 == index ? io_async_mem_7_rdata : _GEN_6; // @[SynchronizerReg.scala 209:{18,18}]
  assign io_deq_bits_deq_bits_reg_io_en = source_ready & ridx != widx; // @[AsyncQueue.scala 146:28]
  assign sink_valid_0_io_in = 1'h1; // @[AsyncQueue.scala 183:24]
  assign sink_valid_0_clock = clock; // @[AsyncQueue.scala 178:25]
  assign sink_valid_0_reset = reset | ~io_async_safe_source_reset_n; // @[AsyncQueue.scala 173:66]
  assign sink_valid_1_io_in = sink_valid_0_io_out; // @[AsyncQueue.scala 184:24]
  assign sink_valid_1_clock = clock; // @[AsyncQueue.scala 179:25]
  assign sink_valid_1_reset = reset | ~io_async_safe_source_reset_n; // @[AsyncQueue.scala 174:66]
  assign source_extend_io_in = io_async_safe_widx_valid; // @[AsyncQueue.scala 186:25]
  assign source_extend_clock = clock; // @[AsyncQueue.scala 180:25]
  assign source_extend_reset = reset | ~io_async_safe_source_reset_n; // @[AsyncQueue.scala 175:66]
  assign source_valid_io_in = source_extend_io_out; // @[AsyncQueue.scala 187:24]
  assign source_valid_clock = clock; // @[AsyncQueue.scala 181:25]
  assign source_valid_reset = reset; // @[AsyncQueue.scala 176:34]
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[AsyncQueue.scala 53:23]
      ridx_ridx_bin <= 4'h0;
    end else if (_ridx_T_2) begin
      ridx_ridx_bin <= 4'h0;
    end else begin
      ridx_ridx_bin <= _ridx_incremented_T_1;
    end
  end
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[AsyncQueue.scala 146:28]
      valid_reg <= 1'h0;
    end else begin
      valid_reg <= source_ready & ridx != widx;
    end
  end
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[AsyncQueue.scala 54:17]
      ridx_gray <= 4'h0;
    end else begin
      ridx_gray <= ridx_incremented ^ _GEN_9;
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  ridx_ridx_bin = _RAND_0[3:0];
  _RAND_1 = {1{`RANDOM}};
  valid_reg = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  ridx_gray = _RAND_2[3:0];
`endif // RANDOMIZE_REG_INIT
  if (reset) begin
    ridx_ridx_bin = 4'h0;
  end
  if (reset) begin
    valid_reg = 1'h0;
  end
  if (reset) begin
    ridx_gray = 4'h0;
  end
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module AsyncQueueSource_1(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [31:0] io_enq_bits_paddr,
  input  [63:0] io_enq_bits_wdata,
  input  [7:0]  io_enq_bits_wmask,
  output [31:0] io_async_mem_0_paddr,
  output [63:0] io_async_mem_0_wdata,
  output [7:0]  io_async_mem_0_wmask,
  output [31:0] io_async_mem_1_paddr,
  output [63:0] io_async_mem_1_wdata,
  output [7:0]  io_async_mem_1_wmask,
  output [31:0] io_async_mem_2_paddr,
  output [63:0] io_async_mem_2_wdata,
  output [7:0]  io_async_mem_2_wmask,
  output [31:0] io_async_mem_3_paddr,
  output [63:0] io_async_mem_3_wdata,
  output [7:0]  io_async_mem_3_wmask,
  output [31:0] io_async_mem_4_paddr,
  output [63:0] io_async_mem_4_wdata,
  output [7:0]  io_async_mem_4_wmask,
  output [31:0] io_async_mem_5_paddr,
  output [63:0] io_async_mem_5_wdata,
  output [7:0]  io_async_mem_5_wmask,
  output [31:0] io_async_mem_6_paddr,
  output [63:0] io_async_mem_6_wdata,
  output [7:0]  io_async_mem_6_wmask,
  output [31:0] io_async_mem_7_paddr,
  output [63:0] io_async_mem_7_wdata,
  output [7:0]  io_async_mem_7_wmask,
  input  [3:0]  io_async_ridx,
  output [3:0]  io_async_widx,
  input         io_async_safe_ridx_valid,
  output        io_async_safe_widx_valid,
  output        io_async_safe_source_reset_n,
  input         io_async_safe_sink_reset_n
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [63:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [63:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [63:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [63:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [63:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [63:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [63:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [63:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
`endif // RANDOMIZE_REG_INIT
  wire  ridx_ridx_gray_clock; // @[ShiftReg.scala 45:23]
  wire  ridx_ridx_gray_reset; // @[ShiftReg.scala 45:23]
  wire [3:0] ridx_ridx_gray_io_d; // @[ShiftReg.scala 45:23]
  wire [3:0] ridx_ridx_gray_io_q; // @[ShiftReg.scala 45:23]
  wire  source_valid_0_io_in; // @[AsyncQueue.scala 100:32]
  wire  source_valid_0_io_out; // @[AsyncQueue.scala 100:32]
  wire  source_valid_0_clock; // @[AsyncQueue.scala 100:32]
  wire  source_valid_0_reset; // @[AsyncQueue.scala 100:32]
  wire  source_valid_1_io_in; // @[AsyncQueue.scala 101:32]
  wire  source_valid_1_io_out; // @[AsyncQueue.scala 101:32]
  wire  source_valid_1_clock; // @[AsyncQueue.scala 101:32]
  wire  source_valid_1_reset; // @[AsyncQueue.scala 101:32]
  wire  sink_extend_io_in; // @[AsyncQueue.scala 103:30]
  wire  sink_extend_io_out; // @[AsyncQueue.scala 103:30]
  wire  sink_extend_clock; // @[AsyncQueue.scala 103:30]
  wire  sink_extend_reset; // @[AsyncQueue.scala 103:30]
  wire  sink_valid_io_in; // @[AsyncQueue.scala 104:30]
  wire  sink_valid_io_out; // @[AsyncQueue.scala 104:30]
  wire  sink_valid_clock; // @[AsyncQueue.scala 104:30]
  wire  sink_valid_reset; // @[AsyncQueue.scala 104:30]
  reg [31:0] mem_0_paddr; // @[AsyncQueue.scala 80:16]
  reg [63:0] mem_0_wdata; // @[AsyncQueue.scala 80:16]
  reg [7:0] mem_0_wmask; // @[AsyncQueue.scala 80:16]
  reg [31:0] mem_1_paddr; // @[AsyncQueue.scala 80:16]
  reg [63:0] mem_1_wdata; // @[AsyncQueue.scala 80:16]
  reg [7:0] mem_1_wmask; // @[AsyncQueue.scala 80:16]
  reg [31:0] mem_2_paddr; // @[AsyncQueue.scala 80:16]
  reg [63:0] mem_2_wdata; // @[AsyncQueue.scala 80:16]
  reg [7:0] mem_2_wmask; // @[AsyncQueue.scala 80:16]
  reg [31:0] mem_3_paddr; // @[AsyncQueue.scala 80:16]
  reg [63:0] mem_3_wdata; // @[AsyncQueue.scala 80:16]
  reg [7:0] mem_3_wmask; // @[AsyncQueue.scala 80:16]
  reg [31:0] mem_4_paddr; // @[AsyncQueue.scala 80:16]
  reg [63:0] mem_4_wdata; // @[AsyncQueue.scala 80:16]
  reg [7:0] mem_4_wmask; // @[AsyncQueue.scala 80:16]
  reg [31:0] mem_5_paddr; // @[AsyncQueue.scala 80:16]
  reg [63:0] mem_5_wdata; // @[AsyncQueue.scala 80:16]
  reg [7:0] mem_5_wmask; // @[AsyncQueue.scala 80:16]
  reg [31:0] mem_6_paddr; // @[AsyncQueue.scala 80:16]
  reg [63:0] mem_6_wdata; // @[AsyncQueue.scala 80:16]
  reg [7:0] mem_6_wmask; // @[AsyncQueue.scala 80:16]
  reg [31:0] mem_7_paddr; // @[AsyncQueue.scala 80:16]
  reg [63:0] mem_7_wdata; // @[AsyncQueue.scala 80:16]
  reg [7:0] mem_7_wmask; // @[AsyncQueue.scala 80:16]
  wire  _widx_T_1 = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  sink_ready = sink_valid_io_out;
  wire  _widx_T_2 = ~sink_ready; // @[AsyncQueue.scala 81:79]
  reg [3:0] widx_widx_bin; // @[AsyncQueue.scala 52:25]
  wire [3:0] _GEN_48 = {{3'd0}, _widx_T_1}; // @[AsyncQueue.scala 53:43]
  wire [3:0] _widx_incremented_T_1 = widx_widx_bin + _GEN_48; // @[AsyncQueue.scala 53:43]
  wire [3:0] widx_incremented = _widx_T_2 ? 4'h0 : _widx_incremented_T_1; // @[AsyncQueue.scala 53:23]
  wire [3:0] _GEN_49 = {{1'd0}, widx_incremented[3:1]}; // @[AsyncQueue.scala 54:17]
  wire [3:0] widx = widx_incremented ^ _GEN_49; // @[AsyncQueue.scala 54:17]
  wire [3:0] ridx = ridx_ridx_gray_io_q; // @[ShiftReg.scala 48:{24,24}]
  wire [3:0] _ready_T = ridx ^ 4'hc; // @[AsyncQueue.scala 83:44]
  wire [2:0] _index_T_2 = {io_async_widx[3], 2'h0}; // @[AsyncQueue.scala 85:93]
  wire [2:0] index = io_async_widx[2:0] ^ _index_T_2; // @[AsyncQueue.scala 85:64]
  reg  ready_reg; // @[AsyncQueue.scala 88:56]
  reg [3:0] widx_gray; // @[AsyncQueue.scala 91:55]
  AsyncResetSynchronizerShiftReg_w4_d2_i0 ridx_ridx_gray ( // @[ShiftReg.scala 45:23]
    .clock(ridx_ridx_gray_clock),
    .reset(ridx_ridx_gray_reset),
    .io_d(ridx_ridx_gray_io_d),
    .io_q(ridx_ridx_gray_io_q)
  );
  AsyncValidSync source_valid_0 ( // @[AsyncQueue.scala 100:32]
    .io_in(source_valid_0_io_in),
    .io_out(source_valid_0_io_out),
    .clock(source_valid_0_clock),
    .reset(source_valid_0_reset)
  );
  AsyncValidSync source_valid_1 ( // @[AsyncQueue.scala 101:32]
    .io_in(source_valid_1_io_in),
    .io_out(source_valid_1_io_out),
    .clock(source_valid_1_clock),
    .reset(source_valid_1_reset)
  );
  AsyncValidSync sink_extend ( // @[AsyncQueue.scala 103:30]
    .io_in(sink_extend_io_in),
    .io_out(sink_extend_io_out),
    .clock(sink_extend_clock),
    .reset(sink_extend_reset)
  );
  AsyncValidSync sink_valid ( // @[AsyncQueue.scala 104:30]
    .io_in(sink_valid_io_in),
    .io_out(sink_valid_io_out),
    .clock(sink_valid_clock),
    .reset(sink_valid_reset)
  );
  assign io_enq_ready = ready_reg & sink_ready; // @[AsyncQueue.scala 89:29]
  assign io_async_mem_0_paddr = mem_0_paddr; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_0_wdata = mem_0_wdata; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_0_wmask = mem_0_wmask; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_1_paddr = mem_1_paddr; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_1_wdata = mem_1_wdata; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_1_wmask = mem_1_wmask; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_2_paddr = mem_2_paddr; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_2_wdata = mem_2_wdata; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_2_wmask = mem_2_wmask; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_3_paddr = mem_3_paddr; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_3_wdata = mem_3_wdata; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_3_wmask = mem_3_wmask; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_4_paddr = mem_4_paddr; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_4_wdata = mem_4_wdata; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_4_wmask = mem_4_wmask; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_5_paddr = mem_5_paddr; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_5_wdata = mem_5_wdata; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_5_wmask = mem_5_wmask; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_6_paddr = mem_6_paddr; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_6_wdata = mem_6_wdata; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_6_wmask = mem_6_wmask; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_7_paddr = mem_7_paddr; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_7_wdata = mem_7_wdata; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_7_wmask = mem_7_wmask; // @[AsyncQueue.scala 96:31]
  assign io_async_widx = widx_gray; // @[AsyncQueue.scala 92:17]
  assign io_async_safe_widx_valid = source_valid_1_io_out; // @[AsyncQueue.scala 117:20]
  assign io_async_safe_source_reset_n = ~reset; // @[AsyncQueue.scala 121:27]
  assign ridx_ridx_gray_clock = clock;
  assign ridx_ridx_gray_reset = reset;
  assign ridx_ridx_gray_io_d = io_async_ridx; // @[ShiftReg.scala 47:16]
  assign source_valid_0_io_in = 1'h1; // @[AsyncQueue.scala 115:26]
  assign source_valid_0_clock = clock; // @[AsyncQueue.scala 110:26]
  assign source_valid_0_reset = reset | ~io_async_safe_sink_reset_n; // @[AsyncQueue.scala 105:65]
  assign source_valid_1_io_in = source_valid_0_io_out; // @[AsyncQueue.scala 116:26]
  assign source_valid_1_clock = clock; // @[AsyncQueue.scala 111:26]
  assign source_valid_1_reset = reset | ~io_async_safe_sink_reset_n; // @[AsyncQueue.scala 106:65]
  assign sink_extend_io_in = io_async_safe_ridx_valid; // @[AsyncQueue.scala 118:23]
  assign sink_extend_clock = clock; // @[AsyncQueue.scala 112:26]
  assign sink_extend_reset = reset | ~io_async_safe_sink_reset_n; // @[AsyncQueue.scala 107:65]
  assign sink_valid_io_in = sink_extend_io_out; // @[AsyncQueue.scala 119:22]
  assign sink_valid_clock = clock; // @[AsyncQueue.scala 113:26]
  assign sink_valid_reset = reset; // @[AsyncQueue.scala 108:35]
  always @(posedge clock) begin
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h0 == index) begin // @[AsyncQueue.scala 86:37]
        mem_0_paddr <= io_enq_bits_paddr; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h0 == index) begin // @[AsyncQueue.scala 86:37]
        mem_0_wdata <= io_enq_bits_wdata; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h0 == index) begin // @[AsyncQueue.scala 86:37]
        mem_0_wmask <= io_enq_bits_wmask; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h1 == index) begin // @[AsyncQueue.scala 86:37]
        mem_1_paddr <= io_enq_bits_paddr; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h1 == index) begin // @[AsyncQueue.scala 86:37]
        mem_1_wdata <= io_enq_bits_wdata; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h1 == index) begin // @[AsyncQueue.scala 86:37]
        mem_1_wmask <= io_enq_bits_wmask; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h2 == index) begin // @[AsyncQueue.scala 86:37]
        mem_2_paddr <= io_enq_bits_paddr; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h2 == index) begin // @[AsyncQueue.scala 86:37]
        mem_2_wdata <= io_enq_bits_wdata; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h2 == index) begin // @[AsyncQueue.scala 86:37]
        mem_2_wmask <= io_enq_bits_wmask; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h3 == index) begin // @[AsyncQueue.scala 86:37]
        mem_3_paddr <= io_enq_bits_paddr; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h3 == index) begin // @[AsyncQueue.scala 86:37]
        mem_3_wdata <= io_enq_bits_wdata; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h3 == index) begin // @[AsyncQueue.scala 86:37]
        mem_3_wmask <= io_enq_bits_wmask; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h4 == index) begin // @[AsyncQueue.scala 86:37]
        mem_4_paddr <= io_enq_bits_paddr; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h4 == index) begin // @[AsyncQueue.scala 86:37]
        mem_4_wdata <= io_enq_bits_wdata; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h4 == index) begin // @[AsyncQueue.scala 86:37]
        mem_4_wmask <= io_enq_bits_wmask; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h5 == index) begin // @[AsyncQueue.scala 86:37]
        mem_5_paddr <= io_enq_bits_paddr; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h5 == index) begin // @[AsyncQueue.scala 86:37]
        mem_5_wdata <= io_enq_bits_wdata; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h5 == index) begin // @[AsyncQueue.scala 86:37]
        mem_5_wmask <= io_enq_bits_wmask; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h6 == index) begin // @[AsyncQueue.scala 86:37]
        mem_6_paddr <= io_enq_bits_paddr; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h6 == index) begin // @[AsyncQueue.scala 86:37]
        mem_6_wdata <= io_enq_bits_wdata; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h6 == index) begin // @[AsyncQueue.scala 86:37]
        mem_6_wmask <= io_enq_bits_wmask; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h7 == index) begin // @[AsyncQueue.scala 86:37]
        mem_7_paddr <= io_enq_bits_paddr; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h7 == index) begin // @[AsyncQueue.scala 86:37]
        mem_7_wdata <= io_enq_bits_wdata; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h7 == index) begin // @[AsyncQueue.scala 86:37]
        mem_7_wmask <= io_enq_bits_wmask; // @[AsyncQueue.scala 86:37]
      end
    end
  end
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[AsyncQueue.scala 53:23]
      widx_widx_bin <= 4'h0;
    end else if (_widx_T_2) begin
      widx_widx_bin <= 4'h0;
    end else begin
      widx_widx_bin <= _widx_incremented_T_1;
    end
  end
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[AsyncQueue.scala 83:26]
      ready_reg <= 1'h0;
    end else begin
      ready_reg <= sink_ready & widx != _ready_T;
    end
  end
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[AsyncQueue.scala 54:17]
      widx_gray <= 4'h0;
    end else begin
      widx_gray <= widx_incremented ^ _GEN_49;
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  mem_0_paddr = _RAND_0[31:0];
  _RAND_1 = {2{`RANDOM}};
  mem_0_wdata = _RAND_1[63:0];
  _RAND_2 = {1{`RANDOM}};
  mem_0_wmask = _RAND_2[7:0];
  _RAND_3 = {1{`RANDOM}};
  mem_1_paddr = _RAND_3[31:0];
  _RAND_4 = {2{`RANDOM}};
  mem_1_wdata = _RAND_4[63:0];
  _RAND_5 = {1{`RANDOM}};
  mem_1_wmask = _RAND_5[7:0];
  _RAND_6 = {1{`RANDOM}};
  mem_2_paddr = _RAND_6[31:0];
  _RAND_7 = {2{`RANDOM}};
  mem_2_wdata = _RAND_7[63:0];
  _RAND_8 = {1{`RANDOM}};
  mem_2_wmask = _RAND_8[7:0];
  _RAND_9 = {1{`RANDOM}};
  mem_3_paddr = _RAND_9[31:0];
  _RAND_10 = {2{`RANDOM}};
  mem_3_wdata = _RAND_10[63:0];
  _RAND_11 = {1{`RANDOM}};
  mem_3_wmask = _RAND_11[7:0];
  _RAND_12 = {1{`RANDOM}};
  mem_4_paddr = _RAND_12[31:0];
  _RAND_13 = {2{`RANDOM}};
  mem_4_wdata = _RAND_13[63:0];
  _RAND_14 = {1{`RANDOM}};
  mem_4_wmask = _RAND_14[7:0];
  _RAND_15 = {1{`RANDOM}};
  mem_5_paddr = _RAND_15[31:0];
  _RAND_16 = {2{`RANDOM}};
  mem_5_wdata = _RAND_16[63:0];
  _RAND_17 = {1{`RANDOM}};
  mem_5_wmask = _RAND_17[7:0];
  _RAND_18 = {1{`RANDOM}};
  mem_6_paddr = _RAND_18[31:0];
  _RAND_19 = {2{`RANDOM}};
  mem_6_wdata = _RAND_19[63:0];
  _RAND_20 = {1{`RANDOM}};
  mem_6_wmask = _RAND_20[7:0];
  _RAND_21 = {1{`RANDOM}};
  mem_7_paddr = _RAND_21[31:0];
  _RAND_22 = {2{`RANDOM}};
  mem_7_wdata = _RAND_22[63:0];
  _RAND_23 = {1{`RANDOM}};
  mem_7_wmask = _RAND_23[7:0];
  _RAND_24 = {1{`RANDOM}};
  widx_widx_bin = _RAND_24[3:0];
  _RAND_25 = {1{`RANDOM}};
  ready_reg = _RAND_25[0:0];
  _RAND_26 = {1{`RANDOM}};
  widx_gray = _RAND_26[3:0];
`endif // RANDOMIZE_REG_INIT
  if (reset) begin
    widx_widx_bin = 4'h0;
  end
  if (reset) begin
    ready_reg = 1'h0;
  end
  if (reset) begin
    widx_gray = 4'h0;
  end
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module ChiplinkSlave(
  input         clock,
  input         reset,
  input         auto_chip_link_slave_out_a_ready,
  output        auto_chip_link_slave_out_a_valid,
  output [2:0]  auto_chip_link_slave_out_a_bits_opcode,
  output [31:0] auto_chip_link_slave_out_a_bits_address,
  output [7:0]  auto_chip_link_slave_out_a_bits_mask,
  output [63:0] auto_chip_link_slave_out_a_bits_data,
  output        auto_chip_link_slave_out_d_ready,
  input         auto_chip_link_slave_out_d_valid,
  input  [63:0] auto_chip_link_slave_out_d_bits_data,
  input         io_hspi_clk,
  input         io_hspi_reset,
  input         io_hspi_rx_enable,
  input  [15:0] io_hspi_rx_data,
  output        io_hspi_tx_enable,
  output [15:0] io_hspi_tx_data
);
  wire  tlMaster_clock; // @[Chiplink.scala 454:26]
  wire  tlMaster_reset; // @[Chiplink.scala 454:26]
  wire  tlMaster_io_req_ready; // @[Chiplink.scala 454:26]
  wire  tlMaster_io_req_valid; // @[Chiplink.scala 454:26]
  wire [31:0] tlMaster_io_req_bits_paddr; // @[Chiplink.scala 454:26]
  wire [63:0] tlMaster_io_req_bits_wdata; // @[Chiplink.scala 454:26]
  wire [7:0] tlMaster_io_req_bits_wmask; // @[Chiplink.scala 454:26]
  wire  tlMaster_io_rsp_ready; // @[Chiplink.scala 454:26]
  wire  tlMaster_io_rsp_valid; // @[Chiplink.scala 454:26]
  wire [63:0] tlMaster_io_rsp_bits_rdata; // @[Chiplink.scala 454:26]
  wire  tlMaster_io_a_ready; // @[Chiplink.scala 454:26]
  wire  tlMaster_io_a_valid; // @[Chiplink.scala 454:26]
  wire [2:0] tlMaster_io_a_bits_opcode; // @[Chiplink.scala 454:26]
  wire [31:0] tlMaster_io_a_bits_address; // @[Chiplink.scala 454:26]
  wire [7:0] tlMaster_io_a_bits_mask; // @[Chiplink.scala 454:26]
  wire [63:0] tlMaster_io_a_bits_data; // @[Chiplink.scala 454:26]
  wire  tlMaster_io_d_ready; // @[Chiplink.scala 454:26]
  wire  tlMaster_io_d_valid; // @[Chiplink.scala 454:26]
  wire [63:0] tlMaster_io_d_bits_data; // @[Chiplink.scala 454:26]
  wire  hspiSlv_io_hspi_clk; // @[Chiplink.scala 455:25]
  wire  hspiSlv_io_hspi_reset; // @[Chiplink.scala 455:25]
  wire  hspiSlv_io_hspi_rx_enable; // @[Chiplink.scala 455:25]
  wire [15:0] hspiSlv_io_hspi_rx_data; // @[Chiplink.scala 455:25]
  wire  hspiSlv_io_hspi_tx_enable; // @[Chiplink.scala 455:25]
  wire [15:0] hspiSlv_io_hspi_tx_data; // @[Chiplink.scala 455:25]
  wire  hspiSlv_io_req_ready; // @[Chiplink.scala 455:25]
  wire  hspiSlv_io_req_valid; // @[Chiplink.scala 455:25]
  wire [31:0] hspiSlv_io_req_bits_paddr; // @[Chiplink.scala 455:25]
  wire [63:0] hspiSlv_io_req_bits_wdata; // @[Chiplink.scala 455:25]
  wire [7:0] hspiSlv_io_req_bits_wmask; // @[Chiplink.scala 455:25]
  wire  hspiSlv_io_rsp_ready; // @[Chiplink.scala 455:25]
  wire  hspiSlv_io_rsp_valid; // @[Chiplink.scala 455:25]
  wire [63:0] hspiSlv_io_rsp_bits_rdata; // @[Chiplink.scala 455:25]
  wire  tlMaster_io_req_sink_clock; // @[AsyncQueue.scala 207:22]
  wire  tlMaster_io_req_sink_reset; // @[AsyncQueue.scala 207:22]
  wire  tlMaster_io_req_sink_io_deq_ready; // @[AsyncQueue.scala 207:22]
  wire  tlMaster_io_req_sink_io_deq_valid; // @[AsyncQueue.scala 207:22]
  wire [31:0] tlMaster_io_req_sink_io_deq_bits_paddr; // @[AsyncQueue.scala 207:22]
  wire [63:0] tlMaster_io_req_sink_io_deq_bits_wdata; // @[AsyncQueue.scala 207:22]
  wire [7:0] tlMaster_io_req_sink_io_deq_bits_wmask; // @[AsyncQueue.scala 207:22]
  wire [31:0] tlMaster_io_req_sink_io_async_mem_0_paddr; // @[AsyncQueue.scala 207:22]
  wire [63:0] tlMaster_io_req_sink_io_async_mem_0_wdata; // @[AsyncQueue.scala 207:22]
  wire [7:0] tlMaster_io_req_sink_io_async_mem_0_wmask; // @[AsyncQueue.scala 207:22]
  wire [31:0] tlMaster_io_req_sink_io_async_mem_1_paddr; // @[AsyncQueue.scala 207:22]
  wire [63:0] tlMaster_io_req_sink_io_async_mem_1_wdata; // @[AsyncQueue.scala 207:22]
  wire [7:0] tlMaster_io_req_sink_io_async_mem_1_wmask; // @[AsyncQueue.scala 207:22]
  wire [31:0] tlMaster_io_req_sink_io_async_mem_2_paddr; // @[AsyncQueue.scala 207:22]
  wire [63:0] tlMaster_io_req_sink_io_async_mem_2_wdata; // @[AsyncQueue.scala 207:22]
  wire [7:0] tlMaster_io_req_sink_io_async_mem_2_wmask; // @[AsyncQueue.scala 207:22]
  wire [31:0] tlMaster_io_req_sink_io_async_mem_3_paddr; // @[AsyncQueue.scala 207:22]
  wire [63:0] tlMaster_io_req_sink_io_async_mem_3_wdata; // @[AsyncQueue.scala 207:22]
  wire [7:0] tlMaster_io_req_sink_io_async_mem_3_wmask; // @[AsyncQueue.scala 207:22]
  wire [31:0] tlMaster_io_req_sink_io_async_mem_4_paddr; // @[AsyncQueue.scala 207:22]
  wire [63:0] tlMaster_io_req_sink_io_async_mem_4_wdata; // @[AsyncQueue.scala 207:22]
  wire [7:0] tlMaster_io_req_sink_io_async_mem_4_wmask; // @[AsyncQueue.scala 207:22]
  wire [31:0] tlMaster_io_req_sink_io_async_mem_5_paddr; // @[AsyncQueue.scala 207:22]
  wire [63:0] tlMaster_io_req_sink_io_async_mem_5_wdata; // @[AsyncQueue.scala 207:22]
  wire [7:0] tlMaster_io_req_sink_io_async_mem_5_wmask; // @[AsyncQueue.scala 207:22]
  wire [31:0] tlMaster_io_req_sink_io_async_mem_6_paddr; // @[AsyncQueue.scala 207:22]
  wire [63:0] tlMaster_io_req_sink_io_async_mem_6_wdata; // @[AsyncQueue.scala 207:22]
  wire [7:0] tlMaster_io_req_sink_io_async_mem_6_wmask; // @[AsyncQueue.scala 207:22]
  wire [31:0] tlMaster_io_req_sink_io_async_mem_7_paddr; // @[AsyncQueue.scala 207:22]
  wire [63:0] tlMaster_io_req_sink_io_async_mem_7_wdata; // @[AsyncQueue.scala 207:22]
  wire [7:0] tlMaster_io_req_sink_io_async_mem_7_wmask; // @[AsyncQueue.scala 207:22]
  wire [3:0] tlMaster_io_req_sink_io_async_ridx; // @[AsyncQueue.scala 207:22]
  wire [3:0] tlMaster_io_req_sink_io_async_widx; // @[AsyncQueue.scala 207:22]
  wire  tlMaster_io_req_sink_io_async_safe_ridx_valid; // @[AsyncQueue.scala 207:22]
  wire  tlMaster_io_req_sink_io_async_safe_widx_valid; // @[AsyncQueue.scala 207:22]
  wire  tlMaster_io_req_sink_io_async_safe_source_reset_n; // @[AsyncQueue.scala 207:22]
  wire  tlMaster_io_req_sink_io_async_safe_sink_reset_n; // @[AsyncQueue.scala 207:22]
  wire  resp_ToAsync_source_clock; // @[AsyncQueue.scala 216:24]
  wire  resp_ToAsync_source_reset; // @[AsyncQueue.scala 216:24]
  wire  resp_ToAsync_source_io_enq_ready; // @[AsyncQueue.scala 216:24]
  wire  resp_ToAsync_source_io_enq_valid; // @[AsyncQueue.scala 216:24]
  wire [63:0] resp_ToAsync_source_io_enq_bits_rdata; // @[AsyncQueue.scala 216:24]
  wire [63:0] resp_ToAsync_source_io_async_mem_0_rdata; // @[AsyncQueue.scala 216:24]
  wire [63:0] resp_ToAsync_source_io_async_mem_1_rdata; // @[AsyncQueue.scala 216:24]
  wire [63:0] resp_ToAsync_source_io_async_mem_2_rdata; // @[AsyncQueue.scala 216:24]
  wire [63:0] resp_ToAsync_source_io_async_mem_3_rdata; // @[AsyncQueue.scala 216:24]
  wire [63:0] resp_ToAsync_source_io_async_mem_4_rdata; // @[AsyncQueue.scala 216:24]
  wire [63:0] resp_ToAsync_source_io_async_mem_5_rdata; // @[AsyncQueue.scala 216:24]
  wire [63:0] resp_ToAsync_source_io_async_mem_6_rdata; // @[AsyncQueue.scala 216:24]
  wire [63:0] resp_ToAsync_source_io_async_mem_7_rdata; // @[AsyncQueue.scala 216:24]
  wire [3:0] resp_ToAsync_source_io_async_ridx; // @[AsyncQueue.scala 216:24]
  wire [3:0] resp_ToAsync_source_io_async_widx; // @[AsyncQueue.scala 216:24]
  wire  resp_ToAsync_source_io_async_safe_ridx_valid; // @[AsyncQueue.scala 216:24]
  wire  resp_ToAsync_source_io_async_safe_widx_valid; // @[AsyncQueue.scala 216:24]
  wire  resp_ToAsync_source_io_async_safe_source_reset_n; // @[AsyncQueue.scala 216:24]
  wire  resp_ToAsync_source_io_async_safe_sink_reset_n; // @[AsyncQueue.scala 216:24]
  wire  hspiSlv_io_rsp_sink_clock; // @[AsyncQueue.scala 207:22]
  wire  hspiSlv_io_rsp_sink_reset; // @[AsyncQueue.scala 207:22]
  wire  hspiSlv_io_rsp_sink_io_deq_ready; // @[AsyncQueue.scala 207:22]
  wire  hspiSlv_io_rsp_sink_io_deq_valid; // @[AsyncQueue.scala 207:22]
  wire [63:0] hspiSlv_io_rsp_sink_io_deq_bits_rdata; // @[AsyncQueue.scala 207:22]
  wire [63:0] hspiSlv_io_rsp_sink_io_async_mem_0_rdata; // @[AsyncQueue.scala 207:22]
  wire [63:0] hspiSlv_io_rsp_sink_io_async_mem_1_rdata; // @[AsyncQueue.scala 207:22]
  wire [63:0] hspiSlv_io_rsp_sink_io_async_mem_2_rdata; // @[AsyncQueue.scala 207:22]
  wire [63:0] hspiSlv_io_rsp_sink_io_async_mem_3_rdata; // @[AsyncQueue.scala 207:22]
  wire [63:0] hspiSlv_io_rsp_sink_io_async_mem_4_rdata; // @[AsyncQueue.scala 207:22]
  wire [63:0] hspiSlv_io_rsp_sink_io_async_mem_5_rdata; // @[AsyncQueue.scala 207:22]
  wire [63:0] hspiSlv_io_rsp_sink_io_async_mem_6_rdata; // @[AsyncQueue.scala 207:22]
  wire [63:0] hspiSlv_io_rsp_sink_io_async_mem_7_rdata; // @[AsyncQueue.scala 207:22]
  wire [3:0] hspiSlv_io_rsp_sink_io_async_ridx; // @[AsyncQueue.scala 207:22]
  wire [3:0] hspiSlv_io_rsp_sink_io_async_widx; // @[AsyncQueue.scala 207:22]
  wire  hspiSlv_io_rsp_sink_io_async_safe_ridx_valid; // @[AsyncQueue.scala 207:22]
  wire  hspiSlv_io_rsp_sink_io_async_safe_widx_valid; // @[AsyncQueue.scala 207:22]
  wire  hspiSlv_io_rsp_sink_io_async_safe_source_reset_n; // @[AsyncQueue.scala 207:22]
  wire  hspiSlv_io_rsp_sink_io_async_safe_sink_reset_n; // @[AsyncQueue.scala 207:22]
  wire  req_ToAsync_source_clock; // @[AsyncQueue.scala 216:24]
  wire  req_ToAsync_source_reset; // @[AsyncQueue.scala 216:24]
  wire  req_ToAsync_source_io_enq_ready; // @[AsyncQueue.scala 216:24]
  wire  req_ToAsync_source_io_enq_valid; // @[AsyncQueue.scala 216:24]
  wire [31:0] req_ToAsync_source_io_enq_bits_paddr; // @[AsyncQueue.scala 216:24]
  wire [63:0] req_ToAsync_source_io_enq_bits_wdata; // @[AsyncQueue.scala 216:24]
  wire [7:0] req_ToAsync_source_io_enq_bits_wmask; // @[AsyncQueue.scala 216:24]
  wire [31:0] req_ToAsync_source_io_async_mem_0_paddr; // @[AsyncQueue.scala 216:24]
  wire [63:0] req_ToAsync_source_io_async_mem_0_wdata; // @[AsyncQueue.scala 216:24]
  wire [7:0] req_ToAsync_source_io_async_mem_0_wmask; // @[AsyncQueue.scala 216:24]
  wire [31:0] req_ToAsync_source_io_async_mem_1_paddr; // @[AsyncQueue.scala 216:24]
  wire [63:0] req_ToAsync_source_io_async_mem_1_wdata; // @[AsyncQueue.scala 216:24]
  wire [7:0] req_ToAsync_source_io_async_mem_1_wmask; // @[AsyncQueue.scala 216:24]
  wire [31:0] req_ToAsync_source_io_async_mem_2_paddr; // @[AsyncQueue.scala 216:24]
  wire [63:0] req_ToAsync_source_io_async_mem_2_wdata; // @[AsyncQueue.scala 216:24]
  wire [7:0] req_ToAsync_source_io_async_mem_2_wmask; // @[AsyncQueue.scala 216:24]
  wire [31:0] req_ToAsync_source_io_async_mem_3_paddr; // @[AsyncQueue.scala 216:24]
  wire [63:0] req_ToAsync_source_io_async_mem_3_wdata; // @[AsyncQueue.scala 216:24]
  wire [7:0] req_ToAsync_source_io_async_mem_3_wmask; // @[AsyncQueue.scala 216:24]
  wire [31:0] req_ToAsync_source_io_async_mem_4_paddr; // @[AsyncQueue.scala 216:24]
  wire [63:0] req_ToAsync_source_io_async_mem_4_wdata; // @[AsyncQueue.scala 216:24]
  wire [7:0] req_ToAsync_source_io_async_mem_4_wmask; // @[AsyncQueue.scala 216:24]
  wire [31:0] req_ToAsync_source_io_async_mem_5_paddr; // @[AsyncQueue.scala 216:24]
  wire [63:0] req_ToAsync_source_io_async_mem_5_wdata; // @[AsyncQueue.scala 216:24]
  wire [7:0] req_ToAsync_source_io_async_mem_5_wmask; // @[AsyncQueue.scala 216:24]
  wire [31:0] req_ToAsync_source_io_async_mem_6_paddr; // @[AsyncQueue.scala 216:24]
  wire [63:0] req_ToAsync_source_io_async_mem_6_wdata; // @[AsyncQueue.scala 216:24]
  wire [7:0] req_ToAsync_source_io_async_mem_6_wmask; // @[AsyncQueue.scala 216:24]
  wire [31:0] req_ToAsync_source_io_async_mem_7_paddr; // @[AsyncQueue.scala 216:24]
  wire [63:0] req_ToAsync_source_io_async_mem_7_wdata; // @[AsyncQueue.scala 216:24]
  wire [7:0] req_ToAsync_source_io_async_mem_7_wmask; // @[AsyncQueue.scala 216:24]
  wire [3:0] req_ToAsync_source_io_async_ridx; // @[AsyncQueue.scala 216:24]
  wire [3:0] req_ToAsync_source_io_async_widx; // @[AsyncQueue.scala 216:24]
  wire  req_ToAsync_source_io_async_safe_ridx_valid; // @[AsyncQueue.scala 216:24]
  wire  req_ToAsync_source_io_async_safe_widx_valid; // @[AsyncQueue.scala 216:24]
  wire  req_ToAsync_source_io_async_safe_source_reset_n; // @[AsyncQueue.scala 216:24]
  wire  req_ToAsync_source_io_async_safe_sink_reset_n; // @[AsyncQueue.scala 216:24]
  TLMaster tlMaster ( // @[Chiplink.scala 454:26]
    .clock(tlMaster_clock),
    .reset(tlMaster_reset),
    .io_req_ready(tlMaster_io_req_ready),
    .io_req_valid(tlMaster_io_req_valid),
    .io_req_bits_paddr(tlMaster_io_req_bits_paddr),
    .io_req_bits_wdata(tlMaster_io_req_bits_wdata),
    .io_req_bits_wmask(tlMaster_io_req_bits_wmask),
    .io_rsp_ready(tlMaster_io_rsp_ready),
    .io_rsp_valid(tlMaster_io_rsp_valid),
    .io_rsp_bits_rdata(tlMaster_io_rsp_bits_rdata),
    .io_a_ready(tlMaster_io_a_ready),
    .io_a_valid(tlMaster_io_a_valid),
    .io_a_bits_opcode(tlMaster_io_a_bits_opcode),
    .io_a_bits_address(tlMaster_io_a_bits_address),
    .io_a_bits_mask(tlMaster_io_a_bits_mask),
    .io_a_bits_data(tlMaster_io_a_bits_data),
    .io_d_ready(tlMaster_io_d_ready),
    .io_d_valid(tlMaster_io_d_valid),
    .io_d_bits_data(tlMaster_io_d_bits_data)
  );
  HexSpiSlave hspiSlv ( // @[Chiplink.scala 455:25]
    .io_hspi_clk(hspiSlv_io_hspi_clk),
    .io_hspi_reset(hspiSlv_io_hspi_reset),
    .io_hspi_rx_enable(hspiSlv_io_hspi_rx_enable),
    .io_hspi_rx_data(hspiSlv_io_hspi_rx_data),
    .io_hspi_tx_enable(hspiSlv_io_hspi_tx_enable),
    .io_hspi_tx_data(hspiSlv_io_hspi_tx_data),
    .io_req_ready(hspiSlv_io_req_ready),
    .io_req_valid(hspiSlv_io_req_valid),
    .io_req_bits_paddr(hspiSlv_io_req_bits_paddr),
    .io_req_bits_wdata(hspiSlv_io_req_bits_wdata),
    .io_req_bits_wmask(hspiSlv_io_req_bits_wmask),
    .io_rsp_ready(hspiSlv_io_rsp_ready),
    .io_rsp_valid(hspiSlv_io_rsp_valid),
    .io_rsp_bits_rdata(hspiSlv_io_rsp_bits_rdata)
  );
  AsyncQueueSink tlMaster_io_req_sink ( // @[AsyncQueue.scala 207:22]
    .clock(tlMaster_io_req_sink_clock),
    .reset(tlMaster_io_req_sink_reset),
    .io_deq_ready(tlMaster_io_req_sink_io_deq_ready),
    .io_deq_valid(tlMaster_io_req_sink_io_deq_valid),
    .io_deq_bits_paddr(tlMaster_io_req_sink_io_deq_bits_paddr),
    .io_deq_bits_wdata(tlMaster_io_req_sink_io_deq_bits_wdata),
    .io_deq_bits_wmask(tlMaster_io_req_sink_io_deq_bits_wmask),
    .io_async_mem_0_paddr(tlMaster_io_req_sink_io_async_mem_0_paddr),
    .io_async_mem_0_wdata(tlMaster_io_req_sink_io_async_mem_0_wdata),
    .io_async_mem_0_wmask(tlMaster_io_req_sink_io_async_mem_0_wmask),
    .io_async_mem_1_paddr(tlMaster_io_req_sink_io_async_mem_1_paddr),
    .io_async_mem_1_wdata(tlMaster_io_req_sink_io_async_mem_1_wdata),
    .io_async_mem_1_wmask(tlMaster_io_req_sink_io_async_mem_1_wmask),
    .io_async_mem_2_paddr(tlMaster_io_req_sink_io_async_mem_2_paddr),
    .io_async_mem_2_wdata(tlMaster_io_req_sink_io_async_mem_2_wdata),
    .io_async_mem_2_wmask(tlMaster_io_req_sink_io_async_mem_2_wmask),
    .io_async_mem_3_paddr(tlMaster_io_req_sink_io_async_mem_3_paddr),
    .io_async_mem_3_wdata(tlMaster_io_req_sink_io_async_mem_3_wdata),
    .io_async_mem_3_wmask(tlMaster_io_req_sink_io_async_mem_3_wmask),
    .io_async_mem_4_paddr(tlMaster_io_req_sink_io_async_mem_4_paddr),
    .io_async_mem_4_wdata(tlMaster_io_req_sink_io_async_mem_4_wdata),
    .io_async_mem_4_wmask(tlMaster_io_req_sink_io_async_mem_4_wmask),
    .io_async_mem_5_paddr(tlMaster_io_req_sink_io_async_mem_5_paddr),
    .io_async_mem_5_wdata(tlMaster_io_req_sink_io_async_mem_5_wdata),
    .io_async_mem_5_wmask(tlMaster_io_req_sink_io_async_mem_5_wmask),
    .io_async_mem_6_paddr(tlMaster_io_req_sink_io_async_mem_6_paddr),
    .io_async_mem_6_wdata(tlMaster_io_req_sink_io_async_mem_6_wdata),
    .io_async_mem_6_wmask(tlMaster_io_req_sink_io_async_mem_6_wmask),
    .io_async_mem_7_paddr(tlMaster_io_req_sink_io_async_mem_7_paddr),
    .io_async_mem_7_wdata(tlMaster_io_req_sink_io_async_mem_7_wdata),
    .io_async_mem_7_wmask(tlMaster_io_req_sink_io_async_mem_7_wmask),
    .io_async_ridx(tlMaster_io_req_sink_io_async_ridx),
    .io_async_widx(tlMaster_io_req_sink_io_async_widx),
    .io_async_safe_ridx_valid(tlMaster_io_req_sink_io_async_safe_ridx_valid),
    .io_async_safe_widx_valid(tlMaster_io_req_sink_io_async_safe_widx_valid),
    .io_async_safe_source_reset_n(tlMaster_io_req_sink_io_async_safe_source_reset_n),
    .io_async_safe_sink_reset_n(tlMaster_io_req_sink_io_async_safe_sink_reset_n)
  );
  AsyncQueueSource resp_ToAsync_source ( // @[AsyncQueue.scala 216:24]
    .clock(resp_ToAsync_source_clock),
    .reset(resp_ToAsync_source_reset),
    .io_enq_ready(resp_ToAsync_source_io_enq_ready),
    .io_enq_valid(resp_ToAsync_source_io_enq_valid),
    .io_enq_bits_rdata(resp_ToAsync_source_io_enq_bits_rdata),
    .io_async_mem_0_rdata(resp_ToAsync_source_io_async_mem_0_rdata),
    .io_async_mem_1_rdata(resp_ToAsync_source_io_async_mem_1_rdata),
    .io_async_mem_2_rdata(resp_ToAsync_source_io_async_mem_2_rdata),
    .io_async_mem_3_rdata(resp_ToAsync_source_io_async_mem_3_rdata),
    .io_async_mem_4_rdata(resp_ToAsync_source_io_async_mem_4_rdata),
    .io_async_mem_5_rdata(resp_ToAsync_source_io_async_mem_5_rdata),
    .io_async_mem_6_rdata(resp_ToAsync_source_io_async_mem_6_rdata),
    .io_async_mem_7_rdata(resp_ToAsync_source_io_async_mem_7_rdata),
    .io_async_ridx(resp_ToAsync_source_io_async_ridx),
    .io_async_widx(resp_ToAsync_source_io_async_widx),
    .io_async_safe_ridx_valid(resp_ToAsync_source_io_async_safe_ridx_valid),
    .io_async_safe_widx_valid(resp_ToAsync_source_io_async_safe_widx_valid),
    .io_async_safe_source_reset_n(resp_ToAsync_source_io_async_safe_source_reset_n),
    .io_async_safe_sink_reset_n(resp_ToAsync_source_io_async_safe_sink_reset_n)
  );
  AsyncQueueSink_1 hspiSlv_io_rsp_sink ( // @[AsyncQueue.scala 207:22]
    .clock(hspiSlv_io_rsp_sink_clock),
    .reset(hspiSlv_io_rsp_sink_reset),
    .io_deq_ready(hspiSlv_io_rsp_sink_io_deq_ready),
    .io_deq_valid(hspiSlv_io_rsp_sink_io_deq_valid),
    .io_deq_bits_rdata(hspiSlv_io_rsp_sink_io_deq_bits_rdata),
    .io_async_mem_0_rdata(hspiSlv_io_rsp_sink_io_async_mem_0_rdata),
    .io_async_mem_1_rdata(hspiSlv_io_rsp_sink_io_async_mem_1_rdata),
    .io_async_mem_2_rdata(hspiSlv_io_rsp_sink_io_async_mem_2_rdata),
    .io_async_mem_3_rdata(hspiSlv_io_rsp_sink_io_async_mem_3_rdata),
    .io_async_mem_4_rdata(hspiSlv_io_rsp_sink_io_async_mem_4_rdata),
    .io_async_mem_5_rdata(hspiSlv_io_rsp_sink_io_async_mem_5_rdata),
    .io_async_mem_6_rdata(hspiSlv_io_rsp_sink_io_async_mem_6_rdata),
    .io_async_mem_7_rdata(hspiSlv_io_rsp_sink_io_async_mem_7_rdata),
    .io_async_ridx(hspiSlv_io_rsp_sink_io_async_ridx),
    .io_async_widx(hspiSlv_io_rsp_sink_io_async_widx),
    .io_async_safe_ridx_valid(hspiSlv_io_rsp_sink_io_async_safe_ridx_valid),
    .io_async_safe_widx_valid(hspiSlv_io_rsp_sink_io_async_safe_widx_valid),
    .io_async_safe_source_reset_n(hspiSlv_io_rsp_sink_io_async_safe_source_reset_n),
    .io_async_safe_sink_reset_n(hspiSlv_io_rsp_sink_io_async_safe_sink_reset_n)
  );
  AsyncQueueSource_1 req_ToAsync_source ( // @[AsyncQueue.scala 216:24]
    .clock(req_ToAsync_source_clock),
    .reset(req_ToAsync_source_reset),
    .io_enq_ready(req_ToAsync_source_io_enq_ready),
    .io_enq_valid(req_ToAsync_source_io_enq_valid),
    .io_enq_bits_paddr(req_ToAsync_source_io_enq_bits_paddr),
    .io_enq_bits_wdata(req_ToAsync_source_io_enq_bits_wdata),
    .io_enq_bits_wmask(req_ToAsync_source_io_enq_bits_wmask),
    .io_async_mem_0_paddr(req_ToAsync_source_io_async_mem_0_paddr),
    .io_async_mem_0_wdata(req_ToAsync_source_io_async_mem_0_wdata),
    .io_async_mem_0_wmask(req_ToAsync_source_io_async_mem_0_wmask),
    .io_async_mem_1_paddr(req_ToAsync_source_io_async_mem_1_paddr),
    .io_async_mem_1_wdata(req_ToAsync_source_io_async_mem_1_wdata),
    .io_async_mem_1_wmask(req_ToAsync_source_io_async_mem_1_wmask),
    .io_async_mem_2_paddr(req_ToAsync_source_io_async_mem_2_paddr),
    .io_async_mem_2_wdata(req_ToAsync_source_io_async_mem_2_wdata),
    .io_async_mem_2_wmask(req_ToAsync_source_io_async_mem_2_wmask),
    .io_async_mem_3_paddr(req_ToAsync_source_io_async_mem_3_paddr),
    .io_async_mem_3_wdata(req_ToAsync_source_io_async_mem_3_wdata),
    .io_async_mem_3_wmask(req_ToAsync_source_io_async_mem_3_wmask),
    .io_async_mem_4_paddr(req_ToAsync_source_io_async_mem_4_paddr),
    .io_async_mem_4_wdata(req_ToAsync_source_io_async_mem_4_wdata),
    .io_async_mem_4_wmask(req_ToAsync_source_io_async_mem_4_wmask),
    .io_async_mem_5_paddr(req_ToAsync_source_io_async_mem_5_paddr),
    .io_async_mem_5_wdata(req_ToAsync_source_io_async_mem_5_wdata),
    .io_async_mem_5_wmask(req_ToAsync_source_io_async_mem_5_wmask),
    .io_async_mem_6_paddr(req_ToAsync_source_io_async_mem_6_paddr),
    .io_async_mem_6_wdata(req_ToAsync_source_io_async_mem_6_wdata),
    .io_async_mem_6_wmask(req_ToAsync_source_io_async_mem_6_wmask),
    .io_async_mem_7_paddr(req_ToAsync_source_io_async_mem_7_paddr),
    .io_async_mem_7_wdata(req_ToAsync_source_io_async_mem_7_wdata),
    .io_async_mem_7_wmask(req_ToAsync_source_io_async_mem_7_wmask),
    .io_async_ridx(req_ToAsync_source_io_async_ridx),
    .io_async_widx(req_ToAsync_source_io_async_widx),
    .io_async_safe_ridx_valid(req_ToAsync_source_io_async_safe_ridx_valid),
    .io_async_safe_widx_valid(req_ToAsync_source_io_async_safe_widx_valid),
    .io_async_safe_source_reset_n(req_ToAsync_source_io_async_safe_source_reset_n),
    .io_async_safe_sink_reset_n(req_ToAsync_source_io_async_safe_sink_reset_n)
  );
  assign auto_chip_link_slave_out_a_valid = tlMaster_io_a_valid; // @[Nodes.scala 1207:84 Chiplink.scala 458:22]
  assign auto_chip_link_slave_out_a_bits_opcode = tlMaster_io_a_bits_opcode; // @[Nodes.scala 1207:84 Chiplink.scala 459:21]
  assign auto_chip_link_slave_out_a_bits_address = tlMaster_io_a_bits_address; // @[Nodes.scala 1207:84 Chiplink.scala 459:21]
  assign auto_chip_link_slave_out_a_bits_mask = tlMaster_io_a_bits_mask; // @[Nodes.scala 1207:84 Chiplink.scala 459:21]
  assign auto_chip_link_slave_out_a_bits_data = tlMaster_io_a_bits_data; // @[Nodes.scala 1207:84 Chiplink.scala 459:21]
  assign auto_chip_link_slave_out_d_ready = tlMaster_io_d_ready; // @[Nodes.scala 1207:84 Chiplink.scala 464:22]
  assign io_hspi_tx_enable = hspiSlv_io_hspi_tx_enable; // @[Chiplink.scala 469:18]
  assign io_hspi_tx_data = hspiSlv_io_hspi_tx_data; // @[Chiplink.scala 469:18]
  assign tlMaster_clock = clock;
  assign tlMaster_reset = reset;
  assign tlMaster_io_req_valid = tlMaster_io_req_sink_io_deq_valid; // @[Chiplink.scala 475:22]
  assign tlMaster_io_req_bits_paddr = tlMaster_io_req_sink_io_deq_bits_paddr; // @[Chiplink.scala 475:22]
  assign tlMaster_io_req_bits_wdata = tlMaster_io_req_sink_io_deq_bits_wdata; // @[Chiplink.scala 475:22]
  assign tlMaster_io_req_bits_wmask = tlMaster_io_req_sink_io_deq_bits_wmask; // @[Chiplink.scala 475:22]
  assign tlMaster_io_rsp_ready = resp_ToAsync_source_io_enq_ready; // @[AsyncQueue.scala 217:19]
  assign tlMaster_io_a_ready = auto_chip_link_slave_out_a_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign tlMaster_io_d_valid = auto_chip_link_slave_out_d_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign tlMaster_io_d_bits_data = auto_chip_link_slave_out_d_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign hspiSlv_io_hspi_clk = io_hspi_clk; // @[Chiplink.scala 466:25]
  assign hspiSlv_io_hspi_reset = io_hspi_reset; // @[Chiplink.scala 467:27]
  assign hspiSlv_io_hspi_rx_enable = io_hspi_rx_enable; // @[Chiplink.scala 468:24]
  assign hspiSlv_io_hspi_rx_data = io_hspi_rx_data; // @[Chiplink.scala 468:24]
  assign hspiSlv_io_req_ready = req_ToAsync_source_io_enq_ready; // @[AsyncQueue.scala 217:19]
  assign hspiSlv_io_rsp_valid = hspiSlv_io_rsp_sink_io_deq_valid; // @[Chiplink.scala 479:22]
  assign hspiSlv_io_rsp_bits_rdata = hspiSlv_io_rsp_sink_io_deq_bits_rdata; // @[Chiplink.scala 479:22]
  assign tlMaster_io_req_sink_clock = clock;
  assign tlMaster_io_req_sink_reset = reset;
  assign tlMaster_io_req_sink_io_deq_ready = tlMaster_io_req_ready; // @[Chiplink.scala 475:22]
  assign tlMaster_io_req_sink_io_async_mem_0_paddr = req_ToAsync_source_io_async_mem_0_paddr; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_0_wdata = req_ToAsync_source_io_async_mem_0_wdata; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_0_wmask = req_ToAsync_source_io_async_mem_0_wmask; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_1_paddr = req_ToAsync_source_io_async_mem_1_paddr; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_1_wdata = req_ToAsync_source_io_async_mem_1_wdata; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_1_wmask = req_ToAsync_source_io_async_mem_1_wmask; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_2_paddr = req_ToAsync_source_io_async_mem_2_paddr; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_2_wdata = req_ToAsync_source_io_async_mem_2_wdata; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_2_wmask = req_ToAsync_source_io_async_mem_2_wmask; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_3_paddr = req_ToAsync_source_io_async_mem_3_paddr; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_3_wdata = req_ToAsync_source_io_async_mem_3_wdata; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_3_wmask = req_ToAsync_source_io_async_mem_3_wmask; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_4_paddr = req_ToAsync_source_io_async_mem_4_paddr; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_4_wdata = req_ToAsync_source_io_async_mem_4_wdata; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_4_wmask = req_ToAsync_source_io_async_mem_4_wmask; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_5_paddr = req_ToAsync_source_io_async_mem_5_paddr; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_5_wdata = req_ToAsync_source_io_async_mem_5_wdata; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_5_wmask = req_ToAsync_source_io_async_mem_5_wmask; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_6_paddr = req_ToAsync_source_io_async_mem_6_paddr; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_6_wdata = req_ToAsync_source_io_async_mem_6_wdata; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_6_wmask = req_ToAsync_source_io_async_mem_6_wmask; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_7_paddr = req_ToAsync_source_io_async_mem_7_paddr; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_7_wdata = req_ToAsync_source_io_async_mem_7_wdata; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_mem_7_wmask = req_ToAsync_source_io_async_mem_7_wmask; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_widx = req_ToAsync_source_io_async_widx; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_safe_widx_valid = req_ToAsync_source_io_async_safe_widx_valid; // @[Chiplink.scala 472:27 480:19]
  assign tlMaster_io_req_sink_io_async_safe_source_reset_n = req_ToAsync_source_io_async_safe_source_reset_n; // @[Chiplink.scala 472:27 480:19]
  assign resp_ToAsync_source_clock = clock;
  assign resp_ToAsync_source_reset = reset;
  assign resp_ToAsync_source_io_enq_valid = tlMaster_io_rsp_valid; // @[AsyncQueue.scala 217:19]
  assign resp_ToAsync_source_io_enq_bits_rdata = tlMaster_io_rsp_bits_rdata; // @[AsyncQueue.scala 217:19]
  assign resp_ToAsync_source_io_async_ridx = hspiSlv_io_rsp_sink_io_async_ridx; // @[AsyncQueue.scala 208:19 Chiplink.scala 473:28]
  assign resp_ToAsync_source_io_async_safe_ridx_valid = hspiSlv_io_rsp_sink_io_async_safe_ridx_valid; // @[AsyncQueue.scala 208:19 Chiplink.scala 473:28]
  assign resp_ToAsync_source_io_async_safe_sink_reset_n = hspiSlv_io_rsp_sink_io_async_safe_sink_reset_n; // @[AsyncQueue.scala 208:19 Chiplink.scala 473:28]
  assign hspiSlv_io_rsp_sink_clock = io_hspi_clk; // @[Chiplink.scala 478:36]
  assign hspiSlv_io_rsp_sink_reset = io_hspi_reset;
  assign hspiSlv_io_rsp_sink_io_deq_ready = hspiSlv_io_rsp_ready; // @[Chiplink.scala 479:22]
  assign hspiSlv_io_rsp_sink_io_async_mem_0_rdata = resp_ToAsync_source_io_async_mem_0_rdata; // @[Chiplink.scala 473:28 476:18]
  assign hspiSlv_io_rsp_sink_io_async_mem_1_rdata = resp_ToAsync_source_io_async_mem_1_rdata; // @[Chiplink.scala 473:28 476:18]
  assign hspiSlv_io_rsp_sink_io_async_mem_2_rdata = resp_ToAsync_source_io_async_mem_2_rdata; // @[Chiplink.scala 473:28 476:18]
  assign hspiSlv_io_rsp_sink_io_async_mem_3_rdata = resp_ToAsync_source_io_async_mem_3_rdata; // @[Chiplink.scala 473:28 476:18]
  assign hspiSlv_io_rsp_sink_io_async_mem_4_rdata = resp_ToAsync_source_io_async_mem_4_rdata; // @[Chiplink.scala 473:28 476:18]
  assign hspiSlv_io_rsp_sink_io_async_mem_5_rdata = resp_ToAsync_source_io_async_mem_5_rdata; // @[Chiplink.scala 473:28 476:18]
  assign hspiSlv_io_rsp_sink_io_async_mem_6_rdata = resp_ToAsync_source_io_async_mem_6_rdata; // @[Chiplink.scala 473:28 476:18]
  assign hspiSlv_io_rsp_sink_io_async_mem_7_rdata = resp_ToAsync_source_io_async_mem_7_rdata; // @[Chiplink.scala 473:28 476:18]
  assign hspiSlv_io_rsp_sink_io_async_widx = resp_ToAsync_source_io_async_widx; // @[Chiplink.scala 473:28 476:18]
  assign hspiSlv_io_rsp_sink_io_async_safe_widx_valid = resp_ToAsync_source_io_async_safe_widx_valid; // @[Chiplink.scala 473:28 476:18]
  assign hspiSlv_io_rsp_sink_io_async_safe_source_reset_n = resp_ToAsync_source_io_async_safe_source_reset_n; // @[Chiplink.scala 473:28 476:18]
  assign req_ToAsync_source_clock = io_hspi_clk; // @[Chiplink.scala 478:36]
  assign req_ToAsync_source_reset = io_hspi_reset;
  assign req_ToAsync_source_io_enq_valid = hspiSlv_io_req_valid; // @[AsyncQueue.scala 217:19]
  assign req_ToAsync_source_io_enq_bits_paddr = hspiSlv_io_req_bits_paddr; // @[AsyncQueue.scala 217:19]
  assign req_ToAsync_source_io_enq_bits_wdata = hspiSlv_io_req_bits_wdata; // @[AsyncQueue.scala 217:19]
  assign req_ToAsync_source_io_enq_bits_wmask = hspiSlv_io_req_bits_wmask; // @[AsyncQueue.scala 217:19]
  assign req_ToAsync_source_io_async_ridx = tlMaster_io_req_sink_io_async_ridx; // @[AsyncQueue.scala 208:19 Chiplink.scala 472:27]
  assign req_ToAsync_source_io_async_safe_ridx_valid = tlMaster_io_req_sink_io_async_safe_ridx_valid; // @[AsyncQueue.scala 208:19 Chiplink.scala 472:27]
  assign req_ToAsync_source_io_async_safe_sink_reset_n = tlMaster_io_req_sink_io_async_safe_sink_reset_n; // @[AsyncQueue.scala 208:19 Chiplink.scala 472:27]
endmodule
module TLMonitor_15(
  input         clock,
  input         reset,
  input         io_in_a_ready,
  input         io_in_a_valid,
  input  [2:0]  io_in_a_bits_opcode,
  input  [2:0]  io_in_a_bits_source,
  input  [15:0] io_in_a_bits_address,
  input  [7:0]  io_in_a_bits_mask,
  input         io_in_d_ready,
  input         io_in_d_valid,
  input  [2:0]  io_in_d_bits_opcode,
  input  [1:0]  io_in_d_bits_size,
  input  [2:0]  io_in_d_bits_source
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire [15:0] _is_aligned_T = io_in_a_bits_address & 16'h7; // @[Edges.scala 20:16]
  wire  is_aligned = _is_aligned_T == 16'h0; // @[Edges.scala 20:24]
  wire [16:0] _T_12 = {1'b0,$signed(io_in_a_bits_address)}; // @[Parameters.scala 137:49]
  wire  _T_20 = io_in_a_bits_opcode == 3'h6; // @[Monitor.scala 81:25]
  wire [16:0] _T_36 = $signed(_T_12) & 17'sh10000; // @[Parameters.scala 137:52]
  wire  _T_37 = $signed(_T_36) == 17'sh0; // @[Parameters.scala 137:67]
  wire [7:0] _T_73 = ~io_in_a_bits_mask; // @[Monitor.scala 88:18]
  wire  _T_74 = _T_73 == 8'h0; // @[Monitor.scala 88:31]
  wire  _T_82 = io_in_a_bits_opcode == 3'h7; // @[Monitor.scala 92:25]
  wire  _T_148 = io_in_a_bits_opcode == 3'h4; // @[Monitor.scala 104:25]
  wire  _T_187 = io_in_a_bits_mask == 8'hff; // @[Monitor.scala 110:30]
  wire  _T_195 = io_in_a_bits_opcode == 3'h0; // @[Monitor.scala 114:25]
  wire  _T_236 = io_in_a_bits_opcode == 3'h1; // @[Monitor.scala 122:25]
  wire  _T_279 = io_in_a_bits_opcode == 3'h2; // @[Monitor.scala 130:25]
  wire  _T_317 = io_in_a_bits_opcode == 3'h3; // @[Monitor.scala 138:25]
  wire  _T_355 = io_in_a_bits_opcode == 3'h5; // @[Monitor.scala 146:25]
  wire  _T_397 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire  _T_401 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_405 = io_in_d_bits_size >= 2'h3; // @[Monitor.scala 312:27]
  wire  _T_421 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_449 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _a_first_T = io_in_a_ready & io_in_a_valid; // @[Decoupled.scala 52:35]
  reg  a_first_counter; // @[Edges.scala 228:27]
  wire  a_first_counter1 = a_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  a_first = ~a_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode; // @[Monitor.scala 384:22]
  reg [2:0] source; // @[Monitor.scala 387:22]
  reg [15:0] address; // @[Monitor.scala 388:22]
  wire  _T_543 = io_in_a_valid & ~a_first; // @[Monitor.scala 389:19]
  wire  _T_544 = io_in_a_bits_opcode == opcode; // @[Monitor.scala 390:32]
  wire  _T_556 = io_in_a_bits_source == source; // @[Monitor.scala 393:32]
  wire  _T_560 = io_in_a_bits_address == address; // @[Monitor.scala 394:32]
  wire  _d_first_T = io_in_d_ready & io_in_d_valid; // @[Decoupled.scala 52:35]
  reg  d_first_counter; // @[Edges.scala 228:27]
  wire  d_first_counter1 = d_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  d_first = ~d_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  reg [1:0] size_1; // @[Monitor.scala 537:22]
  reg [2:0] source_1; // @[Monitor.scala 538:22]
  wire  _T_567 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_568 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  wire  _T_576 = io_in_d_bits_size == size_1; // @[Monitor.scala 544:29]
  wire  _T_580 = io_in_d_bits_source == source_1; // @[Monitor.scala 545:29]
  reg [7:0] inflight; // @[Monitor.scala 611:27]
  reg [31:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [31:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg  a_first_counter_1; // @[Edges.scala 228:27]
  wire  a_first_counter1_1 = a_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  a_first_1 = ~a_first_counter_1; // @[Edges.scala 230:25]
  reg  d_first_counter_1; // @[Edges.scala 228:27]
  wire  d_first_counter1_1 = d_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = ~d_first_counter_1; // @[Edges.scala 230:25]
  wire [4:0] _GEN_62 = {io_in_d_bits_source, 2'h0}; // @[Monitor.scala 634:69]
  wire [5:0] _a_opcode_lookup_T = {{1'd0}, _GEN_62}; // @[Monitor.scala 634:69]
  wire [31:0] _a_opcode_lookup_T_1 = inflight_opcodes >> _a_opcode_lookup_T; // @[Monitor.scala 634:44]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [31:0] _GEN_64 = {{16'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 634:97]
  wire [31:0] _a_opcode_lookup_T_6 = _a_opcode_lookup_T_1 & _GEN_64; // @[Monitor.scala 634:97]
  wire [31:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[31:1]}; // @[Monitor.scala 634:152]
  wire [31:0] _a_size_lookup_T_1 = inflight_sizes >> _a_opcode_lookup_T; // @[Monitor.scala 638:40]
  wire [31:0] _a_size_lookup_T_6 = _a_size_lookup_T_1 & _GEN_64; // @[Monitor.scala 638:91]
  wire [31:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[31:1]}; // @[Monitor.scala 638:144]
  wire  _T_594 = io_in_a_valid & a_first_1; // @[Monitor.scala 648:26]
  wire [7:0] _a_set_wo_ready_T = 8'h1 << io_in_a_bits_source; // @[OneHot.scala 57:35]
  wire [7:0] a_set_wo_ready = io_in_a_valid & a_first_1 ? _a_set_wo_ready_T : 8'h0; // @[Monitor.scala 648:71 649:22]
  wire  _T_597 = _a_first_T & a_first_1; // @[Monitor.scala 652:27]
  wire [3:0] _a_opcodes_set_interm_T = {io_in_a_bits_opcode, 1'h0}; // @[Monitor.scala 654:53]
  wire [3:0] _a_opcodes_set_interm_T_1 = _a_opcodes_set_interm_T | 4'h1; // @[Monitor.scala 654:61]
  wire [4:0] _GEN_74 = {io_in_a_bits_source, 2'h0}; // @[Monitor.scala 656:79]
  wire [5:0] _a_opcodes_set_T = {{1'd0}, _GEN_74}; // @[Monitor.scala 656:79]
  wire [3:0] a_opcodes_set_interm = _a_first_T & a_first_1 ? _a_opcodes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 654:28]
  wire [66:0] _GEN_272 = {{63'd0}, a_opcodes_set_interm}; // @[Monitor.scala 656:54]
  wire [66:0] _a_opcodes_set_T_1 = _GEN_272 << _a_opcodes_set_T; // @[Monitor.scala 656:54]
  wire [2:0] a_sizes_set_interm = _a_first_T & a_first_1 ? 3'h7 : 3'h0; // @[Monitor.scala 652:72 655:28]
  wire [65:0] _GEN_273 = {{63'd0}, a_sizes_set_interm}; // @[Monitor.scala 657:52]
  wire [65:0] _a_sizes_set_T_1 = _GEN_273 << _a_opcodes_set_T; // @[Monitor.scala 657:52]
  wire [7:0] _T_599 = inflight >> io_in_a_bits_source; // @[Monitor.scala 658:26]
  wire  _T_601 = ~_T_599[0]; // @[Monitor.scala 658:17]
  wire [7:0] a_set = _a_first_T & a_first_1 ? _a_set_wo_ready_T : 8'h0; // @[Monitor.scala 652:72 653:28]
  wire [66:0] _GEN_19 = _a_first_T & a_first_1 ? _a_opcodes_set_T_1 : 67'h0; // @[Monitor.scala 652:72 656:28]
  wire [65:0] _GEN_20 = _a_first_T & a_first_1 ? _a_sizes_set_T_1 : 66'h0; // @[Monitor.scala 652:72 657:28]
  wire  _T_605 = io_in_d_valid & d_first_1; // @[Monitor.scala 671:26]
  wire  _T_607 = ~_T_401; // @[Monitor.scala 671:74]
  wire  _T_608 = io_in_d_valid & d_first_1 & ~_T_401; // @[Monitor.scala 671:71]
  wire [7:0] _d_clr_wo_ready_T = 8'h1 << io_in_d_bits_source; // @[OneHot.scala 57:35]
  wire [7:0] d_clr_wo_ready = io_in_d_valid & d_first_1 & ~_T_401 ? _d_clr_wo_ready_T : 8'h0; // @[Monitor.scala 671:90 672:22]
  wire [78:0] _GEN_274 = {{63'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [78:0] _d_opcodes_clr_T_5 = _GEN_274 << _a_opcode_lookup_T; // @[Monitor.scala 677:76]
  wire [7:0] d_clr = _d_first_T & d_first_1 & _T_607 ? _d_clr_wo_ready_T : 8'h0; // @[Monitor.scala 675:91 676:21]
  wire [78:0] _GEN_23 = _d_first_T & d_first_1 & _T_607 ? _d_opcodes_clr_T_5 : 79'h0; // @[Monitor.scala 675:91 677:21]
  wire  _same_cycle_resp_T_2 = io_in_a_bits_source == io_in_d_bits_source; // @[Monitor.scala 681:113]
  wire  same_cycle_resp = _T_594 & io_in_a_bits_source == io_in_d_bits_source; // @[Monitor.scala 681:88]
  wire [7:0] _T_618 = inflight >> io_in_d_bits_source; // @[Monitor.scala 682:25]
  wire  _T_620 = _T_618[0] | same_cycle_resp; // @[Monitor.scala 682:49]
  wire [2:0] _GEN_27 = 3'h2 == io_in_a_bits_opcode ? 3'h1 : 3'h0; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_28 = 3'h3 == io_in_a_bits_opcode ? 3'h1 : _GEN_27; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_29 = 3'h4 == io_in_a_bits_opcode ? 3'h1 : _GEN_28; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_30 = 3'h5 == io_in_a_bits_opcode ? 3'h2 : _GEN_29; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_31 = 3'h6 == io_in_a_bits_opcode ? 3'h4 : _GEN_30; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_32 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_31; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_39 = 3'h6 == io_in_a_bits_opcode ? 3'h5 : _GEN_30; // @[Monitor.scala 686:{39,39}]
  wire [2:0] _GEN_40 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_39; // @[Monitor.scala 686:{39,39}]
  wire  _T_625 = io_in_d_bits_opcode == _GEN_40; // @[Monitor.scala 686:39]
  wire  _T_626 = io_in_d_bits_opcode == _GEN_32 | _T_625; // @[Monitor.scala 685:77]
  wire  _T_630 = 2'h3 == io_in_d_bits_size; // @[Monitor.scala 687:36]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_43 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_44 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_43; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_45 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_44; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_46 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_45; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_47 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_46; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_48 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_47; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_55 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_46; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_56 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_55; // @[Monitor.scala 690:{38,38}]
  wire  _T_637 = io_in_d_bits_opcode == _GEN_56; // @[Monitor.scala 690:38]
  wire  _T_638 = io_in_d_bits_opcode == _GEN_48 | _T_637; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire [3:0] _GEN_78 = {{2'd0}, io_in_d_bits_size}; // @[Monitor.scala 691:36]
  wire  _T_642 = _GEN_78 == a_size_lookup; // @[Monitor.scala 691:36]
  wire  _T_652 = _T_605 & a_first_1 & io_in_a_valid & _same_cycle_resp_T_2 & _T_607; // @[Monitor.scala 694:116]
  wire  _T_654 = ~io_in_d_ready | io_in_a_ready; // @[Monitor.scala 695:32]
  wire  _T_661 = a_set_wo_ready != d_clr_wo_ready | ~(|a_set_wo_ready); // @[Monitor.scala 699:48]
  wire [7:0] _inflight_T = inflight | a_set; // @[Monitor.scala 702:27]
  wire [7:0] _inflight_T_1 = ~d_clr; // @[Monitor.scala 702:38]
  wire [7:0] _inflight_T_2 = _inflight_T & _inflight_T_1; // @[Monitor.scala 702:36]
  wire [31:0] a_opcodes_set = _GEN_19[31:0];
  wire [31:0] _inflight_opcodes_T = inflight_opcodes | a_opcodes_set; // @[Monitor.scala 703:43]
  wire [31:0] d_opcodes_clr = _GEN_23[31:0];
  wire [31:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [31:0] _inflight_opcodes_T_2 = _inflight_opcodes_T & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [31:0] a_sizes_set = _GEN_20[31:0];
  wire [31:0] _inflight_sizes_T = inflight_sizes | a_sizes_set; // @[Monitor.scala 704:39]
  wire [31:0] _inflight_sizes_T_2 = _inflight_sizes_T & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [31:0] watchdog; // @[Monitor.scala 706:27]
  wire  _T_670 = ~(|inflight) | plusarg_reader_out == 32'h0 | watchdog < plusarg_reader_out; // @[Monitor.scala 709:47]
  wire [31:0] _watchdog_T_1 = watchdog + 32'h1; // @[Monitor.scala 711:26]
  reg [7:0] inflight_1; // @[Monitor.scala 723:35]
  reg [31:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg  d_first_counter_2; // @[Edges.scala 228:27]
  wire  d_first_counter1_2 = d_first_counter_2 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = ~d_first_counter_2; // @[Edges.scala 230:25]
  wire [31:0] _c_size_lookup_T_1 = inflight_sizes_1 >> _a_opcode_lookup_T; // @[Monitor.scala 747:42]
  wire [31:0] _c_size_lookup_T_6 = _c_size_lookup_T_1 & _GEN_64; // @[Monitor.scala 747:93]
  wire [31:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[31:1]}; // @[Monitor.scala 747:146]
  wire  _T_696 = io_in_d_valid & d_first_2 & _T_401; // @[Monitor.scala 779:71]
  wire [7:0] d_clr_1 = _d_first_T & d_first_2 & _T_401 ? _d_clr_wo_ready_T : 8'h0; // @[Monitor.scala 783:90 784:21]
  wire [78:0] _GEN_69 = _d_first_T & d_first_2 & _T_401 ? _d_opcodes_clr_T_5 : 79'h0; // @[Monitor.scala 783:90 786:21]
  wire [7:0] _T_704 = inflight_1 >> io_in_d_bits_source; // @[Monitor.scala 791:25]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_714 = _GEN_78 == c_size_lookup; // @[Monitor.scala 795:36]
  wire [7:0] _inflight_T_4 = ~d_clr_1; // @[Monitor.scala 809:46]
  wire [7:0] _inflight_T_5 = inflight_1 & _inflight_T_4; // @[Monitor.scala 809:44]
  wire [31:0] d_sizes_clr_1 = _GEN_69[31:0];
  wire [31:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [31:0] _inflight_sizes_T_5 = inflight_sizes_1 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  reg [31:0] watchdog_1; // @[Monitor.scala 813:27]
  wire  _T_739 = ~(|inflight_1) | plusarg_reader_1_out == 32'h0 | watchdog_1 < plusarg_reader_1_out; // @[Monitor.scala 816:47]
  wire [31:0] _watchdog_T_3 = watchdog_1 + 32'h1; // @[Monitor.scala 818:26]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        a_first_counter <= 1'h0;
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      opcode <= io_in_a_bits_opcode; // @[Monitor.scala 397:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      source <= io_in_a_bits_source; // @[Monitor.scala 400:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      address <= io_in_a_bits_address; // @[Monitor.scala 401:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        d_first_counter <= 1'h0;
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      size_1 <= io_in_d_bits_size; // @[Monitor.scala 552:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      source_1 <= io_in_d_bits_source; // @[Monitor.scala 553:15]
    end
    if (reset) begin // @[Monitor.scala 611:27]
      inflight <= 8'h0; // @[Monitor.scala 611:27]
    end else begin
      inflight <= _inflight_T_2; // @[Monitor.scala 702:14]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 32'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 32'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first_1) begin // @[Edges.scala 235:21]
        a_first_counter_1 <= 1'h0;
      end else begin
        a_first_counter_1 <= a_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        d_first_counter_1 <= 1'h0;
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 706:27]
      watchdog <= 32'h0; // @[Monitor.scala 706:27]
    end else if (_a_first_T | _d_first_T) begin // @[Monitor.scala 712:47]
      watchdog <= 32'h0; // @[Monitor.scala 712:58]
    end else begin
      watchdog <= _watchdog_T_1; // @[Monitor.scala 711:14]
    end
    if (reset) begin // @[Monitor.scala 723:35]
      inflight_1 <= 8'h0; // @[Monitor.scala 723:35]
    end else begin
      inflight_1 <= _inflight_T_5; // @[Monitor.scala 809:22]
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 32'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        d_first_counter_2 <= 1'h0;
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    if (reset) begin // @[Monitor.scala 813:27]
      watchdog_1 <= 32'h0; // @[Monitor.scala 813:27]
    end else if (_d_first_T) begin // @[Monitor.scala 819:47]
      watchdog_1 <= 32'h0; // @[Monitor.scala 819:58]
    end else begin
      watchdog_1 <= _watchdog_T_3; // @[Monitor.scala 818:14]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock from a client which does not support Probe (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock address not aligned to size (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_20 & ~reset & ~_T_74) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock contains invalid mask (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_74 & (io_in_a_valid & _T_20 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm from a client which does not support Probe (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm address not aligned to size (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm requests NtoB (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_82 & ~reset & ~_T_74) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm contains invalid mask (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_74 & (io_in_a_valid & _T_82 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & ~_T_37) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which slave claims it can't support (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_37 & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get address not aligned to size (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_148 & ~reset & ~_T_187) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get contains invalid mask (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_187 & (io_in_a_valid & _T_148 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_195 & ~reset & ~_T_37) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutFull type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_37 & (io_in_a_valid & _T_195 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_195 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull address not aligned to size (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_195 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_195 & ~reset & ~_T_187) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull contains invalid mask (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_187 & (io_in_a_valid & _T_195 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_236 & ~reset & ~_T_37) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutPartial type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_37 & (io_in_a_valid & _T_236 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_236 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial address not aligned to size (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_236 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_279 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Arithmetic type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_279 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_279 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic address not aligned to size (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_279 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_279 & ~reset & ~_T_187) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic contains invalid mask (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_187 & (io_in_a_valid & _T_279 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_317 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Logical type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_317 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_317 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical address not aligned to size (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_317 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_317 & ~reset & ~_T_187) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical contains invalid mask (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_187 & (io_in_a_valid & _T_317 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_355 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Hint type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_355 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_355 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint address not aligned to size (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_355 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_355 & ~reset & ~_T_187) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint contains invalid mask (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_187 & (io_in_a_valid & _T_355 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_397) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_397 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_401 & _T_2 & ~_T_405) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck smaller than a beat (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_405 & (io_in_d_valid & _T_401 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_421 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid sink ID (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_421 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_421 & _T_2 & ~_T_405) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant smaller than a beat (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_405 & (io_in_d_valid & _T_421 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_449 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid sink ID (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_449 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_449 & _T_2 & ~_T_405) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData smaller than a beat (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_405 & (io_in_d_valid & _T_449 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_543 & ~reset & ~_T_544) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel opcode changed within multibeat operation (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_544 & (_T_543 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_543 & ~reset & ~_T_556) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel source changed within multibeat operation (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_556 & (_T_543 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_543 & ~reset & ~_T_560) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel address changed with multibeat operation (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_560 & (_T_543 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_567 & _T_2 & ~_T_568) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_568 & (_T_567 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_567 & _T_2 & ~_T_576) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel size changed within multibeat operation (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_576 & (_T_567 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_567 & _T_2 & ~_T_580) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel source changed within multibeat operation (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_580 & (_T_567 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_597 & ~reset & ~_T_601) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel re-used a source ID (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_601 & (_T_597 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_608 & _T_2 & ~_T_620) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_620 & (_T_608 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_608 & same_cycle_resp & _T_2 & ~_T_626) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_626 & (_T_608 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_608 & same_cycle_resp & _T_2 & ~_T_630) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_630 & (_T_608 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_608 & ~same_cycle_resp & _T_2 & ~_T_638) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_638 & (_T_608 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_608 & ~same_cycle_resp & _T_2 & ~_T_642) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_642 & (_T_608 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_652 & _T_2 & ~_T_654) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_654 & (_T_652 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_2 & ~_T_661) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' and 'D' concurrent, despite minlatency 1 (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_661 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_670) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_670 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_696 & _T_2 & ~_T_704[0]) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_704[0] & (_T_696 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_696 & _T_2 & ~_T_714) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_714 & (_T_696 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_739) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:188:35)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_739 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  opcode = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  source = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  address = _RAND_3[15:0];
  _RAND_4 = {1{`RANDOM}};
  d_first_counter = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  opcode_1 = _RAND_5[2:0];
  _RAND_6 = {1{`RANDOM}};
  size_1 = _RAND_6[1:0];
  _RAND_7 = {1{`RANDOM}};
  source_1 = _RAND_7[2:0];
  _RAND_8 = {1{`RANDOM}};
  inflight = _RAND_8[7:0];
  _RAND_9 = {1{`RANDOM}};
  inflight_opcodes = _RAND_9[31:0];
  _RAND_10 = {1{`RANDOM}};
  inflight_sizes = _RAND_10[31:0];
  _RAND_11 = {1{`RANDOM}};
  a_first_counter_1 = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  watchdog = _RAND_13[31:0];
  _RAND_14 = {1{`RANDOM}};
  inflight_1 = _RAND_14[7:0];
  _RAND_15 = {1{`RANDOM}};
  inflight_sizes_1 = _RAND_15[31:0];
  _RAND_16 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  watchdog_1 = _RAND_17[31:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_42(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input         io_enq_bits_read,
  input  [12:0] io_enq_bits_index,
  input  [63:0] io_enq_bits_data,
  input  [7:0]  io_enq_bits_mask,
  input  [2:0]  io_enq_bits_extra_tlrr_extra_source,
  input         io_deq_ready,
  output        io_deq_valid,
  output        io_deq_bits_read,
  output [12:0] io_deq_bits_index,
  output [63:0] io_deq_bits_data,
  output [7:0]  io_deq_bits_mask,
  output [2:0]  io_deq_bits_extra_tlrr_extra_source,
  output [1:0]  io_deq_bits_extra_tlrr_extra_size
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [63:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_6;
`endif // RANDOMIZE_REG_INIT
  reg  ram_read [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_read_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_read_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_read_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_read_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_read_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_read_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_read_MPORT_en; // @[Decoupled.scala 275:95]
  reg [12:0] ram_index [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_index_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_index_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [12:0] ram_index_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [12:0] ram_index_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_index_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_index_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_index_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_data [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_en; // @[Decoupled.scala 275:95]
  reg [7:0] ram_mask [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_mask_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_mask_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [7:0] ram_mask_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [7:0] ram_mask_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_mask_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_mask_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_mask_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] ram_extra_tlrr_extra_source [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_extra_tlrr_extra_source_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_extra_tlrr_extra_source_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_extra_tlrr_extra_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_extra_tlrr_extra_source_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_extra_tlrr_extra_source_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_extra_tlrr_extra_source_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_extra_tlrr_extra_source_MPORT_en; // @[Decoupled.scala 275:95]
  reg [1:0] ram_extra_tlrr_extra_size [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_extra_tlrr_extra_size_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_extra_tlrr_extra_size_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [1:0] ram_extra_tlrr_extra_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [1:0] ram_extra_tlrr_extra_size_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_extra_tlrr_extra_size_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_extra_tlrr_extra_size_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_extra_tlrr_extra_size_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_deq = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign ram_read_io_deq_bits_MPORT_en = 1'h1;
  assign ram_read_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_read_io_deq_bits_MPORT_data = ram_read[ram_read_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_read_MPORT_data = io_enq_bits_read;
  assign ram_read_MPORT_addr = 1'h0;
  assign ram_read_MPORT_mask = 1'h1;
  assign ram_read_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_index_io_deq_bits_MPORT_en = 1'h1;
  assign ram_index_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_index_io_deq_bits_MPORT_data = ram_index[ram_index_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_index_MPORT_data = io_enq_bits_index;
  assign ram_index_MPORT_addr = 1'h0;
  assign ram_index_MPORT_mask = 1'h1;
  assign ram_index_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_data_io_deq_bits_MPORT_en = 1'h1;
  assign ram_data_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_data_io_deq_bits_MPORT_data = ram_data[ram_data_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_data_MPORT_data = io_enq_bits_data;
  assign ram_data_MPORT_addr = 1'h0;
  assign ram_data_MPORT_mask = 1'h1;
  assign ram_data_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_mask_io_deq_bits_MPORT_en = 1'h1;
  assign ram_mask_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_mask_io_deq_bits_MPORT_data = ram_mask[ram_mask_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_mask_MPORT_data = io_enq_bits_mask;
  assign ram_mask_MPORT_addr = 1'h0;
  assign ram_mask_MPORT_mask = 1'h1;
  assign ram_mask_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_extra_tlrr_extra_source_io_deq_bits_MPORT_en = 1'h1;
  assign ram_extra_tlrr_extra_source_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_extra_tlrr_extra_source_io_deq_bits_MPORT_data =
    ram_extra_tlrr_extra_source[ram_extra_tlrr_extra_source_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_extra_tlrr_extra_source_MPORT_data = io_enq_bits_extra_tlrr_extra_source;
  assign ram_extra_tlrr_extra_source_MPORT_addr = 1'h0;
  assign ram_extra_tlrr_extra_source_MPORT_mask = 1'h1;
  assign ram_extra_tlrr_extra_source_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_extra_tlrr_extra_size_io_deq_bits_MPORT_en = 1'h1;
  assign ram_extra_tlrr_extra_size_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_extra_tlrr_extra_size_io_deq_bits_MPORT_data =
    ram_extra_tlrr_extra_size[ram_extra_tlrr_extra_size_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_extra_tlrr_extra_size_MPORT_data = 2'h3;
  assign ram_extra_tlrr_extra_size_MPORT_addr = 1'h0;
  assign ram_extra_tlrr_extra_size_MPORT_mask = 1'h1;
  assign ram_extra_tlrr_extra_size_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = ~maybe_full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_read = ram_read_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_index = ram_index_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_data = ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_mask = ram_mask_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_extra_tlrr_extra_source = ram_extra_tlrr_extra_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_extra_tlrr_extra_size = ram_extra_tlrr_extra_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_read_MPORT_en & ram_read_MPORT_mask) begin
      ram_read[ram_read_MPORT_addr] <= ram_read_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_index_MPORT_en & ram_index_MPORT_mask) begin
      ram_index[ram_index_MPORT_addr] <= ram_index_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_data_MPORT_en & ram_data_MPORT_mask) begin
      ram_data[ram_data_MPORT_addr] <= ram_data_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_mask_MPORT_en & ram_mask_MPORT_mask) begin
      ram_mask[ram_mask_MPORT_addr] <= ram_mask_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_extra_tlrr_extra_source_MPORT_en & ram_extra_tlrr_extra_source_MPORT_mask) begin
      ram_extra_tlrr_extra_source[ram_extra_tlrr_extra_source_MPORT_addr] <= ram_extra_tlrr_extra_source_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_extra_tlrr_extra_size_MPORT_en & ram_extra_tlrr_extra_size_MPORT_mask) begin
      ram_extra_tlrr_extra_size[ram_extra_tlrr_extra_size_MPORT_addr] <= ram_extra_tlrr_extra_size_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_read[initvar] = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_index[initvar] = _RAND_1[12:0];
  _RAND_2 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_data[initvar] = _RAND_2[63:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_mask[initvar] = _RAND_3[7:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_extra_tlrr_extra_source[initvar] = _RAND_4[2:0];
  _RAND_5 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_extra_tlrr_extra_size[initvar] = _RAND_5[1:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_6 = {1{`RANDOM}};
  maybe_full = _RAND_6[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module DebugModule(
  input         clock,
  input         reset,
  output        auto_perip_in_a_ready,
  input         auto_perip_in_a_valid,
  input  [2:0]  auto_perip_in_a_bits_opcode,
  input  [2:0]  auto_perip_in_a_bits_source,
  input  [15:0] auto_perip_in_a_bits_address,
  input  [7:0]  auto_perip_in_a_bits_mask,
  input  [63:0] auto_perip_in_a_bits_data,
  input         auto_perip_in_d_ready,
  output        auto_perip_in_d_valid,
  output [2:0]  auto_perip_in_d_bits_opcode,
  output [1:0]  auto_perip_in_d_bits_size,
  output [2:0]  auto_perip_in_d_bits_source,
  output [63:0] auto_perip_in_d_bits_data,
  output        io_dmi_req_ready,
  input         io_dmi_req_valid,
  input  [7:0]  io_dmi_req_bits_addr,
  input  [31:0] io_dmi_req_bits_data,
  input  [1:0]  io_dmi_req_bits_op,
  input         io_dmi_resp_ready,
  output        io_dmi_resp_valid,
  output [31:0] io_dmi_resp_bits_data,
  input         io_dm_cmm_0_hartIsInReset,
  output        io_dm_cmm_0_hartResetReq,
  output        io_dm_cmm_0_hartHaltReq
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
  reg [31:0] _RAND_33;
  reg [31:0] _RAND_34;
  reg [31:0] _RAND_35;
  reg [31:0] _RAND_36;
  reg [31:0] _RAND_37;
  reg [31:0] _RAND_38;
  reg [31:0] _RAND_39;
  reg [31:0] _RAND_40;
  reg [31:0] _RAND_41;
  reg [31:0] _RAND_42;
  reg [31:0] _RAND_43;
  reg [31:0] _RAND_44;
  reg [31:0] _RAND_45;
`endif // RANDOMIZE_REG_INIT
  wire  monitor_clock; // @[Nodes.scala 24:25]
  wire  monitor_reset; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_opcode; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_source; // @[Nodes.scala 24:25]
  wire [15:0] monitor_io_in_a_bits_address; // @[Nodes.scala 24:25]
  wire [7:0] monitor_io_in_a_bits_mask; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  wire [1:0] monitor_io_in_d_bits_size; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_source; // @[Nodes.scala 24:25]
  wire  out_back_clock; // @[Decoupled.scala 377:21]
  wire  out_back_reset; // @[Decoupled.scala 377:21]
  wire  out_back_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  out_back_io_enq_valid; // @[Decoupled.scala 377:21]
  wire  out_back_io_enq_bits_read; // @[Decoupled.scala 377:21]
  wire [12:0] out_back_io_enq_bits_index; // @[Decoupled.scala 377:21]
  wire [63:0] out_back_io_enq_bits_data; // @[Decoupled.scala 377:21]
  wire [7:0] out_back_io_enq_bits_mask; // @[Decoupled.scala 377:21]
  wire [2:0] out_back_io_enq_bits_extra_tlrr_extra_source; // @[Decoupled.scala 377:21]
  wire  out_back_io_deq_ready; // @[Decoupled.scala 377:21]
  wire  out_back_io_deq_valid; // @[Decoupled.scala 377:21]
  wire  out_back_io_deq_bits_read; // @[Decoupled.scala 377:21]
  wire [12:0] out_back_io_deq_bits_index; // @[Decoupled.scala 377:21]
  wire [63:0] out_back_io_deq_bits_data; // @[Decoupled.scala 377:21]
  wire [7:0] out_back_io_deq_bits_mask; // @[Decoupled.scala 377:21]
  wire [2:0] out_back_io_deq_bits_extra_tlrr_extra_source; // @[Decoupled.scala 377:21]
  wire [1:0] out_back_io_deq_bits_extra_tlrr_extra_size; // @[Decoupled.scala 377:21]
  reg  dmactive; // @[DM.scala 170:29]
  reg  ndmreset; // @[DM.scala 171:29]
  reg  havereset_0; // @[DM.scala 173:28]
  reg  hartreset_0; // @[DM.scala 174:28]
  reg  resumeack_0; // @[DM.scala 176:28]
  reg  haltreq_0; // @[DM.scala 177:26]
  reg  resethaltreq_0; // @[DM.scala 179:31]
  reg  is_halted_0; // @[DM.scala 180:28]
  reg  busy; // @[DM.scala 181:23]
  reg [2:0] cmderr; // @[DM.scala 182:25]
  wire  _T = cmderr != 3'h0; // @[DM.scala 183:18]
  reg [2:0] REG; // @[DM.scala 183:45]
  reg [2:0] REG_1; // @[DM.scala 183:74]
  wire  _T_5 = ~reset; // @[DM.scala 183:36]
  reg  flags_0_is_resume; // @[DM.scala 209:26]
  reg  flags_0_is_going; // @[DM.scala 209:26]
  wire  dmi_req_bits_read = io_dmi_req_bits_op == 2'h1; // @[DM.scala 584:46]
  wire [5:0] dmi_resp_iindex = {io_dmi_req_bits_addr[5],io_dmi_req_bits_addr[4],io_dmi_req_bits_addr[3],
    io_dmi_req_bits_addr[2],io_dmi_req_bits_addr[1],io_dmi_req_bits_addr[0]}; // @[Cat.scala 33:92]
  wire [7:0] dmi_resp_findex = io_dmi_req_bits_addr & 8'hc0; // @[DM.scala 721:29]
  wire  _dmi_resp_T_68 = dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_T_34 = dmi_resp_findex == 8'h40; // @[DM.scala 721:29]
  wire [63:0] _dmi_resp_backSel_T = 64'h1 << dmi_resp_iindex; // @[OneHot.scala 57:35]
  wire  dmi_resp_backSel_16 = _dmi_resp_backSel_T[16]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_59 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_16 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  setresethaltEn = dmi_resp_woready_59 & io_dmi_req_bits_data[3]; // @[DM.scala 607:78]
  wire  _GEN_0 = setresethaltEn | resethaltreq_0; // @[DM.scala 179:31 227:{33,57}]
  wire  clrresethaltEn = dmi_resp_woready_59 & io_dmi_req_bits_data[2]; // @[DM.scala 606:78]
  wire  ackhavereset_W1 = dmi_resp_woready_59 & io_dmi_req_bits_data[28]; // @[DM.scala 613:80]
  wire  _GEN_2 = ackhavereset_W1 ? 1'h0 : havereset_0; // @[DM.scala 173:28 235:38 236:28]
  wire  _GEN_3 = io_dm_cmm_0_hartIsInReset | _GEN_2; // @[DM.scala 233:49 234:22]
  wire  resumeReq_W1 = ~haltreq_0 & dmi_resp_woready_59 & io_dmi_req_bits_data[30]; // @[DM.scala 615:103]
  wire [31:0] hartResumingId = out_back_io_deq_bits_data[31:0]; // @[RegisterRouter.scala 83:24]
  wire  _T_10 = 32'h0 == hartResumingId; // @[DM.scala 251:44]
  wire [7:0] out_oindex = {out_back_io_deq_bits_index[8],out_back_io_deq_bits_index[7],out_back_io_deq_bits_index[6],
    out_back_io_deq_bits_index[4],out_back_io_deq_bits_index[3],out_back_io_deq_bits_index[2],out_back_io_deq_bits_index
    [1],out_back_io_deq_bits_index[0]}; // @[Cat.scala 33:92]
  wire [255:0] _out_backSel_T = 256'h1 << out_oindex; // @[OneHot.scala 57:35]
  wire  out_backSel_1 = _out_backSel_T[1]; // @[RegisterRouter.scala 83:24]
  wire [12:0] out_bindex = out_back_io_deq_bits_index & 13'h1e20; // @[RegisterRouter.scala 83:24]
  wire  _out_T_23 = out_bindex == 13'h20; // @[RegisterRouter.scala 83:24]
  wire  out_woready_46 = out_back_io_deq_valid & auto_perip_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_1 &
    out_bindex == 13'h20; // @[RegisterRouter.scala 83:24]
  wire [7:0] _out_backMask_T_23 = out_back_io_deq_bits_mask[7] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _out_backMask_T_21 = out_back_io_deq_bits_mask[6] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _out_backMask_T_19 = out_back_io_deq_bits_mask[5] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _out_backMask_T_17 = out_back_io_deq_bits_mask[4] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _out_backMask_T_15 = out_back_io_deq_bits_mask[3] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _out_backMask_T_13 = out_back_io_deq_bits_mask[2] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _out_backMask_T_11 = out_back_io_deq_bits_mask[1] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _out_backMask_T_9 = out_back_io_deq_bits_mask[0] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [63:0] out_backMask = {_out_backMask_T_23,_out_backMask_T_21,_out_backMask_T_19,_out_backMask_T_17,
    _out_backMask_T_15,_out_backMask_T_13,_out_backMask_T_11,_out_backMask_T_9}; // @[Cat.scala 33:92]
  wire  out_womask_46 = &out_backMask[31:0]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_46 = out_woready_46 & out_womask_46; // @[RegisterRouter.scala 83:24]
  wire  _T_11 = out_f_woready_46 & 32'h0 == hartResumingId; // @[DM.scala 251:37]
  wire  _GEN_5 = out_f_woready_46 & 32'h0 == hartResumingId ? 1'h0 : flags_0_is_resume; // @[DM.scala 209:26 251:66 252:28]
  wire  _GEN_6 = resumeReq_W1 | _GEN_5; // @[DM.scala 249:47 250:28]
  wire  out_backSel_0 = _out_backSel_T[0]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_70 = out_back_io_deq_valid & auto_perip_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_0 &
    out_bindex == 13'h20; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_70 = out_woready_70 & out_womask_46; // @[RegisterRouter.scala 83:24]
  wire  _GEN_7 = out_f_woready_70 & _T_10 | is_halted_0; // @[DM.scala 263:61 264:22 180:28]
  wire  _GEN_9 = _T_11 | resumeack_0; // @[DM.scala 260:65 262:22 176:28]
  wire  _dmstatus_anyrunning_T_1 = ~is_halted_0; // @[DM.scala 279:64]
  wire  dmstatus_anyrunning = ~io_dm_cmm_0_hartIsInReset & ~is_halted_0; // @[DM.scala 279:62]
  wire  out_womask_47 = &out_backMask[63:32]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_47 = out_woready_46 & out_womask_47; // @[RegisterRouter.scala 83:24]
  wire [31:0] hartExceptionId = out_back_io_deq_bits_data[63:32]; // @[RegisterRouter.scala 83:24]
  wire  _GEN_14 = out_f_woready_47 & busy & 32'h0 == hartExceptionId ? 1'h0 : busy; // @[DM.scala 289:82 290:12 181:23]
  wire [2:0] _GEN_15 = out_f_woready_47 & busy & 32'h0 == hartExceptionId ? 3'h3 : cmderr; // @[DM.scala 289:82 291:14 182:25]
  wire  _GEN_16 = out_f_woready_70 & busy & _T_10 ? 1'h0 : _GEN_14; // @[DM.scala 287:76 288:12]
  wire [2:0] _GEN_17 = out_f_woready_70 & busy & _T_10 ? cmderr : _GEN_15; // @[DM.scala 182:25 287:76]
  wire  out_f_woready_71 = out_woready_70 & out_womask_47; // @[RegisterRouter.scala 83:24]
  wire  _GEN_18 = out_f_woready_71 ? 1'h0 : flags_0_is_going; // @[DM.scala 285:25 209:26 286:35]
  wire  _GEN_19 = out_f_woready_71 ? busy : _GEN_16; // @[DM.scala 181:23 285:25]
  wire [2:0] _GEN_20 = out_f_woready_71 ? cmderr : _GEN_17; // @[DM.scala 182:25 285:25]
  reg [31:0] abstractDataMem_qout_0; // @[DM.scala 306:39]
  reg [31:0] abstractDataMem_qout_1; // @[DM.scala 306:39]
  reg [31:0] abstractDataMem_qout_2; // @[DM.scala 306:39]
  reg [31:0] abstractDataMem_qout_3; // @[DM.scala 306:39]
  reg [31:0] abstractDataMem_qout_4; // @[DM.scala 306:39]
  reg [31:0] abstractDataMem_qout_5; // @[DM.scala 306:39]
  reg [31:0] abstractDataMem_qout_6; // @[DM.scala 306:39]
  reg [31:0] abstractDataMem_qout_7; // @[DM.scala 306:39]
  reg [31:0] abstractDataMem_qout_8; // @[DM.scala 306:39]
  reg [31:0] abstractDataMem_qout_9; // @[DM.scala 306:39]
  reg [31:0] abstractDataMem_qout_10; // @[DM.scala 306:39]
  reg [31:0] abstractDataMem_qout_11; // @[DM.scala 306:39]
  reg [31:0] programBufferMem_qout_0; // @[DM.scala 317:40]
  reg [31:0] programBufferMem_qout_1; // @[DM.scala 317:40]
  reg [31:0] programBufferMem_qout_2; // @[DM.scala 317:40]
  reg [31:0] programBufferMem_qout_3; // @[DM.scala 317:40]
  reg [31:0] programBufferMem_qout_4; // @[DM.scala 317:40]
  reg [31:0] programBufferMem_qout_5; // @[DM.scala 317:40]
  reg [31:0] programBufferMem_qout_6; // @[DM.scala 317:40]
  reg [31:0] programBufferMem_qout_7; // @[DM.scala 317:40]
  reg [31:0] programBufferMem_qout_8; // @[DM.scala 317:40]
  reg [31:0] programBufferMem_qout_9; // @[DM.scala 317:40]
  reg [31:0] programBufferMem_qout_10; // @[DM.scala 317:40]
  reg [31:0] programBufferMem_qout_11; // @[DM.scala 317:40]
  reg [31:0] programBufferMem_qout_12; // @[DM.scala 317:40]
  reg [31:0] programBufferMem_qout_13; // @[DM.scala 317:40]
  reg [31:0] programBufferMem_qout_14; // @[DM.scala 317:40]
  reg [31:0] programBufferMem_qout_15; // @[DM.scala 317:40]
  reg [31:0] command; // @[Reg.scala 35:20]
  wire  dmi_resp_backSel_23 = _dmi_resp_backSel_T[23]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_72 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_23 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire [7:0] cmdTpye = command[31:24]; // @[DM.scala 331:26]
  wire [23:0] control = command[23:0]; // @[DM.scala 332:26]
  wire  is_access_register = cmdTpye == 8'h0; // @[DM.scala 334:39]
  wire  is_quick_access = cmdTpye == 8'h1; // @[DM.scala 335:39]
  wire  is_access_memory = cmdTpye == 8'h2; // @[DM.scala 336:39]
  wire [2:0] aarsize = control[22:20]; // @[DM.scala 338:26]
  wire  postexec = control[18]; // @[DM.scala 340:27]
  wire  transfer = control[17]; // @[DM.scala 341:27]
  wire  write = control[16]; // @[DM.scala 342:24]
  wire [15:0] regno = control[15:0]; // @[DM.scala 343:24]
  wire  is_access_CSR = is_access_register & regno[15:12] == 4'h0; // @[DM.scala 345:44]
  wire  is_access_GPR = is_access_register & regno[15:5] == 11'h80; // @[DM.scala 346:44]
  wire  is_access_FPR = is_access_register & regno[15:5] == 11'h81; // @[DM.scala 347:44]
  wire  out_backSel_40 = _out_backSel_T[40]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_112 = out_back_io_deq_valid & auto_perip_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_40 &
    out_bindex == 13'h20; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_112 = out_woready_112 & out_womask_46; // @[RegisterRouter.scala 83:24]
  wire  dmi_resp_backSel_32 = _dmi_resp_backSel_T[32]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_16 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_32 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_132 = dmi_resp_woready_16; // @[DM.scala 721:29]
  wire  programBufferMem_wen1_0 = dmi_resp_woready_16; // @[DM.scala 721:29]
  wire  out_f_woready_113 = out_woready_112 & out_womask_47; // @[RegisterRouter.scala 83:24]
  wire  dmi_resp_backSel_33 = _dmi_resp_backSel_T[33]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_12 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_33 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_136 = dmi_resp_woready_12; // @[DM.scala 721:29]
  wire  programBufferMem_wen1_1 = dmi_resp_woready_12; // @[DM.scala 721:29]
  wire  out_backSel_41 = _out_backSel_T[41]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_60 = out_back_io_deq_valid & auto_perip_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_41 &
    out_bindex == 13'h20; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_60 = out_woready_60 & out_womask_46; // @[RegisterRouter.scala 83:24]
  wire  dmi_resp_backSel_34 = _dmi_resp_backSel_T[34]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_17 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_34 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_140 = dmi_resp_woready_17; // @[DM.scala 721:29]
  wire  programBufferMem_wen1_2 = dmi_resp_woready_17; // @[DM.scala 721:29]
  wire  out_f_woready_61 = out_woready_60 & out_womask_47; // @[RegisterRouter.scala 83:24]
  wire  dmi_resp_backSel_35 = _dmi_resp_backSel_T[35]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_50 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_35 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_144 = dmi_resp_woready_50; // @[DM.scala 721:29]
  wire  programBufferMem_wen1_3 = dmi_resp_woready_50; // @[DM.scala 721:29]
  wire  out_backSel_42 = _out_backSel_T[42]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_22 = out_back_io_deq_valid & auto_perip_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_42 &
    out_bindex == 13'h20; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_22 = out_woready_22 & out_womask_46; // @[RegisterRouter.scala 83:24]
  wire  dmi_resp_backSel_36 = _dmi_resp_backSel_T[36]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_74 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_36 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_148 = dmi_resp_woready_74; // @[DM.scala 721:29]
  wire  programBufferMem_wen1_4 = dmi_resp_woready_74; // @[DM.scala 721:29]
  wire  out_f_woready_23 = out_woready_22 & out_womask_47; // @[RegisterRouter.scala 83:24]
  wire  dmi_resp_backSel_37 = _dmi_resp_backSel_T[37]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_6 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_37 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_152 = dmi_resp_woready_6; // @[DM.scala 721:29]
  wire  programBufferMem_wen1_5 = dmi_resp_woready_6; // @[DM.scala 721:29]
  wire  out_backSel_43 = _out_backSel_T[43]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_132 = out_back_io_deq_valid & auto_perip_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_43 &
    out_bindex == 13'h20; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_132 = out_woready_132 & out_womask_46; // @[RegisterRouter.scala 83:24]
  wire  dmi_resp_backSel_38 = _dmi_resp_backSel_T[38]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_11 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_38 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_156 = dmi_resp_woready_11; // @[DM.scala 721:29]
  wire  programBufferMem_wen1_6 = dmi_resp_woready_11; // @[DM.scala 721:29]
  wire  out_f_woready_133 = out_woready_132 & out_womask_47; // @[RegisterRouter.scala 83:24]
  wire  dmi_resp_backSel_39 = _dmi_resp_backSel_T[39]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_49 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_39 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_160 = dmi_resp_woready_49; // @[DM.scala 721:29]
  wire  programBufferMem_wen1_7 = dmi_resp_woready_49; // @[DM.scala 721:29]
  wire  out_backSel_44 = _out_backSel_T[44]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_92 = out_back_io_deq_valid & auto_perip_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_44 &
    out_bindex == 13'h20; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_92 = out_woready_92 & out_womask_46; // @[RegisterRouter.scala 83:24]
  wire  dmi_resp_backSel_40 = _dmi_resp_backSel_T[40]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_71 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_40 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_164 = dmi_resp_woready_71; // @[DM.scala 721:29]
  wire  programBufferMem_wen1_8 = dmi_resp_woready_71; // @[DM.scala 721:29]
  wire  out_f_woready_93 = out_woready_92 & out_womask_47; // @[RegisterRouter.scala 83:24]
  wire  dmi_resp_backSel_41 = _dmi_resp_backSel_T[41]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_15 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_41 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_168 = dmi_resp_woready_15; // @[DM.scala 721:29]
  wire  programBufferMem_wen1_9 = dmi_resp_woready_15; // @[DM.scala 721:29]
  wire  out_backSel_45 = _out_backSel_T[45]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_48 = out_back_io_deq_valid & auto_perip_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_45 &
    out_bindex == 13'h20; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_48 = out_woready_48 & out_womask_46; // @[RegisterRouter.scala 83:24]
  wire  dmi_resp_backSel_42 = _dmi_resp_backSel_T[42]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_2 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_42 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_172 = dmi_resp_woready_2; // @[DM.scala 721:29]
  wire  programBufferMem_wen1_10 = dmi_resp_woready_2; // @[DM.scala 721:29]
  wire  out_f_woready_49 = out_woready_48 & out_womask_47; // @[RegisterRouter.scala 83:24]
  wire  dmi_resp_backSel_43 = _dmi_resp_backSel_T[43]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_70 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_43 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_176 = dmi_resp_woready_70; // @[DM.scala 721:29]
  wire  programBufferMem_wen1_11 = dmi_resp_woready_70; // @[DM.scala 721:29]
  wire  out_backSel_46 = _out_backSel_T[46]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_12 = out_back_io_deq_valid & auto_perip_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_46 &
    out_bindex == 13'h20; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_12 = out_woready_12 & out_womask_46; // @[RegisterRouter.scala 83:24]
  wire  dmi_resp_backSel_44 = _dmi_resp_backSel_T[44]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_46 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_44 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_180 = dmi_resp_woready_46; // @[DM.scala 721:29]
  wire  programBufferMem_wen1_12 = dmi_resp_woready_46; // @[DM.scala 721:29]
  wire  out_f_woready_13 = out_woready_12 & out_womask_47; // @[RegisterRouter.scala 83:24]
  wire  dmi_resp_backSel_45 = _dmi_resp_backSel_T[45]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_18 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_45 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_184 = dmi_resp_woready_18; // @[DM.scala 721:29]
  wire  programBufferMem_wen1_13 = dmi_resp_woready_18; // @[DM.scala 721:29]
  wire  out_backSel_47 = _out_backSel_T[47]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_142 = out_back_io_deq_valid & auto_perip_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_47 &
    out_bindex == 13'h20; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_142 = out_woready_142 & out_womask_46; // @[RegisterRouter.scala 83:24]
  wire  dmi_resp_backSel_46 = _dmi_resp_backSel_T[46]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_8 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_46 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_188 = dmi_resp_woready_8; // @[DM.scala 721:29]
  wire  programBufferMem_wen1_14 = dmi_resp_woready_8; // @[DM.scala 721:29]
  wire  out_f_woready_143 = out_woready_142 & out_womask_47; // @[RegisterRouter.scala 83:24]
  wire  dmi_resp_backSel_47 = _dmi_resp_backSel_T[47]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_76 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_47 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_192 = dmi_resp_woready_76; // @[DM.scala 721:29]
  wire  programBufferMem_wen1_15 = dmi_resp_woready_76; // @[DM.scala 721:29]
  reg [15:0] autoexecprogbuf; // @[DM.scala 369:34]
  reg [11:0] autoexecdata; // @[DM.scala 370:34]
  wire  dmi_resp_roready_16 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_32 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_131 = dmi_resp_roready_16; // @[DM.scala 721:29]
  wire  programBufferMem_ren1_0 = dmi_resp_roready_16; // @[DM.scala 721:29]
  wire  dmi_resp_roready_12 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_33 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_135 = dmi_resp_roready_12; // @[DM.scala 721:29]
  wire  programBufferMem_ren1_1 = dmi_resp_roready_12; // @[DM.scala 721:29]
  wire  dmi_resp_roready_17 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_34 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_139 = dmi_resp_roready_17; // @[DM.scala 721:29]
  wire  programBufferMem_ren1_2 = dmi_resp_roready_17; // @[DM.scala 721:29]
  wire  dmi_resp_roready_50 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_35 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_143 = dmi_resp_roready_50; // @[DM.scala 721:29]
  wire  programBufferMem_ren1_3 = dmi_resp_roready_50; // @[DM.scala 721:29]
  wire  dmi_resp_roready_74 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_36 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_147 = dmi_resp_roready_74; // @[DM.scala 721:29]
  wire  programBufferMem_ren1_4 = dmi_resp_roready_74; // @[DM.scala 721:29]
  wire  dmi_resp_roready_6 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_37 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_151 = dmi_resp_roready_6; // @[DM.scala 721:29]
  wire  programBufferMem_ren1_5 = dmi_resp_roready_6; // @[DM.scala 721:29]
  wire  dmi_resp_roready_11 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_38 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_155 = dmi_resp_roready_11; // @[DM.scala 721:29]
  wire  programBufferMem_ren1_6 = dmi_resp_roready_11; // @[DM.scala 721:29]
  wire  dmi_resp_roready_49 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_39 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_159 = dmi_resp_roready_49; // @[DM.scala 721:29]
  wire  programBufferMem_ren1_7 = dmi_resp_roready_49; // @[DM.scala 721:29]
  wire  _isProgramBufferMemAccessAuto_T_23 = (_dmi_resp_wofireMux_T_160 | _dmi_resp_rofireMux_T_159) & autoexecprogbuf[7
    ]; // @[DM.scala 372:119]
  wire  dmi_resp_roready_71 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_40 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_163 = dmi_resp_roready_71; // @[DM.scala 721:29]
  wire  programBufferMem_ren1_8 = dmi_resp_roready_71; // @[DM.scala 721:29]
  wire  _isProgramBufferMemAccessAuto_T_26 = (_dmi_resp_wofireMux_T_164 | _dmi_resp_rofireMux_T_163) & autoexecprogbuf[8
    ]; // @[DM.scala 372:119]
  wire  dmi_resp_roready_15 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_41 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_167 = dmi_resp_roready_15; // @[DM.scala 721:29]
  wire  programBufferMem_ren1_9 = dmi_resp_roready_15; // @[DM.scala 721:29]
  wire  _isProgramBufferMemAccessAuto_T_29 = (_dmi_resp_wofireMux_T_168 | _dmi_resp_rofireMux_T_167) & autoexecprogbuf[9
    ]; // @[DM.scala 372:119]
  wire  dmi_resp_roready_2 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_42 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_171 = dmi_resp_roready_2; // @[DM.scala 721:29]
  wire  programBufferMem_ren1_10 = dmi_resp_roready_2; // @[DM.scala 721:29]
  wire  dmi_resp_roready_70 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_43 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_175 = dmi_resp_roready_70; // @[DM.scala 721:29]
  wire  programBufferMem_ren1_11 = dmi_resp_roready_70; // @[DM.scala 721:29]
  wire  dmi_resp_roready_46 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_44 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_179 = dmi_resp_roready_46; // @[DM.scala 721:29]
  wire  programBufferMem_ren1_12 = dmi_resp_roready_46; // @[DM.scala 721:29]
  wire  dmi_resp_roready_18 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_45 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_183 = dmi_resp_roready_18; // @[DM.scala 721:29]
  wire  programBufferMem_ren1_13 = dmi_resp_roready_18; // @[DM.scala 721:29]
  wire  dmi_resp_roready_8 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_46 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_187 = dmi_resp_roready_8; // @[DM.scala 721:29]
  wire  programBufferMem_ren1_14 = dmi_resp_roready_8; // @[DM.scala 721:29]
  wire  dmi_resp_roready_76 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_47 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_191 = dmi_resp_roready_76; // @[DM.scala 721:29]
  wire  programBufferMem_ren1_15 = dmi_resp_roready_76; // @[DM.scala 721:29]
  wire  _isProgramBufferMemAccessAuto_T_56 = (_dmi_resp_wofireMux_T_132 | _dmi_resp_rofireMux_T_131) & autoexecprogbuf[0
    ] | (_dmi_resp_wofireMux_T_136 | _dmi_resp_rofireMux_T_135) & autoexecprogbuf[1] | (_dmi_resp_wofireMux_T_140 |
    _dmi_resp_rofireMux_T_139) & autoexecprogbuf[2] | (_dmi_resp_wofireMux_T_144 | _dmi_resp_rofireMux_T_143) &
    autoexecprogbuf[3] | (_dmi_resp_wofireMux_T_148 | _dmi_resp_rofireMux_T_147) & autoexecprogbuf[4] | (
    _dmi_resp_wofireMux_T_152 | _dmi_resp_rofireMux_T_151) & autoexecprogbuf[5] | (_dmi_resp_wofireMux_T_156 |
    _dmi_resp_rofireMux_T_155) & autoexecprogbuf[6] | _isProgramBufferMemAccessAuto_T_23 |
    _isProgramBufferMemAccessAuto_T_26 | _isProgramBufferMemAccessAuto_T_29; // @[DM.scala 372:151]
  wire  isProgramBufferMemAccessAuto = _isProgramBufferMemAccessAuto_T_56 | (_dmi_resp_wofireMux_T_172 |
    _dmi_resp_rofireMux_T_171) & autoexecprogbuf[10] | (_dmi_resp_wofireMux_T_176 | _dmi_resp_rofireMux_T_175) &
    autoexecprogbuf[11] | (_dmi_resp_wofireMux_T_180 | _dmi_resp_rofireMux_T_179) & autoexecprogbuf[12] | (
    _dmi_resp_wofireMux_T_184 | _dmi_resp_rofireMux_T_183) & autoexecprogbuf[13] | (_dmi_resp_wofireMux_T_188 |
    _dmi_resp_rofireMux_T_187) & autoexecprogbuf[14] | (_dmi_resp_wofireMux_T_192 | _dmi_resp_rofireMux_T_191) &
    autoexecprogbuf[15]; // @[DM.scala 372:151]
  wire  dmi_resp_backSel_4 = _dmi_resp_backSel_T[4]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_75 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_4 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_20 = dmi_resp_woready_75; // @[DM.scala 721:29]
  wire  abstractDataMem_wen1_0 = dmi_resp_woready_75; // @[DM.scala 721:29]
  wire  dmi_resp_roready_75 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_4 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_19 = dmi_resp_roready_75; // @[DM.scala 721:29]
  wire  abstractDataMem_ren1_0 = dmi_resp_roready_75; // @[DM.scala 721:29]
  wire  dmi_resp_backSel_5 = _dmi_resp_backSel_T[5]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_0 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_5 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_24 = dmi_resp_woready_0; // @[DM.scala 721:29]
  wire  abstractDataMem_wen1_1 = dmi_resp_woready_0; // @[DM.scala 721:29]
  wire  dmi_resp_roready_0 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_5 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_23 = dmi_resp_roready_0; // @[DM.scala 721:29]
  wire  abstractDataMem_ren1_1 = dmi_resp_roready_0; // @[DM.scala 721:29]
  wire  dmi_resp_backSel_6 = _dmi_resp_backSel_T[6]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_10 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_6 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_28 = dmi_resp_woready_10; // @[DM.scala 721:29]
  wire  abstractDataMem_wen1_2 = dmi_resp_woready_10; // @[DM.scala 721:29]
  wire  dmi_resp_roready_10 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_6 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_27 = dmi_resp_roready_10; // @[DM.scala 721:29]
  wire  abstractDataMem_ren1_2 = dmi_resp_roready_10; // @[DM.scala 721:29]
  wire  dmi_resp_backSel_7 = _dmi_resp_backSel_T[7]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_48 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_7 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_32 = dmi_resp_woready_48; // @[DM.scala 721:29]
  wire  abstractDataMem_wen1_3 = dmi_resp_woready_48; // @[DM.scala 721:29]
  wire  dmi_resp_roready_48 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_7 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_31 = dmi_resp_roready_48; // @[DM.scala 721:29]
  wire  abstractDataMem_ren1_3 = dmi_resp_roready_48; // @[DM.scala 721:29]
  wire  dmi_resp_backSel_8 = _dmi_resp_backSel_T[8]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_73 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_8 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_36 = dmi_resp_woready_73; // @[DM.scala 721:29]
  wire  abstractDataMem_wen1_4 = dmi_resp_woready_73; // @[DM.scala 721:29]
  wire  dmi_resp_roready_73 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_8 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_35 = dmi_resp_roready_73; // @[DM.scala 721:29]
  wire  abstractDataMem_ren1_4 = dmi_resp_roready_73; // @[DM.scala 721:29]
  wire  dmi_resp_backSel_9 = _dmi_resp_backSel_T[9]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_13 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_9 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_40 = dmi_resp_woready_13; // @[DM.scala 721:29]
  wire  abstractDataMem_wen1_5 = dmi_resp_woready_13; // @[DM.scala 721:29]
  wire  dmi_resp_roready_13 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_9 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_39 = dmi_resp_roready_13; // @[DM.scala 721:29]
  wire  abstractDataMem_ren1_5 = dmi_resp_roready_13; // @[DM.scala 721:29]
  wire  dmi_resp_backSel_10 = _dmi_resp_backSel_T[10]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_1 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_10 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_44 = dmi_resp_woready_1; // @[DM.scala 721:29]
  wire  abstractDataMem_wen1_6 = dmi_resp_woready_1; // @[DM.scala 721:29]
  wire  dmi_resp_roready_1 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_10 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_43 = dmi_resp_roready_1; // @[DM.scala 721:29]
  wire  abstractDataMem_ren1_6 = dmi_resp_roready_1; // @[DM.scala 721:29]
  wire  dmi_resp_backSel_11 = _dmi_resp_backSel_T[11]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_69 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_11 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_48 = dmi_resp_woready_69; // @[DM.scala 721:29]
  wire  abstractDataMem_wen1_7 = dmi_resp_woready_69; // @[DM.scala 721:29]
  wire  dmi_resp_roready_69 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_11 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_47 = dmi_resp_roready_69; // @[DM.scala 721:29]
  wire  abstractDataMem_ren1_7 = dmi_resp_roready_69; // @[DM.scala 721:29]
  wire  _isAbstractDataMemAccessAuto_T_23 = (_dmi_resp_wofireMux_T_48 | _dmi_resp_rofireMux_T_47) & autoexecdata[7]; // @[DM.scala 373:119]
  wire  dmi_resp_backSel_12 = _dmi_resp_backSel_T[12]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_47 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_12 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_52 = dmi_resp_woready_47; // @[DM.scala 721:29]
  wire  abstractDataMem_wen1_8 = dmi_resp_woready_47; // @[DM.scala 721:29]
  wire  dmi_resp_roready_47 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_12 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_51 = dmi_resp_roready_47; // @[DM.scala 721:29]
  wire  abstractDataMem_ren1_8 = dmi_resp_roready_47; // @[DM.scala 721:29]
  wire  _isAbstractDataMemAccessAuto_T_26 = (_dmi_resp_wofireMux_T_52 | _dmi_resp_rofireMux_T_51) & autoexecdata[8]; // @[DM.scala 373:119]
  wire  dmi_resp_backSel_13 = _dmi_resp_backSel_T[13]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_14 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_13 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_56 = dmi_resp_woready_14; // @[DM.scala 721:29]
  wire  abstractDataMem_wen1_9 = dmi_resp_woready_14; // @[DM.scala 721:29]
  wire  dmi_resp_roready_14 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_13 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_55 = dmi_resp_roready_14; // @[DM.scala 721:29]
  wire  abstractDataMem_ren1_9 = dmi_resp_roready_14; // @[DM.scala 721:29]
  wire  _isAbstractDataMemAccessAuto_T_29 = (_dmi_resp_wofireMux_T_56 | _dmi_resp_rofireMux_T_55) & autoexecdata[9]; // @[DM.scala 373:119]
  wire  dmi_resp_backSel_14 = _dmi_resp_backSel_T[14]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_7 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_14 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_60 = dmi_resp_woready_7; // @[DM.scala 721:29]
  wire  abstractDataMem_wen1_10 = dmi_resp_woready_7; // @[DM.scala 721:29]
  wire  dmi_resp_roready_7 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_14 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_59 = dmi_resp_roready_7; // @[DM.scala 721:29]
  wire  abstractDataMem_ren1_10 = dmi_resp_roready_7; // @[DM.scala 721:29]
  wire  dmi_resp_backSel_15 = _dmi_resp_backSel_T[15]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_77 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_15 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_wofireMux_T_64 = dmi_resp_woready_77; // @[DM.scala 721:29]
  wire  abstractDataMem_wen1_11 = dmi_resp_woready_77; // @[DM.scala 721:29]
  wire  dmi_resp_roready_77 = io_dmi_req_valid & io_dmi_resp_ready & dmi_req_bits_read & dmi_resp_backSel_15 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_rofireMux_T_63 = dmi_resp_roready_77; // @[DM.scala 721:29]
  wire  abstractDataMem_ren1_11 = dmi_resp_roready_77; // @[DM.scala 721:29]
  wire  _isAbstractDataMemAccessAuto_T_44 = (_dmi_resp_wofireMux_T_20 | _dmi_resp_rofireMux_T_19) & autoexecdata[0] | (
    _dmi_resp_wofireMux_T_24 | _dmi_resp_rofireMux_T_23) & autoexecdata[1] | (_dmi_resp_wofireMux_T_28 |
    _dmi_resp_rofireMux_T_27) & autoexecdata[2] | (_dmi_resp_wofireMux_T_32 | _dmi_resp_rofireMux_T_31) & autoexecdata[3
    ] | (_dmi_resp_wofireMux_T_36 | _dmi_resp_rofireMux_T_35) & autoexecdata[4] | (_dmi_resp_wofireMux_T_40 |
    _dmi_resp_rofireMux_T_39) & autoexecdata[5] | (_dmi_resp_wofireMux_T_44 | _dmi_resp_rofireMux_T_43) & autoexecdata[6
    ] | _isAbstractDataMemAccessAuto_T_23 | _isAbstractDataMemAccessAuto_T_26 | _isAbstractDataMemAccessAuto_T_29; // @[DM.scala 373:151]
  wire  isAbstractDataMemAccessAuto = _isAbstractDataMemAccessAuto_T_44 | (_dmi_resp_wofireMux_T_60 |
    _dmi_resp_rofireMux_T_59) & autoexecdata[10] | (_dmi_resp_wofireMux_T_64 | _dmi_resp_rofireMux_T_63) & autoexecdata[
    11]; // @[DM.scala 373:151]
  wire  out_backSel_48 = _out_backSel_T[48]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_102 = out_back_io_deq_valid & auto_perip_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_48 &
    out_bindex == 13'h20; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_102 = out_woready_102 & out_womask_46; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_103 = out_woready_102 & out_womask_47; // @[RegisterRouter.scala 83:24]
  wire  out_backSel_49 = _out_backSel_T[49]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_88 = out_back_io_deq_valid & auto_perip_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_49 &
    out_bindex == 13'h20; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_88 = out_woready_88 & out_womask_46; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_89 = out_woready_88 & out_womask_47; // @[RegisterRouter.scala 83:24]
  wire  out_backSel_50 = _out_backSel_T[50]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_122 = out_back_io_deq_valid & auto_perip_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_50 &
    out_bindex == 13'h20; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_122 = out_woready_122 & out_womask_46; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_123 = out_woready_122 & out_womask_47; // @[RegisterRouter.scala 83:24]
  wire  out_backSel_51 = _out_backSel_T[51]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_2 = out_back_io_deq_valid & auto_perip_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_51 &
    out_bindex == 13'h20; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_2 = out_woready_2 & out_womask_46; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_3 = out_woready_2 & out_womask_47; // @[RegisterRouter.scala 83:24]
  wire  out_backSel_52 = _out_backSel_T[52]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_24 = out_back_io_deq_valid & auto_perip_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_52 &
    out_bindex == 13'h20; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_24 = out_woready_24 & out_womask_46; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_25 = out_woready_24 & out_womask_47; // @[RegisterRouter.scala 83:24]
  wire  out_backSel_53 = _out_backSel_T[53]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_34 = out_back_io_deq_valid & auto_perip_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_53 &
    out_bindex == 13'h20; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_34 = out_woready_34 & out_womask_46; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_35 = out_woready_34 & out_womask_47; // @[RegisterRouter.scala 83:24]
  reg [31:0] whereTo; // @[DM.scala 387:26]
  wire [11:0] reg_sel = regno[11:0]; // @[DM.scala 405:28]
  wire [31:0] _abstractGeneratedMem_1_T = {reg_sel,5'h0,3'h2,12'h473}; // @[Cat.scala 33:92]
  wire  _abstractGeneratedMem_2_T = transfer & write; // @[DM.scala 414:25]
  wire [4:0] _abstractGeneratedMem_2_T_1 = transfer & write ? 5'h0 : 5'h8; // @[DM.scala 414:14]
  wire [2:0] _abstractGeneratedMem_2_T_3 = aarsize == 3'h2 ? 3'h2 : 3'h3; // @[DM.scala 416:14]
  wire [4:0] _abstractGeneratedMem_2_T_5 = _abstractGeneratedMem_2_T ? 5'h8 : 5'h0; // @[DM.scala 417:14]
  wire [6:0] _abstractGeneratedMem_2_T_7 = _abstractGeneratedMem_2_T ? 7'h3 : 7'h23; // @[DM.scala 418:14]
  wire [31:0] _abstractGeneratedMem_2_T_8 = {7'h1c,_abstractGeneratedMem_2_T_1,5'h0,_abstractGeneratedMem_2_T_3,
    _abstractGeneratedMem_2_T_5,_abstractGeneratedMem_2_T_7}; // @[Cat.scala 33:92]
  wire [31:0] _abstractGeneratedMem_3_T_1 = {reg_sel,5'h8,3'h1,12'h73}; // @[Cat.scala 33:92]
  wire [31:0] _abstractGeneratedMem_3_T_2 = _abstractGeneratedMem_2_T ? _abstractGeneratedMem_3_T_1 : 32'h13; // @[DM.scala 421:39]
  wire [31:0] _abstractGeneratedMem_5_T_1 = postexec ? 32'hc0006f : 32'h13; // @[DM.scala 428:39]
  wire [4:0] reg_sel_1 = regno[4:0]; // @[DM.scala 435:28]
  wire [4:0] _abstractGeneratedMem_2_T_10 = _abstractGeneratedMem_2_T ? 5'h0 : reg_sel_1; // @[DM.scala 442:14]
  wire [4:0] _abstractGeneratedMem_2_T_14 = _abstractGeneratedMem_2_T ? reg_sel_1 : 5'h0; // @[DM.scala 445:14]
  wire [31:0] _abstractGeneratedMem_2_T_17 = {7'h1c,_abstractGeneratedMem_2_T_10,5'h0,_abstractGeneratedMem_2_T_3,
    _abstractGeneratedMem_2_T_14,_abstractGeneratedMem_2_T_7}; // @[Cat.scala 33:92]
  wire [6:0] _abstractGeneratedMem_2_T_25 = _abstractGeneratedMem_2_T ? 7'h7 : 7'h27; // @[DM.scala 469:14]
  wire [31:0] _abstractGeneratedMem_2_T_26 = {7'h1c,_abstractGeneratedMem_2_T_10,5'h0,_abstractGeneratedMem_2_T_3,
    _abstractGeneratedMem_2_T_14,_abstractGeneratedMem_2_T_25}; // @[Cat.scala 33:92]
  wire [31:0] _GEN_80 = is_access_FPR ? _abstractGeneratedMem_2_T_26 : 32'h13; // @[DM.scala 457:36 463:33]
  wire [31:0] _GEN_83 = is_access_FPR ? _abstractGeneratedMem_5_T_1 : 32'h13; // @[DM.scala 457:36 474:33]
  wire [31:0] _GEN_88 = is_access_GPR ? _abstractGeneratedMem_2_T_17 : _GEN_80; // @[DM.scala 434:36 440:33]
  wire [31:0] _GEN_91 = is_access_GPR ? _abstractGeneratedMem_5_T_1 : _GEN_83; // @[DM.scala 434:36 450:33]
  wire [31:0] _GEN_94 = is_access_CSR ? 32'h7b341073 : 32'h13; // @[DM.scala 404:29 408:33]
  wire [31:0] _GEN_95 = is_access_CSR ? _abstractGeneratedMem_1_T : 32'h13; // @[DM.scala 404:29 410:33]
  wire [31:0] _GEN_96 = is_access_CSR ? _abstractGeneratedMem_2_T_8 : _GEN_88; // @[DM.scala 404:29 412:33]
  wire [31:0] _GEN_97 = is_access_CSR ? _abstractGeneratedMem_3_T_2 : 32'h13; // @[DM.scala 404:29 421:33]
  wire [31:0] _GEN_98 = is_access_CSR ? 32'h7b302473 : 32'h13; // @[DM.scala 404:29 427:33]
  wire [31:0] _GEN_99 = is_access_CSR ? _abstractGeneratedMem_5_T_1 : _GEN_91; // @[DM.scala 404:29 428:33]
  wire [11:0] _abstractGeneratedMem_3_T_3 = write ? 12'h380 : 12'h0; // @[DM.scala 503:12]
  wire [4:0] _abstractGeneratedMem_3_T_4 = write ? 5'h0 : 5'h8; // @[DM.scala 504:12]
  wire [31:0] _abstractGeneratedMem_3_T_5 = {_abstractGeneratedMem_3_T_3,_abstractGeneratedMem_3_T_4,aarsize,12'h483}; // @[Cat.scala 33:92]
  wire [6:0] _abstractGeneratedMem_4_T_1 = write ? 7'h0 : 7'h1c; // @[DM.scala 512:12]
  wire [4:0] _abstractGeneratedMem_4_T_2 = write ? 5'h8 : 5'h0; // @[DM.scala 514:12]
  wire [31:0] _abstractGeneratedMem_4_T_4 = {_abstractGeneratedMem_4_T_1,5'h9,_abstractGeneratedMem_4_T_2,aarsize,5'h0,7'h23
    }; // @[Cat.scala 33:92]
  wire [31:0] _GEN_103 = is_access_memory ? 32'h7b341073 : 32'h13; // @[DM.scala 483:37 488:31]
  wire [31:0] _GEN_104 = is_access_memory ? 32'h7b449073 : 32'h13; // @[DM.scala 483:37 490:31]
  wire [31:0] _GEN_105 = is_access_memory ? 32'h38803403 : 32'h13; // @[DM.scala 483:37 493:31]
  wire [31:0] _GEN_106 = is_access_memory ? _abstractGeneratedMem_3_T_5 : 32'h13; // @[DM.scala 483:37 502:31]
  wire [31:0] _GEN_107 = is_access_memory ? _abstractGeneratedMem_4_T_4 : 32'h13; // @[DM.scala 483:37 511:31]
  wire [31:0] _GEN_108 = is_access_memory ? 32'h7b302473 : 32'h13; // @[DM.scala 483:37 521:31]
  wire [31:0] _GEN_109 = is_access_memory ? 32'h7b4024f3 : 32'h13; // @[DM.scala 483:37 523:31]
  wire [31:0] _GEN_112 = is_quick_access ? 32'h13 : _GEN_103; // @[DM.scala 481:36]
  wire [31:0] _GEN_113 = is_quick_access ? 32'h13 : _GEN_104; // @[DM.scala 481:36]
  wire [31:0] _GEN_114 = is_quick_access ? 32'h13 : _GEN_105; // @[DM.scala 481:36]
  wire [31:0] _GEN_115 = is_quick_access ? 32'h13 : _GEN_106; // @[DM.scala 481:36]
  wire [31:0] _GEN_116 = is_quick_access ? 32'h13 : _GEN_107; // @[DM.scala 481:36]
  wire [31:0] _GEN_117 = is_quick_access ? 32'h13 : _GEN_108; // @[DM.scala 481:36]
  wire [31:0] _GEN_118 = is_quick_access ? 32'h13 : _GEN_109; // @[DM.scala 481:36]
  wire [31:0] abstractGeneratedMem_0 = is_access_register ? _GEN_94 : _GEN_112; // @[DM.scala 400:32]
  wire [31:0] abstractGeneratedMem_1 = is_access_register ? _GEN_95 : _GEN_113; // @[DM.scala 400:32]
  wire [31:0] abstractGeneratedMem_2 = is_access_register ? _GEN_96 : _GEN_114; // @[DM.scala 400:32]
  wire [31:0] abstractGeneratedMem_3 = is_access_register ? _GEN_97 : _GEN_115; // @[DM.scala 400:32]
  wire [31:0] abstractGeneratedMem_4 = is_access_register ? _GEN_98 : _GEN_116; // @[DM.scala 400:32]
  wire [31:0] abstractGeneratedMem_5 = is_access_register ? _GEN_99 : _GEN_117; // @[DM.scala 400:32]
  wire [31:0] abstractGeneratedMem_6 = is_access_register ? 32'h13 : _GEN_118; // @[DM.scala 400:32]
  wire [2:0] _GEN_129 = aarsize == 3'h4 ? 3'h2 : _GEN_20; // @[DM.scala 540:35 541:20]
  wire  _GEN_130 = aarsize == 3'h4 ? _GEN_19 : 1'h1; // @[DM.scala 540:35 543:18]
  wire  _GEN_132 = aarsize == 3'h4 ? _GEN_18 : 1'h1; // @[DM.scala 540:35 545:38]
  wire [2:0] _GEN_133 = is_access_register ? _GEN_129 : _GEN_20; // @[DM.scala 539:36]
  wire  _GEN_134 = is_access_register ? _GEN_130 : _GEN_19; // @[DM.scala 539:36]
  wire  _GEN_136 = is_access_register ? _GEN_132 : _GEN_18; // @[DM.scala 539:36]
  wire [2:0] _GEN_137 = is_quick_access ? 3'h2 : _GEN_133; // @[DM.scala 549:33 550:18]
  wire [2:0] _GEN_138 = is_access_memory ? 3'h2 : _GEN_137; // @[DM.scala 557:34 558:18]
  wire [2:0] _GEN_139 = _T ? _GEN_20 : _GEN_138; // @[DM.scala 536:37]
  wire  _GEN_140 = _T ? _GEN_19 : _GEN_134; // @[DM.scala 536:37]
  wire  _GEN_142 = _T ? _GEN_18 : _GEN_136; // @[DM.scala 536:37]
  wire [2:0] _GEN_143 = busy ? 3'h1 : _GEN_139; // @[DM.scala 534:28 535:16]
  wire [2:0] _GEN_147 = io_dm_cmm_0_hartIsInReset | dmstatus_anyrunning | _dmstatus_anyrunning_T_1 ? 3'h4 : _GEN_143; // @[DM.scala 532:104 533:16]
  wire [2:0] _GEN_151 = dmi_resp_woready_72 | isProgramBufferMemAccessAuto | isAbstractDataMemAccessAuto ? _GEN_147 :
    _GEN_20; // @[DM.scala 530:84]
  wire  dmi_resp_backSel_24 = _dmi_resp_backSel_T[24]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_3 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_24 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire  _dmi_resp_T_108 = dmi_resp_woready_3 & busy & cmderr == 3'h0; // @[DM.scala 666:128]
  wire [12:0] dmi_resp_prepend = {1'h0,autoexecdata}; // @[Cat.scala 33:92]
  wire [15:0] _dmi_resp_T_126 = {{3'd0}, dmi_resp_prepend}; // @[DM.scala 721:29]
  wire [31:0] dmi_resp_prepend_1 = {autoexecprogbuf,_dmi_resp_T_126}; // @[Cat.scala 33:92]
  wire [31:0] _dmi_resp_T_288 = {{31'd0}, is_halted_0}; // @[DM.scala 721:29]
  wire [16:0] dmi_resp_prepend_14 = {resumeack_0,1'h0,1'h0,io_dm_cmm_0_hartIsInReset,io_dm_cmm_0_hartIsInReset,
    dmstatus_anyrunning,dmstatus_anyrunning,is_halted_0,is_halted_0,8'ha2}; // @[Cat.scala 33:92]
  wire [20:0] dmi_resp_prepend_18 = {1'h0,havereset_0,havereset_0,resumeack_0,dmi_resp_prepend_14}; // @[Cat.scala 33:92]
  wire [21:0] _dmi_resp_T_450 = {{1'd0}, dmi_resp_prepend_18}; // @[DM.scala 721:29]
  wire [22:0] dmi_resp_prepend_19 = {1'h0,_dmi_resp_T_450}; // @[Cat.scala 33:92]
  wire  dmi_resp_backSel_22 = _dmi_resp_backSel_T[22]; // @[DM.scala 721:29]
  wire  dmi_resp_woready_41 = io_dmi_req_valid & io_dmi_resp_ready & ~dmi_req_bits_read & dmi_resp_backSel_22 &
    dmi_resp_findex == 8'h0; // @[DM.scala 721:29]
  wire [13:0] dmi_resp_prepend_24 = {1'h0,busy,1'h0,cmderr,8'hc}; // @[Cat.scala 33:92]
  wire [23:0] _dmi_resp_T_517 = {{10'd0}, dmi_resp_prepend_24}; // @[DM.scala 721:29]
  wire [28:0] dmi_resp_prepend_25 = {5'h10,_dmi_resp_T_517}; // @[Cat.scala 33:92]
  wire [4:0] dmi_resp_prepend_33 = {1'h0,1'h0,1'h0,ndmreset,dmactive}; // @[Cat.scala 33:92]
  wire [5:0] _dmi_resp_T_675 = {{1'd0}, dmi_resp_prepend_33}; // @[DM.scala 721:29]
  wire [6:0] dmi_resp_prepend_34 = {1'h0,_dmi_resp_T_675}; // @[Cat.scala 33:92]
  wire [15:0] _dmi_resp_T_684 = {{9'd0}, dmi_resp_prepend_34}; // @[DM.scala 721:29]
  wire [16:0] dmi_resp_prepend_35 = {1'h0,_dmi_resp_T_684}; // @[Cat.scala 33:92]
  wire [25:0] _dmi_resp_T_693 = {{9'd0}, dmi_resp_prepend_35}; // @[DM.scala 721:29]
  wire [31:0] dmi_resp_prepend_41 = {1'h0,1'h0,hartreset_0,1'h0,1'h0,1'h0,_dmi_resp_T_693}; // @[Cat.scala 33:92]
  wire  _GEN_424 = 6'h4 == dmi_resp_iindex ? _dmi_resp_T_68 : 6'h3 == dmi_resp_iindex | (6'h2 == dmi_resp_iindex | (6'h1
     == dmi_resp_iindex | _dmi_resp_T_34)); // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_425 = 6'h5 == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_424; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_426 = 6'h6 == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_425; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_427 = 6'h7 == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_426; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_428 = 6'h8 == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_427; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_429 = 6'h9 == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_428; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_430 = 6'ha == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_429; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_431 = 6'hb == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_430; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_432 = 6'hc == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_431; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_433 = 6'hd == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_432; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_434 = 6'he == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_433; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_435 = 6'hf == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_434; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_436 = 6'h10 == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_435; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_437 = 6'h11 == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_436; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_438 = 6'h12 == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_437; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_442 = 6'h16 == dmi_resp_iindex ? _dmi_resp_T_68 : 6'h15 == dmi_resp_iindex | (6'h14 == dmi_resp_iindex | (6'h13
     == dmi_resp_iindex | _GEN_438)); // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_443 = 6'h17 == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_442; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_444 = 6'h18 == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_443; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_449 = 6'h1d == dmi_resp_iindex ? _dmi_resp_T_68 : 6'h1c == dmi_resp_iindex | (6'h1b == dmi_resp_iindex | (6'h1a
     == dmi_resp_iindex | (6'h19 == dmi_resp_iindex | _GEN_444))); // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_452 = 6'h20 == dmi_resp_iindex ? _dmi_resp_T_68 : 6'h1f == dmi_resp_iindex | (6'h1e == dmi_resp_iindex |
    _GEN_449); // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_453 = 6'h21 == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_452; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_454 = 6'h22 == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_453; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_455 = 6'h23 == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_454; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_456 = 6'h24 == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_455; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_457 = 6'h25 == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_456; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_458 = 6'h26 == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_457; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_459 = 6'h27 == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_458; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_460 = 6'h28 == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_459; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_461 = 6'h29 == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_460; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_462 = 6'h2a == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_461; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_463 = 6'h2b == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_462; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_464 = 6'h2c == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_463; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_465 = 6'h2d == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_464; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_466 = 6'h2e == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_465; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_467 = 6'h2f == dmi_resp_iindex ? _dmi_resp_T_68 : _GEN_466; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_482 = 6'h3e == dmi_resp_iindex | (6'h3d == dmi_resp_iindex | (6'h3c == dmi_resp_iindex | (6'h3b ==
    dmi_resp_iindex | (6'h3a == dmi_resp_iindex | (6'h39 == dmi_resp_iindex | (6'h38 == dmi_resp_iindex | (6'h37 ==
    dmi_resp_iindex | (6'h36 == dmi_resp_iindex | (6'h35 == dmi_resp_iindex | (6'h34 == dmi_resp_iindex | (6'h33 ==
    dmi_resp_iindex | (6'h32 == dmi_resp_iindex | (6'h31 == dmi_resp_iindex | (6'h30 == dmi_resp_iindex | _GEN_467))))))
    )))))))); // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_483 = 6'h3f == dmi_resp_iindex | _GEN_482; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_485 = 6'h1 == dmi_resp_iindex ? 32'h0 : _dmi_resp_T_288; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_486 = 6'h2 == dmi_resp_iindex ? 32'h0 : _GEN_485; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_487 = 6'h3 == dmi_resp_iindex ? 32'h0 : _GEN_486; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_488 = 6'h4 == dmi_resp_iindex ? abstractDataMem_qout_0 : _GEN_487; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_489 = 6'h5 == dmi_resp_iindex ? abstractDataMem_qout_1 : _GEN_488; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_490 = 6'h6 == dmi_resp_iindex ? abstractDataMem_qout_2 : _GEN_489; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_491 = 6'h7 == dmi_resp_iindex ? abstractDataMem_qout_3 : _GEN_490; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_492 = 6'h8 == dmi_resp_iindex ? abstractDataMem_qout_4 : _GEN_491; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_493 = 6'h9 == dmi_resp_iindex ? abstractDataMem_qout_5 : _GEN_492; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_494 = 6'ha == dmi_resp_iindex ? abstractDataMem_qout_6 : _GEN_493; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_495 = 6'hb == dmi_resp_iindex ? abstractDataMem_qout_7 : _GEN_494; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_496 = 6'hc == dmi_resp_iindex ? abstractDataMem_qout_8 : _GEN_495; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_497 = 6'hd == dmi_resp_iindex ? abstractDataMem_qout_9 : _GEN_496; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_498 = 6'he == dmi_resp_iindex ? abstractDataMem_qout_10 : _GEN_497; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_499 = 6'hf == dmi_resp_iindex ? abstractDataMem_qout_11 : _GEN_498; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_500 = 6'h10 == dmi_resp_iindex ? dmi_resp_prepend_41 : _GEN_499; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _dmi_resp_out_bits_data_WIRE_1_17 = {{9'd0}, dmi_resp_prepend_19}; // @[MuxLiteral.scala 48:{48,48}]
  wire [31:0] _GEN_501 = 6'h11 == dmi_resp_iindex ? _dmi_resp_out_bits_data_WIRE_1_17 : _GEN_500; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_502 = 6'h12 == dmi_resp_iindex ? 32'h41c380 : _GEN_501; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_503 = 6'h13 == dmi_resp_iindex ? 32'h0 : _GEN_502; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_504 = 6'h14 == dmi_resp_iindex ? 32'h0 : _GEN_503; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_505 = 6'h15 == dmi_resp_iindex ? 32'h0 : _GEN_504; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _dmi_resp_out_bits_data_WIRE_1_22 = {{3'd0}, dmi_resp_prepend_25}; // @[MuxLiteral.scala 48:{48,48}]
  wire [31:0] _GEN_506 = 6'h16 == dmi_resp_iindex ? _dmi_resp_out_bits_data_WIRE_1_22 : _GEN_505; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_507 = 6'h17 == dmi_resp_iindex ? 32'h0 : _GEN_506; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_508 = 6'h18 == dmi_resp_iindex ? dmi_resp_prepend_1 : _GEN_507; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_509 = 6'h19 == dmi_resp_iindex ? 32'h0 : _GEN_508; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_510 = 6'h1a == dmi_resp_iindex ? 32'h0 : _GEN_509; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_511 = 6'h1b == dmi_resp_iindex ? 32'h0 : _GEN_510; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_512 = 6'h1c == dmi_resp_iindex ? 32'h0 : _GEN_511; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_513 = 6'h1d == dmi_resp_iindex ? 32'h0 : _GEN_512; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_514 = 6'h1e == dmi_resp_iindex ? 32'h0 : _GEN_513; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_515 = 6'h1f == dmi_resp_iindex ? 32'h0 : _GEN_514; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_516 = 6'h20 == dmi_resp_iindex ? programBufferMem_qout_0 : _GEN_515; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_517 = 6'h21 == dmi_resp_iindex ? programBufferMem_qout_1 : _GEN_516; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_518 = 6'h22 == dmi_resp_iindex ? programBufferMem_qout_2 : _GEN_517; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_519 = 6'h23 == dmi_resp_iindex ? programBufferMem_qout_3 : _GEN_518; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_520 = 6'h24 == dmi_resp_iindex ? programBufferMem_qout_4 : _GEN_519; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_521 = 6'h25 == dmi_resp_iindex ? programBufferMem_qout_5 : _GEN_520; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_522 = 6'h26 == dmi_resp_iindex ? programBufferMem_qout_6 : _GEN_521; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_523 = 6'h27 == dmi_resp_iindex ? programBufferMem_qout_7 : _GEN_522; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_524 = 6'h28 == dmi_resp_iindex ? programBufferMem_qout_8 : _GEN_523; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_525 = 6'h29 == dmi_resp_iindex ? programBufferMem_qout_9 : _GEN_524; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_526 = 6'h2a == dmi_resp_iindex ? programBufferMem_qout_10 : _GEN_525; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_527 = 6'h2b == dmi_resp_iindex ? programBufferMem_qout_11 : _GEN_526; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_528 = 6'h2c == dmi_resp_iindex ? programBufferMem_qout_12 : _GEN_527; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_529 = 6'h2d == dmi_resp_iindex ? programBufferMem_qout_13 : _GEN_528; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_530 = 6'h2e == dmi_resp_iindex ? programBufferMem_qout_14 : _GEN_529; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_531 = 6'h2f == dmi_resp_iindex ? programBufferMem_qout_15 : _GEN_530; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_532 = 6'h30 == dmi_resp_iindex ? 32'h0 : _GEN_531; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_533 = 6'h31 == dmi_resp_iindex ? 32'h0 : _GEN_532; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_534 = 6'h32 == dmi_resp_iindex ? 32'h0 : _GEN_533; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_535 = 6'h33 == dmi_resp_iindex ? 32'h0 : _GEN_534; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_536 = 6'h34 == dmi_resp_iindex ? 32'h0 : _GEN_535; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_537 = 6'h35 == dmi_resp_iindex ? 32'h0 : _GEN_536; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_538 = 6'h36 == dmi_resp_iindex ? 32'h0 : _GEN_537; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_539 = 6'h37 == dmi_resp_iindex ? 32'h0 : _GEN_538; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_540 = 6'h38 == dmi_resp_iindex ? 32'h0 : _GEN_539; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_541 = 6'h39 == dmi_resp_iindex ? 32'h0 : _GEN_540; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_542 = 6'h3a == dmi_resp_iindex ? 32'h0 : _GEN_541; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_543 = 6'h3b == dmi_resp_iindex ? 32'h0 : _GEN_542; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_544 = 6'h3c == dmi_resp_iindex ? 32'h0 : _GEN_543; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_545 = 6'h3d == dmi_resp_iindex ? 32'h0 : _GEN_544; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_546 = 6'h3e == dmi_resp_iindex ? 32'h0 : _GEN_545; // @[MuxLiteral.scala 48:{10,10}]
  wire [31:0] _GEN_547 = 6'h3f == dmi_resp_iindex ? 32'h0 : _GEN_546; // @[MuxLiteral.scala 48:{10,10}]
  wire [1:0] _T_32 = {flags_0_is_resume,flags_0_is_going}; // @[DM.scala 750:180]
  wire  _out_T_5 = out_bindex == 13'h0; // @[RegisterRouter.scala 83:24]
  wire [63:0] out_prepend = {abstractGeneratedMem_3,abstractGeneratedMem_2}; // @[Cat.scala 33:92]
  wire [63:0] out_prepend_1 = {abstractDataMem_qout_7,abstractDataMem_qout_6}; // @[Cat.scala 33:92]
  wire [63:0] out_prepend_9 = {programBufferMem_qout_13,programBufferMem_qout_12}; // @[Cat.scala 33:92]
  wire [63:0] out_prepend_17 = {programBufferMem_qout_5,programBufferMem_qout_4}; // @[Cat.scala 33:92]
  wire [63:0] out_prepend_18 = {abstractDataMem_qout_9,abstractDataMem_qout_8}; // @[Cat.scala 33:92]
  wire [63:0] out_prepend_26 = {abstractDataMem_qout_11,abstractDataMem_qout_10}; // @[Cat.scala 33:92]
  wire [63:0] out_prepend_27 = {abstractGeneratedMem_5,abstractGeneratedMem_4}; // @[Cat.scala 33:92]
  wire [63:0] out_prepend_36 = {programBufferMem_qout_11,programBufferMem_qout_10}; // @[Cat.scala 33:92]
  wire [7:0] _out_T_546 = {{6'd0}, _T_32}; // @[RegisterRouter.scala 83:24]
  wire [63:0] out_prepend_44 = {programBufferMem_qout_3,programBufferMem_qout_2}; // @[Cat.scala 33:92]
  wire [63:0] out_prepend_67 = {abstractDataMem_qout_3,abstractDataMem_qout_2}; // @[Cat.scala 33:92]
  wire [63:0] out_prepend_68 = {32'h100073,abstractGeneratedMem_6}; // @[Cat.scala 33:92]
  wire [63:0] out_prepend_69 = {programBufferMem_qout_9,programBufferMem_qout_8}; // @[Cat.scala 33:92]
  wire [63:0] out_prepend_77 = {abstractDataMem_qout_1,abstractDataMem_qout_0}; // @[Cat.scala 33:92]
  wire [63:0] out_prepend_85 = {programBufferMem_qout_1,programBufferMem_qout_0}; // @[Cat.scala 33:92]
  wire [63:0] out_prepend_93 = {abstractDataMem_qout_5,abstractDataMem_qout_4}; // @[Cat.scala 33:92]
  wire [63:0] out_prepend_101 = {programBufferMem_qout_7,programBufferMem_qout_6}; // @[Cat.scala 33:92]
  wire [63:0] out_prepend_109 = {programBufferMem_qout_15,programBufferMem_qout_14}; // @[Cat.scala 33:92]
  wire [63:0] out_prepend_110 = {abstractGeneratedMem_1,abstractGeneratedMem_0}; // @[Cat.scala 33:92]
  wire  _GEN_1572 = 8'h8c == out_oindex ? _out_T_5 : 1'h1; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1573 = 8'h8b == out_oindex ? _out_T_5 : _GEN_1572; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1574 = 8'h8a == out_oindex ? _out_T_5 : _GEN_1573; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1575 = 8'h89 == out_oindex ? _out_T_5 : _GEN_1574; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1576 = 8'h88 == out_oindex ? _out_T_5 : _GEN_1575; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1577 = 8'h87 == out_oindex ? _out_T_5 : _GEN_1576; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1578 = 8'h86 == out_oindex ? _out_T_5 : _GEN_1577; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1579 = 8'h85 == out_oindex ? _out_T_5 : _GEN_1578; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1580 = 8'h84 == out_oindex ? _out_T_5 : _GEN_1579; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1581 = 8'h83 == out_oindex ? _out_T_5 : _GEN_1580; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1582 = 8'h82 == out_oindex ? _out_T_5 : _GEN_1581; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1583 = 8'h81 == out_oindex ? _out_T_5 : _GEN_1582; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1584 = 8'h80 == out_oindex ? _out_T_5 : _GEN_1583; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1585 = 8'h40 == out_oindex ? _out_T_5 : _GEN_1584; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1586 = 8'h35 == out_oindex ? _out_T_23 : _GEN_1585; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1587 = 8'h34 == out_oindex ? _out_T_23 : _GEN_1586; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1588 = 8'h33 == out_oindex ? _out_T_23 : _GEN_1587; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1589 = 8'h32 == out_oindex ? _out_T_23 : _GEN_1588; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1590 = 8'h31 == out_oindex ? _out_T_23 : _GEN_1589; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1591 = 8'h30 == out_oindex ? _out_T_23 : _GEN_1590; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1592 = 8'h2f == out_oindex ? _out_T_23 : _GEN_1591; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1593 = 8'h2e == out_oindex ? _out_T_23 : _GEN_1592; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1594 = 8'h2d == out_oindex ? _out_T_23 : _GEN_1593; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1595 = 8'h2c == out_oindex ? _out_T_23 : _GEN_1594; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1596 = 8'h2b == out_oindex ? _out_T_23 : _GEN_1595; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1597 = 8'h2a == out_oindex ? _out_T_23 : _GEN_1596; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1598 = 8'h29 == out_oindex ? _out_T_23 : _GEN_1597; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1599 = 8'h28 == out_oindex ? _out_T_23 : _GEN_1598; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1600 = 8'h27 == out_oindex ? _out_T_23 : _GEN_1599; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1601 = 8'h26 == out_oindex ? _out_T_23 : _GEN_1600; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1602 = 8'h25 == out_oindex ? _out_T_23 : _GEN_1601; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1603 = 8'h24 == out_oindex ? _out_T_23 : _GEN_1602; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1604 = 8'h20 == out_oindex ? _out_T_23 : _GEN_1603; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_1605 = 8'h1 == out_oindex ? _out_T_23 : _GEN_1604; // @[MuxLiteral.scala 53:{26,32}]
  wire  out_out_bits_data_out = 8'h0 == out_oindex ? _out_T_23 : _GEN_1605; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1607 = 8'h8c == out_oindex ? 64'h7b2000737b202473 : 64'h0; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1608 = 8'h8b == out_oindex ? 64'h10802423f1402473 : _GEN_1607; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1609 = 8'h8a == out_oindex ? 64'h300000670000100f : _GEN_1608; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1610 = 8'h89 == out_oindex ? 64'hff0000f10002223 : _GEN_1609; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1611 = 8'h88 == out_oindex ? 64'h7b20247300100073 : _GEN_1610; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1612 = 8'h87 == out_oindex ? 64'h10002623fddff06f : _GEN_1611; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1613 = 8'h86 == out_oindex ? 64'hfc0418e300247413 : _GEN_1612; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1614 = 8'h85 == out_oindex ? 64'h40044403f1402473 : _GEN_1613; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1615 = 8'h84 == out_oindex ? 64'h204106300147413 : _GEN_1614; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1616 = 8'h83 == out_oindex ? 64'h4004440310802023 : _GEN_1615; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1617 = 8'h82 == out_oindex ? 64'hf14024737b241073 : _GEN_1616; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1618 = 8'h81 == out_oindex ? 64'hff0000f0340006f : _GEN_1617; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1619 = 8'h80 == out_oindex ? 64'h540006f00c0006f : _GEN_1618; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1620 = 8'h40 == out_oindex ? {{56'd0}, _out_T_546} : _GEN_1619; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1621 = 8'h35 == out_oindex ? out_prepend_26 : _GEN_1620; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1622 = 8'h34 == out_oindex ? out_prepend_18 : _GEN_1621; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1623 = 8'h33 == out_oindex ? out_prepend_1 : _GEN_1622; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1624 = 8'h32 == out_oindex ? out_prepend_93 : _GEN_1623; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1625 = 8'h31 == out_oindex ? out_prepend_67 : _GEN_1624; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1626 = 8'h30 == out_oindex ? out_prepend_77 : _GEN_1625; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1627 = 8'h2f == out_oindex ? out_prepend_109 : _GEN_1626; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1628 = 8'h2e == out_oindex ? out_prepend_9 : _GEN_1627; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1629 = 8'h2d == out_oindex ? out_prepend_36 : _GEN_1628; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1630 = 8'h2c == out_oindex ? out_prepend_69 : _GEN_1629; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1631 = 8'h2b == out_oindex ? out_prepend_101 : _GEN_1630; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1632 = 8'h2a == out_oindex ? out_prepend_17 : _GEN_1631; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1633 = 8'h29 == out_oindex ? out_prepend_44 : _GEN_1632; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1634 = 8'h28 == out_oindex ? out_prepend_85 : _GEN_1633; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1635 = 8'h27 == out_oindex ? out_prepend_68 : _GEN_1634; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1636 = 8'h26 == out_oindex ? out_prepend_27 : _GEN_1635; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1637 = 8'h25 == out_oindex ? out_prepend : _GEN_1636; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1638 = 8'h24 == out_oindex ? out_prepend_110 : _GEN_1637; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1639 = 8'h20 == out_oindex ? {{32'd0}, whereTo} : _GEN_1638; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_1640 = 8'h1 == out_oindex ? 64'h0 : _GEN_1639; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] out_out_bits_data_out_1 = 8'h0 == out_oindex ? 64'h0 : _GEN_1640; // @[MuxLiteral.scala 53:{26,32}]
  wire  out_bits_read = out_back_io_deq_bits_read; // @[RegisterRouter.scala 83:{24,24}]
  wire  _T_33 = io_dmi_req_ready & io_dmi_req_valid; // @[Decoupled.scala 52:35]
  wire  _T_40 = io_dmi_req_bits_addr == 8'h4; // @[DM.scala 758:39]
  wire  _T_43 = io_dmi_req_bits_addr == 8'h5; // @[DM.scala 759:39]
  wire  _T_46 = io_dmi_req_bits_addr == 8'h6; // @[DM.scala 760:39]
  wire  _T_49 = io_dmi_req_bits_addr == 8'h7; // @[DM.scala 761:39]
  wire  _T_52 = io_dmi_req_bits_addr == 8'h8; // @[DM.scala 762:39]
  wire  _T_55 = io_dmi_req_bits_addr == 8'h9; // @[DM.scala 763:39]
  wire  _T_58 = io_dmi_req_bits_addr == 8'ha; // @[DM.scala 764:39]
  wire  _T_61 = io_dmi_req_bits_addr == 8'hb; // @[DM.scala 765:39]
  wire  _T_64 = io_dmi_req_bits_addr == 8'hc; // @[DM.scala 766:39]
  wire  _T_67 = io_dmi_req_bits_addr == 8'hd; // @[DM.scala 767:39]
  wire  _T_70 = io_dmi_req_bits_addr == 8'he; // @[DM.scala 768:39]
  wire  _T_73 = io_dmi_req_bits_addr == 8'hf; // @[DM.scala 769:39]
  wire  _T_76 = io_dmi_req_bits_addr == 8'h10; // @[DM.scala 770:39]
  wire  _T_79 = io_dmi_req_bits_addr == 8'h11; // @[DM.scala 771:39]
  wire  _T_82 = io_dmi_req_bits_addr == 8'h12; // @[DM.scala 772:39]
  wire  _T_85 = io_dmi_req_bits_addr == 8'h16; // @[DM.scala 773:39]
  wire  _T_88 = io_dmi_req_bits_addr == 8'h17; // @[DM.scala 774:39]
  wire  _T_91 = io_dmi_req_bits_addr == 8'h18; // @[DM.scala 775:39]
  wire  _T_94 = io_dmi_req_bits_addr == 8'h1d; // @[DM.scala 776:39]
  wire  _T_97 = io_dmi_req_bits_addr == 8'h20; // @[DM.scala 777:39]
  wire  _T_100 = io_dmi_req_bits_addr == 8'h21; // @[DM.scala 778:39]
  wire  _T_103 = io_dmi_req_bits_addr == 8'h22; // @[DM.scala 779:39]
  wire  _T_106 = io_dmi_req_bits_addr == 8'h23; // @[DM.scala 780:39]
  wire  _T_109 = io_dmi_req_bits_addr == 8'h24; // @[DM.scala 781:39]
  wire  _T_112 = io_dmi_req_bits_addr == 8'h25; // @[DM.scala 782:39]
  wire  _T_115 = io_dmi_req_bits_addr == 8'h26; // @[DM.scala 783:39]
  wire  _T_118 = io_dmi_req_bits_addr == 8'h27; // @[DM.scala 784:39]
  wire  _T_121 = io_dmi_req_bits_addr == 8'h28; // @[DM.scala 785:39]
  wire  _T_124 = io_dmi_req_bits_addr == 8'h29; // @[DM.scala 786:39]
  wire  _T_127 = io_dmi_req_bits_addr == 8'h2a; // @[DM.scala 787:39]
  wire  _T_130 = io_dmi_req_bits_addr == 8'h2b; // @[DM.scala 788:39]
  wire  _T_133 = io_dmi_req_bits_addr == 8'h2c; // @[DM.scala 789:39]
  wire  _T_136 = io_dmi_req_bits_addr == 8'h2d; // @[DM.scala 790:39]
  wire  _T_139 = io_dmi_req_bits_addr == 8'h2e; // @[DM.scala 791:39]
  wire  _T_142 = io_dmi_req_bits_addr == 8'h2f; // @[DM.scala 792:39]
  wire  _T_145 = io_dmi_req_bits_addr == 8'h40; // @[DM.scala 793:39]
  wire  _T_150 = io_dmi_resp_ready & io_dmi_resp_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_1677 = _T_33 & ~_T_40; // @[DM.scala 759:64]
  wire  _GEN_1682 = _GEN_1677 & ~_T_43; // @[DM.scala 760:64]
  wire  _GEN_1689 = _GEN_1682 & ~_T_46; // @[DM.scala 761:64]
  wire  _GEN_1698 = _GEN_1689 & ~_T_49; // @[DM.scala 762:64]
  wire  _GEN_1709 = _GEN_1698 & ~_T_52; // @[DM.scala 763:64]
  wire  _GEN_1722 = _GEN_1709 & ~_T_55; // @[DM.scala 764:64]
  wire  _GEN_1737 = _GEN_1722 & ~_T_58; // @[DM.scala 765:64]
  wire  _GEN_1754 = _GEN_1737 & ~_T_61; // @[DM.scala 766:64]
  wire  _GEN_1773 = _GEN_1754 & ~_T_64; // @[DM.scala 767:64]
  wire  _GEN_1794 = _GEN_1773 & ~_T_67; // @[DM.scala 768:64]
  wire  _GEN_1817 = _GEN_1794 & ~_T_70; // @[DM.scala 769:64]
  wire  _GEN_1842 = _GEN_1817 & ~_T_73; // @[DM.scala 770:64]
  wire  _GEN_1869 = _GEN_1842 & ~_T_76; // @[DM.scala 771:64]
  wire  _GEN_1898 = _GEN_1869 & ~_T_79; // @[DM.scala 772:64]
  wire  _GEN_1929 = _GEN_1898 & ~_T_82; // @[DM.scala 773:64]
  wire  _GEN_1962 = _GEN_1929 & ~_T_85; // @[DM.scala 774:64]
  wire  _GEN_1997 = _GEN_1962 & ~_T_88; // @[DM.scala 775:64]
  wire  _GEN_2034 = _GEN_1997 & ~_T_91; // @[DM.scala 776:64]
  wire  _GEN_2073 = _GEN_2034 & ~_T_94; // @[DM.scala 777:64]
  wire  _GEN_2114 = _GEN_2073 & ~_T_97; // @[DM.scala 778:64]
  wire  _GEN_2157 = _GEN_2114 & ~_T_100; // @[DM.scala 779:64]
  wire  _GEN_2202 = _GEN_2157 & ~_T_103; // @[DM.scala 780:64]
  wire  _GEN_2249 = _GEN_2202 & ~_T_106; // @[DM.scala 781:64]
  wire  _GEN_2298 = _GEN_2249 & ~_T_109; // @[DM.scala 782:64]
  wire  _GEN_2349 = _GEN_2298 & ~_T_112; // @[DM.scala 783:64]
  wire  _GEN_2402 = _GEN_2349 & ~_T_115; // @[DM.scala 784:64]
  wire  _GEN_2457 = _GEN_2402 & ~_T_118; // @[DM.scala 785:64]
  wire  _GEN_2514 = _GEN_2457 & ~_T_121; // @[DM.scala 786:64]
  wire  _GEN_2573 = _GEN_2514 & ~_T_124; // @[DM.scala 787:64]
  wire  _GEN_2634 = _GEN_2573 & ~_T_127; // @[DM.scala 788:64]
  wire  _GEN_2697 = _GEN_2634 & ~_T_130; // @[DM.scala 789:64]
  wire  _GEN_2762 = _GEN_2697 & ~_T_133; // @[DM.scala 790:64]
  wire  _GEN_2829 = _GEN_2762 & ~_T_136; // @[DM.scala 791:64]
  wire  _GEN_2898 = _GEN_2829 & ~_T_139; // @[DM.scala 792:64]
  wire  _GEN_2969 = _GEN_2898 & ~_T_142; // @[DM.scala 793:64]
  TLMonitor_15 monitor ( // @[Nodes.scala 24:25]
    .clock(monitor_clock),
    .reset(monitor_reset),
    .io_in_a_ready(monitor_io_in_a_ready),
    .io_in_a_valid(monitor_io_in_a_valid),
    .io_in_a_bits_opcode(monitor_io_in_a_bits_opcode),
    .io_in_a_bits_source(monitor_io_in_a_bits_source),
    .io_in_a_bits_address(monitor_io_in_a_bits_address),
    .io_in_a_bits_mask(monitor_io_in_a_bits_mask),
    .io_in_d_ready(monitor_io_in_d_ready),
    .io_in_d_valid(monitor_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_io_in_d_bits_opcode),
    .io_in_d_bits_size(monitor_io_in_d_bits_size),
    .io_in_d_bits_source(monitor_io_in_d_bits_source)
  );
  Queue_42 out_back ( // @[Decoupled.scala 377:21]
    .clock(out_back_clock),
    .reset(out_back_reset),
    .io_enq_ready(out_back_io_enq_ready),
    .io_enq_valid(out_back_io_enq_valid),
    .io_enq_bits_read(out_back_io_enq_bits_read),
    .io_enq_bits_index(out_back_io_enq_bits_index),
    .io_enq_bits_data(out_back_io_enq_bits_data),
    .io_enq_bits_mask(out_back_io_enq_bits_mask),
    .io_enq_bits_extra_tlrr_extra_source(out_back_io_enq_bits_extra_tlrr_extra_source),
    .io_deq_ready(out_back_io_deq_ready),
    .io_deq_valid(out_back_io_deq_valid),
    .io_deq_bits_read(out_back_io_deq_bits_read),
    .io_deq_bits_index(out_back_io_deq_bits_index),
    .io_deq_bits_data(out_back_io_deq_bits_data),
    .io_deq_bits_mask(out_back_io_deq_bits_mask),
    .io_deq_bits_extra_tlrr_extra_source(out_back_io_deq_bits_extra_tlrr_extra_source),
    .io_deq_bits_extra_tlrr_extra_size(out_back_io_deq_bits_extra_tlrr_extra_size)
  );
  assign auto_perip_in_a_ready = out_back_io_enq_ready; // @[Decoupled.scala 381:17 RegisterRouter.scala 83:24]
  assign auto_perip_in_d_valid = out_back_io_deq_valid; // @[RegisterRouter.scala 83:24]
  assign auto_perip_in_d_bits_opcode = {{2'd0}, out_bits_read}; // @[Nodes.scala 1210:84 RegisterRouter.scala 98:19]
  assign auto_perip_in_d_bits_size = out_back_io_deq_bits_extra_tlrr_extra_size; // @[RegisterRouter.scala 83:{24,24}]
  assign auto_perip_in_d_bits_source = out_back_io_deq_bits_extra_tlrr_extra_source; // @[RegisterRouter.scala 83:{24,24}]
  assign auto_perip_in_d_bits_data = out_out_bits_data_out ? out_out_bits_data_out_1 : 64'h0; // @[RegisterRouter.scala 83:24]
  assign io_dmi_req_ready = io_dmi_resp_ready; // @[DM.scala 721:29]
  assign io_dmi_resp_valid = io_dmi_req_valid; // @[DM.scala 721:29]
  assign io_dmi_resp_bits_data = _GEN_483 ? _GEN_547 : 32'h0; // @[DM.scala 721:29]
  assign io_dm_cmm_0_hartResetReq = hartreset_0; // @[DM.scala 242:33]
  assign io_dm_cmm_0_hartHaltReq = haltreq_0 | resethaltreq_0; // @[DM.scala 243:47]
  assign monitor_clock = clock;
  assign monitor_reset = reset;
  assign monitor_io_in_a_ready = out_back_io_enq_ready; // @[Decoupled.scala 381:17 RegisterRouter.scala 83:24]
  assign monitor_io_in_a_valid = auto_perip_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_opcode = auto_perip_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_source = auto_perip_in_a_bits_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_address = auto_perip_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_mask = auto_perip_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_ready = auto_perip_in_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_valid = out_back_io_deq_valid; // @[RegisterRouter.scala 83:24]
  assign monitor_io_in_d_bits_opcode = {{2'd0}, out_bits_read}; // @[Nodes.scala 1210:84 RegisterRouter.scala 98:19]
  assign monitor_io_in_d_bits_size = out_back_io_deq_bits_extra_tlrr_extra_size; // @[RegisterRouter.scala 83:{24,24}]
  assign monitor_io_in_d_bits_source = out_back_io_deq_bits_extra_tlrr_extra_source; // @[RegisterRouter.scala 83:{24,24}]
  assign out_back_clock = clock;
  assign out_back_reset = reset;
  assign out_back_io_enq_valid = auto_perip_in_a_valid; // @[RegisterRouter.scala 83:24]
  assign out_back_io_enq_bits_read = auto_perip_in_a_bits_opcode == 3'h4; // @[RegisterRouter.scala 72:36]
  assign out_back_io_enq_bits_index = auto_perip_in_a_bits_address[15:3]; // @[Edges.scala 191:34]
  assign out_back_io_enq_bits_data = auto_perip_in_a_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign out_back_io_enq_bits_mask = auto_perip_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign out_back_io_enq_bits_extra_tlrr_extra_source = auto_perip_in_a_bits_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign out_back_io_deq_ready = auto_perip_in_d_ready; // @[RegisterRouter.scala 83:24]
  always @(posedge clock) begin
    if (reset) begin // @[DM.scala 170:29]
      dmactive <= 1'h0; // @[DM.scala 170:29]
    end else if (dmi_resp_woready_59) begin // @[RegField.scala 74:88]
      dmactive <= io_dmi_req_bits_data[0]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[DM.scala 171:29]
      ndmreset <= 1'h0; // @[DM.scala 171:29]
    end else if (dmi_resp_woready_59) begin // @[RegField.scala 74:88]
      ndmreset <= io_dmi_req_bits_data[1]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[DM.scala 173:28]
      havereset_0 <= 1'h0; // @[DM.scala 173:28]
    end else if (~dmactive) begin // @[DM.scala 231:25]
      havereset_0 <= 1'h0; // @[DM.scala 232:22]
    end else begin
      havereset_0 <= _GEN_3;
    end
    if (reset) begin // @[DM.scala 174:28]
      hartreset_0 <= 1'h0; // @[DM.scala 174:28]
    end else if (dmi_resp_woready_59) begin // @[RegField.scala 74:88]
      hartreset_0 <= io_dmi_req_bits_data[29]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[DM.scala 176:28]
      resumeack_0 <= 1'h0; // @[DM.scala 176:28]
    end else if (io_dm_cmm_0_hartIsInReset) begin // @[DM.scala 255:42]
      resumeack_0 <= 1'h0; // @[DM.scala 257:22]
    end else if (resumeReq_W1) begin // @[DM.scala 258:54]
      resumeack_0 <= 1'h0; // @[DM.scala 259:22]
    end else begin
      resumeack_0 <= _GEN_9;
    end
    if (reset) begin // @[DM.scala 177:26]
      haltreq_0 <= 1'h0; // @[DM.scala 177:26]
    end else if (dmi_resp_woready_59) begin // @[DM.scala 616:65]
      haltreq_0 <= io_dmi_req_bits_data[31]; // @[DM.scala 616:83]
    end
    if (reset) begin // @[DM.scala 179:31]
      resethaltreq_0 <= 1'h0; // @[DM.scala 179:31]
    end else if (clrresethaltEn) begin // @[DM.scala 226:28]
      resethaltreq_0 <= 1'h0; // @[DM.scala 226:52]
    end else begin
      resethaltreq_0 <= _GEN_0;
    end
    if (reset) begin // @[DM.scala 180:28]
      is_halted_0 <= 1'h0; // @[DM.scala 180:28]
    end else if (io_dm_cmm_0_hartIsInReset) begin // @[DM.scala 255:42]
      is_halted_0 <= 1'h0; // @[DM.scala 256:22]
    end else if (!(resumeReq_W1)) begin // @[DM.scala 258:54]
      if (_T_11) begin // @[DM.scala 260:65]
        is_halted_0 <= 1'h0; // @[DM.scala 261:22]
      end else begin
        is_halted_0 <= _GEN_7;
      end
    end
    if (reset) begin // @[DM.scala 181:23]
      busy <= 1'h0; // @[DM.scala 181:23]
    end else if (dmi_resp_woready_72 | isProgramBufferMemAccessAuto | isAbstractDataMemAccessAuto) begin // @[DM.scala 530:84]
      if (io_dm_cmm_0_hartIsInReset | dmstatus_anyrunning | _dmstatus_anyrunning_T_1) begin // @[DM.scala 532:104]
        busy <= _GEN_19;
      end else if (busy) begin // @[DM.scala 534:28]
        busy <= _GEN_19;
      end else begin
        busy <= _GEN_140;
      end
    end else begin
      busy <= _GEN_19;
    end
    if (reset) begin // @[DM.scala 182:25]
      cmderr <= 3'h0; // @[DM.scala 182:25]
    end else if (dmi_resp_woready_41 & io_dmi_req_bits_data[10:8] == 3'h1) begin // @[DM.scala 652:86]
      cmderr <= {{2'd0}, busy}; // @[DM.scala 652:95]
    end else if (_dmi_resp_T_108) begin // @[DM.scala 668:146]
      cmderr <= 3'h1; // @[DM.scala 668:155]
    end else if (dmi_resp_woready_3 & busy & cmderr == 3'h0) begin // @[DM.scala 666:146]
      cmderr <= 3'h1; // @[DM.scala 666:155]
    end else begin
      cmderr <= _GEN_151;
    end
    REG <= cmderr; // @[DM.scala 183:45]
    REG_1 <= cmderr; // @[DM.scala 183:74]
    if (reset) begin // @[DM.scala 209:26]
      flags_0_is_resume <= 1'h0; // @[DM.scala 209:26]
    end else begin
      flags_0_is_resume <= _GEN_6;
    end
    if (reset) begin // @[DM.scala 209:26]
      flags_0_is_going <= 1'h0; // @[DM.scala 209:26]
    end else if (dmi_resp_woready_72 | isProgramBufferMemAccessAuto | isAbstractDataMemAccessAuto) begin // @[DM.scala 530:84]
      if (io_dm_cmm_0_hartIsInReset | dmstatus_anyrunning | _dmstatus_anyrunning_T_1) begin // @[DM.scala 532:104]
        flags_0_is_going <= _GEN_18;
      end else if (busy) begin // @[DM.scala 534:28]
        flags_0_is_going <= _GEN_18;
      end else begin
        flags_0_is_going <= _GEN_142;
      end
    end else begin
      flags_0_is_going <= _GEN_18;
    end
    if (reset) begin // @[DM.scala 306:39]
      abstractDataMem_qout_0 <= 32'h0; // @[DM.scala 306:39]
    end else if (_dmi_resp_wofireMux_T_20) begin // @[DM.scala 376:39]
      abstractDataMem_qout_0 <= io_dmi_req_bits_data; // @[DM.scala 376:65]
    end else if (out_f_woready_102) begin // @[DM.scala 377:44]
      abstractDataMem_qout_0 <= hartResumingId; // @[DM.scala 377:70]
    end
    if (reset) begin // @[DM.scala 306:39]
      abstractDataMem_qout_1 <= 32'h0; // @[DM.scala 306:39]
    end else if (_dmi_resp_wofireMux_T_24) begin // @[DM.scala 376:39]
      abstractDataMem_qout_1 <= io_dmi_req_bits_data; // @[DM.scala 376:65]
    end else if (out_f_woready_103) begin // @[DM.scala 377:44]
      abstractDataMem_qout_1 <= hartExceptionId; // @[DM.scala 377:70]
    end
    if (reset) begin // @[DM.scala 306:39]
      abstractDataMem_qout_2 <= 32'h0; // @[DM.scala 306:39]
    end else if (_dmi_resp_wofireMux_T_28) begin // @[DM.scala 376:39]
      abstractDataMem_qout_2 <= io_dmi_req_bits_data; // @[DM.scala 376:65]
    end else if (out_f_woready_88) begin // @[DM.scala 377:44]
      abstractDataMem_qout_2 <= hartResumingId; // @[DM.scala 377:70]
    end
    if (reset) begin // @[DM.scala 306:39]
      abstractDataMem_qout_3 <= 32'h0; // @[DM.scala 306:39]
    end else if (_dmi_resp_wofireMux_T_32) begin // @[DM.scala 376:39]
      abstractDataMem_qout_3 <= io_dmi_req_bits_data; // @[DM.scala 376:65]
    end else if (out_f_woready_89) begin // @[DM.scala 377:44]
      abstractDataMem_qout_3 <= hartExceptionId; // @[DM.scala 377:70]
    end
    if (reset) begin // @[DM.scala 306:39]
      abstractDataMem_qout_4 <= 32'h0; // @[DM.scala 306:39]
    end else if (_dmi_resp_wofireMux_T_36) begin // @[DM.scala 376:39]
      abstractDataMem_qout_4 <= io_dmi_req_bits_data; // @[DM.scala 376:65]
    end else if (out_f_woready_122) begin // @[DM.scala 377:44]
      abstractDataMem_qout_4 <= hartResumingId; // @[DM.scala 377:70]
    end
    if (reset) begin // @[DM.scala 306:39]
      abstractDataMem_qout_5 <= 32'h0; // @[DM.scala 306:39]
    end else if (_dmi_resp_wofireMux_T_40) begin // @[DM.scala 376:39]
      abstractDataMem_qout_5 <= io_dmi_req_bits_data; // @[DM.scala 376:65]
    end else if (out_f_woready_123) begin // @[DM.scala 377:44]
      abstractDataMem_qout_5 <= hartExceptionId; // @[DM.scala 377:70]
    end
    if (reset) begin // @[DM.scala 306:39]
      abstractDataMem_qout_6 <= 32'h0; // @[DM.scala 306:39]
    end else if (_dmi_resp_wofireMux_T_44) begin // @[DM.scala 376:39]
      abstractDataMem_qout_6 <= io_dmi_req_bits_data; // @[DM.scala 376:65]
    end else if (out_f_woready_2) begin // @[DM.scala 377:44]
      abstractDataMem_qout_6 <= hartResumingId; // @[DM.scala 377:70]
    end
    if (reset) begin // @[DM.scala 306:39]
      abstractDataMem_qout_7 <= 32'h0; // @[DM.scala 306:39]
    end else if (_dmi_resp_wofireMux_T_48) begin // @[DM.scala 376:39]
      abstractDataMem_qout_7 <= io_dmi_req_bits_data; // @[DM.scala 376:65]
    end else if (out_f_woready_3) begin // @[DM.scala 377:44]
      abstractDataMem_qout_7 <= hartExceptionId; // @[DM.scala 377:70]
    end
    if (reset) begin // @[DM.scala 306:39]
      abstractDataMem_qout_8 <= 32'h0; // @[DM.scala 306:39]
    end else if (_dmi_resp_wofireMux_T_52) begin // @[DM.scala 376:39]
      abstractDataMem_qout_8 <= io_dmi_req_bits_data; // @[DM.scala 376:65]
    end else if (out_f_woready_24) begin // @[DM.scala 377:44]
      abstractDataMem_qout_8 <= hartResumingId; // @[DM.scala 377:70]
    end
    if (reset) begin // @[DM.scala 306:39]
      abstractDataMem_qout_9 <= 32'h0; // @[DM.scala 306:39]
    end else if (_dmi_resp_wofireMux_T_56) begin // @[DM.scala 376:39]
      abstractDataMem_qout_9 <= io_dmi_req_bits_data; // @[DM.scala 376:65]
    end else if (out_f_woready_25) begin // @[DM.scala 377:44]
      abstractDataMem_qout_9 <= hartExceptionId; // @[DM.scala 377:70]
    end
    if (reset) begin // @[DM.scala 306:39]
      abstractDataMem_qout_10 <= 32'h0; // @[DM.scala 306:39]
    end else if (_dmi_resp_wofireMux_T_60) begin // @[DM.scala 376:39]
      abstractDataMem_qout_10 <= io_dmi_req_bits_data; // @[DM.scala 376:65]
    end else if (out_f_woready_34) begin // @[DM.scala 377:44]
      abstractDataMem_qout_10 <= hartResumingId; // @[DM.scala 377:70]
    end
    if (reset) begin // @[DM.scala 306:39]
      abstractDataMem_qout_11 <= 32'h0; // @[DM.scala 306:39]
    end else if (_dmi_resp_wofireMux_T_64) begin // @[DM.scala 376:39]
      abstractDataMem_qout_11 <= io_dmi_req_bits_data; // @[DM.scala 376:65]
    end else if (out_f_woready_35) begin // @[DM.scala 377:44]
      abstractDataMem_qout_11 <= hartExceptionId; // @[DM.scala 377:70]
    end
    if (reset) begin // @[DM.scala 317:40]
      programBufferMem_qout_0 <= 32'h0; // @[DM.scala 317:40]
    end else if (_dmi_resp_wofireMux_T_132) begin // @[DM.scala 365:39]
      programBufferMem_qout_0 <= io_dmi_req_bits_data; // @[DM.scala 365:66]
    end else if (out_f_woready_112) begin // @[DM.scala 366:45]
      programBufferMem_qout_0 <= hartResumingId; // @[DM.scala 366:72]
    end
    if (reset) begin // @[DM.scala 317:40]
      programBufferMem_qout_1 <= 32'h0; // @[DM.scala 317:40]
    end else if (_dmi_resp_wofireMux_T_136) begin // @[DM.scala 365:39]
      programBufferMem_qout_1 <= io_dmi_req_bits_data; // @[DM.scala 365:66]
    end else if (out_f_woready_113) begin // @[DM.scala 366:45]
      programBufferMem_qout_1 <= hartExceptionId; // @[DM.scala 366:72]
    end
    if (reset) begin // @[DM.scala 317:40]
      programBufferMem_qout_2 <= 32'h0; // @[DM.scala 317:40]
    end else if (_dmi_resp_wofireMux_T_140) begin // @[DM.scala 365:39]
      programBufferMem_qout_2 <= io_dmi_req_bits_data; // @[DM.scala 365:66]
    end else if (out_f_woready_60) begin // @[DM.scala 366:45]
      programBufferMem_qout_2 <= hartResumingId; // @[DM.scala 366:72]
    end
    if (reset) begin // @[DM.scala 317:40]
      programBufferMem_qout_3 <= 32'h0; // @[DM.scala 317:40]
    end else if (_dmi_resp_wofireMux_T_144) begin // @[DM.scala 365:39]
      programBufferMem_qout_3 <= io_dmi_req_bits_data; // @[DM.scala 365:66]
    end else if (out_f_woready_61) begin // @[DM.scala 366:45]
      programBufferMem_qout_3 <= hartExceptionId; // @[DM.scala 366:72]
    end
    if (reset) begin // @[DM.scala 317:40]
      programBufferMem_qout_4 <= 32'h0; // @[DM.scala 317:40]
    end else if (_dmi_resp_wofireMux_T_148) begin // @[DM.scala 365:39]
      programBufferMem_qout_4 <= io_dmi_req_bits_data; // @[DM.scala 365:66]
    end else if (out_f_woready_22) begin // @[DM.scala 366:45]
      programBufferMem_qout_4 <= hartResumingId; // @[DM.scala 366:72]
    end
    if (reset) begin // @[DM.scala 317:40]
      programBufferMem_qout_5 <= 32'h0; // @[DM.scala 317:40]
    end else if (_dmi_resp_wofireMux_T_152) begin // @[DM.scala 365:39]
      programBufferMem_qout_5 <= io_dmi_req_bits_data; // @[DM.scala 365:66]
    end else if (out_f_woready_23) begin // @[DM.scala 366:45]
      programBufferMem_qout_5 <= hartExceptionId; // @[DM.scala 366:72]
    end
    if (reset) begin // @[DM.scala 317:40]
      programBufferMem_qout_6 <= 32'h0; // @[DM.scala 317:40]
    end else if (_dmi_resp_wofireMux_T_156) begin // @[DM.scala 365:39]
      programBufferMem_qout_6 <= io_dmi_req_bits_data; // @[DM.scala 365:66]
    end else if (out_f_woready_132) begin // @[DM.scala 366:45]
      programBufferMem_qout_6 <= hartResumingId; // @[DM.scala 366:72]
    end
    if (reset) begin // @[DM.scala 317:40]
      programBufferMem_qout_7 <= 32'h0; // @[DM.scala 317:40]
    end else if (_dmi_resp_wofireMux_T_160) begin // @[DM.scala 365:39]
      programBufferMem_qout_7 <= io_dmi_req_bits_data; // @[DM.scala 365:66]
    end else if (out_f_woready_133) begin // @[DM.scala 366:45]
      programBufferMem_qout_7 <= hartExceptionId; // @[DM.scala 366:72]
    end
    if (reset) begin // @[DM.scala 317:40]
      programBufferMem_qout_8 <= 32'h0; // @[DM.scala 317:40]
    end else if (_dmi_resp_wofireMux_T_164) begin // @[DM.scala 365:39]
      programBufferMem_qout_8 <= io_dmi_req_bits_data; // @[DM.scala 365:66]
    end else if (out_f_woready_92) begin // @[DM.scala 366:45]
      programBufferMem_qout_8 <= hartResumingId; // @[DM.scala 366:72]
    end
    if (reset) begin // @[DM.scala 317:40]
      programBufferMem_qout_9 <= 32'h0; // @[DM.scala 317:40]
    end else if (_dmi_resp_wofireMux_T_168) begin // @[DM.scala 365:39]
      programBufferMem_qout_9 <= io_dmi_req_bits_data; // @[DM.scala 365:66]
    end else if (out_f_woready_93) begin // @[DM.scala 366:45]
      programBufferMem_qout_9 <= hartExceptionId; // @[DM.scala 366:72]
    end
    if (reset) begin // @[DM.scala 317:40]
      programBufferMem_qout_10 <= 32'h0; // @[DM.scala 317:40]
    end else if (_dmi_resp_wofireMux_T_172) begin // @[DM.scala 365:39]
      programBufferMem_qout_10 <= io_dmi_req_bits_data; // @[DM.scala 365:66]
    end else if (out_f_woready_48) begin // @[DM.scala 366:45]
      programBufferMem_qout_10 <= hartResumingId; // @[DM.scala 366:72]
    end
    if (reset) begin // @[DM.scala 317:40]
      programBufferMem_qout_11 <= 32'h0; // @[DM.scala 317:40]
    end else if (_dmi_resp_wofireMux_T_176) begin // @[DM.scala 365:39]
      programBufferMem_qout_11 <= io_dmi_req_bits_data; // @[DM.scala 365:66]
    end else if (out_f_woready_49) begin // @[DM.scala 366:45]
      programBufferMem_qout_11 <= hartExceptionId; // @[DM.scala 366:72]
    end
    if (reset) begin // @[DM.scala 317:40]
      programBufferMem_qout_12 <= 32'h0; // @[DM.scala 317:40]
    end else if (_dmi_resp_wofireMux_T_180) begin // @[DM.scala 365:39]
      programBufferMem_qout_12 <= io_dmi_req_bits_data; // @[DM.scala 365:66]
    end else if (out_f_woready_12) begin // @[DM.scala 366:45]
      programBufferMem_qout_12 <= hartResumingId; // @[DM.scala 366:72]
    end
    if (reset) begin // @[DM.scala 317:40]
      programBufferMem_qout_13 <= 32'h0; // @[DM.scala 317:40]
    end else if (_dmi_resp_wofireMux_T_184) begin // @[DM.scala 365:39]
      programBufferMem_qout_13 <= io_dmi_req_bits_data; // @[DM.scala 365:66]
    end else if (out_f_woready_13) begin // @[DM.scala 366:45]
      programBufferMem_qout_13 <= hartExceptionId; // @[DM.scala 366:72]
    end
    if (reset) begin // @[DM.scala 317:40]
      programBufferMem_qout_14 <= 32'h0; // @[DM.scala 317:40]
    end else if (_dmi_resp_wofireMux_T_188) begin // @[DM.scala 365:39]
      programBufferMem_qout_14 <= io_dmi_req_bits_data; // @[DM.scala 365:66]
    end else if (out_f_woready_142) begin // @[DM.scala 366:45]
      programBufferMem_qout_14 <= hartResumingId; // @[DM.scala 366:72]
    end
    if (reset) begin // @[DM.scala 317:40]
      programBufferMem_qout_15 <= 32'h0; // @[DM.scala 317:40]
    end else if (_dmi_resp_wofireMux_T_192) begin // @[DM.scala 365:39]
      programBufferMem_qout_15 <= io_dmi_req_bits_data; // @[DM.scala 365:66]
    end else if (out_f_woready_143) begin // @[DM.scala 366:45]
      programBufferMem_qout_15 <= hartExceptionId; // @[DM.scala 366:72]
    end
    if (reset) begin // @[Reg.scala 35:20]
      command <= 32'h0; // @[Reg.scala 35:20]
    end else if (dmi_resp_woready_72) begin // @[Reg.scala 36:18]
      command <= io_dmi_req_bits_data; // @[Reg.scala 36:22]
    end
    if (reset) begin // @[DM.scala 369:34]
      autoexecprogbuf <= 16'h0; // @[DM.scala 369:34]
    end else if (dmi_resp_woready_3) begin // @[DM.scala 668:81]
      autoexecprogbuf <= io_dmi_req_bits_data[31:16]; // @[DM.scala 668:99]
    end
    if (reset) begin // @[DM.scala 370:34]
      autoexecdata <= 12'h0; // @[DM.scala 370:34]
    end else if (dmi_resp_woready_3) begin // @[DM.scala 666:81]
      autoexecdata <= io_dmi_req_bits_data[11:0]; // @[DM.scala 666:96]
    end
    if (reset) begin // @[DM.scala 387:26]
      whereTo <= 32'h100073; // @[DM.scala 387:26]
    end else if (is_access_register) begin // @[DM.scala 400:32]
      whereTo <= 32'h200006f; // @[DM.scala 402:15]
    end else if (is_quick_access) begin // @[DM.scala 481:36]
      whereTo <= 32'h200006f; // @[DM.scala 482:15]
    end else if (is_access_memory) begin // @[DM.scala 483:37]
      whereTo <= 32'h400006f; // @[DM.scala 485:15]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (cmderr != 3'h0 & ~reset & ~(REG == cmderr | REG_1 == 3'h0)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at DM.scala:183 when( cmderr =/= 0.U ) { assert( RegNext(cmderr) === cmderr | RegNext(cmderr) === 0.U ) }\n"
            ); // @[DM.scala 183:36]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(REG == cmderr | REG_1 == 3'h0) & (cmderr != 3'h0 & ~reset)) begin
          $fatal; // @[DM.scala 183:36]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_33 & dmi_req_bits_read & _T_5) begin
          $fwrite(32'h80000002,"\nReq: READ "); // @[DM.scala 756:50]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_33 & io_dmi_req_bits_op == 2'h2 & _T_5) begin
          $fwrite(32'h80000002,"\nReq: WRITE 0x%x to ",io_dmi_req_bits_data); // @[DM.scala 757:50]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_33 & io_dmi_req_bits_addr == 8'h4 & _T_5) begin
          $fwrite(32'h80000002,"0x04, \"data\"\n"); // @[DM.scala 758:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_33 & ~_T_40 & io_dmi_req_bits_addr == 8'h5 & _T_5) begin
          $fwrite(32'h80000002,"0x05, \"data\"\n"); // @[DM.scala 759:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_1677 & ~_T_43 & io_dmi_req_bits_addr == 8'h6 & _T_5) begin
          $fwrite(32'h80000002,"0x06, \"data\"\n"); // @[DM.scala 760:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_1682 & ~_T_46 & io_dmi_req_bits_addr == 8'h7 & _T_5) begin
          $fwrite(32'h80000002,"0x07, \"data\"\n"); // @[DM.scala 761:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_1689 & ~_T_49 & io_dmi_req_bits_addr == 8'h8 & _T_5) begin
          $fwrite(32'h80000002,"0x08, \"data\"\n"); // @[DM.scala 762:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_1698 & ~_T_52 & io_dmi_req_bits_addr == 8'h9 & _T_5) begin
          $fwrite(32'h80000002,"0x09, \"data\"\n"); // @[DM.scala 763:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_1709 & ~_T_55 & io_dmi_req_bits_addr == 8'ha & _T_5) begin
          $fwrite(32'h80000002,"0x0A, \"data\"\n"); // @[DM.scala 764:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_1722 & ~_T_58 & io_dmi_req_bits_addr == 8'hb & _T_5) begin
          $fwrite(32'h80000002,"0x0B, \"data\"\n"); // @[DM.scala 765:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_1737 & ~_T_61 & io_dmi_req_bits_addr == 8'hc & _T_5) begin
          $fwrite(32'h80000002,"0x0C, \"data\"\n"); // @[DM.scala 766:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_1754 & ~_T_64 & io_dmi_req_bits_addr == 8'hd & _T_5) begin
          $fwrite(32'h80000002,"0x0D, \"data\"\n"); // @[DM.scala 767:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_1773 & ~_T_67 & io_dmi_req_bits_addr == 8'he & _T_5) begin
          $fwrite(32'h80000002,"0x0E, \"data\"\n"); // @[DM.scala 768:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_1794 & ~_T_70 & io_dmi_req_bits_addr == 8'hf & _T_5) begin
          $fwrite(32'h80000002,"0x0F, \"data\"\n"); // @[DM.scala 769:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_1817 & ~_T_73 & io_dmi_req_bits_addr == 8'h10 & _T_5) begin
          $fwrite(32'h80000002,"0x10, \"dmcontrol\"\n"); // @[DM.scala 770:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_1842 & ~_T_76 & io_dmi_req_bits_addr == 8'h11 & _T_5) begin
          $fwrite(32'h80000002,"0x11, \"dmstatus\"\n"); // @[DM.scala 771:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_1869 & ~_T_79 & io_dmi_req_bits_addr == 8'h12 & _T_5) begin
          $fwrite(32'h80000002,"0x12, \"hartInfo\"\n"); // @[DM.scala 772:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_1898 & ~_T_82 & io_dmi_req_bits_addr == 8'h16 & _T_5) begin
          $fwrite(32'h80000002,"0x16, \"abstractcs\"\n"); // @[DM.scala 773:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_1929 & ~_T_85 & io_dmi_req_bits_addr == 8'h17 & _T_5) begin
          $fwrite(32'h80000002,"0x17, \"command\"\n"); // @[DM.scala 774:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_1962 & ~_T_88 & io_dmi_req_bits_addr == 8'h18 & _T_5) begin
          $fwrite(32'h80000002,"0x18, \"abstractauto\"\n"); // @[DM.scala 775:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_1997 & ~_T_91 & io_dmi_req_bits_addr == 8'h1d & _T_5) begin
          $fwrite(32'h80000002,"0x1D, \"nextdm\"\n"); // @[DM.scala 776:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_2034 & ~_T_94 & io_dmi_req_bits_addr == 8'h20 & _T_5) begin
          $fwrite(32'h80000002,"0x20, \"progbuf\"\n"); // @[DM.scala 777:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_2073 & ~_T_97 & io_dmi_req_bits_addr == 8'h21 & _T_5) begin
          $fwrite(32'h80000002,"0x21, \"progbuf\"\n"); // @[DM.scala 778:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_2114 & ~_T_100 & io_dmi_req_bits_addr == 8'h22 & _T_5) begin
          $fwrite(32'h80000002,"0x22, \"progbuf\"\n"); // @[DM.scala 779:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_2157 & ~_T_103 & io_dmi_req_bits_addr == 8'h23 & _T_5) begin
          $fwrite(32'h80000002,"0x23, \"progbuf\"\n"); // @[DM.scala 780:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_2202 & ~_T_106 & io_dmi_req_bits_addr == 8'h24 & _T_5) begin
          $fwrite(32'h80000002,"0x24, \"progbuf\"\n"); // @[DM.scala 781:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_2249 & ~_T_109 & io_dmi_req_bits_addr == 8'h25 & _T_5) begin
          $fwrite(32'h80000002,"0x25, \"progbuf\"\n"); // @[DM.scala 782:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_2298 & ~_T_112 & io_dmi_req_bits_addr == 8'h26 & _T_5) begin
          $fwrite(32'h80000002,"0x26, \"progbuf\"\n"); // @[DM.scala 783:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_2349 & ~_T_115 & io_dmi_req_bits_addr == 8'h27 & _T_5) begin
          $fwrite(32'h80000002,"0x27, \"progbuf\"\n"); // @[DM.scala 784:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_2402 & ~_T_118 & io_dmi_req_bits_addr == 8'h28 & _T_5) begin
          $fwrite(32'h80000002,"0x28, \"progbuf\"\n"); // @[DM.scala 785:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_2457 & ~_T_121 & io_dmi_req_bits_addr == 8'h29 & _T_5) begin
          $fwrite(32'h80000002,"0x29, \"progbuf\"\n"); // @[DM.scala 786:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_2514 & ~_T_124 & io_dmi_req_bits_addr == 8'h2a & _T_5) begin
          $fwrite(32'h80000002,"0x2A, \"progbuf\"\n"); // @[DM.scala 787:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_2573 & ~_T_127 & io_dmi_req_bits_addr == 8'h2b & _T_5) begin
          $fwrite(32'h80000002,"0x2B, \"progbuf\"\n"); // @[DM.scala 788:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_2634 & ~_T_130 & io_dmi_req_bits_addr == 8'h2c & _T_5) begin
          $fwrite(32'h80000002,"0x2C, \"progbuf\"\n"); // @[DM.scala 789:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_2697 & ~_T_133 & io_dmi_req_bits_addr == 8'h2d & _T_5) begin
          $fwrite(32'h80000002,"0x2D, \"progbuf\"\n"); // @[DM.scala 790:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_2762 & ~_T_136 & io_dmi_req_bits_addr == 8'h2e & _T_5) begin
          $fwrite(32'h80000002,"0x2E, \"progbuf\"\n"); // @[DM.scala 791:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_2829 & ~_T_139 & io_dmi_req_bits_addr == 8'h2f & _T_5) begin
          $fwrite(32'h80000002,"0x2F, \"progbuf\"\n"); // @[DM.scala 792:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_2898 & ~_T_142 & io_dmi_req_bits_addr == 8'h40 & _T_5) begin
          $fwrite(32'h80000002,"0x40, \"haltsum0\"\n"); // @[DM.scala 793:64]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_GEN_2969 & ~_T_145 & _T_5) begin
          $fwrite(32'h80000002," undefine address: %x \n",io_dmi_req_bits_addr); // @[DM.scala 794:25]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_150 & _T_5) begin
          $fwrite(32'h80000002,"Resp: 0x%x\n",io_dmi_resp_bits_data); // @[DM.scala 798:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  dmactive = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  ndmreset = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  havereset_0 = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  hartreset_0 = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  resumeack_0 = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  haltreq_0 = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  resethaltreq_0 = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  is_halted_0 = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  busy = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  cmderr = _RAND_9[2:0];
  _RAND_10 = {1{`RANDOM}};
  REG = _RAND_10[2:0];
  _RAND_11 = {1{`RANDOM}};
  REG_1 = _RAND_11[2:0];
  _RAND_12 = {1{`RANDOM}};
  flags_0_is_resume = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  flags_0_is_going = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  abstractDataMem_qout_0 = _RAND_14[31:0];
  _RAND_15 = {1{`RANDOM}};
  abstractDataMem_qout_1 = _RAND_15[31:0];
  _RAND_16 = {1{`RANDOM}};
  abstractDataMem_qout_2 = _RAND_16[31:0];
  _RAND_17 = {1{`RANDOM}};
  abstractDataMem_qout_3 = _RAND_17[31:0];
  _RAND_18 = {1{`RANDOM}};
  abstractDataMem_qout_4 = _RAND_18[31:0];
  _RAND_19 = {1{`RANDOM}};
  abstractDataMem_qout_5 = _RAND_19[31:0];
  _RAND_20 = {1{`RANDOM}};
  abstractDataMem_qout_6 = _RAND_20[31:0];
  _RAND_21 = {1{`RANDOM}};
  abstractDataMem_qout_7 = _RAND_21[31:0];
  _RAND_22 = {1{`RANDOM}};
  abstractDataMem_qout_8 = _RAND_22[31:0];
  _RAND_23 = {1{`RANDOM}};
  abstractDataMem_qout_9 = _RAND_23[31:0];
  _RAND_24 = {1{`RANDOM}};
  abstractDataMem_qout_10 = _RAND_24[31:0];
  _RAND_25 = {1{`RANDOM}};
  abstractDataMem_qout_11 = _RAND_25[31:0];
  _RAND_26 = {1{`RANDOM}};
  programBufferMem_qout_0 = _RAND_26[31:0];
  _RAND_27 = {1{`RANDOM}};
  programBufferMem_qout_1 = _RAND_27[31:0];
  _RAND_28 = {1{`RANDOM}};
  programBufferMem_qout_2 = _RAND_28[31:0];
  _RAND_29 = {1{`RANDOM}};
  programBufferMem_qout_3 = _RAND_29[31:0];
  _RAND_30 = {1{`RANDOM}};
  programBufferMem_qout_4 = _RAND_30[31:0];
  _RAND_31 = {1{`RANDOM}};
  programBufferMem_qout_5 = _RAND_31[31:0];
  _RAND_32 = {1{`RANDOM}};
  programBufferMem_qout_6 = _RAND_32[31:0];
  _RAND_33 = {1{`RANDOM}};
  programBufferMem_qout_7 = _RAND_33[31:0];
  _RAND_34 = {1{`RANDOM}};
  programBufferMem_qout_8 = _RAND_34[31:0];
  _RAND_35 = {1{`RANDOM}};
  programBufferMem_qout_9 = _RAND_35[31:0];
  _RAND_36 = {1{`RANDOM}};
  programBufferMem_qout_10 = _RAND_36[31:0];
  _RAND_37 = {1{`RANDOM}};
  programBufferMem_qout_11 = _RAND_37[31:0];
  _RAND_38 = {1{`RANDOM}};
  programBufferMem_qout_12 = _RAND_38[31:0];
  _RAND_39 = {1{`RANDOM}};
  programBufferMem_qout_13 = _RAND_39[31:0];
  _RAND_40 = {1{`RANDOM}};
  programBufferMem_qout_14 = _RAND_40[31:0];
  _RAND_41 = {1{`RANDOM}};
  programBufferMem_qout_15 = _RAND_41[31:0];
  _RAND_42 = {1{`RANDOM}};
  command = _RAND_42[31:0];
  _RAND_43 = {1{`RANDOM}};
  autoexecprogbuf = _RAND_43[15:0];
  _RAND_44 = {1{`RANDOM}};
  autoexecdata = _RAND_44[11:0];
  _RAND_45 = {1{`RANDOM}};
  whereTo = _RAND_45[31:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module CaptureUpdateChain(
  input        clock,
  input        reset,
  input        io_chainIn_shift,
  input        io_chainIn_data,
  input        io_chainIn_capture,
  input        io_chainIn_update,
  output       io_chainOut_data,
  input  [1:0] io_capture_bits_dmiStatus,
  output       io_update_valid,
  output       io_update_bits_dmireset
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
`endif // RANDOMIZE_REG_INIT
  reg  regs_0; // @[JTAG.scala 294:40]
  reg  regs_1; // @[JTAG.scala 294:40]
  reg  regs_2; // @[JTAG.scala 294:40]
  reg  regs_3; // @[JTAG.scala 294:40]
  reg  regs_4; // @[JTAG.scala 294:40]
  reg  regs_5; // @[JTAG.scala 294:40]
  reg  regs_6; // @[JTAG.scala 294:40]
  reg  regs_7; // @[JTAG.scala 294:40]
  reg  regs_8; // @[JTAG.scala 294:40]
  reg  regs_9; // @[JTAG.scala 294:40]
  reg  regs_10; // @[JTAG.scala 294:40]
  reg  regs_11; // @[JTAG.scala 294:40]
  reg  regs_12; // @[JTAG.scala 294:40]
  reg  regs_13; // @[JTAG.scala 294:40]
  reg  regs_14; // @[JTAG.scala 294:40]
  reg  regs_15; // @[JTAG.scala 294:40]
  reg  regs_16; // @[JTAG.scala 294:40]
  reg  regs_17; // @[JTAG.scala 294:40]
  reg  regs_18; // @[JTAG.scala 294:40]
  reg  regs_19; // @[JTAG.scala 294:40]
  reg  regs_20; // @[JTAG.scala 294:40]
  reg  regs_21; // @[JTAG.scala 294:40]
  reg  regs_22; // @[JTAG.scala 294:40]
  reg  regs_23; // @[JTAG.scala 294:40]
  reg  regs_24; // @[JTAG.scala 294:40]
  reg  regs_25; // @[JTAG.scala 294:40]
  reg  regs_26; // @[JTAG.scala 294:40]
  reg  regs_27; // @[JTAG.scala 294:40]
  reg  regs_28; // @[JTAG.scala 294:40]
  reg  regs_29; // @[JTAG.scala 294:40]
  reg  regs_30; // @[JTAG.scala 294:40]
  reg  regs_31; // @[JTAG.scala 294:40]
  wire [7:0] io_update_bits_lo_lo = {regs_7,regs_6,regs_5,regs_4,regs_3,regs_2,regs_1,regs_0}; // @[Cat.scala 33:92]
  wire [15:0] io_update_bits_lo = {regs_15,regs_14,regs_13,regs_12,regs_11,regs_10,regs_9,regs_8,io_update_bits_lo_lo}; // @[Cat.scala 33:92]
  wire [7:0] io_update_bits_hi_lo = {regs_23,regs_22,regs_21,regs_20,regs_19,regs_18,regs_17,regs_16}; // @[Cat.scala 33:92]
  wire [31:0] _io_update_bits_T = {regs_31,regs_30,regs_29,regs_28,regs_27,regs_26,regs_25,regs_24,io_update_bits_hi_lo,
    io_update_bits_lo}; // @[Cat.scala 33:92]
  wire [31:0] _regs_0_T = {20'h0,io_capture_bits_dmiStatus,6'h8,4'h1}; // @[JTAG.scala 300:70]
  wire  _T_1 = ~(io_chainIn_capture & io_chainIn_update); // @[JTAG.scala 316:12]
  wire  _T_4 = _T_1 & ~(io_chainIn_capture & io_chainIn_shift); // @[JTAG.scala 317:9]
  wire  _T_7 = _T_4 & ~(io_chainIn_update & io_chainIn_shift); // @[JTAG.scala 318:9]
  assign io_chainOut_data = regs_0; // @[JTAG.scala 295:22]
  assign io_update_valid = io_chainIn_capture ? 1'h0 : io_chainIn_update; // @[JTAG.scala 299:30 302:23]
  assign io_update_bits_dmireset = _io_update_bits_T[16]; // @[JTAG.scala 297:51]
  always @(posedge clock) begin
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_0 <= _regs_0_T[0]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_0 <= regs_1; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_1 <= _regs_0_T[1]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_1 <= regs_2; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_2 <= _regs_0_T[2]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_2 <= regs_3; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_3 <= _regs_0_T[3]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_3 <= regs_4; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_4 <= _regs_0_T[4]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_4 <= regs_5; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_5 <= _regs_0_T[5]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_5 <= regs_6; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_6 <= _regs_0_T[6]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_6 <= regs_7; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_7 <= _regs_0_T[7]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_7 <= regs_8; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_8 <= _regs_0_T[8]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_8 <= regs_9; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_9 <= _regs_0_T[9]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_9 <= regs_10; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_10 <= _regs_0_T[10]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_10 <= regs_11; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_11 <= _regs_0_T[11]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_11 <= regs_12; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_12 <= _regs_0_T[12]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_12 <= regs_13; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_13 <= _regs_0_T[13]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_13 <= regs_14; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_14 <= _regs_0_T[14]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_14 <= regs_15; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_15 <= _regs_0_T[15]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_15 <= regs_16; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_16 <= _regs_0_T[16]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_16 <= regs_17; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_17 <= _regs_0_T[17]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_17 <= regs_18; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_18 <= _regs_0_T[18]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_18 <= regs_19; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_19 <= _regs_0_T[19]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_19 <= regs_20; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_20 <= _regs_0_T[20]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_20 <= regs_21; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_21 <= _regs_0_T[21]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_21 <= regs_22; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_22 <= _regs_0_T[22]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_22 <= regs_23; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_23 <= _regs_0_T[23]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_23 <= regs_24; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_24 <= _regs_0_T[24]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_24 <= regs_25; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_25 <= _regs_0_T[25]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_25 <= regs_26; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_26 <= _regs_0_T[26]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_26 <= regs_27; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_27 <= _regs_0_T[27]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_27 <= regs_28; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_28 <= _regs_0_T[28]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_28 <= regs_29; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_29 <= _regs_0_T[29]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_29 <= regs_30; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_30 <= _regs_0_T[30]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_30 <= regs_31; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_31 <= _regs_0_T[31]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_31 <= io_chainIn_data; // @[JTAG.scala 307:17]
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_7) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at JTAG.scala:316 assert(!(io.chainIn.capture && io.chainIn.update)\n"); // @[JTAG.scala 316:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_7 & ~reset) begin
          $fatal; // @[JTAG.scala 316:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  regs_0 = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  regs_1 = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  regs_2 = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  regs_3 = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  regs_4 = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  regs_5 = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  regs_6 = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  regs_7 = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  regs_8 = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  regs_9 = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  regs_10 = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  regs_11 = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  regs_12 = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  regs_13 = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  regs_14 = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  regs_15 = _RAND_15[0:0];
  _RAND_16 = {1{`RANDOM}};
  regs_16 = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  regs_17 = _RAND_17[0:0];
  _RAND_18 = {1{`RANDOM}};
  regs_18 = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  regs_19 = _RAND_19[0:0];
  _RAND_20 = {1{`RANDOM}};
  regs_20 = _RAND_20[0:0];
  _RAND_21 = {1{`RANDOM}};
  regs_21 = _RAND_21[0:0];
  _RAND_22 = {1{`RANDOM}};
  regs_22 = _RAND_22[0:0];
  _RAND_23 = {1{`RANDOM}};
  regs_23 = _RAND_23[0:0];
  _RAND_24 = {1{`RANDOM}};
  regs_24 = _RAND_24[0:0];
  _RAND_25 = {1{`RANDOM}};
  regs_25 = _RAND_25[0:0];
  _RAND_26 = {1{`RANDOM}};
  regs_26 = _RAND_26[0:0];
  _RAND_27 = {1{`RANDOM}};
  regs_27 = _RAND_27[0:0];
  _RAND_28 = {1{`RANDOM}};
  regs_28 = _RAND_28[0:0];
  _RAND_29 = {1{`RANDOM}};
  regs_29 = _RAND_29[0:0];
  _RAND_30 = {1{`RANDOM}};
  regs_30 = _RAND_30[0:0];
  _RAND_31 = {1{`RANDOM}};
  regs_31 = _RAND_31[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module CaptureUpdateChain_1(
  input         clock,
  input         reset,
  input         io_chainIn_shift,
  input         io_chainIn_data,
  input         io_chainIn_capture,
  input         io_chainIn_update,
  output        io_chainOut_data,
  input  [7:0]  io_capture_bits_addr,
  input  [31:0] io_capture_bits_data,
  input  [1:0]  io_capture_bits_op,
  output        io_capture_is_valid,
  output        io_update_valid,
  output [7:0]  io_update_bits_addr,
  output [31:0] io_update_bits_data,
  output [1:0]  io_update_bits_op
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
  reg [31:0] _RAND_33;
  reg [31:0] _RAND_34;
  reg [31:0] _RAND_35;
  reg [31:0] _RAND_36;
  reg [31:0] _RAND_37;
  reg [31:0] _RAND_38;
  reg [31:0] _RAND_39;
  reg [31:0] _RAND_40;
  reg [31:0] _RAND_41;
`endif // RANDOMIZE_REG_INIT
  reg  regs_0; // @[JTAG.scala 294:40]
  reg  regs_1; // @[JTAG.scala 294:40]
  reg  regs_2; // @[JTAG.scala 294:40]
  reg  regs_3; // @[JTAG.scala 294:40]
  reg  regs_4; // @[JTAG.scala 294:40]
  reg  regs_5; // @[JTAG.scala 294:40]
  reg  regs_6; // @[JTAG.scala 294:40]
  reg  regs_7; // @[JTAG.scala 294:40]
  reg  regs_8; // @[JTAG.scala 294:40]
  reg  regs_9; // @[JTAG.scala 294:40]
  reg  regs_10; // @[JTAG.scala 294:40]
  reg  regs_11; // @[JTAG.scala 294:40]
  reg  regs_12; // @[JTAG.scala 294:40]
  reg  regs_13; // @[JTAG.scala 294:40]
  reg  regs_14; // @[JTAG.scala 294:40]
  reg  regs_15; // @[JTAG.scala 294:40]
  reg  regs_16; // @[JTAG.scala 294:40]
  reg  regs_17; // @[JTAG.scala 294:40]
  reg  regs_18; // @[JTAG.scala 294:40]
  reg  regs_19; // @[JTAG.scala 294:40]
  reg  regs_20; // @[JTAG.scala 294:40]
  reg  regs_21; // @[JTAG.scala 294:40]
  reg  regs_22; // @[JTAG.scala 294:40]
  reg  regs_23; // @[JTAG.scala 294:40]
  reg  regs_24; // @[JTAG.scala 294:40]
  reg  regs_25; // @[JTAG.scala 294:40]
  reg  regs_26; // @[JTAG.scala 294:40]
  reg  regs_27; // @[JTAG.scala 294:40]
  reg  regs_28; // @[JTAG.scala 294:40]
  reg  regs_29; // @[JTAG.scala 294:40]
  reg  regs_30; // @[JTAG.scala 294:40]
  reg  regs_31; // @[JTAG.scala 294:40]
  reg  regs_32; // @[JTAG.scala 294:40]
  reg  regs_33; // @[JTAG.scala 294:40]
  reg  regs_34; // @[JTAG.scala 294:40]
  reg  regs_35; // @[JTAG.scala 294:40]
  reg  regs_36; // @[JTAG.scala 294:40]
  reg  regs_37; // @[JTAG.scala 294:40]
  reg  regs_38; // @[JTAG.scala 294:40]
  reg  regs_39; // @[JTAG.scala 294:40]
  reg  regs_40; // @[JTAG.scala 294:40]
  reg  regs_41; // @[JTAG.scala 294:40]
  wire [9:0] io_update_bits_lo_lo = {regs_9,regs_8,regs_7,regs_6,regs_5,regs_4,regs_3,regs_2,regs_1,regs_0}; // @[Cat.scala 33:92]
  wire [4:0] io_update_bits_lo_hi_lo = {regs_14,regs_13,regs_12,regs_11,regs_10}; // @[Cat.scala 33:92]
  wire [20:0] io_update_bits_lo = {regs_20,regs_19,regs_18,regs_17,regs_16,regs_15,io_update_bits_lo_hi_lo,
    io_update_bits_lo_lo}; // @[Cat.scala 33:92]
  wire [9:0] io_update_bits_hi_lo = {regs_30,regs_29,regs_28,regs_27,regs_26,regs_25,regs_24,regs_23,regs_22,regs_21}; // @[Cat.scala 33:92]
  wire [4:0] io_update_bits_hi_hi_lo = {regs_35,regs_34,regs_33,regs_32,regs_31}; // @[Cat.scala 33:92]
  wire [41:0] _io_update_bits_T = {regs_41,regs_40,regs_39,regs_38,regs_37,regs_36,io_update_bits_hi_hi_lo,
    io_update_bits_hi_lo,io_update_bits_lo}; // @[Cat.scala 33:92]
  wire [41:0] _regs_0_T = {io_capture_bits_addr,io_capture_bits_data,io_capture_bits_op}; // @[JTAG.scala 300:70]
  wire  _T_1 = ~(io_chainIn_capture & io_chainIn_update); // @[JTAG.scala 316:12]
  wire  _T_4 = _T_1 & ~(io_chainIn_capture & io_chainIn_shift); // @[JTAG.scala 317:9]
  wire  _T_7 = _T_4 & ~(io_chainIn_update & io_chainIn_shift); // @[JTAG.scala 318:9]
  assign io_chainOut_data = regs_0; // @[JTAG.scala 295:22]
  assign io_capture_is_valid = io_chainIn_capture; // @[JTAG.scala 299:30 301:27]
  assign io_update_valid = io_chainIn_capture ? 1'h0 : io_chainIn_update; // @[JTAG.scala 299:30 302:23]
  assign io_update_bits_addr = _io_update_bits_T[41:34]; // @[JTAG.scala 297:51]
  assign io_update_bits_data = _io_update_bits_T[33:2]; // @[JTAG.scala 297:51]
  assign io_update_bits_op = _io_update_bits_T[1:0]; // @[JTAG.scala 297:51]
  always @(posedge clock) begin
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_0 <= _regs_0_T[0]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_0 <= regs_1; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_1 <= _regs_0_T[1]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_1 <= regs_2; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_2 <= _regs_0_T[2]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_2 <= regs_3; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_3 <= _regs_0_T[3]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_3 <= regs_4; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_4 <= _regs_0_T[4]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_4 <= regs_5; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_5 <= _regs_0_T[5]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_5 <= regs_6; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_6 <= _regs_0_T[6]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_6 <= regs_7; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_7 <= _regs_0_T[7]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_7 <= regs_8; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_8 <= _regs_0_T[8]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_8 <= regs_9; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_9 <= _regs_0_T[9]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_9 <= regs_10; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_10 <= _regs_0_T[10]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_10 <= regs_11; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_11 <= _regs_0_T[11]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_11 <= regs_12; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_12 <= _regs_0_T[12]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_12 <= regs_13; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_13 <= _regs_0_T[13]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_13 <= regs_14; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_14 <= _regs_0_T[14]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_14 <= regs_15; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_15 <= _regs_0_T[15]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_15 <= regs_16; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_16 <= _regs_0_T[16]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_16 <= regs_17; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_17 <= _regs_0_T[17]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_17 <= regs_18; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_18 <= _regs_0_T[18]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_18 <= regs_19; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_19 <= _regs_0_T[19]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_19 <= regs_20; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_20 <= _regs_0_T[20]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_20 <= regs_21; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_21 <= _regs_0_T[21]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_21 <= regs_22; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_22 <= _regs_0_T[22]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_22 <= regs_23; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_23 <= _regs_0_T[23]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_23 <= regs_24; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_24 <= _regs_0_T[24]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_24 <= regs_25; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_25 <= _regs_0_T[25]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_25 <= regs_26; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_26 <= _regs_0_T[26]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_26 <= regs_27; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_27 <= _regs_0_T[27]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_27 <= regs_28; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_28 <= _regs_0_T[28]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_28 <= regs_29; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_29 <= _regs_0_T[29]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_29 <= regs_30; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_30 <= _regs_0_T[30]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_30 <= regs_31; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_31 <= _regs_0_T[31]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_31 <= regs_32; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_32 <= _regs_0_T[32]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_32 <= regs_33; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_33 <= _regs_0_T[33]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_33 <= regs_34; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_34 <= _regs_0_T[34]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_34 <= regs_35; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_35 <= _regs_0_T[35]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_35 <= regs_36; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_36 <= _regs_0_T[36]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_36 <= regs_37; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_37 <= _regs_0_T[37]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_37 <= regs_38; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_38 <= _regs_0_T[38]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_38 <= regs_39; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_39 <= _regs_0_T[39]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_39 <= regs_40; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_40 <= _regs_0_T[40]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_40 <= regs_41; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_41 <= _regs_0_T[41]; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_41 <= io_chainIn_data; // @[JTAG.scala 307:17]
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_7) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at JTAG.scala:316 assert(!(io.chainIn.capture && io.chainIn.update)\n"); // @[JTAG.scala 316:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_7 & ~reset) begin
          $fatal; // @[JTAG.scala 316:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  regs_0 = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  regs_1 = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  regs_2 = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  regs_3 = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  regs_4 = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  regs_5 = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  regs_6 = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  regs_7 = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  regs_8 = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  regs_9 = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  regs_10 = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  regs_11 = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  regs_12 = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  regs_13 = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  regs_14 = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  regs_15 = _RAND_15[0:0];
  _RAND_16 = {1{`RANDOM}};
  regs_16 = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  regs_17 = _RAND_17[0:0];
  _RAND_18 = {1{`RANDOM}};
  regs_18 = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  regs_19 = _RAND_19[0:0];
  _RAND_20 = {1{`RANDOM}};
  regs_20 = _RAND_20[0:0];
  _RAND_21 = {1{`RANDOM}};
  regs_21 = _RAND_21[0:0];
  _RAND_22 = {1{`RANDOM}};
  regs_22 = _RAND_22[0:0];
  _RAND_23 = {1{`RANDOM}};
  regs_23 = _RAND_23[0:0];
  _RAND_24 = {1{`RANDOM}};
  regs_24 = _RAND_24[0:0];
  _RAND_25 = {1{`RANDOM}};
  regs_25 = _RAND_25[0:0];
  _RAND_26 = {1{`RANDOM}};
  regs_26 = _RAND_26[0:0];
  _RAND_27 = {1{`RANDOM}};
  regs_27 = _RAND_27[0:0];
  _RAND_28 = {1{`RANDOM}};
  regs_28 = _RAND_28[0:0];
  _RAND_29 = {1{`RANDOM}};
  regs_29 = _RAND_29[0:0];
  _RAND_30 = {1{`RANDOM}};
  regs_30 = _RAND_30[0:0];
  _RAND_31 = {1{`RANDOM}};
  regs_31 = _RAND_31[0:0];
  _RAND_32 = {1{`RANDOM}};
  regs_32 = _RAND_32[0:0];
  _RAND_33 = {1{`RANDOM}};
  regs_33 = _RAND_33[0:0];
  _RAND_34 = {1{`RANDOM}};
  regs_34 = _RAND_34[0:0];
  _RAND_35 = {1{`RANDOM}};
  regs_35 = _RAND_35[0:0];
  _RAND_36 = {1{`RANDOM}};
  regs_36 = _RAND_36[0:0];
  _RAND_37 = {1{`RANDOM}};
  regs_37 = _RAND_37[0:0];
  _RAND_38 = {1{`RANDOM}};
  regs_38 = _RAND_38[0:0];
  _RAND_39 = {1{`RANDOM}};
  regs_39 = _RAND_39[0:0];
  _RAND_40 = {1{`RANDOM}};
  regs_40 = _RAND_40[0:0];
  _RAND_41 = {1{`RANDOM}};
  regs_41 = _RAND_41[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module CaptureChain(
  input   clock,
  input   reset,
  input   io_chainIn_shift,
  input   io_chainIn_data,
  input   io_chainIn_capture,
  input   io_chainIn_update,
  output  io_chainOut_data
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
`endif // RANDOMIZE_REG_INIT
  reg  regs_0; // @[JTAG.scala 262:38]
  reg  regs_1; // @[JTAG.scala 262:38]
  reg  regs_2; // @[JTAG.scala 262:38]
  reg  regs_3; // @[JTAG.scala 262:38]
  reg  regs_4; // @[JTAG.scala 262:38]
  reg  regs_5; // @[JTAG.scala 262:38]
  reg  regs_6; // @[JTAG.scala 262:38]
  reg  regs_7; // @[JTAG.scala 262:38]
  reg  regs_8; // @[JTAG.scala 262:38]
  reg  regs_9; // @[JTAG.scala 262:38]
  reg  regs_10; // @[JTAG.scala 262:38]
  reg  regs_11; // @[JTAG.scala 262:38]
  reg  regs_12; // @[JTAG.scala 262:38]
  reg  regs_13; // @[JTAG.scala 262:38]
  reg  regs_14; // @[JTAG.scala 262:38]
  reg  regs_15; // @[JTAG.scala 262:38]
  reg  regs_16; // @[JTAG.scala 262:38]
  reg  regs_17; // @[JTAG.scala 262:38]
  reg  regs_18; // @[JTAG.scala 262:38]
  reg  regs_19; // @[JTAG.scala 262:38]
  reg  regs_20; // @[JTAG.scala 262:38]
  reg  regs_21; // @[JTAG.scala 262:38]
  reg  regs_22; // @[JTAG.scala 262:38]
  reg  regs_23; // @[JTAG.scala 262:38]
  reg  regs_24; // @[JTAG.scala 262:38]
  reg  regs_25; // @[JTAG.scala 262:38]
  reg  regs_26; // @[JTAG.scala 262:38]
  reg  regs_27; // @[JTAG.scala 262:38]
  reg  regs_28; // @[JTAG.scala 262:38]
  reg  regs_29; // @[JTAG.scala 262:38]
  reg  regs_30; // @[JTAG.scala 262:38]
  reg  regs_31; // @[JTAG.scala 262:38]
  wire  _GEN_1 = io_chainIn_shift ? regs_1 : regs_0; // @[JTAG.scala 269:34 271:37 262:38]
  wire  _T_1 = ~(io_chainIn_capture & io_chainIn_update); // @[JTAG.scala 276:10]
  wire  _T_4 = _T_1 & ~(io_chainIn_capture & io_chainIn_shift); // @[JTAG.scala 277:7]
  wire  _T_7 = _T_4 & ~(io_chainIn_update & io_chainIn_shift); // @[JTAG.scala 278:7]
  assign io_chainOut_data = regs_0; // @[JTAG.scala 264:20]
  always @(posedge clock) begin
    regs_0 <= io_chainIn_capture | _GEN_1; // @[JTAG.scala 266:29 267:35]
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_1 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_1 <= regs_2; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_2 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_2 <= regs_3; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_3 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_3 <= regs_4; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_4 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_4 <= regs_5; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_5 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_5 <= regs_6; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_6 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_6 <= regs_7; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_7 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_7 <= regs_8; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_8 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_8 <= regs_9; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_9 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_9 <= regs_10; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_10 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_10 <= regs_11; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_11 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_11 <= regs_12; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_12 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_12 <= regs_13; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_13 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_13 <= regs_14; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_14 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_14 <= regs_15; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_15 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_15 <= regs_16; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_16 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_16 <= regs_17; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_17 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_17 <= regs_18; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_18 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_18 <= regs_19; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_19 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_19 <= regs_20; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_20 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_20 <= regs_21; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_21 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_21 <= regs_22; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_22 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_22 <= regs_23; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_23 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_23 <= regs_24; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_24 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_24 <= regs_25; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_25 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_25 <= regs_26; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_26 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_26 <= regs_27; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_27 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_27 <= regs_28; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_28 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_28 <= regs_29; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_29 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_29 <= regs_30; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_30 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_30 <= regs_31; // @[JTAG.scala 271:37]
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 266:29]
      regs_31 <= 1'h0; // @[JTAG.scala 267:35]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 269:34]
      regs_31 <= io_chainIn_data; // @[JTAG.scala 270:15]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_7) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at JTAG.scala:276 assert(!(io.chainIn.capture && io.chainIn.update)\n"); // @[JTAG.scala 276:9]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_7 & ~reset) begin
          $fatal; // @[JTAG.scala 276:9]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  regs_0 = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  regs_1 = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  regs_2 = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  regs_3 = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  regs_4 = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  regs_5 = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  regs_6 = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  regs_7 = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  regs_8 = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  regs_9 = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  regs_10 = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  regs_11 = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  regs_12 = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  regs_13 = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  regs_14 = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  regs_15 = _RAND_15[0:0];
  _RAND_16 = {1{`RANDOM}};
  regs_16 = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  regs_17 = _RAND_17[0:0];
  _RAND_18 = {1{`RANDOM}};
  regs_18 = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  regs_19 = _RAND_19[0:0];
  _RAND_20 = {1{`RANDOM}};
  regs_20 = _RAND_20[0:0];
  _RAND_21 = {1{`RANDOM}};
  regs_21 = _RAND_21[0:0];
  _RAND_22 = {1{`RANDOM}};
  regs_22 = _RAND_22[0:0];
  _RAND_23 = {1{`RANDOM}};
  regs_23 = _RAND_23[0:0];
  _RAND_24 = {1{`RANDOM}};
  regs_24 = _RAND_24[0:0];
  _RAND_25 = {1{`RANDOM}};
  regs_25 = _RAND_25[0:0];
  _RAND_26 = {1{`RANDOM}};
  regs_26 = _RAND_26[0:0];
  _RAND_27 = {1{`RANDOM}};
  regs_27 = _RAND_27[0:0];
  _RAND_28 = {1{`RANDOM}};
  regs_28 = _RAND_28[0:0];
  _RAND_29 = {1{`RANDOM}};
  regs_29 = _RAND_29[0:0];
  _RAND_30 = {1{`RANDOM}};
  regs_30 = _RAND_30[0:0];
  _RAND_31 = {1{`RANDOM}};
  regs_31 = _RAND_31[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module JtagStateMachine(
  input        clock,
  input        reset,
  input        io_tms,
  output [3:0] io_currState
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
`endif // RANDOMIZE_REG_INIT
  reg [3:0] currState; // @[JTAG.scala 141:26]
  wire [3:0] _nextState_T_1 = io_tms ? 4'h7 : 4'hc; // @[JTAG.scala 147:23]
  wire [3:0] _nextState_T_2 = io_tms ? 4'h4 : 4'h6; // @[JTAG.scala 150:23]
  wire [3:0] _nextState_T_3 = io_tms ? 4'h1 : 4'h2; // @[JTAG.scala 153:23]
  wire [3:0] _nextState_T_5 = io_tms ? 4'h5 : 4'h3; // @[JTAG.scala 159:23]
  wire [3:0] _nextState_T_6 = io_tms ? 4'h0 : 4'h3; // @[JTAG.scala 162:23]
  wire [3:0] _nextState_T_7 = io_tms ? 4'h5 : 4'h2; // @[JTAG.scala 165:23]
  wire [3:0] _nextState_T_9 = io_tms ? 4'hf : 4'he; // @[JTAG.scala 171:23]
  wire [3:0] _nextState_T_10 = io_tms ? 4'h9 : 4'ha; // @[JTAG.scala 174:23]
  wire [3:0] _nextState_T_12 = io_tms ? 4'hd : 4'hb; // @[JTAG.scala 180:23]
  wire [3:0] _nextState_T_13 = io_tms ? 4'h8 : 4'hb; // @[JTAG.scala 183:23]
  wire [3:0] _nextState_T_14 = io_tms ? 4'hd : 4'ha; // @[JTAG.scala 186:23]
  wire [3:0] _GEN_0 = 4'hd == currState ? _nextState_T_1 : 4'hf; // @[JTAG.scala 142:22 189:17]
  wire [3:0] _GEN_1 = 4'h8 == currState ? _nextState_T_14 : _GEN_0; // @[JTAG.scala 142:22 186:17]
  wire [3:0] _GEN_2 = 4'hb == currState ? _nextState_T_13 : _GEN_1; // @[JTAG.scala 142:22 183:17]
  wire [3:0] _GEN_3 = 4'h9 == currState ? _nextState_T_12 : _GEN_2; // @[JTAG.scala 142:22 180:17]
  wire [3:0] _GEN_4 = 4'ha == currState ? _nextState_T_10 : _GEN_3; // @[JTAG.scala 142:22 177:17]
  wire [3:0] _GEN_5 = 4'he == currState ? _nextState_T_10 : _GEN_4; // @[JTAG.scala 142:22 174:17]
  wire [3:0] _GEN_6 = 4'h4 == currState ? _nextState_T_9 : _GEN_5; // @[JTAG.scala 142:22 171:17]
  wire [3:0] _GEN_7 = 4'h5 == currState ? _nextState_T_1 : _GEN_6; // @[JTAG.scala 142:22 168:17]
  wire [3:0] _GEN_8 = 4'h0 == currState ? _nextState_T_7 : _GEN_7; // @[JTAG.scala 142:22 165:17]
  wire [3:0] _GEN_9 = 4'h3 == currState ? _nextState_T_6 : _GEN_8; // @[JTAG.scala 142:22 162:17]
  wire [3:0] _GEN_10 = 4'h1 == currState ? _nextState_T_5 : _GEN_9; // @[JTAG.scala 142:22 159:17]
  wire [3:0] _GEN_11 = 4'h2 == currState ? _nextState_T_3 : _GEN_10; // @[JTAG.scala 142:22 156:17]
  wire [3:0] _GEN_12 = 4'h6 == currState ? _nextState_T_3 : _GEN_11; // @[JTAG.scala 142:22 153:17]
  assign io_currState = currState; // @[JTAG.scala 193:18]
  always @(posedge clock) begin
    if (reset) begin // @[JTAG.scala 141:26]
      currState <= 4'hf; // @[JTAG.scala 141:26]
    end else if (4'hf == currState) begin // @[JTAG.scala 142:22]
      if (io_tms) begin // @[JTAG.scala 144:23]
        currState <= 4'hf;
      end else begin
        currState <= 4'hc;
      end
    end else if (4'hc == currState) begin // @[JTAG.scala 142:22]
      if (io_tms) begin // @[JTAG.scala 147:23]
        currState <= 4'h7;
      end else begin
        currState <= 4'hc;
      end
    end else if (4'h7 == currState) begin // @[JTAG.scala 142:22]
      currState <= _nextState_T_2; // @[JTAG.scala 150:17]
    end else begin
      currState <= _GEN_12;
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  currState = _RAND_0[3:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module CaptureUpdateChain_2(
  input        clock,
  input        reset,
  input        io_chainIn_shift,
  input        io_chainIn_data,
  input        io_chainIn_capture,
  input        io_chainIn_update,
  output       io_chainOut_data,
  output [4:0] io_update_bits
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
`endif // RANDOMIZE_REG_INIT
  reg  regs_0; // @[JTAG.scala 294:40]
  reg  regs_1; // @[JTAG.scala 294:40]
  reg  regs_2; // @[JTAG.scala 294:40]
  reg  regs_3; // @[JTAG.scala 294:40]
  reg  regs_4; // @[JTAG.scala 294:40]
  wire [1:0] io_update_bits_lo = {regs_1,regs_0}; // @[Cat.scala 33:92]
  wire [2:0] io_update_bits_hi = {regs_4,regs_3,regs_2}; // @[Cat.scala 33:92]
  wire  _GEN_1 = io_chainIn_shift ? regs_1 : regs_0; // @[JTAG.scala 306:35 294:40 308:48]
  wire  _GEN_9 = io_chainIn_update ? regs_0 : _GEN_1; // @[JTAG.scala 303:36 294:40]
  wire  _T_1 = ~(io_chainIn_capture & io_chainIn_update); // @[JTAG.scala 316:12]
  wire  _T_4 = _T_1 & ~(io_chainIn_capture & io_chainIn_shift); // @[JTAG.scala 317:9]
  wire  _T_7 = _T_4 & ~(io_chainIn_update & io_chainIn_shift); // @[JTAG.scala 318:9]
  assign io_chainOut_data = regs_0; // @[JTAG.scala 295:22]
  assign io_update_bits = {io_update_bits_hi,io_update_bits_lo}; // @[Cat.scala 33:92]
  always @(posedge clock) begin
    regs_0 <= io_chainIn_capture | _GEN_9; // @[JTAG.scala 299:30 300:45]
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_1 <= 1'h0; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_1 <= regs_2; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_2 <= 1'h0; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_2 <= regs_3; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_3 <= 1'h0; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_3 <= regs_4; // @[JTAG.scala 308:48]
      end
    end
    if (io_chainIn_capture) begin // @[JTAG.scala 299:30]
      regs_4 <= 1'h0; // @[JTAG.scala 300:45]
    end else if (!(io_chainIn_update)) begin // @[JTAG.scala 303:36]
      if (io_chainIn_shift) begin // @[JTAG.scala 306:35]
        regs_4 <= io_chainIn_data; // @[JTAG.scala 307:17]
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_7) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at JTAG.scala:316 assert(!(io.chainIn.capture && io.chainIn.update)\n"); // @[JTAG.scala 316:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_7 & ~reset) begin
          $fatal; // @[JTAG.scala 316:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  regs_0 = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  regs_1 = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  regs_2 = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  regs_3 = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  regs_4 = _RAND_4[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module JtagTapController(
  input        io_JtagIO_TRSTn,
  input        io_JtagIO_TCK,
  input        io_JtagIO_TMS,
  input        io_JtagIO_TDI,
  output       io_JtagIO_TDO,
  output       io_JtagIO_TDO_driven,
  output [4:0] io_out_instruction,
  output       io_out_tapIsInTestLogicReset,
  output       io_dataChainOut_shift,
  output       io_dataChainOut_data,
  output       io_dataChainOut_capture,
  output       io_dataChainOut_update,
  input        io_dataChainIn_data
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
`endif // RANDOMIZE_REG_INIT
  wire  stateMachine_clock; // @[JTAG.scala 350:21]
  wire  stateMachine_reset; // @[JTAG.scala 350:21]
  wire  stateMachine_io_tms; // @[JTAG.scala 350:21]
  wire [3:0] stateMachine_io_currState; // @[JTAG.scala 350:21]
  wire  irChain_clock; // @[JTAG.scala 365:21]
  wire  irChain_reset; // @[JTAG.scala 365:21]
  wire  irChain_io_chainIn_shift; // @[JTAG.scala 365:21]
  wire  irChain_io_chainIn_data; // @[JTAG.scala 365:21]
  wire  irChain_io_chainIn_capture; // @[JTAG.scala 365:21]
  wire  irChain_io_chainIn_update; // @[JTAG.scala 365:21]
  wire  irChain_io_chainOut_data; // @[JTAG.scala 365:21]
  wire [4:0] irChain_io_update_bits; // @[JTAG.scala 365:21]
  wire  clock_falling = ~io_JtagIO_TCK; // @[JTAG.scala 341:59]
  wire  _stateMachine_reset_T = ~io_JtagIO_TRSTn; // @[JTAG.scala 353:19]
  reg  io_JtagIO_TDO_tdoReg; // @[JTAG.scala 360:31]
  reg  io_JtagIO_TDO_driven_tdoeReg; // @[JTAG.scala 361:36]
  wire [3:0] currState = stateMachine_io_currState; // @[JTAG.scala 345:23 355:15]
  wire  _irChain_io_chainIn_shift_T = currState == 4'ha; // @[JTAG.scala 370:39]
  wire  _irChain_io_chainIn_update_T = currState == 4'hd; // @[JTAG.scala 373:40]
  reg [4:0] activeInstruction; // @[JTAG.scala 379:36]
  wire  tapIsInTestLogicReset = currState == 4'hf; // @[JTAG.scala 388:38]
  wire  _io_dataChainOut_shift_T = currState == 4'h2; // @[JTAG.scala 392:40]
  wire  _GEN_2 = irChain_io_chainOut_data; // @[JTAG.scala 400:51 401:9]
  wire  tdo_driven = _io_dataChainOut_shift_T | _irChain_io_chainIn_shift_T; // @[JTAG.scala 397:44 399:16]
  JtagStateMachine stateMachine ( // @[JTAG.scala 350:21]
    .clock(stateMachine_clock),
    .reset(stateMachine_reset),
    .io_tms(stateMachine_io_tms),
    .io_currState(stateMachine_io_currState)
  );
  CaptureUpdateChain_2 irChain ( // @[JTAG.scala 365:21]
    .clock(irChain_clock),
    .reset(irChain_reset),
    .io_chainIn_shift(irChain_io_chainIn_shift),
    .io_chainIn_data(irChain_io_chainIn_data),
    .io_chainIn_capture(irChain_io_chainIn_capture),
    .io_chainIn_update(irChain_io_chainIn_update),
    .io_chainOut_data(irChain_io_chainOut_data),
    .io_update_bits(irChain_io_update_bits)
  );
  assign io_JtagIO_TDO = io_JtagIO_TDO_tdoReg; // @[JTAG.scala 360:21]
  assign io_JtagIO_TDO_driven = io_JtagIO_TDO_driven_tdoeReg; // @[JTAG.scala 361:26]
  assign io_out_instruction = activeInstruction; // @[JTAG.scala 385:24]
  assign io_out_tapIsInTestLogicReset = currState == 4'hf; // @[JTAG.scala 388:38]
  assign io_dataChainOut_shift = currState == 4'h2; // @[JTAG.scala 392:40]
  assign io_dataChainOut_data = io_JtagIO_TDI; // @[JTAG.scala 393:27]
  assign io_dataChainOut_capture = currState == 4'h6; // @[JTAG.scala 394:40]
  assign io_dataChainOut_update = currState == 4'h5; // @[JTAG.scala 395:40]
  assign stateMachine_clock = io_JtagIO_TCK; // @[JTAG.scala 352:15]
  assign stateMachine_reset = ~io_JtagIO_TRSTn; // @[JTAG.scala 353:19]
  assign stateMachine_io_tms = io_JtagIO_TMS; // @[JTAG.scala 354:16]
  assign irChain_clock = io_JtagIO_TCK; // @[JTAG.scala 367:15]
  assign irChain_reset = ~io_JtagIO_TRSTn; // @[JTAG.scala 368:19]
  assign irChain_io_chainIn_shift = currState == 4'ha; // @[JTAG.scala 370:39]
  assign irChain_io_chainIn_data = io_JtagIO_TDI; // @[JTAG.scala 371:25]
  assign irChain_io_chainIn_capture = currState == 4'he; // @[JTAG.scala 372:41]
  assign irChain_io_chainIn_update = currState == 4'hd; // @[JTAG.scala 373:40]
  always @(posedge clock_falling) begin
    if (_stateMachine_reset_T) begin // @[JTAG.scala 360:31]
      io_JtagIO_TDO_tdoReg <= 1'h0; // @[JTAG.scala 360:31]
    end else if (_io_dataChainOut_shift_T) begin // @[JTAG.scala 397:44]
      io_JtagIO_TDO_tdoReg <= io_dataChainIn_data; // @[JTAG.scala 398:9]
    end else begin
      io_JtagIO_TDO_tdoReg <= _GEN_2;
    end
    if (_stateMachine_reset_T) begin // @[JTAG.scala 361:36]
      io_JtagIO_TDO_driven_tdoeReg <= 1'h0; // @[JTAG.scala 361:36]
    end else begin
      io_JtagIO_TDO_driven_tdoeReg <= tdo_driven; // @[JTAG.scala 361:36]
    end
    if (_stateMachine_reset_T) begin // @[JTAG.scala 379:36]
      activeInstruction <= 5'h1; // @[JTAG.scala 379:36]
    end else if (tapIsInTestLogicReset) begin // @[JTAG.scala 380:34]
      activeInstruction <= 5'h1; // @[JTAG.scala 381:25]
    end else if (_irChain_io_chainIn_update_T) begin // @[JTAG.scala 382:54]
      activeInstruction <= irChain_io_update_bits; // @[JTAG.scala 383:25]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  io_JtagIO_TDO_tdoReg = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  io_JtagIO_TDO_driven_tdoeReg = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  activeInstruction = _RAND_2[4:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module JtagBypassChain(
  input   clock,
  input   reset,
  input   io_chainIn_shift,
  input   io_chainIn_data,
  input   io_chainIn_capture,
  input   io_chainIn_update,
  output  io_chainOut_data
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
`endif // RANDOMIZE_REG_INIT
  reg  reg_; // @[JTAG.scala 233:16]
  wire  _T_1 = ~(io_chainIn_capture & io_chainIn_update); // @[JTAG.scala 242:10]
  wire  _T_4 = _T_1 & ~(io_chainIn_capture & io_chainIn_shift); // @[JTAG.scala 243:7]
  wire  _T_7 = _T_4 & ~(io_chainIn_update & io_chainIn_shift); // @[JTAG.scala 244:7]
  assign io_chainOut_data = reg_; // @[JTAG.scala 235:20]
  always @(posedge clock) begin
    if (io_chainIn_capture) begin // @[JTAG.scala 237:29]
      reg_ <= 1'h0; // @[JTAG.scala 238:9]
    end else if (io_chainIn_shift) begin // @[JTAG.scala 239:34]
      reg_ <= io_chainIn_data; // @[JTAG.scala 240:9]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_7) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at JTAG.scala:242 assert(!(io.chainIn.capture && io.chainIn.update)\n"); // @[JTAG.scala 242:9]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_7 & ~reset) begin
          $fatal; // @[JTAG.scala 242:9]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  reg_ = _RAND_0[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module DebugTransportModuleJTAG(
  input         io_dmi_req_ready,
  output        io_dmi_req_valid,
  output [7:0]  io_dmi_req_bits_addr,
  output [31:0] io_dmi_req_bits_data,
  output [1:0]  io_dmi_req_bits_op,
  output        io_dmi_resp_ready,
  input         io_dmi_resp_valid,
  input  [31:0] io_dmi_resp_bits_data,
  input  [1:0]  io_dmi_resp_bits_op,
  input         io_JtagIO_TRSTn,
  input         io_JtagIO_TCK,
  input         io_JtagIO_TMS,
  input         io_JtagIO_TDI,
  output        io_JtagIO_TDO,
  output        io_JtagIO_TDO_driven
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
`endif // RANDOMIZE_REG_INIT
  wire  dtmcsChain_clock; // @[DTM.scala 94:28]
  wire  dtmcsChain_reset; // @[DTM.scala 94:28]
  wire  dtmcsChain_io_chainIn_shift; // @[DTM.scala 94:28]
  wire  dtmcsChain_io_chainIn_data; // @[DTM.scala 94:28]
  wire  dtmcsChain_io_chainIn_capture; // @[DTM.scala 94:28]
  wire  dtmcsChain_io_chainIn_update; // @[DTM.scala 94:28]
  wire  dtmcsChain_io_chainOut_data; // @[DTM.scala 94:28]
  wire [1:0] dtmcsChain_io_capture_bits_dmiStatus; // @[DTM.scala 94:28]
  wire  dtmcsChain_io_update_valid; // @[DTM.scala 94:28]
  wire  dtmcsChain_io_update_bits_dmireset; // @[DTM.scala 94:28]
  wire  dmiAccessChain_clock; // @[DTM.scala 100:32]
  wire  dmiAccessChain_reset; // @[DTM.scala 100:32]
  wire  dmiAccessChain_io_chainIn_shift; // @[DTM.scala 100:32]
  wire  dmiAccessChain_io_chainIn_data; // @[DTM.scala 100:32]
  wire  dmiAccessChain_io_chainIn_capture; // @[DTM.scala 100:32]
  wire  dmiAccessChain_io_chainIn_update; // @[DTM.scala 100:32]
  wire  dmiAccessChain_io_chainOut_data; // @[DTM.scala 100:32]
  wire [7:0] dmiAccessChain_io_capture_bits_addr; // @[DTM.scala 100:32]
  wire [31:0] dmiAccessChain_io_capture_bits_data; // @[DTM.scala 100:32]
  wire [1:0] dmiAccessChain_io_capture_bits_op; // @[DTM.scala 100:32]
  wire  dmiAccessChain_io_capture_is_valid; // @[DTM.scala 100:32]
  wire  dmiAccessChain_io_update_valid; // @[DTM.scala 100:32]
  wire [7:0] dmiAccessChain_io_update_bits_addr; // @[DTM.scala 100:32]
  wire [31:0] dmiAccessChain_io_update_bits_data; // @[DTM.scala 100:32]
  wire [1:0] dmiAccessChain_io_update_bits_op; // @[DTM.scala 100:32]
  wire  tapIO_idcodeChain_clock; // @[JTAG.scala 429:33]
  wire  tapIO_idcodeChain_reset; // @[JTAG.scala 429:33]
  wire  tapIO_idcodeChain_io_chainIn_shift; // @[JTAG.scala 429:33]
  wire  tapIO_idcodeChain_io_chainIn_data; // @[JTAG.scala 429:33]
  wire  tapIO_idcodeChain_io_chainIn_capture; // @[JTAG.scala 429:33]
  wire  tapIO_idcodeChain_io_chainIn_update; // @[JTAG.scala 429:33]
  wire  tapIO_idcodeChain_io_chainOut_data; // @[JTAG.scala 429:33]
  wire  tapIO_controllerInternal_io_JtagIO_TRSTn; // @[JTAG.scala 442:36]
  wire  tapIO_controllerInternal_io_JtagIO_TCK; // @[JTAG.scala 442:36]
  wire  tapIO_controllerInternal_io_JtagIO_TMS; // @[JTAG.scala 442:36]
  wire  tapIO_controllerInternal_io_JtagIO_TDI; // @[JTAG.scala 442:36]
  wire  tapIO_controllerInternal_io_JtagIO_TDO; // @[JTAG.scala 442:36]
  wire  tapIO_controllerInternal_io_JtagIO_TDO_driven; // @[JTAG.scala 442:36]
  wire [4:0] tapIO_controllerInternal_io_out_instruction; // @[JTAG.scala 442:36]
  wire  tapIO_controllerInternal_io_out_tapIsInTestLogicReset; // @[JTAG.scala 442:36]
  wire  tapIO_controllerInternal_io_dataChainOut_shift; // @[JTAG.scala 442:36]
  wire  tapIO_controllerInternal_io_dataChainOut_data; // @[JTAG.scala 442:36]
  wire  tapIO_controllerInternal_io_dataChainOut_capture; // @[JTAG.scala 442:36]
  wire  tapIO_controllerInternal_io_dataChainOut_update; // @[JTAG.scala 442:36]
  wire  tapIO_controllerInternal_io_dataChainIn_data; // @[JTAG.scala 442:36]
  wire  tapIO_bypassChain_clock; // @[JTAG.scala 443:29]
  wire  tapIO_bypassChain_reset; // @[JTAG.scala 443:29]
  wire  tapIO_bypassChain_io_chainIn_shift; // @[JTAG.scala 443:29]
  wire  tapIO_bypassChain_io_chainIn_data; // @[JTAG.scala 443:29]
  wire  tapIO_bypassChain_io_chainIn_capture; // @[JTAG.scala 443:29]
  wire  tapIO_bypassChain_io_chainIn_update; // @[JTAG.scala 443:29]
  wire  tapIO_bypassChain_io_chainOut_data; // @[JTAG.scala 443:29]
  wire  _T = ~io_JtagIO_TRSTn; // @[DTM.scala 56:37]
  reg  dmiInFlight; // @[DTM.scala 58:30]
  reg  stickyBusyReg; // @[DTM.scala 59:32]
  reg  stickyNonzeroRespReg; // @[DTM.scala 60:39]
  reg  downgradeOpReg; // @[DTM.scala 62:33]
  reg [7:0] dmiReqReg_addr; // @[DTM.scala 75:29]
  reg [31:0] dmiReqReg_data; // @[DTM.scala 75:29]
  reg [1:0] dmiReqReg_op; // @[DTM.scala 75:29]
  reg  dmiReqValidReg; // @[DTM.scala 76:33]
  wire  _dmiStatus_T = stickyNonzeroRespReg | stickyBusyReg; // @[DTM.scala 83:65]
  wire  _GEN_0 = io_dmi_req_valid | dmiInFlight; // @[DTM.scala 108:{29,43} 58:30]
  wire  _T_1 = io_dmi_resp_ready & io_dmi_resp_valid; // @[Decoupled.scala 52:35]
  wire  is_busy = dmiInFlight & ~io_dmi_resp_valid | stickyBusyReg; // @[DTM.scala 116:54]
  wire  _downgradeOpReg_T = ~is_busy; // @[DTM.scala 125:26]
  wire  nonzeroResp = stickyNonzeroRespReg | io_dmi_resp_valid & io_dmi_resp_bits_op != 2'h0; // @[DTM.scala 141:41]
  wire  _GEN_4 = dmiAccessChain_io_capture_is_valid ? is_busy : stickyBusyReg; // @[DTM.scala 124:47 126:21 59:32]
  wire  _GEN_5 = dmiAccessChain_io_capture_is_valid ? nonzeroResp : stickyNonzeroRespReg; // @[DTM.scala 124:47 127:28 60:39]
  wire [7:0] _dmiAccessChain_io_capture_bits_T_addr = io_dmi_resp_valid ? dmiReqReg_addr : 8'h0; // @[DTM.scala 152:65]
  wire [31:0] _dmiAccessChain_io_capture_bits_T_data = io_dmi_resp_valid ? io_dmi_resp_bits_data : 32'h0; // @[DTM.scala 152:65]
  wire [1:0] _dmiAccessChain_io_capture_bits_T_op = io_dmi_resp_valid ? io_dmi_resp_bits_op : 2'h0; // @[DTM.scala 152:65]
  wire  _T_3 = downgradeOpReg | dmiAccessChain_io_update_bits_op == 2'h0; // @[DTM.scala 160:34]
  wire  _T_4 = io_dmi_req_ready & io_dmi_req_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_13 = downgradeOpReg | dmiAccessChain_io_update_bits_op == 2'h0 ? dmiReqValidReg : 1'h1; // @[DTM.scala 160:81 167:24 76:33]
  wire  _GEN_17 = stickyBusyReg ? dmiReqValidReg : _GEN_13; // @[DTM.scala 158:28 76:33]
  wire  _io_dmi_resp_ready_T = dmiReqReg_op == 2'h2; // @[DTM.scala 177:21]
  wire  _io_dmi_resp_ready_T_1 = dmiReqReg_op == 2'h1; // @[DTM.scala 178:21]
  wire  _io_dmi_resp_ready_T_3 = dmiAccessChain_io_capture_is_valid & _downgradeOpReg_T; // @[DTM.scala 178:69]
  wire  tapIO_icodeSelects_0 = tapIO_controllerInternal_io_out_instruction == 5'h1; // @[JTAG.scala 463:79]
  wire  tapIO_icodeSelects_0_1 = tapIO_controllerInternal_io_out_instruction == 5'h10; // @[JTAG.scala 463:79]
  wire  tapIO_icodeSelects_0_2 = tapIO_controllerInternal_io_out_instruction == 5'h11; // @[JTAG.scala 463:79]
  wire  _GEN_25 = tapIO_icodeSelects_0_2 ? dmiAccessChain_io_chainOut_data : tapIO_bypassChain_io_chainOut_data; // @[JTAG.scala 490:28 472:41 491:43]
  wire  _GEN_29 = tapIO_icodeSelects_0_1 ? dtmcsChain_io_chainOut_data : _GEN_25; // @[JTAG.scala 490:28 491:43]
  wire  tapIO_out_tapIsInTestLogicReset = tapIO_controllerInternal_io_out_tapIsInTestLogicReset; // @[JTAG.scala 424:26 480:23]
  CaptureUpdateChain dtmcsChain ( // @[DTM.scala 94:28]
    .clock(dtmcsChain_clock),
    .reset(dtmcsChain_reset),
    .io_chainIn_shift(dtmcsChain_io_chainIn_shift),
    .io_chainIn_data(dtmcsChain_io_chainIn_data),
    .io_chainIn_capture(dtmcsChain_io_chainIn_capture),
    .io_chainIn_update(dtmcsChain_io_chainIn_update),
    .io_chainOut_data(dtmcsChain_io_chainOut_data),
    .io_capture_bits_dmiStatus(dtmcsChain_io_capture_bits_dmiStatus),
    .io_update_valid(dtmcsChain_io_update_valid),
    .io_update_bits_dmireset(dtmcsChain_io_update_bits_dmireset)
  );
  CaptureUpdateChain_1 dmiAccessChain ( // @[DTM.scala 100:32]
    .clock(dmiAccessChain_clock),
    .reset(dmiAccessChain_reset),
    .io_chainIn_shift(dmiAccessChain_io_chainIn_shift),
    .io_chainIn_data(dmiAccessChain_io_chainIn_data),
    .io_chainIn_capture(dmiAccessChain_io_chainIn_capture),
    .io_chainIn_update(dmiAccessChain_io_chainIn_update),
    .io_chainOut_data(dmiAccessChain_io_chainOut_data),
    .io_capture_bits_addr(dmiAccessChain_io_capture_bits_addr),
    .io_capture_bits_data(dmiAccessChain_io_capture_bits_data),
    .io_capture_bits_op(dmiAccessChain_io_capture_bits_op),
    .io_capture_is_valid(dmiAccessChain_io_capture_is_valid),
    .io_update_valid(dmiAccessChain_io_update_valid),
    .io_update_bits_addr(dmiAccessChain_io_update_bits_addr),
    .io_update_bits_data(dmiAccessChain_io_update_bits_data),
    .io_update_bits_op(dmiAccessChain_io_update_bits_op)
  );
  CaptureChain tapIO_idcodeChain ( // @[JTAG.scala 429:33]
    .clock(tapIO_idcodeChain_clock),
    .reset(tapIO_idcodeChain_reset),
    .io_chainIn_shift(tapIO_idcodeChain_io_chainIn_shift),
    .io_chainIn_data(tapIO_idcodeChain_io_chainIn_data),
    .io_chainIn_capture(tapIO_idcodeChain_io_chainIn_capture),
    .io_chainIn_update(tapIO_idcodeChain_io_chainIn_update),
    .io_chainOut_data(tapIO_idcodeChain_io_chainOut_data)
  );
  JtagTapController tapIO_controllerInternal ( // @[JTAG.scala 442:36]
    .io_JtagIO_TRSTn(tapIO_controllerInternal_io_JtagIO_TRSTn),
    .io_JtagIO_TCK(tapIO_controllerInternal_io_JtagIO_TCK),
    .io_JtagIO_TMS(tapIO_controllerInternal_io_JtagIO_TMS),
    .io_JtagIO_TDI(tapIO_controllerInternal_io_JtagIO_TDI),
    .io_JtagIO_TDO(tapIO_controllerInternal_io_JtagIO_TDO),
    .io_JtagIO_TDO_driven(tapIO_controllerInternal_io_JtagIO_TDO_driven),
    .io_out_instruction(tapIO_controllerInternal_io_out_instruction),
    .io_out_tapIsInTestLogicReset(tapIO_controllerInternal_io_out_tapIsInTestLogicReset),
    .io_dataChainOut_shift(tapIO_controllerInternal_io_dataChainOut_shift),
    .io_dataChainOut_data(tapIO_controllerInternal_io_dataChainOut_data),
    .io_dataChainOut_capture(tapIO_controllerInternal_io_dataChainOut_capture),
    .io_dataChainOut_update(tapIO_controllerInternal_io_dataChainOut_update),
    .io_dataChainIn_data(tapIO_controllerInternal_io_dataChainIn_data)
  );
  JtagBypassChain tapIO_bypassChain ( // @[JTAG.scala 443:29]
    .clock(tapIO_bypassChain_clock),
    .reset(tapIO_bypassChain_reset),
    .io_chainIn_shift(tapIO_bypassChain_io_chainIn_shift),
    .io_chainIn_data(tapIO_bypassChain_io_chainIn_data),
    .io_chainIn_capture(tapIO_bypassChain_io_chainIn_capture),
    .io_chainIn_update(tapIO_bypassChain_io_chainIn_update),
    .io_chainOut_data(tapIO_bypassChain_io_chainOut_data)
  );
  assign io_dmi_req_valid = dmiReqValidReg; // @[DTM.scala 181:22]
  assign io_dmi_req_bits_addr = dmiReqReg_addr; // @[DTM.scala 182:21]
  assign io_dmi_req_bits_data = dmiReqReg_data; // @[DTM.scala 182:21]
  assign io_dmi_req_bits_op = dmiReqReg_op; // @[DTM.scala 182:21]
  assign io_dmi_resp_ready = _io_dmi_resp_ready_T & io_dmi_resp_valid | _io_dmi_resp_ready_T_1 & _io_dmi_resp_ready_T_3; // @[Mux.scala 27:73]
  assign io_JtagIO_TDO = tapIO_controllerInternal_io_JtagIO_TDO; // @[JTAG.scala 424:26 479:23]
  assign io_JtagIO_TDO_driven = tapIO_controllerInternal_io_JtagIO_TDO_driven; // @[JTAG.scala 424:26 479:23]
  assign dtmcsChain_clock = io_JtagIO_TCK;
  assign dtmcsChain_reset = ~io_JtagIO_TRSTn; // @[DTM.scala 56:37]
  assign dtmcsChain_io_chainIn_shift = tapIO_icodeSelects_0_1 & tapIO_controllerInternal_io_dataChainOut_shift; // @[JTAG.scala 497:21 498:26 500:26]
  assign dtmcsChain_io_chainIn_data = tapIO_icodeSelects_0_1 & tapIO_controllerInternal_io_dataChainOut_data; // @[JTAG.scala 497:21 498:26 500:26]
  assign dtmcsChain_io_chainIn_capture = tapIO_icodeSelects_0_1 & tapIO_controllerInternal_io_dataChainOut_capture; // @[JTAG.scala 497:21 498:26 500:26]
  assign dtmcsChain_io_chainIn_update = tapIO_icodeSelects_0_1 & tapIO_controllerInternal_io_dataChainOut_update; // @[JTAG.scala 497:21 498:26 500:26]
  assign dtmcsChain_io_capture_bits_dmiStatus = {stickyNonzeroRespReg,_dmiStatus_T}; // @[Cat.scala 33:92]
  assign dmiAccessChain_clock = io_JtagIO_TCK;
  assign dmiAccessChain_reset = ~io_JtagIO_TRSTn; // @[DTM.scala 56:37]
  assign dmiAccessChain_io_chainIn_shift = tapIO_icodeSelects_0_2 & tapIO_controllerInternal_io_dataChainOut_shift; // @[JTAG.scala 497:21 498:26 500:26]
  assign dmiAccessChain_io_chainIn_data = tapIO_icodeSelects_0_2 & tapIO_controllerInternal_io_dataChainOut_data; // @[JTAG.scala 497:21 498:26 500:26]
  assign dmiAccessChain_io_chainIn_capture = tapIO_icodeSelects_0_2 & tapIO_controllerInternal_io_dataChainOut_capture; // @[JTAG.scala 497:21 498:26 500:26]
  assign dmiAccessChain_io_chainIn_update = tapIO_icodeSelects_0_2 & tapIO_controllerInternal_io_dataChainOut_update; // @[JTAG.scala 497:21 498:26 500:26]
  assign dmiAccessChain_io_capture_bits_addr = is_busy ? 8'h0 : _dmiAccessChain_io_capture_bits_T_addr; // @[DTM.scala 152:42]
  assign dmiAccessChain_io_capture_bits_data = is_busy ? 32'h0 : _dmiAccessChain_io_capture_bits_T_data; // @[DTM.scala 152:42]
  assign dmiAccessChain_io_capture_bits_op = is_busy ? 2'h3 : _dmiAccessChain_io_capture_bits_T_op; // @[DTM.scala 152:42]
  assign tapIO_idcodeChain_clock = io_JtagIO_TCK;
  assign tapIO_idcodeChain_reset = ~io_JtagIO_TRSTn; // @[DTM.scala 56:37]
  assign tapIO_idcodeChain_io_chainIn_shift = tapIO_icodeSelects_0 & tapIO_controllerInternal_io_dataChainOut_shift; // @[JTAG.scala 497:21 498:26 500:26]
  assign tapIO_idcodeChain_io_chainIn_data = tapIO_icodeSelects_0 & tapIO_controllerInternal_io_dataChainOut_data; // @[JTAG.scala 497:21 498:26 500:26]
  assign tapIO_idcodeChain_io_chainIn_capture = tapIO_icodeSelects_0 & tapIO_controllerInternal_io_dataChainOut_capture; // @[JTAG.scala 497:21 498:26 500:26]
  assign tapIO_idcodeChain_io_chainIn_update = tapIO_icodeSelects_0 & tapIO_controllerInternal_io_dataChainOut_update; // @[JTAG.scala 497:21 498:26 500:26]
  assign tapIO_controllerInternal_io_JtagIO_TRSTn = io_JtagIO_TRSTn; // @[DTM.scala 208:18 JTAG.scala 424:26]
  assign tapIO_controllerInternal_io_JtagIO_TCK = io_JtagIO_TCK; // @[DTM.scala 208:18 JTAG.scala 424:26]
  assign tapIO_controllerInternal_io_JtagIO_TMS = io_JtagIO_TMS; // @[DTM.scala 208:18 JTAG.scala 424:26]
  assign tapIO_controllerInternal_io_JtagIO_TDI = io_JtagIO_TDI; // @[DTM.scala 208:18 JTAG.scala 424:26]
  assign tapIO_controllerInternal_io_dataChainIn_data = tapIO_icodeSelects_0 ? tapIO_idcodeChain_io_chainOut_data :
    _GEN_29; // @[JTAG.scala 490:28 491:43]
  assign tapIO_bypassChain_clock = io_JtagIO_TCK;
  assign tapIO_bypassChain_reset = ~io_JtagIO_TRSTn; // @[DTM.scala 56:37]
  assign tapIO_bypassChain_io_chainIn_shift = tapIO_controllerInternal_io_dataChainOut_shift; // @[JTAG.scala 450:28]
  assign tapIO_bypassChain_io_chainIn_data = tapIO_controllerInternal_io_dataChainOut_data; // @[JTAG.scala 450:28]
  assign tapIO_bypassChain_io_chainIn_capture = tapIO_controllerInternal_io_dataChainOut_capture; // @[JTAG.scala 450:28]
  assign tapIO_bypassChain_io_chainIn_update = tapIO_controllerInternal_io_dataChainOut_update; // @[JTAG.scala 450:28]
  always @(posedge io_JtagIO_TCK) begin
    if (_T) begin // @[DTM.scala 58:30]
      dmiInFlight <= 1'h0; // @[DTM.scala 58:30]
    end else if (tapIO_out_tapIsInTestLogicReset) begin // @[DTM.scala 213:44]
      dmiInFlight <= 1'h0; // @[DTM.scala 214:19]
    end else if (_T_1) begin // @[DTM.scala 109:29]
      dmiInFlight <= 1'h0; // @[DTM.scala 109:43]
    end else begin
      dmiInFlight <= _GEN_0;
    end
    if (_T) begin // @[DTM.scala 59:32]
      stickyBusyReg <= 1'h0; // @[DTM.scala 59:32]
    end else if (tapIO_out_tapIsInTestLogicReset) begin // @[DTM.scala 213:44]
      stickyBusyReg <= 1'h0; // @[DTM.scala 215:21]
    end else if (dtmcsChain_io_update_valid) begin // @[DTM.scala 131:39]
      if (dtmcsChain_io_update_bits_dmireset) begin // @[DTM.scala 132:49]
        stickyBusyReg <= 1'h0; // @[DTM.scala 134:23]
      end else begin
        stickyBusyReg <= _GEN_4;
      end
    end else begin
      stickyBusyReg <= _GEN_4;
    end
    if (_T) begin // @[DTM.scala 60:39]
      stickyNonzeroRespReg <= 1'h0; // @[DTM.scala 60:39]
    end else if (tapIO_out_tapIsInTestLogicReset) begin // @[DTM.scala 213:44]
      stickyNonzeroRespReg <= 1'h0; // @[DTM.scala 216:28]
    end else if (dtmcsChain_io_update_valid) begin // @[DTM.scala 131:39]
      if (dtmcsChain_io_update_bits_dmireset) begin // @[DTM.scala 132:49]
        stickyNonzeroRespReg <= 1'h0; // @[DTM.scala 133:30]
      end else begin
        stickyNonzeroRespReg <= _GEN_5;
      end
    end else begin
      stickyNonzeroRespReg <= _GEN_5;
    end
    if (_T) begin // @[DTM.scala 62:33]
      downgradeOpReg <= 1'h0; // @[DTM.scala 62:33]
    end else if (tapIO_out_tapIsInTestLogicReset) begin // @[DTM.scala 213:44]
      downgradeOpReg <= 1'h0; // @[DTM.scala 217:22]
    end else if (dmiAccessChain_io_capture_is_valid) begin // @[DTM.scala 124:47]
      downgradeOpReg <= ~is_busy & nonzeroResp; // @[DTM.scala 125:22]
    end else if (dmiAccessChain_io_update_valid) begin // @[DTM.scala 121:43]
      downgradeOpReg <= 1'h0; // @[DTM.scala 122:22]
    end
    if (_T) begin // @[DTM.scala 75:29]
      dmiReqReg_addr <= 8'h0; // @[DTM.scala 75:29]
    end else if (dmiAccessChain_io_update_valid) begin // @[DTM.scala 157:43]
      if (!(stickyBusyReg)) begin // @[DTM.scala 158:28]
        if (downgradeOpReg | dmiAccessChain_io_update_bits_op == 2'h0) begin // @[DTM.scala 160:81]
          dmiReqReg_addr <= 8'h0; // @[DTM.scala 162:24]
        end else begin
          dmiReqReg_addr <= dmiAccessChain_io_update_bits_addr; // @[DTM.scala 166:19]
        end
      end
    end
    if (_T) begin // @[DTM.scala 75:29]
      dmiReqReg_data <= 32'h0; // @[DTM.scala 75:29]
    end else if (dmiAccessChain_io_update_valid) begin // @[DTM.scala 157:43]
      if (!(stickyBusyReg)) begin // @[DTM.scala 158:28]
        if (downgradeOpReg | dmiAccessChain_io_update_bits_op == 2'h0) begin // @[DTM.scala 160:81]
          dmiReqReg_data <= 32'h0; // @[DTM.scala 163:24]
        end else begin
          dmiReqReg_data <= dmiAccessChain_io_update_bits_data; // @[DTM.scala 166:19]
        end
      end
    end
    if (_T) begin // @[DTM.scala 75:29]
      dmiReqReg_op <= 2'h0; // @[DTM.scala 75:29]
    end else if (dmiAccessChain_io_update_valid) begin // @[DTM.scala 157:43]
      if (!(stickyBusyReg)) begin // @[DTM.scala 158:28]
        if (downgradeOpReg | dmiAccessChain_io_update_bits_op == 2'h0) begin // @[DTM.scala 160:81]
          dmiReqReg_op <= 2'h0; // @[DTM.scala 164:24]
        end else begin
          dmiReqReg_op <= dmiAccessChain_io_update_bits_op; // @[DTM.scala 166:19]
        end
      end
    end
    if (_T) begin // @[DTM.scala 76:33]
      dmiReqValidReg <= 1'h0; // @[DTM.scala 76:33]
    end else if (tapIO_out_tapIsInTestLogicReset) begin // @[DTM.scala 213:44]
      dmiReqValidReg <= 1'h0; // @[DTM.scala 218:22]
    end else if (_T_4) begin // @[DTM.scala 172:28]
      dmiReqValidReg <= 1'h0; // @[DTM.scala 173:22]
    end else if (dmiAccessChain_io_update_valid) begin // @[DTM.scala 157:43]
      dmiReqValidReg <= _GEN_17;
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (dmiAccessChain_io_update_valid & ~stickyBusyReg & ~_T_3 & ~_T & ~(~_T_4)) begin
          $fwrite(32'h80000002,
            "Assertion failed: Conflicting updates for dmiReqValidReg, should not happen.\n    at DTM.scala:168 assert( ~io.dmi.req.fire, \"Conflicting updates for dmiReqValidReg, should not happen.\");\n"
            ); // @[DTM.scala 168:15]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~_T_4) & (dmiAccessChain_io_update_valid & ~stickyBusyReg & ~_T_3 & ~_T)) begin
          $fatal; // @[DTM.scala 168:15]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  dmiInFlight = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  stickyBusyReg = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  stickyNonzeroRespReg = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  downgradeOpReg = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  dmiReqReg_addr = _RAND_4[7:0];
  _RAND_5 = {1{`RANDOM}};
  dmiReqReg_data = _RAND_5[31:0];
  _RAND_6 = {1{`RANDOM}};
  dmiReqReg_op = _RAND_6[1:0];
  _RAND_7 = {1{`RANDOM}};
  dmiReqValidReg = _RAND_7[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module AsyncResetSynchronizerPrimitiveShiftReg_d3_i0(
  input   clock,
  input   reset,
  input   io_d,
  output  io_q
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
`endif // RANDOMIZE_REG_INIT
  reg  sync_0; // @[SynchronizerReg.scala 51:87]
  reg  sync_1; // @[SynchronizerReg.scala 51:87]
  reg  sync_2; // @[SynchronizerReg.scala 51:87]
  assign io_q = sync_0; // @[SynchronizerReg.scala 59:8]
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[SynchronizerReg.scala 51:87]
      sync_0 <= 1'h0; // @[SynchronizerReg.scala 51:87]
    end else begin
      sync_0 <= sync_1; // @[SynchronizerReg.scala 57:10]
    end
  end
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[SynchronizerReg.scala 51:87]
      sync_1 <= 1'h0; // @[SynchronizerReg.scala 51:87]
    end else begin
      sync_1 <= sync_2; // @[SynchronizerReg.scala 57:10]
    end
  end
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[SynchronizerReg.scala 54:22]
      sync_2 <= 1'h0;
    end else begin
      sync_2 <= io_d;
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  sync_0 = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  sync_1 = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  sync_2 = _RAND_2[0:0];
`endif // RANDOMIZE_REG_INIT
  if (reset) begin
    sync_0 = 1'h0;
  end
  if (reset) begin
    sync_1 = 1'h0;
  end
  if (reset) begin
    sync_2 = 1'h0;
  end
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module AsyncResetSynchronizerShiftReg_w4_d3_i0(
  input        clock,
  input        reset,
  input  [3:0] io_d,
  output [3:0] io_q
);
  wire  output_chain_clock; // @[ShiftReg.scala 45:23]
  wire  output_chain_reset; // @[ShiftReg.scala 45:23]
  wire  output_chain_io_d; // @[ShiftReg.scala 45:23]
  wire  output_chain_io_q; // @[ShiftReg.scala 45:23]
  wire  output_chain_1_clock; // @[ShiftReg.scala 45:23]
  wire  output_chain_1_reset; // @[ShiftReg.scala 45:23]
  wire  output_chain_1_io_d; // @[ShiftReg.scala 45:23]
  wire  output_chain_1_io_q; // @[ShiftReg.scala 45:23]
  wire  output_chain_2_clock; // @[ShiftReg.scala 45:23]
  wire  output_chain_2_reset; // @[ShiftReg.scala 45:23]
  wire  output_chain_2_io_d; // @[ShiftReg.scala 45:23]
  wire  output_chain_2_io_q; // @[ShiftReg.scala 45:23]
  wire  output_chain_3_clock; // @[ShiftReg.scala 45:23]
  wire  output_chain_3_reset; // @[ShiftReg.scala 45:23]
  wire  output_chain_3_io_d; // @[ShiftReg.scala 45:23]
  wire  output_chain_3_io_q; // @[ShiftReg.scala 45:23]
  wire  output_1 = output_chain_1_io_q; // @[ShiftReg.scala 48:{24,24}]
  wire  output_0 = output_chain_io_q; // @[ShiftReg.scala 48:{24,24}]
  wire [1:0] io_q_lo = {output_1,output_0}; // @[Cat.scala 33:92]
  wire  output_3 = output_chain_3_io_q; // @[ShiftReg.scala 48:{24,24}]
  wire  output_2 = output_chain_2_io_q; // @[ShiftReg.scala 48:{24,24}]
  wire [1:0] io_q_hi = {output_3,output_2}; // @[Cat.scala 33:92]
  AsyncResetSynchronizerPrimitiveShiftReg_d3_i0 output_chain ( // @[ShiftReg.scala 45:23]
    .clock(output_chain_clock),
    .reset(output_chain_reset),
    .io_d(output_chain_io_d),
    .io_q(output_chain_io_q)
  );
  AsyncResetSynchronizerPrimitiveShiftReg_d3_i0 output_chain_1 ( // @[ShiftReg.scala 45:23]
    .clock(output_chain_1_clock),
    .reset(output_chain_1_reset),
    .io_d(output_chain_1_io_d),
    .io_q(output_chain_1_io_q)
  );
  AsyncResetSynchronizerPrimitiveShiftReg_d3_i0 output_chain_2 ( // @[ShiftReg.scala 45:23]
    .clock(output_chain_2_clock),
    .reset(output_chain_2_reset),
    .io_d(output_chain_2_io_d),
    .io_q(output_chain_2_io_q)
  );
  AsyncResetSynchronizerPrimitiveShiftReg_d3_i0 output_chain_3 ( // @[ShiftReg.scala 45:23]
    .clock(output_chain_3_clock),
    .reset(output_chain_3_reset),
    .io_d(output_chain_3_io_d),
    .io_q(output_chain_3_io_q)
  );
  assign io_q = {io_q_hi,io_q_lo}; // @[Cat.scala 33:92]
  assign output_chain_clock = clock;
  assign output_chain_reset = reset; // @[SynchronizerReg.scala 86:21]
  assign output_chain_io_d = io_d[0]; // @[SynchronizerReg.scala 87:41]
  assign output_chain_1_clock = clock;
  assign output_chain_1_reset = reset; // @[SynchronizerReg.scala 86:21]
  assign output_chain_1_io_d = io_d[1]; // @[SynchronizerReg.scala 87:41]
  assign output_chain_2_clock = clock;
  assign output_chain_2_reset = reset; // @[SynchronizerReg.scala 86:21]
  assign output_chain_2_io_d = io_d[2]; // @[SynchronizerReg.scala 87:41]
  assign output_chain_3_clock = clock;
  assign output_chain_3_reset = reset; // @[SynchronizerReg.scala 86:21]
  assign output_chain_3_io_d = io_d[3]; // @[SynchronizerReg.scala 87:41]
endmodule
module ClockCrossingReg_w42(
  input         clock,
  input  [41:0] io_d,
  output [41:0] io_q,
  input         io_en
);
`ifdef RANDOMIZE_REG_INIT
  reg [63:0] _RAND_0;
`endif // RANDOMIZE_REG_INIT
  reg [41:0] cdc_reg; // @[Reg.scala 19:16]
  assign io_q = cdc_reg; // @[SynchronizerReg.scala 202:8]
  always @(posedge clock) begin
    if (io_en) begin // @[Reg.scala 20:18]
      cdc_reg <= io_d; // @[Reg.scala 20:22]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {2{`RANDOM}};
  cdc_reg = _RAND_0[41:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module AsyncResetSynchronizerShiftReg_w1_d3_i0(
  input   clock,
  input   reset,
  input   io_d,
  output  io_q
);
  wire  output_chain_clock; // @[ShiftReg.scala 45:23]
  wire  output_chain_reset; // @[ShiftReg.scala 45:23]
  wire  output_chain_io_d; // @[ShiftReg.scala 45:23]
  wire  output_chain_io_q; // @[ShiftReg.scala 45:23]
  AsyncResetSynchronizerPrimitiveShiftReg_d3_i0 output_chain ( // @[ShiftReg.scala 45:23]
    .clock(output_chain_clock),
    .reset(output_chain_reset),
    .io_d(output_chain_io_d),
    .io_q(output_chain_io_q)
  );
  assign io_q = output_chain_io_q; // @[ShiftReg.scala 48:{24,24}]
  assign output_chain_clock = clock;
  assign output_chain_reset = reset; // @[SynchronizerReg.scala 86:21]
  assign output_chain_io_d = io_d; // @[SynchronizerReg.scala 87:41]
endmodule
module AsyncValidSync_16(
  input   io_in,
  output  io_out,
  input   clock,
  input   reset
);
  wire  io_out_sink_valid_0_clock; // @[ShiftReg.scala 45:23]
  wire  io_out_sink_valid_0_reset; // @[ShiftReg.scala 45:23]
  wire  io_out_sink_valid_0_io_d; // @[ShiftReg.scala 45:23]
  wire  io_out_sink_valid_0_io_q; // @[ShiftReg.scala 45:23]
  AsyncResetSynchronizerShiftReg_w1_d3_i0 io_out_sink_valid_0 ( // @[ShiftReg.scala 45:23]
    .clock(io_out_sink_valid_0_clock),
    .reset(io_out_sink_valid_0_reset),
    .io_d(io_out_sink_valid_0_io_d),
    .io_q(io_out_sink_valid_0_io_q)
  );
  assign io_out = io_out_sink_valid_0_io_q; // @[ShiftReg.scala 48:{24,24}]
  assign io_out_sink_valid_0_clock = clock;
  assign io_out_sink_valid_0_reset = reset;
  assign io_out_sink_valid_0_io_d = io_in; // @[ShiftReg.scala 47:16]
endmodule
module AsyncQueueSink_2(
  input         clock,
  input         reset,
  input         io_deq_ready,
  output        io_deq_valid,
  output [7:0]  io_deq_bits_addr,
  output [31:0] io_deq_bits_data,
  output [1:0]  io_deq_bits_op,
  input  [7:0]  io_async_mem_0_addr,
  input  [31:0] io_async_mem_0_data,
  input  [1:0]  io_async_mem_0_op,
  input  [7:0]  io_async_mem_1_addr,
  input  [31:0] io_async_mem_1_data,
  input  [1:0]  io_async_mem_1_op,
  input  [7:0]  io_async_mem_2_addr,
  input  [31:0] io_async_mem_2_data,
  input  [1:0]  io_async_mem_2_op,
  input  [7:0]  io_async_mem_3_addr,
  input  [31:0] io_async_mem_3_data,
  input  [1:0]  io_async_mem_3_op,
  input  [7:0]  io_async_mem_4_addr,
  input  [31:0] io_async_mem_4_data,
  input  [1:0]  io_async_mem_4_op,
  input  [7:0]  io_async_mem_5_addr,
  input  [31:0] io_async_mem_5_data,
  input  [1:0]  io_async_mem_5_op,
  input  [7:0]  io_async_mem_6_addr,
  input  [31:0] io_async_mem_6_data,
  input  [1:0]  io_async_mem_6_op,
  input  [7:0]  io_async_mem_7_addr,
  input  [31:0] io_async_mem_7_data,
  input  [1:0]  io_async_mem_7_op,
  output [3:0]  io_async_ridx,
  input  [3:0]  io_async_widx,
  output        io_async_safe_ridx_valid,
  input         io_async_safe_widx_valid,
  input         io_async_safe_source_reset_n,
  output        io_async_safe_sink_reset_n
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
`endif // RANDOMIZE_REG_INIT
  wire  widx_widx_gray_clock; // @[ShiftReg.scala 45:23]
  wire  widx_widx_gray_reset; // @[ShiftReg.scala 45:23]
  wire [3:0] widx_widx_gray_io_d; // @[ShiftReg.scala 45:23]
  wire [3:0] widx_widx_gray_io_q; // @[ShiftReg.scala 45:23]
  wire  io_deq_bits_deq_bits_reg_clock; // @[SynchronizerReg.scala 207:25]
  wire [41:0] io_deq_bits_deq_bits_reg_io_d; // @[SynchronizerReg.scala 207:25]
  wire [41:0] io_deq_bits_deq_bits_reg_io_q; // @[SynchronizerReg.scala 207:25]
  wire  io_deq_bits_deq_bits_reg_io_en; // @[SynchronizerReg.scala 207:25]
  wire  sink_valid_0_io_in; // @[AsyncQueue.scala 168:33]
  wire  sink_valid_0_io_out; // @[AsyncQueue.scala 168:33]
  wire  sink_valid_0_clock; // @[AsyncQueue.scala 168:33]
  wire  sink_valid_0_reset; // @[AsyncQueue.scala 168:33]
  wire  sink_valid_1_io_in; // @[AsyncQueue.scala 169:33]
  wire  sink_valid_1_io_out; // @[AsyncQueue.scala 169:33]
  wire  sink_valid_1_clock; // @[AsyncQueue.scala 169:33]
  wire  sink_valid_1_reset; // @[AsyncQueue.scala 169:33]
  wire  source_extend_io_in; // @[AsyncQueue.scala 171:31]
  wire  source_extend_io_out; // @[AsyncQueue.scala 171:31]
  wire  source_extend_clock; // @[AsyncQueue.scala 171:31]
  wire  source_extend_reset; // @[AsyncQueue.scala 171:31]
  wire  source_valid_io_in; // @[AsyncQueue.scala 172:31]
  wire  source_valid_io_out; // @[AsyncQueue.scala 172:31]
  wire  source_valid_clock; // @[AsyncQueue.scala 172:31]
  wire  source_valid_reset; // @[AsyncQueue.scala 172:31]
  wire  _ridx_T_1 = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire  source_ready = source_valid_io_out;
  wire  _ridx_T_2 = ~source_ready; // @[AsyncQueue.scala 144:79]
  reg [3:0] ridx_ridx_bin; // @[AsyncQueue.scala 52:25]
  wire [3:0] _GEN_24 = {{3'd0}, _ridx_T_1}; // @[AsyncQueue.scala 53:43]
  wire [3:0] _ridx_incremented_T_1 = ridx_ridx_bin + _GEN_24; // @[AsyncQueue.scala 53:43]
  wire [3:0] ridx_incremented = _ridx_T_2 ? 4'h0 : _ridx_incremented_T_1; // @[AsyncQueue.scala 53:23]
  wire [3:0] _GEN_25 = {{1'd0}, ridx_incremented[3:1]}; // @[AsyncQueue.scala 54:17]
  wire [3:0] ridx = ridx_incremented ^ _GEN_25; // @[AsyncQueue.scala 54:17]
  wire [3:0] widx = widx_widx_gray_io_q; // @[ShiftReg.scala 48:{24,24}]
  wire [2:0] _index_T_2 = {ridx[3], 2'h0}; // @[AsyncQueue.scala 152:75]
  wire [2:0] index = ridx[2:0] ^ _index_T_2; // @[AsyncQueue.scala 152:55]
  wire [7:0] _GEN_1 = 3'h1 == index ? io_async_mem_1_addr : io_async_mem_0_addr; // @[SynchronizerReg.scala 209:{24,24}]
  wire [7:0] _GEN_2 = 3'h2 == index ? io_async_mem_2_addr : _GEN_1; // @[SynchronizerReg.scala 209:{24,24}]
  wire [7:0] _GEN_3 = 3'h3 == index ? io_async_mem_3_addr : _GEN_2; // @[SynchronizerReg.scala 209:{24,24}]
  wire [7:0] _GEN_4 = 3'h4 == index ? io_async_mem_4_addr : _GEN_3; // @[SynchronizerReg.scala 209:{24,24}]
  wire [7:0] _GEN_5 = 3'h5 == index ? io_async_mem_5_addr : _GEN_4; // @[SynchronizerReg.scala 209:{24,24}]
  wire [7:0] _GEN_6 = 3'h6 == index ? io_async_mem_6_addr : _GEN_5; // @[SynchronizerReg.scala 209:{24,24}]
  wire [7:0] _GEN_7 = 3'h7 == index ? io_async_mem_7_addr : _GEN_6; // @[SynchronizerReg.scala 209:{24,24}]
  wire [31:0] _GEN_9 = 3'h1 == index ? io_async_mem_1_data : io_async_mem_0_data; // @[SynchronizerReg.scala 209:{24,24}]
  wire [31:0] _GEN_10 = 3'h2 == index ? io_async_mem_2_data : _GEN_9; // @[SynchronizerReg.scala 209:{24,24}]
  wire [31:0] _GEN_11 = 3'h3 == index ? io_async_mem_3_data : _GEN_10; // @[SynchronizerReg.scala 209:{24,24}]
  wire [31:0] _GEN_12 = 3'h4 == index ? io_async_mem_4_data : _GEN_11; // @[SynchronizerReg.scala 209:{24,24}]
  wire [31:0] _GEN_13 = 3'h5 == index ? io_async_mem_5_data : _GEN_12; // @[SynchronizerReg.scala 209:{24,24}]
  wire [31:0] _GEN_14 = 3'h6 == index ? io_async_mem_6_data : _GEN_13; // @[SynchronizerReg.scala 209:{24,24}]
  wire [31:0] _GEN_15 = 3'h7 == index ? io_async_mem_7_data : _GEN_14; // @[SynchronizerReg.scala 209:{24,24}]
  wire [39:0] io_deq_bits_deq_bits_reg_io_d_hi = {_GEN_7,_GEN_15}; // @[SynchronizerReg.scala 209:24]
  wire [1:0] _GEN_17 = 3'h1 == index ? io_async_mem_1_op : io_async_mem_0_op; // @[SynchronizerReg.scala 209:{24,24}]
  wire [1:0] _GEN_18 = 3'h2 == index ? io_async_mem_2_op : _GEN_17; // @[SynchronizerReg.scala 209:{24,24}]
  wire [1:0] _GEN_19 = 3'h3 == index ? io_async_mem_3_op : _GEN_18; // @[SynchronizerReg.scala 209:{24,24}]
  wire [1:0] _GEN_20 = 3'h4 == index ? io_async_mem_4_op : _GEN_19; // @[SynchronizerReg.scala 209:{24,24}]
  wire [1:0] _GEN_21 = 3'h5 == index ? io_async_mem_5_op : _GEN_20; // @[SynchronizerReg.scala 209:{24,24}]
  wire [1:0] _GEN_22 = 3'h6 == index ? io_async_mem_6_op : _GEN_21; // @[SynchronizerReg.scala 209:{24,24}]
  wire [1:0] _GEN_23 = 3'h7 == index ? io_async_mem_7_op : _GEN_22; // @[SynchronizerReg.scala 209:{24,24}]
  wire [41:0] _io_deq_bits_WIRE_1 = io_deq_bits_deq_bits_reg_io_q;
  reg  valid_reg; // @[AsyncQueue.scala 161:56]
  reg [3:0] ridx_gray; // @[AsyncQueue.scala 164:55]
  AsyncResetSynchronizerShiftReg_w4_d3_i0 widx_widx_gray ( // @[ShiftReg.scala 45:23]
    .clock(widx_widx_gray_clock),
    .reset(widx_widx_gray_reset),
    .io_d(widx_widx_gray_io_d),
    .io_q(widx_widx_gray_io_q)
  );
  ClockCrossingReg_w42 io_deq_bits_deq_bits_reg ( // @[SynchronizerReg.scala 207:25]
    .clock(io_deq_bits_deq_bits_reg_clock),
    .io_d(io_deq_bits_deq_bits_reg_io_d),
    .io_q(io_deq_bits_deq_bits_reg_io_q),
    .io_en(io_deq_bits_deq_bits_reg_io_en)
  );
  AsyncValidSync_16 sink_valid_0 ( // @[AsyncQueue.scala 168:33]
    .io_in(sink_valid_0_io_in),
    .io_out(sink_valid_0_io_out),
    .clock(sink_valid_0_clock),
    .reset(sink_valid_0_reset)
  );
  AsyncValidSync_16 sink_valid_1 ( // @[AsyncQueue.scala 169:33]
    .io_in(sink_valid_1_io_in),
    .io_out(sink_valid_1_io_out),
    .clock(sink_valid_1_clock),
    .reset(sink_valid_1_reset)
  );
  AsyncValidSync_16 source_extend ( // @[AsyncQueue.scala 171:31]
    .io_in(source_extend_io_in),
    .io_out(source_extend_io_out),
    .clock(source_extend_clock),
    .reset(source_extend_reset)
  );
  AsyncValidSync_16 source_valid ( // @[AsyncQueue.scala 172:31]
    .io_in(source_valid_io_in),
    .io_out(source_valid_io_out),
    .clock(source_valid_clock),
    .reset(source_valid_reset)
  );
  assign io_deq_valid = valid_reg & source_ready; // @[AsyncQueue.scala 162:29]
  assign io_deq_bits_addr = _io_deq_bits_WIRE_1[41:34]; // @[SynchronizerReg.scala 211:26]
  assign io_deq_bits_data = _io_deq_bits_WIRE_1[33:2]; // @[SynchronizerReg.scala 211:26]
  assign io_deq_bits_op = _io_deq_bits_WIRE_1[1:0]; // @[SynchronizerReg.scala 211:26]
  assign io_async_ridx = ridx_gray; // @[AsyncQueue.scala 165:17]
  assign io_async_safe_ridx_valid = sink_valid_1_io_out; // @[AsyncQueue.scala 185:20]
  assign io_async_safe_sink_reset_n = ~reset; // @[AsyncQueue.scala 189:25]
  assign widx_widx_gray_clock = clock;
  assign widx_widx_gray_reset = reset;
  assign widx_widx_gray_io_d = io_async_widx; // @[ShiftReg.scala 47:16]
  assign io_deq_bits_deq_bits_reg_clock = clock;
  assign io_deq_bits_deq_bits_reg_io_d = {io_deq_bits_deq_bits_reg_io_d_hi,_GEN_23}; // @[SynchronizerReg.scala 209:24]
  assign io_deq_bits_deq_bits_reg_io_en = source_ready & ridx != widx; // @[AsyncQueue.scala 146:28]
  assign sink_valid_0_io_in = 1'h1; // @[AsyncQueue.scala 183:24]
  assign sink_valid_0_clock = clock; // @[AsyncQueue.scala 178:25]
  assign sink_valid_0_reset = reset | ~io_async_safe_source_reset_n; // @[AsyncQueue.scala 173:66]
  assign sink_valid_1_io_in = sink_valid_0_io_out; // @[AsyncQueue.scala 184:24]
  assign sink_valid_1_clock = clock; // @[AsyncQueue.scala 179:25]
  assign sink_valid_1_reset = reset | ~io_async_safe_source_reset_n; // @[AsyncQueue.scala 174:66]
  assign source_extend_io_in = io_async_safe_widx_valid; // @[AsyncQueue.scala 186:25]
  assign source_extend_clock = clock; // @[AsyncQueue.scala 180:25]
  assign source_extend_reset = reset | ~io_async_safe_source_reset_n; // @[AsyncQueue.scala 175:66]
  assign source_valid_io_in = source_extend_io_out; // @[AsyncQueue.scala 187:24]
  assign source_valid_clock = clock; // @[AsyncQueue.scala 181:25]
  assign source_valid_reset = reset; // @[AsyncQueue.scala 176:34]
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[AsyncQueue.scala 53:23]
      ridx_ridx_bin <= 4'h0;
    end else if (_ridx_T_2) begin
      ridx_ridx_bin <= 4'h0;
    end else begin
      ridx_ridx_bin <= _ridx_incremented_T_1;
    end
  end
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[AsyncQueue.scala 146:28]
      valid_reg <= 1'h0;
    end else begin
      valid_reg <= source_ready & ridx != widx;
    end
  end
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[AsyncQueue.scala 54:17]
      ridx_gray <= 4'h0;
    end else begin
      ridx_gray <= ridx_incremented ^ _GEN_25;
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  ridx_ridx_bin = _RAND_0[3:0];
  _RAND_1 = {1{`RANDOM}};
  valid_reg = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  ridx_gray = _RAND_2[3:0];
`endif // RANDOMIZE_REG_INIT
  if (reset) begin
    ridx_ridx_bin = 4'h0;
  end
  if (reset) begin
    valid_reg = 1'h0;
  end
  if (reset) begin
    ridx_gray = 4'h0;
  end
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module AsyncQueueSource_2(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [7:0]  io_enq_bits_addr,
  input  [31:0] io_enq_bits_data,
  input  [1:0]  io_enq_bits_op,
  output [7:0]  io_async_mem_0_addr,
  output [31:0] io_async_mem_0_data,
  output [1:0]  io_async_mem_0_op,
  output [7:0]  io_async_mem_1_addr,
  output [31:0] io_async_mem_1_data,
  output [1:0]  io_async_mem_1_op,
  output [7:0]  io_async_mem_2_addr,
  output [31:0] io_async_mem_2_data,
  output [1:0]  io_async_mem_2_op,
  output [7:0]  io_async_mem_3_addr,
  output [31:0] io_async_mem_3_data,
  output [1:0]  io_async_mem_3_op,
  output [7:0]  io_async_mem_4_addr,
  output [31:0] io_async_mem_4_data,
  output [1:0]  io_async_mem_4_op,
  output [7:0]  io_async_mem_5_addr,
  output [31:0] io_async_mem_5_data,
  output [1:0]  io_async_mem_5_op,
  output [7:0]  io_async_mem_6_addr,
  output [31:0] io_async_mem_6_data,
  output [1:0]  io_async_mem_6_op,
  output [7:0]  io_async_mem_7_addr,
  output [31:0] io_async_mem_7_data,
  output [1:0]  io_async_mem_7_op,
  input  [3:0]  io_async_ridx,
  output [3:0]  io_async_widx,
  input         io_async_safe_ridx_valid,
  output        io_async_safe_widx_valid,
  output        io_async_safe_source_reset_n,
  input         io_async_safe_sink_reset_n
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
`endif // RANDOMIZE_REG_INIT
  wire  ridx_ridx_gray_clock; // @[ShiftReg.scala 45:23]
  wire  ridx_ridx_gray_reset; // @[ShiftReg.scala 45:23]
  wire [3:0] ridx_ridx_gray_io_d; // @[ShiftReg.scala 45:23]
  wire [3:0] ridx_ridx_gray_io_q; // @[ShiftReg.scala 45:23]
  wire  source_valid_0_io_in; // @[AsyncQueue.scala 100:32]
  wire  source_valid_0_io_out; // @[AsyncQueue.scala 100:32]
  wire  source_valid_0_clock; // @[AsyncQueue.scala 100:32]
  wire  source_valid_0_reset; // @[AsyncQueue.scala 100:32]
  wire  source_valid_1_io_in; // @[AsyncQueue.scala 101:32]
  wire  source_valid_1_io_out; // @[AsyncQueue.scala 101:32]
  wire  source_valid_1_clock; // @[AsyncQueue.scala 101:32]
  wire  source_valid_1_reset; // @[AsyncQueue.scala 101:32]
  wire  sink_extend_io_in; // @[AsyncQueue.scala 103:30]
  wire  sink_extend_io_out; // @[AsyncQueue.scala 103:30]
  wire  sink_extend_clock; // @[AsyncQueue.scala 103:30]
  wire  sink_extend_reset; // @[AsyncQueue.scala 103:30]
  wire  sink_valid_io_in; // @[AsyncQueue.scala 104:30]
  wire  sink_valid_io_out; // @[AsyncQueue.scala 104:30]
  wire  sink_valid_clock; // @[AsyncQueue.scala 104:30]
  wire  sink_valid_reset; // @[AsyncQueue.scala 104:30]
  reg [7:0] mem_0_addr; // @[AsyncQueue.scala 80:16]
  reg [31:0] mem_0_data; // @[AsyncQueue.scala 80:16]
  reg [1:0] mem_0_op; // @[AsyncQueue.scala 80:16]
  reg [7:0] mem_1_addr; // @[AsyncQueue.scala 80:16]
  reg [31:0] mem_1_data; // @[AsyncQueue.scala 80:16]
  reg [1:0] mem_1_op; // @[AsyncQueue.scala 80:16]
  reg [7:0] mem_2_addr; // @[AsyncQueue.scala 80:16]
  reg [31:0] mem_2_data; // @[AsyncQueue.scala 80:16]
  reg [1:0] mem_2_op; // @[AsyncQueue.scala 80:16]
  reg [7:0] mem_3_addr; // @[AsyncQueue.scala 80:16]
  reg [31:0] mem_3_data; // @[AsyncQueue.scala 80:16]
  reg [1:0] mem_3_op; // @[AsyncQueue.scala 80:16]
  reg [7:0] mem_4_addr; // @[AsyncQueue.scala 80:16]
  reg [31:0] mem_4_data; // @[AsyncQueue.scala 80:16]
  reg [1:0] mem_4_op; // @[AsyncQueue.scala 80:16]
  reg [7:0] mem_5_addr; // @[AsyncQueue.scala 80:16]
  reg [31:0] mem_5_data; // @[AsyncQueue.scala 80:16]
  reg [1:0] mem_5_op; // @[AsyncQueue.scala 80:16]
  reg [7:0] mem_6_addr; // @[AsyncQueue.scala 80:16]
  reg [31:0] mem_6_data; // @[AsyncQueue.scala 80:16]
  reg [1:0] mem_6_op; // @[AsyncQueue.scala 80:16]
  reg [7:0] mem_7_addr; // @[AsyncQueue.scala 80:16]
  reg [31:0] mem_7_data; // @[AsyncQueue.scala 80:16]
  reg [1:0] mem_7_op; // @[AsyncQueue.scala 80:16]
  wire  _widx_T_1 = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  sink_ready = sink_valid_io_out;
  wire  _widx_T_2 = ~sink_ready; // @[AsyncQueue.scala 81:79]
  reg [3:0] widx_widx_bin; // @[AsyncQueue.scala 52:25]
  wire [3:0] _GEN_48 = {{3'd0}, _widx_T_1}; // @[AsyncQueue.scala 53:43]
  wire [3:0] _widx_incremented_T_1 = widx_widx_bin + _GEN_48; // @[AsyncQueue.scala 53:43]
  wire [3:0] widx_incremented = _widx_T_2 ? 4'h0 : _widx_incremented_T_1; // @[AsyncQueue.scala 53:23]
  wire [3:0] _GEN_49 = {{1'd0}, widx_incremented[3:1]}; // @[AsyncQueue.scala 54:17]
  wire [3:0] widx = widx_incremented ^ _GEN_49; // @[AsyncQueue.scala 54:17]
  wire [3:0] ridx = ridx_ridx_gray_io_q; // @[ShiftReg.scala 48:{24,24}]
  wire [3:0] _ready_T = ridx ^ 4'hc; // @[AsyncQueue.scala 83:44]
  wire [2:0] _index_T_2 = {io_async_widx[3], 2'h0}; // @[AsyncQueue.scala 85:93]
  wire [2:0] index = io_async_widx[2:0] ^ _index_T_2; // @[AsyncQueue.scala 85:64]
  reg  ready_reg; // @[AsyncQueue.scala 88:56]
  reg [3:0] widx_gray; // @[AsyncQueue.scala 91:55]
  AsyncResetSynchronizerShiftReg_w4_d3_i0 ridx_ridx_gray ( // @[ShiftReg.scala 45:23]
    .clock(ridx_ridx_gray_clock),
    .reset(ridx_ridx_gray_reset),
    .io_d(ridx_ridx_gray_io_d),
    .io_q(ridx_ridx_gray_io_q)
  );
  AsyncValidSync_16 source_valid_0 ( // @[AsyncQueue.scala 100:32]
    .io_in(source_valid_0_io_in),
    .io_out(source_valid_0_io_out),
    .clock(source_valid_0_clock),
    .reset(source_valid_0_reset)
  );
  AsyncValidSync_16 source_valid_1 ( // @[AsyncQueue.scala 101:32]
    .io_in(source_valid_1_io_in),
    .io_out(source_valid_1_io_out),
    .clock(source_valid_1_clock),
    .reset(source_valid_1_reset)
  );
  AsyncValidSync_16 sink_extend ( // @[AsyncQueue.scala 103:30]
    .io_in(sink_extend_io_in),
    .io_out(sink_extend_io_out),
    .clock(sink_extend_clock),
    .reset(sink_extend_reset)
  );
  AsyncValidSync_16 sink_valid ( // @[AsyncQueue.scala 104:30]
    .io_in(sink_valid_io_in),
    .io_out(sink_valid_io_out),
    .clock(sink_valid_clock),
    .reset(sink_valid_reset)
  );
  assign io_enq_ready = ready_reg & sink_ready; // @[AsyncQueue.scala 89:29]
  assign io_async_mem_0_addr = mem_0_addr; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_0_data = mem_0_data; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_0_op = mem_0_op; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_1_addr = mem_1_addr; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_1_data = mem_1_data; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_1_op = mem_1_op; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_2_addr = mem_2_addr; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_2_data = mem_2_data; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_2_op = mem_2_op; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_3_addr = mem_3_addr; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_3_data = mem_3_data; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_3_op = mem_3_op; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_4_addr = mem_4_addr; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_4_data = mem_4_data; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_4_op = mem_4_op; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_5_addr = mem_5_addr; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_5_data = mem_5_data; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_5_op = mem_5_op; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_6_addr = mem_6_addr; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_6_data = mem_6_data; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_6_op = mem_6_op; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_7_addr = mem_7_addr; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_7_data = mem_7_data; // @[AsyncQueue.scala 96:31]
  assign io_async_mem_7_op = mem_7_op; // @[AsyncQueue.scala 96:31]
  assign io_async_widx = widx_gray; // @[AsyncQueue.scala 92:17]
  assign io_async_safe_widx_valid = source_valid_1_io_out; // @[AsyncQueue.scala 117:20]
  assign io_async_safe_source_reset_n = ~reset; // @[AsyncQueue.scala 121:27]
  assign ridx_ridx_gray_clock = clock;
  assign ridx_ridx_gray_reset = reset;
  assign ridx_ridx_gray_io_d = io_async_ridx; // @[ShiftReg.scala 47:16]
  assign source_valid_0_io_in = 1'h1; // @[AsyncQueue.scala 115:26]
  assign source_valid_0_clock = clock; // @[AsyncQueue.scala 110:26]
  assign source_valid_0_reset = reset | ~io_async_safe_sink_reset_n; // @[AsyncQueue.scala 105:65]
  assign source_valid_1_io_in = source_valid_0_io_out; // @[AsyncQueue.scala 116:26]
  assign source_valid_1_clock = clock; // @[AsyncQueue.scala 111:26]
  assign source_valid_1_reset = reset | ~io_async_safe_sink_reset_n; // @[AsyncQueue.scala 106:65]
  assign sink_extend_io_in = io_async_safe_ridx_valid; // @[AsyncQueue.scala 118:23]
  assign sink_extend_clock = clock; // @[AsyncQueue.scala 112:26]
  assign sink_extend_reset = reset | ~io_async_safe_sink_reset_n; // @[AsyncQueue.scala 107:65]
  assign sink_valid_io_in = sink_extend_io_out; // @[AsyncQueue.scala 119:22]
  assign sink_valid_clock = clock; // @[AsyncQueue.scala 113:26]
  assign sink_valid_reset = reset; // @[AsyncQueue.scala 108:35]
  always @(posedge clock) begin
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h0 == index) begin // @[AsyncQueue.scala 86:37]
        mem_0_addr <= io_enq_bits_addr; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h0 == index) begin // @[AsyncQueue.scala 86:37]
        mem_0_data <= io_enq_bits_data; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h0 == index) begin // @[AsyncQueue.scala 86:37]
        mem_0_op <= io_enq_bits_op; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h1 == index) begin // @[AsyncQueue.scala 86:37]
        mem_1_addr <= io_enq_bits_addr; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h1 == index) begin // @[AsyncQueue.scala 86:37]
        mem_1_data <= io_enq_bits_data; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h1 == index) begin // @[AsyncQueue.scala 86:37]
        mem_1_op <= io_enq_bits_op; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h2 == index) begin // @[AsyncQueue.scala 86:37]
        mem_2_addr <= io_enq_bits_addr; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h2 == index) begin // @[AsyncQueue.scala 86:37]
        mem_2_data <= io_enq_bits_data; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h2 == index) begin // @[AsyncQueue.scala 86:37]
        mem_2_op <= io_enq_bits_op; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h3 == index) begin // @[AsyncQueue.scala 86:37]
        mem_3_addr <= io_enq_bits_addr; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h3 == index) begin // @[AsyncQueue.scala 86:37]
        mem_3_data <= io_enq_bits_data; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h3 == index) begin // @[AsyncQueue.scala 86:37]
        mem_3_op <= io_enq_bits_op; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h4 == index) begin // @[AsyncQueue.scala 86:37]
        mem_4_addr <= io_enq_bits_addr; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h4 == index) begin // @[AsyncQueue.scala 86:37]
        mem_4_data <= io_enq_bits_data; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h4 == index) begin // @[AsyncQueue.scala 86:37]
        mem_4_op <= io_enq_bits_op; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h5 == index) begin // @[AsyncQueue.scala 86:37]
        mem_5_addr <= io_enq_bits_addr; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h5 == index) begin // @[AsyncQueue.scala 86:37]
        mem_5_data <= io_enq_bits_data; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h5 == index) begin // @[AsyncQueue.scala 86:37]
        mem_5_op <= io_enq_bits_op; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h6 == index) begin // @[AsyncQueue.scala 86:37]
        mem_6_addr <= io_enq_bits_addr; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h6 == index) begin // @[AsyncQueue.scala 86:37]
        mem_6_data <= io_enq_bits_data; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h6 == index) begin // @[AsyncQueue.scala 86:37]
        mem_6_op <= io_enq_bits_op; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h7 == index) begin // @[AsyncQueue.scala 86:37]
        mem_7_addr <= io_enq_bits_addr; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h7 == index) begin // @[AsyncQueue.scala 86:37]
        mem_7_data <= io_enq_bits_data; // @[AsyncQueue.scala 86:37]
      end
    end
    if (_widx_T_1) begin // @[AsyncQueue.scala 86:24]
      if (3'h7 == index) begin // @[AsyncQueue.scala 86:37]
        mem_7_op <= io_enq_bits_op; // @[AsyncQueue.scala 86:37]
      end
    end
  end
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[AsyncQueue.scala 53:23]
      widx_widx_bin <= 4'h0;
    end else if (_widx_T_2) begin
      widx_widx_bin <= 4'h0;
    end else begin
      widx_widx_bin <= _widx_incremented_T_1;
    end
  end
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[AsyncQueue.scala 83:26]
      ready_reg <= 1'h0;
    end else begin
      ready_reg <= sink_ready & widx != _ready_T;
    end
  end
  always @(posedge clock or posedge reset) begin
    if (reset) begin // @[AsyncQueue.scala 54:17]
      widx_gray <= 4'h0;
    end else begin
      widx_gray <= widx_incremented ^ _GEN_49;
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  mem_0_addr = _RAND_0[7:0];
  _RAND_1 = {1{`RANDOM}};
  mem_0_data = _RAND_1[31:0];
  _RAND_2 = {1{`RANDOM}};
  mem_0_op = _RAND_2[1:0];
  _RAND_3 = {1{`RANDOM}};
  mem_1_addr = _RAND_3[7:0];
  _RAND_4 = {1{`RANDOM}};
  mem_1_data = _RAND_4[31:0];
  _RAND_5 = {1{`RANDOM}};
  mem_1_op = _RAND_5[1:0];
  _RAND_6 = {1{`RANDOM}};
  mem_2_addr = _RAND_6[7:0];
  _RAND_7 = {1{`RANDOM}};
  mem_2_data = _RAND_7[31:0];
  _RAND_8 = {1{`RANDOM}};
  mem_2_op = _RAND_8[1:0];
  _RAND_9 = {1{`RANDOM}};
  mem_3_addr = _RAND_9[7:0];
  _RAND_10 = {1{`RANDOM}};
  mem_3_data = _RAND_10[31:0];
  _RAND_11 = {1{`RANDOM}};
  mem_3_op = _RAND_11[1:0];
  _RAND_12 = {1{`RANDOM}};
  mem_4_addr = _RAND_12[7:0];
  _RAND_13 = {1{`RANDOM}};
  mem_4_data = _RAND_13[31:0];
  _RAND_14 = {1{`RANDOM}};
  mem_4_op = _RAND_14[1:0];
  _RAND_15 = {1{`RANDOM}};
  mem_5_addr = _RAND_15[7:0];
  _RAND_16 = {1{`RANDOM}};
  mem_5_data = _RAND_16[31:0];
  _RAND_17 = {1{`RANDOM}};
  mem_5_op = _RAND_17[1:0];
  _RAND_18 = {1{`RANDOM}};
  mem_6_addr = _RAND_18[7:0];
  _RAND_19 = {1{`RANDOM}};
  mem_6_data = _RAND_19[31:0];
  _RAND_20 = {1{`RANDOM}};
  mem_6_op = _RAND_20[1:0];
  _RAND_21 = {1{`RANDOM}};
  mem_7_addr = _RAND_21[7:0];
  _RAND_22 = {1{`RANDOM}};
  mem_7_data = _RAND_22[31:0];
  _RAND_23 = {1{`RANDOM}};
  mem_7_op = _RAND_23[1:0];
  _RAND_24 = {1{`RANDOM}};
  widx_widx_bin = _RAND_24[3:0];
  _RAND_25 = {1{`RANDOM}};
  ready_reg = _RAND_25[0:0];
  _RAND_26 = {1{`RANDOM}};
  widx_gray = _RAND_26[3:0];
`endif // RANDOMIZE_REG_INIT
  if (reset) begin
    widx_widx_bin = 4'h0;
  end
  if (reset) begin
    ready_reg = 1'h0;
  end
  if (reset) begin
    widx_gray = 4'h0;
  end
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module DMI(
  input         clock,
  input         reset,
  input         io_tck,
  input         io_trstn,
  output        io_dtm_dmi_req_ready,
  input         io_dtm_dmi_req_valid,
  input  [7:0]  io_dtm_dmi_req_bits_addr,
  input  [31:0] io_dtm_dmi_req_bits_data,
  input  [1:0]  io_dtm_dmi_req_bits_op,
  input         io_dtm_dmi_resp_ready,
  output        io_dtm_dmi_resp_valid,
  output [31:0] io_dtm_dmi_resp_bits_data,
  output [1:0]  io_dtm_dmi_resp_bits_op,
  input         io_dmi_dm_req_ready,
  output        io_dmi_dm_req_valid,
  output [7:0]  io_dmi_dm_req_bits_addr,
  output [31:0] io_dmi_dm_req_bits_data,
  output [1:0]  io_dmi_dm_req_bits_op,
  output        io_dmi_dm_resp_ready,
  input         io_dmi_dm_resp_valid,
  input  [31:0] io_dmi_dm_resp_bits_data
);
  wire  io_dmi_dm_req_sink_clock; // @[AsyncQueue.scala 207:22]
  wire  io_dmi_dm_req_sink_reset; // @[AsyncQueue.scala 207:22]
  wire  io_dmi_dm_req_sink_io_deq_ready; // @[AsyncQueue.scala 207:22]
  wire  io_dmi_dm_req_sink_io_deq_valid; // @[AsyncQueue.scala 207:22]
  wire [7:0] io_dmi_dm_req_sink_io_deq_bits_addr; // @[AsyncQueue.scala 207:22]
  wire [31:0] io_dmi_dm_req_sink_io_deq_bits_data; // @[AsyncQueue.scala 207:22]
  wire [1:0] io_dmi_dm_req_sink_io_deq_bits_op; // @[AsyncQueue.scala 207:22]
  wire [7:0] io_dmi_dm_req_sink_io_async_mem_0_addr; // @[AsyncQueue.scala 207:22]
  wire [31:0] io_dmi_dm_req_sink_io_async_mem_0_data; // @[AsyncQueue.scala 207:22]
  wire [1:0] io_dmi_dm_req_sink_io_async_mem_0_op; // @[AsyncQueue.scala 207:22]
  wire [7:0] io_dmi_dm_req_sink_io_async_mem_1_addr; // @[AsyncQueue.scala 207:22]
  wire [31:0] io_dmi_dm_req_sink_io_async_mem_1_data; // @[AsyncQueue.scala 207:22]
  wire [1:0] io_dmi_dm_req_sink_io_async_mem_1_op; // @[AsyncQueue.scala 207:22]
  wire [7:0] io_dmi_dm_req_sink_io_async_mem_2_addr; // @[AsyncQueue.scala 207:22]
  wire [31:0] io_dmi_dm_req_sink_io_async_mem_2_data; // @[AsyncQueue.scala 207:22]
  wire [1:0] io_dmi_dm_req_sink_io_async_mem_2_op; // @[AsyncQueue.scala 207:22]
  wire [7:0] io_dmi_dm_req_sink_io_async_mem_3_addr; // @[AsyncQueue.scala 207:22]
  wire [31:0] io_dmi_dm_req_sink_io_async_mem_3_data; // @[AsyncQueue.scala 207:22]
  wire [1:0] io_dmi_dm_req_sink_io_async_mem_3_op; // @[AsyncQueue.scala 207:22]
  wire [7:0] io_dmi_dm_req_sink_io_async_mem_4_addr; // @[AsyncQueue.scala 207:22]
  wire [31:0] io_dmi_dm_req_sink_io_async_mem_4_data; // @[AsyncQueue.scala 207:22]
  wire [1:0] io_dmi_dm_req_sink_io_async_mem_4_op; // @[AsyncQueue.scala 207:22]
  wire [7:0] io_dmi_dm_req_sink_io_async_mem_5_addr; // @[AsyncQueue.scala 207:22]
  wire [31:0] io_dmi_dm_req_sink_io_async_mem_5_data; // @[AsyncQueue.scala 207:22]
  wire [1:0] io_dmi_dm_req_sink_io_async_mem_5_op; // @[AsyncQueue.scala 207:22]
  wire [7:0] io_dmi_dm_req_sink_io_async_mem_6_addr; // @[AsyncQueue.scala 207:22]
  wire [31:0] io_dmi_dm_req_sink_io_async_mem_6_data; // @[AsyncQueue.scala 207:22]
  wire [1:0] io_dmi_dm_req_sink_io_async_mem_6_op; // @[AsyncQueue.scala 207:22]
  wire [7:0] io_dmi_dm_req_sink_io_async_mem_7_addr; // @[AsyncQueue.scala 207:22]
  wire [31:0] io_dmi_dm_req_sink_io_async_mem_7_data; // @[AsyncQueue.scala 207:22]
  wire [1:0] io_dmi_dm_req_sink_io_async_mem_7_op; // @[AsyncQueue.scala 207:22]
  wire [3:0] io_dmi_dm_req_sink_io_async_ridx; // @[AsyncQueue.scala 207:22]
  wire [3:0] io_dmi_dm_req_sink_io_async_widx; // @[AsyncQueue.scala 207:22]
  wire  io_dmi_dm_req_sink_io_async_safe_ridx_valid; // @[AsyncQueue.scala 207:22]
  wire  io_dmi_dm_req_sink_io_async_safe_widx_valid; // @[AsyncQueue.scala 207:22]
  wire  io_dmi_dm_req_sink_io_async_safe_source_reset_n; // @[AsyncQueue.scala 207:22]
  wire  io_dmi_dm_req_sink_io_async_safe_sink_reset_n; // @[AsyncQueue.scala 207:22]
  wire  resp_ToAsync_source_clock; // @[AsyncQueue.scala 216:24]
  wire  resp_ToAsync_source_reset; // @[AsyncQueue.scala 216:24]
  wire  resp_ToAsync_source_io_enq_ready; // @[AsyncQueue.scala 216:24]
  wire  resp_ToAsync_source_io_enq_valid; // @[AsyncQueue.scala 216:24]
  wire [7:0] resp_ToAsync_source_io_enq_bits_addr; // @[AsyncQueue.scala 216:24]
  wire [31:0] resp_ToAsync_source_io_enq_bits_data; // @[AsyncQueue.scala 216:24]
  wire [1:0] resp_ToAsync_source_io_enq_bits_op; // @[AsyncQueue.scala 216:24]
  wire [7:0] resp_ToAsync_source_io_async_mem_0_addr; // @[AsyncQueue.scala 216:24]
  wire [31:0] resp_ToAsync_source_io_async_mem_0_data; // @[AsyncQueue.scala 216:24]
  wire [1:0] resp_ToAsync_source_io_async_mem_0_op; // @[AsyncQueue.scala 216:24]
  wire [7:0] resp_ToAsync_source_io_async_mem_1_addr; // @[AsyncQueue.scala 216:24]
  wire [31:0] resp_ToAsync_source_io_async_mem_1_data; // @[AsyncQueue.scala 216:24]
  wire [1:0] resp_ToAsync_source_io_async_mem_1_op; // @[AsyncQueue.scala 216:24]
  wire [7:0] resp_ToAsync_source_io_async_mem_2_addr; // @[AsyncQueue.scala 216:24]
  wire [31:0] resp_ToAsync_source_io_async_mem_2_data; // @[AsyncQueue.scala 216:24]
  wire [1:0] resp_ToAsync_source_io_async_mem_2_op; // @[AsyncQueue.scala 216:24]
  wire [7:0] resp_ToAsync_source_io_async_mem_3_addr; // @[AsyncQueue.scala 216:24]
  wire [31:0] resp_ToAsync_source_io_async_mem_3_data; // @[AsyncQueue.scala 216:24]
  wire [1:0] resp_ToAsync_source_io_async_mem_3_op; // @[AsyncQueue.scala 216:24]
  wire [7:0] resp_ToAsync_source_io_async_mem_4_addr; // @[AsyncQueue.scala 216:24]
  wire [31:0] resp_ToAsync_source_io_async_mem_4_data; // @[AsyncQueue.scala 216:24]
  wire [1:0] resp_ToAsync_source_io_async_mem_4_op; // @[AsyncQueue.scala 216:24]
  wire [7:0] resp_ToAsync_source_io_async_mem_5_addr; // @[AsyncQueue.scala 216:24]
  wire [31:0] resp_ToAsync_source_io_async_mem_5_data; // @[AsyncQueue.scala 216:24]
  wire [1:0] resp_ToAsync_source_io_async_mem_5_op; // @[AsyncQueue.scala 216:24]
  wire [7:0] resp_ToAsync_source_io_async_mem_6_addr; // @[AsyncQueue.scala 216:24]
  wire [31:0] resp_ToAsync_source_io_async_mem_6_data; // @[AsyncQueue.scala 216:24]
  wire [1:0] resp_ToAsync_source_io_async_mem_6_op; // @[AsyncQueue.scala 216:24]
  wire [7:0] resp_ToAsync_source_io_async_mem_7_addr; // @[AsyncQueue.scala 216:24]
  wire [31:0] resp_ToAsync_source_io_async_mem_7_data; // @[AsyncQueue.scala 216:24]
  wire [1:0] resp_ToAsync_source_io_async_mem_7_op; // @[AsyncQueue.scala 216:24]
  wire [3:0] resp_ToAsync_source_io_async_ridx; // @[AsyncQueue.scala 216:24]
  wire [3:0] resp_ToAsync_source_io_async_widx; // @[AsyncQueue.scala 216:24]
  wire  resp_ToAsync_source_io_async_safe_ridx_valid; // @[AsyncQueue.scala 216:24]
  wire  resp_ToAsync_source_io_async_safe_widx_valid; // @[AsyncQueue.scala 216:24]
  wire  resp_ToAsync_source_io_async_safe_source_reset_n; // @[AsyncQueue.scala 216:24]
  wire  resp_ToAsync_source_io_async_safe_sink_reset_n; // @[AsyncQueue.scala 216:24]
  wire  io_dtm_dmi_resp_sink_clock; // @[AsyncQueue.scala 207:22]
  wire  io_dtm_dmi_resp_sink_reset; // @[AsyncQueue.scala 207:22]
  wire  io_dtm_dmi_resp_sink_io_deq_ready; // @[AsyncQueue.scala 207:22]
  wire  io_dtm_dmi_resp_sink_io_deq_valid; // @[AsyncQueue.scala 207:22]
  wire [7:0] io_dtm_dmi_resp_sink_io_deq_bits_addr; // @[AsyncQueue.scala 207:22]
  wire [31:0] io_dtm_dmi_resp_sink_io_deq_bits_data; // @[AsyncQueue.scala 207:22]
  wire [1:0] io_dtm_dmi_resp_sink_io_deq_bits_op; // @[AsyncQueue.scala 207:22]
  wire [7:0] io_dtm_dmi_resp_sink_io_async_mem_0_addr; // @[AsyncQueue.scala 207:22]
  wire [31:0] io_dtm_dmi_resp_sink_io_async_mem_0_data; // @[AsyncQueue.scala 207:22]
  wire [1:0] io_dtm_dmi_resp_sink_io_async_mem_0_op; // @[AsyncQueue.scala 207:22]
  wire [7:0] io_dtm_dmi_resp_sink_io_async_mem_1_addr; // @[AsyncQueue.scala 207:22]
  wire [31:0] io_dtm_dmi_resp_sink_io_async_mem_1_data; // @[AsyncQueue.scala 207:22]
  wire [1:0] io_dtm_dmi_resp_sink_io_async_mem_1_op; // @[AsyncQueue.scala 207:22]
  wire [7:0] io_dtm_dmi_resp_sink_io_async_mem_2_addr; // @[AsyncQueue.scala 207:22]
  wire [31:0] io_dtm_dmi_resp_sink_io_async_mem_2_data; // @[AsyncQueue.scala 207:22]
  wire [1:0] io_dtm_dmi_resp_sink_io_async_mem_2_op; // @[AsyncQueue.scala 207:22]
  wire [7:0] io_dtm_dmi_resp_sink_io_async_mem_3_addr; // @[AsyncQueue.scala 207:22]
  wire [31:0] io_dtm_dmi_resp_sink_io_async_mem_3_data; // @[AsyncQueue.scala 207:22]
  wire [1:0] io_dtm_dmi_resp_sink_io_async_mem_3_op; // @[AsyncQueue.scala 207:22]
  wire [7:0] io_dtm_dmi_resp_sink_io_async_mem_4_addr; // @[AsyncQueue.scala 207:22]
  wire [31:0] io_dtm_dmi_resp_sink_io_async_mem_4_data; // @[AsyncQueue.scala 207:22]
  wire [1:0] io_dtm_dmi_resp_sink_io_async_mem_4_op; // @[AsyncQueue.scala 207:22]
  wire [7:0] io_dtm_dmi_resp_sink_io_async_mem_5_addr; // @[AsyncQueue.scala 207:22]
  wire [31:0] io_dtm_dmi_resp_sink_io_async_mem_5_data; // @[AsyncQueue.scala 207:22]
  wire [1:0] io_dtm_dmi_resp_sink_io_async_mem_5_op; // @[AsyncQueue.scala 207:22]
  wire [7:0] io_dtm_dmi_resp_sink_io_async_mem_6_addr; // @[AsyncQueue.scala 207:22]
  wire [31:0] io_dtm_dmi_resp_sink_io_async_mem_6_data; // @[AsyncQueue.scala 207:22]
  wire [1:0] io_dtm_dmi_resp_sink_io_async_mem_6_op; // @[AsyncQueue.scala 207:22]
  wire [7:0] io_dtm_dmi_resp_sink_io_async_mem_7_addr; // @[AsyncQueue.scala 207:22]
  wire [31:0] io_dtm_dmi_resp_sink_io_async_mem_7_data; // @[AsyncQueue.scala 207:22]
  wire [1:0] io_dtm_dmi_resp_sink_io_async_mem_7_op; // @[AsyncQueue.scala 207:22]
  wire [3:0] io_dtm_dmi_resp_sink_io_async_ridx; // @[AsyncQueue.scala 207:22]
  wire [3:0] io_dtm_dmi_resp_sink_io_async_widx; // @[AsyncQueue.scala 207:22]
  wire  io_dtm_dmi_resp_sink_io_async_safe_ridx_valid; // @[AsyncQueue.scala 207:22]
  wire  io_dtm_dmi_resp_sink_io_async_safe_widx_valid; // @[AsyncQueue.scala 207:22]
  wire  io_dtm_dmi_resp_sink_io_async_safe_source_reset_n; // @[AsyncQueue.scala 207:22]
  wire  io_dtm_dmi_resp_sink_io_async_safe_sink_reset_n; // @[AsyncQueue.scala 207:22]
  wire  req_ToAsync_source_clock; // @[AsyncQueue.scala 216:24]
  wire  req_ToAsync_source_reset; // @[AsyncQueue.scala 216:24]
  wire  req_ToAsync_source_io_enq_ready; // @[AsyncQueue.scala 216:24]
  wire  req_ToAsync_source_io_enq_valid; // @[AsyncQueue.scala 216:24]
  wire [7:0] req_ToAsync_source_io_enq_bits_addr; // @[AsyncQueue.scala 216:24]
  wire [31:0] req_ToAsync_source_io_enq_bits_data; // @[AsyncQueue.scala 216:24]
  wire [1:0] req_ToAsync_source_io_enq_bits_op; // @[AsyncQueue.scala 216:24]
  wire [7:0] req_ToAsync_source_io_async_mem_0_addr; // @[AsyncQueue.scala 216:24]
  wire [31:0] req_ToAsync_source_io_async_mem_0_data; // @[AsyncQueue.scala 216:24]
  wire [1:0] req_ToAsync_source_io_async_mem_0_op; // @[AsyncQueue.scala 216:24]
  wire [7:0] req_ToAsync_source_io_async_mem_1_addr; // @[AsyncQueue.scala 216:24]
  wire [31:0] req_ToAsync_source_io_async_mem_1_data; // @[AsyncQueue.scala 216:24]
  wire [1:0] req_ToAsync_source_io_async_mem_1_op; // @[AsyncQueue.scala 216:24]
  wire [7:0] req_ToAsync_source_io_async_mem_2_addr; // @[AsyncQueue.scala 216:24]
  wire [31:0] req_ToAsync_source_io_async_mem_2_data; // @[AsyncQueue.scala 216:24]
  wire [1:0] req_ToAsync_source_io_async_mem_2_op; // @[AsyncQueue.scala 216:24]
  wire [7:0] req_ToAsync_source_io_async_mem_3_addr; // @[AsyncQueue.scala 216:24]
  wire [31:0] req_ToAsync_source_io_async_mem_3_data; // @[AsyncQueue.scala 216:24]
  wire [1:0] req_ToAsync_source_io_async_mem_3_op; // @[AsyncQueue.scala 216:24]
  wire [7:0] req_ToAsync_source_io_async_mem_4_addr; // @[AsyncQueue.scala 216:24]
  wire [31:0] req_ToAsync_source_io_async_mem_4_data; // @[AsyncQueue.scala 216:24]
  wire [1:0] req_ToAsync_source_io_async_mem_4_op; // @[AsyncQueue.scala 216:24]
  wire [7:0] req_ToAsync_source_io_async_mem_5_addr; // @[AsyncQueue.scala 216:24]
  wire [31:0] req_ToAsync_source_io_async_mem_5_data; // @[AsyncQueue.scala 216:24]
  wire [1:0] req_ToAsync_source_io_async_mem_5_op; // @[AsyncQueue.scala 216:24]
  wire [7:0] req_ToAsync_source_io_async_mem_6_addr; // @[AsyncQueue.scala 216:24]
  wire [31:0] req_ToAsync_source_io_async_mem_6_data; // @[AsyncQueue.scala 216:24]
  wire [1:0] req_ToAsync_source_io_async_mem_6_op; // @[AsyncQueue.scala 216:24]
  wire [7:0] req_ToAsync_source_io_async_mem_7_addr; // @[AsyncQueue.scala 216:24]
  wire [31:0] req_ToAsync_source_io_async_mem_7_data; // @[AsyncQueue.scala 216:24]
  wire [1:0] req_ToAsync_source_io_async_mem_7_op; // @[AsyncQueue.scala 216:24]
  wire [3:0] req_ToAsync_source_io_async_ridx; // @[AsyncQueue.scala 216:24]
  wire [3:0] req_ToAsync_source_io_async_widx; // @[AsyncQueue.scala 216:24]
  wire  req_ToAsync_source_io_async_safe_ridx_valid; // @[AsyncQueue.scala 216:24]
  wire  req_ToAsync_source_io_async_safe_widx_valid; // @[AsyncQueue.scala 216:24]
  wire  req_ToAsync_source_io_async_safe_source_reset_n; // @[AsyncQueue.scala 216:24]
  wire  req_ToAsync_source_io_async_safe_sink_reset_n; // @[AsyncQueue.scala 216:24]
  AsyncQueueSink_2 io_dmi_dm_req_sink ( // @[AsyncQueue.scala 207:22]
    .clock(io_dmi_dm_req_sink_clock),
    .reset(io_dmi_dm_req_sink_reset),
    .io_deq_ready(io_dmi_dm_req_sink_io_deq_ready),
    .io_deq_valid(io_dmi_dm_req_sink_io_deq_valid),
    .io_deq_bits_addr(io_dmi_dm_req_sink_io_deq_bits_addr),
    .io_deq_bits_data(io_dmi_dm_req_sink_io_deq_bits_data),
    .io_deq_bits_op(io_dmi_dm_req_sink_io_deq_bits_op),
    .io_async_mem_0_addr(io_dmi_dm_req_sink_io_async_mem_0_addr),
    .io_async_mem_0_data(io_dmi_dm_req_sink_io_async_mem_0_data),
    .io_async_mem_0_op(io_dmi_dm_req_sink_io_async_mem_0_op),
    .io_async_mem_1_addr(io_dmi_dm_req_sink_io_async_mem_1_addr),
    .io_async_mem_1_data(io_dmi_dm_req_sink_io_async_mem_1_data),
    .io_async_mem_1_op(io_dmi_dm_req_sink_io_async_mem_1_op),
    .io_async_mem_2_addr(io_dmi_dm_req_sink_io_async_mem_2_addr),
    .io_async_mem_2_data(io_dmi_dm_req_sink_io_async_mem_2_data),
    .io_async_mem_2_op(io_dmi_dm_req_sink_io_async_mem_2_op),
    .io_async_mem_3_addr(io_dmi_dm_req_sink_io_async_mem_3_addr),
    .io_async_mem_3_data(io_dmi_dm_req_sink_io_async_mem_3_data),
    .io_async_mem_3_op(io_dmi_dm_req_sink_io_async_mem_3_op),
    .io_async_mem_4_addr(io_dmi_dm_req_sink_io_async_mem_4_addr),
    .io_async_mem_4_data(io_dmi_dm_req_sink_io_async_mem_4_data),
    .io_async_mem_4_op(io_dmi_dm_req_sink_io_async_mem_4_op),
    .io_async_mem_5_addr(io_dmi_dm_req_sink_io_async_mem_5_addr),
    .io_async_mem_5_data(io_dmi_dm_req_sink_io_async_mem_5_data),
    .io_async_mem_5_op(io_dmi_dm_req_sink_io_async_mem_5_op),
    .io_async_mem_6_addr(io_dmi_dm_req_sink_io_async_mem_6_addr),
    .io_async_mem_6_data(io_dmi_dm_req_sink_io_async_mem_6_data),
    .io_async_mem_6_op(io_dmi_dm_req_sink_io_async_mem_6_op),
    .io_async_mem_7_addr(io_dmi_dm_req_sink_io_async_mem_7_addr),
    .io_async_mem_7_data(io_dmi_dm_req_sink_io_async_mem_7_data),
    .io_async_mem_7_op(io_dmi_dm_req_sink_io_async_mem_7_op),
    .io_async_ridx(io_dmi_dm_req_sink_io_async_ridx),
    .io_async_widx(io_dmi_dm_req_sink_io_async_widx),
    .io_async_safe_ridx_valid(io_dmi_dm_req_sink_io_async_safe_ridx_valid),
    .io_async_safe_widx_valid(io_dmi_dm_req_sink_io_async_safe_widx_valid),
    .io_async_safe_source_reset_n(io_dmi_dm_req_sink_io_async_safe_source_reset_n),
    .io_async_safe_sink_reset_n(io_dmi_dm_req_sink_io_async_safe_sink_reset_n)
  );
  AsyncQueueSource_2 resp_ToAsync_source ( // @[AsyncQueue.scala 216:24]
    .clock(resp_ToAsync_source_clock),
    .reset(resp_ToAsync_source_reset),
    .io_enq_ready(resp_ToAsync_source_io_enq_ready),
    .io_enq_valid(resp_ToAsync_source_io_enq_valid),
    .io_enq_bits_addr(resp_ToAsync_source_io_enq_bits_addr),
    .io_enq_bits_data(resp_ToAsync_source_io_enq_bits_data),
    .io_enq_bits_op(resp_ToAsync_source_io_enq_bits_op),
    .io_async_mem_0_addr(resp_ToAsync_source_io_async_mem_0_addr),
    .io_async_mem_0_data(resp_ToAsync_source_io_async_mem_0_data),
    .io_async_mem_0_op(resp_ToAsync_source_io_async_mem_0_op),
    .io_async_mem_1_addr(resp_ToAsync_source_io_async_mem_1_addr),
    .io_async_mem_1_data(resp_ToAsync_source_io_async_mem_1_data),
    .io_async_mem_1_op(resp_ToAsync_source_io_async_mem_1_op),
    .io_async_mem_2_addr(resp_ToAsync_source_io_async_mem_2_addr),
    .io_async_mem_2_data(resp_ToAsync_source_io_async_mem_2_data),
    .io_async_mem_2_op(resp_ToAsync_source_io_async_mem_2_op),
    .io_async_mem_3_addr(resp_ToAsync_source_io_async_mem_3_addr),
    .io_async_mem_3_data(resp_ToAsync_source_io_async_mem_3_data),
    .io_async_mem_3_op(resp_ToAsync_source_io_async_mem_3_op),
    .io_async_mem_4_addr(resp_ToAsync_source_io_async_mem_4_addr),
    .io_async_mem_4_data(resp_ToAsync_source_io_async_mem_4_data),
    .io_async_mem_4_op(resp_ToAsync_source_io_async_mem_4_op),
    .io_async_mem_5_addr(resp_ToAsync_source_io_async_mem_5_addr),
    .io_async_mem_5_data(resp_ToAsync_source_io_async_mem_5_data),
    .io_async_mem_5_op(resp_ToAsync_source_io_async_mem_5_op),
    .io_async_mem_6_addr(resp_ToAsync_source_io_async_mem_6_addr),
    .io_async_mem_6_data(resp_ToAsync_source_io_async_mem_6_data),
    .io_async_mem_6_op(resp_ToAsync_source_io_async_mem_6_op),
    .io_async_mem_7_addr(resp_ToAsync_source_io_async_mem_7_addr),
    .io_async_mem_7_data(resp_ToAsync_source_io_async_mem_7_data),
    .io_async_mem_7_op(resp_ToAsync_source_io_async_mem_7_op),
    .io_async_ridx(resp_ToAsync_source_io_async_ridx),
    .io_async_widx(resp_ToAsync_source_io_async_widx),
    .io_async_safe_ridx_valid(resp_ToAsync_source_io_async_safe_ridx_valid),
    .io_async_safe_widx_valid(resp_ToAsync_source_io_async_safe_widx_valid),
    .io_async_safe_source_reset_n(resp_ToAsync_source_io_async_safe_source_reset_n),
    .io_async_safe_sink_reset_n(resp_ToAsync_source_io_async_safe_sink_reset_n)
  );
  AsyncQueueSink_2 io_dtm_dmi_resp_sink ( // @[AsyncQueue.scala 207:22]
    .clock(io_dtm_dmi_resp_sink_clock),
    .reset(io_dtm_dmi_resp_sink_reset),
    .io_deq_ready(io_dtm_dmi_resp_sink_io_deq_ready),
    .io_deq_valid(io_dtm_dmi_resp_sink_io_deq_valid),
    .io_deq_bits_addr(io_dtm_dmi_resp_sink_io_deq_bits_addr),
    .io_deq_bits_data(io_dtm_dmi_resp_sink_io_deq_bits_data),
    .io_deq_bits_op(io_dtm_dmi_resp_sink_io_deq_bits_op),
    .io_async_mem_0_addr(io_dtm_dmi_resp_sink_io_async_mem_0_addr),
    .io_async_mem_0_data(io_dtm_dmi_resp_sink_io_async_mem_0_data),
    .io_async_mem_0_op(io_dtm_dmi_resp_sink_io_async_mem_0_op),
    .io_async_mem_1_addr(io_dtm_dmi_resp_sink_io_async_mem_1_addr),
    .io_async_mem_1_data(io_dtm_dmi_resp_sink_io_async_mem_1_data),
    .io_async_mem_1_op(io_dtm_dmi_resp_sink_io_async_mem_1_op),
    .io_async_mem_2_addr(io_dtm_dmi_resp_sink_io_async_mem_2_addr),
    .io_async_mem_2_data(io_dtm_dmi_resp_sink_io_async_mem_2_data),
    .io_async_mem_2_op(io_dtm_dmi_resp_sink_io_async_mem_2_op),
    .io_async_mem_3_addr(io_dtm_dmi_resp_sink_io_async_mem_3_addr),
    .io_async_mem_3_data(io_dtm_dmi_resp_sink_io_async_mem_3_data),
    .io_async_mem_3_op(io_dtm_dmi_resp_sink_io_async_mem_3_op),
    .io_async_mem_4_addr(io_dtm_dmi_resp_sink_io_async_mem_4_addr),
    .io_async_mem_4_data(io_dtm_dmi_resp_sink_io_async_mem_4_data),
    .io_async_mem_4_op(io_dtm_dmi_resp_sink_io_async_mem_4_op),
    .io_async_mem_5_addr(io_dtm_dmi_resp_sink_io_async_mem_5_addr),
    .io_async_mem_5_data(io_dtm_dmi_resp_sink_io_async_mem_5_data),
    .io_async_mem_5_op(io_dtm_dmi_resp_sink_io_async_mem_5_op),
    .io_async_mem_6_addr(io_dtm_dmi_resp_sink_io_async_mem_6_addr),
    .io_async_mem_6_data(io_dtm_dmi_resp_sink_io_async_mem_6_data),
    .io_async_mem_6_op(io_dtm_dmi_resp_sink_io_async_mem_6_op),
    .io_async_mem_7_addr(io_dtm_dmi_resp_sink_io_async_mem_7_addr),
    .io_async_mem_7_data(io_dtm_dmi_resp_sink_io_async_mem_7_data),
    .io_async_mem_7_op(io_dtm_dmi_resp_sink_io_async_mem_7_op),
    .io_async_ridx(io_dtm_dmi_resp_sink_io_async_ridx),
    .io_async_widx(io_dtm_dmi_resp_sink_io_async_widx),
    .io_async_safe_ridx_valid(io_dtm_dmi_resp_sink_io_async_safe_ridx_valid),
    .io_async_safe_widx_valid(io_dtm_dmi_resp_sink_io_async_safe_widx_valid),
    .io_async_safe_source_reset_n(io_dtm_dmi_resp_sink_io_async_safe_source_reset_n),
    .io_async_safe_sink_reset_n(io_dtm_dmi_resp_sink_io_async_safe_sink_reset_n)
  );
  AsyncQueueSource_2 req_ToAsync_source ( // @[AsyncQueue.scala 216:24]
    .clock(req_ToAsync_source_clock),
    .reset(req_ToAsync_source_reset),
    .io_enq_ready(req_ToAsync_source_io_enq_ready),
    .io_enq_valid(req_ToAsync_source_io_enq_valid),
    .io_enq_bits_addr(req_ToAsync_source_io_enq_bits_addr),
    .io_enq_bits_data(req_ToAsync_source_io_enq_bits_data),
    .io_enq_bits_op(req_ToAsync_source_io_enq_bits_op),
    .io_async_mem_0_addr(req_ToAsync_source_io_async_mem_0_addr),
    .io_async_mem_0_data(req_ToAsync_source_io_async_mem_0_data),
    .io_async_mem_0_op(req_ToAsync_source_io_async_mem_0_op),
    .io_async_mem_1_addr(req_ToAsync_source_io_async_mem_1_addr),
    .io_async_mem_1_data(req_ToAsync_source_io_async_mem_1_data),
    .io_async_mem_1_op(req_ToAsync_source_io_async_mem_1_op),
    .io_async_mem_2_addr(req_ToAsync_source_io_async_mem_2_addr),
    .io_async_mem_2_data(req_ToAsync_source_io_async_mem_2_data),
    .io_async_mem_2_op(req_ToAsync_source_io_async_mem_2_op),
    .io_async_mem_3_addr(req_ToAsync_source_io_async_mem_3_addr),
    .io_async_mem_3_data(req_ToAsync_source_io_async_mem_3_data),
    .io_async_mem_3_op(req_ToAsync_source_io_async_mem_3_op),
    .io_async_mem_4_addr(req_ToAsync_source_io_async_mem_4_addr),
    .io_async_mem_4_data(req_ToAsync_source_io_async_mem_4_data),
    .io_async_mem_4_op(req_ToAsync_source_io_async_mem_4_op),
    .io_async_mem_5_addr(req_ToAsync_source_io_async_mem_5_addr),
    .io_async_mem_5_data(req_ToAsync_source_io_async_mem_5_data),
    .io_async_mem_5_op(req_ToAsync_source_io_async_mem_5_op),
    .io_async_mem_6_addr(req_ToAsync_source_io_async_mem_6_addr),
    .io_async_mem_6_data(req_ToAsync_source_io_async_mem_6_data),
    .io_async_mem_6_op(req_ToAsync_source_io_async_mem_6_op),
    .io_async_mem_7_addr(req_ToAsync_source_io_async_mem_7_addr),
    .io_async_mem_7_data(req_ToAsync_source_io_async_mem_7_data),
    .io_async_mem_7_op(req_ToAsync_source_io_async_mem_7_op),
    .io_async_ridx(req_ToAsync_source_io_async_ridx),
    .io_async_widx(req_ToAsync_source_io_async_widx),
    .io_async_safe_ridx_valid(req_ToAsync_source_io_async_safe_ridx_valid),
    .io_async_safe_widx_valid(req_ToAsync_source_io_async_safe_widx_valid),
    .io_async_safe_source_reset_n(req_ToAsync_source_io_async_safe_source_reset_n),
    .io_async_safe_sink_reset_n(req_ToAsync_source_io_async_safe_sink_reset_n)
  );
  assign io_dtm_dmi_req_ready = req_ToAsync_source_io_enq_ready; // @[AsyncQueue.scala 217:19]
  assign io_dtm_dmi_resp_valid = io_dtm_dmi_resp_sink_io_deq_valid; // @[DMI.scala 53:23]
  assign io_dtm_dmi_resp_bits_data = io_dtm_dmi_resp_sink_io_deq_bits_data; // @[DMI.scala 53:23]
  assign io_dtm_dmi_resp_bits_op = io_dtm_dmi_resp_sink_io_deq_bits_op; // @[DMI.scala 53:23]
  assign io_dmi_dm_req_valid = io_dmi_dm_req_sink_io_deq_valid; // @[DMI.scala 49:20]
  assign io_dmi_dm_req_bits_addr = io_dmi_dm_req_sink_io_deq_bits_addr; // @[DMI.scala 49:20]
  assign io_dmi_dm_req_bits_data = io_dmi_dm_req_sink_io_deq_bits_data; // @[DMI.scala 49:20]
  assign io_dmi_dm_req_bits_op = io_dmi_dm_req_sink_io_deq_bits_op; // @[DMI.scala 49:20]
  assign io_dmi_dm_resp_ready = resp_ToAsync_source_io_enq_ready; // @[AsyncQueue.scala 217:19]
  assign io_dmi_dm_req_sink_clock = clock;
  assign io_dmi_dm_req_sink_reset = reset;
  assign io_dmi_dm_req_sink_io_deq_ready = io_dmi_dm_req_ready; // @[DMI.scala 49:20]
  assign io_dmi_dm_req_sink_io_async_mem_0_addr = req_ToAsync_source_io_async_mem_0_addr; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_0_data = req_ToAsync_source_io_async_mem_0_data; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_0_op = req_ToAsync_source_io_async_mem_0_op; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_1_addr = req_ToAsync_source_io_async_mem_1_addr; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_1_data = req_ToAsync_source_io_async_mem_1_data; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_1_op = req_ToAsync_source_io_async_mem_1_op; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_2_addr = req_ToAsync_source_io_async_mem_2_addr; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_2_data = req_ToAsync_source_io_async_mem_2_data; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_2_op = req_ToAsync_source_io_async_mem_2_op; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_3_addr = req_ToAsync_source_io_async_mem_3_addr; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_3_data = req_ToAsync_source_io_async_mem_3_data; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_3_op = req_ToAsync_source_io_async_mem_3_op; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_4_addr = req_ToAsync_source_io_async_mem_4_addr; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_4_data = req_ToAsync_source_io_async_mem_4_data; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_4_op = req_ToAsync_source_io_async_mem_4_op; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_5_addr = req_ToAsync_source_io_async_mem_5_addr; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_5_data = req_ToAsync_source_io_async_mem_5_data; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_5_op = req_ToAsync_source_io_async_mem_5_op; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_6_addr = req_ToAsync_source_io_async_mem_6_addr; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_6_data = req_ToAsync_source_io_async_mem_6_data; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_6_op = req_ToAsync_source_io_async_mem_6_op; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_7_addr = req_ToAsync_source_io_async_mem_7_addr; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_7_data = req_ToAsync_source_io_async_mem_7_data; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_mem_7_op = req_ToAsync_source_io_async_mem_7_op; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_widx = req_ToAsync_source_io_async_widx; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_safe_widx_valid = req_ToAsync_source_io_async_safe_widx_valid; // @[DMI.scala 42:25 54:19]
  assign io_dmi_dm_req_sink_io_async_safe_source_reset_n = req_ToAsync_source_io_async_safe_source_reset_n; // @[DMI.scala 42:25 54:19]
  assign resp_ToAsync_source_clock = clock;
  assign resp_ToAsync_source_reset = reset;
  assign resp_ToAsync_source_io_enq_valid = io_dmi_dm_resp_valid; // @[AsyncQueue.scala 217:19]
  assign resp_ToAsync_source_io_enq_bits_addr = 8'h0; // @[AsyncQueue.scala 217:19]
  assign resp_ToAsync_source_io_enq_bits_data = io_dmi_dm_resp_bits_data; // @[AsyncQueue.scala 217:19]
  assign resp_ToAsync_source_io_enq_bits_op = 2'h0; // @[AsyncQueue.scala 217:19]
  assign resp_ToAsync_source_io_async_ridx = io_dtm_dmi_resp_sink_io_async_ridx; // @[AsyncQueue.scala 208:19 DMI.scala 43:26]
  assign resp_ToAsync_source_io_async_safe_ridx_valid = io_dtm_dmi_resp_sink_io_async_safe_ridx_valid; // @[AsyncQueue.scala 208:19 DMI.scala 43:26]
  assign resp_ToAsync_source_io_async_safe_sink_reset_n = io_dtm_dmi_resp_sink_io_async_safe_sink_reset_n; // @[AsyncQueue.scala 208:19 DMI.scala 43:26]
  assign io_dtm_dmi_resp_sink_clock = io_tck;
  assign io_dtm_dmi_resp_sink_reset = ~io_trstn; // @[DMI.scala 52:32]
  assign io_dtm_dmi_resp_sink_io_deq_ready = io_dtm_dmi_resp_ready; // @[DMI.scala 53:23]
  assign io_dtm_dmi_resp_sink_io_async_mem_0_addr = resp_ToAsync_source_io_async_mem_0_addr; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_0_data = resp_ToAsync_source_io_async_mem_0_data; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_0_op = resp_ToAsync_source_io_async_mem_0_op; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_1_addr = resp_ToAsync_source_io_async_mem_1_addr; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_1_data = resp_ToAsync_source_io_async_mem_1_data; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_1_op = resp_ToAsync_source_io_async_mem_1_op; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_2_addr = resp_ToAsync_source_io_async_mem_2_addr; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_2_data = resp_ToAsync_source_io_async_mem_2_data; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_2_op = resp_ToAsync_source_io_async_mem_2_op; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_3_addr = resp_ToAsync_source_io_async_mem_3_addr; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_3_data = resp_ToAsync_source_io_async_mem_3_data; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_3_op = resp_ToAsync_source_io_async_mem_3_op; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_4_addr = resp_ToAsync_source_io_async_mem_4_addr; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_4_data = resp_ToAsync_source_io_async_mem_4_data; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_4_op = resp_ToAsync_source_io_async_mem_4_op; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_5_addr = resp_ToAsync_source_io_async_mem_5_addr; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_5_data = resp_ToAsync_source_io_async_mem_5_data; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_5_op = resp_ToAsync_source_io_async_mem_5_op; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_6_addr = resp_ToAsync_source_io_async_mem_6_addr; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_6_data = resp_ToAsync_source_io_async_mem_6_data; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_6_op = resp_ToAsync_source_io_async_mem_6_op; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_7_addr = resp_ToAsync_source_io_async_mem_7_addr; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_7_data = resp_ToAsync_source_io_async_mem_7_data; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_mem_7_op = resp_ToAsync_source_io_async_mem_7_op; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_widx = resp_ToAsync_source_io_async_widx; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_safe_widx_valid = resp_ToAsync_source_io_async_safe_widx_valid; // @[DMI.scala 43:26 50:18]
  assign io_dtm_dmi_resp_sink_io_async_safe_source_reset_n = resp_ToAsync_source_io_async_safe_source_reset_n; // @[DMI.scala 43:26 50:18]
  assign req_ToAsync_source_clock = io_tck;
  assign req_ToAsync_source_reset = ~io_trstn; // @[DMI.scala 52:32]
  assign req_ToAsync_source_io_enq_valid = io_dtm_dmi_req_valid; // @[AsyncQueue.scala 217:19]
  assign req_ToAsync_source_io_enq_bits_addr = io_dtm_dmi_req_bits_addr; // @[AsyncQueue.scala 217:19]
  assign req_ToAsync_source_io_enq_bits_data = io_dtm_dmi_req_bits_data; // @[AsyncQueue.scala 217:19]
  assign req_ToAsync_source_io_enq_bits_op = io_dtm_dmi_req_bits_op; // @[AsyncQueue.scala 217:19]
  assign req_ToAsync_source_io_async_ridx = io_dmi_dm_req_sink_io_async_ridx; // @[AsyncQueue.scala 208:19 DMI.scala 42:25]
  assign req_ToAsync_source_io_async_safe_ridx_valid = io_dmi_dm_req_sink_io_async_safe_ridx_valid; // @[AsyncQueue.scala 208:19 DMI.scala 42:25]
  assign req_ToAsync_source_io_async_safe_sink_reset_n = io_dmi_dm_req_sink_io_async_safe_sink_reset_n; // @[AsyncQueue.scala 208:19 DMI.scala 42:25]
endmodule
module Debugger(
  input         clock,
  input         reset,
  output        auto_dm_perip_in_a_ready,
  input         auto_dm_perip_in_a_valid,
  input  [2:0]  auto_dm_perip_in_a_bits_opcode,
  input  [2:0]  auto_dm_perip_in_a_bits_source,
  input  [15:0] auto_dm_perip_in_a_bits_address,
  input  [7:0]  auto_dm_perip_in_a_bits_mask,
  input  [63:0] auto_dm_perip_in_a_bits_data,
  input         auto_dm_perip_in_d_ready,
  output        auto_dm_perip_in_d_valid,
  output [2:0]  auto_dm_perip_in_d_bits_opcode,
  output [1:0]  auto_dm_perip_in_d_bits_size,
  output [2:0]  auto_dm_perip_in_d_bits_source,
  output [63:0] auto_dm_perip_in_d_bits_data,
  input         io_JtagIO_TRSTn,
  input         io_JtagIO_TCK,
  input         io_JtagIO_TMS,
  input         io_JtagIO_TDI,
  output        io_JtagIO_TDO,
  output        io_JtagIO_TDO_driven,
  input         io_dm_cmm_0_hartIsInReset,
  output        io_dm_cmm_0_hartResetReq,
  output        io_dm_cmm_0_hartHaltReq
);
  wire  dm_clock; // @[Debugger.scala 41:22]
  wire  dm_reset; // @[Debugger.scala 41:22]
  wire  dm_auto_perip_in_a_ready; // @[Debugger.scala 41:22]
  wire  dm_auto_perip_in_a_valid; // @[Debugger.scala 41:22]
  wire [2:0] dm_auto_perip_in_a_bits_opcode; // @[Debugger.scala 41:22]
  wire [2:0] dm_auto_perip_in_a_bits_source; // @[Debugger.scala 41:22]
  wire [15:0] dm_auto_perip_in_a_bits_address; // @[Debugger.scala 41:22]
  wire [7:0] dm_auto_perip_in_a_bits_mask; // @[Debugger.scala 41:22]
  wire [63:0] dm_auto_perip_in_a_bits_data; // @[Debugger.scala 41:22]
  wire  dm_auto_perip_in_d_ready; // @[Debugger.scala 41:22]
  wire  dm_auto_perip_in_d_valid; // @[Debugger.scala 41:22]
  wire [2:0] dm_auto_perip_in_d_bits_opcode; // @[Debugger.scala 41:22]
  wire [1:0] dm_auto_perip_in_d_bits_size; // @[Debugger.scala 41:22]
  wire [2:0] dm_auto_perip_in_d_bits_source; // @[Debugger.scala 41:22]
  wire [63:0] dm_auto_perip_in_d_bits_data; // @[Debugger.scala 41:22]
  wire  dm_io_dmi_req_ready; // @[Debugger.scala 41:22]
  wire  dm_io_dmi_req_valid; // @[Debugger.scala 41:22]
  wire [7:0] dm_io_dmi_req_bits_addr; // @[Debugger.scala 41:22]
  wire [31:0] dm_io_dmi_req_bits_data; // @[Debugger.scala 41:22]
  wire [1:0] dm_io_dmi_req_bits_op; // @[Debugger.scala 41:22]
  wire  dm_io_dmi_resp_ready; // @[Debugger.scala 41:22]
  wire  dm_io_dmi_resp_valid; // @[Debugger.scala 41:22]
  wire [31:0] dm_io_dmi_resp_bits_data; // @[Debugger.scala 41:22]
  wire  dm_io_dm_cmm_0_hartIsInReset; // @[Debugger.scala 41:22]
  wire  dm_io_dm_cmm_0_hartResetReq; // @[Debugger.scala 41:22]
  wire  dm_io_dm_cmm_0_hartHaltReq; // @[Debugger.scala 41:22]
  wire  dtm_io_dmi_req_ready; // @[Debugger.scala 62:21]
  wire  dtm_io_dmi_req_valid; // @[Debugger.scala 62:21]
  wire [7:0] dtm_io_dmi_req_bits_addr; // @[Debugger.scala 62:21]
  wire [31:0] dtm_io_dmi_req_bits_data; // @[Debugger.scala 62:21]
  wire [1:0] dtm_io_dmi_req_bits_op; // @[Debugger.scala 62:21]
  wire  dtm_io_dmi_resp_ready; // @[Debugger.scala 62:21]
  wire  dtm_io_dmi_resp_valid; // @[Debugger.scala 62:21]
  wire [31:0] dtm_io_dmi_resp_bits_data; // @[Debugger.scala 62:21]
  wire [1:0] dtm_io_dmi_resp_bits_op; // @[Debugger.scala 62:21]
  wire  dtm_io_JtagIO_TRSTn; // @[Debugger.scala 62:21]
  wire  dtm_io_JtagIO_TCK; // @[Debugger.scala 62:21]
  wire  dtm_io_JtagIO_TMS; // @[Debugger.scala 62:21]
  wire  dtm_io_JtagIO_TDI; // @[Debugger.scala 62:21]
  wire  dtm_io_JtagIO_TDO; // @[Debugger.scala 62:21]
  wire  dtm_io_JtagIO_TDO_driven; // @[Debugger.scala 62:21]
  wire  dmi_clock; // @[Debugger.scala 63:21]
  wire  dmi_reset; // @[Debugger.scala 63:21]
  wire  dmi_io_tck; // @[Debugger.scala 63:21]
  wire  dmi_io_trstn; // @[Debugger.scala 63:21]
  wire  dmi_io_dtm_dmi_req_ready; // @[Debugger.scala 63:21]
  wire  dmi_io_dtm_dmi_req_valid; // @[Debugger.scala 63:21]
  wire [7:0] dmi_io_dtm_dmi_req_bits_addr; // @[Debugger.scala 63:21]
  wire [31:0] dmi_io_dtm_dmi_req_bits_data; // @[Debugger.scala 63:21]
  wire [1:0] dmi_io_dtm_dmi_req_bits_op; // @[Debugger.scala 63:21]
  wire  dmi_io_dtm_dmi_resp_ready; // @[Debugger.scala 63:21]
  wire  dmi_io_dtm_dmi_resp_valid; // @[Debugger.scala 63:21]
  wire [31:0] dmi_io_dtm_dmi_resp_bits_data; // @[Debugger.scala 63:21]
  wire [1:0] dmi_io_dtm_dmi_resp_bits_op; // @[Debugger.scala 63:21]
  wire  dmi_io_dmi_dm_req_ready; // @[Debugger.scala 63:21]
  wire  dmi_io_dmi_dm_req_valid; // @[Debugger.scala 63:21]
  wire [7:0] dmi_io_dmi_dm_req_bits_addr; // @[Debugger.scala 63:21]
  wire [31:0] dmi_io_dmi_dm_req_bits_data; // @[Debugger.scala 63:21]
  wire [1:0] dmi_io_dmi_dm_req_bits_op; // @[Debugger.scala 63:21]
  wire  dmi_io_dmi_dm_resp_ready; // @[Debugger.scala 63:21]
  wire  dmi_io_dmi_dm_resp_valid; // @[Debugger.scala 63:21]
  wire [31:0] dmi_io_dmi_dm_resp_bits_data; // @[Debugger.scala 63:21]
  DebugModule dm ( // @[Debugger.scala 41:22]
    .clock(dm_clock),
    .reset(dm_reset),
    .auto_perip_in_a_ready(dm_auto_perip_in_a_ready),
    .auto_perip_in_a_valid(dm_auto_perip_in_a_valid),
    .auto_perip_in_a_bits_opcode(dm_auto_perip_in_a_bits_opcode),
    .auto_perip_in_a_bits_source(dm_auto_perip_in_a_bits_source),
    .auto_perip_in_a_bits_address(dm_auto_perip_in_a_bits_address),
    .auto_perip_in_a_bits_mask(dm_auto_perip_in_a_bits_mask),
    .auto_perip_in_a_bits_data(dm_auto_perip_in_a_bits_data),
    .auto_perip_in_d_ready(dm_auto_perip_in_d_ready),
    .auto_perip_in_d_valid(dm_auto_perip_in_d_valid),
    .auto_perip_in_d_bits_opcode(dm_auto_perip_in_d_bits_opcode),
    .auto_perip_in_d_bits_size(dm_auto_perip_in_d_bits_size),
    .auto_perip_in_d_bits_source(dm_auto_perip_in_d_bits_source),
    .auto_perip_in_d_bits_data(dm_auto_perip_in_d_bits_data),
    .io_dmi_req_ready(dm_io_dmi_req_ready),
    .io_dmi_req_valid(dm_io_dmi_req_valid),
    .io_dmi_req_bits_addr(dm_io_dmi_req_bits_addr),
    .io_dmi_req_bits_data(dm_io_dmi_req_bits_data),
    .io_dmi_req_bits_op(dm_io_dmi_req_bits_op),
    .io_dmi_resp_ready(dm_io_dmi_resp_ready),
    .io_dmi_resp_valid(dm_io_dmi_resp_valid),
    .io_dmi_resp_bits_data(dm_io_dmi_resp_bits_data),
    .io_dm_cmm_0_hartIsInReset(dm_io_dm_cmm_0_hartIsInReset),
    .io_dm_cmm_0_hartResetReq(dm_io_dm_cmm_0_hartResetReq),
    .io_dm_cmm_0_hartHaltReq(dm_io_dm_cmm_0_hartHaltReq)
  );
  DebugTransportModuleJTAG dtm ( // @[Debugger.scala 62:21]
    .io_dmi_req_ready(dtm_io_dmi_req_ready),
    .io_dmi_req_valid(dtm_io_dmi_req_valid),
    .io_dmi_req_bits_addr(dtm_io_dmi_req_bits_addr),
    .io_dmi_req_bits_data(dtm_io_dmi_req_bits_data),
    .io_dmi_req_bits_op(dtm_io_dmi_req_bits_op),
    .io_dmi_resp_ready(dtm_io_dmi_resp_ready),
    .io_dmi_resp_valid(dtm_io_dmi_resp_valid),
    .io_dmi_resp_bits_data(dtm_io_dmi_resp_bits_data),
    .io_dmi_resp_bits_op(dtm_io_dmi_resp_bits_op),
    .io_JtagIO_TRSTn(dtm_io_JtagIO_TRSTn),
    .io_JtagIO_TCK(dtm_io_JtagIO_TCK),
    .io_JtagIO_TMS(dtm_io_JtagIO_TMS),
    .io_JtagIO_TDI(dtm_io_JtagIO_TDI),
    .io_JtagIO_TDO(dtm_io_JtagIO_TDO),
    .io_JtagIO_TDO_driven(dtm_io_JtagIO_TDO_driven)
  );
  DMI dmi ( // @[Debugger.scala 63:21]
    .clock(dmi_clock),
    .reset(dmi_reset),
    .io_tck(dmi_io_tck),
    .io_trstn(dmi_io_trstn),
    .io_dtm_dmi_req_ready(dmi_io_dtm_dmi_req_ready),
    .io_dtm_dmi_req_valid(dmi_io_dtm_dmi_req_valid),
    .io_dtm_dmi_req_bits_addr(dmi_io_dtm_dmi_req_bits_addr),
    .io_dtm_dmi_req_bits_data(dmi_io_dtm_dmi_req_bits_data),
    .io_dtm_dmi_req_bits_op(dmi_io_dtm_dmi_req_bits_op),
    .io_dtm_dmi_resp_ready(dmi_io_dtm_dmi_resp_ready),
    .io_dtm_dmi_resp_valid(dmi_io_dtm_dmi_resp_valid),
    .io_dtm_dmi_resp_bits_data(dmi_io_dtm_dmi_resp_bits_data),
    .io_dtm_dmi_resp_bits_op(dmi_io_dtm_dmi_resp_bits_op),
    .io_dmi_dm_req_ready(dmi_io_dmi_dm_req_ready),
    .io_dmi_dm_req_valid(dmi_io_dmi_dm_req_valid),
    .io_dmi_dm_req_bits_addr(dmi_io_dmi_dm_req_bits_addr),
    .io_dmi_dm_req_bits_data(dmi_io_dmi_dm_req_bits_data),
    .io_dmi_dm_req_bits_op(dmi_io_dmi_dm_req_bits_op),
    .io_dmi_dm_resp_ready(dmi_io_dmi_dm_resp_ready),
    .io_dmi_dm_resp_valid(dmi_io_dmi_dm_resp_valid),
    .io_dmi_dm_resp_bits_data(dmi_io_dmi_dm_resp_bits_data)
  );
  assign auto_dm_perip_in_a_ready = dm_auto_perip_in_a_ready; // @[LazyModule.scala 309:16]
  assign auto_dm_perip_in_d_valid = dm_auto_perip_in_d_valid; // @[LazyModule.scala 309:16]
  assign auto_dm_perip_in_d_bits_opcode = dm_auto_perip_in_d_bits_opcode; // @[LazyModule.scala 309:16]
  assign auto_dm_perip_in_d_bits_size = dm_auto_perip_in_d_bits_size; // @[LazyModule.scala 309:16]
  assign auto_dm_perip_in_d_bits_source = dm_auto_perip_in_d_bits_source; // @[LazyModule.scala 309:16]
  assign auto_dm_perip_in_d_bits_data = dm_auto_perip_in_d_bits_data; // @[LazyModule.scala 309:16]
  assign io_JtagIO_TDO = dtm_io_JtagIO_TDO; // @[Debugger.scala 68:19]
  assign io_JtagIO_TDO_driven = dtm_io_JtagIO_TDO_driven; // @[Debugger.scala 68:19]
  assign io_dm_cmm_0_hartResetReq = dm_io_dm_cmm_0_hartResetReq; // @[Debugger.scala 74:25]
  assign io_dm_cmm_0_hartHaltReq = dm_io_dm_cmm_0_hartHaltReq; // @[Debugger.scala 74:25]
  assign dm_clock = clock;
  assign dm_reset = reset;
  assign dm_auto_perip_in_a_valid = auto_dm_perip_in_a_valid; // @[LazyModule.scala 309:16]
  assign dm_auto_perip_in_a_bits_opcode = auto_dm_perip_in_a_bits_opcode; // @[LazyModule.scala 309:16]
  assign dm_auto_perip_in_a_bits_source = auto_dm_perip_in_a_bits_source; // @[LazyModule.scala 309:16]
  assign dm_auto_perip_in_a_bits_address = auto_dm_perip_in_a_bits_address; // @[LazyModule.scala 309:16]
  assign dm_auto_perip_in_a_bits_mask = auto_dm_perip_in_a_bits_mask; // @[LazyModule.scala 309:16]
  assign dm_auto_perip_in_a_bits_data = auto_dm_perip_in_a_bits_data; // @[LazyModule.scala 309:16]
  assign dm_auto_perip_in_d_ready = auto_dm_perip_in_d_ready; // @[LazyModule.scala 309:16]
  assign dm_io_dmi_req_valid = dmi_io_dmi_dm_req_valid; // @[Debugger.scala 70:19]
  assign dm_io_dmi_req_bits_addr = dmi_io_dmi_dm_req_bits_addr; // @[Debugger.scala 70:19]
  assign dm_io_dmi_req_bits_data = dmi_io_dmi_dm_req_bits_data; // @[Debugger.scala 70:19]
  assign dm_io_dmi_req_bits_op = dmi_io_dmi_dm_req_bits_op; // @[Debugger.scala 70:19]
  assign dm_io_dmi_resp_ready = dmi_io_dmi_dm_resp_ready; // @[Debugger.scala 70:19]
  assign dm_io_dm_cmm_0_hartIsInReset = io_dm_cmm_0_hartIsInReset; // @[Debugger.scala 74:25]
  assign dtm_io_dmi_req_ready = dmi_io_dtm_dmi_req_ready; // @[Debugger.scala 69:16]
  assign dtm_io_dmi_resp_valid = dmi_io_dtm_dmi_resp_valid; // @[Debugger.scala 69:16]
  assign dtm_io_dmi_resp_bits_data = dmi_io_dtm_dmi_resp_bits_data; // @[Debugger.scala 69:16]
  assign dtm_io_dmi_resp_bits_op = dmi_io_dtm_dmi_resp_bits_op; // @[Debugger.scala 69:16]
  assign dtm_io_JtagIO_TRSTn = io_JtagIO_TRSTn; // @[Debugger.scala 68:19]
  assign dtm_io_JtagIO_TCK = io_JtagIO_TCK; // @[Debugger.scala 68:19]
  assign dtm_io_JtagIO_TMS = io_JtagIO_TMS; // @[Debugger.scala 68:19]
  assign dtm_io_JtagIO_TDI = io_JtagIO_TDI; // @[Debugger.scala 68:19]
  assign dmi_clock = clock;
  assign dmi_reset = reset;
  assign dmi_io_tck = io_JtagIO_TCK; // @[Debugger.scala 65:16]
  assign dmi_io_trstn = io_JtagIO_TRSTn; // @[Debugger.scala 66:18]
  assign dmi_io_dtm_dmi_req_valid = dtm_io_dmi_req_valid; // @[Debugger.scala 69:16]
  assign dmi_io_dtm_dmi_req_bits_addr = dtm_io_dmi_req_bits_addr; // @[Debugger.scala 69:16]
  assign dmi_io_dtm_dmi_req_bits_data = dtm_io_dmi_req_bits_data; // @[Debugger.scala 69:16]
  assign dmi_io_dtm_dmi_req_bits_op = dtm_io_dmi_req_bits_op; // @[Debugger.scala 69:16]
  assign dmi_io_dtm_dmi_resp_ready = dtm_io_dmi_resp_ready; // @[Debugger.scala 69:16]
  assign dmi_io_dmi_dm_req_ready = dm_io_dmi_req_ready; // @[Debugger.scala 70:19]
  assign dmi_io_dmi_dm_resp_valid = dm_io_dmi_resp_valid; // @[Debugger.scala 70:19]
  assign dmi_io_dmi_dm_resp_bits_data = dm_io_dmi_resp_bits_data; // @[Debugger.scala 70:19]
endmodule
module TLMonitor_16(
  input         clock,
  input         reset,
  input         io_in_a_ready,
  input         io_in_a_valid,
  input  [2:0]  io_in_a_bits_opcode,
  input  [17:0] io_in_a_bits_address,
  input  [7:0]  io_in_a_bits_mask,
  input         io_in_d_ready,
  input         io_in_d_valid,
  input  [2:0]  io_in_d_bits_opcode
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire [17:0] _is_aligned_T = io_in_a_bits_address & 18'h7; // @[Edges.scala 20:16]
  wire  is_aligned = _is_aligned_T == 18'h0; // @[Edges.scala 20:24]
  wire  _T_15 = io_in_a_bits_opcode == 3'h6; // @[Monitor.scala 81:25]
  wire [17:0] _T_23 = io_in_a_bits_address ^ 18'h20000; // @[Parameters.scala 137:31]
  wire [18:0] _T_24 = {1'b0,$signed(_T_23)}; // @[Parameters.scala 137:49]
  wire [18:0] _T_26 = $signed(_T_24) & -19'sh10000; // @[Parameters.scala 137:52]
  wire  _T_27 = $signed(_T_26) == 19'sh0; // @[Parameters.scala 137:67]
  wire [7:0] _T_63 = ~io_in_a_bits_mask; // @[Monitor.scala 88:18]
  wire  _T_64 = _T_63 == 8'h0; // @[Monitor.scala 88:31]
  wire  _T_72 = io_in_a_bits_opcode == 3'h7; // @[Monitor.scala 92:25]
  wire  _T_133 = io_in_a_bits_opcode == 3'h4; // @[Monitor.scala 104:25]
  wire  _T_167 = io_in_a_bits_mask == 8'hff; // @[Monitor.scala 110:30]
  wire  _T_175 = io_in_a_bits_opcode == 3'h0; // @[Monitor.scala 114:25]
  wire  _T_211 = io_in_a_bits_opcode == 3'h1; // @[Monitor.scala 122:25]
  wire  _T_249 = io_in_a_bits_opcode == 3'h2; // @[Monitor.scala 130:25]
  wire  _T_282 = io_in_a_bits_opcode == 3'h3; // @[Monitor.scala 138:25]
  wire  _T_315 = io_in_a_bits_opcode == 3'h5; // @[Monitor.scala 146:25]
  wire  _T_352 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire  _T_356 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_376 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_404 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _a_first_T = io_in_a_ready & io_in_a_valid; // @[Decoupled.scala 52:35]
  reg  a_first_counter; // @[Edges.scala 228:27]
  wire  a_first_counter1 = a_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  a_first = ~a_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode; // @[Monitor.scala 384:22]
  reg [17:0] address; // @[Monitor.scala 388:22]
  wire  _T_498 = io_in_a_valid & ~a_first; // @[Monitor.scala 389:19]
  wire  _T_499 = io_in_a_bits_opcode == opcode; // @[Monitor.scala 390:32]
  wire  _T_515 = io_in_a_bits_address == address; // @[Monitor.scala 394:32]
  wire  _d_first_T = io_in_d_ready & io_in_d_valid; // @[Decoupled.scala 52:35]
  reg  d_first_counter; // @[Edges.scala 228:27]
  wire  d_first_counter1 = d_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  d_first = ~d_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  wire  _T_522 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_523 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  reg  inflight; // @[Monitor.scala 611:27]
  reg [3:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [3:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg  a_first_counter_1; // @[Edges.scala 228:27]
  wire  a_first_counter1_1 = a_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  a_first_1 = ~a_first_counter_1; // @[Edges.scala 230:25]
  reg  d_first_counter_1; // @[Edges.scala 228:27]
  wire  d_first_counter1_1 = d_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = ~d_first_counter_1; // @[Edges.scala 230:25]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [15:0] _GEN_15 = {{12'd0}, inflight_opcodes}; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_6 = _GEN_15 & _a_opcode_lookup_T_5; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[15:1]}; // @[Monitor.scala 634:152]
  wire [15:0] _GEN_60 = {{12'd0}, inflight_sizes}; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_6 = _GEN_60 & _a_opcode_lookup_T_5; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[15:1]}; // @[Monitor.scala 638:144]
  wire  _T_552 = _a_first_T & a_first_1; // @[Monitor.scala 652:27]
  wire [3:0] _a_opcodes_set_interm_T = {io_in_a_bits_opcode, 1'h0}; // @[Monitor.scala 654:53]
  wire [3:0] _a_opcodes_set_interm_T_1 = _a_opcodes_set_interm_T | 4'h1; // @[Monitor.scala 654:61]
  wire [3:0] a_opcodes_set_interm = _a_first_T & a_first_1 ? _a_opcodes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 654:28]
  wire [18:0] _a_opcodes_set_T_1 = {{15'd0}, a_opcodes_set_interm}; // @[Monitor.scala 656:54]
  wire [2:0] a_sizes_set_interm = _a_first_T & a_first_1 ? 3'h7 : 3'h0; // @[Monitor.scala 652:72 655:28]
  wire [17:0] _a_sizes_set_T_1 = {{15'd0}, a_sizes_set_interm}; // @[Monitor.scala 657:52]
  wire  _T_556 = ~inflight; // @[Monitor.scala 658:17]
  wire [1:0] _GEN_16 = _a_first_T & a_first_1 ? 2'h1 : 2'h0; // @[Monitor.scala 652:72 653:28]
  wire [18:0] _GEN_19 = _a_first_T & a_first_1 ? _a_opcodes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 656:28]
  wire [17:0] _GEN_20 = _a_first_T & a_first_1 ? _a_sizes_set_T_1 : 18'h0; // @[Monitor.scala 652:72 657:28]
  wire  _T_567 = ~_T_356; // @[Monitor.scala 675:75]
  wire [30:0] _d_opcodes_clr_T_5 = {{15'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [1:0] _GEN_22 = _d_first_T & d_first_1 & ~_T_356 ? 2'h1 : 2'h0; // @[Monitor.scala 675:91 676:21]
  wire [30:0] _GEN_23 = _d_first_T & d_first_1 & ~_T_356 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 675:91 677:21]
  wire  _T_569 = io_in_d_valid & d_first_1; // @[Monitor.scala 680:26]
  wire  _T_572 = io_in_d_valid & d_first_1 & _T_567; // @[Monitor.scala 680:71]
  wire  same_cycle_resp = io_in_a_valid & a_first_1; // @[Monitor.scala 681:44]
  wire  _T_575 = inflight | same_cycle_resp; // @[Monitor.scala 682:49]
  wire [2:0] _GEN_27 = 3'h2 == io_in_a_bits_opcode ? 3'h1 : 3'h0; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_28 = 3'h3 == io_in_a_bits_opcode ? 3'h1 : _GEN_27; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_29 = 3'h4 == io_in_a_bits_opcode ? 3'h1 : _GEN_28; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_30 = 3'h5 == io_in_a_bits_opcode ? 3'h2 : _GEN_29; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_31 = 3'h6 == io_in_a_bits_opcode ? 3'h4 : _GEN_30; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_32 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_31; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_39 = 3'h6 == io_in_a_bits_opcode ? 3'h5 : _GEN_30; // @[Monitor.scala 686:{39,39}]
  wire [2:0] _GEN_40 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_39; // @[Monitor.scala 686:{39,39}]
  wire  _T_580 = io_in_d_bits_opcode == _GEN_40; // @[Monitor.scala 686:39]
  wire  _T_581 = io_in_d_bits_opcode == _GEN_32 | _T_580; // @[Monitor.scala 685:77]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_43 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_44 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_43; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_45 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_44; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_46 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_45; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_47 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_46; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_48 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_47; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_55 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_46; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_56 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_55; // @[Monitor.scala 690:{38,38}]
  wire  _T_592 = io_in_d_bits_opcode == _GEN_56; // @[Monitor.scala 690:38]
  wire  _T_593 = io_in_d_bits_opcode == _GEN_48 | _T_592; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire  _T_597 = 4'h3 == a_size_lookup; // @[Monitor.scala 691:36]
  wire  _T_607 = _T_569 & a_first_1 & io_in_a_valid & _T_567; // @[Monitor.scala 694:116]
  wire  _T_609 = ~io_in_d_ready | io_in_a_ready; // @[Monitor.scala 695:32]
  wire  a_set = _GEN_16[0];
  wire  d_clr = _GEN_22[0];
  wire [3:0] a_opcodes_set = _GEN_19[3:0];
  wire [3:0] _inflight_opcodes_T = inflight_opcodes | a_opcodes_set; // @[Monitor.scala 703:43]
  wire [3:0] d_opcodes_clr = _GEN_23[3:0];
  wire [3:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [3:0] _inflight_opcodes_T_2 = _inflight_opcodes_T & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [3:0] a_sizes_set = _GEN_20[3:0];
  wire [3:0] _inflight_sizes_T = inflight_sizes | a_sizes_set; // @[Monitor.scala 704:39]
  wire [3:0] _inflight_sizes_T_2 = _inflight_sizes_T & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [31:0] watchdog; // @[Monitor.scala 706:27]
  wire  _T_618 = ~(|inflight) | plusarg_reader_out == 32'h0 | watchdog < plusarg_reader_out; // @[Monitor.scala 709:47]
  wire [31:0] _watchdog_T_1 = watchdog + 32'h1; // @[Monitor.scala 711:26]
  reg [3:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg  d_first_counter_2; // @[Edges.scala 228:27]
  wire  d_first_counter1_2 = d_first_counter_2 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = ~d_first_counter_2; // @[Edges.scala 230:25]
  wire [15:0] _GEN_64 = {{12'd0}, inflight_sizes_1}; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_6 = _GEN_64 & _a_opcode_lookup_T_5; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[15:1]}; // @[Monitor.scala 747:146]
  wire [30:0] _GEN_69 = _d_first_T & d_first_2 & _T_356 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 783:90 786:21]
  wire  _T_651 = io_in_d_valid & d_first_2 & _T_356; // @[Monitor.scala 789:71]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_662 = 4'h3 == c_size_lookup; // @[Monitor.scala 795:36]
  wire [3:0] d_sizes_clr_1 = _GEN_69[3:0];
  wire [3:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [3:0] _inflight_sizes_T_5 = inflight_sizes_1 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        a_first_counter <= 1'h0;
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      opcode <= io_in_a_bits_opcode; // @[Monitor.scala 397:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      address <= io_in_a_bits_address; // @[Monitor.scala 401:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        d_first_counter <= 1'h0;
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (reset) begin // @[Monitor.scala 611:27]
      inflight <= 1'h0; // @[Monitor.scala 611:27]
    end else begin
      inflight <= (inflight | a_set) & ~d_clr; // @[Monitor.scala 702:14]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 4'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 4'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first_1) begin // @[Edges.scala 235:21]
        a_first_counter_1 <= 1'h0;
      end else begin
        a_first_counter_1 <= a_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        d_first_counter_1 <= 1'h0;
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 706:27]
      watchdog <= 32'h0; // @[Monitor.scala 706:27]
    end else if (_a_first_T | _d_first_T) begin // @[Monitor.scala 712:47]
      watchdog <= 32'h0; // @[Monitor.scala 712:58]
    end else begin
      watchdog <= _watchdog_T_1; // @[Monitor.scala 711:14]
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 4'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        d_first_counter_2 <= 1'h0;
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock from a client which does not support Probe (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock address not aligned to size (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~_T_64) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock contains invalid mask (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_64 & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm from a client which does not support Probe (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm address not aligned to size (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_72 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm requests NtoB (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset & ~_T_64) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm contains invalid mask (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_64 & (io_in_a_valid & _T_72 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~_T_27) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which slave claims it can't support (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_27 & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get address not aligned to size (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get contains invalid mask (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_175 & ~reset & ~_T_27) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutFull type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_27 & (io_in_a_valid & _T_175 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_175 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull address not aligned to size (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_175 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_175 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull contains invalid mask (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_175 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_211 & ~reset & ~_T_27) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutPartial type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_27 & (io_in_a_valid & _T_211 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_211 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial address not aligned to size (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_211 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_249 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Arithmetic type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_249 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_249 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic address not aligned to size (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_249 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_249 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic contains invalid mask (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_249 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Logical type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical address not aligned to size (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_282 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical contains invalid mask (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_282 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_315 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Hint type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_315 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_315 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint address not aligned to size (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_315 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_315 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint contains invalid mask (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_315 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_352) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_352 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_376 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid sink ID (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_376 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_404 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid sink ID (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_404 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_498 & ~reset & ~_T_499) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel opcode changed within multibeat operation (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_499 & (_T_498 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_498 & ~reset & ~_T_515) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel address changed with multibeat operation (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_515 & (_T_498 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_522 & _T_2 & ~_T_523) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_523 & (_T_522 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_552 & ~reset & ~_T_556) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel re-used a source ID (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_556 & (_T_552 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_572 & _T_2 & ~_T_575) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_575 & (_T_572 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_572 & same_cycle_resp & _T_2 & ~_T_581) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_581 & (_T_572 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_572 & ~same_cycle_resp & _T_2 & ~_T_593) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_593 & (_T_572 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_572 & ~same_cycle_resp & _T_2 & ~_T_597) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_597 & (_T_572 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_607 & _T_2 & ~_T_609) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_609 & (_T_607 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_618) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_618 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_651 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_651 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_651 & _T_2 & ~_T_662) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:190:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_662 & (_T_651 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  opcode = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  address = _RAND_2[17:0];
  _RAND_3 = {1{`RANDOM}};
  d_first_counter = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  opcode_1 = _RAND_4[2:0];
  _RAND_5 = {1{`RANDOM}};
  inflight = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  inflight_opcodes = _RAND_6[3:0];
  _RAND_7 = {1{`RANDOM}};
  inflight_sizes = _RAND_7[3:0];
  _RAND_8 = {1{`RANDOM}};
  a_first_counter_1 = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  watchdog = _RAND_10[31:0];
  _RAND_11 = {1{`RANDOM}};
  inflight_sizes_1 = _RAND_11[3:0];
  _RAND_12 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_12[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module AClint(
  input         clock,
  input         reset,
  output        auto_in_a_ready,
  input         auto_in_a_valid,
  input  [2:0]  auto_in_a_bits_opcode,
  input  [17:0] auto_in_a_bits_address,
  input  [7:0]  auto_in_a_bits_mask,
  input  [63:0] auto_in_a_bits_data,
  input         auto_in_d_ready,
  output        auto_in_d_valid,
  output [2:0]  auto_in_d_bits_opcode,
  output [63:0] auto_in_d_bits_data,
  input         io_rtc_clock,
  output        io_int_0_msi,
  output        io_int_0_mti,
  output        io_int_0_ssi
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [63:0] _RAND_4;
  reg [63:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
`endif // RANDOMIZE_REG_INIT
  wire  monitor_clock; // @[Nodes.scala 24:25]
  wire  monitor_reset; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_opcode; // @[Nodes.scala 24:25]
  wire [17:0] monitor_io_in_a_bits_address; // @[Nodes.scala 24:25]
  wire [7:0] monitor_io_in_a_bits_mask; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  reg  rtc_0; // @[Reg.scala 19:16]
  reg  rtc_1; // @[Reg.scala 19:16]
  reg  rtc_2; // @[Reg.scala 19:16]
  reg  rtc_3; // @[Reg.scala 19:16]
  reg [63:0] mtime; // @[AClint.scala 53:24]
  wire [63:0] _mtime_T_1 = mtime + 64'h1; // @[AClint.scala 54:45]
  reg [63:0] mtimecmp_0; // @[AClint.scala 56:46]
  reg  mipi_0; // @[AClint.scala 57:46]
  reg  sipi_0; // @[AClint.scala 58:46]
  reg  io_int_0_msi_r; // @[Reg.scala 19:16]
  reg  io_int_0_msi_r_1; // @[Reg.scala 19:16]
  reg  io_int_0_ssi_r; // @[Reg.scala 19:16]
  reg  io_int_0_ssi_r_1; // @[Reg.scala 19:16]
  reg  io_int_0_mti_r; // @[Reg.scala 19:16]
  reg  io_int_0_mti_r_1; // @[Reg.scala 19:16]
  wire  in_bits_read = auto_in_a_bits_opcode == 3'h4; // @[RegisterRouter.scala 72:36]
  wire [12:0] in_bits_index = auto_in_a_bits_address[15:3]; // @[RegisterRouter.scala 71:18 73:19]
  wire [12:0] out_findex = in_bits_index & 13'h9ff; // @[RegisterRouter.scala 83:24]
  wire  _out_T = out_findex == 13'h0; // @[RegisterRouter.scala 83:24]
  wire [7:0] _out_backMask_T_9 = auto_in_a_bits_mask[0] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _out_backMask_T_11 = auto_in_a_bits_mask[1] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _out_backMask_T_13 = auto_in_a_bits_mask[2] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _out_backMask_T_15 = auto_in_a_bits_mask[3] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _out_backMask_T_17 = auto_in_a_bits_mask[4] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _out_backMask_T_19 = auto_in_a_bits_mask[5] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _out_backMask_T_21 = auto_in_a_bits_mask[6] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _out_backMask_T_23 = auto_in_a_bits_mask[7] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [63:0] out_backMask = {_out_backMask_T_23,_out_backMask_T_21,_out_backMask_T_19,_out_backMask_T_17,
    _out_backMask_T_15,_out_backMask_T_13,_out_backMask_T_11,_out_backMask_T_9}; // @[Cat.scala 33:92]
  wire  out_womask = &out_backMask[0]; // @[RegisterRouter.scala 83:24]
  wire [2:0] out_oindex = {in_bits_index[12],in_bits_index[10],in_bits_index[9]}; // @[Cat.scala 33:92]
  wire [7:0] _out_backSel_T = 8'h1 << out_oindex; // @[OneHot.scala 57:35]
  wire  out_backSel_5 = _out_backSel_T[5]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_0 = auto_in_a_valid & auto_in_d_ready & ~in_bits_read & out_backSel_5 & out_findex == 13'h0; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready = out_woready_0 & out_womask; // @[RegisterRouter.scala 83:24]
  wire  out_womask_1 = &out_backMask; // @[RegisterRouter.scala 83:24]
  wire  out_backSel_4 = _out_backSel_T[4]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_1 = auto_in_a_valid & auto_in_d_ready & ~in_bits_read & out_backSel_4 & out_findex == 13'h0; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_1 = out_woready_1 & out_womask_1; // @[RegisterRouter.scala 83:24]
  wire  out_backSel_6 = _out_backSel_T[6]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_2 = auto_in_a_valid & auto_in_d_ready & ~in_bits_read & out_backSel_6 & out_findex == 13'h0; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_2 = out_woready_2 & out_womask; // @[RegisterRouter.scala 83:24]
  wire  out_backSel_0 = _out_backSel_T[0]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_3 = auto_in_a_valid & auto_in_d_ready & ~in_bits_read & out_backSel_0 & out_findex == 13'h0; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_3 = out_woready_3 & out_womask_1; // @[RegisterRouter.scala 83:24]
  wire  _GEN_51 = 3'h4 == out_oindex ? _out_T : 3'h3 == out_oindex | (3'h2 == out_oindex | (3'h1 == out_oindex | _out_T)
    ); // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_52 = 3'h5 == out_oindex ? _out_T : _GEN_51; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_53 = 3'h6 == out_oindex ? _out_T : _GEN_52; // @[MuxLiteral.scala 48:{10,10}]
  wire  _GEN_54 = 3'h7 == out_oindex | _GEN_53; // @[MuxLiteral.scala 48:{10,10}]
  wire [63:0] _GEN_56 = 3'h1 == out_oindex ? 64'h0 : mtimecmp_0; // @[MuxLiteral.scala 48:{10,10}]
  wire [63:0] _GEN_57 = 3'h2 == out_oindex ? 64'h0 : _GEN_56; // @[MuxLiteral.scala 48:{10,10}]
  wire [63:0] _GEN_58 = 3'h3 == out_oindex ? 64'h0 : _GEN_57; // @[MuxLiteral.scala 48:{10,10}]
  wire [63:0] _GEN_59 = 3'h4 == out_oindex ? mtime : _GEN_58; // @[MuxLiteral.scala 48:{10,10}]
  wire [63:0] _out_out_bits_data_WIRE_1_5 = {{63'd0}, mipi_0}; // @[MuxLiteral.scala 48:{48,48}]
  wire [63:0] _GEN_60 = 3'h5 == out_oindex ? _out_out_bits_data_WIRE_1_5 : _GEN_59; // @[MuxLiteral.scala 48:{10,10}]
  wire [63:0] _out_out_bits_data_WIRE_1_6 = {{63'd0}, sipi_0}; // @[MuxLiteral.scala 48:{48,48}]
  wire [63:0] _GEN_61 = 3'h6 == out_oindex ? _out_out_bits_data_WIRE_1_6 : _GEN_60; // @[MuxLiteral.scala 48:{10,10}]
  wire [63:0] _GEN_62 = 3'h7 == out_oindex ? 64'h0 : _GEN_61; // @[MuxLiteral.scala 48:{10,10}]
  TLMonitor_16 monitor ( // @[Nodes.scala 24:25]
    .clock(monitor_clock),
    .reset(monitor_reset),
    .io_in_a_ready(monitor_io_in_a_ready),
    .io_in_a_valid(monitor_io_in_a_valid),
    .io_in_a_bits_opcode(monitor_io_in_a_bits_opcode),
    .io_in_a_bits_address(monitor_io_in_a_bits_address),
    .io_in_a_bits_mask(monitor_io_in_a_bits_mask),
    .io_in_d_ready(monitor_io_in_d_ready),
    .io_in_d_valid(monitor_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_io_in_d_bits_opcode)
  );
  assign auto_in_a_ready = auto_in_d_ready; // @[RegisterRouter.scala 83:24]
  assign auto_in_d_valid = auto_in_a_valid; // @[RegisterRouter.scala 83:24]
  assign auto_in_d_bits_opcode = {{2'd0}, in_bits_read}; // @[Nodes.scala 1210:84 RegisterRouter.scala 98:19]
  assign auto_in_d_bits_data = _GEN_54 ? _GEN_62 : 64'h0; // @[RegisterRouter.scala 83:24]
  assign io_int_0_msi = io_int_0_msi_r_1; // @[AClint.scala 62:23]
  assign io_int_0_mti = io_int_0_mti_r_1; // @[AClint.scala 64:23]
  assign io_int_0_ssi = io_int_0_ssi_r_1; // @[AClint.scala 63:23]
  assign monitor_clock = clock;
  assign monitor_reset = reset;
  assign monitor_io_in_a_ready = auto_in_d_ready; // @[RegisterRouter.scala 83:24]
  assign monitor_io_in_a_valid = auto_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_opcode = auto_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_mask = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_ready = auto_in_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_valid = auto_in_a_valid; // @[RegisterRouter.scala 83:24]
  assign monitor_io_in_d_bits_opcode = {{2'd0}, in_bits_read}; // @[Nodes.scala 1210:84 RegisterRouter.scala 98:19]
  always @(posedge clock) begin
    rtc_0 <= io_rtc_clock; // @[Reg.scala 19:16 20:{18,22}]
    rtc_1 <= rtc_0; // @[Reg.scala 19:16 20:{18,22}]
    rtc_2 <= rtc_1; // @[Reg.scala 19:16 20:{18,22}]
    rtc_3 <= rtc_2; // @[Reg.scala 19:16 20:{18,22}]
    if (reset) begin // @[AClint.scala 53:24]
      mtime <= 64'h0; // @[AClint.scala 53:24]
    end else if (out_f_woready_1) begin // @[RegField.scala 74:88]
      mtime <= auto_in_a_bits_data; // @[RegField.scala 74:92]
    end else if (rtc_3 ^ rtc_2) begin // @[AClint.scala 54:28]
      mtime <= _mtime_T_1; // @[AClint.scala 54:36]
    end
    if (reset) begin // @[AClint.scala 56:46]
      mtimecmp_0 <= 64'h0; // @[AClint.scala 56:46]
    end else if (out_f_woready_3) begin // @[RegField.scala 74:88]
      mtimecmp_0 <= auto_in_a_bits_data; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[AClint.scala 57:46]
      mipi_0 <= 1'h0; // @[AClint.scala 57:46]
    end else if (out_f_woready) begin // @[RegField.scala 74:88]
      mipi_0 <= auto_in_a_bits_data[0]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[AClint.scala 58:46]
      sipi_0 <= 1'h0; // @[AClint.scala 58:46]
    end else if (out_f_woready_2) begin // @[RegField.scala 74:88]
      sipi_0 <= auto_in_a_bits_data[0]; // @[RegField.scala 74:92]
    end
    io_int_0_msi_r <= mipi_0; // @[Reg.scala 19:16 20:{18,22}]
    io_int_0_msi_r_1 <= io_int_0_msi_r; // @[Reg.scala 19:16 20:{18,22}]
    io_int_0_ssi_r <= sipi_0; // @[Reg.scala 19:16 20:{18,22}]
    io_int_0_ssi_r_1 <= io_int_0_ssi_r; // @[Reg.scala 19:16 20:{18,22}]
    io_int_0_mti_r <= mtime >= mtimecmp_0; // @[AClint.scala 64:46]
    io_int_0_mti_r_1 <= io_int_0_mti_r; // @[Reg.scala 19:16 20:{18,22}]
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  rtc_0 = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  rtc_1 = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  rtc_2 = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  rtc_3 = _RAND_3[0:0];
  _RAND_4 = {2{`RANDOM}};
  mtime = _RAND_4[63:0];
  _RAND_5 = {2{`RANDOM}};
  mtimecmp_0 = _RAND_5[63:0];
  _RAND_6 = {1{`RANDOM}};
  mipi_0 = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  sipi_0 = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  io_int_0_msi_r = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  io_int_0_msi_r_1 = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  io_int_0_ssi_r = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  io_int_0_ssi_r_1 = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  io_int_0_mti_r = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  io_int_0_mti_r_1 = _RAND_13[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLMonitor_17(
  input         clock,
  input         reset,
  input         io_in_a_ready,
  input         io_in_a_valid,
  input  [2:0]  io_in_a_bits_opcode,
  input  [28:0] io_in_a_bits_address,
  input  [7:0]  io_in_a_bits_mask,
  input         io_in_d_ready,
  input         io_in_d_valid,
  input  [2:0]  io_in_d_bits_opcode,
  input  [1:0]  io_in_d_bits_size,
  input         io_in_d_bits_source
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire [28:0] _is_aligned_T = io_in_a_bits_address & 29'h7; // @[Edges.scala 20:16]
  wire  is_aligned = _is_aligned_T == 29'h0; // @[Edges.scala 20:24]
  wire  _T_15 = io_in_a_bits_opcode == 3'h6; // @[Monitor.scala 81:25]
  wire [28:0] _T_23 = io_in_a_bits_address ^ 29'h10000000; // @[Parameters.scala 137:31]
  wire [29:0] _T_24 = {1'b0,$signed(_T_23)}; // @[Parameters.scala 137:49]
  wire [29:0] _T_26 = $signed(_T_24) & -30'sh10000000; // @[Parameters.scala 137:52]
  wire  _T_27 = $signed(_T_26) == 30'sh0; // @[Parameters.scala 137:67]
  wire [7:0] _T_63 = ~io_in_a_bits_mask; // @[Monitor.scala 88:18]
  wire  _T_64 = _T_63 == 8'h0; // @[Monitor.scala 88:31]
  wire  _T_72 = io_in_a_bits_opcode == 3'h7; // @[Monitor.scala 92:25]
  wire  _T_133 = io_in_a_bits_opcode == 3'h4; // @[Monitor.scala 104:25]
  wire  _T_167 = io_in_a_bits_mask == 8'hff; // @[Monitor.scala 110:30]
  wire  _T_175 = io_in_a_bits_opcode == 3'h0; // @[Monitor.scala 114:25]
  wire  _T_211 = io_in_a_bits_opcode == 3'h1; // @[Monitor.scala 122:25]
  wire  _T_249 = io_in_a_bits_opcode == 3'h2; // @[Monitor.scala 130:25]
  wire  _T_282 = io_in_a_bits_opcode == 3'h3; // @[Monitor.scala 138:25]
  wire  _T_315 = io_in_a_bits_opcode == 3'h5; // @[Monitor.scala 146:25]
  wire  _T_352 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire  _source_ok_T_1 = ~io_in_d_bits_source; // @[Parameters.scala 46:9]
  wire  _T_356 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_360 = io_in_d_bits_size >= 2'h3; // @[Monitor.scala 312:27]
  wire  _T_376 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_404 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _T_433 = io_in_d_bits_opcode == 3'h0; // @[Monitor.scala 338:25]
  wire  _T_450 = io_in_d_bits_opcode == 3'h1; // @[Monitor.scala 346:25]
  wire  _T_468 = io_in_d_bits_opcode == 3'h2; // @[Monitor.scala 354:25]
  wire  _a_first_T = io_in_a_ready & io_in_a_valid; // @[Decoupled.scala 52:35]
  reg  a_first_counter; // @[Edges.scala 228:27]
  wire  a_first_counter1 = a_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  a_first = ~a_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode; // @[Monitor.scala 384:22]
  reg [28:0] address; // @[Monitor.scala 388:22]
  wire  _T_498 = io_in_a_valid & ~a_first; // @[Monitor.scala 389:19]
  wire  _T_499 = io_in_a_bits_opcode == opcode; // @[Monitor.scala 390:32]
  wire  _T_515 = io_in_a_bits_address == address; // @[Monitor.scala 394:32]
  wire  _d_first_T = io_in_d_ready & io_in_d_valid; // @[Decoupled.scala 52:35]
  reg  d_first_counter; // @[Edges.scala 228:27]
  wire  d_first_counter1 = d_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  d_first = ~d_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  reg [1:0] size_1; // @[Monitor.scala 537:22]
  reg  source_1; // @[Monitor.scala 538:22]
  wire  _T_522 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_523 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  wire  _T_531 = io_in_d_bits_size == size_1; // @[Monitor.scala 544:29]
  wire  _T_535 = io_in_d_bits_source == source_1; // @[Monitor.scala 545:29]
  reg  inflight; // @[Monitor.scala 611:27]
  reg [3:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [3:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg  a_first_counter_1; // @[Edges.scala 228:27]
  wire  a_first_counter1_1 = a_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  a_first_1 = ~a_first_counter_1; // @[Edges.scala 230:25]
  reg  d_first_counter_1; // @[Edges.scala 228:27]
  wire  d_first_counter1_1 = d_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = ~d_first_counter_1; // @[Edges.scala 230:25]
  wire [2:0] _GEN_62 = {io_in_d_bits_source, 2'h0}; // @[Monitor.scala 634:69]
  wire [3:0] _a_opcode_lookup_T = {{1'd0}, _GEN_62}; // @[Monitor.scala 634:69]
  wire [3:0] _a_opcode_lookup_T_1 = inflight_opcodes >> _a_opcode_lookup_T; // @[Monitor.scala 634:44]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [15:0] _GEN_64 = {{12'd0}, _a_opcode_lookup_T_1}; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_6 = _GEN_64 & _a_opcode_lookup_T_5; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[15:1]}; // @[Monitor.scala 634:152]
  wire [3:0] _a_size_lookup_T_1 = inflight_sizes >> _a_opcode_lookup_T; // @[Monitor.scala 638:40]
  wire [15:0] _GEN_72 = {{12'd0}, _a_size_lookup_T_1}; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_6 = _GEN_72 & _a_opcode_lookup_T_5; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[15:1]}; // @[Monitor.scala 638:144]
  wire  _T_549 = io_in_a_valid & a_first_1; // @[Monitor.scala 648:26]
  wire [1:0] _GEN_15 = io_in_a_valid & a_first_1 ? 2'h1 : 2'h0; // @[Monitor.scala 648:71 649:22]
  wire  _T_552 = _a_first_T & a_first_1; // @[Monitor.scala 652:27]
  wire [3:0] _a_opcodes_set_interm_T = {io_in_a_bits_opcode, 1'h0}; // @[Monitor.scala 654:53]
  wire [3:0] _a_opcodes_set_interm_T_1 = _a_opcodes_set_interm_T | 4'h1; // @[Monitor.scala 654:61]
  wire [3:0] a_opcodes_set_interm = _a_first_T & a_first_1 ? _a_opcodes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 654:28]
  wire [18:0] _a_opcodes_set_T_1 = {{15'd0}, a_opcodes_set_interm}; // @[Monitor.scala 656:54]
  wire [2:0] a_sizes_set_interm = _a_first_T & a_first_1 ? 3'h7 : 3'h0; // @[Monitor.scala 652:72 655:28]
  wire [17:0] _a_sizes_set_T_1 = {{15'd0}, a_sizes_set_interm}; // @[Monitor.scala 657:52]
  wire  _T_556 = ~inflight; // @[Monitor.scala 658:17]
  wire [1:0] _GEN_16 = _a_first_T & a_first_1 ? 2'h1 : 2'h0; // @[Monitor.scala 652:72 653:28]
  wire [18:0] _GEN_19 = _a_first_T & a_first_1 ? _a_opcodes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 656:28]
  wire [17:0] _GEN_20 = _a_first_T & a_first_1 ? _a_sizes_set_T_1 : 18'h0; // @[Monitor.scala 652:72 657:28]
  wire  _T_560 = io_in_d_valid & d_first_1; // @[Monitor.scala 671:26]
  wire  _T_562 = ~_T_356; // @[Monitor.scala 671:74]
  wire  _T_563 = io_in_d_valid & d_first_1 & ~_T_356; // @[Monitor.scala 671:71]
  wire [1:0] _d_clr_wo_ready_T = 2'h1 << io_in_d_bits_source; // @[OneHot.scala 57:35]
  wire [1:0] _GEN_21 = io_in_d_valid & d_first_1 & ~_T_356 ? _d_clr_wo_ready_T : 2'h0; // @[Monitor.scala 671:90 672:22]
  wire [30:0] _GEN_296 = {{15'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [30:0] _d_opcodes_clr_T_5 = _GEN_296 << _a_opcode_lookup_T; // @[Monitor.scala 677:76]
  wire [1:0] _GEN_22 = _d_first_T & d_first_1 & _T_562 ? _d_clr_wo_ready_T : 2'h0; // @[Monitor.scala 675:91 676:21]
  wire [30:0] _GEN_23 = _d_first_T & d_first_1 & _T_562 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 675:91 677:21]
  wire  same_cycle_resp = _T_549 & _source_ok_T_1; // @[Monitor.scala 681:88]
  wire  _T_575 = inflight >> io_in_d_bits_source | same_cycle_resp; // @[Monitor.scala 682:49]
  wire [2:0] _GEN_27 = 3'h2 == io_in_a_bits_opcode ? 3'h1 : 3'h0; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_28 = 3'h3 == io_in_a_bits_opcode ? 3'h1 : _GEN_27; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_29 = 3'h4 == io_in_a_bits_opcode ? 3'h1 : _GEN_28; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_30 = 3'h5 == io_in_a_bits_opcode ? 3'h2 : _GEN_29; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_31 = 3'h6 == io_in_a_bits_opcode ? 3'h4 : _GEN_30; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_32 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_31; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_39 = 3'h6 == io_in_a_bits_opcode ? 3'h5 : _GEN_30; // @[Monitor.scala 686:{39,39}]
  wire [2:0] _GEN_40 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_39; // @[Monitor.scala 686:{39,39}]
  wire  _T_580 = io_in_d_bits_opcode == _GEN_40; // @[Monitor.scala 686:39]
  wire  _T_581 = io_in_d_bits_opcode == _GEN_32 | _T_580; // @[Monitor.scala 685:77]
  wire  _T_585 = 2'h3 == io_in_d_bits_size; // @[Monitor.scala 687:36]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_43 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_44 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_43; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_45 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_44; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_46 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_45; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_47 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_46; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_48 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_47; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_55 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_46; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_56 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_55; // @[Monitor.scala 690:{38,38}]
  wire  _T_592 = io_in_d_bits_opcode == _GEN_56; // @[Monitor.scala 690:38]
  wire  _T_593 = io_in_d_bits_opcode == _GEN_48 | _T_592; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire [3:0] _GEN_76 = {{2'd0}, io_in_d_bits_size}; // @[Monitor.scala 691:36]
  wire  _T_597 = _GEN_76 == a_size_lookup; // @[Monitor.scala 691:36]
  wire  _T_607 = _T_560 & a_first_1 & io_in_a_valid & _source_ok_T_1 & _T_562; // @[Monitor.scala 694:116]
  wire  _T_609 = ~io_in_d_ready | io_in_a_ready; // @[Monitor.scala 695:32]
  wire  a_set_wo_ready = _GEN_15[0];
  wire  d_clr_wo_ready = _GEN_21[0];
  wire  _T_616 = a_set_wo_ready != d_clr_wo_ready | ~(|a_set_wo_ready); // @[Monitor.scala 699:48]
  wire  a_set = _GEN_16[0];
  wire  d_clr = _GEN_22[0];
  wire [3:0] a_opcodes_set = _GEN_19[3:0];
  wire [3:0] _inflight_opcodes_T = inflight_opcodes | a_opcodes_set; // @[Monitor.scala 703:43]
  wire [3:0] d_opcodes_clr = _GEN_23[3:0];
  wire [3:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [3:0] _inflight_opcodes_T_2 = _inflight_opcodes_T & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [3:0] a_sizes_set = _GEN_20[3:0];
  wire [3:0] _inflight_sizes_T = inflight_sizes | a_sizes_set; // @[Monitor.scala 704:39]
  wire [3:0] _inflight_sizes_T_2 = _inflight_sizes_T & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [31:0] watchdog; // @[Monitor.scala 706:27]
  wire  _T_625 = ~(|inflight) | plusarg_reader_out == 32'h0 | watchdog < plusarg_reader_out; // @[Monitor.scala 709:47]
  wire [31:0] _watchdog_T_1 = watchdog + 32'h1; // @[Monitor.scala 711:26]
  reg [3:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg  d_first_counter_2; // @[Edges.scala 228:27]
  wire  d_first_counter1_2 = d_first_counter_2 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = ~d_first_counter_2; // @[Edges.scala 230:25]
  wire [3:0] _c_size_lookup_T_1 = inflight_sizes_1 >> _a_opcode_lookup_T; // @[Monitor.scala 747:42]
  wire [15:0] _GEN_78 = {{12'd0}, _c_size_lookup_T_1}; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_6 = _GEN_78 & _a_opcode_lookup_T_5; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[15:1]}; // @[Monitor.scala 747:146]
  wire  _T_651 = io_in_d_valid & d_first_2 & _T_356; // @[Monitor.scala 779:71]
  wire [30:0] _GEN_69 = _d_first_T & d_first_2 & _T_356 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 783:90 786:21]
  wire  _T_659 = 1'h0 >> io_in_d_bits_source; // @[Monitor.scala 791:25]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_669 = _GEN_76 == c_size_lookup; // @[Monitor.scala 795:36]
  wire [3:0] d_sizes_clr_1 = _GEN_69[3:0];
  wire [3:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [3:0] _inflight_sizes_T_5 = inflight_sizes_1 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        a_first_counter <= 1'h0;
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      opcode <= io_in_a_bits_opcode; // @[Monitor.scala 397:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      address <= io_in_a_bits_address; // @[Monitor.scala 401:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        d_first_counter <= 1'h0;
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      size_1 <= io_in_d_bits_size; // @[Monitor.scala 552:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      source_1 <= io_in_d_bits_source; // @[Monitor.scala 553:15]
    end
    if (reset) begin // @[Monitor.scala 611:27]
      inflight <= 1'h0; // @[Monitor.scala 611:27]
    end else begin
      inflight <= (inflight | a_set) & ~d_clr; // @[Monitor.scala 702:14]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 4'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 4'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first_1) begin // @[Edges.scala 235:21]
        a_first_counter_1 <= 1'h0;
      end else begin
        a_first_counter_1 <= a_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        d_first_counter_1 <= 1'h0;
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 706:27]
      watchdog <= 32'h0; // @[Monitor.scala 706:27]
    end else if (_a_first_T | _d_first_T) begin // @[Monitor.scala 712:47]
      watchdog <= 32'h0; // @[Monitor.scala 712:58]
    end else begin
      watchdog <= _watchdog_T_1; // @[Monitor.scala 711:14]
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 4'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        d_first_counter_2 <= 1'h0;
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock from a client which does not support Probe (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock address not aligned to size (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~_T_64) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock contains invalid mask (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_64 & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm from a client which does not support Probe (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm address not aligned to size (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_72 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm requests NtoB (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset & ~_T_64) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm contains invalid mask (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_64 & (io_in_a_valid & _T_72 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~_T_27) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which slave claims it can't support (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_27 & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get address not aligned to size (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get contains invalid mask (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_175 & ~reset & ~_T_27) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutFull type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_27 & (io_in_a_valid & _T_175 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_175 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull address not aligned to size (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_175 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_175 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull contains invalid mask (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_175 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_211 & ~reset & ~_T_27) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutPartial type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_27 & (io_in_a_valid & _T_211 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_211 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial address not aligned to size (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_211 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_249 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Arithmetic type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_249 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_249 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic address not aligned to size (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_249 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_249 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic contains invalid mask (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_249 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Logical type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical address not aligned to size (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_282 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical contains invalid mask (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_282 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_315 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Hint type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_315 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_315 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint address not aligned to size (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_315 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_315 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint contains invalid mask (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_315 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_352) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_352 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_356 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck carries invalid source ID (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_356 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_356 & _T_2 & ~_T_360) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck smaller than a beat (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_360 & (io_in_d_valid & _T_356 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_376 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid source ID (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_376 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_376 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid sink ID (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_376 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_376 & _T_2 & ~_T_360) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant smaller than a beat (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_360 & (io_in_d_valid & _T_376 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_404 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid source ID (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_404 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_404 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid sink ID (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_404 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_404 & _T_2 & ~_T_360) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData smaller than a beat (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_360 & (io_in_d_valid & _T_404 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_433 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck carries invalid source ID (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_433 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_450 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData carries invalid source ID (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_450 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_468 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck carries invalid source ID (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_468 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_498 & ~reset & ~_T_499) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel opcode changed within multibeat operation (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_499 & (_T_498 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_498 & ~reset & ~_T_515) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel address changed with multibeat operation (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_515 & (_T_498 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_522 & _T_2 & ~_T_523) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_523 & (_T_522 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_522 & _T_2 & ~_T_531) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel size changed within multibeat operation (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_531 & (_T_522 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_522 & _T_2 & ~_T_535) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel source changed within multibeat operation (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_535 & (_T_522 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_552 & ~reset & ~_T_556) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel re-used a source ID (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_556 & (_T_552 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_563 & _T_2 & ~_T_575) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_575 & (_T_563 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_563 & same_cycle_resp & _T_2 & ~_T_581) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_581 & (_T_563 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_563 & same_cycle_resp & _T_2 & ~_T_585) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_585 & (_T_563 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_563 & ~same_cycle_resp & _T_2 & ~_T_593) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_593 & (_T_563 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_563 & ~same_cycle_resp & _T_2 & ~_T_597) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_597 & (_T_563 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_607 & _T_2 & ~_T_609) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_609 & (_T_607 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_2 & ~_T_616) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' and 'D' concurrent, despite minlatency 1 (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_616 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_625) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_625 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_651 & _T_2 & ~_T_659) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_659 & (_T_651 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_651 & _T_2 & ~_T_669) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:191:19)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_669 & (_T_651 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  opcode = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  address = _RAND_2[28:0];
  _RAND_3 = {1{`RANDOM}};
  d_first_counter = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  opcode_1 = _RAND_4[2:0];
  _RAND_5 = {1{`RANDOM}};
  size_1 = _RAND_5[1:0];
  _RAND_6 = {1{`RANDOM}};
  source_1 = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  inflight = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  inflight_opcodes = _RAND_8[3:0];
  _RAND_9 = {1{`RANDOM}};
  inflight_sizes = _RAND_9[3:0];
  _RAND_10 = {1{`RANDOM}};
  a_first_counter_1 = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  watchdog = _RAND_12[31:0];
  _RAND_13 = {1{`RANDOM}};
  inflight_sizes_1 = _RAND_13[3:0];
  _RAND_14 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_14[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_43(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input         io_enq_bits_read,
  input  [24:0] io_enq_bits_index,
  input  [63:0] io_enq_bits_data,
  input  [7:0]  io_enq_bits_mask,
  input         io_deq_ready,
  output        io_deq_valid,
  output        io_deq_bits_read,
  output [24:0] io_deq_bits_index,
  output [63:0] io_deq_bits_data,
  output [7:0]  io_deq_bits_mask,
  output        io_deq_bits_extra_tlrr_extra_source,
  output [1:0]  io_deq_bits_extra_tlrr_extra_size
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [63:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_6;
`endif // RANDOMIZE_REG_INIT
  reg  ram_read [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_read_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_read_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_read_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_read_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_read_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_read_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_read_MPORT_en; // @[Decoupled.scala 275:95]
  reg [24:0] ram_index [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_index_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_index_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [24:0] ram_index_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [24:0] ram_index_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_index_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_index_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_index_MPORT_en; // @[Decoupled.scala 275:95]
  reg [63:0] ram_data [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_en; // @[Decoupled.scala 275:95]
  reg [7:0] ram_mask [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_mask_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_mask_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [7:0] ram_mask_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [7:0] ram_mask_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_mask_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_mask_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_mask_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_extra_tlrr_extra_source [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_extra_tlrr_extra_source_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_extra_tlrr_extra_source_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_extra_tlrr_extra_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_extra_tlrr_extra_source_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_extra_tlrr_extra_source_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_extra_tlrr_extra_source_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_extra_tlrr_extra_source_MPORT_en; // @[Decoupled.scala 275:95]
  reg [1:0] ram_extra_tlrr_extra_size [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_extra_tlrr_extra_size_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_extra_tlrr_extra_size_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [1:0] ram_extra_tlrr_extra_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [1:0] ram_extra_tlrr_extra_size_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_extra_tlrr_extra_size_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_extra_tlrr_extra_size_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_extra_tlrr_extra_size_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_deq = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign ram_read_io_deq_bits_MPORT_en = 1'h1;
  assign ram_read_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_read_io_deq_bits_MPORT_data = ram_read[ram_read_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_read_MPORT_data = io_enq_bits_read;
  assign ram_read_MPORT_addr = 1'h0;
  assign ram_read_MPORT_mask = 1'h1;
  assign ram_read_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_index_io_deq_bits_MPORT_en = 1'h1;
  assign ram_index_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_index_io_deq_bits_MPORT_data = ram_index[ram_index_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_index_MPORT_data = io_enq_bits_index;
  assign ram_index_MPORT_addr = 1'h0;
  assign ram_index_MPORT_mask = 1'h1;
  assign ram_index_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_data_io_deq_bits_MPORT_en = 1'h1;
  assign ram_data_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_data_io_deq_bits_MPORT_data = ram_data[ram_data_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_data_MPORT_data = io_enq_bits_data;
  assign ram_data_MPORT_addr = 1'h0;
  assign ram_data_MPORT_mask = 1'h1;
  assign ram_data_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_mask_io_deq_bits_MPORT_en = 1'h1;
  assign ram_mask_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_mask_io_deq_bits_MPORT_data = ram_mask[ram_mask_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_mask_MPORT_data = io_enq_bits_mask;
  assign ram_mask_MPORT_addr = 1'h0;
  assign ram_mask_MPORT_mask = 1'h1;
  assign ram_mask_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_extra_tlrr_extra_source_io_deq_bits_MPORT_en = 1'h1;
  assign ram_extra_tlrr_extra_source_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_extra_tlrr_extra_source_io_deq_bits_MPORT_data =
    ram_extra_tlrr_extra_source[ram_extra_tlrr_extra_source_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_extra_tlrr_extra_source_MPORT_data = 1'h0;
  assign ram_extra_tlrr_extra_source_MPORT_addr = 1'h0;
  assign ram_extra_tlrr_extra_source_MPORT_mask = 1'h1;
  assign ram_extra_tlrr_extra_source_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_extra_tlrr_extra_size_io_deq_bits_MPORT_en = 1'h1;
  assign ram_extra_tlrr_extra_size_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_extra_tlrr_extra_size_io_deq_bits_MPORT_data =
    ram_extra_tlrr_extra_size[ram_extra_tlrr_extra_size_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_extra_tlrr_extra_size_MPORT_data = 2'h3;
  assign ram_extra_tlrr_extra_size_MPORT_addr = 1'h0;
  assign ram_extra_tlrr_extra_size_MPORT_mask = 1'h1;
  assign ram_extra_tlrr_extra_size_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = ~maybe_full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_read = ram_read_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_index = ram_index_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_data = ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_mask = ram_mask_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_extra_tlrr_extra_source = ram_extra_tlrr_extra_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_extra_tlrr_extra_size = ram_extra_tlrr_extra_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_read_MPORT_en & ram_read_MPORT_mask) begin
      ram_read[ram_read_MPORT_addr] <= ram_read_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_index_MPORT_en & ram_index_MPORT_mask) begin
      ram_index[ram_index_MPORT_addr] <= ram_index_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_data_MPORT_en & ram_data_MPORT_mask) begin
      ram_data[ram_data_MPORT_addr] <= ram_data_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_mask_MPORT_en & ram_mask_MPORT_mask) begin
      ram_mask[ram_mask_MPORT_addr] <= ram_mask_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_extra_tlrr_extra_source_MPORT_en & ram_extra_tlrr_extra_source_MPORT_mask) begin
      ram_extra_tlrr_extra_source[ram_extra_tlrr_extra_source_MPORT_addr] <= ram_extra_tlrr_extra_source_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_extra_tlrr_extra_size_MPORT_en & ram_extra_tlrr_extra_size_MPORT_mask) begin
      ram_extra_tlrr_extra_size[ram_extra_tlrr_extra_size_MPORT_addr] <= ram_extra_tlrr_extra_size_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_read[initvar] = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_index[initvar] = _RAND_1[24:0];
  _RAND_2 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_data[initvar] = _RAND_2[63:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_mask[initvar] = _RAND_3[7:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_extra_tlrr_extra_source[initvar] = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_extra_tlrr_extra_size[initvar] = _RAND_5[1:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_6 = {1{`RANDOM}};
  maybe_full = _RAND_6[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Plic(
  input         clock,
  input         reset,
  output        auto_in_a_ready,
  input         auto_in_a_valid,
  input  [2:0]  auto_in_a_bits_opcode,
  input  [28:0] auto_in_a_bits_address,
  input  [7:0]  auto_in_a_bits_mask,
  input  [63:0] auto_in_a_bits_data,
  input         auto_in_d_ready,
  output        auto_in_d_valid,
  output [2:0]  auto_in_d_bits_opcode,
  output [1:0]  auto_in_d_bits_size,
  output [63:0] auto_in_d_bits_data,
  input         io_interrupt_0,
  input         io_interrupt_1,
  input         io_interrupt_2,
  input         io_interrupt_3,
  input         io_interrupt_4,
  input         io_interrupt_5,
  input         io_interrupt_6,
  input         io_interrupt_7,
  input         io_interrupt_8,
  input         io_interrupt_9,
  input         io_interrupt_10,
  input         io_interrupt_11,
  input         io_interrupt_12,
  input         io_interrupt_13,
  input         io_interrupt_14,
  input         io_interrupt_15,
  input         io_interrupt_16,
  input         io_interrupt_17,
  input         io_interrupt_18,
  input         io_interrupt_19,
  input         io_interrupt_20,
  input         io_interrupt_21,
  input         io_interrupt_22,
  input         io_interrupt_23,
  input         io_interrupt_24,
  input         io_interrupt_25,
  input         io_interrupt_26,
  input         io_interrupt_27,
  input         io_interrupt_28,
  input         io_interrupt_29,
  input         io_interrupt_30,
  output        io_context_0
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
  reg [31:0] _RAND_33;
  reg [31:0] _RAND_34;
  reg [31:0] _RAND_35;
  reg [31:0] _RAND_36;
  reg [31:0] _RAND_37;
  reg [31:0] _RAND_38;
  reg [31:0] _RAND_39;
  reg [31:0] _RAND_40;
  reg [31:0] _RAND_41;
  reg [31:0] _RAND_42;
  reg [31:0] _RAND_43;
  reg [31:0] _RAND_44;
  reg [31:0] _RAND_45;
  reg [31:0] _RAND_46;
  reg [31:0] _RAND_47;
  reg [31:0] _RAND_48;
  reg [31:0] _RAND_49;
  reg [31:0] _RAND_50;
  reg [31:0] _RAND_51;
  reg [31:0] _RAND_52;
  reg [31:0] _RAND_53;
  reg [31:0] _RAND_54;
  reg [31:0] _RAND_55;
  reg [31:0] _RAND_56;
  reg [31:0] _RAND_57;
  reg [31:0] _RAND_58;
  reg [31:0] _RAND_59;
  reg [31:0] _RAND_60;
  reg [31:0] _RAND_61;
  reg [31:0] _RAND_62;
  reg [31:0] _RAND_63;
  reg [31:0] _RAND_64;
  reg [31:0] _RAND_65;
  reg [31:0] _RAND_66;
  reg [31:0] _RAND_67;
  reg [31:0] _RAND_68;
  reg [31:0] _RAND_69;
  reg [31:0] _RAND_70;
  reg [31:0] _RAND_71;
  reg [31:0] _RAND_72;
  reg [31:0] _RAND_73;
  reg [31:0] _RAND_74;
  reg [31:0] _RAND_75;
  reg [31:0] _RAND_76;
  reg [31:0] _RAND_77;
  reg [31:0] _RAND_78;
  reg [31:0] _RAND_79;
  reg [31:0] _RAND_80;
  reg [31:0] _RAND_81;
  reg [31:0] _RAND_82;
  reg [31:0] _RAND_83;
  reg [31:0] _RAND_84;
  reg [31:0] _RAND_85;
  reg [31:0] _RAND_86;
  reg [31:0] _RAND_87;
  reg [31:0] _RAND_88;
  reg [31:0] _RAND_89;
  reg [31:0] _RAND_90;
  reg [31:0] _RAND_91;
  reg [31:0] _RAND_92;
  reg [31:0] _RAND_93;
  reg [31:0] _RAND_94;
  reg [31:0] _RAND_95;
  reg [31:0] _RAND_96;
  reg [31:0] _RAND_97;
  reg [31:0] _RAND_98;
  reg [31:0] _RAND_99;
  reg [31:0] _RAND_100;
  reg [31:0] _RAND_101;
  reg [31:0] _RAND_102;
  reg [31:0] _RAND_103;
  reg [31:0] _RAND_104;
  reg [31:0] _RAND_105;
  reg [31:0] _RAND_106;
  reg [31:0] _RAND_107;
  reg [31:0] _RAND_108;
  reg [31:0] _RAND_109;
  reg [31:0] _RAND_110;
  reg [31:0] _RAND_111;
  reg [31:0] _RAND_112;
  reg [31:0] _RAND_113;
  reg [31:0] _RAND_114;
  reg [31:0] _RAND_115;
  reg [31:0] _RAND_116;
  reg [31:0] _RAND_117;
  reg [31:0] _RAND_118;
  reg [31:0] _RAND_119;
  reg [31:0] _RAND_120;
  reg [31:0] _RAND_121;
  reg [31:0] _RAND_122;
  reg [31:0] _RAND_123;
  reg [31:0] _RAND_124;
  reg [31:0] _RAND_125;
  reg [31:0] _RAND_126;
  reg [31:0] _RAND_127;
  reg [31:0] _RAND_128;
`endif // RANDOMIZE_REG_INIT
  wire  monitor_clock; // @[Nodes.scala 24:25]
  wire  monitor_reset; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_opcode; // @[Nodes.scala 24:25]
  wire [28:0] monitor_io_in_a_bits_address; // @[Nodes.scala 24:25]
  wire [7:0] monitor_io_in_a_bits_mask; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  wire [1:0] monitor_io_in_d_bits_size; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_source; // @[Nodes.scala 24:25]
  wire  out_back_clock; // @[Decoupled.scala 377:21]
  wire  out_back_reset; // @[Decoupled.scala 377:21]
  wire  out_back_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  out_back_io_enq_valid; // @[Decoupled.scala 377:21]
  wire  out_back_io_enq_bits_read; // @[Decoupled.scala 377:21]
  wire [24:0] out_back_io_enq_bits_index; // @[Decoupled.scala 377:21]
  wire [63:0] out_back_io_enq_bits_data; // @[Decoupled.scala 377:21]
  wire [7:0] out_back_io_enq_bits_mask; // @[Decoupled.scala 377:21]
  wire  out_back_io_deq_ready; // @[Decoupled.scala 377:21]
  wire  out_back_io_deq_valid; // @[Decoupled.scala 377:21]
  wire  out_back_io_deq_bits_read; // @[Decoupled.scala 377:21]
  wire [24:0] out_back_io_deq_bits_index; // @[Decoupled.scala 377:21]
  wire [63:0] out_back_io_deq_bits_data; // @[Decoupled.scala 377:21]
  wire [7:0] out_back_io_deq_bits_mask; // @[Decoupled.scala 377:21]
  wire  out_back_io_deq_bits_extra_tlrr_extra_source; // @[Decoupled.scala 377:21]
  wire [1:0] out_back_io_deq_bits_extra_tlrr_extra_size; // @[Decoupled.scala 377:21]
  reg [3:0] priority_0; // @[Plic.scala 78:24]
  reg [3:0] priority_1; // @[Plic.scala 78:24]
  reg [3:0] priority_2; // @[Plic.scala 78:24]
  reg [3:0] priority_3; // @[Plic.scala 78:24]
  reg [3:0] priority_4; // @[Plic.scala 78:24]
  reg [3:0] priority_5; // @[Plic.scala 78:24]
  reg [3:0] priority_6; // @[Plic.scala 78:24]
  reg [3:0] priority_7; // @[Plic.scala 78:24]
  reg [3:0] priority_8; // @[Plic.scala 78:24]
  reg [3:0] priority_9; // @[Plic.scala 78:24]
  reg [3:0] priority_10; // @[Plic.scala 78:24]
  reg [3:0] priority_11; // @[Plic.scala 78:24]
  reg [3:0] priority_12; // @[Plic.scala 78:24]
  reg [3:0] priority_13; // @[Plic.scala 78:24]
  reg [3:0] priority_14; // @[Plic.scala 78:24]
  reg [3:0] priority_15; // @[Plic.scala 78:24]
  reg [3:0] priority_16; // @[Plic.scala 78:24]
  reg [3:0] priority_17; // @[Plic.scala 78:24]
  reg [3:0] priority_18; // @[Plic.scala 78:24]
  reg [3:0] priority_19; // @[Plic.scala 78:24]
  reg [3:0] priority_20; // @[Plic.scala 78:24]
  reg [3:0] priority_21; // @[Plic.scala 78:24]
  reg [3:0] priority_22; // @[Plic.scala 78:24]
  reg [3:0] priority_23; // @[Plic.scala 78:24]
  reg [3:0] priority_24; // @[Plic.scala 78:24]
  reg [3:0] priority_25; // @[Plic.scala 78:24]
  reg [3:0] priority_26; // @[Plic.scala 78:24]
  reg [3:0] priority_27; // @[Plic.scala 78:24]
  reg [3:0] priority_28; // @[Plic.scala 78:24]
  reg [3:0] priority_29; // @[Plic.scala 78:24]
  reg [3:0] priority_30; // @[Plic.scala 78:24]
  reg [3:0] threshold_0; // @[Plic.scala 80:24]
  reg  pending_0; // @[Plic.scala 82:28]
  reg  pending_1; // @[Plic.scala 82:28]
  reg  pending_2; // @[Plic.scala 82:28]
  reg  pending_3; // @[Plic.scala 82:28]
  reg  pending_4; // @[Plic.scala 82:28]
  reg  pending_5; // @[Plic.scala 82:28]
  reg  pending_6; // @[Plic.scala 82:28]
  reg  pending_7; // @[Plic.scala 82:28]
  reg  pending_8; // @[Plic.scala 82:28]
  reg  pending_9; // @[Plic.scala 82:28]
  reg  pending_10; // @[Plic.scala 82:28]
  reg  pending_11; // @[Plic.scala 82:28]
  reg  pending_12; // @[Plic.scala 82:28]
  reg  pending_13; // @[Plic.scala 82:28]
  reg  pending_14; // @[Plic.scala 82:28]
  reg  pending_15; // @[Plic.scala 82:28]
  reg  pending_16; // @[Plic.scala 82:28]
  reg  pending_17; // @[Plic.scala 82:28]
  reg  pending_18; // @[Plic.scala 82:28]
  reg  pending_19; // @[Plic.scala 82:28]
  reg  pending_20; // @[Plic.scala 82:28]
  reg  pending_21; // @[Plic.scala 82:28]
  reg  pending_22; // @[Plic.scala 82:28]
  reg  pending_23; // @[Plic.scala 82:28]
  reg  pending_24; // @[Plic.scala 82:28]
  reg  pending_25; // @[Plic.scala 82:28]
  reg  pending_26; // @[Plic.scala 82:28]
  reg  pending_27; // @[Plic.scala 82:28]
  reg  pending_28; // @[Plic.scala 82:28]
  reg  pending_29; // @[Plic.scala 82:28]
  reg  pending_30; // @[Plic.scala 82:28]
  reg  enables_0_0; // @[Plic.scala 85:65]
  reg  enables_0_1; // @[Plic.scala 85:65]
  reg  enables_0_2; // @[Plic.scala 85:65]
  reg  enables_0_3; // @[Plic.scala 85:65]
  reg  enables_0_4; // @[Plic.scala 85:65]
  reg  enables_0_5; // @[Plic.scala 85:65]
  reg  enables_0_6; // @[Plic.scala 85:65]
  reg  enables_0_7; // @[Plic.scala 85:65]
  reg  enables_0_8; // @[Plic.scala 85:65]
  reg  enables_0_9; // @[Plic.scala 85:65]
  reg  enables_0_10; // @[Plic.scala 85:65]
  reg  enables_0_11; // @[Plic.scala 85:65]
  reg  enables_0_12; // @[Plic.scala 85:65]
  reg  enables_0_13; // @[Plic.scala 85:65]
  reg  enables_0_14; // @[Plic.scala 85:65]
  reg  enables_0_15; // @[Plic.scala 85:65]
  reg  enables_0_16; // @[Plic.scala 85:65]
  reg  enables_0_17; // @[Plic.scala 85:65]
  reg  enables_0_18; // @[Plic.scala 85:65]
  reg  enables_0_19; // @[Plic.scala 85:65]
  reg  enables_0_20; // @[Plic.scala 85:65]
  reg  enables_0_21; // @[Plic.scala 85:65]
  reg  enables_0_22; // @[Plic.scala 85:65]
  reg  enables_0_23; // @[Plic.scala 85:65]
  reg  enables_0_24; // @[Plic.scala 85:65]
  reg  enables_0_25; // @[Plic.scala 85:65]
  reg  enables_0_26; // @[Plic.scala 85:65]
  reg  enables_0_27; // @[Plic.scala 85:65]
  reg  enables_0_28; // @[Plic.scala 85:65]
  reg  enables_0_29; // @[Plic.scala 85:65]
  reg  enables_0_30; // @[Plic.scala 85:65]
  wire [6:0] enableVec_lo_lo = {enables_0_6,enables_0_5,enables_0_4,enables_0_3,enables_0_2,enables_0_1,enables_0_0}; // @[Cat.scala 33:92]
  wire [14:0] enableVec_lo = {enables_0_14,enables_0_13,enables_0_12,enables_0_11,enables_0_10,enables_0_9,enables_0_8,
    enables_0_7,enableVec_lo_lo}; // @[Cat.scala 33:92]
  wire [7:0] enableVec_hi_lo = {enables_0_22,enables_0_21,enables_0_20,enables_0_19,enables_0_18,enables_0_17,
    enables_0_16,enables_0_15}; // @[Cat.scala 33:92]
  wire [30:0] enableVec_0 = {enables_0_30,enables_0_29,enables_0_28,enables_0_27,enables_0_26,enables_0_25,enables_0_24,
    enables_0_23,enableVec_hi_lo,enableVec_lo}; // @[Cat.scala 33:92]
  wire [31:0] enableVec0_0 = {enableVec_0,1'h0}; // @[Cat.scala 33:92]
  reg [4:0] maxDevs_0; // @[Plic.scala 89:22]
  wire [6:0] out_oindex = {out_back_io_deq_bits_index[18],out_back_io_deq_bits_index[10],out_back_io_deq_bits_index[9],
    out_back_io_deq_bits_index[3],out_back_io_deq_bits_index[2],out_back_io_deq_bits_index[1],out_back_io_deq_bits_index
    [0]}; // @[Cat.scala 33:92]
  wire [127:0] _out_backSel_T = 128'h1 << out_oindex; // @[OneHot.scala 57:35]
  wire  out_backSel_64 = _out_backSel_T[64]; // @[RegisterRouter.scala 83:24]
  wire [24:0] out_bindex = out_back_io_deq_bits_index & 25'h1fbf9f0; // @[RegisterRouter.scala 83:24]
  wire  _out_T_29 = out_bindex == 25'h0; // @[RegisterRouter.scala 83:24]
  wire  out_roready_89 = out_back_io_deq_valid & auto_in_d_ready & out_back_io_deq_bits_read & out_backSel_64 &
    out_bindex == 25'h0; // @[RegisterRouter.scala 83:24]
  wire [7:0] _out_backMask_T_23 = out_back_io_deq_bits_mask[7] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _out_backMask_T_21 = out_back_io_deq_bits_mask[6] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _out_backMask_T_19 = out_back_io_deq_bits_mask[5] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _out_backMask_T_17 = out_back_io_deq_bits_mask[4] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _out_backMask_T_15 = out_back_io_deq_bits_mask[3] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _out_backMask_T_13 = out_back_io_deq_bits_mask[2] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _out_backMask_T_11 = out_back_io_deq_bits_mask[1] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [7:0] _out_backMask_T_9 = out_back_io_deq_bits_mask[0] ? 8'hff : 8'h0; // @[Bitwise.scala 77:12]
  wire [63:0] out_backMask = {_out_backMask_T_23,_out_backMask_T_21,_out_backMask_T_19,_out_backMask_T_17,
    _out_backMask_T_15,_out_backMask_T_13,_out_backMask_T_11,_out_backMask_T_9}; // @[Cat.scala 33:92]
  wire  out_romask_89 = |out_backMask[63:32]; // @[RegisterRouter.scala 83:24]
  wire  out_f_roready_89 = out_roready_89 & out_romask_89; // @[RegisterRouter.scala 83:24]
  wire  out_woready_89 = out_back_io_deq_valid & auto_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_64 &
    out_bindex == 25'h0; // @[RegisterRouter.scala 83:24]
  wire  out_womask_89 = &out_backMask[63:32]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_89 = out_woready_89 & out_womask_89; // @[RegisterRouter.scala 83:24]
  wire [4:0] completerDev = out_back_io_deq_bits_data[36:32]; // @[Plic.scala 105:29 207:24]
  wire [31:0] _out_completer_0_T = enableVec0_0 >> completerDev; // @[Plic.scala 208:49]
  wire  completer_0 = out_f_woready_89 & _out_completer_0_T[0]; // @[Plic.scala 208:33]
  wire [4:0] claiming = out_f_roready_89 ? maxDevs_0 : 5'h0; // @[Plic.scala 99:52]
  wire [31:0] _claimedDevs_T = 32'h1 << claiming; // @[OneHot.scala 64:12]
  wire  claimedDevs_1 = _claimedDevs_T[1]; // @[Plic.scala 103:54]
  wire  claimedDevs_2 = _claimedDevs_T[2]; // @[Plic.scala 103:54]
  wire  claimedDevs_3 = _claimedDevs_T[3]; // @[Plic.scala 103:54]
  wire  claimedDevs_4 = _claimedDevs_T[4]; // @[Plic.scala 103:54]
  wire  claimedDevs_5 = _claimedDevs_T[5]; // @[Plic.scala 103:54]
  wire  claimedDevs_6 = _claimedDevs_T[6]; // @[Plic.scala 103:54]
  wire  claimedDevs_7 = _claimedDevs_T[7]; // @[Plic.scala 103:54]
  wire  claimedDevs_8 = _claimedDevs_T[8]; // @[Plic.scala 103:54]
  wire  claimedDevs_9 = _claimedDevs_T[9]; // @[Plic.scala 103:54]
  wire  claimedDevs_10 = _claimedDevs_T[10]; // @[Plic.scala 103:54]
  wire  claimedDevs_11 = _claimedDevs_T[11]; // @[Plic.scala 103:54]
  wire  claimedDevs_12 = _claimedDevs_T[12]; // @[Plic.scala 103:54]
  wire  claimedDevs_13 = _claimedDevs_T[13]; // @[Plic.scala 103:54]
  wire  claimedDevs_14 = _claimedDevs_T[14]; // @[Plic.scala 103:54]
  wire  claimedDevs_15 = _claimedDevs_T[15]; // @[Plic.scala 103:54]
  wire  claimedDevs_16 = _claimedDevs_T[16]; // @[Plic.scala 103:54]
  wire  claimedDevs_17 = _claimedDevs_T[17]; // @[Plic.scala 103:54]
  wire  claimedDevs_18 = _claimedDevs_T[18]; // @[Plic.scala 103:54]
  wire  claimedDevs_19 = _claimedDevs_T[19]; // @[Plic.scala 103:54]
  wire  claimedDevs_20 = _claimedDevs_T[20]; // @[Plic.scala 103:54]
  wire  claimedDevs_21 = _claimedDevs_T[21]; // @[Plic.scala 103:54]
  wire  claimedDevs_22 = _claimedDevs_T[22]; // @[Plic.scala 103:54]
  wire  claimedDevs_23 = _claimedDevs_T[23]; // @[Plic.scala 103:54]
  wire  claimedDevs_24 = _claimedDevs_T[24]; // @[Plic.scala 103:54]
  wire  claimedDevs_25 = _claimedDevs_T[25]; // @[Plic.scala 103:54]
  wire  claimedDevs_26 = _claimedDevs_T[26]; // @[Plic.scala 103:54]
  wire  claimedDevs_27 = _claimedDevs_T[27]; // @[Plic.scala 103:54]
  wire  claimedDevs_28 = _claimedDevs_T[28]; // @[Plic.scala 103:54]
  wire  claimedDevs_29 = _claimedDevs_T[29]; // @[Plic.scala 103:54]
  wire  claimedDevs_30 = _claimedDevs_T[30]; // @[Plic.scala 103:54]
  wire  claimedDevs_31 = _claimedDevs_T[31]; // @[Plic.scala 103:54]
  wire [31:0] _completedDevs_T_2 = 32'h1 << completerDev; // @[OneHot.scala 64:12]
  wire [31:0] completedDevs = completer_0 ? _completedDevs_T_2 : 32'h0; // @[Plic.scala 106:28]
  reg  inFlight_0; // @[Plic.scala 111:27]
  reg  inFlight_1; // @[Plic.scala 111:27]
  reg  inFlight_2; // @[Plic.scala 111:27]
  reg  inFlight_3; // @[Plic.scala 111:27]
  reg  inFlight_4; // @[Plic.scala 111:27]
  reg  inFlight_5; // @[Plic.scala 111:27]
  reg  inFlight_6; // @[Plic.scala 111:27]
  reg  inFlight_7; // @[Plic.scala 111:27]
  reg  inFlight_8; // @[Plic.scala 111:27]
  reg  inFlight_9; // @[Plic.scala 111:27]
  reg  inFlight_10; // @[Plic.scala 111:27]
  reg  inFlight_11; // @[Plic.scala 111:27]
  reg  inFlight_12; // @[Plic.scala 111:27]
  reg  inFlight_13; // @[Plic.scala 111:27]
  reg  inFlight_14; // @[Plic.scala 111:27]
  reg  inFlight_15; // @[Plic.scala 111:27]
  reg  inFlight_16; // @[Plic.scala 111:27]
  reg  inFlight_17; // @[Plic.scala 111:27]
  reg  inFlight_18; // @[Plic.scala 111:27]
  reg  inFlight_19; // @[Plic.scala 111:27]
  reg  inFlight_20; // @[Plic.scala 111:27]
  reg  inFlight_21; // @[Plic.scala 111:27]
  reg  inFlight_22; // @[Plic.scala 111:27]
  reg  inFlight_23; // @[Plic.scala 111:27]
  reg  inFlight_24; // @[Plic.scala 111:27]
  reg  inFlight_25; // @[Plic.scala 111:27]
  reg  inFlight_26; // @[Plic.scala 111:27]
  reg  inFlight_27; // @[Plic.scala 111:27]
  reg  inFlight_28; // @[Plic.scala 111:27]
  reg  inFlight_29; // @[Plic.scala 111:27]
  reg  inFlight_30; // @[Plic.scala 111:27]
  wire  _GEN_0 = io_interrupt_0 & ~pending_0 | inFlight_0; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_2 = io_interrupt_0 & ~inFlight_0 | pending_0; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_4 = io_interrupt_1 & ~pending_1 | inFlight_1; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_6 = io_interrupt_1 & ~inFlight_1 | pending_1; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_8 = io_interrupt_2 & ~pending_2 | inFlight_2; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_10 = io_interrupt_2 & ~inFlight_2 | pending_2; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_12 = io_interrupt_3 & ~pending_3 | inFlight_3; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_14 = io_interrupt_3 & ~inFlight_3 | pending_3; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_16 = io_interrupt_4 & ~pending_4 | inFlight_4; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_18 = io_interrupt_4 & ~inFlight_4 | pending_4; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_20 = io_interrupt_5 & ~pending_5 | inFlight_5; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_22 = io_interrupt_5 & ~inFlight_5 | pending_5; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_24 = io_interrupt_6 & ~pending_6 | inFlight_6; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_26 = io_interrupt_6 & ~inFlight_6 | pending_6; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_28 = io_interrupt_7 & ~pending_7 | inFlight_7; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_30 = io_interrupt_7 & ~inFlight_7 | pending_7; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_32 = io_interrupt_8 & ~pending_8 | inFlight_8; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_34 = io_interrupt_8 & ~inFlight_8 | pending_8; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_36 = io_interrupt_9 & ~pending_9 | inFlight_9; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_38 = io_interrupt_9 & ~inFlight_9 | pending_9; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_40 = io_interrupt_10 & ~pending_10 | inFlight_10; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_42 = io_interrupt_10 & ~inFlight_10 | pending_10; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_44 = io_interrupt_11 & ~pending_11 | inFlight_11; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_46 = io_interrupt_11 & ~inFlight_11 | pending_11; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_48 = io_interrupt_12 & ~pending_12 | inFlight_12; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_50 = io_interrupt_12 & ~inFlight_12 | pending_12; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_52 = io_interrupt_13 & ~pending_13 | inFlight_13; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_54 = io_interrupt_13 & ~inFlight_13 | pending_13; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_56 = io_interrupt_14 & ~pending_14 | inFlight_14; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_58 = io_interrupt_14 & ~inFlight_14 | pending_14; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_60 = io_interrupt_15 & ~pending_15 | inFlight_15; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_62 = io_interrupt_15 & ~inFlight_15 | pending_15; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_64 = io_interrupt_16 & ~pending_16 | inFlight_16; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_66 = io_interrupt_16 & ~inFlight_16 | pending_16; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_68 = io_interrupt_17 & ~pending_17 | inFlight_17; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_70 = io_interrupt_17 & ~inFlight_17 | pending_17; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_72 = io_interrupt_18 & ~pending_18 | inFlight_18; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_74 = io_interrupt_18 & ~inFlight_18 | pending_18; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_76 = io_interrupt_19 & ~pending_19 | inFlight_19; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_78 = io_interrupt_19 & ~inFlight_19 | pending_19; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_80 = io_interrupt_20 & ~pending_20 | inFlight_20; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_82 = io_interrupt_20 & ~inFlight_20 | pending_20; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_84 = io_interrupt_21 & ~pending_21 | inFlight_21; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_86 = io_interrupt_21 & ~inFlight_21 | pending_21; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_88 = io_interrupt_22 & ~pending_22 | inFlight_22; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_90 = io_interrupt_22 & ~inFlight_22 | pending_22; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_92 = io_interrupt_23 & ~pending_23 | inFlight_23; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_94 = io_interrupt_23 & ~inFlight_23 | pending_23; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_96 = io_interrupt_24 & ~pending_24 | inFlight_24; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_98 = io_interrupt_24 & ~inFlight_24 | pending_24; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_100 = io_interrupt_25 & ~pending_25 | inFlight_25; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_102 = io_interrupt_25 & ~inFlight_25 | pending_25; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_104 = io_interrupt_26 & ~pending_26 | inFlight_26; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_106 = io_interrupt_26 & ~inFlight_26 | pending_26; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_108 = io_interrupt_27 & ~pending_27 | inFlight_27; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_110 = io_interrupt_27 & ~inFlight_27 | pending_27; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_112 = io_interrupt_28 & ~pending_28 | inFlight_28; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_114 = io_interrupt_28 & ~inFlight_28 | pending_28; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_116 = io_interrupt_29 & ~pending_29 | inFlight_29; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_118 = io_interrupt_29 & ~inFlight_29 | pending_29; // @[Plic.scala 120:{52,65} 82:28]
  wire  _GEN_120 = io_interrupt_30 & ~pending_30 | inFlight_30; // @[Plic.scala 111:27 117:{51,65}]
  wire  _GEN_122 = io_interrupt_30 & ~inFlight_30 | pending_30; // @[Plic.scala 120:{52,65} 82:28]
  wire  effectivePriority_isActive = enables_0_0 & pending_0; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_1 = {effectivePriority_isActive,priority_0}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_1 = enables_0_1 & pending_1; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_2 = {effectivePriority_isActive_1,priority_1}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_2 = enables_0_2 & pending_2; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_3 = {effectivePriority_isActive_2,priority_2}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_3 = enables_0_3 & pending_3; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_4 = {effectivePriority_isActive_3,priority_3}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_4 = enables_0_4 & pending_4; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_5 = {effectivePriority_isActive_4,priority_4}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_5 = enables_0_5 & pending_5; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_6 = {effectivePriority_isActive_5,priority_5}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_6 = enables_0_6 & pending_6; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_7 = {effectivePriority_isActive_6,priority_6}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_7 = enables_0_7 & pending_7; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_8 = {effectivePriority_isActive_7,priority_7}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_8 = enables_0_8 & pending_8; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_9 = {effectivePriority_isActive_8,priority_8}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_9 = enables_0_9 & pending_9; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_10 = {effectivePriority_isActive_9,priority_9}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_10 = enables_0_10 & pending_10; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_11 = {effectivePriority_isActive_10,priority_10}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_11 = enables_0_11 & pending_11; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_12 = {effectivePriority_isActive_11,priority_11}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_12 = enables_0_12 & pending_12; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_13 = {effectivePriority_isActive_12,priority_12}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_13 = enables_0_13 & pending_13; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_14 = {effectivePriority_isActive_13,priority_13}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_14 = enables_0_14 & pending_14; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_15 = {effectivePriority_isActive_14,priority_14}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_15 = enables_0_15 & pending_15; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_16 = {effectivePriority_isActive_15,priority_15}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_16 = enables_0_16 & pending_16; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_17 = {effectivePriority_isActive_16,priority_16}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_17 = enables_0_17 & pending_17; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_18 = {effectivePriority_isActive_17,priority_17}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_18 = enables_0_18 & pending_18; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_19 = {effectivePriority_isActive_18,priority_18}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_19 = enables_0_19 & pending_19; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_20 = {effectivePriority_isActive_19,priority_19}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_20 = enables_0_20 & pending_20; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_21 = {effectivePriority_isActive_20,priority_20}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_21 = enables_0_21 & pending_21; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_22 = {effectivePriority_isActive_21,priority_21}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_22 = enables_0_22 & pending_22; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_23 = {effectivePriority_isActive_22,priority_22}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_23 = enables_0_23 & pending_23; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_24 = {effectivePriority_isActive_23,priority_23}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_24 = enables_0_24 & pending_24; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_25 = {effectivePriority_isActive_24,priority_24}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_25 = enables_0_25 & pending_25; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_26 = {effectivePriority_isActive_25,priority_25}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_26 = enables_0_26 & pending_26; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_27 = {effectivePriority_isActive_26,priority_26}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_27 = enables_0_27 & pending_27; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_28 = {effectivePriority_isActive_27,priority_27}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_28 = enables_0_28 & pending_28; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_29 = {effectivePriority_isActive_28,priority_28}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_29 = enables_0_29 & pending_29; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_30 = {effectivePriority_isActive_29,priority_29}; // @[Cat.scala 33:92]
  wire  effectivePriority_isActive_30 = enables_0_30 & pending_30; // @[Plic.scala 135:38]
  wire [4:0] effectivePriority_31 = {effectivePriority_isActive_30,priority_30}; // @[Cat.scala 33:92]
  wire [4:0] pri = 5'h10 >= effectivePriority_1 ? 5'h10 : effectivePriority_1; // @[Plic.scala 154:{37,43} 155:25]
  wire  _GEN_125 = 5'h10 >= effectivePriority_1 ? 1'h0 : 1'h1; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] pri_1 = effectivePriority_2 >= effectivePriority_3 ? effectivePriority_2 : effectivePriority_3; // @[Plic.scala 154:{37,43} 155:25]
  wire  _GEN_127 = effectivePriority_2 >= effectivePriority_3 ? 1'h0 : 1'h1; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] dev_1 = {{4'd0}, _GEN_127}; // @[Plic.scala 153:23]
  wire [4:0] _dev_T_2 = 5'h2 | dev_1; // @[Plic.scala 155:52]
  wire [4:0] pri_2 = pri >= pri_1 ? pri : pri_1; // @[Plic.scala 154:{37,43} 155:25]
  wire [4:0] dev = {{4'd0}, _GEN_125}; // @[Plic.scala 153:23]
  wire [4:0] pri_3 = effectivePriority_4 >= effectivePriority_5 ? effectivePriority_4 : effectivePriority_5; // @[Plic.scala 154:{37,43} 155:25]
  wire  _GEN_131 = effectivePriority_4 >= effectivePriority_5 ? 1'h0 : 1'h1; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] pri_4 = effectivePriority_6 >= effectivePriority_7 ? effectivePriority_6 : effectivePriority_7; // @[Plic.scala 154:{37,43} 155:25]
  wire  _GEN_133 = effectivePriority_6 >= effectivePriority_7 ? 1'h0 : 1'h1; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] dev_4 = {{4'd0}, _GEN_133}; // @[Plic.scala 153:23]
  wire [4:0] _dev_T_5 = 5'h2 | dev_4; // @[Plic.scala 155:52]
  wire [4:0] pri_5 = pri_3 >= pri_4 ? pri_3 : pri_4; // @[Plic.scala 154:{37,43} 155:25]
  wire [4:0] dev_3 = {{4'd0}, _GEN_131}; // @[Plic.scala 153:23]
  wire [4:0] dev_5 = pri_3 >= pri_4 ? dev_3 : _dev_T_5; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] _dev_T_6 = 5'h4 | dev_5; // @[Plic.scala 155:52]
  wire [4:0] pri_6 = pri_2 >= pri_5 ? pri_2 : pri_5; // @[Plic.scala 154:{37,43} 155:25]
  wire [4:0] pri_7 = effectivePriority_8 >= effectivePriority_9 ? effectivePriority_8 : effectivePriority_9; // @[Plic.scala 154:{37,43} 155:25]
  wire  _GEN_139 = effectivePriority_8 >= effectivePriority_9 ? 1'h0 : 1'h1; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] pri_8 = effectivePriority_10 >= effectivePriority_11 ? effectivePriority_10 : effectivePriority_11; // @[Plic.scala 154:{37,43} 155:25]
  wire  _GEN_141 = effectivePriority_10 >= effectivePriority_11 ? 1'h0 : 1'h1; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] dev_8 = {{4'd0}, _GEN_141}; // @[Plic.scala 153:23]
  wire [4:0] _dev_T_9 = 5'h2 | dev_8; // @[Plic.scala 155:52]
  wire [4:0] pri_9 = pri_7 >= pri_8 ? pri_7 : pri_8; // @[Plic.scala 154:{37,43} 155:25]
  wire [4:0] dev_7 = {{4'd0}, _GEN_139}; // @[Plic.scala 153:23]
  wire [4:0] dev_9 = pri_7 >= pri_8 ? dev_7 : _dev_T_9; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] pri_10 = effectivePriority_12 >= effectivePriority_13 ? effectivePriority_12 : effectivePriority_13; // @[Plic.scala 154:{37,43} 155:25]
  wire  _GEN_145 = effectivePriority_12 >= effectivePriority_13 ? 1'h0 : 1'h1; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] pri_11 = effectivePriority_14 >= effectivePriority_15 ? effectivePriority_14 : effectivePriority_15; // @[Plic.scala 154:{37,43} 155:25]
  wire  _GEN_147 = effectivePriority_14 >= effectivePriority_15 ? 1'h0 : 1'h1; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] dev_11 = {{4'd0}, _GEN_147}; // @[Plic.scala 153:23]
  wire [4:0] _dev_T_12 = 5'h2 | dev_11; // @[Plic.scala 155:52]
  wire [4:0] pri_12 = pri_10 >= pri_11 ? pri_10 : pri_11; // @[Plic.scala 154:{37,43} 155:25]
  wire [4:0] dev_10 = {{4'd0}, _GEN_145}; // @[Plic.scala 153:23]
  wire [4:0] dev_12 = pri_10 >= pri_11 ? dev_10 : _dev_T_12; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] _dev_T_13 = 5'h4 | dev_12; // @[Plic.scala 155:52]
  wire [4:0] pri_13 = pri_9 >= pri_12 ? pri_9 : pri_12; // @[Plic.scala 154:{37,43} 155:25]
  wire [4:0] dev_13 = pri_9 >= pri_12 ? dev_9 : _dev_T_13; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] _dev_T_14 = 5'h8 | dev_13; // @[Plic.scala 155:52]
  wire [4:0] pri_14 = pri_6 >= pri_13 ? pri_6 : pri_13; // @[Plic.scala 154:{37,43} 155:25]
  wire [4:0] pri_15 = effectivePriority_16 >= effectivePriority_17 ? effectivePriority_16 : effectivePriority_17; // @[Plic.scala 154:{37,43} 155:25]
  wire  _GEN_155 = effectivePriority_16 >= effectivePriority_17 ? 1'h0 : 1'h1; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] pri_16 = effectivePriority_18 >= effectivePriority_19 ? effectivePriority_18 : effectivePriority_19; // @[Plic.scala 154:{37,43} 155:25]
  wire  _GEN_157 = effectivePriority_18 >= effectivePriority_19 ? 1'h0 : 1'h1; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] dev_16 = {{4'd0}, _GEN_157}; // @[Plic.scala 153:23]
  wire [4:0] _dev_T_17 = 5'h2 | dev_16; // @[Plic.scala 155:52]
  wire [4:0] pri_17 = pri_15 >= pri_16 ? pri_15 : pri_16; // @[Plic.scala 154:{37,43} 155:25]
  wire [4:0] dev_15 = {{4'd0}, _GEN_155}; // @[Plic.scala 153:23]
  wire [4:0] dev_17 = pri_15 >= pri_16 ? dev_15 : _dev_T_17; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] pri_18 = effectivePriority_20 >= effectivePriority_21 ? effectivePriority_20 : effectivePriority_21; // @[Plic.scala 154:{37,43} 155:25]
  wire  _GEN_161 = effectivePriority_20 >= effectivePriority_21 ? 1'h0 : 1'h1; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] pri_19 = effectivePriority_22 >= effectivePriority_23 ? effectivePriority_22 : effectivePriority_23; // @[Plic.scala 154:{37,43} 155:25]
  wire  _GEN_163 = effectivePriority_22 >= effectivePriority_23 ? 1'h0 : 1'h1; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] dev_19 = {{4'd0}, _GEN_163}; // @[Plic.scala 153:23]
  wire [4:0] _dev_T_20 = 5'h2 | dev_19; // @[Plic.scala 155:52]
  wire [4:0] pri_20 = pri_18 >= pri_19 ? pri_18 : pri_19; // @[Plic.scala 154:{37,43} 155:25]
  wire [4:0] dev_18 = {{4'd0}, _GEN_161}; // @[Plic.scala 153:23]
  wire [4:0] dev_20 = pri_18 >= pri_19 ? dev_18 : _dev_T_20; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] _dev_T_21 = 5'h4 | dev_20; // @[Plic.scala 155:52]
  wire [4:0] pri_21 = pri_17 >= pri_20 ? pri_17 : pri_20; // @[Plic.scala 154:{37,43} 155:25]
  wire [4:0] dev_21 = pri_17 >= pri_20 ? dev_17 : _dev_T_21; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] pri_22 = effectivePriority_24 >= effectivePriority_25 ? effectivePriority_24 : effectivePriority_25; // @[Plic.scala 154:{37,43} 155:25]
  wire  _GEN_169 = effectivePriority_24 >= effectivePriority_25 ? 1'h0 : 1'h1; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] pri_23 = effectivePriority_26 >= effectivePriority_27 ? effectivePriority_26 : effectivePriority_27; // @[Plic.scala 154:{37,43} 155:25]
  wire  _GEN_171 = effectivePriority_26 >= effectivePriority_27 ? 1'h0 : 1'h1; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] dev_23 = {{4'd0}, _GEN_171}; // @[Plic.scala 153:23]
  wire [4:0] _dev_T_24 = 5'h2 | dev_23; // @[Plic.scala 155:52]
  wire [4:0] pri_24 = pri_22 >= pri_23 ? pri_22 : pri_23; // @[Plic.scala 154:{37,43} 155:25]
  wire [4:0] dev_22 = {{4'd0}, _GEN_169}; // @[Plic.scala 153:23]
  wire [4:0] dev_24 = pri_22 >= pri_23 ? dev_22 : _dev_T_24; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] pri_25 = effectivePriority_28 >= effectivePriority_29 ? effectivePriority_28 : effectivePriority_29; // @[Plic.scala 154:{37,43} 155:25]
  wire  _GEN_175 = effectivePriority_28 >= effectivePriority_29 ? 1'h0 : 1'h1; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] pri_26 = effectivePriority_30 >= effectivePriority_31 ? effectivePriority_30 : effectivePriority_31; // @[Plic.scala 154:{37,43} 155:25]
  wire  _GEN_177 = effectivePriority_30 >= effectivePriority_31 ? 1'h0 : 1'h1; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] dev_26 = {{4'd0}, _GEN_177}; // @[Plic.scala 153:23]
  wire [4:0] _dev_T_27 = 5'h2 | dev_26; // @[Plic.scala 155:52]
  wire [4:0] pri_27 = pri_25 >= pri_26 ? pri_25 : pri_26; // @[Plic.scala 154:{37,43} 155:25]
  wire [4:0] dev_25 = {{4'd0}, _GEN_175}; // @[Plic.scala 153:23]
  wire [4:0] dev_27 = pri_25 >= pri_26 ? dev_25 : _dev_T_27; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] _dev_T_28 = 5'h4 | dev_27; // @[Plic.scala 155:52]
  wire [4:0] pri_28 = pri_24 >= pri_27 ? pri_24 : pri_27; // @[Plic.scala 154:{37,43} 155:25]
  wire [4:0] dev_28 = pri_24 >= pri_27 ? dev_24 : _dev_T_28; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] _dev_T_29 = 5'h8 | dev_28; // @[Plic.scala 155:52]
  wire [4:0] pri_29 = pri_21 >= pri_28 ? pri_21 : pri_28; // @[Plic.scala 154:{37,43} 155:25]
  wire [4:0] dev_29 = pri_21 >= pri_28 ? dev_21 : _dev_T_29; // @[Plic.scala 154:{37,59} 155:42]
  wire [4:0] _dev_T_30 = 5'h10 | dev_29; // @[Plic.scala 155:52]
  wire [4:0] maxPri = pri_14 >= pri_29 ? pri_14 : pri_29; // @[Plic.scala 154:{37,43} 155:25]
  reg [3:0] io_context_0_REG; // @[Plic.scala 140:45]
  reg  io_context_0_r; // @[Reg.scala 19:16]
  reg  io_context_0_r_1; // @[Reg.scala 19:16]
  wire  out_backSel_32 = _out_backSel_T[32]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_1 = out_back_io_deq_valid & auto_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_32 &
    out_bindex == 25'h0; // @[RegisterRouter.scala 83:24]
  wire  out_womask_1 = &out_backMask[1]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_1 = out_woready_1 & out_womask_1; // @[RegisterRouter.scala 83:24]
  wire  out_womask_2 = &out_backMask[2]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_2 = out_woready_1 & out_womask_2; // @[RegisterRouter.scala 83:24]
  wire  out_womask_3 = &out_backMask[3]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_3 = out_woready_1 & out_womask_3; // @[RegisterRouter.scala 83:24]
  wire  out_womask_4 = &out_backMask[4]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_4 = out_woready_1 & out_womask_4; // @[RegisterRouter.scala 83:24]
  wire  out_womask_5 = &out_backMask[5]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_5 = out_woready_1 & out_womask_5; // @[RegisterRouter.scala 83:24]
  wire  out_womask_6 = &out_backMask[6]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_6 = out_woready_1 & out_womask_6; // @[RegisterRouter.scala 83:24]
  wire  out_womask_7 = &out_backMask[7]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_7 = out_woready_1 & out_womask_7; // @[RegisterRouter.scala 83:24]
  wire  out_womask_8 = &out_backMask[8]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_8 = out_woready_1 & out_womask_8; // @[RegisterRouter.scala 83:24]
  wire  out_womask_9 = &out_backMask[9]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_9 = out_woready_1 & out_womask_9; // @[RegisterRouter.scala 83:24]
  wire [9:0] out_prepend_8 = {enables_0_8,enables_0_7,enables_0_6,enables_0_5,enables_0_4,enables_0_3,enables_0_2,
    enables_0_1,enables_0_0,1'h0}; // @[Cat.scala 33:92]
  wire  out_womask_10 = &out_backMask[10]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_10 = out_woready_1 & out_womask_10; // @[RegisterRouter.scala 83:24]
  wire  out_womask_11 = &out_backMask[11]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_11 = out_woready_1 & out_womask_11; // @[RegisterRouter.scala 83:24]
  wire  out_womask_12 = &out_backMask[12]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_12 = out_woready_1 & out_womask_12; // @[RegisterRouter.scala 83:24]
  wire  out_womask_13 = &out_backMask[13]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_13 = out_woready_1 & out_womask_13; // @[RegisterRouter.scala 83:24]
  wire  out_womask_14 = &out_backMask[14]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_14 = out_woready_1 & out_womask_14; // @[RegisterRouter.scala 83:24]
  wire  out_womask_15 = &out_backMask[15]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_15 = out_woready_1 & out_womask_15; // @[RegisterRouter.scala 83:24]
  wire  out_womask_16 = &out_backMask[16]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_16 = out_woready_1 & out_womask_16; // @[RegisterRouter.scala 83:24]
  wire  out_womask_17 = &out_backMask[17]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_17 = out_woready_1 & out_womask_17; // @[RegisterRouter.scala 83:24]
  wire  out_womask_18 = &out_backMask[18]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_18 = out_woready_1 & out_womask_18; // @[RegisterRouter.scala 83:24]
  wire [18:0] out_prepend_17 = {enables_0_17,enables_0_16,enables_0_15,enables_0_14,enables_0_13,enables_0_12,
    enables_0_11,enables_0_10,enables_0_9,out_prepend_8}; // @[Cat.scala 33:92]
  wire  out_womask_19 = &out_backMask[19]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_19 = out_woready_1 & out_womask_19; // @[RegisterRouter.scala 83:24]
  wire  out_womask_20 = &out_backMask[20]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_20 = out_woready_1 & out_womask_20; // @[RegisterRouter.scala 83:24]
  wire  out_womask_21 = &out_backMask[21]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_21 = out_woready_1 & out_womask_21; // @[RegisterRouter.scala 83:24]
  wire  out_womask_22 = &out_backMask[22]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_22 = out_woready_1 & out_womask_22; // @[RegisterRouter.scala 83:24]
  wire  out_womask_23 = &out_backMask[23]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_23 = out_woready_1 & out_womask_23; // @[RegisterRouter.scala 83:24]
  wire  out_womask_24 = &out_backMask[24]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_24 = out_woready_1 & out_womask_24; // @[RegisterRouter.scala 83:24]
  wire  out_womask_25 = &out_backMask[25]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_25 = out_woready_1 & out_womask_25; // @[RegisterRouter.scala 83:24]
  wire  out_womask_26 = &out_backMask[26]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_26 = out_woready_1 & out_womask_26; // @[RegisterRouter.scala 83:24]
  wire  out_womask_27 = &out_backMask[27]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_27 = out_woready_1 & out_womask_27; // @[RegisterRouter.scala 83:24]
  wire [27:0] out_prepend_26 = {enables_0_26,enables_0_25,enables_0_24,enables_0_23,enables_0_22,enables_0_21,
    enables_0_20,enables_0_19,enables_0_18,out_prepend_17}; // @[Cat.scala 33:92]
  wire  out_womask_28 = &out_backMask[28]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_28 = out_woready_1 & out_womask_28; // @[RegisterRouter.scala 83:24]
  wire  out_womask_29 = &out_backMask[29]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_29 = out_woready_1 & out_womask_29; // @[RegisterRouter.scala 83:24]
  wire  out_womask_30 = &out_backMask[30]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_30 = out_woready_1 & out_womask_30; // @[RegisterRouter.scala 83:24]
  wire  out_womask_31 = &out_backMask[31]; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_31 = out_woready_1 & out_womask_31; // @[RegisterRouter.scala 83:24]
  wire [31:0] out_prepend_30 = {enables_0_30,enables_0_29,enables_0_28,enables_0_27,out_prepend_26}; // @[Cat.scala 33:92]
  wire  out_backSel_0 = _out_backSel_T[0]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_33 = out_back_io_deq_valid & auto_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_0 &
    out_bindex == 25'h0; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_33 = out_woready_33 & out_womask_89; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_219 = out_f_woready_33 ? out_back_io_deq_bits_data[63:32] : {{28'd0}, priority_0}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [35:0] out_prepend_31 = {priority_0,32'h0}; // @[Cat.scala 33:92]
  wire [63:0] _out_T_406 = {{28'd0}, out_prepend_31}; // @[RegisterRouter.scala 83:24]
  wire  out_womask_34 = &out_backMask[31:0]; // @[RegisterRouter.scala 83:24]
  wire  out_backSel_5 = _out_backSel_T[5]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_34 = out_back_io_deq_valid & auto_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_5 &
    out_bindex == 25'h0; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_34 = out_woready_34 & out_womask_34; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_220 = out_f_woready_34 ? out_back_io_deq_bits_data[31:0] : {{28'd0}, priority_9}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [31:0] _out_T_417 = {{28'd0}, priority_9}; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_35 = out_woready_34 & out_womask_89; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_221 = out_f_woready_35 ? out_back_io_deq_bits_data[63:32] : {{28'd0}, priority_10}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [35:0] out_prepend_32 = {priority_10,_out_T_417}; // @[Cat.scala 33:92]
  wire [63:0] _out_T_428 = {{28'd0}, out_prepend_32}; // @[RegisterRouter.scala 83:24]
  wire  out_backSel_10 = _out_backSel_T[10]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_36 = out_back_io_deq_valid & auto_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_10 &
    out_bindex == 25'h0; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_36 = out_woready_36 & out_womask_34; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_222 = out_f_woready_36 ? out_back_io_deq_bits_data[31:0] : {{28'd0}, priority_19}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [31:0] _out_T_439 = {{28'd0}, priority_19}; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_37 = out_woready_36 & out_womask_89; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_223 = out_f_woready_37 ? out_back_io_deq_bits_data[63:32] : {{28'd0}, priority_20}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [35:0] out_prepend_33 = {priority_20,_out_T_439}; // @[Cat.scala 33:92]
  wire [63:0] _out_T_450 = {{28'd0}, out_prepend_33}; // @[RegisterRouter.scala 83:24]
  wire  out_backSel_14 = _out_backSel_T[14]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_38 = out_back_io_deq_valid & auto_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_14 &
    out_bindex == 25'h0; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_38 = out_woready_38 & out_womask_34; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_224 = out_f_woready_38 ? out_back_io_deq_bits_data[31:0] : {{28'd0}, priority_27}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [31:0] _out_T_461 = {{28'd0}, priority_27}; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_39 = out_woready_38 & out_womask_89; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_225 = out_f_woready_39 ? out_back_io_deq_bits_data[63:32] : {{28'd0}, priority_28}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [35:0] out_prepend_34 = {priority_28,_out_T_461}; // @[Cat.scala 33:92]
  wire [63:0] _out_T_472 = {{28'd0}, out_prepend_34}; // @[RegisterRouter.scala 83:24]
  wire  out_backSel_1 = _out_backSel_T[1]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_40 = out_back_io_deq_valid & auto_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_1 &
    out_bindex == 25'h0; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_40 = out_woready_40 & out_womask_34; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_226 = out_f_woready_40 ? out_back_io_deq_bits_data[31:0] : {{28'd0}, priority_1}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [31:0] _out_T_483 = {{28'd0}, priority_1}; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_41 = out_woready_40 & out_womask_89; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_227 = out_f_woready_41 ? out_back_io_deq_bits_data[63:32] : {{28'd0}, priority_2}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [35:0] out_prepend_35 = {priority_2,_out_T_483}; // @[Cat.scala 33:92]
  wire [63:0] _out_T_494 = {{28'd0}, out_prepend_35}; // @[RegisterRouter.scala 83:24]
  wire  out_backSel_6 = _out_backSel_T[6]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_42 = out_back_io_deq_valid & auto_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_6 &
    out_bindex == 25'h0; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_42 = out_woready_42 & out_womask_34; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_228 = out_f_woready_42 ? out_back_io_deq_bits_data[31:0] : {{28'd0}, priority_11}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [31:0] _out_T_505 = {{28'd0}, priority_11}; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_43 = out_woready_42 & out_womask_89; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_229 = out_f_woready_43 ? out_back_io_deq_bits_data[63:32] : {{28'd0}, priority_12}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [35:0] out_prepend_36 = {priority_12,_out_T_505}; // @[Cat.scala 33:92]
  wire [63:0] _out_T_516 = {{28'd0}, out_prepend_36}; // @[RegisterRouter.scala 83:24]
  wire [9:0] out_prepend_45 = {pending_8,pending_7,pending_6,pending_5,pending_4,pending_3,pending_2,pending_1,pending_0
    ,1'h0}; // @[Cat.scala 33:92]
  wire [18:0] out_prepend_54 = {pending_17,pending_16,pending_15,pending_14,pending_13,pending_12,pending_11,pending_10,
    pending_9,out_prepend_45}; // @[Cat.scala 33:92]
  wire [27:0] out_prepend_63 = {pending_26,pending_25,pending_24,pending_23,pending_22,pending_21,pending_20,pending_19,
    pending_18,out_prepend_54}; // @[Cat.scala 33:92]
  wire [31:0] out_prepend_67 = {pending_30,pending_29,pending_28,pending_27,out_prepend_63}; // @[Cat.scala 33:92]
  wire  out_backSel_9 = _out_backSel_T[9]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_76 = out_back_io_deq_valid & auto_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_9 &
    out_bindex == 25'h0; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_76 = out_woready_76 & out_womask_34; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_230 = out_f_woready_76 ? out_back_io_deq_bits_data[31:0] : {{28'd0}, priority_17}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [31:0] _out_T_815 = {{28'd0}, priority_17}; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_77 = out_woready_76 & out_womask_89; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_231 = out_f_woready_77 ? out_back_io_deq_bits_data[63:32] : {{28'd0}, priority_18}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [35:0] out_prepend_68 = {priority_18,_out_T_815}; // @[Cat.scala 33:92]
  wire [63:0] _out_T_826 = {{28'd0}, out_prepend_68}; // @[RegisterRouter.scala 83:24]
  wire  out_backSel_13 = _out_backSel_T[13]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_78 = out_back_io_deq_valid & auto_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_13 &
    out_bindex == 25'h0; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_78 = out_woready_78 & out_womask_34; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_232 = out_f_woready_78 ? out_back_io_deq_bits_data[31:0] : {{28'd0}, priority_25}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [31:0] _out_T_837 = {{28'd0}, priority_25}; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_79 = out_woready_78 & out_womask_89; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_233 = out_f_woready_79 ? out_back_io_deq_bits_data[63:32] : {{28'd0}, priority_26}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [35:0] out_prepend_69 = {priority_26,_out_T_837}; // @[Cat.scala 33:92]
  wire [63:0] _out_T_848 = {{28'd0}, out_prepend_69}; // @[RegisterRouter.scala 83:24]
  wire  out_backSel_2 = _out_backSel_T[2]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_80 = out_back_io_deq_valid & auto_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_2 &
    out_bindex == 25'h0; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_80 = out_woready_80 & out_womask_34; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_234 = out_f_woready_80 ? out_back_io_deq_bits_data[31:0] : {{28'd0}, priority_3}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [31:0] _out_T_859 = {{28'd0}, priority_3}; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_81 = out_woready_80 & out_womask_89; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_235 = out_f_woready_81 ? out_back_io_deq_bits_data[63:32] : {{28'd0}, priority_4}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [35:0] out_prepend_70 = {priority_4,_out_T_859}; // @[Cat.scala 33:92]
  wire [63:0] _out_T_870 = {{28'd0}, out_prepend_70}; // @[RegisterRouter.scala 83:24]
  wire  out_backSel_12 = _out_backSel_T[12]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_82 = out_back_io_deq_valid & auto_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_12 &
    out_bindex == 25'h0; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_82 = out_woready_82 & out_womask_34; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_236 = out_f_woready_82 ? out_back_io_deq_bits_data[31:0] : {{28'd0}, priority_23}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [31:0] _out_T_881 = {{28'd0}, priority_23}; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_83 = out_woready_82 & out_womask_89; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_237 = out_f_woready_83 ? out_back_io_deq_bits_data[63:32] : {{28'd0}, priority_24}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [35:0] out_prepend_71 = {priority_24,_out_T_881}; // @[Cat.scala 33:92]
  wire [63:0] _out_T_892 = {{28'd0}, out_prepend_71}; // @[RegisterRouter.scala 83:24]
  wire  out_backSel_7 = _out_backSel_T[7]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_84 = out_back_io_deq_valid & auto_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_7 &
    out_bindex == 25'h0; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_84 = out_woready_84 & out_womask_34; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_238 = out_f_woready_84 ? out_back_io_deq_bits_data[31:0] : {{28'd0}, priority_13}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [31:0] _out_T_903 = {{28'd0}, priority_13}; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_85 = out_woready_84 & out_womask_89; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_239 = out_f_woready_85 ? out_back_io_deq_bits_data[63:32] : {{28'd0}, priority_14}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [35:0] out_prepend_72 = {priority_14,_out_T_903}; // @[Cat.scala 33:92]
  wire [63:0] _out_T_914 = {{28'd0}, out_prepend_72}; // @[RegisterRouter.scala 83:24]
  wire  out_backSel_3 = _out_backSel_T[3]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_86 = out_back_io_deq_valid & auto_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_3 &
    out_bindex == 25'h0; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_86 = out_woready_86 & out_womask_34; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_240 = out_f_woready_86 ? out_back_io_deq_bits_data[31:0] : {{28'd0}, priority_5}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [31:0] _out_T_925 = {{28'd0}, priority_5}; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_87 = out_woready_86 & out_womask_89; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_241 = out_f_woready_87 ? out_back_io_deq_bits_data[63:32] : {{28'd0}, priority_6}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [35:0] out_prepend_73 = {priority_6,_out_T_925}; // @[Cat.scala 33:92]
  wire [63:0] _out_T_936 = {{28'd0}, out_prepend_73}; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_88 = out_woready_89 & out_womask_34; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_242 = out_f_woready_88 ? out_back_io_deq_bits_data[31:0] : {{28'd0}, threshold_0}; // @[RegField.scala 74:{88,92} Plic.scala 80:24]
  wire [31:0] _out_T_947 = {{28'd0}, threshold_0}; // @[RegisterRouter.scala 83:24]
  wire [36:0] out_prepend_74 = {maxDevs_0,_out_T_947}; // @[Cat.scala 33:92]
  wire [63:0] _out_T_958 = {{27'd0}, out_prepend_74}; // @[RegisterRouter.scala 83:24]
  wire  out_backSel_11 = _out_backSel_T[11]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_90 = out_back_io_deq_valid & auto_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_11 &
    out_bindex == 25'h0; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_90 = out_woready_90 & out_womask_34; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_243 = out_f_woready_90 ? out_back_io_deq_bits_data[31:0] : {{28'd0}, priority_21}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [31:0] _out_T_969 = {{28'd0}, priority_21}; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_91 = out_woready_90 & out_womask_89; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_244 = out_f_woready_91 ? out_back_io_deq_bits_data[63:32] : {{28'd0}, priority_22}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [35:0] out_prepend_75 = {priority_22,_out_T_969}; // @[Cat.scala 33:92]
  wire [63:0] _out_T_980 = {{28'd0}, out_prepend_75}; // @[RegisterRouter.scala 83:24]
  wire  out_backSel_8 = _out_backSel_T[8]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_92 = out_back_io_deq_valid & auto_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_8 &
    out_bindex == 25'h0; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_92 = out_woready_92 & out_womask_34; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_245 = out_f_woready_92 ? out_back_io_deq_bits_data[31:0] : {{28'd0}, priority_15}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [31:0] _out_T_991 = {{28'd0}, priority_15}; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_93 = out_woready_92 & out_womask_89; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_246 = out_f_woready_93 ? out_back_io_deq_bits_data[63:32] : {{28'd0}, priority_16}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [35:0] out_prepend_76 = {priority_16,_out_T_991}; // @[Cat.scala 33:92]
  wire [63:0] _out_T_1002 = {{28'd0}, out_prepend_76}; // @[RegisterRouter.scala 83:24]
  wire  out_backSel_4 = _out_backSel_T[4]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_94 = out_back_io_deq_valid & auto_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_4 &
    out_bindex == 25'h0; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_94 = out_woready_94 & out_womask_34; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_247 = out_f_woready_94 ? out_back_io_deq_bits_data[31:0] : {{28'd0}, priority_7}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [31:0] _out_T_1013 = {{28'd0}, priority_7}; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_95 = out_woready_94 & out_womask_89; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_248 = out_f_woready_95 ? out_back_io_deq_bits_data[63:32] : {{28'd0}, priority_8}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [35:0] out_prepend_77 = {priority_8,_out_T_1013}; // @[Cat.scala 33:92]
  wire [63:0] _out_T_1024 = {{28'd0}, out_prepend_77}; // @[RegisterRouter.scala 83:24]
  wire  out_backSel_15 = _out_backSel_T[15]; // @[RegisterRouter.scala 83:24]
  wire  out_woready_96 = out_back_io_deq_valid & auto_in_d_ready & ~out_back_io_deq_bits_read & out_backSel_15 &
    out_bindex == 25'h0; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_96 = out_woready_96 & out_womask_34; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_249 = out_f_woready_96 ? out_back_io_deq_bits_data[31:0] : {{28'd0}, priority_29}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [31:0] _out_T_1035 = {{28'd0}, priority_29}; // @[RegisterRouter.scala 83:24]
  wire  out_f_woready_97 = out_woready_96 & out_womask_89; // @[RegisterRouter.scala 83:24]
  wire [31:0] _GEN_250 = out_f_woready_97 ? out_back_io_deq_bits_data[63:32] : {{28'd0}, priority_30}; // @[RegField.scala 74:{88,92} Plic.scala 78:24]
  wire [35:0] out_prepend_78 = {priority_30,_out_T_1035}; // @[Cat.scala 33:92]
  wire [63:0] _out_T_1046 = {{28'd0}, out_prepend_78}; // @[RegisterRouter.scala 83:24]
  wire  _GEN_763 = 7'h40 == out_oindex ? _out_T_29 : 1'h1; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_764 = 7'h20 == out_oindex ? _out_T_29 : _GEN_763; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_765 = 7'h10 == out_oindex ? _out_T_29 : _GEN_764; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_766 = 7'hf == out_oindex ? _out_T_29 : _GEN_765; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_767 = 7'he == out_oindex ? _out_T_29 : _GEN_766; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_768 = 7'hd == out_oindex ? _out_T_29 : _GEN_767; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_769 = 7'hc == out_oindex ? _out_T_29 : _GEN_768; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_770 = 7'hb == out_oindex ? _out_T_29 : _GEN_769; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_771 = 7'ha == out_oindex ? _out_T_29 : _GEN_770; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_772 = 7'h9 == out_oindex ? _out_T_29 : _GEN_771; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_773 = 7'h8 == out_oindex ? _out_T_29 : _GEN_772; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_774 = 7'h7 == out_oindex ? _out_T_29 : _GEN_773; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_775 = 7'h6 == out_oindex ? _out_T_29 : _GEN_774; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_776 = 7'h5 == out_oindex ? _out_T_29 : _GEN_775; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_777 = 7'h4 == out_oindex ? _out_T_29 : _GEN_776; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_778 = 7'h3 == out_oindex ? _out_T_29 : _GEN_777; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_779 = 7'h2 == out_oindex ? _out_T_29 : _GEN_778; // @[MuxLiteral.scala 53:{26,32}]
  wire  _GEN_780 = 7'h1 == out_oindex ? _out_T_29 : _GEN_779; // @[MuxLiteral.scala 53:{26,32}]
  wire  out_out_bits_data_out = 7'h0 == out_oindex ? _out_T_29 : _GEN_780; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_782 = 7'h40 == out_oindex ? _out_T_958 : 64'h0; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_783 = 7'h20 == out_oindex ? {{32'd0}, out_prepend_30} : _GEN_782; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_784 = 7'h10 == out_oindex ? {{32'd0}, out_prepend_67} : _GEN_783; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_785 = 7'hf == out_oindex ? _out_T_1046 : _GEN_784; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_786 = 7'he == out_oindex ? _out_T_472 : _GEN_785; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_787 = 7'hd == out_oindex ? _out_T_848 : _GEN_786; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_788 = 7'hc == out_oindex ? _out_T_892 : _GEN_787; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_789 = 7'hb == out_oindex ? _out_T_980 : _GEN_788; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_790 = 7'ha == out_oindex ? _out_T_450 : _GEN_789; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_791 = 7'h9 == out_oindex ? _out_T_826 : _GEN_790; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_792 = 7'h8 == out_oindex ? _out_T_1002 : _GEN_791; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_793 = 7'h7 == out_oindex ? _out_T_914 : _GEN_792; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_794 = 7'h6 == out_oindex ? _out_T_516 : _GEN_793; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_795 = 7'h5 == out_oindex ? _out_T_428 : _GEN_794; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_796 = 7'h4 == out_oindex ? _out_T_1024 : _GEN_795; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_797 = 7'h3 == out_oindex ? _out_T_936 : _GEN_796; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_798 = 7'h2 == out_oindex ? _out_T_870 : _GEN_797; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] _GEN_799 = 7'h1 == out_oindex ? _out_T_494 : _GEN_798; // @[MuxLiteral.scala 53:{26,32}]
  wire [63:0] out_out_bits_data_out_1 = 7'h0 == out_oindex ? _out_T_406 : _GEN_799; // @[MuxLiteral.scala 53:{26,32}]
  wire  out_bits_read = out_back_io_deq_bits_read; // @[RegisterRouter.scala 83:{24,24}]
  TLMonitor_17 monitor ( // @[Nodes.scala 24:25]
    .clock(monitor_clock),
    .reset(monitor_reset),
    .io_in_a_ready(monitor_io_in_a_ready),
    .io_in_a_valid(monitor_io_in_a_valid),
    .io_in_a_bits_opcode(monitor_io_in_a_bits_opcode),
    .io_in_a_bits_address(monitor_io_in_a_bits_address),
    .io_in_a_bits_mask(monitor_io_in_a_bits_mask),
    .io_in_d_ready(monitor_io_in_d_ready),
    .io_in_d_valid(monitor_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_io_in_d_bits_opcode),
    .io_in_d_bits_size(monitor_io_in_d_bits_size),
    .io_in_d_bits_source(monitor_io_in_d_bits_source)
  );
  Queue_43 out_back ( // @[Decoupled.scala 377:21]
    .clock(out_back_clock),
    .reset(out_back_reset),
    .io_enq_ready(out_back_io_enq_ready),
    .io_enq_valid(out_back_io_enq_valid),
    .io_enq_bits_read(out_back_io_enq_bits_read),
    .io_enq_bits_index(out_back_io_enq_bits_index),
    .io_enq_bits_data(out_back_io_enq_bits_data),
    .io_enq_bits_mask(out_back_io_enq_bits_mask),
    .io_deq_ready(out_back_io_deq_ready),
    .io_deq_valid(out_back_io_deq_valid),
    .io_deq_bits_read(out_back_io_deq_bits_read),
    .io_deq_bits_index(out_back_io_deq_bits_index),
    .io_deq_bits_data(out_back_io_deq_bits_data),
    .io_deq_bits_mask(out_back_io_deq_bits_mask),
    .io_deq_bits_extra_tlrr_extra_source(out_back_io_deq_bits_extra_tlrr_extra_source),
    .io_deq_bits_extra_tlrr_extra_size(out_back_io_deq_bits_extra_tlrr_extra_size)
  );
  assign auto_in_a_ready = out_back_io_enq_ready; // @[Decoupled.scala 381:17 RegisterRouter.scala 83:24]
  assign auto_in_d_valid = out_back_io_deq_valid; // @[RegisterRouter.scala 83:24]
  assign auto_in_d_bits_opcode = {{2'd0}, out_bits_read}; // @[Nodes.scala 1210:84 RegisterRouter.scala 98:19]
  assign auto_in_d_bits_size = out_back_io_deq_bits_extra_tlrr_extra_size; // @[RegisterRouter.scala 83:{24,24}]
  assign auto_in_d_bits_data = out_out_bits_data_out ? out_out_bits_data_out_1 : 64'h0; // @[RegisterRouter.scala 83:24]
  assign io_context_0 = io_context_0_r_1; // @[Plic.scala 140:21]
  assign monitor_clock = clock;
  assign monitor_reset = reset;
  assign monitor_io_in_a_ready = out_back_io_enq_ready; // @[Decoupled.scala 381:17 RegisterRouter.scala 83:24]
  assign monitor_io_in_a_valid = auto_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_opcode = auto_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_mask = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_ready = auto_in_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_valid = out_back_io_deq_valid; // @[RegisterRouter.scala 83:24]
  assign monitor_io_in_d_bits_opcode = {{2'd0}, out_bits_read}; // @[Nodes.scala 1210:84 RegisterRouter.scala 98:19]
  assign monitor_io_in_d_bits_size = out_back_io_deq_bits_extra_tlrr_extra_size; // @[RegisterRouter.scala 83:{24,24}]
  assign monitor_io_in_d_bits_source = out_back_io_deq_bits_extra_tlrr_extra_source; // @[RegisterRouter.scala 83:{24,24}]
  assign out_back_clock = clock;
  assign out_back_reset = reset;
  assign out_back_io_enq_valid = auto_in_a_valid; // @[RegisterRouter.scala 83:24]
  assign out_back_io_enq_bits_read = auto_in_a_bits_opcode == 3'h4; // @[RegisterRouter.scala 72:36]
  assign out_back_io_enq_bits_index = auto_in_a_bits_address[27:3]; // @[RegisterRouter.scala 71:18 73:19]
  assign out_back_io_enq_bits_data = auto_in_a_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign out_back_io_enq_bits_mask = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign out_back_io_deq_ready = auto_in_d_ready; // @[RegisterRouter.scala 83:24]
  always @(posedge clock) begin
    priority_0 <= _GEN_219[3:0];
    priority_1 <= _GEN_226[3:0];
    priority_2 <= _GEN_227[3:0];
    priority_3 <= _GEN_234[3:0];
    priority_4 <= _GEN_235[3:0];
    priority_5 <= _GEN_240[3:0];
    priority_6 <= _GEN_241[3:0];
    priority_7 <= _GEN_247[3:0];
    priority_8 <= _GEN_248[3:0];
    priority_9 <= _GEN_220[3:0];
    priority_10 <= _GEN_221[3:0];
    priority_11 <= _GEN_228[3:0];
    priority_12 <= _GEN_229[3:0];
    priority_13 <= _GEN_238[3:0];
    priority_14 <= _GEN_239[3:0];
    priority_15 <= _GEN_245[3:0];
    priority_16 <= _GEN_246[3:0];
    priority_17 <= _GEN_230[3:0];
    priority_18 <= _GEN_231[3:0];
    priority_19 <= _GEN_222[3:0];
    priority_20 <= _GEN_223[3:0];
    priority_21 <= _GEN_243[3:0];
    priority_22 <= _GEN_244[3:0];
    priority_23 <= _GEN_236[3:0];
    priority_24 <= _GEN_237[3:0];
    priority_25 <= _GEN_232[3:0];
    priority_26 <= _GEN_233[3:0];
    priority_27 <= _GEN_224[3:0];
    priority_28 <= _GEN_225[3:0];
    priority_29 <= _GEN_249[3:0];
    priority_30 <= _GEN_250[3:0];
    threshold_0 <= _GEN_242[3:0];
    if (reset) begin // @[Plic.scala 82:28]
      pending_0 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_1) begin // @[Plic.scala 119:33]
      pending_0 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_0 <= _GEN_2;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_1 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_2) begin // @[Plic.scala 119:33]
      pending_1 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_1 <= _GEN_6;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_2 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_3) begin // @[Plic.scala 119:33]
      pending_2 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_2 <= _GEN_10;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_3 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_4) begin // @[Plic.scala 119:33]
      pending_3 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_3 <= _GEN_14;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_4 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_5) begin // @[Plic.scala 119:33]
      pending_4 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_4 <= _GEN_18;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_5 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_6) begin // @[Plic.scala 119:33]
      pending_5 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_5 <= _GEN_22;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_6 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_7) begin // @[Plic.scala 119:33]
      pending_6 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_6 <= _GEN_26;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_7 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_8) begin // @[Plic.scala 119:33]
      pending_7 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_7 <= _GEN_30;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_8 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_9) begin // @[Plic.scala 119:33]
      pending_8 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_8 <= _GEN_34;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_9 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_10) begin // @[Plic.scala 119:33]
      pending_9 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_9 <= _GEN_38;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_10 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_11) begin // @[Plic.scala 119:33]
      pending_10 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_10 <= _GEN_42;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_11 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_12) begin // @[Plic.scala 119:33]
      pending_11 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_11 <= _GEN_46;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_12 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_13) begin // @[Plic.scala 119:33]
      pending_12 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_12 <= _GEN_50;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_13 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_14) begin // @[Plic.scala 119:33]
      pending_13 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_13 <= _GEN_54;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_14 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_15) begin // @[Plic.scala 119:33]
      pending_14 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_14 <= _GEN_58;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_15 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_16) begin // @[Plic.scala 119:33]
      pending_15 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_15 <= _GEN_62;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_16 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_17) begin // @[Plic.scala 119:33]
      pending_16 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_16 <= _GEN_66;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_17 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_18) begin // @[Plic.scala 119:33]
      pending_17 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_17 <= _GEN_70;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_18 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_19) begin // @[Plic.scala 119:33]
      pending_18 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_18 <= _GEN_74;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_19 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_20) begin // @[Plic.scala 119:33]
      pending_19 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_19 <= _GEN_78;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_20 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_21) begin // @[Plic.scala 119:33]
      pending_20 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_20 <= _GEN_82;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_21 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_22) begin // @[Plic.scala 119:33]
      pending_21 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_21 <= _GEN_86;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_22 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_23) begin // @[Plic.scala 119:33]
      pending_22 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_22 <= _GEN_90;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_23 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_24) begin // @[Plic.scala 119:33]
      pending_23 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_23 <= _GEN_94;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_24 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_25) begin // @[Plic.scala 119:33]
      pending_24 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_24 <= _GEN_98;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_25 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_26) begin // @[Plic.scala 119:33]
      pending_25 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_25 <= _GEN_102;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_26 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_27) begin // @[Plic.scala 119:33]
      pending_26 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_26 <= _GEN_106;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_27 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_28) begin // @[Plic.scala 119:33]
      pending_27 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_27 <= _GEN_110;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_28 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_29) begin // @[Plic.scala 119:33]
      pending_28 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_28 <= _GEN_114;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_29 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_30) begin // @[Plic.scala 119:33]
      pending_29 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_29 <= _GEN_118;
    end
    if (reset) begin // @[Plic.scala 82:28]
      pending_30 <= 1'h0; // @[Plic.scala 82:28]
    end else if (claimedDevs_31) begin // @[Plic.scala 119:33]
      pending_30 <= 1'h0; // @[Plic.scala 119:46]
    end else begin
      pending_30 <= _GEN_122;
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_0 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_1) begin // @[RegField.scala 74:88]
      enables_0_0 <= out_back_io_deq_bits_data[1]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_1 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_2) begin // @[RegField.scala 74:88]
      enables_0_1 <= out_back_io_deq_bits_data[2]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_2 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_3) begin // @[RegField.scala 74:88]
      enables_0_2 <= out_back_io_deq_bits_data[3]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_3 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_4) begin // @[RegField.scala 74:88]
      enables_0_3 <= out_back_io_deq_bits_data[4]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_4 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_5) begin // @[RegField.scala 74:88]
      enables_0_4 <= out_back_io_deq_bits_data[5]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_5 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_6) begin // @[RegField.scala 74:88]
      enables_0_5 <= out_back_io_deq_bits_data[6]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_6 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_7) begin // @[RegField.scala 74:88]
      enables_0_6 <= out_back_io_deq_bits_data[7]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_7 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_8) begin // @[RegField.scala 74:88]
      enables_0_7 <= out_back_io_deq_bits_data[8]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_8 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_9) begin // @[RegField.scala 74:88]
      enables_0_8 <= out_back_io_deq_bits_data[9]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_9 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_10) begin // @[RegField.scala 74:88]
      enables_0_9 <= out_back_io_deq_bits_data[10]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_10 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_11) begin // @[RegField.scala 74:88]
      enables_0_10 <= out_back_io_deq_bits_data[11]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_11 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_12) begin // @[RegField.scala 74:88]
      enables_0_11 <= out_back_io_deq_bits_data[12]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_12 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_13) begin // @[RegField.scala 74:88]
      enables_0_12 <= out_back_io_deq_bits_data[13]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_13 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_14) begin // @[RegField.scala 74:88]
      enables_0_13 <= out_back_io_deq_bits_data[14]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_14 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_15) begin // @[RegField.scala 74:88]
      enables_0_14 <= out_back_io_deq_bits_data[15]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_15 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_16) begin // @[RegField.scala 74:88]
      enables_0_15 <= out_back_io_deq_bits_data[16]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_16 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_17) begin // @[RegField.scala 74:88]
      enables_0_16 <= out_back_io_deq_bits_data[17]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_17 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_18) begin // @[RegField.scala 74:88]
      enables_0_17 <= out_back_io_deq_bits_data[18]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_18 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_19) begin // @[RegField.scala 74:88]
      enables_0_18 <= out_back_io_deq_bits_data[19]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_19 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_20) begin // @[RegField.scala 74:88]
      enables_0_19 <= out_back_io_deq_bits_data[20]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_20 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_21) begin // @[RegField.scala 74:88]
      enables_0_20 <= out_back_io_deq_bits_data[21]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_21 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_22) begin // @[RegField.scala 74:88]
      enables_0_21 <= out_back_io_deq_bits_data[22]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_22 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_23) begin // @[RegField.scala 74:88]
      enables_0_22 <= out_back_io_deq_bits_data[23]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_23 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_24) begin // @[RegField.scala 74:88]
      enables_0_23 <= out_back_io_deq_bits_data[24]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_24 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_25) begin // @[RegField.scala 74:88]
      enables_0_24 <= out_back_io_deq_bits_data[25]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_25 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_26) begin // @[RegField.scala 74:88]
      enables_0_25 <= out_back_io_deq_bits_data[26]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_26 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_27) begin // @[RegField.scala 74:88]
      enables_0_26 <= out_back_io_deq_bits_data[27]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_27 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_28) begin // @[RegField.scala 74:88]
      enables_0_27 <= out_back_io_deq_bits_data[28]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_28 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_29) begin // @[RegField.scala 74:88]
      enables_0_28 <= out_back_io_deq_bits_data[29]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_29 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_30) begin // @[RegField.scala 74:88]
      enables_0_29 <= out_back_io_deq_bits_data[30]; // @[RegField.scala 74:92]
    end
    if (reset) begin // @[Plic.scala 85:65]
      enables_0_30 <= 1'h0; // @[Plic.scala 85:65]
    end else if (out_f_woready_31) begin // @[RegField.scala 74:88]
      enables_0_30 <= out_back_io_deq_bits_data[31]; // @[RegField.scala 74:92]
    end
    if (pri_14 >= pri_29) begin // @[Plic.scala 154:37]
      if (pri_6 >= pri_13) begin // @[Plic.scala 154:37]
        if (pri_2 >= pri_5) begin // @[Plic.scala 154:37]
          if (pri >= pri_1) begin // @[Plic.scala 154:37]
            maxDevs_0 <= dev; // @[Plic.scala 154:59]
          end else begin
            maxDevs_0 <= _dev_T_2; // @[Plic.scala 155:42]
          end
        end else begin
          maxDevs_0 <= _dev_T_6; // @[Plic.scala 155:42]
        end
      end else begin
        maxDevs_0 <= _dev_T_14; // @[Plic.scala 155:42]
      end
    end else begin
      maxDevs_0 <= _dev_T_30; // @[Plic.scala 155:42]
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_0 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[1]) begin // @[Plic.scala 116:33]
      inFlight_0 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_0 <= _GEN_0;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_1 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[2]) begin // @[Plic.scala 116:33]
      inFlight_1 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_1 <= _GEN_4;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_2 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[3]) begin // @[Plic.scala 116:33]
      inFlight_2 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_2 <= _GEN_8;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_3 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[4]) begin // @[Plic.scala 116:33]
      inFlight_3 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_3 <= _GEN_12;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_4 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[5]) begin // @[Plic.scala 116:33]
      inFlight_4 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_4 <= _GEN_16;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_5 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[6]) begin // @[Plic.scala 116:33]
      inFlight_5 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_5 <= _GEN_20;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_6 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[7]) begin // @[Plic.scala 116:33]
      inFlight_6 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_6 <= _GEN_24;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_7 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[8]) begin // @[Plic.scala 116:33]
      inFlight_7 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_7 <= _GEN_28;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_8 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[9]) begin // @[Plic.scala 116:33]
      inFlight_8 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_8 <= _GEN_32;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_9 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[10]) begin // @[Plic.scala 116:33]
      inFlight_9 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_9 <= _GEN_36;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_10 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[11]) begin // @[Plic.scala 116:33]
      inFlight_10 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_10 <= _GEN_40;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_11 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[12]) begin // @[Plic.scala 116:33]
      inFlight_11 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_11 <= _GEN_44;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_12 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[13]) begin // @[Plic.scala 116:33]
      inFlight_12 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_12 <= _GEN_48;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_13 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[14]) begin // @[Plic.scala 116:33]
      inFlight_13 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_13 <= _GEN_52;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_14 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[15]) begin // @[Plic.scala 116:33]
      inFlight_14 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_14 <= _GEN_56;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_15 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[16]) begin // @[Plic.scala 116:33]
      inFlight_15 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_15 <= _GEN_60;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_16 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[17]) begin // @[Plic.scala 116:33]
      inFlight_16 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_16 <= _GEN_64;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_17 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[18]) begin // @[Plic.scala 116:33]
      inFlight_17 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_17 <= _GEN_68;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_18 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[19]) begin // @[Plic.scala 116:33]
      inFlight_18 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_18 <= _GEN_72;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_19 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[20]) begin // @[Plic.scala 116:33]
      inFlight_19 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_19 <= _GEN_76;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_20 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[21]) begin // @[Plic.scala 116:33]
      inFlight_20 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_20 <= _GEN_80;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_21 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[22]) begin // @[Plic.scala 116:33]
      inFlight_21 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_21 <= _GEN_84;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_22 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[23]) begin // @[Plic.scala 116:33]
      inFlight_22 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_22 <= _GEN_88;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_23 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[24]) begin // @[Plic.scala 116:33]
      inFlight_23 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_23 <= _GEN_92;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_24 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[25]) begin // @[Plic.scala 116:33]
      inFlight_24 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_24 <= _GEN_96;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_25 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[26]) begin // @[Plic.scala 116:33]
      inFlight_25 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_25 <= _GEN_100;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_26 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[27]) begin // @[Plic.scala 116:33]
      inFlight_26 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_26 <= _GEN_104;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_27 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[28]) begin // @[Plic.scala 116:33]
      inFlight_27 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_27 <= _GEN_108;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_28 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[29]) begin // @[Plic.scala 116:33]
      inFlight_28 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_28 <= _GEN_112;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_29 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[30]) begin // @[Plic.scala 116:33]
      inFlight_29 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_29 <= _GEN_116;
    end
    if (reset) begin // @[Plic.scala 111:27]
      inFlight_30 <= 1'h0; // @[Plic.scala 111:27]
    end else if (completedDevs[31]) begin // @[Plic.scala 116:33]
      inFlight_30 <= 1'h0; // @[Plic.scala 116:47]
    end else begin
      inFlight_30 <= _GEN_120;
    end
    io_context_0_REG <= maxPri[3:0]; // @[Plic.scala 140:52]
    io_context_0_r <= io_context_0_REG > threshold_0; // @[Plic.scala 140:69]
    io_context_0_r_1 <= io_context_0_r; // @[Reg.scala 19:16 20:{18,22}]
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  priority_0 = _RAND_0[3:0];
  _RAND_1 = {1{`RANDOM}};
  priority_1 = _RAND_1[3:0];
  _RAND_2 = {1{`RANDOM}};
  priority_2 = _RAND_2[3:0];
  _RAND_3 = {1{`RANDOM}};
  priority_3 = _RAND_3[3:0];
  _RAND_4 = {1{`RANDOM}};
  priority_4 = _RAND_4[3:0];
  _RAND_5 = {1{`RANDOM}};
  priority_5 = _RAND_5[3:0];
  _RAND_6 = {1{`RANDOM}};
  priority_6 = _RAND_6[3:0];
  _RAND_7 = {1{`RANDOM}};
  priority_7 = _RAND_7[3:0];
  _RAND_8 = {1{`RANDOM}};
  priority_8 = _RAND_8[3:0];
  _RAND_9 = {1{`RANDOM}};
  priority_9 = _RAND_9[3:0];
  _RAND_10 = {1{`RANDOM}};
  priority_10 = _RAND_10[3:0];
  _RAND_11 = {1{`RANDOM}};
  priority_11 = _RAND_11[3:0];
  _RAND_12 = {1{`RANDOM}};
  priority_12 = _RAND_12[3:0];
  _RAND_13 = {1{`RANDOM}};
  priority_13 = _RAND_13[3:0];
  _RAND_14 = {1{`RANDOM}};
  priority_14 = _RAND_14[3:0];
  _RAND_15 = {1{`RANDOM}};
  priority_15 = _RAND_15[3:0];
  _RAND_16 = {1{`RANDOM}};
  priority_16 = _RAND_16[3:0];
  _RAND_17 = {1{`RANDOM}};
  priority_17 = _RAND_17[3:0];
  _RAND_18 = {1{`RANDOM}};
  priority_18 = _RAND_18[3:0];
  _RAND_19 = {1{`RANDOM}};
  priority_19 = _RAND_19[3:0];
  _RAND_20 = {1{`RANDOM}};
  priority_20 = _RAND_20[3:0];
  _RAND_21 = {1{`RANDOM}};
  priority_21 = _RAND_21[3:0];
  _RAND_22 = {1{`RANDOM}};
  priority_22 = _RAND_22[3:0];
  _RAND_23 = {1{`RANDOM}};
  priority_23 = _RAND_23[3:0];
  _RAND_24 = {1{`RANDOM}};
  priority_24 = _RAND_24[3:0];
  _RAND_25 = {1{`RANDOM}};
  priority_25 = _RAND_25[3:0];
  _RAND_26 = {1{`RANDOM}};
  priority_26 = _RAND_26[3:0];
  _RAND_27 = {1{`RANDOM}};
  priority_27 = _RAND_27[3:0];
  _RAND_28 = {1{`RANDOM}};
  priority_28 = _RAND_28[3:0];
  _RAND_29 = {1{`RANDOM}};
  priority_29 = _RAND_29[3:0];
  _RAND_30 = {1{`RANDOM}};
  priority_30 = _RAND_30[3:0];
  _RAND_31 = {1{`RANDOM}};
  threshold_0 = _RAND_31[3:0];
  _RAND_32 = {1{`RANDOM}};
  pending_0 = _RAND_32[0:0];
  _RAND_33 = {1{`RANDOM}};
  pending_1 = _RAND_33[0:0];
  _RAND_34 = {1{`RANDOM}};
  pending_2 = _RAND_34[0:0];
  _RAND_35 = {1{`RANDOM}};
  pending_3 = _RAND_35[0:0];
  _RAND_36 = {1{`RANDOM}};
  pending_4 = _RAND_36[0:0];
  _RAND_37 = {1{`RANDOM}};
  pending_5 = _RAND_37[0:0];
  _RAND_38 = {1{`RANDOM}};
  pending_6 = _RAND_38[0:0];
  _RAND_39 = {1{`RANDOM}};
  pending_7 = _RAND_39[0:0];
  _RAND_40 = {1{`RANDOM}};
  pending_8 = _RAND_40[0:0];
  _RAND_41 = {1{`RANDOM}};
  pending_9 = _RAND_41[0:0];
  _RAND_42 = {1{`RANDOM}};
  pending_10 = _RAND_42[0:0];
  _RAND_43 = {1{`RANDOM}};
  pending_11 = _RAND_43[0:0];
  _RAND_44 = {1{`RANDOM}};
  pending_12 = _RAND_44[0:0];
  _RAND_45 = {1{`RANDOM}};
  pending_13 = _RAND_45[0:0];
  _RAND_46 = {1{`RANDOM}};
  pending_14 = _RAND_46[0:0];
  _RAND_47 = {1{`RANDOM}};
  pending_15 = _RAND_47[0:0];
  _RAND_48 = {1{`RANDOM}};
  pending_16 = _RAND_48[0:0];
  _RAND_49 = {1{`RANDOM}};
  pending_17 = _RAND_49[0:0];
  _RAND_50 = {1{`RANDOM}};
  pending_18 = _RAND_50[0:0];
  _RAND_51 = {1{`RANDOM}};
  pending_19 = _RAND_51[0:0];
  _RAND_52 = {1{`RANDOM}};
  pending_20 = _RAND_52[0:0];
  _RAND_53 = {1{`RANDOM}};
  pending_21 = _RAND_53[0:0];
  _RAND_54 = {1{`RANDOM}};
  pending_22 = _RAND_54[0:0];
  _RAND_55 = {1{`RANDOM}};
  pending_23 = _RAND_55[0:0];
  _RAND_56 = {1{`RANDOM}};
  pending_24 = _RAND_56[0:0];
  _RAND_57 = {1{`RANDOM}};
  pending_25 = _RAND_57[0:0];
  _RAND_58 = {1{`RANDOM}};
  pending_26 = _RAND_58[0:0];
  _RAND_59 = {1{`RANDOM}};
  pending_27 = _RAND_59[0:0];
  _RAND_60 = {1{`RANDOM}};
  pending_28 = _RAND_60[0:0];
  _RAND_61 = {1{`RANDOM}};
  pending_29 = _RAND_61[0:0];
  _RAND_62 = {1{`RANDOM}};
  pending_30 = _RAND_62[0:0];
  _RAND_63 = {1{`RANDOM}};
  enables_0_0 = _RAND_63[0:0];
  _RAND_64 = {1{`RANDOM}};
  enables_0_1 = _RAND_64[0:0];
  _RAND_65 = {1{`RANDOM}};
  enables_0_2 = _RAND_65[0:0];
  _RAND_66 = {1{`RANDOM}};
  enables_0_3 = _RAND_66[0:0];
  _RAND_67 = {1{`RANDOM}};
  enables_0_4 = _RAND_67[0:0];
  _RAND_68 = {1{`RANDOM}};
  enables_0_5 = _RAND_68[0:0];
  _RAND_69 = {1{`RANDOM}};
  enables_0_6 = _RAND_69[0:0];
  _RAND_70 = {1{`RANDOM}};
  enables_0_7 = _RAND_70[0:0];
  _RAND_71 = {1{`RANDOM}};
  enables_0_8 = _RAND_71[0:0];
  _RAND_72 = {1{`RANDOM}};
  enables_0_9 = _RAND_72[0:0];
  _RAND_73 = {1{`RANDOM}};
  enables_0_10 = _RAND_73[0:0];
  _RAND_74 = {1{`RANDOM}};
  enables_0_11 = _RAND_74[0:0];
  _RAND_75 = {1{`RANDOM}};
  enables_0_12 = _RAND_75[0:0];
  _RAND_76 = {1{`RANDOM}};
  enables_0_13 = _RAND_76[0:0];
  _RAND_77 = {1{`RANDOM}};
  enables_0_14 = _RAND_77[0:0];
  _RAND_78 = {1{`RANDOM}};
  enables_0_15 = _RAND_78[0:0];
  _RAND_79 = {1{`RANDOM}};
  enables_0_16 = _RAND_79[0:0];
  _RAND_80 = {1{`RANDOM}};
  enables_0_17 = _RAND_80[0:0];
  _RAND_81 = {1{`RANDOM}};
  enables_0_18 = _RAND_81[0:0];
  _RAND_82 = {1{`RANDOM}};
  enables_0_19 = _RAND_82[0:0];
  _RAND_83 = {1{`RANDOM}};
  enables_0_20 = _RAND_83[0:0];
  _RAND_84 = {1{`RANDOM}};
  enables_0_21 = _RAND_84[0:0];
  _RAND_85 = {1{`RANDOM}};
  enables_0_22 = _RAND_85[0:0];
  _RAND_86 = {1{`RANDOM}};
  enables_0_23 = _RAND_86[0:0];
  _RAND_87 = {1{`RANDOM}};
  enables_0_24 = _RAND_87[0:0];
  _RAND_88 = {1{`RANDOM}};
  enables_0_25 = _RAND_88[0:0];
  _RAND_89 = {1{`RANDOM}};
  enables_0_26 = _RAND_89[0:0];
  _RAND_90 = {1{`RANDOM}};
  enables_0_27 = _RAND_90[0:0];
  _RAND_91 = {1{`RANDOM}};
  enables_0_28 = _RAND_91[0:0];
  _RAND_92 = {1{`RANDOM}};
  enables_0_29 = _RAND_92[0:0];
  _RAND_93 = {1{`RANDOM}};
  enables_0_30 = _RAND_93[0:0];
  _RAND_94 = {1{`RANDOM}};
  maxDevs_0 = _RAND_94[4:0];
  _RAND_95 = {1{`RANDOM}};
  inFlight_0 = _RAND_95[0:0];
  _RAND_96 = {1{`RANDOM}};
  inFlight_1 = _RAND_96[0:0];
  _RAND_97 = {1{`RANDOM}};
  inFlight_2 = _RAND_97[0:0];
  _RAND_98 = {1{`RANDOM}};
  inFlight_3 = _RAND_98[0:0];
  _RAND_99 = {1{`RANDOM}};
  inFlight_4 = _RAND_99[0:0];
  _RAND_100 = {1{`RANDOM}};
  inFlight_5 = _RAND_100[0:0];
  _RAND_101 = {1{`RANDOM}};
  inFlight_6 = _RAND_101[0:0];
  _RAND_102 = {1{`RANDOM}};
  inFlight_7 = _RAND_102[0:0];
  _RAND_103 = {1{`RANDOM}};
  inFlight_8 = _RAND_103[0:0];
  _RAND_104 = {1{`RANDOM}};
  inFlight_9 = _RAND_104[0:0];
  _RAND_105 = {1{`RANDOM}};
  inFlight_10 = _RAND_105[0:0];
  _RAND_106 = {1{`RANDOM}};
  inFlight_11 = _RAND_106[0:0];
  _RAND_107 = {1{`RANDOM}};
  inFlight_12 = _RAND_107[0:0];
  _RAND_108 = {1{`RANDOM}};
  inFlight_13 = _RAND_108[0:0];
  _RAND_109 = {1{`RANDOM}};
  inFlight_14 = _RAND_109[0:0];
  _RAND_110 = {1{`RANDOM}};
  inFlight_15 = _RAND_110[0:0];
  _RAND_111 = {1{`RANDOM}};
  inFlight_16 = _RAND_111[0:0];
  _RAND_112 = {1{`RANDOM}};
  inFlight_17 = _RAND_112[0:0];
  _RAND_113 = {1{`RANDOM}};
  inFlight_18 = _RAND_113[0:0];
  _RAND_114 = {1{`RANDOM}};
  inFlight_19 = _RAND_114[0:0];
  _RAND_115 = {1{`RANDOM}};
  inFlight_20 = _RAND_115[0:0];
  _RAND_116 = {1{`RANDOM}};
  inFlight_21 = _RAND_116[0:0];
  _RAND_117 = {1{`RANDOM}};
  inFlight_22 = _RAND_117[0:0];
  _RAND_118 = {1{`RANDOM}};
  inFlight_23 = _RAND_118[0:0];
  _RAND_119 = {1{`RANDOM}};
  inFlight_24 = _RAND_119[0:0];
  _RAND_120 = {1{`RANDOM}};
  inFlight_25 = _RAND_120[0:0];
  _RAND_121 = {1{`RANDOM}};
  inFlight_26 = _RAND_121[0:0];
  _RAND_122 = {1{`RANDOM}};
  inFlight_27 = _RAND_122[0:0];
  _RAND_123 = {1{`RANDOM}};
  inFlight_28 = _RAND_123[0:0];
  _RAND_124 = {1{`RANDOM}};
  inFlight_29 = _RAND_124[0:0];
  _RAND_125 = {1{`RANDOM}};
  inFlight_30 = _RAND_125[0:0];
  _RAND_126 = {1{`RANDOM}};
  io_context_0_REG = _RAND_126[3:0];
  _RAND_127 = {1{`RANDOM}};
  io_context_0_r = _RAND_127[0:0];
  _RAND_128 = {1{`RANDOM}};
  io_context_0_r_1 = _RAND_128[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLMonitor_18(
  input         clock,
  input         reset,
  input         io_in_a_ready,
  input         io_in_a_valid,
  input  [2:0]  io_in_a_bits_opcode,
  input  [31:0] io_in_a_bits_address,
  input  [7:0]  io_in_a_bits_mask,
  input         io_in_d_ready,
  input         io_in_d_valid,
  input  [2:0]  io_in_d_bits_opcode,
  input  [2:0]  io_in_d_bits_size,
  input         io_in_d_bits_denied,
  input         io_in_d_bits_corrupt
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire [31:0] _is_aligned_T = io_in_a_bits_address & 32'h7; // @[Edges.scala 20:16]
  wire  is_aligned = _is_aligned_T == 32'h0; // @[Edges.scala 20:24]
  wire [32:0] _T_7 = {1'b0,$signed(io_in_a_bits_address)}; // @[Parameters.scala 137:49]
  wire  _T_15 = io_in_a_bits_opcode == 3'h6; // @[Monitor.scala 81:25]
  wire [31:0] _T_28 = io_in_a_bits_address ^ 32'h10000000; // @[Parameters.scala 137:31]
  wire [32:0] _T_29 = {1'b0,$signed(_T_28)}; // @[Parameters.scala 137:49]
  wire [32:0] _T_31 = $signed(_T_29) & -33'sh10000000; // @[Parameters.scala 137:52]
  wire  _T_32 = $signed(_T_31) == 33'sh0; // @[Parameters.scala 137:67]
  wire [31:0] _T_33 = io_in_a_bits_address ^ 32'h20000000; // @[Parameters.scala 137:31]
  wire [32:0] _T_34 = {1'b0,$signed(_T_33)}; // @[Parameters.scala 137:49]
  wire [32:0] _T_36 = $signed(_T_34) & -33'sh20000000; // @[Parameters.scala 137:52]
  wire  _T_37 = $signed(_T_36) == 33'sh0; // @[Parameters.scala 137:67]
  wire [31:0] _T_38 = io_in_a_bits_address ^ 32'h40000000; // @[Parameters.scala 137:31]
  wire [32:0] _T_39 = {1'b0,$signed(_T_38)}; // @[Parameters.scala 137:49]
  wire [32:0] _T_41 = $signed(_T_39) & -33'sh40000000; // @[Parameters.scala 137:52]
  wire  _T_42 = $signed(_T_41) == 33'sh0; // @[Parameters.scala 137:67]
  wire [31:0] _T_43 = io_in_a_bits_address ^ 32'h80000000; // @[Parameters.scala 137:31]
  wire [32:0] _T_44 = {1'b0,$signed(_T_43)}; // @[Parameters.scala 137:49]
  wire [32:0] _T_46 = $signed(_T_44) & -33'sh80000000; // @[Parameters.scala 137:52]
  wire  _T_47 = $signed(_T_46) == 33'sh0; // @[Parameters.scala 137:67]
  wire [7:0] _T_111 = ~io_in_a_bits_mask; // @[Monitor.scala 88:18]
  wire  _T_112 = _T_111 == 8'h0; // @[Monitor.scala 88:31]
  wire  _T_120 = io_in_a_bits_opcode == 3'h7; // @[Monitor.scala 92:25]
  wire  _T_229 = io_in_a_bits_opcode == 3'h4; // @[Monitor.scala 104:25]
  wire [32:0] _T_246 = $signed(_T_7) & -33'sh10000; // @[Parameters.scala 137:52]
  wire  _T_247 = $signed(_T_246) == 33'sh0; // @[Parameters.scala 137:67]
  wire  _T_265 = _T_247 | _T_37 | _T_42 | _T_47; // @[Parameters.scala 671:42]
  wire [31:0] _T_271 = io_in_a_bits_address ^ 32'h20000; // @[Parameters.scala 137:31]
  wire [32:0] _T_272 = {1'b0,$signed(_T_271)}; // @[Parameters.scala 137:49]
  wire [32:0] _T_274 = $signed(_T_272) & -33'sh10000; // @[Parameters.scala 137:52]
  wire  _T_275 = $signed(_T_274) == 33'sh0; // @[Parameters.scala 137:67]
  wire  _T_281 = _T_275 | _T_32; // @[Parameters.scala 671:42]
  wire  _T_284 = _T_265 | _T_281; // @[Parameters.scala 672:30]
  wire  _T_298 = io_in_a_bits_mask == 8'hff; // @[Monitor.scala 110:30]
  wire  _T_306 = io_in_a_bits_opcode == 3'h0; // @[Monitor.scala 114:25]
  wire  _T_377 = io_in_a_bits_opcode == 3'h1; // @[Monitor.scala 122:25]
  wire  _T_450 = io_in_a_bits_opcode == 3'h2; // @[Monitor.scala 130:25]
  wire  _T_507 = io_in_a_bits_opcode == 3'h3; // @[Monitor.scala 138:25]
  wire  _T_564 = io_in_a_bits_opcode == 3'h5; // @[Monitor.scala 146:25]
  wire  _T_625 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire  _T_629 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_633 = io_in_d_bits_size >= 3'h3; // @[Monitor.scala 312:27]
  wire  _T_641 = ~io_in_d_bits_corrupt; // @[Monitor.scala 314:15]
  wire  _T_645 = ~io_in_d_bits_denied; // @[Monitor.scala 315:15]
  wire  _T_649 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_677 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _T_697 = _T_645 | io_in_d_bits_corrupt; // @[Monitor.scala 334:30]
  wire  _T_706 = io_in_d_bits_opcode == 3'h0; // @[Monitor.scala 338:25]
  wire  _T_723 = io_in_d_bits_opcode == 3'h1; // @[Monitor.scala 346:25]
  wire  _T_741 = io_in_d_bits_opcode == 3'h2; // @[Monitor.scala 354:25]
  wire  _a_first_T = io_in_a_ready & io_in_a_valid; // @[Decoupled.scala 52:35]
  reg [1:0] a_first_counter; // @[Edges.scala 228:27]
  wire [1:0] a_first_counter1 = a_first_counter - 2'h1; // @[Edges.scala 229:28]
  wire  a_first = a_first_counter == 2'h0; // @[Edges.scala 230:25]
  reg [2:0] opcode; // @[Monitor.scala 384:22]
  reg [31:0] address; // @[Monitor.scala 388:22]
  wire  _T_771 = io_in_a_valid & ~a_first; // @[Monitor.scala 389:19]
  wire  _T_772 = io_in_a_bits_opcode == opcode; // @[Monitor.scala 390:32]
  wire  _T_788 = io_in_a_bits_address == address; // @[Monitor.scala 394:32]
  wire  _d_first_T = io_in_d_ready & io_in_d_valid; // @[Decoupled.scala 52:35]
  wire [11:0] _d_first_beats1_decode_T_1 = 12'h1f << io_in_d_bits_size; // @[package.scala 234:77]
  wire [4:0] _d_first_beats1_decode_T_3 = ~_d_first_beats1_decode_T_1[4:0]; // @[package.scala 234:46]
  wire [1:0] d_first_beats1_decode = _d_first_beats1_decode_T_3[4:3]; // @[Edges.scala 219:59]
  wire  d_first_beats1_opdata = io_in_d_bits_opcode[0]; // @[Edges.scala 105:36]
  reg [1:0] d_first_counter; // @[Edges.scala 228:27]
  wire [1:0] d_first_counter1 = d_first_counter - 2'h1; // @[Edges.scala 229:28]
  wire  d_first = d_first_counter == 2'h0; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  reg [2:0] size_1; // @[Monitor.scala 537:22]
  reg  denied; // @[Monitor.scala 540:22]
  wire  _T_795 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_796 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  wire  _T_804 = io_in_d_bits_size == size_1; // @[Monitor.scala 544:29]
  wire  _T_816 = io_in_d_bits_denied == denied; // @[Monitor.scala 547:29]
  reg  inflight; // @[Monitor.scala 611:27]
  reg [3:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [3:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg [1:0] a_first_counter_1; // @[Edges.scala 228:27]
  wire [1:0] a_first_counter1_1 = a_first_counter_1 - 2'h1; // @[Edges.scala 229:28]
  wire  a_first_1 = a_first_counter_1 == 2'h0; // @[Edges.scala 230:25]
  reg [1:0] d_first_counter_1; // @[Edges.scala 228:27]
  wire [1:0] d_first_counter1_1 = d_first_counter_1 - 2'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = d_first_counter_1 == 2'h0; // @[Edges.scala 230:25]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [15:0] _GEN_15 = {{12'd0}, inflight_opcodes}; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_6 = _GEN_15 & _a_opcode_lookup_T_5; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[15:1]}; // @[Monitor.scala 634:152]
  wire [15:0] _GEN_60 = {{12'd0}, inflight_sizes}; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_6 = _GEN_60 & _a_opcode_lookup_T_5; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[15:1]}; // @[Monitor.scala 638:144]
  wire  _T_825 = _a_first_T & a_first_1; // @[Monitor.scala 652:27]
  wire [3:0] _a_opcodes_set_interm_T = {io_in_a_bits_opcode, 1'h0}; // @[Monitor.scala 654:53]
  wire [3:0] _a_opcodes_set_interm_T_1 = _a_opcodes_set_interm_T | 4'h1; // @[Monitor.scala 654:61]
  wire [3:0] a_opcodes_set_interm = _a_first_T & a_first_1 ? _a_opcodes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 654:28]
  wire [18:0] _a_opcodes_set_T_1 = {{15'd0}, a_opcodes_set_interm}; // @[Monitor.scala 656:54]
  wire [3:0] a_sizes_set_interm = _a_first_T & a_first_1 ? 4'h7 : 4'h0; // @[Monitor.scala 652:72 655:28]
  wire [18:0] _a_sizes_set_T_1 = {{15'd0}, a_sizes_set_interm}; // @[Monitor.scala 657:52]
  wire  _T_829 = ~inflight; // @[Monitor.scala 658:17]
  wire [1:0] _GEN_16 = _a_first_T & a_first_1 ? 2'h1 : 2'h0; // @[Monitor.scala 652:72 653:28]
  wire [18:0] _GEN_19 = _a_first_T & a_first_1 ? _a_opcodes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 656:28]
  wire [18:0] _GEN_20 = _a_first_T & a_first_1 ? _a_sizes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 657:28]
  wire  _T_840 = ~_T_629; // @[Monitor.scala 675:75]
  wire [30:0] _d_opcodes_clr_T_5 = {{15'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [1:0] _GEN_22 = _d_first_T & d_first_1 & ~_T_629 ? 2'h1 : 2'h0; // @[Monitor.scala 675:91 676:21]
  wire [30:0] _GEN_23 = _d_first_T & d_first_1 & ~_T_629 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 675:91 677:21]
  wire  _T_842 = io_in_d_valid & d_first_1; // @[Monitor.scala 680:26]
  wire  _T_845 = io_in_d_valid & d_first_1 & _T_840; // @[Monitor.scala 680:71]
  wire  same_cycle_resp = io_in_a_valid & a_first_1; // @[Monitor.scala 681:44]
  wire  _T_848 = inflight | same_cycle_resp; // @[Monitor.scala 682:49]
  wire [2:0] _GEN_27 = 3'h2 == io_in_a_bits_opcode ? 3'h1 : 3'h0; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_28 = 3'h3 == io_in_a_bits_opcode ? 3'h1 : _GEN_27; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_29 = 3'h4 == io_in_a_bits_opcode ? 3'h1 : _GEN_28; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_30 = 3'h5 == io_in_a_bits_opcode ? 3'h2 : _GEN_29; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_31 = 3'h6 == io_in_a_bits_opcode ? 3'h4 : _GEN_30; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_32 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_31; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_39 = 3'h6 == io_in_a_bits_opcode ? 3'h5 : _GEN_30; // @[Monitor.scala 686:{39,39}]
  wire [2:0] _GEN_40 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_39; // @[Monitor.scala 686:{39,39}]
  wire  _T_853 = io_in_d_bits_opcode == _GEN_40; // @[Monitor.scala 686:39]
  wire  _T_854 = io_in_d_bits_opcode == _GEN_32 | _T_853; // @[Monitor.scala 685:77]
  wire  _T_858 = 3'h3 == io_in_d_bits_size; // @[Monitor.scala 687:36]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_43 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_44 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_43; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_45 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_44; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_46 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_45; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_47 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_46; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_48 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_47; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_55 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_46; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_56 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_55; // @[Monitor.scala 690:{38,38}]
  wire  _T_865 = io_in_d_bits_opcode == _GEN_56; // @[Monitor.scala 690:38]
  wire  _T_866 = io_in_d_bits_opcode == _GEN_48 | _T_865; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire [3:0] _GEN_64 = {{1'd0}, io_in_d_bits_size}; // @[Monitor.scala 691:36]
  wire  _T_870 = _GEN_64 == a_size_lookup; // @[Monitor.scala 691:36]
  wire  _T_880 = _T_842 & a_first_1 & io_in_a_valid & _T_840; // @[Monitor.scala 694:116]
  wire  _T_882 = ~io_in_d_ready | io_in_a_ready; // @[Monitor.scala 695:32]
  wire  a_set = _GEN_16[0];
  wire  d_clr = _GEN_22[0];
  wire [3:0] a_opcodes_set = _GEN_19[3:0];
  wire [3:0] _inflight_opcodes_T = inflight_opcodes | a_opcodes_set; // @[Monitor.scala 703:43]
  wire [3:0] d_opcodes_clr = _GEN_23[3:0];
  wire [3:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [3:0] _inflight_opcodes_T_2 = _inflight_opcodes_T & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [3:0] a_sizes_set = _GEN_20[3:0];
  wire [3:0] _inflight_sizes_T = inflight_sizes | a_sizes_set; // @[Monitor.scala 704:39]
  wire [3:0] _inflight_sizes_T_2 = _inflight_sizes_T & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [31:0] watchdog; // @[Monitor.scala 706:27]
  wire  _T_891 = ~(|inflight) | plusarg_reader_out == 32'h0 | watchdog < plusarg_reader_out; // @[Monitor.scala 709:47]
  wire [31:0] _watchdog_T_1 = watchdog + 32'h1; // @[Monitor.scala 711:26]
  reg [3:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg [1:0] d_first_counter_2; // @[Edges.scala 228:27]
  wire [1:0] d_first_counter1_2 = d_first_counter_2 - 2'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = d_first_counter_2 == 2'h0; // @[Edges.scala 230:25]
  wire [15:0] _GEN_66 = {{12'd0}, inflight_sizes_1}; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_6 = _GEN_66 & _a_opcode_lookup_T_5; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[15:1]}; // @[Monitor.scala 747:146]
  wire [30:0] _GEN_69 = _d_first_T & d_first_2 & _T_629 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 783:90 786:21]
  wire  _T_924 = io_in_d_valid & d_first_2 & _T_629; // @[Monitor.scala 789:71]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_935 = _GEN_64 == c_size_lookup; // @[Monitor.scala 795:36]
  wire [3:0] d_sizes_clr_1 = _GEN_69[3:0];
  wire [3:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [3:0] _inflight_sizes_T_5 = inflight_sizes_1 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 2'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        a_first_counter <= 2'h0;
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      opcode <= io_in_a_bits_opcode; // @[Monitor.scala 397:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      address <= io_in_a_bits_address; // @[Monitor.scala 401:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 2'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        if (d_first_beats1_opdata) begin // @[Edges.scala 220:14]
          d_first_counter <= d_first_beats1_decode;
        end else begin
          d_first_counter <= 2'h0;
        end
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      size_1 <= io_in_d_bits_size; // @[Monitor.scala 552:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      denied <= io_in_d_bits_denied; // @[Monitor.scala 555:15]
    end
    if (reset) begin // @[Monitor.scala 611:27]
      inflight <= 1'h0; // @[Monitor.scala 611:27]
    end else begin
      inflight <= (inflight | a_set) & ~d_clr; // @[Monitor.scala 702:14]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 4'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 4'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter_1 <= 2'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first_1) begin // @[Edges.scala 235:21]
        a_first_counter_1 <= 2'h0;
      end else begin
        a_first_counter_1 <= a_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 2'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        if (d_first_beats1_opdata) begin // @[Edges.scala 220:14]
          d_first_counter_1 <= d_first_beats1_decode;
        end else begin
          d_first_counter_1 <= 2'h0;
        end
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 706:27]
      watchdog <= 32'h0; // @[Monitor.scala 706:27]
    end else if (_a_first_T | _d_first_T) begin // @[Monitor.scala 712:47]
      watchdog <= 32'h0; // @[Monitor.scala 712:58]
    end else begin
      watchdog <= _watchdog_T_1; // @[Monitor.scala 711:14]
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 4'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 2'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        if (d_first_beats1_opdata) begin // @[Edges.scala 220:14]
          d_first_counter_2 <= d_first_beats1_decode;
        end else begin
          d_first_counter_2 <= 2'h0;
        end
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock from a client which does not support Probe (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock address not aligned to size (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~_T_112) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock contains invalid mask (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_112 & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_120 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_120 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_120 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm from a client which does not support Probe (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_120 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_120 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm address not aligned to size (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_120 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_120 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm requests NtoB (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_120 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_120 & ~reset & ~_T_112) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm contains invalid mask (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_112 & (io_in_a_valid & _T_120 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_229 & ~reset & ~_T_284) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which slave claims it can't support (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_284 & (io_in_a_valid & _T_229 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_229 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get address not aligned to size (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_229 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_229 & ~reset & ~_T_298) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get contains invalid mask (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_298 & (io_in_a_valid & _T_229 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_306 & ~reset & ~_T_284) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutFull type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_284 & (io_in_a_valid & _T_306 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_306 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull address not aligned to size (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_306 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_306 & ~reset & ~_T_298) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull contains invalid mask (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_298 & (io_in_a_valid & _T_306 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_377 & ~reset & ~_T_284) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutPartial type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_284 & (io_in_a_valid & _T_377 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_377 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial address not aligned to size (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_377 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_450 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Arithmetic type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_450 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_450 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic address not aligned to size (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_450 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_450 & ~reset & ~_T_298) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic contains invalid mask (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_298 & (io_in_a_valid & _T_450 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_507 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Logical type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_507 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_507 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical address not aligned to size (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_507 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_507 & ~reset & ~_T_298) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical contains invalid mask (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_298 & (io_in_a_valid & _T_507 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_564 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Hint type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_564 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_564 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint address not aligned to size (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_564 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_564 & ~reset & ~_T_298) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint contains invalid mask (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_298 & (io_in_a_valid & _T_564 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_625) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_625 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_629 & _T_2 & ~_T_633) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck smaller than a beat (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_633 & (io_in_d_valid & _T_629 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_629 & _T_2 & ~_T_641) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is corrupt (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_641 & (io_in_d_valid & _T_629 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_629 & _T_2 & ~_T_645) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is denied (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_645 & (io_in_d_valid & _T_629 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_649 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid sink ID (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_649 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_649 & _T_2 & ~_T_633) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant smaller than a beat (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_633 & (io_in_d_valid & _T_649 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_649 & _T_2 & ~_T_641) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant is corrupt (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_641 & (io_in_d_valid & _T_649 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_677 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid sink ID (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_677 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_677 & _T_2 & ~_T_633) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData smaller than a beat (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_633 & (io_in_d_valid & _T_677 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_677 & _T_2 & ~_T_697) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData is denied but not corrupt (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_697 & (io_in_d_valid & _T_677 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_706 & _T_2 & ~_T_641) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck is corrupt (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_641 & (io_in_d_valid & _T_706 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_723 & _T_2 & ~_T_697) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData is denied but not corrupt (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_697 & (io_in_d_valid & _T_723 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_741 & _T_2 & ~_T_641) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck is corrupt (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_641 & (io_in_d_valid & _T_741 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_771 & ~reset & ~_T_772) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel opcode changed within multibeat operation (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_772 & (_T_771 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_771 & ~reset & ~_T_788) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel address changed with multibeat operation (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_788 & (_T_771 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_795 & _T_2 & ~_T_796) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_796 & (_T_795 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_795 & _T_2 & ~_T_804) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel size changed within multibeat operation (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_804 & (_T_795 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_795 & _T_2 & ~_T_816) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel denied changed with multibeat operation (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_816 & (_T_795 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_825 & ~reset & ~_T_829) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel re-used a source ID (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_829 & (_T_825 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_845 & _T_2 & ~_T_848) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_848 & (_T_845 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_845 & same_cycle_resp & _T_2 & ~_T_854) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_854 & (_T_845 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_845 & same_cycle_resp & _T_2 & ~_T_858) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_858 & (_T_845 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_845 & ~same_cycle_resp & _T_2 & ~_T_866) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_866 & (_T_845 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_845 & ~same_cycle_resp & _T_2 & ~_T_870) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_870 & (_T_845 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_880 & _T_2 & ~_T_882) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_882 & (_T_880 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_891) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_891 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_924 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_924 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_924 & _T_2 & ~_T_935) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:173:13)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_935 & (_T_924 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[1:0];
  _RAND_1 = {1{`RANDOM}};
  opcode = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  address = _RAND_2[31:0];
  _RAND_3 = {1{`RANDOM}};
  d_first_counter = _RAND_3[1:0];
  _RAND_4 = {1{`RANDOM}};
  opcode_1 = _RAND_4[2:0];
  _RAND_5 = {1{`RANDOM}};
  size_1 = _RAND_5[2:0];
  _RAND_6 = {1{`RANDOM}};
  denied = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  inflight = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  inflight_opcodes = _RAND_8[3:0];
  _RAND_9 = {1{`RANDOM}};
  inflight_sizes = _RAND_9[3:0];
  _RAND_10 = {1{`RANDOM}};
  a_first_counter_1 = _RAND_10[1:0];
  _RAND_11 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_11[1:0];
  _RAND_12 = {1{`RANDOM}};
  watchdog = _RAND_12[31:0];
  _RAND_13 = {1{`RANDOM}};
  inflight_sizes_1 = _RAND_13[3:0];
  _RAND_14 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_14[1:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLXbar_2(
  input         clock,
  input         reset,
  output        auto_in_a_ready,
  input         auto_in_a_valid,
  input  [2:0]  auto_in_a_bits_opcode,
  input  [31:0] auto_in_a_bits_address,
  input  [7:0]  auto_in_a_bits_mask,
  input  [63:0] auto_in_a_bits_data,
  input         auto_in_d_ready,
  output        auto_in_d_valid,
  output [63:0] auto_in_d_bits_data,
  input         auto_out_4_a_ready,
  output        auto_out_4_a_valid,
  output [2:0]  auto_out_4_a_bits_opcode,
  output [28:0] auto_out_4_a_bits_address,
  output [7:0]  auto_out_4_a_bits_mask,
  output [63:0] auto_out_4_a_bits_data,
  output        auto_out_4_d_ready,
  input         auto_out_4_d_valid,
  input  [2:0]  auto_out_4_d_bits_opcode,
  input  [1:0]  auto_out_4_d_bits_size,
  input  [63:0] auto_out_4_d_bits_data,
  input         auto_out_3_a_ready,
  output        auto_out_3_a_valid,
  output [2:0]  auto_out_3_a_bits_opcode,
  output [17:0] auto_out_3_a_bits_address,
  output [7:0]  auto_out_3_a_bits_mask,
  output [63:0] auto_out_3_a_bits_data,
  output        auto_out_3_d_ready,
  input         auto_out_3_d_valid,
  input  [2:0]  auto_out_3_d_bits_opcode,
  input  [63:0] auto_out_3_d_bits_data,
  input         auto_out_2_a_ready,
  output        auto_out_2_a_valid,
  output [2:0]  auto_out_2_a_bits_opcode,
  output [15:0] auto_out_2_a_bits_address,
  output [7:0]  auto_out_2_a_bits_mask,
  output [63:0] auto_out_2_a_bits_data,
  output        auto_out_2_d_ready,
  input         auto_out_2_d_valid,
  input  [2:0]  auto_out_2_d_bits_opcode,
  input  [2:0]  auto_out_2_d_bits_size,
  input  [63:0] auto_out_2_d_bits_data,
  input         auto_out_1_a_ready,
  output        auto_out_1_a_valid,
  output [2:0]  auto_out_1_a_bits_opcode,
  output [30:0] auto_out_1_a_bits_address,
  output [7:0]  auto_out_1_a_bits_mask,
  output [63:0] auto_out_1_a_bits_data,
  output        auto_out_1_d_ready,
  input         auto_out_1_d_valid,
  input  [2:0]  auto_out_1_d_bits_opcode,
  input  [2:0]  auto_out_1_d_bits_size,
  input         auto_out_1_d_bits_denied,
  input  [63:0] auto_out_1_d_bits_data,
  input         auto_out_1_d_bits_corrupt,
  input         auto_out_0_a_ready,
  output        auto_out_0_a_valid,
  output [2:0]  auto_out_0_a_bits_opcode,
  output [31:0] auto_out_0_a_bits_address,
  output [7:0]  auto_out_0_a_bits_mask,
  output [63:0] auto_out_0_a_bits_data,
  output        auto_out_0_d_ready,
  input         auto_out_0_d_valid,
  input  [2:0]  auto_out_0_d_bits_opcode,
  input  [2:0]  auto_out_0_d_bits_size,
  input         auto_out_0_d_bits_denied,
  input  [63:0] auto_out_0_d_bits_data,
  input         auto_out_0_d_bits_corrupt
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
`endif // RANDOMIZE_REG_INIT
  wire  monitor_clock; // @[Nodes.scala 24:25]
  wire  monitor_reset; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_opcode; // @[Nodes.scala 24:25]
  wire [31:0] monitor_io_in_a_bits_address; // @[Nodes.scala 24:25]
  wire [7:0] monitor_io_in_a_bits_mask; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_size; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_denied; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_corrupt; // @[Nodes.scala 24:25]
  wire [31:0] _requestAIO_T = auto_in_a_bits_address ^ 32'h80000000; // @[Parameters.scala 137:31]
  wire [32:0] _requestAIO_T_1 = {1'b0,$signed(_requestAIO_T)}; // @[Parameters.scala 137:49]
  wire [32:0] _requestAIO_T_3 = $signed(_requestAIO_T_1) & 33'sh80000000; // @[Parameters.scala 137:52]
  wire  requestAIO_0_0 = $signed(_requestAIO_T_3) == 33'sh0; // @[Parameters.scala 137:67]
  wire [31:0] _requestAIO_T_5 = auto_in_a_bits_address ^ 32'h20000000; // @[Parameters.scala 137:31]
  wire [32:0] _requestAIO_T_6 = {1'b0,$signed(_requestAIO_T_5)}; // @[Parameters.scala 137:49]
  wire [32:0] _requestAIO_T_8 = $signed(_requestAIO_T_6) & 33'she0000000; // @[Parameters.scala 137:52]
  wire  _requestAIO_T_9 = $signed(_requestAIO_T_8) == 33'sh0; // @[Parameters.scala 137:67]
  wire [31:0] _requestAIO_T_10 = auto_in_a_bits_address ^ 32'h40000000; // @[Parameters.scala 137:31]
  wire [32:0] _requestAIO_T_11 = {1'b0,$signed(_requestAIO_T_10)}; // @[Parameters.scala 137:49]
  wire [32:0] _requestAIO_T_13 = $signed(_requestAIO_T_11) & 33'shc0000000; // @[Parameters.scala 137:52]
  wire  _requestAIO_T_14 = $signed(_requestAIO_T_13) == 33'sh0; // @[Parameters.scala 137:67]
  wire  requestAIO_0_1 = _requestAIO_T_9 | _requestAIO_T_14; // @[Xbar.scala 363:92]
  wire [32:0] _requestAIO_T_17 = {1'b0,$signed(auto_in_a_bits_address)}; // @[Parameters.scala 137:49]
  wire [32:0] _requestAIO_T_19 = $signed(_requestAIO_T_17) & 33'shf0020000; // @[Parameters.scala 137:52]
  wire  requestAIO_0_2 = $signed(_requestAIO_T_19) == 33'sh0; // @[Parameters.scala 137:67]
  wire [31:0] _requestAIO_T_21 = auto_in_a_bits_address ^ 32'h20000; // @[Parameters.scala 137:31]
  wire [32:0] _requestAIO_T_22 = {1'b0,$signed(_requestAIO_T_21)}; // @[Parameters.scala 137:49]
  wire [32:0] _requestAIO_T_24 = $signed(_requestAIO_T_22) & 33'shf0020000; // @[Parameters.scala 137:52]
  wire  requestAIO_0_3 = $signed(_requestAIO_T_24) == 33'sh0; // @[Parameters.scala 137:67]
  wire [31:0] _requestAIO_T_26 = auto_in_a_bits_address ^ 32'h10000000; // @[Parameters.scala 137:31]
  wire [32:0] _requestAIO_T_27 = {1'b0,$signed(_requestAIO_T_26)}; // @[Parameters.scala 137:49]
  wire [32:0] _requestAIO_T_29 = $signed(_requestAIO_T_27) & 33'shf0000000; // @[Parameters.scala 137:52]
  wire  requestAIO_0_4 = $signed(_requestAIO_T_29) == 33'sh0; // @[Parameters.scala 137:67]
  wire [11:0] _beatsDO_decode_T_1 = 12'h1f << auto_out_0_d_bits_size; // @[package.scala 234:77]
  wire [4:0] _beatsDO_decode_T_3 = ~_beatsDO_decode_T_1[4:0]; // @[package.scala 234:46]
  wire [1:0] beatsDO_decode = _beatsDO_decode_T_3[4:3]; // @[Edges.scala 219:59]
  wire  beatsDO_opdata = auto_out_0_d_bits_opcode[0]; // @[Edges.scala 105:36]
  wire [1:0] beatsDO_0 = beatsDO_opdata ? beatsDO_decode : 2'h0; // @[Edges.scala 220:14]
  wire [11:0] _beatsDO_decode_T_5 = 12'h1f << auto_out_1_d_bits_size; // @[package.scala 234:77]
  wire [4:0] _beatsDO_decode_T_7 = ~_beatsDO_decode_T_5[4:0]; // @[package.scala 234:46]
  wire [1:0] beatsDO_decode_1 = _beatsDO_decode_T_7[4:3]; // @[Edges.scala 219:59]
  wire  beatsDO_opdata_1 = auto_out_1_d_bits_opcode[0]; // @[Edges.scala 105:36]
  wire [1:0] beatsDO_1 = beatsDO_opdata_1 ? beatsDO_decode_1 : 2'h0; // @[Edges.scala 220:14]
  wire [11:0] _beatsDO_decode_T_9 = 12'h1f << auto_out_2_d_bits_size; // @[package.scala 234:77]
  wire [4:0] _beatsDO_decode_T_11 = ~_beatsDO_decode_T_9[4:0]; // @[package.scala 234:46]
  wire [1:0] beatsDO_decode_2 = _beatsDO_decode_T_11[4:3]; // @[Edges.scala 219:59]
  wire  beatsDO_opdata_2 = auto_out_2_d_bits_opcode[0]; // @[Edges.scala 105:36]
  wire [1:0] beatsDO_2 = beatsDO_opdata_2 ? beatsDO_decode_2 : 2'h0; // @[Edges.scala 220:14]
  wire [2:0] out_1_4_d_bits_size = {{1'd0}, auto_out_4_d_bits_size}; // @[BundleMap.scala 247:19 Xbar.scala 288:19]
  reg [1:0] beatsLeft; // @[Arbiter.scala 87:30]
  wire  idle = beatsLeft == 2'h0; // @[Arbiter.scala 88:28]
  wire  latch = idle & auto_in_d_ready; // @[Arbiter.scala 89:24]
  wire [4:0] readys_valid = {auto_out_4_d_valid,auto_out_3_d_valid,auto_out_2_d_valid,auto_out_1_d_valid,
    auto_out_0_d_valid}; // @[Cat.scala 33:92]
  wire  _readys_T_3 = ~reset; // @[Arbiter.scala 22:12]
  reg [4:0] readys_mask; // @[Arbiter.scala 23:23]
  wire [4:0] _readys_filter_T = ~readys_mask; // @[Arbiter.scala 24:30]
  wire [4:0] _readys_filter_T_1 = readys_valid & _readys_filter_T; // @[Arbiter.scala 24:28]
  wire [9:0] readys_filter = {_readys_filter_T_1,auto_out_4_d_valid,auto_out_3_d_valid,auto_out_2_d_valid,
    auto_out_1_d_valid,auto_out_0_d_valid}; // @[Cat.scala 33:92]
  wire [9:0] _GEN_1 = {{1'd0}, readys_filter[9:1]}; // @[package.scala 253:43]
  wire [9:0] _readys_unready_T_1 = readys_filter | _GEN_1; // @[package.scala 253:43]
  wire [9:0] _GEN_2 = {{2'd0}, _readys_unready_T_1[9:2]}; // @[package.scala 253:43]
  wire [9:0] _readys_unready_T_3 = _readys_unready_T_1 | _GEN_2; // @[package.scala 253:43]
  wire [9:0] _GEN_3 = {{4'd0}, _readys_unready_T_3[9:4]}; // @[package.scala 253:43]
  wire [9:0] _readys_unready_T_5 = _readys_unready_T_3 | _GEN_3; // @[package.scala 253:43]
  wire [9:0] _readys_unready_T_8 = {readys_mask, 5'h0}; // @[Arbiter.scala 25:66]
  wire [9:0] _GEN_4 = {{1'd0}, _readys_unready_T_5[9:1]}; // @[Arbiter.scala 25:58]
  wire [9:0] readys_unready = _GEN_4 | _readys_unready_T_8; // @[Arbiter.scala 25:58]
  wire [4:0] _readys_readys_T_2 = readys_unready[9:5] & readys_unready[4:0]; // @[Arbiter.scala 26:39]
  wire [4:0] readys_readys = ~_readys_readys_T_2; // @[Arbiter.scala 26:18]
  wire [4:0] _readys_mask_T = readys_readys & readys_valid; // @[Arbiter.scala 28:29]
  wire [5:0] _readys_mask_T_1 = {_readys_mask_T, 1'h0}; // @[package.scala 244:48]
  wire [4:0] _readys_mask_T_3 = _readys_mask_T | _readys_mask_T_1[4:0]; // @[package.scala 244:43]
  wire [6:0] _readys_mask_T_4 = {_readys_mask_T_3, 2'h0}; // @[package.scala 244:48]
  wire [4:0] _readys_mask_T_6 = _readys_mask_T_3 | _readys_mask_T_4[4:0]; // @[package.scala 244:43]
  wire [8:0] _readys_mask_T_7 = {_readys_mask_T_6, 4'h0}; // @[package.scala 244:48]
  wire [4:0] _readys_mask_T_9 = _readys_mask_T_6 | _readys_mask_T_7[4:0]; // @[package.scala 244:43]
  wire  readys_0 = readys_readys[0]; // @[Arbiter.scala 95:86]
  wire  readys_1 = readys_readys[1]; // @[Arbiter.scala 95:86]
  wire  readys_2 = readys_readys[2]; // @[Arbiter.scala 95:86]
  wire  readys_3 = readys_readys[3]; // @[Arbiter.scala 95:86]
  wire  readys_4 = readys_readys[4]; // @[Arbiter.scala 95:86]
  wire  earlyWinner_0 = readys_0 & auto_out_0_d_valid; // @[Arbiter.scala 97:79]
  wire  earlyWinner_1 = readys_1 & auto_out_1_d_valid; // @[Arbiter.scala 97:79]
  wire  earlyWinner_2 = readys_2 & auto_out_2_d_valid; // @[Arbiter.scala 97:79]
  wire  earlyWinner_3 = readys_3 & auto_out_3_d_valid; // @[Arbiter.scala 97:79]
  wire  earlyWinner_4 = readys_4 & auto_out_4_d_valid; // @[Arbiter.scala 97:79]
  wire  prefixOR_2 = earlyWinner_0 | earlyWinner_1; // @[Arbiter.scala 104:53]
  wire  prefixOR_3 = prefixOR_2 | earlyWinner_2; // @[Arbiter.scala 104:53]
  wire  prefixOR_4 = prefixOR_3 | earlyWinner_3; // @[Arbiter.scala 104:53]
  wire  _T_25 = auto_out_0_d_valid | auto_out_1_d_valid | auto_out_2_d_valid | auto_out_3_d_valid | auto_out_4_d_valid; // @[Arbiter.scala 107:36]
  wire  _T_26 = ~(auto_out_0_d_valid | auto_out_1_d_valid | auto_out_2_d_valid | auto_out_3_d_valid | auto_out_4_d_valid
    ); // @[Arbiter.scala 107:15]
  wire [1:0] maskedBeats_0 = earlyWinner_0 ? beatsDO_0 : 2'h0; // @[Arbiter.scala 111:73]
  wire [1:0] maskedBeats_1 = earlyWinner_1 ? beatsDO_1 : 2'h0; // @[Arbiter.scala 111:73]
  wire [1:0] maskedBeats_2 = earlyWinner_2 ? beatsDO_2 : 2'h0; // @[Arbiter.scala 111:73]
  wire [1:0] _initBeats_T = maskedBeats_0 | maskedBeats_1; // @[Arbiter.scala 112:44]
  wire [1:0] initBeats = _initBeats_T | maskedBeats_2; // @[Arbiter.scala 112:44]
  reg  state_0; // @[Arbiter.scala 116:26]
  wire  muxStateEarly_0 = idle ? earlyWinner_0 : state_0; // @[Arbiter.scala 117:30]
  reg  state_1; // @[Arbiter.scala 116:26]
  wire  muxStateEarly_1 = idle ? earlyWinner_1 : state_1; // @[Arbiter.scala 117:30]
  reg  state_2; // @[Arbiter.scala 116:26]
  wire  muxStateEarly_2 = idle ? earlyWinner_2 : state_2; // @[Arbiter.scala 117:30]
  reg  state_3; // @[Arbiter.scala 116:26]
  wire  muxStateEarly_3 = idle ? earlyWinner_3 : state_3; // @[Arbiter.scala 117:30]
  reg  state_4; // @[Arbiter.scala 116:26]
  wire  muxStateEarly_4 = idle ? earlyWinner_4 : state_4; // @[Arbiter.scala 117:30]
  wire  _sink_ACancel_earlyValid_T_12 = state_0 & auto_out_0_d_valid | state_1 & auto_out_1_d_valid | state_2 &
    auto_out_2_d_valid | state_3 & auto_out_3_d_valid | state_4 & auto_out_4_d_valid; // @[Mux.scala 27:73]
  wire  sink_ACancel_11_earlyValid = idle ? _T_25 : _sink_ACancel_earlyValid_T_12; // @[Arbiter.scala 125:29]
  wire  _beatsLeft_T_2 = auto_in_d_ready & sink_ACancel_11_earlyValid; // @[ReadyValidCancel.scala 49:33]
  wire [1:0] _GEN_5 = {{1'd0}, _beatsLeft_T_2}; // @[Arbiter.scala 113:52]
  wire [1:0] _beatsLeft_T_4 = beatsLeft - _GEN_5; // @[Arbiter.scala 113:52]
  wire  allowed_0 = idle ? readys_0 : state_0; // @[Arbiter.scala 121:24]
  wire  allowed_1 = idle ? readys_1 : state_1; // @[Arbiter.scala 121:24]
  wire  allowed_2 = idle ? readys_2 : state_2; // @[Arbiter.scala 121:24]
  wire  allowed_3 = idle ? readys_3 : state_3; // @[Arbiter.scala 121:24]
  wire  allowed_4 = idle ? readys_4 : state_4; // @[Arbiter.scala 121:24]
  wire [63:0] _T_57 = muxStateEarly_0 ? auto_out_0_d_bits_data : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _T_58 = muxStateEarly_1 ? auto_out_1_d_bits_data : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _T_59 = muxStateEarly_2 ? auto_out_2_d_bits_data : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _T_60 = muxStateEarly_3 ? auto_out_3_d_bits_data : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _T_61 = muxStateEarly_4 ? auto_out_4_d_bits_data : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _T_62 = _T_57 | _T_58; // @[Mux.scala 27:73]
  wire [63:0] _T_63 = _T_62 | _T_59; // @[Mux.scala 27:73]
  wire [63:0] _T_64 = _T_63 | _T_60; // @[Mux.scala 27:73]
  wire [2:0] _T_93 = muxStateEarly_0 ? auto_out_0_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_94 = muxStateEarly_1 ? auto_out_1_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_95 = muxStateEarly_2 ? auto_out_2_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_96 = muxStateEarly_3 ? 3'h3 : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_97 = muxStateEarly_4 ? out_1_4_d_bits_size : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_98 = _T_93 | _T_94; // @[Mux.scala 27:73]
  wire [2:0] _T_99 = _T_98 | _T_95; // @[Mux.scala 27:73]
  wire [2:0] _T_100 = _T_99 | _T_96; // @[Mux.scala 27:73]
  wire [2:0] _T_111 = muxStateEarly_0 ? auto_out_0_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_112 = muxStateEarly_1 ? auto_out_1_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_113 = muxStateEarly_2 ? auto_out_2_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_114 = muxStateEarly_3 ? auto_out_3_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_115 = muxStateEarly_4 ? auto_out_4_d_bits_opcode : 3'h0; // @[Mux.scala 27:73]
  wire [2:0] _T_116 = _T_111 | _T_112; // @[Mux.scala 27:73]
  wire [2:0] _T_117 = _T_116 | _T_113; // @[Mux.scala 27:73]
  wire [2:0] _T_118 = _T_117 | _T_114; // @[Mux.scala 27:73]
  TLMonitor_18 monitor ( // @[Nodes.scala 24:25]
    .clock(monitor_clock),
    .reset(monitor_reset),
    .io_in_a_ready(monitor_io_in_a_ready),
    .io_in_a_valid(monitor_io_in_a_valid),
    .io_in_a_bits_opcode(monitor_io_in_a_bits_opcode),
    .io_in_a_bits_address(monitor_io_in_a_bits_address),
    .io_in_a_bits_mask(monitor_io_in_a_bits_mask),
    .io_in_d_ready(monitor_io_in_d_ready),
    .io_in_d_valid(monitor_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_io_in_d_bits_opcode),
    .io_in_d_bits_size(monitor_io_in_d_bits_size),
    .io_in_d_bits_denied(monitor_io_in_d_bits_denied),
    .io_in_d_bits_corrupt(monitor_io_in_d_bits_corrupt)
  );
  assign auto_in_a_ready = requestAIO_0_0 & auto_out_0_a_ready | requestAIO_0_1 & auto_out_1_a_ready | requestAIO_0_2 &
    auto_out_2_a_ready | requestAIO_0_3 & auto_out_3_a_ready | requestAIO_0_4 & auto_out_4_a_ready; // @[Mux.scala 27:73]
  assign auto_in_d_valid = idle ? _T_25 : _sink_ACancel_earlyValid_T_12; // @[Arbiter.scala 125:29]
  assign auto_in_d_bits_data = _T_64 | _T_61; // @[Mux.scala 27:73]
  assign auto_out_4_a_valid = auto_in_a_valid & requestAIO_0_4; // @[Xbar.scala 428:50]
  assign auto_out_4_a_bits_opcode = auto_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_4_a_bits_address = auto_in_a_bits_address[28:0]; // @[Xbar.scala 132:50 BundleMap.scala 247:19]
  assign auto_out_4_a_bits_mask = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_4_a_bits_data = auto_in_a_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_4_d_ready = auto_in_d_ready & allowed_4; // @[Arbiter.scala 123:31]
  assign auto_out_3_a_valid = auto_in_a_valid & requestAIO_0_3; // @[Xbar.scala 428:50]
  assign auto_out_3_a_bits_opcode = auto_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_3_a_bits_address = auto_in_a_bits_address[17:0]; // @[Xbar.scala 132:50 BundleMap.scala 247:19]
  assign auto_out_3_a_bits_mask = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_3_a_bits_data = auto_in_a_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_3_d_ready = auto_in_d_ready & allowed_3; // @[Arbiter.scala 123:31]
  assign auto_out_2_a_valid = auto_in_a_valid & requestAIO_0_2; // @[Xbar.scala 428:50]
  assign auto_out_2_a_bits_opcode = auto_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_2_a_bits_address = auto_in_a_bits_address[15:0]; // @[Xbar.scala 132:50 BundleMap.scala 247:19]
  assign auto_out_2_a_bits_mask = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_2_a_bits_data = auto_in_a_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_2_d_ready = auto_in_d_ready & allowed_2; // @[Arbiter.scala 123:31]
  assign auto_out_1_a_valid = auto_in_a_valid & requestAIO_0_1; // @[Xbar.scala 428:50]
  assign auto_out_1_a_bits_opcode = auto_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_1_a_bits_address = auto_in_a_bits_address[30:0]; // @[Xbar.scala 132:50 BundleMap.scala 247:19]
  assign auto_out_1_a_bits_mask = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_1_a_bits_data = auto_in_a_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_1_d_ready = auto_in_d_ready & allowed_1; // @[Arbiter.scala 123:31]
  assign auto_out_0_a_valid = auto_in_a_valid & requestAIO_0_0; // @[Xbar.scala 428:50]
  assign auto_out_0_a_bits_opcode = auto_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_0_a_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_0_a_bits_mask = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_0_a_bits_data = auto_in_a_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_0_d_ready = auto_in_d_ready & allowed_0; // @[Arbiter.scala 123:31]
  assign monitor_clock = clock;
  assign monitor_reset = reset;
  assign monitor_io_in_a_ready = requestAIO_0_0 & auto_out_0_a_ready | requestAIO_0_1 & auto_out_1_a_ready |
    requestAIO_0_2 & auto_out_2_a_ready | requestAIO_0_3 & auto_out_3_a_ready | requestAIO_0_4 & auto_out_4_a_ready; // @[Mux.scala 27:73]
  assign monitor_io_in_a_valid = auto_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_opcode = auto_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_mask = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_ready = auto_in_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_valid = idle ? _T_25 : _sink_ACancel_earlyValid_T_12; // @[Arbiter.scala 125:29]
  assign monitor_io_in_d_bits_opcode = _T_118 | _T_115; // @[Mux.scala 27:73]
  assign monitor_io_in_d_bits_size = _T_100 | _T_97; // @[Mux.scala 27:73]
  assign monitor_io_in_d_bits_denied = muxStateEarly_0 & auto_out_0_d_bits_denied | muxStateEarly_1 &
    auto_out_1_d_bits_denied; // @[Mux.scala 27:73]
  assign monitor_io_in_d_bits_corrupt = muxStateEarly_0 & auto_out_0_d_bits_corrupt | muxStateEarly_1 &
    auto_out_1_d_bits_corrupt; // @[Mux.scala 27:73]
  always @(posedge clock) begin
    if (reset) begin // @[Arbiter.scala 87:30]
      beatsLeft <= 2'h0; // @[Arbiter.scala 87:30]
    end else if (latch) begin // @[Arbiter.scala 113:23]
      beatsLeft <= initBeats;
    end else begin
      beatsLeft <= _beatsLeft_T_4;
    end
    if (reset) begin // @[Arbiter.scala 23:23]
      readys_mask <= 5'h1f; // @[Arbiter.scala 23:23]
    end else if (latch & |readys_valid) begin // @[Arbiter.scala 27:32]
      readys_mask <= _readys_mask_T_9; // @[Arbiter.scala 28:12]
    end
    if (reset) begin // @[Arbiter.scala 116:26]
      state_0 <= 1'h0; // @[Arbiter.scala 116:26]
    end else if (idle) begin // @[Arbiter.scala 117:30]
      state_0 <= earlyWinner_0;
    end
    if (reset) begin // @[Arbiter.scala 116:26]
      state_1 <= 1'h0; // @[Arbiter.scala 116:26]
    end else if (idle) begin // @[Arbiter.scala 117:30]
      state_1 <= earlyWinner_1;
    end
    if (reset) begin // @[Arbiter.scala 116:26]
      state_2 <= 1'h0; // @[Arbiter.scala 116:26]
    end else if (idle) begin // @[Arbiter.scala 117:30]
      state_2 <= earlyWinner_2;
    end
    if (reset) begin // @[Arbiter.scala 116:26]
      state_3 <= 1'h0; // @[Arbiter.scala 116:26]
    end else if (idle) begin // @[Arbiter.scala 117:30]
      state_3 <= earlyWinner_3;
    end
    if (reset) begin // @[Arbiter.scala 116:26]
      state_4 <= 1'h0; // @[Arbiter.scala 116:26]
    end else if (idle) begin // @[Arbiter.scala 117:30]
      state_4 <= earlyWinner_4;
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_readys_T_3 & ~((~earlyWinner_0 | ~earlyWinner_1) & (~prefixOR_2 | ~earlyWinner_2) & (~prefixOR_3 | ~
          earlyWinner_3) & (~prefixOR_4 | ~earlyWinner_4))) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Arbiter.scala:105 assert((prefixOR zip earlyWinner) map { case (p,w) => !p || !w } reduce {_ && _})\n"
            ); // @[Arbiter.scala 105:13]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~((~earlyWinner_0 | ~earlyWinner_1) & (~prefixOR_2 | ~earlyWinner_2) & (~prefixOR_3 | ~earlyWinner_3) & (~
          prefixOR_4 | ~earlyWinner_4)) & _readys_T_3) begin
          $fatal; // @[Arbiter.scala 105:13]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_readys_T_3 & ~(~(auto_out_0_d_valid | auto_out_1_d_valid | auto_out_2_d_valid | auto_out_3_d_valid |
          auto_out_4_d_valid) | (prefixOR_4 | earlyWinner_4))) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Arbiter.scala:107 assert (!earlyValids.reduce(_||_) || earlyWinner.reduce(_||_))\n"
            ); // @[Arbiter.scala 107:14]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~(auto_out_0_d_valid | auto_out_1_d_valid | auto_out_2_d_valid | auto_out_3_d_valid | auto_out_4_d_valid)
           | (prefixOR_4 | earlyWinner_4)) & _readys_T_3) begin
          $fatal; // @[Arbiter.scala 107:14]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_readys_T_3 & ~(_T_26 | _T_25)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Arbiter.scala:108 assert (!validQuals .reduce(_||_) || validQuals .reduce(_||_))\n"
            ); // @[Arbiter.scala 108:14]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_26 | _T_25) & _readys_T_3) begin
          $fatal; // @[Arbiter.scala 108:14]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  beatsLeft = _RAND_0[1:0];
  _RAND_1 = {1{`RANDOM}};
  readys_mask = _RAND_1[4:0];
  _RAND_2 = {1{`RANDOM}};
  state_0 = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  state_1 = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  state_2 = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  state_3 = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  state_4 = _RAND_6[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module QueueCompatibility_2(
  input        clock,
  input        reset,
  output       io_enq_ready,
  input        io_enq_valid,
  input  [3:0] io_enq_bits_tl_state_size,
  input        io_enq_bits_tl_state_source,
  input        io_deq_ready,
  output       io_deq_valid,
  output [3:0] io_deq_bits_tl_state_size,
  output       io_deq_bits_tl_state_source
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_2;
`endif // RANDOMIZE_REG_INIT
  reg [3:0] ram_tl_state_size [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_tl_state_size_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_tl_state_size_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [3:0] ram_tl_state_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [3:0] ram_tl_state_size_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_tl_state_size_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_tl_state_size_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_tl_state_size_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_tl_state_source [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_tl_state_source_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_tl_state_source_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_tl_state_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_tl_state_source_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_tl_state_source_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_tl_state_source_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_tl_state_source_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_deq = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign ram_tl_state_size_io_deq_bits_MPORT_en = 1'h1;
  assign ram_tl_state_size_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_tl_state_size_io_deq_bits_MPORT_data = ram_tl_state_size[ram_tl_state_size_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_tl_state_size_MPORT_data = io_enq_bits_tl_state_size;
  assign ram_tl_state_size_MPORT_addr = 1'h0;
  assign ram_tl_state_size_MPORT_mask = 1'h1;
  assign ram_tl_state_size_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_tl_state_source_io_deq_bits_MPORT_en = 1'h1;
  assign ram_tl_state_source_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_tl_state_source_io_deq_bits_MPORT_data = ram_tl_state_source[ram_tl_state_source_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_tl_state_source_MPORT_data = io_enq_bits_tl_state_source;
  assign ram_tl_state_source_MPORT_addr = 1'h0;
  assign ram_tl_state_source_MPORT_mask = 1'h1;
  assign ram_tl_state_source_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = ~maybe_full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_tl_state_size = ram_tl_state_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_tl_state_source = ram_tl_state_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_tl_state_size_MPORT_en & ram_tl_state_size_MPORT_mask) begin
      ram_tl_state_size[ram_tl_state_size_MPORT_addr] <= ram_tl_state_size_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_tl_state_source_MPORT_en & ram_tl_state_source_MPORT_mask) begin
      ram_tl_state_source[ram_tl_state_source_MPORT_addr] <= ram_tl_state_source_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_tl_state_size[initvar] = _RAND_0[3:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_tl_state_source[initvar] = _RAND_1[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_2 = {1{`RANDOM}};
  maybe_full = _RAND_2[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module AXI4UserYanker(
  input          clock,
  input          reset,
  output         auto_in_aw_ready,
  input          auto_in_aw_valid,
  input  [3:0]   auto_in_aw_bits_id,
  input  [31:0]  auto_in_aw_bits_addr,
  input  [7:0]   auto_in_aw_bits_len,
  input  [2:0]   auto_in_aw_bits_size,
  input  [1:0]   auto_in_aw_bits_burst,
  input          auto_in_aw_bits_lock,
  input  [3:0]   auto_in_aw_bits_cache,
  input  [2:0]   auto_in_aw_bits_prot,
  input  [3:0]   auto_in_aw_bits_qos,
  input  [3:0]   auto_in_aw_bits_echo_tl_state_size,
  input          auto_in_aw_bits_echo_tl_state_source,
  output         auto_in_w_ready,
  input          auto_in_w_valid,
  input  [127:0] auto_in_w_bits_data,
  input  [15:0]  auto_in_w_bits_strb,
  input          auto_in_w_bits_last,
  input          auto_in_b_ready,
  output         auto_in_b_valid,
  output [1:0]   auto_in_b_bits_resp,
  output [3:0]   auto_in_b_bits_echo_tl_state_size,
  output         auto_in_b_bits_echo_tl_state_source,
  output         auto_in_ar_ready,
  input          auto_in_ar_valid,
  input  [3:0]   auto_in_ar_bits_id,
  input  [31:0]  auto_in_ar_bits_addr,
  input  [7:0]   auto_in_ar_bits_len,
  input  [2:0]   auto_in_ar_bits_size,
  input  [1:0]   auto_in_ar_bits_burst,
  input          auto_in_ar_bits_lock,
  input  [3:0]   auto_in_ar_bits_cache,
  input  [2:0]   auto_in_ar_bits_prot,
  input  [3:0]   auto_in_ar_bits_qos,
  input  [3:0]   auto_in_ar_bits_echo_tl_state_size,
  input          auto_in_ar_bits_echo_tl_state_source,
  input          auto_in_r_ready,
  output         auto_in_r_valid,
  output [127:0] auto_in_r_bits_data,
  output [1:0]   auto_in_r_bits_resp,
  output [3:0]   auto_in_r_bits_echo_tl_state_size,
  output         auto_in_r_bits_echo_tl_state_source,
  output         auto_in_r_bits_last,
  input          auto_out_aw_ready,
  output         auto_out_aw_valid,
  output [3:0]   auto_out_aw_bits_id,
  output [31:0]  auto_out_aw_bits_addr,
  output [7:0]   auto_out_aw_bits_len,
  output [2:0]   auto_out_aw_bits_size,
  output [1:0]   auto_out_aw_bits_burst,
  output         auto_out_aw_bits_lock,
  output [3:0]   auto_out_aw_bits_cache,
  output [2:0]   auto_out_aw_bits_prot,
  output [3:0]   auto_out_aw_bits_qos,
  input          auto_out_w_ready,
  output         auto_out_w_valid,
  output [127:0] auto_out_w_bits_data,
  output [15:0]  auto_out_w_bits_strb,
  output         auto_out_w_bits_last,
  output         auto_out_b_ready,
  input          auto_out_b_valid,
  input  [3:0]   auto_out_b_bits_id,
  input  [1:0]   auto_out_b_bits_resp,
  input          auto_out_ar_ready,
  output         auto_out_ar_valid,
  output [3:0]   auto_out_ar_bits_id,
  output [31:0]  auto_out_ar_bits_addr,
  output [7:0]   auto_out_ar_bits_len,
  output [2:0]   auto_out_ar_bits_size,
  output [1:0]   auto_out_ar_bits_burst,
  output         auto_out_ar_bits_lock,
  output [3:0]   auto_out_ar_bits_cache,
  output [2:0]   auto_out_ar_bits_prot,
  output [3:0]   auto_out_ar_bits_qos,
  output         auto_out_r_ready,
  input          auto_out_r_valid,
  input  [3:0]   auto_out_r_bits_id,
  input  [127:0] auto_out_r_bits_data,
  input  [1:0]   auto_out_r_bits_resp,
  input          auto_out_r_bits_last
);
  wire  QueueCompatibility_clock; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_reset; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_io_enq_ready; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_io_enq_valid; // @[UserYanker.scala 47:17]
  wire [3:0] QueueCompatibility_io_enq_bits_tl_state_size; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_io_enq_bits_tl_state_source; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_io_deq_ready; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_io_deq_valid; // @[UserYanker.scala 47:17]
  wire [3:0] QueueCompatibility_io_deq_bits_tl_state_size; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_io_deq_bits_tl_state_source; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_1_clock; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_1_reset; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_1_io_enq_ready; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_1_io_enq_valid; // @[UserYanker.scala 47:17]
  wire [3:0] QueueCompatibility_1_io_enq_bits_tl_state_size; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_1_io_enq_bits_tl_state_source; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_1_io_deq_ready; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_1_io_deq_valid; // @[UserYanker.scala 47:17]
  wire [3:0] QueueCompatibility_1_io_deq_bits_tl_state_size; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_1_io_deq_bits_tl_state_source; // @[UserYanker.scala 47:17]
  wire  _ar_ready_WIRE_0 = QueueCompatibility_io_enq_ready; // @[UserYanker.scala 55:{25,25}]
  wire  _GEN_1 = 4'h1 == auto_in_ar_bits_id ? 1'h0 : _ar_ready_WIRE_0; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_2 = 4'h2 == auto_in_ar_bits_id ? 1'h0 : _GEN_1; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_3 = 4'h3 == auto_in_ar_bits_id ? 1'h0 : _GEN_2; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_4 = 4'h4 == auto_in_ar_bits_id ? 1'h0 : _GEN_3; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_5 = 4'h5 == auto_in_ar_bits_id ? 1'h0 : _GEN_4; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_6 = 4'h6 == auto_in_ar_bits_id ? 1'h0 : _GEN_5; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_7 = 4'h7 == auto_in_ar_bits_id ? 1'h0 : _GEN_6; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_8 = 4'h8 == auto_in_ar_bits_id ? 1'h0 : _GEN_7; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_9 = 4'h9 == auto_in_ar_bits_id ? 1'h0 : _GEN_8; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_10 = 4'ha == auto_in_ar_bits_id ? 1'h0 : _GEN_9; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_11 = 4'hb == auto_in_ar_bits_id ? 1'h0 : _GEN_10; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_12 = 4'hc == auto_in_ar_bits_id ? 1'h0 : _GEN_11; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_13 = 4'hd == auto_in_ar_bits_id ? 1'h0 : _GEN_12; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_14 = 4'he == auto_in_ar_bits_id ? 1'h0 : _GEN_13; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_15 = 4'hf == auto_in_ar_bits_id ? 1'h0 : _GEN_14; // @[UserYanker.scala 56:{36,36}]
  wire  _r_valid_WIRE_0 = QueueCompatibility_io_deq_valid; // @[UserYanker.scala 61:{24,24}]
  wire  _GEN_17 = 4'h1 == auto_out_r_bits_id ? 1'h0 : _r_valid_WIRE_0; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_18 = 4'h2 == auto_out_r_bits_id ? 1'h0 : _GEN_17; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_19 = 4'h3 == auto_out_r_bits_id ? 1'h0 : _GEN_18; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_20 = 4'h4 == auto_out_r_bits_id ? 1'h0 : _GEN_19; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_21 = 4'h5 == auto_out_r_bits_id ? 1'h0 : _GEN_20; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_22 = 4'h6 == auto_out_r_bits_id ? 1'h0 : _GEN_21; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_23 = 4'h7 == auto_out_r_bits_id ? 1'h0 : _GEN_22; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_24 = 4'h8 == auto_out_r_bits_id ? 1'h0 : _GEN_23; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_25 = 4'h9 == auto_out_r_bits_id ? 1'h0 : _GEN_24; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_26 = 4'ha == auto_out_r_bits_id ? 1'h0 : _GEN_25; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_27 = 4'hb == auto_out_r_bits_id ? 1'h0 : _GEN_26; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_28 = 4'hc == auto_out_r_bits_id ? 1'h0 : _GEN_27; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_29 = 4'hd == auto_out_r_bits_id ? 1'h0 : _GEN_28; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_30 = 4'he == auto_out_r_bits_id ? 1'h0 : _GEN_29; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_31 = 4'hf == auto_out_r_bits_id ? 1'h0 : _GEN_30; // @[UserYanker.scala 63:{28,28}]
  wire  _T_3 = ~reset; // @[UserYanker.scala 63:14]
  wire  _r_bits_WIRE_0_tl_state_source = QueueCompatibility_io_deq_bits_tl_state_source; // @[UserYanker.scala 62:{23,23}]
  wire  _GEN_33 = 4'h1 == auto_out_r_bits_id ? 1'h0 : _r_bits_WIRE_0_tl_state_source; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_34 = 4'h2 == auto_out_r_bits_id ? 1'h0 : _GEN_33; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_35 = 4'h3 == auto_out_r_bits_id ? 1'h0 : _GEN_34; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_36 = 4'h4 == auto_out_r_bits_id ? 1'h0 : _GEN_35; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_37 = 4'h5 == auto_out_r_bits_id ? 1'h0 : _GEN_36; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_38 = 4'h6 == auto_out_r_bits_id ? 1'h0 : _GEN_37; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_39 = 4'h7 == auto_out_r_bits_id ? 1'h0 : _GEN_38; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_40 = 4'h8 == auto_out_r_bits_id ? 1'h0 : _GEN_39; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_41 = 4'h9 == auto_out_r_bits_id ? 1'h0 : _GEN_40; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_42 = 4'ha == auto_out_r_bits_id ? 1'h0 : _GEN_41; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_43 = 4'hb == auto_out_r_bits_id ? 1'h0 : _GEN_42; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_44 = 4'hc == auto_out_r_bits_id ? 1'h0 : _GEN_43; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_45 = 4'hd == auto_out_r_bits_id ? 1'h0 : _GEN_44; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_46 = 4'he == auto_out_r_bits_id ? 1'h0 : _GEN_45; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _r_bits_WIRE_0_tl_state_size = QueueCompatibility_io_deq_bits_tl_state_size; // @[UserYanker.scala 62:{23,23}]
  wire [3:0] _GEN_49 = 4'h1 == auto_out_r_bits_id ? 4'h0 : _r_bits_WIRE_0_tl_state_size; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_50 = 4'h2 == auto_out_r_bits_id ? 4'h0 : _GEN_49; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_51 = 4'h3 == auto_out_r_bits_id ? 4'h0 : _GEN_50; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_52 = 4'h4 == auto_out_r_bits_id ? 4'h0 : _GEN_51; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_53 = 4'h5 == auto_out_r_bits_id ? 4'h0 : _GEN_52; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_54 = 4'h6 == auto_out_r_bits_id ? 4'h0 : _GEN_53; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_55 = 4'h7 == auto_out_r_bits_id ? 4'h0 : _GEN_54; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_56 = 4'h8 == auto_out_r_bits_id ? 4'h0 : _GEN_55; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_57 = 4'h9 == auto_out_r_bits_id ? 4'h0 : _GEN_56; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_58 = 4'ha == auto_out_r_bits_id ? 4'h0 : _GEN_57; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_59 = 4'hb == auto_out_r_bits_id ? 4'h0 : _GEN_58; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_60 = 4'hc == auto_out_r_bits_id ? 4'h0 : _GEN_59; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_61 = 4'hd == auto_out_r_bits_id ? 4'h0 : _GEN_60; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_62 = 4'he == auto_out_r_bits_id ? 4'h0 : _GEN_61; // @[BundleMap.scala 247:{19,19}]
  wire [15:0] _arsel_T = 16'h1 << auto_in_ar_bits_id; // @[OneHot.scala 64:12]
  wire  arsel_0 = _arsel_T[0]; // @[UserYanker.scala 67:55]
  wire [15:0] _rsel_T = 16'h1 << auto_out_r_bits_id; // @[OneHot.scala 64:12]
  wire  rsel_0 = _rsel_T[0]; // @[UserYanker.scala 68:55]
  wire  _aw_ready_WIRE_0 = QueueCompatibility_1_io_enq_ready; // @[UserYanker.scala 76:{25,25}]
  wire  _GEN_65 = 4'h1 == auto_in_aw_bits_id ? 1'h0 : _aw_ready_WIRE_0; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_66 = 4'h2 == auto_in_aw_bits_id ? 1'h0 : _GEN_65; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_67 = 4'h3 == auto_in_aw_bits_id ? 1'h0 : _GEN_66; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_68 = 4'h4 == auto_in_aw_bits_id ? 1'h0 : _GEN_67; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_69 = 4'h5 == auto_in_aw_bits_id ? 1'h0 : _GEN_68; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_70 = 4'h6 == auto_in_aw_bits_id ? 1'h0 : _GEN_69; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_71 = 4'h7 == auto_in_aw_bits_id ? 1'h0 : _GEN_70; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_72 = 4'h8 == auto_in_aw_bits_id ? 1'h0 : _GEN_71; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_73 = 4'h9 == auto_in_aw_bits_id ? 1'h0 : _GEN_72; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_74 = 4'ha == auto_in_aw_bits_id ? 1'h0 : _GEN_73; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_75 = 4'hb == auto_in_aw_bits_id ? 1'h0 : _GEN_74; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_76 = 4'hc == auto_in_aw_bits_id ? 1'h0 : _GEN_75; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_77 = 4'hd == auto_in_aw_bits_id ? 1'h0 : _GEN_76; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_78 = 4'he == auto_in_aw_bits_id ? 1'h0 : _GEN_77; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_79 = 4'hf == auto_in_aw_bits_id ? 1'h0 : _GEN_78; // @[UserYanker.scala 77:{36,36}]
  wire  _b_valid_WIRE_0 = QueueCompatibility_1_io_deq_valid; // @[UserYanker.scala 82:{24,24}]
  wire  _GEN_81 = 4'h1 == auto_out_b_bits_id ? 1'h0 : _b_valid_WIRE_0; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_82 = 4'h2 == auto_out_b_bits_id ? 1'h0 : _GEN_81; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_83 = 4'h3 == auto_out_b_bits_id ? 1'h0 : _GEN_82; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_84 = 4'h4 == auto_out_b_bits_id ? 1'h0 : _GEN_83; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_85 = 4'h5 == auto_out_b_bits_id ? 1'h0 : _GEN_84; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_86 = 4'h6 == auto_out_b_bits_id ? 1'h0 : _GEN_85; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_87 = 4'h7 == auto_out_b_bits_id ? 1'h0 : _GEN_86; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_88 = 4'h8 == auto_out_b_bits_id ? 1'h0 : _GEN_87; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_89 = 4'h9 == auto_out_b_bits_id ? 1'h0 : _GEN_88; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_90 = 4'ha == auto_out_b_bits_id ? 1'h0 : _GEN_89; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_91 = 4'hb == auto_out_b_bits_id ? 1'h0 : _GEN_90; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_92 = 4'hc == auto_out_b_bits_id ? 1'h0 : _GEN_91; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_93 = 4'hd == auto_out_b_bits_id ? 1'h0 : _GEN_92; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_94 = 4'he == auto_out_b_bits_id ? 1'h0 : _GEN_93; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_95 = 4'hf == auto_out_b_bits_id ? 1'h0 : _GEN_94; // @[UserYanker.scala 84:{28,28}]
  wire  _b_bits_WIRE_0_tl_state_source = QueueCompatibility_1_io_deq_bits_tl_state_source; // @[UserYanker.scala 83:{23,23}]
  wire  _GEN_97 = 4'h1 == auto_out_b_bits_id ? 1'h0 : _b_bits_WIRE_0_tl_state_source; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_98 = 4'h2 == auto_out_b_bits_id ? 1'h0 : _GEN_97; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_99 = 4'h3 == auto_out_b_bits_id ? 1'h0 : _GEN_98; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_100 = 4'h4 == auto_out_b_bits_id ? 1'h0 : _GEN_99; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_101 = 4'h5 == auto_out_b_bits_id ? 1'h0 : _GEN_100; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_102 = 4'h6 == auto_out_b_bits_id ? 1'h0 : _GEN_101; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_103 = 4'h7 == auto_out_b_bits_id ? 1'h0 : _GEN_102; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_104 = 4'h8 == auto_out_b_bits_id ? 1'h0 : _GEN_103; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_105 = 4'h9 == auto_out_b_bits_id ? 1'h0 : _GEN_104; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_106 = 4'ha == auto_out_b_bits_id ? 1'h0 : _GEN_105; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_107 = 4'hb == auto_out_b_bits_id ? 1'h0 : _GEN_106; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_108 = 4'hc == auto_out_b_bits_id ? 1'h0 : _GEN_107; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_109 = 4'hd == auto_out_b_bits_id ? 1'h0 : _GEN_108; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_110 = 4'he == auto_out_b_bits_id ? 1'h0 : _GEN_109; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _b_bits_WIRE_0_tl_state_size = QueueCompatibility_1_io_deq_bits_tl_state_size; // @[UserYanker.scala 83:{23,23}]
  wire [3:0] _GEN_113 = 4'h1 == auto_out_b_bits_id ? 4'h0 : _b_bits_WIRE_0_tl_state_size; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_114 = 4'h2 == auto_out_b_bits_id ? 4'h0 : _GEN_113; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_115 = 4'h3 == auto_out_b_bits_id ? 4'h0 : _GEN_114; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_116 = 4'h4 == auto_out_b_bits_id ? 4'h0 : _GEN_115; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_117 = 4'h5 == auto_out_b_bits_id ? 4'h0 : _GEN_116; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_118 = 4'h6 == auto_out_b_bits_id ? 4'h0 : _GEN_117; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_119 = 4'h7 == auto_out_b_bits_id ? 4'h0 : _GEN_118; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_120 = 4'h8 == auto_out_b_bits_id ? 4'h0 : _GEN_119; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_121 = 4'h9 == auto_out_b_bits_id ? 4'h0 : _GEN_120; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_122 = 4'ha == auto_out_b_bits_id ? 4'h0 : _GEN_121; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_123 = 4'hb == auto_out_b_bits_id ? 4'h0 : _GEN_122; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_124 = 4'hc == auto_out_b_bits_id ? 4'h0 : _GEN_123; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_125 = 4'hd == auto_out_b_bits_id ? 4'h0 : _GEN_124; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_126 = 4'he == auto_out_b_bits_id ? 4'h0 : _GEN_125; // @[BundleMap.scala 247:{19,19}]
  wire [15:0] _awsel_T = 16'h1 << auto_in_aw_bits_id; // @[OneHot.scala 64:12]
  wire  awsel_0 = _awsel_T[0]; // @[UserYanker.scala 88:55]
  wire [15:0] _bsel_T = 16'h1 << auto_out_b_bits_id; // @[OneHot.scala 64:12]
  wire  bsel_0 = _bsel_T[0]; // @[UserYanker.scala 89:55]
  QueueCompatibility_2 QueueCompatibility ( // @[UserYanker.scala 47:17]
    .clock(QueueCompatibility_clock),
    .reset(QueueCompatibility_reset),
    .io_enq_ready(QueueCompatibility_io_enq_ready),
    .io_enq_valid(QueueCompatibility_io_enq_valid),
    .io_enq_bits_tl_state_size(QueueCompatibility_io_enq_bits_tl_state_size),
    .io_enq_bits_tl_state_source(QueueCompatibility_io_enq_bits_tl_state_source),
    .io_deq_ready(QueueCompatibility_io_deq_ready),
    .io_deq_valid(QueueCompatibility_io_deq_valid),
    .io_deq_bits_tl_state_size(QueueCompatibility_io_deq_bits_tl_state_size),
    .io_deq_bits_tl_state_source(QueueCompatibility_io_deq_bits_tl_state_source)
  );
  QueueCompatibility_2 QueueCompatibility_1 ( // @[UserYanker.scala 47:17]
    .clock(QueueCompatibility_1_clock),
    .reset(QueueCompatibility_1_reset),
    .io_enq_ready(QueueCompatibility_1_io_enq_ready),
    .io_enq_valid(QueueCompatibility_1_io_enq_valid),
    .io_enq_bits_tl_state_size(QueueCompatibility_1_io_enq_bits_tl_state_size),
    .io_enq_bits_tl_state_source(QueueCompatibility_1_io_enq_bits_tl_state_source),
    .io_deq_ready(QueueCompatibility_1_io_deq_ready),
    .io_deq_valid(QueueCompatibility_1_io_deq_valid),
    .io_deq_bits_tl_state_size(QueueCompatibility_1_io_deq_bits_tl_state_size),
    .io_deq_bits_tl_state_source(QueueCompatibility_1_io_deq_bits_tl_state_source)
  );
  assign auto_in_aw_ready = auto_out_aw_ready & _GEN_79; // @[UserYanker.scala 77:36]
  assign auto_in_w_ready = auto_out_w_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_b_valid = auto_out_b_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_b_bits_resp = auto_out_b_bits_resp; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_b_bits_echo_tl_state_size = 4'hf == auto_out_b_bits_id ? 4'h0 : _GEN_126; // @[BundleMap.scala 247:{19,19}]
  assign auto_in_b_bits_echo_tl_state_source = 4'hf == auto_out_b_bits_id ? 1'h0 : _GEN_110; // @[BundleMap.scala 247:{19,19}]
  assign auto_in_ar_ready = auto_out_ar_ready & _GEN_15; // @[UserYanker.scala 56:36]
  assign auto_in_r_valid = auto_out_r_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_r_bits_data = auto_out_r_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_r_bits_resp = auto_out_r_bits_resp; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_r_bits_echo_tl_state_size = 4'hf == auto_out_r_bits_id ? 4'h0 : _GEN_62; // @[BundleMap.scala 247:{19,19}]
  assign auto_in_r_bits_echo_tl_state_source = 4'hf == auto_out_r_bits_id ? 1'h0 : _GEN_46; // @[BundleMap.scala 247:{19,19}]
  assign auto_in_r_bits_last = auto_out_r_bits_last; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_out_aw_valid = auto_in_aw_valid & _GEN_79; // @[UserYanker.scala 78:36]
  assign auto_out_aw_bits_id = auto_in_aw_bits_id; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_addr = auto_in_aw_bits_addr; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_len = auto_in_aw_bits_len; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_size = auto_in_aw_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_burst = auto_in_aw_bits_burst; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_lock = auto_in_aw_bits_lock; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_cache = auto_in_aw_bits_cache; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_prot = auto_in_aw_bits_prot; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_qos = auto_in_aw_bits_qos; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_valid = auto_in_w_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_bits_data = auto_in_w_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_bits_strb = auto_in_w_bits_strb; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_bits_last = auto_in_w_bits_last; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_b_ready = auto_in_b_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_valid = auto_in_ar_valid & _GEN_15; // @[UserYanker.scala 57:36]
  assign auto_out_ar_bits_id = auto_in_ar_bits_id; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_addr = auto_in_ar_bits_addr; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_len = auto_in_ar_bits_len; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_size = auto_in_ar_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_burst = auto_in_ar_bits_burst; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_lock = auto_in_ar_bits_lock; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_cache = auto_in_ar_bits_cache; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_prot = auto_in_ar_bits_prot; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_qos = auto_in_ar_bits_qos; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_r_ready = auto_in_r_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign QueueCompatibility_clock = clock;
  assign QueueCompatibility_reset = reset;
  assign QueueCompatibility_io_enq_valid = auto_in_ar_valid & auto_out_ar_ready & arsel_0; // @[UserYanker.scala 71:53]
  assign QueueCompatibility_io_enq_bits_tl_state_size = auto_in_ar_bits_echo_tl_state_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign QueueCompatibility_io_enq_bits_tl_state_source = auto_in_ar_bits_echo_tl_state_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign QueueCompatibility_io_deq_ready = auto_out_r_valid & auto_in_r_ready & rsel_0 & auto_out_r_bits_last; // @[UserYanker.scala 70:58]
  assign QueueCompatibility_1_clock = clock;
  assign QueueCompatibility_1_reset = reset;
  assign QueueCompatibility_1_io_enq_valid = auto_in_aw_valid & auto_out_aw_ready & awsel_0; // @[UserYanker.scala 92:53]
  assign QueueCompatibility_1_io_enq_bits_tl_state_size = auto_in_aw_bits_echo_tl_state_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign QueueCompatibility_1_io_enq_bits_tl_state_source = auto_in_aw_bits_echo_tl_state_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign QueueCompatibility_1_io_deq_ready = auto_out_b_valid & auto_in_b_ready & bsel_0; // @[UserYanker.scala 91:53]
  always @(posedge clock) begin
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~auto_out_r_valid | _GEN_31)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at UserYanker.scala:63 assert (!out.r.valid || r_valid) // Q must be ready faster than the response\n"
            ); // @[UserYanker.scala 63:14]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~auto_out_r_valid | _GEN_31) & ~reset) begin
          $fatal; // @[UserYanker.scala 63:14]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_3 & ~(~auto_out_b_valid | _GEN_95)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at UserYanker.scala:84 assert (!out.b.valid || b_valid) // Q must be ready faster than the response\n"
            ); // @[UserYanker.scala 84:14]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~auto_out_b_valid | _GEN_95) & _T_3) begin
          $fatal; // @[UserYanker.scala 84:14]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
endmodule
module AXI4IdIndexer(
  output         auto_in_aw_ready,
  input          auto_in_aw_valid,
  input          auto_in_aw_bits_id,
  input  [31:0]  auto_in_aw_bits_addr,
  input  [7:0]   auto_in_aw_bits_len,
  input  [2:0]   auto_in_aw_bits_size,
  input  [1:0]   auto_in_aw_bits_burst,
  input          auto_in_aw_bits_lock,
  input  [3:0]   auto_in_aw_bits_cache,
  input  [2:0]   auto_in_aw_bits_prot,
  input  [3:0]   auto_in_aw_bits_qos,
  input  [3:0]   auto_in_aw_bits_echo_tl_state_size,
  input          auto_in_aw_bits_echo_tl_state_source,
  output         auto_in_w_ready,
  input          auto_in_w_valid,
  input  [127:0] auto_in_w_bits_data,
  input  [15:0]  auto_in_w_bits_strb,
  input          auto_in_w_bits_last,
  input          auto_in_b_ready,
  output         auto_in_b_valid,
  output [1:0]   auto_in_b_bits_resp,
  output [3:0]   auto_in_b_bits_echo_tl_state_size,
  output         auto_in_b_bits_echo_tl_state_source,
  output         auto_in_ar_ready,
  input          auto_in_ar_valid,
  input          auto_in_ar_bits_id,
  input  [31:0]  auto_in_ar_bits_addr,
  input  [7:0]   auto_in_ar_bits_len,
  input  [2:0]   auto_in_ar_bits_size,
  input  [1:0]   auto_in_ar_bits_burst,
  input          auto_in_ar_bits_lock,
  input  [3:0]   auto_in_ar_bits_cache,
  input  [2:0]   auto_in_ar_bits_prot,
  input  [3:0]   auto_in_ar_bits_qos,
  input  [3:0]   auto_in_ar_bits_echo_tl_state_size,
  input          auto_in_ar_bits_echo_tl_state_source,
  input          auto_in_r_ready,
  output         auto_in_r_valid,
  output [127:0] auto_in_r_bits_data,
  output [1:0]   auto_in_r_bits_resp,
  output [3:0]   auto_in_r_bits_echo_tl_state_size,
  output         auto_in_r_bits_echo_tl_state_source,
  output         auto_in_r_bits_last,
  input          auto_out_aw_ready,
  output         auto_out_aw_valid,
  output [3:0]   auto_out_aw_bits_id,
  output [31:0]  auto_out_aw_bits_addr,
  output [7:0]   auto_out_aw_bits_len,
  output [2:0]   auto_out_aw_bits_size,
  output [1:0]   auto_out_aw_bits_burst,
  output         auto_out_aw_bits_lock,
  output [3:0]   auto_out_aw_bits_cache,
  output [2:0]   auto_out_aw_bits_prot,
  output [3:0]   auto_out_aw_bits_qos,
  output [3:0]   auto_out_aw_bits_echo_tl_state_size,
  output         auto_out_aw_bits_echo_tl_state_source,
  input          auto_out_w_ready,
  output         auto_out_w_valid,
  output [127:0] auto_out_w_bits_data,
  output [15:0]  auto_out_w_bits_strb,
  output         auto_out_w_bits_last,
  output         auto_out_b_ready,
  input          auto_out_b_valid,
  input  [1:0]   auto_out_b_bits_resp,
  input  [3:0]   auto_out_b_bits_echo_tl_state_size,
  input          auto_out_b_bits_echo_tl_state_source,
  input          auto_out_ar_ready,
  output         auto_out_ar_valid,
  output [3:0]   auto_out_ar_bits_id,
  output [31:0]  auto_out_ar_bits_addr,
  output [7:0]   auto_out_ar_bits_len,
  output [2:0]   auto_out_ar_bits_size,
  output [1:0]   auto_out_ar_bits_burst,
  output         auto_out_ar_bits_lock,
  output [3:0]   auto_out_ar_bits_cache,
  output [2:0]   auto_out_ar_bits_prot,
  output [3:0]   auto_out_ar_bits_qos,
  output [3:0]   auto_out_ar_bits_echo_tl_state_size,
  output         auto_out_ar_bits_echo_tl_state_source,
  output         auto_out_r_ready,
  input          auto_out_r_valid,
  input  [127:0] auto_out_r_bits_data,
  input  [1:0]   auto_out_r_bits_resp,
  input  [3:0]   auto_out_r_bits_echo_tl_state_size,
  input          auto_out_r_bits_echo_tl_state_source,
  input          auto_out_r_bits_last
);
  assign auto_in_aw_ready = auto_out_aw_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_w_ready = auto_out_w_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_b_valid = auto_out_b_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_b_bits_resp = auto_out_b_bits_resp; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_b_bits_echo_tl_state_size = auto_out_b_bits_echo_tl_state_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_b_bits_echo_tl_state_source = auto_out_b_bits_echo_tl_state_source; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_ar_ready = auto_out_ar_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_r_valid = auto_out_r_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_r_bits_data = auto_out_r_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_r_bits_resp = auto_out_r_bits_resp; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_r_bits_echo_tl_state_size = auto_out_r_bits_echo_tl_state_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_r_bits_echo_tl_state_source = auto_out_r_bits_echo_tl_state_source; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_r_bits_last = auto_out_r_bits_last; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_out_aw_valid = auto_in_aw_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_id = {{3'd0}, auto_in_aw_bits_id}; // @[Nodes.scala 1207:84 BundleMap.scala 247:19]
  assign auto_out_aw_bits_addr = auto_in_aw_bits_addr; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_len = auto_in_aw_bits_len; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_size = auto_in_aw_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_burst = auto_in_aw_bits_burst; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_lock = auto_in_aw_bits_lock; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_cache = auto_in_aw_bits_cache; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_prot = auto_in_aw_bits_prot; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_qos = auto_in_aw_bits_qos; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_echo_tl_state_size = auto_in_aw_bits_echo_tl_state_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_echo_tl_state_source = auto_in_aw_bits_echo_tl_state_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_valid = auto_in_w_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_bits_data = auto_in_w_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_bits_strb = auto_in_w_bits_strb; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_bits_last = auto_in_w_bits_last; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_b_ready = auto_in_b_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_valid = auto_in_ar_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_id = {{3'd0}, auto_in_ar_bits_id}; // @[Nodes.scala 1207:84 BundleMap.scala 247:19]
  assign auto_out_ar_bits_addr = auto_in_ar_bits_addr; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_len = auto_in_ar_bits_len; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_size = auto_in_ar_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_burst = auto_in_ar_bits_burst; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_lock = auto_in_ar_bits_lock; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_cache = auto_in_ar_bits_cache; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_prot = auto_in_ar_bits_prot; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_qos = auto_in_ar_bits_qos; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_echo_tl_state_size = auto_in_ar_bits_echo_tl_state_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_echo_tl_state_source = auto_in_ar_bits_echo_tl_state_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_r_ready = auto_in_r_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
endmodule
module Queue_44(
  input          clock,
  input          reset,
  output         io_enq_ready,
  input          io_enq_valid,
  input  [127:0] io_enq_bits_data,
  input  [1:0]   io_enq_bits_resp,
  input  [3:0]   io_enq_bits_echo_tl_state_size,
  input          io_enq_bits_echo_tl_state_source,
  input          io_enq_bits_last,
  input          io_deq_ready,
  output         io_deq_valid,
  output [127:0] io_deq_bits_data,
  output [1:0]   io_deq_bits_resp,
  output [3:0]   io_deq_bits_echo_tl_state_size,
  output         io_deq_bits_echo_tl_state_source,
  output         io_deq_bits_last
);
`ifdef RANDOMIZE_MEM_INIT
  reg [127:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
`endif // RANDOMIZE_REG_INIT
  reg [127:0] ram_data [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [127:0] ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [127:0] ram_data_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_en; // @[Decoupled.scala 275:95]
  reg [1:0] ram_resp [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_resp_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_resp_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [1:0] ram_resp_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [1:0] ram_resp_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_resp_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_resp_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_resp_MPORT_en; // @[Decoupled.scala 275:95]
  reg [3:0] ram_echo_tl_state_size [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_size_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_size_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [3:0] ram_echo_tl_state_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [3:0] ram_echo_tl_state_size_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_size_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_size_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_size_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_echo_tl_state_source [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_last [0:1]; // @[Decoupled.scala 275:95]
  wire  ram_last_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_last_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_last_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_last_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_last_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_last_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_last_MPORT_en; // @[Decoupled.scala 275:95]
  reg  enq_ptr_value; // @[Counter.scala 61:40]
  reg  deq_ptr_value; // @[Counter.scala 61:40]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  ptr_match = enq_ptr_value == deq_ptr_value; // @[Decoupled.scala 279:33]
  wire  empty = ptr_match & ~maybe_full; // @[Decoupled.scala 280:25]
  wire  full = ptr_match & maybe_full; // @[Decoupled.scala 281:24]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_deq = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign ram_data_io_deq_bits_MPORT_en = 1'h1;
  assign ram_data_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_data_io_deq_bits_MPORT_data = ram_data[ram_data_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_data_MPORT_data = io_enq_bits_data;
  assign ram_data_MPORT_addr = enq_ptr_value;
  assign ram_data_MPORT_mask = 1'h1;
  assign ram_data_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_resp_io_deq_bits_MPORT_en = 1'h1;
  assign ram_resp_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_resp_io_deq_bits_MPORT_data = ram_resp[ram_resp_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_resp_MPORT_data = io_enq_bits_resp;
  assign ram_resp_MPORT_addr = enq_ptr_value;
  assign ram_resp_MPORT_mask = 1'h1;
  assign ram_resp_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_echo_tl_state_size_io_deq_bits_MPORT_en = 1'h1;
  assign ram_echo_tl_state_size_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_echo_tl_state_size_io_deq_bits_MPORT_data =
    ram_echo_tl_state_size[ram_echo_tl_state_size_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_echo_tl_state_size_MPORT_data = io_enq_bits_echo_tl_state_size;
  assign ram_echo_tl_state_size_MPORT_addr = enq_ptr_value;
  assign ram_echo_tl_state_size_MPORT_mask = 1'h1;
  assign ram_echo_tl_state_size_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_echo_tl_state_source_io_deq_bits_MPORT_en = 1'h1;
  assign ram_echo_tl_state_source_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_echo_tl_state_source_io_deq_bits_MPORT_data =
    ram_echo_tl_state_source[ram_echo_tl_state_source_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_echo_tl_state_source_MPORT_data = io_enq_bits_echo_tl_state_source;
  assign ram_echo_tl_state_source_MPORT_addr = enq_ptr_value;
  assign ram_echo_tl_state_source_MPORT_mask = 1'h1;
  assign ram_echo_tl_state_source_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_last_io_deq_bits_MPORT_en = 1'h1;
  assign ram_last_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_last_io_deq_bits_MPORT_data = ram_last[ram_last_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_last_MPORT_data = io_enq_bits_last;
  assign ram_last_MPORT_addr = enq_ptr_value;
  assign ram_last_MPORT_mask = 1'h1;
  assign ram_last_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = ~full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_data = ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_resp = ram_resp_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_echo_tl_state_size = ram_echo_tl_state_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_echo_tl_state_source = ram_echo_tl_state_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_last = ram_last_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_data_MPORT_en & ram_data_MPORT_mask) begin
      ram_data[ram_data_MPORT_addr] <= ram_data_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_resp_MPORT_en & ram_resp_MPORT_mask) begin
      ram_resp[ram_resp_MPORT_addr] <= ram_resp_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_echo_tl_state_size_MPORT_en & ram_echo_tl_state_size_MPORT_mask) begin
      ram_echo_tl_state_size[ram_echo_tl_state_size_MPORT_addr] <= ram_echo_tl_state_size_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_echo_tl_state_source_MPORT_en & ram_echo_tl_state_source_MPORT_mask) begin
      ram_echo_tl_state_source[ram_echo_tl_state_source_MPORT_addr] <= ram_echo_tl_state_source_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_last_MPORT_en & ram_last_MPORT_mask) begin
      ram_last[ram_last_MPORT_addr] <= ram_last_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Counter.scala 61:40]
      enq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_enq) begin // @[Decoupled.scala 288:16]
      enq_ptr_value <= enq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Counter.scala 61:40]
      deq_ptr_value <= 1'h0; // @[Counter.scala 61:40]
    end else if (do_deq) begin // @[Decoupled.scala 292:16]
      deq_ptr_value <= deq_ptr_value + 1'h1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {4{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_data[initvar] = _RAND_0[127:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_resp[initvar] = _RAND_1[1:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_echo_tl_state_size[initvar] = _RAND_2[3:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_echo_tl_state_source[initvar] = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    ram_last[initvar] = _RAND_4[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_5 = {1{`RANDOM}};
  enq_ptr_value = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  deq_ptr_value = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  maybe_full = _RAND_7[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module AXI4Deinterleaver(
  input          clock,
  input          reset,
  output         auto_in_aw_ready,
  input          auto_in_aw_valid,
  input          auto_in_aw_bits_id,
  input  [31:0]  auto_in_aw_bits_addr,
  input  [7:0]   auto_in_aw_bits_len,
  input  [2:0]   auto_in_aw_bits_size,
  input  [1:0]   auto_in_aw_bits_burst,
  input          auto_in_aw_bits_lock,
  input  [3:0]   auto_in_aw_bits_cache,
  input  [2:0]   auto_in_aw_bits_prot,
  input  [3:0]   auto_in_aw_bits_qos,
  input  [3:0]   auto_in_aw_bits_echo_tl_state_size,
  input          auto_in_aw_bits_echo_tl_state_source,
  output         auto_in_w_ready,
  input          auto_in_w_valid,
  input  [127:0] auto_in_w_bits_data,
  input  [15:0]  auto_in_w_bits_strb,
  input          auto_in_w_bits_last,
  input          auto_in_b_ready,
  output         auto_in_b_valid,
  output [1:0]   auto_in_b_bits_resp,
  output [3:0]   auto_in_b_bits_echo_tl_state_size,
  output         auto_in_b_bits_echo_tl_state_source,
  output         auto_in_ar_ready,
  input          auto_in_ar_valid,
  input          auto_in_ar_bits_id,
  input  [31:0]  auto_in_ar_bits_addr,
  input  [7:0]   auto_in_ar_bits_len,
  input  [2:0]   auto_in_ar_bits_size,
  input  [1:0]   auto_in_ar_bits_burst,
  input          auto_in_ar_bits_lock,
  input  [3:0]   auto_in_ar_bits_cache,
  input  [2:0]   auto_in_ar_bits_prot,
  input  [3:0]   auto_in_ar_bits_qos,
  input  [3:0]   auto_in_ar_bits_echo_tl_state_size,
  input          auto_in_ar_bits_echo_tl_state_source,
  input          auto_in_r_ready,
  output         auto_in_r_valid,
  output [127:0] auto_in_r_bits_data,
  output [1:0]   auto_in_r_bits_resp,
  output [3:0]   auto_in_r_bits_echo_tl_state_size,
  output         auto_in_r_bits_echo_tl_state_source,
  output         auto_in_r_bits_last,
  input          auto_out_aw_ready,
  output         auto_out_aw_valid,
  output         auto_out_aw_bits_id,
  output [31:0]  auto_out_aw_bits_addr,
  output [7:0]   auto_out_aw_bits_len,
  output [2:0]   auto_out_aw_bits_size,
  output [1:0]   auto_out_aw_bits_burst,
  output         auto_out_aw_bits_lock,
  output [3:0]   auto_out_aw_bits_cache,
  output [2:0]   auto_out_aw_bits_prot,
  output [3:0]   auto_out_aw_bits_qos,
  output [3:0]   auto_out_aw_bits_echo_tl_state_size,
  output         auto_out_aw_bits_echo_tl_state_source,
  input          auto_out_w_ready,
  output         auto_out_w_valid,
  output [127:0] auto_out_w_bits_data,
  output [15:0]  auto_out_w_bits_strb,
  output         auto_out_w_bits_last,
  output         auto_out_b_ready,
  input          auto_out_b_valid,
  input  [1:0]   auto_out_b_bits_resp,
  input  [3:0]   auto_out_b_bits_echo_tl_state_size,
  input          auto_out_b_bits_echo_tl_state_source,
  input          auto_out_ar_ready,
  output         auto_out_ar_valid,
  output         auto_out_ar_bits_id,
  output [31:0]  auto_out_ar_bits_addr,
  output [7:0]   auto_out_ar_bits_len,
  output [2:0]   auto_out_ar_bits_size,
  output [1:0]   auto_out_ar_bits_burst,
  output         auto_out_ar_bits_lock,
  output [3:0]   auto_out_ar_bits_cache,
  output [2:0]   auto_out_ar_bits_prot,
  output [3:0]   auto_out_ar_bits_qos,
  output [3:0]   auto_out_ar_bits_echo_tl_state_size,
  output         auto_out_ar_bits_echo_tl_state_source,
  output         auto_out_r_ready,
  input          auto_out_r_valid,
  input  [127:0] auto_out_r_bits_data,
  input  [1:0]   auto_out_r_bits_resp,
  input  [3:0]   auto_out_r_bits_echo_tl_state_size,
  input          auto_out_r_bits_echo_tl_state_source,
  input          auto_out_r_bits_last
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
`endif // RANDOMIZE_REG_INIT
  wire  qs_queue_0_clock; // @[Deinterleaver.scala 66:27]
  wire  qs_queue_0_reset; // @[Deinterleaver.scala 66:27]
  wire  qs_queue_0_io_enq_ready; // @[Deinterleaver.scala 66:27]
  wire  qs_queue_0_io_enq_valid; // @[Deinterleaver.scala 66:27]
  wire [127:0] qs_queue_0_io_enq_bits_data; // @[Deinterleaver.scala 66:27]
  wire [1:0] qs_queue_0_io_enq_bits_resp; // @[Deinterleaver.scala 66:27]
  wire [3:0] qs_queue_0_io_enq_bits_echo_tl_state_size; // @[Deinterleaver.scala 66:27]
  wire  qs_queue_0_io_enq_bits_echo_tl_state_source; // @[Deinterleaver.scala 66:27]
  wire  qs_queue_0_io_enq_bits_last; // @[Deinterleaver.scala 66:27]
  wire  qs_queue_0_io_deq_ready; // @[Deinterleaver.scala 66:27]
  wire  qs_queue_0_io_deq_valid; // @[Deinterleaver.scala 66:27]
  wire [127:0] qs_queue_0_io_deq_bits_data; // @[Deinterleaver.scala 66:27]
  wire [1:0] qs_queue_0_io_deq_bits_resp; // @[Deinterleaver.scala 66:27]
  wire [3:0] qs_queue_0_io_deq_bits_echo_tl_state_size; // @[Deinterleaver.scala 66:27]
  wire  qs_queue_0_io_deq_bits_echo_tl_state_source; // @[Deinterleaver.scala 66:27]
  wire  qs_queue_0_io_deq_bits_last; // @[Deinterleaver.scala 66:27]
  reg  locked; // @[Deinterleaver.scala 82:29]
  reg [1:0] pending_count; // @[Deinterleaver.scala 92:32]
  wire  enq_readys_0 = qs_queue_0_io_enq_ready; // @[Deinterleaver.scala 125:{33,33}]
  wire  _pending_inc_T = enq_readys_0 & auto_out_r_valid; // @[Decoupled.scala 52:35]
  wire  pending_inc = _pending_inc_T & auto_out_r_bits_last; // @[Deinterleaver.scala 94:49]
  wire  _pending_dec_T = auto_in_r_ready & locked; // @[Decoupled.scala 52:35]
  wire  deq_bits_0_last = qs_queue_0_io_deq_bits_last; // @[Deinterleaver.scala 114:{31,31}]
  wire  pending_dec = _pending_dec_T & deq_bits_0_last; // @[Deinterleaver.scala 95:48]
  wire [1:0] _GEN_1 = {{1'd0}, pending_inc}; // @[Deinterleaver.scala 96:27]
  wire [1:0] _pending_next_T_1 = pending_count + _GEN_1; // @[Deinterleaver.scala 96:27]
  wire [1:0] _GEN_2 = {{1'd0}, pending_dec}; // @[Deinterleaver.scala 96:40]
  wire [1:0] pending_next = _pending_next_T_1 - _GEN_2; // @[Deinterleaver.scala 96:40]
  wire  _pending_T_4 = ~reset; // @[Deinterleaver.scala 99:20]
  wire  pending = pending_next != 2'h0; // @[Deinterleaver.scala 101:18]
  Queue_44 qs_queue_0 ( // @[Deinterleaver.scala 66:27]
    .clock(qs_queue_0_clock),
    .reset(qs_queue_0_reset),
    .io_enq_ready(qs_queue_0_io_enq_ready),
    .io_enq_valid(qs_queue_0_io_enq_valid),
    .io_enq_bits_data(qs_queue_0_io_enq_bits_data),
    .io_enq_bits_resp(qs_queue_0_io_enq_bits_resp),
    .io_enq_bits_echo_tl_state_size(qs_queue_0_io_enq_bits_echo_tl_state_size),
    .io_enq_bits_echo_tl_state_source(qs_queue_0_io_enq_bits_echo_tl_state_source),
    .io_enq_bits_last(qs_queue_0_io_enq_bits_last),
    .io_deq_ready(qs_queue_0_io_deq_ready),
    .io_deq_valid(qs_queue_0_io_deq_valid),
    .io_deq_bits_data(qs_queue_0_io_deq_bits_data),
    .io_deq_bits_resp(qs_queue_0_io_deq_bits_resp),
    .io_deq_bits_echo_tl_state_size(qs_queue_0_io_deq_bits_echo_tl_state_size),
    .io_deq_bits_echo_tl_state_source(qs_queue_0_io_deq_bits_echo_tl_state_source),
    .io_deq_bits_last(qs_queue_0_io_deq_bits_last)
  );
  assign auto_in_aw_ready = auto_out_aw_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_w_ready = auto_out_w_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_b_valid = auto_out_b_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_b_bits_resp = auto_out_b_bits_resp; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_b_bits_echo_tl_state_size = auto_out_b_bits_echo_tl_state_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_b_bits_echo_tl_state_source = auto_out_b_bits_echo_tl_state_source; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_ar_ready = auto_out_ar_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_r_valid = locked; // @[Deinterleaver.scala 113:20 Nodes.scala 1210:84]
  assign auto_in_r_bits_data = qs_queue_0_io_deq_bits_data; // @[Deinterleaver.scala 114:{31,31}]
  assign auto_in_r_bits_resp = qs_queue_0_io_deq_bits_resp; // @[Deinterleaver.scala 114:{31,31}]
  assign auto_in_r_bits_echo_tl_state_size = qs_queue_0_io_deq_bits_echo_tl_state_size; // @[Deinterleaver.scala 114:{31,31}]
  assign auto_in_r_bits_echo_tl_state_source = qs_queue_0_io_deq_bits_echo_tl_state_source; // @[Deinterleaver.scala 114:{31,31}]
  assign auto_in_r_bits_last = qs_queue_0_io_deq_bits_last; // @[Deinterleaver.scala 114:{31,31}]
  assign auto_out_aw_valid = auto_in_aw_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_id = auto_in_aw_bits_id; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_addr = auto_in_aw_bits_addr; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_len = auto_in_aw_bits_len; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_size = auto_in_aw_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_burst = auto_in_aw_bits_burst; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_lock = auto_in_aw_bits_lock; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_cache = auto_in_aw_bits_cache; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_prot = auto_in_aw_bits_prot; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_qos = auto_in_aw_bits_qos; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_echo_tl_state_size = auto_in_aw_bits_echo_tl_state_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_echo_tl_state_source = auto_in_aw_bits_echo_tl_state_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_valid = auto_in_w_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_bits_data = auto_in_w_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_bits_strb = auto_in_w_bits_strb; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_bits_last = auto_in_w_bits_last; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_b_ready = auto_in_b_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_valid = auto_in_ar_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_id = auto_in_ar_bits_id; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_addr = auto_in_ar_bits_addr; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_len = auto_in_ar_bits_len; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_size = auto_in_ar_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_burst = auto_in_ar_bits_burst; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_lock = auto_in_ar_bits_lock; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_cache = auto_in_ar_bits_cache; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_prot = auto_in_ar_bits_prot; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_qos = auto_in_ar_bits_qos; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_echo_tl_state_size = auto_in_ar_bits_echo_tl_state_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_echo_tl_state_source = auto_in_ar_bits_echo_tl_state_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_r_ready = qs_queue_0_io_enq_ready; // @[Deinterleaver.scala 125:{33,33}]
  assign qs_queue_0_clock = clock;
  assign qs_queue_0_reset = reset;
  assign qs_queue_0_io_enq_valid = auto_out_r_valid; // @[Deinterleaver.scala 128:28]
  assign qs_queue_0_io_enq_bits_data = auto_out_r_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign qs_queue_0_io_enq_bits_resp = auto_out_r_bits_resp; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign qs_queue_0_io_enq_bits_echo_tl_state_size = auto_out_r_bits_echo_tl_state_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign qs_queue_0_io_enq_bits_echo_tl_state_source = auto_out_r_bits_echo_tl_state_source; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign qs_queue_0_io_enq_bits_last = auto_out_r_bits_last; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign qs_queue_0_io_deq_ready = auto_in_r_ready & locked; // @[Decoupled.scala 52:35]
  always @(posedge clock) begin
    if (reset) begin // @[Deinterleaver.scala 82:29]
      locked <= 1'h0; // @[Deinterleaver.scala 82:29]
    end else if (~locked | pending_dec) begin // @[Deinterleaver.scala 107:59]
      locked <= |pending; // @[Deinterleaver.scala 108:18]
    end
    if (reset) begin // @[Deinterleaver.scala 92:32]
      pending_count <= 2'h0; // @[Deinterleaver.scala 92:32]
    end else begin
      pending_count <= pending_next; // @[Deinterleaver.scala 97:19]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~pending_dec | pending_count != 2'h0)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Deinterleaver.scala:99 assert (!dec || count =/= 0.U)\n"); // @[Deinterleaver.scala 99:20]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~pending_dec | pending_count != 2'h0) & ~reset) begin
          $fatal; // @[Deinterleaver.scala 99:20]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_pending_T_4 & ~(~pending_inc | pending_count != 2'h2)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Deinterleaver.scala:100 assert (!inc || count =/= beats.U)\n"); // @[Deinterleaver.scala 100:20]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~pending_inc | pending_count != 2'h2) & _pending_T_4) begin
          $fatal; // @[Deinterleaver.scala 100:20]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  locked = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  pending_count = _RAND_1[1:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLMonitor_19(
  input         clock,
  input         reset,
  input         io_in_a_ready,
  input         io_in_a_valid,
  input  [2:0]  io_in_a_bits_opcode,
  input  [31:0] io_in_a_bits_address,
  input  [15:0] io_in_a_bits_mask,
  input         io_in_d_ready,
  input         io_in_d_valid,
  input  [2:0]  io_in_d_bits_opcode,
  input  [2:0]  io_in_d_bits_size,
  input         io_in_d_bits_source,
  input         io_in_d_bits_denied,
  input         io_in_d_bits_corrupt
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire [31:0] _is_aligned_T = io_in_a_bits_address & 32'h7; // @[Edges.scala 20:16]
  wire  is_aligned = _is_aligned_T == 32'h0; // @[Edges.scala 20:24]
  wire  mask_bit = io_in_a_bits_address[3]; // @[Misc.scala 209:26]
  wire  mask_nbit = ~mask_bit; // @[Misc.scala 210:20]
  wire  mask_bit_1 = io_in_a_bits_address[2]; // @[Misc.scala 209:26]
  wire  mask_nbit_1 = ~mask_bit_1; // @[Misc.scala 210:20]
  wire  mask_eq_2 = mask_nbit & mask_nbit_1; // @[Misc.scala 213:27]
  wire  mask_eq_3 = mask_nbit & mask_bit_1; // @[Misc.scala 213:27]
  wire  mask_eq_4 = mask_bit & mask_nbit_1; // @[Misc.scala 213:27]
  wire  mask_eq_5 = mask_bit & mask_bit_1; // @[Misc.scala 213:27]
  wire  mask_bit_2 = io_in_a_bits_address[1]; // @[Misc.scala 209:26]
  wire  mask_nbit_2 = ~mask_bit_2; // @[Misc.scala 210:20]
  wire  mask_eq_6 = mask_eq_2 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_eq_7 = mask_eq_2 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_eq_8 = mask_eq_3 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_eq_9 = mask_eq_3 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_eq_10 = mask_eq_4 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_eq_11 = mask_eq_4 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_eq_12 = mask_eq_5 & mask_nbit_2; // @[Misc.scala 213:27]
  wire  mask_eq_13 = mask_eq_5 & mask_bit_2; // @[Misc.scala 213:27]
  wire  mask_bit_3 = io_in_a_bits_address[0]; // @[Misc.scala 209:26]
  wire  mask_nbit_3 = ~mask_bit_3; // @[Misc.scala 210:20]
  wire  mask_eq_14 = mask_eq_6 & mask_nbit_3; // @[Misc.scala 213:27]
  wire  mask_acc_14 = mask_nbit | mask_eq_14; // @[Misc.scala 214:29]
  wire  mask_eq_15 = mask_eq_6 & mask_bit_3; // @[Misc.scala 213:27]
  wire  mask_acc_15 = mask_nbit | mask_eq_15; // @[Misc.scala 214:29]
  wire  mask_eq_16 = mask_eq_7 & mask_nbit_3; // @[Misc.scala 213:27]
  wire  mask_acc_16 = mask_nbit | mask_eq_16; // @[Misc.scala 214:29]
  wire  mask_eq_17 = mask_eq_7 & mask_bit_3; // @[Misc.scala 213:27]
  wire  mask_acc_17 = mask_nbit | mask_eq_17; // @[Misc.scala 214:29]
  wire  mask_eq_18 = mask_eq_8 & mask_nbit_3; // @[Misc.scala 213:27]
  wire  mask_acc_18 = mask_nbit | mask_eq_18; // @[Misc.scala 214:29]
  wire  mask_eq_19 = mask_eq_8 & mask_bit_3; // @[Misc.scala 213:27]
  wire  mask_acc_19 = mask_nbit | mask_eq_19; // @[Misc.scala 214:29]
  wire  mask_eq_20 = mask_eq_9 & mask_nbit_3; // @[Misc.scala 213:27]
  wire  mask_acc_20 = mask_nbit | mask_eq_20; // @[Misc.scala 214:29]
  wire  mask_eq_21 = mask_eq_9 & mask_bit_3; // @[Misc.scala 213:27]
  wire  mask_acc_21 = mask_nbit | mask_eq_21; // @[Misc.scala 214:29]
  wire  mask_eq_22 = mask_eq_10 & mask_nbit_3; // @[Misc.scala 213:27]
  wire  mask_acc_22 = mask_bit | mask_eq_22; // @[Misc.scala 214:29]
  wire  mask_eq_23 = mask_eq_10 & mask_bit_3; // @[Misc.scala 213:27]
  wire  mask_acc_23 = mask_bit | mask_eq_23; // @[Misc.scala 214:29]
  wire  mask_eq_24 = mask_eq_11 & mask_nbit_3; // @[Misc.scala 213:27]
  wire  mask_acc_24 = mask_bit | mask_eq_24; // @[Misc.scala 214:29]
  wire  mask_eq_25 = mask_eq_11 & mask_bit_3; // @[Misc.scala 213:27]
  wire  mask_acc_25 = mask_bit | mask_eq_25; // @[Misc.scala 214:29]
  wire  mask_eq_26 = mask_eq_12 & mask_nbit_3; // @[Misc.scala 213:27]
  wire  mask_acc_26 = mask_bit | mask_eq_26; // @[Misc.scala 214:29]
  wire  mask_eq_27 = mask_eq_12 & mask_bit_3; // @[Misc.scala 213:27]
  wire  mask_acc_27 = mask_bit | mask_eq_27; // @[Misc.scala 214:29]
  wire  mask_eq_28 = mask_eq_13 & mask_nbit_3; // @[Misc.scala 213:27]
  wire  mask_acc_28 = mask_bit | mask_eq_28; // @[Misc.scala 214:29]
  wire  mask_eq_29 = mask_eq_13 & mask_bit_3; // @[Misc.scala 213:27]
  wire  mask_acc_29 = mask_bit | mask_eq_29; // @[Misc.scala 214:29]
  wire [7:0] mask_lo = {mask_acc_21,mask_acc_20,mask_acc_19,mask_acc_18,mask_acc_17,mask_acc_16,mask_acc_15,mask_acc_14}
    ; // @[Cat.scala 33:92]
  wire [15:0] mask = {mask_acc_29,mask_acc_28,mask_acc_27,mask_acc_26,mask_acc_25,mask_acc_24,mask_acc_23,mask_acc_22,
    mask_lo}; // @[Cat.scala 33:92]
  wire  _T_15 = io_in_a_bits_opcode == 3'h6; // @[Monitor.scala 81:25]
  wire [31:0] _T_23 = io_in_a_bits_address ^ 32'h80000000; // @[Parameters.scala 137:31]
  wire [32:0] _T_24 = {1'b0,$signed(_T_23)}; // @[Parameters.scala 137:49]
  wire [32:0] _T_26 = $signed(_T_24) & -33'sh80000000; // @[Parameters.scala 137:52]
  wire  _T_27 = $signed(_T_26) == 33'sh0; // @[Parameters.scala 137:67]
  wire [15:0] _T_63 = ~io_in_a_bits_mask; // @[Monitor.scala 88:18]
  wire  _T_64 = _T_63 == 16'h0; // @[Monitor.scala 88:31]
  wire  _T_72 = io_in_a_bits_opcode == 3'h7; // @[Monitor.scala 92:25]
  wire  _T_133 = io_in_a_bits_opcode == 3'h4; // @[Monitor.scala 104:25]
  wire  _T_167 = io_in_a_bits_mask == mask; // @[Monitor.scala 110:30]
  wire  _T_175 = io_in_a_bits_opcode == 3'h0; // @[Monitor.scala 114:25]
  wire  _T_211 = io_in_a_bits_opcode == 3'h1; // @[Monitor.scala 122:25]
  wire [15:0] _T_243 = ~mask; // @[Monitor.scala 127:33]
  wire [15:0] _T_244 = io_in_a_bits_mask & _T_243; // @[Monitor.scala 127:31]
  wire  _T_245 = _T_244 == 16'h0; // @[Monitor.scala 127:40]
  wire  _T_249 = io_in_a_bits_opcode == 3'h2; // @[Monitor.scala 130:25]
  wire  _T_282 = io_in_a_bits_opcode == 3'h3; // @[Monitor.scala 138:25]
  wire  _T_315 = io_in_a_bits_opcode == 3'h5; // @[Monitor.scala 146:25]
  wire  _T_352 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire  _source_ok_T_1 = ~io_in_d_bits_source; // @[Parameters.scala 46:9]
  wire  _T_356 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_360 = io_in_d_bits_size >= 3'h4; // @[Monitor.scala 312:27]
  wire  _T_368 = ~io_in_d_bits_corrupt; // @[Monitor.scala 314:15]
  wire  _T_372 = ~io_in_d_bits_denied; // @[Monitor.scala 315:15]
  wire  _T_376 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_404 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _T_424 = _T_372 | io_in_d_bits_corrupt; // @[Monitor.scala 334:30]
  wire  _T_433 = io_in_d_bits_opcode == 3'h0; // @[Monitor.scala 338:25]
  wire  _T_450 = io_in_d_bits_opcode == 3'h1; // @[Monitor.scala 346:25]
  wire  _T_468 = io_in_d_bits_opcode == 3'h2; // @[Monitor.scala 354:25]
  wire  _a_first_T = io_in_a_ready & io_in_a_valid; // @[Decoupled.scala 52:35]
  reg  a_first_counter; // @[Edges.scala 228:27]
  wire  a_first_counter1 = a_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  a_first = ~a_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode; // @[Monitor.scala 384:22]
  reg [31:0] address; // @[Monitor.scala 388:22]
  wire  _T_498 = io_in_a_valid & ~a_first; // @[Monitor.scala 389:19]
  wire  _T_499 = io_in_a_bits_opcode == opcode; // @[Monitor.scala 390:32]
  wire  _T_515 = io_in_a_bits_address == address; // @[Monitor.scala 394:32]
  wire  _d_first_T = io_in_d_ready & io_in_d_valid; // @[Decoupled.scala 52:35]
  wire [11:0] _d_first_beats1_decode_T_1 = 12'h1f << io_in_d_bits_size; // @[package.scala 234:77]
  wire [4:0] _d_first_beats1_decode_T_3 = ~_d_first_beats1_decode_T_1[4:0]; // @[package.scala 234:46]
  wire  d_first_beats1_decode = _d_first_beats1_decode_T_3[4]; // @[Edges.scala 219:59]
  wire  d_first_beats1_opdata = io_in_d_bits_opcode[0]; // @[Edges.scala 105:36]
  wire  d_first_beats1 = d_first_beats1_opdata & d_first_beats1_decode; // @[Edges.scala 220:14]
  reg  d_first_counter; // @[Edges.scala 228:27]
  wire  d_first_counter1 = d_first_counter - 1'h1; // @[Edges.scala 229:28]
  wire  d_first = ~d_first_counter; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  reg [2:0] size_1; // @[Monitor.scala 537:22]
  reg  source_1; // @[Monitor.scala 538:22]
  reg  denied; // @[Monitor.scala 540:22]
  wire  _T_522 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_523 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  wire  _T_531 = io_in_d_bits_size == size_1; // @[Monitor.scala 544:29]
  wire  _T_535 = io_in_d_bits_source == source_1; // @[Monitor.scala 545:29]
  wire  _T_543 = io_in_d_bits_denied == denied; // @[Monitor.scala 547:29]
  reg  inflight; // @[Monitor.scala 611:27]
  reg [3:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [3:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg  a_first_counter_1; // @[Edges.scala 228:27]
  wire  a_first_counter1_1 = a_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  a_first_1 = ~a_first_counter_1; // @[Edges.scala 230:25]
  reg  d_first_counter_1; // @[Edges.scala 228:27]
  wire  d_first_counter1_1 = d_first_counter_1 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = ~d_first_counter_1; // @[Edges.scala 230:25]
  wire [2:0] _GEN_62 = {io_in_d_bits_source, 2'h0}; // @[Monitor.scala 634:69]
  wire [3:0] _a_opcode_lookup_T = {{1'd0}, _GEN_62}; // @[Monitor.scala 634:69]
  wire [3:0] _a_opcode_lookup_T_1 = inflight_opcodes >> _a_opcode_lookup_T; // @[Monitor.scala 634:44]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [15:0] _GEN_64 = {{12'd0}, _a_opcode_lookup_T_1}; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_6 = _GEN_64 & _a_opcode_lookup_T_5; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[15:1]}; // @[Monitor.scala 634:152]
  wire [3:0] _a_size_lookup_T_1 = inflight_sizes >> _a_opcode_lookup_T; // @[Monitor.scala 638:40]
  wire [15:0] _GEN_72 = {{12'd0}, _a_size_lookup_T_1}; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_6 = _GEN_72 & _a_opcode_lookup_T_5; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[15:1]}; // @[Monitor.scala 638:144]
  wire  _T_549 = io_in_a_valid & a_first_1; // @[Monitor.scala 648:26]
  wire [1:0] _GEN_15 = io_in_a_valid & a_first_1 ? 2'h1 : 2'h0; // @[Monitor.scala 648:71 649:22]
  wire  _T_552 = _a_first_T & a_first_1; // @[Monitor.scala 652:27]
  wire [3:0] _a_opcodes_set_interm_T = {io_in_a_bits_opcode, 1'h0}; // @[Monitor.scala 654:53]
  wire [3:0] _a_opcodes_set_interm_T_1 = _a_opcodes_set_interm_T | 4'h1; // @[Monitor.scala 654:61]
  wire [3:0] a_opcodes_set_interm = _a_first_T & a_first_1 ? _a_opcodes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 654:28]
  wire [18:0] _a_opcodes_set_T_1 = {{15'd0}, a_opcodes_set_interm}; // @[Monitor.scala 656:54]
  wire [3:0] a_sizes_set_interm = _a_first_T & a_first_1 ? 4'h7 : 4'h0; // @[Monitor.scala 652:72 655:28]
  wire [18:0] _a_sizes_set_T_1 = {{15'd0}, a_sizes_set_interm}; // @[Monitor.scala 657:52]
  wire  _T_556 = ~inflight; // @[Monitor.scala 658:17]
  wire [1:0] _GEN_16 = _a_first_T & a_first_1 ? 2'h1 : 2'h0; // @[Monitor.scala 652:72 653:28]
  wire [18:0] _GEN_19 = _a_first_T & a_first_1 ? _a_opcodes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 656:28]
  wire [18:0] _GEN_20 = _a_first_T & a_first_1 ? _a_sizes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 657:28]
  wire  _T_560 = io_in_d_valid & d_first_1; // @[Monitor.scala 671:26]
  wire  _T_562 = ~_T_356; // @[Monitor.scala 671:74]
  wire  _T_563 = io_in_d_valid & d_first_1 & ~_T_356; // @[Monitor.scala 671:71]
  wire [1:0] _d_clr_wo_ready_T = 2'h1 << io_in_d_bits_source; // @[OneHot.scala 57:35]
  wire [1:0] _GEN_21 = io_in_d_valid & d_first_1 & ~_T_356 ? _d_clr_wo_ready_T : 2'h0; // @[Monitor.scala 671:90 672:22]
  wire [30:0] _GEN_343 = {{15'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [30:0] _d_opcodes_clr_T_5 = _GEN_343 << _a_opcode_lookup_T; // @[Monitor.scala 677:76]
  wire [1:0] _GEN_22 = _d_first_T & d_first_1 & _T_562 ? _d_clr_wo_ready_T : 2'h0; // @[Monitor.scala 675:91 676:21]
  wire [30:0] _GEN_23 = _d_first_T & d_first_1 & _T_562 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 675:91 677:21]
  wire  same_cycle_resp = _T_549 & _source_ok_T_1; // @[Monitor.scala 681:88]
  wire  _T_575 = inflight >> io_in_d_bits_source | same_cycle_resp; // @[Monitor.scala 682:49]
  wire [2:0] _GEN_27 = 3'h2 == io_in_a_bits_opcode ? 3'h1 : 3'h0; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_28 = 3'h3 == io_in_a_bits_opcode ? 3'h1 : _GEN_27; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_29 = 3'h4 == io_in_a_bits_opcode ? 3'h1 : _GEN_28; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_30 = 3'h5 == io_in_a_bits_opcode ? 3'h2 : _GEN_29; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_31 = 3'h6 == io_in_a_bits_opcode ? 3'h4 : _GEN_30; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_32 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_31; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_39 = 3'h6 == io_in_a_bits_opcode ? 3'h5 : _GEN_30; // @[Monitor.scala 686:{39,39}]
  wire [2:0] _GEN_40 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_39; // @[Monitor.scala 686:{39,39}]
  wire  _T_580 = io_in_d_bits_opcode == _GEN_40; // @[Monitor.scala 686:39]
  wire  _T_581 = io_in_d_bits_opcode == _GEN_32 | _T_580; // @[Monitor.scala 685:77]
  wire  _T_585 = 3'h3 == io_in_d_bits_size; // @[Monitor.scala 687:36]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_43 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_44 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_43; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_45 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_44; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_46 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_45; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_47 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_46; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_48 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_47; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_55 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_46; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_56 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_55; // @[Monitor.scala 690:{38,38}]
  wire  _T_592 = io_in_d_bits_opcode == _GEN_56; // @[Monitor.scala 690:38]
  wire  _T_593 = io_in_d_bits_opcode == _GEN_48 | _T_592; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire [3:0] _GEN_76 = {{1'd0}, io_in_d_bits_size}; // @[Monitor.scala 691:36]
  wire  _T_597 = _GEN_76 == a_size_lookup; // @[Monitor.scala 691:36]
  wire  _T_607 = _T_560 & a_first_1 & io_in_a_valid & _source_ok_T_1 & _T_562; // @[Monitor.scala 694:116]
  wire  _T_609 = ~io_in_d_ready | io_in_a_ready; // @[Monitor.scala 695:32]
  wire  a_set_wo_ready = _GEN_15[0];
  wire  d_clr_wo_ready = _GEN_21[0];
  wire  _T_616 = a_set_wo_ready != d_clr_wo_ready | ~(|a_set_wo_ready); // @[Monitor.scala 699:48]
  wire  a_set = _GEN_16[0];
  wire  d_clr = _GEN_22[0];
  wire [3:0] a_opcodes_set = _GEN_19[3:0];
  wire [3:0] _inflight_opcodes_T = inflight_opcodes | a_opcodes_set; // @[Monitor.scala 703:43]
  wire [3:0] d_opcodes_clr = _GEN_23[3:0];
  wire [3:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [3:0] _inflight_opcodes_T_2 = _inflight_opcodes_T & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [3:0] a_sizes_set = _GEN_20[3:0];
  wire [3:0] _inflight_sizes_T = inflight_sizes | a_sizes_set; // @[Monitor.scala 704:39]
  wire [3:0] _inflight_sizes_T_2 = _inflight_sizes_T & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [31:0] watchdog; // @[Monitor.scala 706:27]
  wire  _T_625 = ~(|inflight) | plusarg_reader_out == 32'h0 | watchdog < plusarg_reader_out; // @[Monitor.scala 709:47]
  wire [31:0] _watchdog_T_1 = watchdog + 32'h1; // @[Monitor.scala 711:26]
  reg [3:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg  d_first_counter_2; // @[Edges.scala 228:27]
  wire  d_first_counter1_2 = d_first_counter_2 - 1'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = ~d_first_counter_2; // @[Edges.scala 230:25]
  wire [3:0] _c_size_lookup_T_1 = inflight_sizes_1 >> _a_opcode_lookup_T; // @[Monitor.scala 747:42]
  wire [15:0] _GEN_78 = {{12'd0}, _c_size_lookup_T_1}; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_6 = _GEN_78 & _a_opcode_lookup_T_5; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[15:1]}; // @[Monitor.scala 747:146]
  wire  _T_651 = io_in_d_valid & d_first_2 & _T_356; // @[Monitor.scala 779:71]
  wire [30:0] _GEN_69 = _d_first_T & d_first_2 & _T_356 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 783:90 786:21]
  wire  _T_659 = 1'h0 >> io_in_d_bits_source; // @[Monitor.scala 791:25]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_669 = _GEN_76 == c_size_lookup; // @[Monitor.scala 795:36]
  wire [3:0] d_sizes_clr_1 = _GEN_69[3:0];
  wire [3:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [3:0] _inflight_sizes_T_5 = inflight_sizes_1 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        a_first_counter <= 1'h0;
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      opcode <= io_in_a_bits_opcode; // @[Monitor.scala 397:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      address <= io_in_a_bits_address; // @[Monitor.scala 401:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        d_first_counter <= d_first_beats1;
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      size_1 <= io_in_d_bits_size; // @[Monitor.scala 552:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      source_1 <= io_in_d_bits_source; // @[Monitor.scala 553:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      denied <= io_in_d_bits_denied; // @[Monitor.scala 555:15]
    end
    if (reset) begin // @[Monitor.scala 611:27]
      inflight <= 1'h0; // @[Monitor.scala 611:27]
    end else begin
      inflight <= (inflight | a_set) & ~d_clr; // @[Monitor.scala 702:14]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 4'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 4'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first_1) begin // @[Edges.scala 235:21]
        a_first_counter_1 <= 1'h0;
      end else begin
        a_first_counter_1 <= a_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        d_first_counter_1 <= d_first_beats1;
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 706:27]
      watchdog <= 32'h0; // @[Monitor.scala 706:27]
    end else if (_a_first_T | _d_first_T) begin // @[Monitor.scala 712:47]
      watchdog <= 32'h0; // @[Monitor.scala 712:58]
    end else begin
      watchdog <= _watchdog_T_1; // @[Monitor.scala 711:14]
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 4'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 1'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        d_first_counter_2 <= d_first_beats1;
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock from a client which does not support Probe (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock smaller than a beat (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock address not aligned to size (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~_T_64) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock contains invalid mask (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_64 & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm from a client which does not support Probe (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm smaller than a beat (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm address not aligned to size (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_72 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm requests NtoB (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset & ~_T_64) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm contains invalid mask (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_64 & (io_in_a_valid & _T_72 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~_T_27) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which slave claims it can't support (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_27 & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get address not aligned to size (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get contains invalid mask (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_175 & ~reset & ~_T_27) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutFull type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_27 & (io_in_a_valid & _T_175 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_175 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull address not aligned to size (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_175 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_175 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull contains invalid mask (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_175 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_211 & ~reset & ~_T_27) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutPartial type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_27 & (io_in_a_valid & _T_211 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_211 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial address not aligned to size (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_211 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_211 & ~reset & ~_T_245) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial contains invalid mask (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_245 & (io_in_a_valid & _T_211 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_249 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Arithmetic type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_249 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_249 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic address not aligned to size (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_249 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_249 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic contains invalid mask (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_249 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Logical type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical address not aligned to size (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_282 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical contains invalid mask (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_282 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_315 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Hint type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_315 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_315 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint address not aligned to size (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_315 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_315 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint contains invalid mask (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_315 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_352) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_352 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_356 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck carries invalid source ID (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_356 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_356 & _T_2 & ~_T_360) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck smaller than a beat (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_360 & (io_in_d_valid & _T_356 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_356 & _T_2 & ~_T_368) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is corrupt (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_368 & (io_in_d_valid & _T_356 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_356 & _T_2 & ~_T_372) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is denied (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_372 & (io_in_d_valid & _T_356 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_376 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid source ID (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_376 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_376 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid sink ID (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_376 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_376 & _T_2 & ~_T_360) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant smaller than a beat (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_360 & (io_in_d_valid & _T_376 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_376 & _T_2 & ~_T_368) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant is corrupt (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_368 & (io_in_d_valid & _T_376 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_404 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid source ID (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_404 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_404 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid sink ID (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_404 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_404 & _T_2 & ~_T_360) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData smaller than a beat (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_360 & (io_in_d_valid & _T_404 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_404 & _T_2 & ~_T_424) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData is denied but not corrupt (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_424 & (io_in_d_valid & _T_404 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_433 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck carries invalid source ID (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_433 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_433 & _T_2 & ~_T_368) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck is corrupt (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_368 & (io_in_d_valid & _T_433 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_450 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData carries invalid source ID (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_450 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_450 & _T_2 & ~_T_424) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData is denied but not corrupt (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_424 & (io_in_d_valid & _T_450 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_468 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck carries invalid source ID (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_468 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_468 & _T_2 & ~_T_368) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck is corrupt (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_368 & (io_in_d_valid & _T_468 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_498 & ~reset & ~_T_499) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel opcode changed within multibeat operation (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_499 & (_T_498 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_498 & ~reset & ~_T_515) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel address changed with multibeat operation (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_515 & (_T_498 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_522 & _T_2 & ~_T_523) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_523 & (_T_522 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_522 & _T_2 & ~_T_531) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel size changed within multibeat operation (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_531 & (_T_522 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_522 & _T_2 & ~_T_535) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel source changed within multibeat operation (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_535 & (_T_522 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_522 & _T_2 & ~_T_543) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel denied changed with multibeat operation (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_543 & (_T_522 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_552 & ~reset & ~_T_556) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel re-used a source ID (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_556 & (_T_552 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_563 & _T_2 & ~_T_575) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_575 & (_T_563 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_563 & same_cycle_resp & _T_2 & ~_T_581) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_581 & (_T_563 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_563 & same_cycle_resp & _T_2 & ~_T_585) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_585 & (_T_563 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_563 & ~same_cycle_resp & _T_2 & ~_T_593) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_593 & (_T_563 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_563 & ~same_cycle_resp & _T_2 & ~_T_597) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_597 & (_T_563 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_607 & _T_2 & ~_T_609) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_609 & (_T_607 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_2 & ~_T_616) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' and 'D' concurrent, despite minlatency 1 (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_616 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_625) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_625 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_651 & _T_2 & ~_T_659) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_659 & (_T_651 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_651 & _T_2 & ~_T_669) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:179:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_669 & (_T_651 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  opcode = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  address = _RAND_2[31:0];
  _RAND_3 = {1{`RANDOM}};
  d_first_counter = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  opcode_1 = _RAND_4[2:0];
  _RAND_5 = {1{`RANDOM}};
  size_1 = _RAND_5[2:0];
  _RAND_6 = {1{`RANDOM}};
  source_1 = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  denied = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  inflight = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  inflight_opcodes = _RAND_9[3:0];
  _RAND_10 = {1{`RANDOM}};
  inflight_sizes = _RAND_10[3:0];
  _RAND_11 = {1{`RANDOM}};
  a_first_counter_1 = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  watchdog = _RAND_13[31:0];
  _RAND_14 = {1{`RANDOM}};
  inflight_sizes_1 = _RAND_14[3:0];
  _RAND_15 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_15[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_45(
  input          clock,
  input          reset,
  output         io_enq_ready,
  input          io_enq_valid,
  input  [127:0] io_enq_bits_data,
  input  [15:0]  io_enq_bits_strb,
  input          io_deq_ready,
  output         io_deq_valid,
  output [127:0] io_deq_bits_data,
  output [15:0]  io_deq_bits_strb,
  output         io_deq_bits_last
);
`ifdef RANDOMIZE_MEM_INIT
  reg [127:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_3;
`endif // RANDOMIZE_REG_INIT
  reg [127:0] ram_data [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [127:0] ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [127:0] ram_data_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_en; // @[Decoupled.scala 275:95]
  reg [15:0] ram_strb [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_strb_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_strb_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [15:0] ram_strb_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [15:0] ram_strb_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_strb_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_strb_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_strb_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_last [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_last_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_last_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_last_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_last_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_last_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_last_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_last_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  _do_enq_T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _do_deq_T = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_11 = io_deq_ready ? 1'h0 : _do_enq_T; // @[Decoupled.scala 320:{26,35}]
  wire  do_enq = empty ? _GEN_11 : _do_enq_T; // @[Decoupled.scala 317:17]
  wire  do_deq = empty ? 1'h0 : _do_deq_T; // @[Decoupled.scala 317:17 319:14]
  assign ram_data_io_deq_bits_MPORT_en = 1'h1;
  assign ram_data_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_data_io_deq_bits_MPORT_data = ram_data[ram_data_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_data_MPORT_data = io_enq_bits_data;
  assign ram_data_MPORT_addr = 1'h0;
  assign ram_data_MPORT_mask = 1'h1;
  assign ram_data_MPORT_en = empty ? _GEN_11 : _do_enq_T;
  assign ram_strb_io_deq_bits_MPORT_en = 1'h1;
  assign ram_strb_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_strb_io_deq_bits_MPORT_data = ram_strb[ram_strb_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_strb_MPORT_data = io_enq_bits_strb;
  assign ram_strb_MPORT_addr = 1'h0;
  assign ram_strb_MPORT_mask = 1'h1;
  assign ram_strb_MPORT_en = empty ? _GEN_11 : _do_enq_T;
  assign ram_last_io_deq_bits_MPORT_en = 1'h1;
  assign ram_last_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_last_io_deq_bits_MPORT_data = ram_last[ram_last_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_last_MPORT_data = 1'h1;
  assign ram_last_MPORT_addr = 1'h0;
  assign ram_last_MPORT_mask = 1'h1;
  assign ram_last_MPORT_en = empty ? _GEN_11 : _do_enq_T;
  assign io_enq_ready = ~maybe_full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = io_enq_valid | ~empty; // @[Decoupled.scala 304:16 316:{24,39}]
  assign io_deq_bits_data = empty ? io_enq_bits_data : ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_strb = empty ? io_enq_bits_strb : ram_strb_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_last = empty | ram_last_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  always @(posedge clock) begin
    if (ram_data_MPORT_en & ram_data_MPORT_mask) begin
      ram_data[ram_data_MPORT_addr] <= ram_data_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_strb_MPORT_en & ram_strb_MPORT_mask) begin
      ram_strb[ram_strb_MPORT_addr] <= ram_strb_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_last_MPORT_en & ram_last_MPORT_mask) begin
      ram_last[ram_last_MPORT_addr] <= ram_last_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      if (empty) begin // @[Decoupled.scala 317:17]
        if (io_deq_ready) begin // @[Decoupled.scala 320:26]
          maybe_full <= 1'h0; // @[Decoupled.scala 320:35]
        end else begin
          maybe_full <= _do_enq_T;
        end
      end else begin
        maybe_full <= _do_enq_T;
      end
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {4{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_data[initvar] = _RAND_0[127:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_strb[initvar] = _RAND_1[15:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_last[initvar] = _RAND_2[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_3 = {1{`RANDOM}};
  maybe_full = _RAND_3[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_46(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [31:0] io_enq_bits_addr,
  input         io_enq_bits_wen,
  input         io_deq_ready,
  output        io_deq_valid,
  output        io_deq_bits_id,
  output [31:0] io_deq_bits_addr,
  output [7:0]  io_deq_bits_len,
  output [2:0]  io_deq_bits_size,
  output [1:0]  io_deq_bits_burst,
  output        io_deq_bits_lock,
  output [3:0]  io_deq_bits_cache,
  output [2:0]  io_deq_bits_prot,
  output [3:0]  io_deq_bits_qos,
  output [3:0]  io_deq_bits_echo_tl_state_size,
  output        io_deq_bits_echo_tl_state_source,
  output        io_deq_bits_wen
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_12;
`endif // RANDOMIZE_REG_INIT
  reg  ram_id [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_id_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_id_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_id_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_id_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_id_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_id_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_id_MPORT_en; // @[Decoupled.scala 275:95]
  reg [31:0] ram_addr [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_addr_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_addr_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [31:0] ram_addr_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [31:0] ram_addr_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_addr_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_addr_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_addr_MPORT_en; // @[Decoupled.scala 275:95]
  reg [7:0] ram_len [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_len_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_len_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [7:0] ram_len_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [7:0] ram_len_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_len_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_len_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_len_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] ram_size [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_size_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_size_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_en; // @[Decoupled.scala 275:95]
  reg [1:0] ram_burst [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_burst_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_burst_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [1:0] ram_burst_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [1:0] ram_burst_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_burst_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_burst_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_burst_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_lock [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_lock_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_lock_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_lock_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_lock_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_lock_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_lock_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_lock_MPORT_en; // @[Decoupled.scala 275:95]
  reg [3:0] ram_cache [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_cache_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_cache_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [3:0] ram_cache_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [3:0] ram_cache_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_cache_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_cache_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_cache_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] ram_prot [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_prot_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_prot_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_prot_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_prot_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_prot_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_prot_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_prot_MPORT_en; // @[Decoupled.scala 275:95]
  reg [3:0] ram_qos [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_qos_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_qos_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [3:0] ram_qos_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [3:0] ram_qos_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_qos_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_qos_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_qos_MPORT_en; // @[Decoupled.scala 275:95]
  reg [3:0] ram_echo_tl_state_size [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_size_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_size_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [3:0] ram_echo_tl_state_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [3:0] ram_echo_tl_state_size_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_size_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_size_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_size_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_echo_tl_state_source [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_wen [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_wen_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_wen_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_wen_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_wen_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_wen_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_wen_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_wen_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  _do_enq_T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _do_deq_T = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_20 = io_deq_ready ? 1'h0 : _do_enq_T; // @[Decoupled.scala 320:{26,35}]
  wire  do_enq = empty ? _GEN_20 : _do_enq_T; // @[Decoupled.scala 317:17]
  wire  do_deq = empty ? 1'h0 : _do_deq_T; // @[Decoupled.scala 317:17 319:14]
  assign ram_id_io_deq_bits_MPORT_en = 1'h1;
  assign ram_id_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_id_io_deq_bits_MPORT_data = ram_id[ram_id_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_id_MPORT_data = 1'h0;
  assign ram_id_MPORT_addr = 1'h0;
  assign ram_id_MPORT_mask = 1'h1;
  assign ram_id_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign ram_addr_io_deq_bits_MPORT_en = 1'h1;
  assign ram_addr_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_addr_io_deq_bits_MPORT_data = ram_addr[ram_addr_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_addr_MPORT_data = io_enq_bits_addr;
  assign ram_addr_MPORT_addr = 1'h0;
  assign ram_addr_MPORT_mask = 1'h1;
  assign ram_addr_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign ram_len_io_deq_bits_MPORT_en = 1'h1;
  assign ram_len_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_len_io_deq_bits_MPORT_data = ram_len[ram_len_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_len_MPORT_data = 8'h0;
  assign ram_len_MPORT_addr = 1'h0;
  assign ram_len_MPORT_mask = 1'h1;
  assign ram_len_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign ram_size_io_deq_bits_MPORT_en = 1'h1;
  assign ram_size_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_size_io_deq_bits_MPORT_data = ram_size[ram_size_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_size_MPORT_data = 3'h3;
  assign ram_size_MPORT_addr = 1'h0;
  assign ram_size_MPORT_mask = 1'h1;
  assign ram_size_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign ram_burst_io_deq_bits_MPORT_en = 1'h1;
  assign ram_burst_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_burst_io_deq_bits_MPORT_data = ram_burst[ram_burst_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_burst_MPORT_data = 2'h1;
  assign ram_burst_MPORT_addr = 1'h0;
  assign ram_burst_MPORT_mask = 1'h1;
  assign ram_burst_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign ram_lock_io_deq_bits_MPORT_en = 1'h1;
  assign ram_lock_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_lock_io_deq_bits_MPORT_data = ram_lock[ram_lock_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_lock_MPORT_data = 1'h0;
  assign ram_lock_MPORT_addr = 1'h0;
  assign ram_lock_MPORT_mask = 1'h1;
  assign ram_lock_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign ram_cache_io_deq_bits_MPORT_en = 1'h1;
  assign ram_cache_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_cache_io_deq_bits_MPORT_data = ram_cache[ram_cache_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_cache_MPORT_data = 4'h0;
  assign ram_cache_MPORT_addr = 1'h0;
  assign ram_cache_MPORT_mask = 1'h1;
  assign ram_cache_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign ram_prot_io_deq_bits_MPORT_en = 1'h1;
  assign ram_prot_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_prot_io_deq_bits_MPORT_data = ram_prot[ram_prot_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_prot_MPORT_data = 3'h1;
  assign ram_prot_MPORT_addr = 1'h0;
  assign ram_prot_MPORT_mask = 1'h1;
  assign ram_prot_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign ram_qos_io_deq_bits_MPORT_en = 1'h1;
  assign ram_qos_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_qos_io_deq_bits_MPORT_data = ram_qos[ram_qos_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_qos_MPORT_data = 4'h0;
  assign ram_qos_MPORT_addr = 1'h0;
  assign ram_qos_MPORT_mask = 1'h1;
  assign ram_qos_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign ram_echo_tl_state_size_io_deq_bits_MPORT_en = 1'h1;
  assign ram_echo_tl_state_size_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_echo_tl_state_size_io_deq_bits_MPORT_data =
    ram_echo_tl_state_size[ram_echo_tl_state_size_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_echo_tl_state_size_MPORT_data = 4'h3;
  assign ram_echo_tl_state_size_MPORT_addr = 1'h0;
  assign ram_echo_tl_state_size_MPORT_mask = 1'h1;
  assign ram_echo_tl_state_size_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign ram_echo_tl_state_source_io_deq_bits_MPORT_en = 1'h1;
  assign ram_echo_tl_state_source_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_echo_tl_state_source_io_deq_bits_MPORT_data =
    ram_echo_tl_state_source[ram_echo_tl_state_source_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_echo_tl_state_source_MPORT_data = 1'h0;
  assign ram_echo_tl_state_source_MPORT_addr = 1'h0;
  assign ram_echo_tl_state_source_MPORT_mask = 1'h1;
  assign ram_echo_tl_state_source_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign ram_wen_io_deq_bits_MPORT_en = 1'h1;
  assign ram_wen_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_wen_io_deq_bits_MPORT_data = ram_wen[ram_wen_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_wen_MPORT_data = io_enq_bits_wen;
  assign ram_wen_MPORT_addr = 1'h0;
  assign ram_wen_MPORT_mask = 1'h1;
  assign ram_wen_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign io_enq_ready = ~maybe_full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = io_enq_valid | ~empty; // @[Decoupled.scala 304:16 316:{24,39}]
  assign io_deq_bits_id = empty ? 1'h0 : ram_id_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_addr = empty ? io_enq_bits_addr : ram_addr_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_len = empty ? 8'h0 : ram_len_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_size = empty ? 3'h3 : ram_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_burst = empty ? 2'h1 : ram_burst_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_lock = empty ? 1'h0 : ram_lock_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_cache = empty ? 4'h0 : ram_cache_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_prot = empty ? 3'h1 : ram_prot_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_qos = empty ? 4'h0 : ram_qos_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_echo_tl_state_size = empty ? 4'h3 : ram_echo_tl_state_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_echo_tl_state_source = empty ? 1'h0 : ram_echo_tl_state_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_wen = empty ? io_enq_bits_wen : ram_wen_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  always @(posedge clock) begin
    if (ram_id_MPORT_en & ram_id_MPORT_mask) begin
      ram_id[ram_id_MPORT_addr] <= ram_id_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_addr_MPORT_en & ram_addr_MPORT_mask) begin
      ram_addr[ram_addr_MPORT_addr] <= ram_addr_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_len_MPORT_en & ram_len_MPORT_mask) begin
      ram_len[ram_len_MPORT_addr] <= ram_len_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_size_MPORT_en & ram_size_MPORT_mask) begin
      ram_size[ram_size_MPORT_addr] <= ram_size_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_burst_MPORT_en & ram_burst_MPORT_mask) begin
      ram_burst[ram_burst_MPORT_addr] <= ram_burst_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_lock_MPORT_en & ram_lock_MPORT_mask) begin
      ram_lock[ram_lock_MPORT_addr] <= ram_lock_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_cache_MPORT_en & ram_cache_MPORT_mask) begin
      ram_cache[ram_cache_MPORT_addr] <= ram_cache_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_prot_MPORT_en & ram_prot_MPORT_mask) begin
      ram_prot[ram_prot_MPORT_addr] <= ram_prot_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_qos_MPORT_en & ram_qos_MPORT_mask) begin
      ram_qos[ram_qos_MPORT_addr] <= ram_qos_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_echo_tl_state_size_MPORT_en & ram_echo_tl_state_size_MPORT_mask) begin
      ram_echo_tl_state_size[ram_echo_tl_state_size_MPORT_addr] <= ram_echo_tl_state_size_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_echo_tl_state_source_MPORT_en & ram_echo_tl_state_source_MPORT_mask) begin
      ram_echo_tl_state_source[ram_echo_tl_state_source_MPORT_addr] <= ram_echo_tl_state_source_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_wen_MPORT_en & ram_wen_MPORT_mask) begin
      ram_wen[ram_wen_MPORT_addr] <= ram_wen_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      if (empty) begin // @[Decoupled.scala 317:17]
        if (io_deq_ready) begin // @[Decoupled.scala 320:26]
          maybe_full <= 1'h0; // @[Decoupled.scala 320:35]
        end else begin
          maybe_full <= _do_enq_T;
        end
      end else begin
        maybe_full <= _do_enq_T;
      end
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_id[initvar] = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_addr[initvar] = _RAND_1[31:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_len[initvar] = _RAND_2[7:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_size[initvar] = _RAND_3[2:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_burst[initvar] = _RAND_4[1:0];
  _RAND_5 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_lock[initvar] = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_cache[initvar] = _RAND_6[3:0];
  _RAND_7 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_prot[initvar] = _RAND_7[2:0];
  _RAND_8 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_qos[initvar] = _RAND_8[3:0];
  _RAND_9 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_echo_tl_state_size[initvar] = _RAND_9[3:0];
  _RAND_10 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_echo_tl_state_source[initvar] = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_wen[initvar] = _RAND_11[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_12 = {1{`RANDOM}};
  maybe_full = _RAND_12[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLToAXI4(
  input          clock,
  input          reset,
  output         auto_in_a_ready,
  input          auto_in_a_valid,
  input  [2:0]   auto_in_a_bits_opcode,
  input  [31:0]  auto_in_a_bits_address,
  input  [15:0]  auto_in_a_bits_mask,
  input  [127:0] auto_in_a_bits_data,
  input          auto_in_d_ready,
  output         auto_in_d_valid,
  output [2:0]   auto_in_d_bits_opcode,
  output [2:0]   auto_in_d_bits_size,
  output         auto_in_d_bits_source,
  output         auto_in_d_bits_denied,
  output [127:0] auto_in_d_bits_data,
  output         auto_in_d_bits_corrupt,
  input          auto_out_aw_ready,
  output         auto_out_aw_valid,
  output         auto_out_aw_bits_id,
  output [31:0]  auto_out_aw_bits_addr,
  output [7:0]   auto_out_aw_bits_len,
  output [2:0]   auto_out_aw_bits_size,
  output [1:0]   auto_out_aw_bits_burst,
  output         auto_out_aw_bits_lock,
  output [3:0]   auto_out_aw_bits_cache,
  output [2:0]   auto_out_aw_bits_prot,
  output [3:0]   auto_out_aw_bits_qos,
  output [3:0]   auto_out_aw_bits_echo_tl_state_size,
  output         auto_out_aw_bits_echo_tl_state_source,
  input          auto_out_w_ready,
  output         auto_out_w_valid,
  output [127:0] auto_out_w_bits_data,
  output [15:0]  auto_out_w_bits_strb,
  output         auto_out_w_bits_last,
  output         auto_out_b_ready,
  input          auto_out_b_valid,
  input  [1:0]   auto_out_b_bits_resp,
  input  [3:0]   auto_out_b_bits_echo_tl_state_size,
  input          auto_out_b_bits_echo_tl_state_source,
  input          auto_out_ar_ready,
  output         auto_out_ar_valid,
  output         auto_out_ar_bits_id,
  output [31:0]  auto_out_ar_bits_addr,
  output [7:0]   auto_out_ar_bits_len,
  output [2:0]   auto_out_ar_bits_size,
  output [1:0]   auto_out_ar_bits_burst,
  output         auto_out_ar_bits_lock,
  output [3:0]   auto_out_ar_bits_cache,
  output [2:0]   auto_out_ar_bits_prot,
  output [3:0]   auto_out_ar_bits_qos,
  output [3:0]   auto_out_ar_bits_echo_tl_state_size,
  output         auto_out_ar_bits_echo_tl_state_source,
  output         auto_out_r_ready,
  input          auto_out_r_valid,
  input  [127:0] auto_out_r_bits_data,
  input  [1:0]   auto_out_r_bits_resp,
  input  [3:0]   auto_out_r_bits_echo_tl_state_size,
  input          auto_out_r_bits_echo_tl_state_source,
  input          auto_out_r_bits_last
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
`endif // RANDOMIZE_REG_INIT
  wire  monitor_clock; // @[Nodes.scala 24:25]
  wire  monitor_reset; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_opcode; // @[Nodes.scala 24:25]
  wire [31:0] monitor_io_in_a_bits_address; // @[Nodes.scala 24:25]
  wire [15:0] monitor_io_in_a_bits_mask; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_size; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_source; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_denied; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_corrupt; // @[Nodes.scala 24:25]
  wire  deq_clock; // @[Decoupled.scala 377:21]
  wire  deq_reset; // @[Decoupled.scala 377:21]
  wire  deq_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  deq_io_enq_valid; // @[Decoupled.scala 377:21]
  wire [127:0] deq_io_enq_bits_data; // @[Decoupled.scala 377:21]
  wire [15:0] deq_io_enq_bits_strb; // @[Decoupled.scala 377:21]
  wire  deq_io_deq_ready; // @[Decoupled.scala 377:21]
  wire  deq_io_deq_valid; // @[Decoupled.scala 377:21]
  wire [127:0] deq_io_deq_bits_data; // @[Decoupled.scala 377:21]
  wire [15:0] deq_io_deq_bits_strb; // @[Decoupled.scala 377:21]
  wire  deq_io_deq_bits_last; // @[Decoupled.scala 377:21]
  wire  queue_arw_deq_clock; // @[Decoupled.scala 377:21]
  wire  queue_arw_deq_reset; // @[Decoupled.scala 377:21]
  wire  queue_arw_deq_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  queue_arw_deq_io_enq_valid; // @[Decoupled.scala 377:21]
  wire [31:0] queue_arw_deq_io_enq_bits_addr; // @[Decoupled.scala 377:21]
  wire  queue_arw_deq_io_enq_bits_wen; // @[Decoupled.scala 377:21]
  wire  queue_arw_deq_io_deq_ready; // @[Decoupled.scala 377:21]
  wire  queue_arw_deq_io_deq_valid; // @[Decoupled.scala 377:21]
  wire  queue_arw_deq_io_deq_bits_id; // @[Decoupled.scala 377:21]
  wire [31:0] queue_arw_deq_io_deq_bits_addr; // @[Decoupled.scala 377:21]
  wire [7:0] queue_arw_deq_io_deq_bits_len; // @[Decoupled.scala 377:21]
  wire [2:0] queue_arw_deq_io_deq_bits_size; // @[Decoupled.scala 377:21]
  wire [1:0] queue_arw_deq_io_deq_bits_burst; // @[Decoupled.scala 377:21]
  wire  queue_arw_deq_io_deq_bits_lock; // @[Decoupled.scala 377:21]
  wire [3:0] queue_arw_deq_io_deq_bits_cache; // @[Decoupled.scala 377:21]
  wire [2:0] queue_arw_deq_io_deq_bits_prot; // @[Decoupled.scala 377:21]
  wire [3:0] queue_arw_deq_io_deq_bits_qos; // @[Decoupled.scala 377:21]
  wire [3:0] queue_arw_deq_io_deq_bits_echo_tl_state_size; // @[Decoupled.scala 377:21]
  wire  queue_arw_deq_io_deq_bits_echo_tl_state_source; // @[Decoupled.scala 377:21]
  wire  queue_arw_deq_io_deq_bits_wen; // @[Decoupled.scala 377:21]
  wire  a_isPut = ~auto_in_a_bits_opcode[2]; // @[Edges.scala 91:28]
  reg  count_1; // @[ToAXI4.scala 254:28]
  wire  idle = ~count_1; // @[ToAXI4.scala 256:26]
  reg  counter; // @[Edges.scala 228:27]
  wire  a_first = ~counter; // @[Edges.scala 230:25]
  wire  stall = count_1 & a_first; // @[ToAXI4.scala 195:49]
  wire  _bundleIn_0_a_ready_T = ~stall; // @[ToAXI4.scala 196:21]
  wire  out_arw_ready = queue_arw_deq_io_enq_ready; // @[ToAXI4.scala 147:25 Decoupled.scala 381:17]
  wire  out_w_ready = deq_io_enq_ready; // @[ToAXI4.scala 148:23 Decoupled.scala 381:17]
  wire  _bundleIn_0_a_ready_T_3 = a_isPut ? out_arw_ready & out_w_ready : out_arw_ready; // @[ToAXI4.scala 196:34]
  wire  bundleIn_0_a_ready = ~stall & _bundleIn_0_a_ready_T_3; // @[ToAXI4.scala 196:28]
  wire  _T = bundleIn_0_a_ready & auto_in_a_valid; // @[Decoupled.scala 52:35]
  wire  counter1 = counter - 1'h1; // @[Edges.scala 229:28]
  wire  queue_arw_bits_wen = queue_arw_deq_io_deq_bits_wen; // @[Decoupled.scala 417:19 418:14]
  wire  queue_arw_valid = queue_arw_deq_io_deq_valid; // @[Decoupled.scala 417:19 419:15]
  wire  _out_arw_valid_T_1 = _bundleIn_0_a_ready_T & auto_in_a_valid; // @[ToAXI4.scala 197:31]
  wire  _out_arw_valid_T_4 = a_isPut ? out_w_ready : 1'h1; // @[ToAXI4.scala 197:51]
  wire  out_arw_valid = _bundleIn_0_a_ready_T & auto_in_a_valid & _out_arw_valid_T_4; // @[ToAXI4.scala 197:45]
  reg  r_holds_d; // @[ToAXI4.scala 206:30]
  reg [2:0] b_delay; // @[ToAXI4.scala 209:24]
  wire  r_wins = auto_out_r_valid & b_delay != 3'h7 | r_holds_d; // @[ToAXI4.scala 215:57]
  wire  bundleOut_0_r_ready = auto_in_d_ready & r_wins; // @[ToAXI4.scala 217:33]
  wire  _T_2 = bundleOut_0_r_ready & auto_out_r_valid; // @[Decoupled.scala 52:35]
  wire  bundleOut_0_b_ready = auto_in_d_ready & ~r_wins; // @[ToAXI4.scala 218:33]
  wire [2:0] _b_delay_T_1 = b_delay + 3'h1; // @[ToAXI4.scala 211:28]
  wire  bundleIn_0_d_valid = r_wins ? auto_out_r_valid : auto_out_b_valid; // @[ToAXI4.scala 219:24]
  reg  r_first; // @[ToAXI4.scala 224:28]
  wire  _GEN_4 = _T_2 ? auto_out_r_bits_last : r_first; // @[ToAXI4.scala 225:27 224:28 225:37]
  wire  _r_denied_T = auto_out_r_bits_resp == 2'h3; // @[ToAXI4.scala 226:39]
  reg  r_denied_r; // @[Reg.scala 19:16]
  wire  _GEN_5 = r_first ? _r_denied_T : r_denied_r; // @[Reg.scala 19:16 20:{18,22}]
  wire  r_corrupt = auto_out_r_bits_resp != 2'h0; // @[ToAXI4.scala 227:39]
  wire  b_denied = auto_out_b_bits_resp != 2'h0; // @[ToAXI4.scala 228:39]
  wire  r_d_corrupt = r_corrupt | _GEN_5; // @[ToAXI4.scala 230:100]
  wire [2:0] r_d_size = auto_out_r_bits_echo_tl_state_size[2:0]; // @[Edges.scala 771:17 774:15]
  wire [2:0] b_d_size = auto_out_b_bits_echo_tl_state_size[2:0]; // @[Edges.scala 755:17 758:15]
  wire  d_last = r_wins ? auto_out_r_bits_last : 1'h1; // @[ToAXI4.scala 244:23]
  wire  inc = out_arw_ready & out_arw_valid; // @[Decoupled.scala 52:35]
  wire  _dec_T_1 = auto_in_d_ready & bundleIn_0_d_valid; // @[Decoupled.scala 52:35]
  wire  dec = d_last & _dec_T_1; // @[ToAXI4.scala 259:32]
  wire  _count_T_2 = count_1 + inc; // @[ToAXI4.scala 260:24]
  wire  _T_10 = ~reset; // @[ToAXI4.scala 262:16]
  TLMonitor_19 monitor ( // @[Nodes.scala 24:25]
    .clock(monitor_clock),
    .reset(monitor_reset),
    .io_in_a_ready(monitor_io_in_a_ready),
    .io_in_a_valid(monitor_io_in_a_valid),
    .io_in_a_bits_opcode(monitor_io_in_a_bits_opcode),
    .io_in_a_bits_address(monitor_io_in_a_bits_address),
    .io_in_a_bits_mask(monitor_io_in_a_bits_mask),
    .io_in_d_ready(monitor_io_in_d_ready),
    .io_in_d_valid(monitor_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_io_in_d_bits_opcode),
    .io_in_d_bits_size(monitor_io_in_d_bits_size),
    .io_in_d_bits_source(monitor_io_in_d_bits_source),
    .io_in_d_bits_denied(monitor_io_in_d_bits_denied),
    .io_in_d_bits_corrupt(monitor_io_in_d_bits_corrupt)
  );
  Queue_45 deq ( // @[Decoupled.scala 377:21]
    .clock(deq_clock),
    .reset(deq_reset),
    .io_enq_ready(deq_io_enq_ready),
    .io_enq_valid(deq_io_enq_valid),
    .io_enq_bits_data(deq_io_enq_bits_data),
    .io_enq_bits_strb(deq_io_enq_bits_strb),
    .io_deq_ready(deq_io_deq_ready),
    .io_deq_valid(deq_io_deq_valid),
    .io_deq_bits_data(deq_io_deq_bits_data),
    .io_deq_bits_strb(deq_io_deq_bits_strb),
    .io_deq_bits_last(deq_io_deq_bits_last)
  );
  Queue_46 queue_arw_deq ( // @[Decoupled.scala 377:21]
    .clock(queue_arw_deq_clock),
    .reset(queue_arw_deq_reset),
    .io_enq_ready(queue_arw_deq_io_enq_ready),
    .io_enq_valid(queue_arw_deq_io_enq_valid),
    .io_enq_bits_addr(queue_arw_deq_io_enq_bits_addr),
    .io_enq_bits_wen(queue_arw_deq_io_enq_bits_wen),
    .io_deq_ready(queue_arw_deq_io_deq_ready),
    .io_deq_valid(queue_arw_deq_io_deq_valid),
    .io_deq_bits_id(queue_arw_deq_io_deq_bits_id),
    .io_deq_bits_addr(queue_arw_deq_io_deq_bits_addr),
    .io_deq_bits_len(queue_arw_deq_io_deq_bits_len),
    .io_deq_bits_size(queue_arw_deq_io_deq_bits_size),
    .io_deq_bits_burst(queue_arw_deq_io_deq_bits_burst),
    .io_deq_bits_lock(queue_arw_deq_io_deq_bits_lock),
    .io_deq_bits_cache(queue_arw_deq_io_deq_bits_cache),
    .io_deq_bits_prot(queue_arw_deq_io_deq_bits_prot),
    .io_deq_bits_qos(queue_arw_deq_io_deq_bits_qos),
    .io_deq_bits_echo_tl_state_size(queue_arw_deq_io_deq_bits_echo_tl_state_size),
    .io_deq_bits_echo_tl_state_source(queue_arw_deq_io_deq_bits_echo_tl_state_source),
    .io_deq_bits_wen(queue_arw_deq_io_deq_bits_wen)
  );
  assign auto_in_a_ready = ~stall & _bundleIn_0_a_ready_T_3; // @[ToAXI4.scala 196:28]
  assign auto_in_d_valid = r_wins ? auto_out_r_valid : auto_out_b_valid; // @[ToAXI4.scala 219:24]
  assign auto_in_d_bits_opcode = r_wins ? 3'h1 : 3'h0; // @[ToAXI4.scala 237:23]
  assign auto_in_d_bits_size = r_wins ? r_d_size : b_d_size; // @[ToAXI4.scala 237:23]
  assign auto_in_d_bits_source = r_wins ? auto_out_r_bits_echo_tl_state_source : auto_out_b_bits_echo_tl_state_source; // @[ToAXI4.scala 237:23]
  assign auto_in_d_bits_denied = r_wins ? _GEN_5 : b_denied; // @[ToAXI4.scala 237:23]
  assign auto_in_d_bits_data = auto_out_r_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_d_bits_corrupt = r_wins & r_d_corrupt; // @[ToAXI4.scala 237:23]
  assign auto_out_aw_valid = queue_arw_valid & queue_arw_bits_wen; // @[ToAXI4.scala 156:39]
  assign auto_out_aw_bits_id = queue_arw_deq_io_deq_bits_id; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_aw_bits_addr = queue_arw_deq_io_deq_bits_addr; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_aw_bits_len = queue_arw_deq_io_deq_bits_len; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_aw_bits_size = queue_arw_deq_io_deq_bits_size; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_aw_bits_burst = queue_arw_deq_io_deq_bits_burst; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_aw_bits_lock = queue_arw_deq_io_deq_bits_lock; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_aw_bits_cache = queue_arw_deq_io_deq_bits_cache; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_aw_bits_prot = queue_arw_deq_io_deq_bits_prot; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_aw_bits_qos = queue_arw_deq_io_deq_bits_qos; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_aw_bits_echo_tl_state_size = queue_arw_deq_io_deq_bits_echo_tl_state_size; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_aw_bits_echo_tl_state_source = queue_arw_deq_io_deq_bits_echo_tl_state_source; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_w_valid = deq_io_deq_valid; // @[Decoupled.scala 417:19 419:15]
  assign auto_out_w_bits_data = deq_io_deq_bits_data; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_w_bits_strb = deq_io_deq_bits_strb; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_w_bits_last = deq_io_deq_bits_last; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_b_ready = auto_in_d_ready & ~r_wins; // @[ToAXI4.scala 218:33]
  assign auto_out_ar_valid = queue_arw_valid & ~queue_arw_bits_wen; // @[ToAXI4.scala 155:39]
  assign auto_out_ar_bits_id = queue_arw_deq_io_deq_bits_id; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_ar_bits_addr = queue_arw_deq_io_deq_bits_addr; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_ar_bits_len = queue_arw_deq_io_deq_bits_len; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_ar_bits_size = queue_arw_deq_io_deq_bits_size; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_ar_bits_burst = queue_arw_deq_io_deq_bits_burst; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_ar_bits_lock = queue_arw_deq_io_deq_bits_lock; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_ar_bits_cache = queue_arw_deq_io_deq_bits_cache; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_ar_bits_prot = queue_arw_deq_io_deq_bits_prot; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_ar_bits_qos = queue_arw_deq_io_deq_bits_qos; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_ar_bits_echo_tl_state_size = queue_arw_deq_io_deq_bits_echo_tl_state_size; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_ar_bits_echo_tl_state_source = queue_arw_deq_io_deq_bits_echo_tl_state_source; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_r_ready = auto_in_d_ready & r_wins; // @[ToAXI4.scala 217:33]
  assign monitor_clock = clock;
  assign monitor_reset = reset;
  assign monitor_io_in_a_ready = ~stall & _bundleIn_0_a_ready_T_3; // @[ToAXI4.scala 196:28]
  assign monitor_io_in_a_valid = auto_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_opcode = auto_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_mask = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_ready = auto_in_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_valid = r_wins ? auto_out_r_valid : auto_out_b_valid; // @[ToAXI4.scala 219:24]
  assign monitor_io_in_d_bits_opcode = r_wins ? 3'h1 : 3'h0; // @[ToAXI4.scala 237:23]
  assign monitor_io_in_d_bits_size = r_wins ? r_d_size : b_d_size; // @[ToAXI4.scala 237:23]
  assign monitor_io_in_d_bits_source = r_wins ? auto_out_r_bits_echo_tl_state_source :
    auto_out_b_bits_echo_tl_state_source; // @[ToAXI4.scala 237:23]
  assign monitor_io_in_d_bits_denied = r_wins ? _GEN_5 : b_denied; // @[ToAXI4.scala 237:23]
  assign monitor_io_in_d_bits_corrupt = r_wins & r_d_corrupt; // @[ToAXI4.scala 237:23]
  assign deq_clock = clock;
  assign deq_reset = reset;
  assign deq_io_enq_valid = _out_arw_valid_T_1 & a_isPut & out_arw_ready; // @[ToAXI4.scala 199:54]
  assign deq_io_enq_bits_data = auto_in_a_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign deq_io_enq_bits_strb = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign deq_io_deq_ready = auto_out_w_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign queue_arw_deq_clock = clock;
  assign queue_arw_deq_reset = reset;
  assign queue_arw_deq_io_enq_valid = _bundleIn_0_a_ready_T & auto_in_a_valid & _out_arw_valid_T_4; // @[ToAXI4.scala 197:45]
  assign queue_arw_deq_io_enq_bits_addr = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign queue_arw_deq_io_enq_bits_wen = ~auto_in_a_bits_opcode[2]; // @[Edges.scala 91:28]
  assign queue_arw_deq_io_deq_ready = queue_arw_bits_wen ? auto_out_aw_ready : auto_out_ar_ready; // @[ToAXI4.scala 157:29]
  always @(posedge clock) begin
    if (reset) begin // @[ToAXI4.scala 254:28]
      count_1 <= 1'h0; // @[ToAXI4.scala 254:28]
    end else begin
      count_1 <= _count_T_2 - dec; // @[ToAXI4.scala 260:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      counter <= 1'h0; // @[Edges.scala 228:27]
    end else if (_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        counter <= 1'h0;
      end else begin
        counter <= counter1;
      end
    end
    if (reset) begin // @[ToAXI4.scala 206:30]
      r_holds_d <= 1'h0; // @[ToAXI4.scala 206:30]
    end else if (_T_2) begin // @[ToAXI4.scala 207:27]
      r_holds_d <= ~auto_out_r_bits_last; // @[ToAXI4.scala 207:39]
    end
    if (auto_out_b_valid & ~bundleOut_0_b_ready) begin // @[ToAXI4.scala 210:42]
      b_delay <= _b_delay_T_1; // @[ToAXI4.scala 211:17]
    end else begin
      b_delay <= 3'h0; // @[ToAXI4.scala 213:17]
    end
    r_first <= reset | _GEN_4; // @[ToAXI4.scala 224:{28,28}]
    if (r_first) begin // @[Reg.scala 20:18]
      r_denied_r <= _r_denied_T; // @[Reg.scala 20:22]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~dec | count_1)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at ToAXI4.scala:262 assert (!dec || count =/= UInt(0))        // underflow\n"); // @[ToAXI4.scala 262:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~dec | count_1) & ~reset) begin
          $fatal; // @[ToAXI4.scala 262:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_10 & ~(~inc | idle)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at ToAXI4.scala:263 assert (!inc || count =/= UInt(maxCount)) // overflow\n"); // @[ToAXI4.scala 263:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~inc | idle) & _T_10) begin
          $fatal; // @[ToAXI4.scala 263:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  count_1 = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  counter = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  r_holds_d = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  b_delay = _RAND_3[2:0];
  _RAND_4 = {1{`RANDOM}};
  r_first = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  r_denied_r = _RAND_5[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLMonitor_20(
  input         clock,
  input         reset,
  input         io_in_a_ready,
  input         io_in_a_valid,
  input  [2:0]  io_in_a_bits_opcode,
  input  [31:0] io_in_a_bits_address,
  input  [7:0]  io_in_a_bits_mask,
  input         io_in_d_ready,
  input         io_in_d_valid,
  input  [2:0]  io_in_d_bits_opcode,
  input  [2:0]  io_in_d_bits_size,
  input         io_in_d_bits_source,
  input         io_in_d_bits_denied,
  input         io_in_d_bits_corrupt
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire [31:0] _is_aligned_T = io_in_a_bits_address & 32'h7; // @[Edges.scala 20:16]
  wire  is_aligned = _is_aligned_T == 32'h0; // @[Edges.scala 20:24]
  wire  _T_15 = io_in_a_bits_opcode == 3'h6; // @[Monitor.scala 81:25]
  wire [31:0] _T_23 = io_in_a_bits_address ^ 32'h80000000; // @[Parameters.scala 137:31]
  wire [32:0] _T_24 = {1'b0,$signed(_T_23)}; // @[Parameters.scala 137:49]
  wire [32:0] _T_26 = $signed(_T_24) & -33'sh80000000; // @[Parameters.scala 137:52]
  wire  _T_27 = $signed(_T_26) == 33'sh0; // @[Parameters.scala 137:67]
  wire [7:0] _T_63 = ~io_in_a_bits_mask; // @[Monitor.scala 88:18]
  wire  _T_64 = _T_63 == 8'h0; // @[Monitor.scala 88:31]
  wire  _T_72 = io_in_a_bits_opcode == 3'h7; // @[Monitor.scala 92:25]
  wire  _T_133 = io_in_a_bits_opcode == 3'h4; // @[Monitor.scala 104:25]
  wire  _T_167 = io_in_a_bits_mask == 8'hff; // @[Monitor.scala 110:30]
  wire  _T_175 = io_in_a_bits_opcode == 3'h0; // @[Monitor.scala 114:25]
  wire  _T_211 = io_in_a_bits_opcode == 3'h1; // @[Monitor.scala 122:25]
  wire  _T_249 = io_in_a_bits_opcode == 3'h2; // @[Monitor.scala 130:25]
  wire  _T_282 = io_in_a_bits_opcode == 3'h3; // @[Monitor.scala 138:25]
  wire  _T_315 = io_in_a_bits_opcode == 3'h5; // @[Monitor.scala 146:25]
  wire  _T_352 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire  _source_ok_T_1 = ~io_in_d_bits_source; // @[Parameters.scala 46:9]
  wire  _T_356 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_360 = io_in_d_bits_size >= 3'h3; // @[Monitor.scala 312:27]
  wire  _T_368 = ~io_in_d_bits_corrupt; // @[Monitor.scala 314:15]
  wire  _T_372 = ~io_in_d_bits_denied; // @[Monitor.scala 315:15]
  wire  _T_376 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_404 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _T_424 = _T_372 | io_in_d_bits_corrupt; // @[Monitor.scala 334:30]
  wire  _T_433 = io_in_d_bits_opcode == 3'h0; // @[Monitor.scala 338:25]
  wire  _T_450 = io_in_d_bits_opcode == 3'h1; // @[Monitor.scala 346:25]
  wire  _T_468 = io_in_d_bits_opcode == 3'h2; // @[Monitor.scala 354:25]
  wire  _a_first_T = io_in_a_ready & io_in_a_valid; // @[Decoupled.scala 52:35]
  reg [1:0] a_first_counter; // @[Edges.scala 228:27]
  wire [1:0] a_first_counter1 = a_first_counter - 2'h1; // @[Edges.scala 229:28]
  wire  a_first = a_first_counter == 2'h0; // @[Edges.scala 230:25]
  reg [2:0] opcode; // @[Monitor.scala 384:22]
  reg [31:0] address; // @[Monitor.scala 388:22]
  wire  _T_498 = io_in_a_valid & ~a_first; // @[Monitor.scala 389:19]
  wire  _T_499 = io_in_a_bits_opcode == opcode; // @[Monitor.scala 390:32]
  wire  _T_515 = io_in_a_bits_address == address; // @[Monitor.scala 394:32]
  wire  _d_first_T = io_in_d_ready & io_in_d_valid; // @[Decoupled.scala 52:35]
  wire [11:0] _d_first_beats1_decode_T_1 = 12'h1f << io_in_d_bits_size; // @[package.scala 234:77]
  wire [4:0] _d_first_beats1_decode_T_3 = ~_d_first_beats1_decode_T_1[4:0]; // @[package.scala 234:46]
  wire [1:0] d_first_beats1_decode = _d_first_beats1_decode_T_3[4:3]; // @[Edges.scala 219:59]
  wire  d_first_beats1_opdata = io_in_d_bits_opcode[0]; // @[Edges.scala 105:36]
  reg [1:0] d_first_counter; // @[Edges.scala 228:27]
  wire [1:0] d_first_counter1 = d_first_counter - 2'h1; // @[Edges.scala 229:28]
  wire  d_first = d_first_counter == 2'h0; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  reg [2:0] size_1; // @[Monitor.scala 537:22]
  reg  source_1; // @[Monitor.scala 538:22]
  reg  denied; // @[Monitor.scala 540:22]
  wire  _T_522 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_523 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  wire  _T_531 = io_in_d_bits_size == size_1; // @[Monitor.scala 544:29]
  wire  _T_535 = io_in_d_bits_source == source_1; // @[Monitor.scala 545:29]
  wire  _T_543 = io_in_d_bits_denied == denied; // @[Monitor.scala 547:29]
  reg  inflight; // @[Monitor.scala 611:27]
  reg [3:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [3:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg [1:0] a_first_counter_1; // @[Edges.scala 228:27]
  wire [1:0] a_first_counter1_1 = a_first_counter_1 - 2'h1; // @[Edges.scala 229:28]
  wire  a_first_1 = a_first_counter_1 == 2'h0; // @[Edges.scala 230:25]
  reg [1:0] d_first_counter_1; // @[Edges.scala 228:27]
  wire [1:0] d_first_counter1_1 = d_first_counter_1 - 2'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = d_first_counter_1 == 2'h0; // @[Edges.scala 230:25]
  wire [2:0] _GEN_62 = {io_in_d_bits_source, 2'h0}; // @[Monitor.scala 634:69]
  wire [3:0] _a_opcode_lookup_T = {{1'd0}, _GEN_62}; // @[Monitor.scala 634:69]
  wire [3:0] _a_opcode_lookup_T_1 = inflight_opcodes >> _a_opcode_lookup_T; // @[Monitor.scala 634:44]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [15:0] _GEN_64 = {{12'd0}, _a_opcode_lookup_T_1}; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_6 = _GEN_64 & _a_opcode_lookup_T_5; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[15:1]}; // @[Monitor.scala 634:152]
  wire [3:0] _a_size_lookup_T_1 = inflight_sizes >> _a_opcode_lookup_T; // @[Monitor.scala 638:40]
  wire [15:0] _GEN_72 = {{12'd0}, _a_size_lookup_T_1}; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_6 = _GEN_72 & _a_opcode_lookup_T_5; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[15:1]}; // @[Monitor.scala 638:144]
  wire  _T_549 = io_in_a_valid & a_first_1; // @[Monitor.scala 648:26]
  wire [1:0] _GEN_15 = io_in_a_valid & a_first_1 ? 2'h1 : 2'h0; // @[Monitor.scala 648:71 649:22]
  wire  _T_552 = _a_first_T & a_first_1; // @[Monitor.scala 652:27]
  wire [3:0] _a_opcodes_set_interm_T = {io_in_a_bits_opcode, 1'h0}; // @[Monitor.scala 654:53]
  wire [3:0] _a_opcodes_set_interm_T_1 = _a_opcodes_set_interm_T | 4'h1; // @[Monitor.scala 654:61]
  wire [3:0] a_opcodes_set_interm = _a_first_T & a_first_1 ? _a_opcodes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 654:28]
  wire [18:0] _a_opcodes_set_T_1 = {{15'd0}, a_opcodes_set_interm}; // @[Monitor.scala 656:54]
  wire [3:0] a_sizes_set_interm = _a_first_T & a_first_1 ? 4'h7 : 4'h0; // @[Monitor.scala 652:72 655:28]
  wire [18:0] _a_sizes_set_T_1 = {{15'd0}, a_sizes_set_interm}; // @[Monitor.scala 657:52]
  wire  _T_556 = ~inflight; // @[Monitor.scala 658:17]
  wire [1:0] _GEN_16 = _a_first_T & a_first_1 ? 2'h1 : 2'h0; // @[Monitor.scala 652:72 653:28]
  wire [18:0] _GEN_19 = _a_first_T & a_first_1 ? _a_opcodes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 656:28]
  wire [18:0] _GEN_20 = _a_first_T & a_first_1 ? _a_sizes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 657:28]
  wire  _T_560 = io_in_d_valid & d_first_1; // @[Monitor.scala 671:26]
  wire  _T_562 = ~_T_356; // @[Monitor.scala 671:74]
  wire  _T_563 = io_in_d_valid & d_first_1 & ~_T_356; // @[Monitor.scala 671:71]
  wire [1:0] _d_clr_wo_ready_T = 2'h1 << io_in_d_bits_source; // @[OneHot.scala 57:35]
  wire [1:0] _GEN_21 = io_in_d_valid & d_first_1 & ~_T_356 ? _d_clr_wo_ready_T : 2'h0; // @[Monitor.scala 671:90 672:22]
  wire [30:0] _GEN_334 = {{15'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [30:0] _d_opcodes_clr_T_5 = _GEN_334 << _a_opcode_lookup_T; // @[Monitor.scala 677:76]
  wire [1:0] _GEN_22 = _d_first_T & d_first_1 & _T_562 ? _d_clr_wo_ready_T : 2'h0; // @[Monitor.scala 675:91 676:21]
  wire [30:0] _GEN_23 = _d_first_T & d_first_1 & _T_562 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 675:91 677:21]
  wire  same_cycle_resp = _T_549 & _source_ok_T_1; // @[Monitor.scala 681:88]
  wire  _T_575 = inflight >> io_in_d_bits_source | same_cycle_resp; // @[Monitor.scala 682:49]
  wire [2:0] _GEN_27 = 3'h2 == io_in_a_bits_opcode ? 3'h1 : 3'h0; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_28 = 3'h3 == io_in_a_bits_opcode ? 3'h1 : _GEN_27; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_29 = 3'h4 == io_in_a_bits_opcode ? 3'h1 : _GEN_28; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_30 = 3'h5 == io_in_a_bits_opcode ? 3'h2 : _GEN_29; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_31 = 3'h6 == io_in_a_bits_opcode ? 3'h4 : _GEN_30; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_32 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_31; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_39 = 3'h6 == io_in_a_bits_opcode ? 3'h5 : _GEN_30; // @[Monitor.scala 686:{39,39}]
  wire [2:0] _GEN_40 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_39; // @[Monitor.scala 686:{39,39}]
  wire  _T_580 = io_in_d_bits_opcode == _GEN_40; // @[Monitor.scala 686:39]
  wire  _T_581 = io_in_d_bits_opcode == _GEN_32 | _T_580; // @[Monitor.scala 685:77]
  wire  _T_585 = 3'h3 == io_in_d_bits_size; // @[Monitor.scala 687:36]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_43 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_44 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_43; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_45 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_44; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_46 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_45; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_47 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_46; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_48 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_47; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_55 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_46; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_56 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_55; // @[Monitor.scala 690:{38,38}]
  wire  _T_592 = io_in_d_bits_opcode == _GEN_56; // @[Monitor.scala 690:38]
  wire  _T_593 = io_in_d_bits_opcode == _GEN_48 | _T_592; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire [3:0] _GEN_76 = {{1'd0}, io_in_d_bits_size}; // @[Monitor.scala 691:36]
  wire  _T_597 = _GEN_76 == a_size_lookup; // @[Monitor.scala 691:36]
  wire  _T_607 = _T_560 & a_first_1 & io_in_a_valid & _source_ok_T_1 & _T_562; // @[Monitor.scala 694:116]
  wire  _T_609 = ~io_in_d_ready | io_in_a_ready; // @[Monitor.scala 695:32]
  wire  a_set_wo_ready = _GEN_15[0];
  wire  d_clr_wo_ready = _GEN_21[0];
  wire  _T_616 = a_set_wo_ready != d_clr_wo_ready | ~(|a_set_wo_ready); // @[Monitor.scala 699:48]
  wire  a_set = _GEN_16[0];
  wire  d_clr = _GEN_22[0];
  wire [3:0] a_opcodes_set = _GEN_19[3:0];
  wire [3:0] _inflight_opcodes_T = inflight_opcodes | a_opcodes_set; // @[Monitor.scala 703:43]
  wire [3:0] d_opcodes_clr = _GEN_23[3:0];
  wire [3:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [3:0] _inflight_opcodes_T_2 = _inflight_opcodes_T & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [3:0] a_sizes_set = _GEN_20[3:0];
  wire [3:0] _inflight_sizes_T = inflight_sizes | a_sizes_set; // @[Monitor.scala 704:39]
  wire [3:0] _inflight_sizes_T_2 = _inflight_sizes_T & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [31:0] watchdog; // @[Monitor.scala 706:27]
  wire  _T_625 = ~(|inflight) | plusarg_reader_out == 32'h0 | watchdog < plusarg_reader_out; // @[Monitor.scala 709:47]
  wire [31:0] _watchdog_T_1 = watchdog + 32'h1; // @[Monitor.scala 711:26]
  reg [3:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg [1:0] d_first_counter_2; // @[Edges.scala 228:27]
  wire [1:0] d_first_counter1_2 = d_first_counter_2 - 2'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = d_first_counter_2 == 2'h0; // @[Edges.scala 230:25]
  wire [3:0] _c_size_lookup_T_1 = inflight_sizes_1 >> _a_opcode_lookup_T; // @[Monitor.scala 747:42]
  wire [15:0] _GEN_78 = {{12'd0}, _c_size_lookup_T_1}; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_6 = _GEN_78 & _a_opcode_lookup_T_5; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[15:1]}; // @[Monitor.scala 747:146]
  wire  _T_651 = io_in_d_valid & d_first_2 & _T_356; // @[Monitor.scala 779:71]
  wire [30:0] _GEN_69 = _d_first_T & d_first_2 & _T_356 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 783:90 786:21]
  wire  _T_659 = 1'h0 >> io_in_d_bits_source; // @[Monitor.scala 791:25]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_669 = _GEN_76 == c_size_lookup; // @[Monitor.scala 795:36]
  wire [3:0] d_sizes_clr_1 = _GEN_69[3:0];
  wire [3:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [3:0] _inflight_sizes_T_5 = inflight_sizes_1 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 2'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        a_first_counter <= 2'h0;
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      opcode <= io_in_a_bits_opcode; // @[Monitor.scala 397:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      address <= io_in_a_bits_address; // @[Monitor.scala 401:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 2'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        if (d_first_beats1_opdata) begin // @[Edges.scala 220:14]
          d_first_counter <= d_first_beats1_decode;
        end else begin
          d_first_counter <= 2'h0;
        end
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      size_1 <= io_in_d_bits_size; // @[Monitor.scala 552:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      source_1 <= io_in_d_bits_source; // @[Monitor.scala 553:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      denied <= io_in_d_bits_denied; // @[Monitor.scala 555:15]
    end
    if (reset) begin // @[Monitor.scala 611:27]
      inflight <= 1'h0; // @[Monitor.scala 611:27]
    end else begin
      inflight <= (inflight | a_set) & ~d_clr; // @[Monitor.scala 702:14]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 4'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 4'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter_1 <= 2'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first_1) begin // @[Edges.scala 235:21]
        a_first_counter_1 <= 2'h0;
      end else begin
        a_first_counter_1 <= a_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 2'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        if (d_first_beats1_opdata) begin // @[Edges.scala 220:14]
          d_first_counter_1 <= d_first_beats1_decode;
        end else begin
          d_first_counter_1 <= 2'h0;
        end
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 706:27]
      watchdog <= 32'h0; // @[Monitor.scala 706:27]
    end else if (_a_first_T | _d_first_T) begin // @[Monitor.scala 712:47]
      watchdog <= 32'h0; // @[Monitor.scala 712:58]
    end else begin
      watchdog <= _watchdog_T_1; // @[Monitor.scala 711:14]
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 4'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 2'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        if (d_first_beats1_opdata) begin // @[Edges.scala 220:14]
          d_first_counter_2 <= d_first_beats1_decode;
        end else begin
          d_first_counter_2 <= 2'h0;
        end
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock from a client which does not support Probe (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock address not aligned to size (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~_T_64) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock contains invalid mask (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_64 & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm from a client which does not support Probe (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm address not aligned to size (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_72 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm requests NtoB (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset & ~_T_64) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm contains invalid mask (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_64 & (io_in_a_valid & _T_72 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~_T_27) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which slave claims it can't support (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_27 & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get address not aligned to size (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get contains invalid mask (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_175 & ~reset & ~_T_27) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutFull type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_27 & (io_in_a_valid & _T_175 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_175 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull address not aligned to size (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_175 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_175 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull contains invalid mask (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_175 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_211 & ~reset & ~_T_27) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutPartial type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_27 & (io_in_a_valid & _T_211 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_211 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial address not aligned to size (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_211 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_249 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Arithmetic type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_249 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_249 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic address not aligned to size (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_249 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_249 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic contains invalid mask (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_249 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Logical type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical address not aligned to size (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_282 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical contains invalid mask (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_282 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_315 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Hint type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_315 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_315 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint address not aligned to size (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_315 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_315 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint contains invalid mask (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_315 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_352) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_352 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_356 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck carries invalid source ID (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_356 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_356 & _T_2 & ~_T_360) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck smaller than a beat (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_360 & (io_in_d_valid & _T_356 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_356 & _T_2 & ~_T_368) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is corrupt (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_368 & (io_in_d_valid & _T_356 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_356 & _T_2 & ~_T_372) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is denied (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_372 & (io_in_d_valid & _T_356 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_376 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid source ID (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_376 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_376 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid sink ID (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_376 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_376 & _T_2 & ~_T_360) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant smaller than a beat (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_360 & (io_in_d_valid & _T_376 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_376 & _T_2 & ~_T_368) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant is corrupt (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_368 & (io_in_d_valid & _T_376 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_404 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid source ID (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_404 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_404 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid sink ID (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_404 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_404 & _T_2 & ~_T_360) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData smaller than a beat (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_360 & (io_in_d_valid & _T_404 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_404 & _T_2 & ~_T_424) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData is denied but not corrupt (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_424 & (io_in_d_valid & _T_404 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_433 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck carries invalid source ID (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_433 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_433 & _T_2 & ~_T_368) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck is corrupt (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_368 & (io_in_d_valid & _T_433 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_450 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData carries invalid source ID (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_450 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_450 & _T_2 & ~_T_424) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData is denied but not corrupt (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_424 & (io_in_d_valid & _T_450 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_468 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck carries invalid source ID (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_468 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_468 & _T_2 & ~_T_368) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck is corrupt (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_368 & (io_in_d_valid & _T_468 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_498 & ~reset & ~_T_499) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel opcode changed within multibeat operation (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_499 & (_T_498 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_498 & ~reset & ~_T_515) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel address changed with multibeat operation (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_515 & (_T_498 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_522 & _T_2 & ~_T_523) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_523 & (_T_522 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_522 & _T_2 & ~_T_531) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel size changed within multibeat operation (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_531 & (_T_522 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_522 & _T_2 & ~_T_535) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel source changed within multibeat operation (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_535 & (_T_522 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_522 & _T_2 & ~_T_543) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel denied changed with multibeat operation (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_543 & (_T_522 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_552 & ~reset & ~_T_556) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel re-used a source ID (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_556 & (_T_552 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_563 & _T_2 & ~_T_575) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_575 & (_T_563 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_563 & same_cycle_resp & _T_2 & ~_T_581) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_581 & (_T_563 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_563 & same_cycle_resp & _T_2 & ~_T_585) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_585 & (_T_563 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_563 & ~same_cycle_resp & _T_2 & ~_T_593) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_593 & (_T_563 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_563 & ~same_cycle_resp & _T_2 & ~_T_597) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_597 & (_T_563 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_607 & _T_2 & ~_T_609) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_609 & (_T_607 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_2 & ~_T_616) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' and 'D' concurrent, despite minlatency 1 (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_616 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_625) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_625 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_651 & _T_2 & ~_T_659) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_659 & (_T_651 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_651 & _T_2 & ~_T_669) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:179:41)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_669 & (_T_651 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[1:0];
  _RAND_1 = {1{`RANDOM}};
  opcode = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  address = _RAND_2[31:0];
  _RAND_3 = {1{`RANDOM}};
  d_first_counter = _RAND_3[1:0];
  _RAND_4 = {1{`RANDOM}};
  opcode_1 = _RAND_4[2:0];
  _RAND_5 = {1{`RANDOM}};
  size_1 = _RAND_5[2:0];
  _RAND_6 = {1{`RANDOM}};
  source_1 = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  denied = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  inflight = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  inflight_opcodes = _RAND_9[3:0];
  _RAND_10 = {1{`RANDOM}};
  inflight_sizes = _RAND_10[3:0];
  _RAND_11 = {1{`RANDOM}};
  a_first_counter_1 = _RAND_11[1:0];
  _RAND_12 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_12[1:0];
  _RAND_13 = {1{`RANDOM}};
  watchdog = _RAND_13[31:0];
  _RAND_14 = {1{`RANDOM}};
  inflight_sizes_1 = _RAND_14[3:0];
  _RAND_15 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_15[1:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Repeater_1(
  input          clock,
  input          reset,
  input          io_repeat,
  output         io_enq_ready,
  input          io_enq_valid,
  input  [2:0]   io_enq_bits_opcode,
  input  [2:0]   io_enq_bits_size,
  input          io_enq_bits_source,
  input          io_enq_bits_denied,
  input  [127:0] io_enq_bits_data,
  input          io_enq_bits_corrupt,
  input          io_deq_ready,
  output         io_deq_valid,
  output [2:0]   io_deq_bits_opcode,
  output [2:0]   io_deq_bits_size,
  output         io_deq_bits_source,
  output         io_deq_bits_denied,
  output [127:0] io_deq_bits_data,
  output         io_deq_bits_corrupt
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [127:0] _RAND_5;
  reg [31:0] _RAND_6;
`endif // RANDOMIZE_REG_INIT
  reg  full; // @[Repeater.scala 19:21]
  reg [2:0] saved_opcode; // @[Repeater.scala 20:18]
  reg [2:0] saved_size; // @[Repeater.scala 20:18]
  reg  saved_source; // @[Repeater.scala 20:18]
  reg  saved_denied; // @[Repeater.scala 20:18]
  reg [127:0] saved_data; // @[Repeater.scala 20:18]
  reg  saved_corrupt; // @[Repeater.scala 20:18]
  wire  _T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_0 = _T & io_repeat | full; // @[Repeater.scala 19:21 28:{38,45}]
  wire  _T_2 = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign io_enq_ready = io_deq_ready & ~full; // @[Repeater.scala 24:32]
  assign io_deq_valid = io_enq_valid | full; // @[Repeater.scala 23:32]
  assign io_deq_bits_opcode = full ? saved_opcode : io_enq_bits_opcode; // @[Repeater.scala 25:21]
  assign io_deq_bits_size = full ? saved_size : io_enq_bits_size; // @[Repeater.scala 25:21]
  assign io_deq_bits_source = full ? saved_source : io_enq_bits_source; // @[Repeater.scala 25:21]
  assign io_deq_bits_denied = full ? saved_denied : io_enq_bits_denied; // @[Repeater.scala 25:21]
  assign io_deq_bits_data = full ? saved_data : io_enq_bits_data; // @[Repeater.scala 25:21]
  assign io_deq_bits_corrupt = full ? saved_corrupt : io_enq_bits_corrupt; // @[Repeater.scala 25:21]
  always @(posedge clock) begin
    if (reset) begin // @[Repeater.scala 19:21]
      full <= 1'h0; // @[Repeater.scala 19:21]
    end else if (_T_2 & ~io_repeat) begin // @[Repeater.scala 29:38]
      full <= 1'h0; // @[Repeater.scala 29:45]
    end else begin
      full <= _GEN_0;
    end
    if (_T & io_repeat) begin // @[Repeater.scala 28:38]
      saved_opcode <= io_enq_bits_opcode; // @[Repeater.scala 28:62]
    end
    if (_T & io_repeat) begin // @[Repeater.scala 28:38]
      saved_size <= io_enq_bits_size; // @[Repeater.scala 28:62]
    end
    if (_T & io_repeat) begin // @[Repeater.scala 28:38]
      saved_source <= io_enq_bits_source; // @[Repeater.scala 28:62]
    end
    if (_T & io_repeat) begin // @[Repeater.scala 28:38]
      saved_denied <= io_enq_bits_denied; // @[Repeater.scala 28:62]
    end
    if (_T & io_repeat) begin // @[Repeater.scala 28:38]
      saved_data <= io_enq_bits_data; // @[Repeater.scala 28:62]
    end
    if (_T & io_repeat) begin // @[Repeater.scala 28:38]
      saved_corrupt <= io_enq_bits_corrupt; // @[Repeater.scala 28:62]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  full = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  saved_opcode = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  saved_size = _RAND_2[2:0];
  _RAND_3 = {1{`RANDOM}};
  saved_source = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  saved_denied = _RAND_4[0:0];
  _RAND_5 = {4{`RANDOM}};
  saved_data = _RAND_5[127:0];
  _RAND_6 = {1{`RANDOM}};
  saved_corrupt = _RAND_6[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLWidthWidget_1(
  input          clock,
  input          reset,
  output         auto_in_a_ready,
  input          auto_in_a_valid,
  input  [2:0]   auto_in_a_bits_opcode,
  input  [31:0]  auto_in_a_bits_address,
  input  [7:0]   auto_in_a_bits_mask,
  input  [63:0]  auto_in_a_bits_data,
  input          auto_in_d_ready,
  output         auto_in_d_valid,
  output [2:0]   auto_in_d_bits_opcode,
  output [2:0]   auto_in_d_bits_size,
  output         auto_in_d_bits_denied,
  output [63:0]  auto_in_d_bits_data,
  output         auto_in_d_bits_corrupt,
  input          auto_out_a_ready,
  output         auto_out_a_valid,
  output [2:0]   auto_out_a_bits_opcode,
  output [31:0]  auto_out_a_bits_address,
  output [15:0]  auto_out_a_bits_mask,
  output [127:0] auto_out_a_bits_data,
  output         auto_out_d_ready,
  input          auto_out_d_valid,
  input  [2:0]   auto_out_d_bits_opcode,
  input  [2:0]   auto_out_d_bits_size,
  input          auto_out_d_bits_source,
  input          auto_out_d_bits_denied,
  input  [127:0] auto_out_d_bits_data,
  input          auto_out_d_bits_corrupt
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
`endif // RANDOMIZE_REG_INIT
  wire  monitor_clock; // @[Nodes.scala 24:25]
  wire  monitor_reset; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_opcode; // @[Nodes.scala 24:25]
  wire [31:0] monitor_io_in_a_bits_address; // @[Nodes.scala 24:25]
  wire [7:0] monitor_io_in_a_bits_mask; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_size; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_source; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_denied; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_corrupt; // @[Nodes.scala 24:25]
  wire  repeated_repeater_clock; // @[Repeater.scala 35:26]
  wire  repeated_repeater_reset; // @[Repeater.scala 35:26]
  wire  repeated_repeater_io_repeat; // @[Repeater.scala 35:26]
  wire  repeated_repeater_io_enq_ready; // @[Repeater.scala 35:26]
  wire  repeated_repeater_io_enq_valid; // @[Repeater.scala 35:26]
  wire [2:0] repeated_repeater_io_enq_bits_opcode; // @[Repeater.scala 35:26]
  wire [2:0] repeated_repeater_io_enq_bits_size; // @[Repeater.scala 35:26]
  wire  repeated_repeater_io_enq_bits_source; // @[Repeater.scala 35:26]
  wire  repeated_repeater_io_enq_bits_denied; // @[Repeater.scala 35:26]
  wire [127:0] repeated_repeater_io_enq_bits_data; // @[Repeater.scala 35:26]
  wire  repeated_repeater_io_enq_bits_corrupt; // @[Repeater.scala 35:26]
  wire  repeated_repeater_io_deq_ready; // @[Repeater.scala 35:26]
  wire  repeated_repeater_io_deq_valid; // @[Repeater.scala 35:26]
  wire [2:0] repeated_repeater_io_deq_bits_opcode; // @[Repeater.scala 35:26]
  wire [2:0] repeated_repeater_io_deq_bits_size; // @[Repeater.scala 35:26]
  wire  repeated_repeater_io_deq_bits_source; // @[Repeater.scala 35:26]
  wire  repeated_repeater_io_deq_bits_denied; // @[Repeater.scala 35:26]
  wire [127:0] repeated_repeater_io_deq_bits_data; // @[Repeater.scala 35:26]
  wire  repeated_repeater_io_deq_bits_corrupt; // @[Repeater.scala 35:26]
  wire  hasData = ~auto_in_a_bits_opcode[2]; // @[Edges.scala 91:28]
  reg  count; // @[WidthWidget.scala 34:27]
  wire  last = ~count | ~hasData; // @[WidthWidget.scala 36:36]
  wire  bundleIn_0_a_ready = auto_out_a_ready | ~last; // @[WidthWidget.scala 70:29]
  wire  _T = bundleIn_0_a_ready & auto_in_a_valid; // @[Decoupled.scala 52:35]
  wire  bundleOut_0_a_bits_mask_bit = auto_in_a_bits_address[3]; // @[Misc.scala 209:26]
  wire  bundleOut_0_a_bits_mask_nbit = ~bundleOut_0_a_bits_mask_bit; // @[Misc.scala 210:20]
  wire  bundleOut_0_a_bits_mask_bit_1 = auto_in_a_bits_address[2]; // @[Misc.scala 209:26]
  wire  bundleOut_0_a_bits_mask_nbit_1 = ~bundleOut_0_a_bits_mask_bit_1; // @[Misc.scala 210:20]
  wire  bundleOut_0_a_bits_mask_eq_2 = bundleOut_0_a_bits_mask_nbit & bundleOut_0_a_bits_mask_nbit_1; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_eq_3 = bundleOut_0_a_bits_mask_nbit & bundleOut_0_a_bits_mask_bit_1; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_eq_4 = bundleOut_0_a_bits_mask_bit & bundleOut_0_a_bits_mask_nbit_1; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_eq_5 = bundleOut_0_a_bits_mask_bit & bundleOut_0_a_bits_mask_bit_1; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_bit_2 = auto_in_a_bits_address[1]; // @[Misc.scala 209:26]
  wire  bundleOut_0_a_bits_mask_nbit_2 = ~bundleOut_0_a_bits_mask_bit_2; // @[Misc.scala 210:20]
  wire  bundleOut_0_a_bits_mask_eq_6 = bundleOut_0_a_bits_mask_eq_2 & bundleOut_0_a_bits_mask_nbit_2; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_eq_7 = bundleOut_0_a_bits_mask_eq_2 & bundleOut_0_a_bits_mask_bit_2; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_eq_8 = bundleOut_0_a_bits_mask_eq_3 & bundleOut_0_a_bits_mask_nbit_2; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_eq_9 = bundleOut_0_a_bits_mask_eq_3 & bundleOut_0_a_bits_mask_bit_2; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_eq_10 = bundleOut_0_a_bits_mask_eq_4 & bundleOut_0_a_bits_mask_nbit_2; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_eq_11 = bundleOut_0_a_bits_mask_eq_4 & bundleOut_0_a_bits_mask_bit_2; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_eq_12 = bundleOut_0_a_bits_mask_eq_5 & bundleOut_0_a_bits_mask_nbit_2; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_eq_13 = bundleOut_0_a_bits_mask_eq_5 & bundleOut_0_a_bits_mask_bit_2; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_bit_3 = auto_in_a_bits_address[0]; // @[Misc.scala 209:26]
  wire  bundleOut_0_a_bits_mask_nbit_3 = ~bundleOut_0_a_bits_mask_bit_3; // @[Misc.scala 210:20]
  wire  bundleOut_0_a_bits_mask_eq_14 = bundleOut_0_a_bits_mask_eq_6 & bundleOut_0_a_bits_mask_nbit_3; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_acc_14 = bundleOut_0_a_bits_mask_nbit | bundleOut_0_a_bits_mask_eq_14; // @[Misc.scala 214:29]
  wire  bundleOut_0_a_bits_mask_eq_15 = bundleOut_0_a_bits_mask_eq_6 & bundleOut_0_a_bits_mask_bit_3; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_acc_15 = bundleOut_0_a_bits_mask_nbit | bundleOut_0_a_bits_mask_eq_15; // @[Misc.scala 214:29]
  wire  bundleOut_0_a_bits_mask_eq_16 = bundleOut_0_a_bits_mask_eq_7 & bundleOut_0_a_bits_mask_nbit_3; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_acc_16 = bundleOut_0_a_bits_mask_nbit | bundleOut_0_a_bits_mask_eq_16; // @[Misc.scala 214:29]
  wire  bundleOut_0_a_bits_mask_eq_17 = bundleOut_0_a_bits_mask_eq_7 & bundleOut_0_a_bits_mask_bit_3; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_acc_17 = bundleOut_0_a_bits_mask_nbit | bundleOut_0_a_bits_mask_eq_17; // @[Misc.scala 214:29]
  wire  bundleOut_0_a_bits_mask_eq_18 = bundleOut_0_a_bits_mask_eq_8 & bundleOut_0_a_bits_mask_nbit_3; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_acc_18 = bundleOut_0_a_bits_mask_nbit | bundleOut_0_a_bits_mask_eq_18; // @[Misc.scala 214:29]
  wire  bundleOut_0_a_bits_mask_eq_19 = bundleOut_0_a_bits_mask_eq_8 & bundleOut_0_a_bits_mask_bit_3; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_acc_19 = bundleOut_0_a_bits_mask_nbit | bundleOut_0_a_bits_mask_eq_19; // @[Misc.scala 214:29]
  wire  bundleOut_0_a_bits_mask_eq_20 = bundleOut_0_a_bits_mask_eq_9 & bundleOut_0_a_bits_mask_nbit_3; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_acc_20 = bundleOut_0_a_bits_mask_nbit | bundleOut_0_a_bits_mask_eq_20; // @[Misc.scala 214:29]
  wire  bundleOut_0_a_bits_mask_eq_21 = bundleOut_0_a_bits_mask_eq_9 & bundleOut_0_a_bits_mask_bit_3; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_acc_21 = bundleOut_0_a_bits_mask_nbit | bundleOut_0_a_bits_mask_eq_21; // @[Misc.scala 214:29]
  wire  bundleOut_0_a_bits_mask_eq_22 = bundleOut_0_a_bits_mask_eq_10 & bundleOut_0_a_bits_mask_nbit_3; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_acc_22 = bundleOut_0_a_bits_mask_bit | bundleOut_0_a_bits_mask_eq_22; // @[Misc.scala 214:29]
  wire  bundleOut_0_a_bits_mask_eq_23 = bundleOut_0_a_bits_mask_eq_10 & bundleOut_0_a_bits_mask_bit_3; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_acc_23 = bundleOut_0_a_bits_mask_bit | bundleOut_0_a_bits_mask_eq_23; // @[Misc.scala 214:29]
  wire  bundleOut_0_a_bits_mask_eq_24 = bundleOut_0_a_bits_mask_eq_11 & bundleOut_0_a_bits_mask_nbit_3; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_acc_24 = bundleOut_0_a_bits_mask_bit | bundleOut_0_a_bits_mask_eq_24; // @[Misc.scala 214:29]
  wire  bundleOut_0_a_bits_mask_eq_25 = bundleOut_0_a_bits_mask_eq_11 & bundleOut_0_a_bits_mask_bit_3; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_acc_25 = bundleOut_0_a_bits_mask_bit | bundleOut_0_a_bits_mask_eq_25; // @[Misc.scala 214:29]
  wire  bundleOut_0_a_bits_mask_eq_26 = bundleOut_0_a_bits_mask_eq_12 & bundleOut_0_a_bits_mask_nbit_3; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_acc_26 = bundleOut_0_a_bits_mask_bit | bundleOut_0_a_bits_mask_eq_26; // @[Misc.scala 214:29]
  wire  bundleOut_0_a_bits_mask_eq_27 = bundleOut_0_a_bits_mask_eq_12 & bundleOut_0_a_bits_mask_bit_3; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_acc_27 = bundleOut_0_a_bits_mask_bit | bundleOut_0_a_bits_mask_eq_27; // @[Misc.scala 214:29]
  wire  bundleOut_0_a_bits_mask_eq_28 = bundleOut_0_a_bits_mask_eq_13 & bundleOut_0_a_bits_mask_nbit_3; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_acc_28 = bundleOut_0_a_bits_mask_bit | bundleOut_0_a_bits_mask_eq_28; // @[Misc.scala 214:29]
  wire  bundleOut_0_a_bits_mask_eq_29 = bundleOut_0_a_bits_mask_eq_13 & bundleOut_0_a_bits_mask_bit_3; // @[Misc.scala 213:27]
  wire  bundleOut_0_a_bits_mask_acc_29 = bundleOut_0_a_bits_mask_bit | bundleOut_0_a_bits_mask_eq_29; // @[Misc.scala 214:29]
  wire [7:0] bundleOut_0_a_bits_mask_lo = {bundleOut_0_a_bits_mask_acc_21,bundleOut_0_a_bits_mask_acc_20,
    bundleOut_0_a_bits_mask_acc_19,bundleOut_0_a_bits_mask_acc_18,bundleOut_0_a_bits_mask_acc_17,
    bundleOut_0_a_bits_mask_acc_16,bundleOut_0_a_bits_mask_acc_15,bundleOut_0_a_bits_mask_acc_14}; // @[Cat.scala 33:92]
  wire [15:0] _bundleOut_0_a_bits_mask_T_1 = {bundleOut_0_a_bits_mask_acc_29,bundleOut_0_a_bits_mask_acc_28,
    bundleOut_0_a_bits_mask_acc_27,bundleOut_0_a_bits_mask_acc_26,bundleOut_0_a_bits_mask_acc_25,
    bundleOut_0_a_bits_mask_acc_24,bundleOut_0_a_bits_mask_acc_23,bundleOut_0_a_bits_mask_acc_22,
    bundleOut_0_a_bits_mask_lo}; // @[Cat.scala 33:92]
  wire [15:0] _bundleOut_0_a_bits_mask_T_5 = {auto_in_a_bits_mask,auto_in_a_bits_mask}; // @[Cat.scala 33:92]
  wire [15:0] _bundleOut_0_a_bits_mask_T_7 = hasData ? _bundleOut_0_a_bits_mask_T_5 : 16'hffff; // @[WidthWidget.scala 79:93]
  wire [127:0] cated_bits_data = {repeated_repeater_io_deq_bits_data[127:64],auto_out_d_bits_data[63:0]}; // @[Cat.scala 33:92]
  wire [2:0] cated_bits_opcode = repeated_repeater_io_deq_bits_opcode; // @[WidthWidget.scala 155:25 156:15]
  wire  repeat_hasData = cated_bits_opcode[0]; // @[Edges.scala 105:36]
  wire [2:0] cated_bits_size = repeated_repeater_io_deq_bits_size; // @[WidthWidget.scala 155:25 156:15]
  wire [10:0] _repeat_limit_T_1 = 11'hf << cated_bits_size; // @[package.scala 234:77]
  wire [3:0] _repeat_limit_T_3 = ~_repeat_limit_T_1[3:0]; // @[package.scala 234:46]
  wire  repeat_limit = _repeat_limit_T_3[3]; // @[WidthWidget.scala 97:47]
  reg  repeat_count; // @[WidthWidget.scala 99:26]
  wire  repeat_first = ~repeat_count; // @[WidthWidget.scala 100:25]
  wire  repeat_last = repeat_count == repeat_limit | ~repeat_hasData; // @[WidthWidget.scala 101:35]
  wire  cated_valid = repeated_repeater_io_deq_valid; // @[WidthWidget.scala 155:25 156:15]
  wire  _repeat_T = auto_in_d_ready & cated_valid; // @[Decoupled.scala 52:35]
  reg  repeat_sel_sel_sources_0; // @[WidthWidget.scala 180:27]
  reg  repeat_sel_hold_r; // @[Reg.scala 19:16]
  wire  _GEN_11 = repeat_first ? repeat_sel_sel_sources_0 : repeat_sel_hold_r; // @[Reg.scala 19:16 20:{18,22}]
  wire  repeat_sel = _GEN_11 & ~repeat_limit; // @[WidthWidget.scala 116:16]
  wire  repeat_index = repeat_sel | repeat_count; // @[WidthWidget.scala 120:24]
  wire [63:0] repeat_bundleIn_0_d_bits_data_mux_0 = cated_bits_data[63:0]; // @[WidthWidget.scala 122:55]
  wire [63:0] repeat_bundleIn_0_d_bits_data_mux_1 = cated_bits_data[127:64]; // @[WidthWidget.scala 122:55]
  TLMonitor_20 monitor ( // @[Nodes.scala 24:25]
    .clock(monitor_clock),
    .reset(monitor_reset),
    .io_in_a_ready(monitor_io_in_a_ready),
    .io_in_a_valid(monitor_io_in_a_valid),
    .io_in_a_bits_opcode(monitor_io_in_a_bits_opcode),
    .io_in_a_bits_address(monitor_io_in_a_bits_address),
    .io_in_a_bits_mask(monitor_io_in_a_bits_mask),
    .io_in_d_ready(monitor_io_in_d_ready),
    .io_in_d_valid(monitor_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_io_in_d_bits_opcode),
    .io_in_d_bits_size(monitor_io_in_d_bits_size),
    .io_in_d_bits_source(monitor_io_in_d_bits_source),
    .io_in_d_bits_denied(monitor_io_in_d_bits_denied),
    .io_in_d_bits_corrupt(monitor_io_in_d_bits_corrupt)
  );
  Repeater_1 repeated_repeater ( // @[Repeater.scala 35:26]
    .clock(repeated_repeater_clock),
    .reset(repeated_repeater_reset),
    .io_repeat(repeated_repeater_io_repeat),
    .io_enq_ready(repeated_repeater_io_enq_ready),
    .io_enq_valid(repeated_repeater_io_enq_valid),
    .io_enq_bits_opcode(repeated_repeater_io_enq_bits_opcode),
    .io_enq_bits_size(repeated_repeater_io_enq_bits_size),
    .io_enq_bits_source(repeated_repeater_io_enq_bits_source),
    .io_enq_bits_denied(repeated_repeater_io_enq_bits_denied),
    .io_enq_bits_data(repeated_repeater_io_enq_bits_data),
    .io_enq_bits_corrupt(repeated_repeater_io_enq_bits_corrupt),
    .io_deq_ready(repeated_repeater_io_deq_ready),
    .io_deq_valid(repeated_repeater_io_deq_valid),
    .io_deq_bits_opcode(repeated_repeater_io_deq_bits_opcode),
    .io_deq_bits_size(repeated_repeater_io_deq_bits_size),
    .io_deq_bits_source(repeated_repeater_io_deq_bits_source),
    .io_deq_bits_denied(repeated_repeater_io_deq_bits_denied),
    .io_deq_bits_data(repeated_repeater_io_deq_bits_data),
    .io_deq_bits_corrupt(repeated_repeater_io_deq_bits_corrupt)
  );
  assign auto_in_a_ready = auto_out_a_ready | ~last; // @[WidthWidget.scala 70:29]
  assign auto_in_d_valid = repeated_repeater_io_deq_valid; // @[WidthWidget.scala 155:25 156:15]
  assign auto_in_d_bits_opcode = repeated_repeater_io_deq_bits_opcode; // @[WidthWidget.scala 155:25 156:15]
  assign auto_in_d_bits_size = repeated_repeater_io_deq_bits_size; // @[WidthWidget.scala 155:25 156:15]
  assign auto_in_d_bits_denied = repeated_repeater_io_deq_bits_denied; // @[WidthWidget.scala 155:25 156:15]
  assign auto_in_d_bits_data = repeat_index ? repeat_bundleIn_0_d_bits_data_mux_1 : repeat_bundleIn_0_d_bits_data_mux_0; // @[WidthWidget.scala 131:{30,30}]
  assign auto_in_d_bits_corrupt = repeated_repeater_io_deq_bits_corrupt; // @[WidthWidget.scala 155:25 156:15]
  assign auto_out_a_valid = auto_in_a_valid & last; // @[WidthWidget.scala 71:29]
  assign auto_out_a_bits_opcode = auto_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_a_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_a_bits_mask = _bundleOut_0_a_bits_mask_T_1 & _bundleOut_0_a_bits_mask_T_7; // @[WidthWidget.scala 79:88]
  assign auto_out_a_bits_data = {auto_in_a_bits_data,auto_in_a_bits_data}; // @[Cat.scala 33:92]
  assign auto_out_d_ready = repeated_repeater_io_enq_ready; // @[Nodes.scala 1207:84 Repeater.scala 37:21]
  assign monitor_clock = clock;
  assign monitor_reset = reset;
  assign monitor_io_in_a_ready = auto_out_a_ready | ~last; // @[WidthWidget.scala 70:29]
  assign monitor_io_in_a_valid = auto_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_opcode = auto_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_mask = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_ready = auto_in_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_valid = repeated_repeater_io_deq_valid; // @[WidthWidget.scala 155:25 156:15]
  assign monitor_io_in_d_bits_opcode = repeated_repeater_io_deq_bits_opcode; // @[WidthWidget.scala 155:25 156:15]
  assign monitor_io_in_d_bits_size = repeated_repeater_io_deq_bits_size; // @[WidthWidget.scala 155:25 156:15]
  assign monitor_io_in_d_bits_source = repeated_repeater_io_deq_bits_source; // @[WidthWidget.scala 155:25 156:15]
  assign monitor_io_in_d_bits_denied = repeated_repeater_io_deq_bits_denied; // @[WidthWidget.scala 155:25 156:15]
  assign monitor_io_in_d_bits_corrupt = repeated_repeater_io_deq_bits_corrupt; // @[WidthWidget.scala 155:25 156:15]
  assign repeated_repeater_clock = clock;
  assign repeated_repeater_reset = reset;
  assign repeated_repeater_io_repeat = ~repeat_last; // @[WidthWidget.scala 142:7]
  assign repeated_repeater_io_enq_valid = auto_out_d_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign repeated_repeater_io_enq_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign repeated_repeater_io_enq_bits_size = auto_out_d_bits_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign repeated_repeater_io_enq_bits_source = auto_out_d_bits_source; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign repeated_repeater_io_enq_bits_denied = auto_out_d_bits_denied; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign repeated_repeater_io_enq_bits_data = auto_out_d_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign repeated_repeater_io_enq_bits_corrupt = auto_out_d_bits_corrupt; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign repeated_repeater_io_deq_ready = auto_in_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  always @(posedge clock) begin
    if (reset) begin // @[WidthWidget.scala 34:27]
      count <= 1'h0; // @[WidthWidget.scala 34:27]
    end else if (_T) begin // @[WidthWidget.scala 43:24]
      if (last) begin // @[WidthWidget.scala 46:21]
        count <= 1'h0; // @[WidthWidget.scala 47:17]
      end else begin
        count <= count + 1'h1; // @[WidthWidget.scala 44:15]
      end
    end
    if (reset) begin // @[WidthWidget.scala 99:26]
      repeat_count <= 1'h0; // @[WidthWidget.scala 99:26]
    end else if (_repeat_T) begin // @[WidthWidget.scala 103:25]
      if (repeat_last) begin // @[WidthWidget.scala 105:21]
        repeat_count <= 1'h0; // @[WidthWidget.scala 105:29]
      end else begin
        repeat_count <= repeat_count + 1'h1; // @[WidthWidget.scala 104:15]
      end
    end
    if (_T) begin // @[WidthWidget.scala 182:28]
      repeat_sel_sel_sources_0 <= bundleOut_0_a_bits_mask_bit; // @[WidthWidget.scala 183:37]
    end
    if (repeat_first) begin // @[Reg.scala 20:18]
      repeat_sel_hold_r <= repeat_sel_sel_sources_0; // @[Reg.scala 20:22]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  count = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  repeat_count = _RAND_1[0:0];
  _RAND_2 = {1{`RANDOM}};
  repeat_sel_sel_sources_0 = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  repeat_sel_hold_r = _RAND_3[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module AXI4UserYanker_1(
  input         clock,
  input         reset,
  output        auto_in_aw_ready,
  input         auto_in_aw_valid,
  input  [3:0]  auto_in_aw_bits_id,
  input  [30:0] auto_in_aw_bits_addr,
  input  [7:0]  auto_in_aw_bits_len,
  input  [2:0]  auto_in_aw_bits_size,
  input  [1:0]  auto_in_aw_bits_burst,
  input         auto_in_aw_bits_lock,
  input  [3:0]  auto_in_aw_bits_cache,
  input  [2:0]  auto_in_aw_bits_prot,
  input  [3:0]  auto_in_aw_bits_qos,
  input  [3:0]  auto_in_aw_bits_echo_tl_state_size,
  input         auto_in_aw_bits_echo_tl_state_source,
  output        auto_in_w_ready,
  input         auto_in_w_valid,
  input  [63:0] auto_in_w_bits_data,
  input  [7:0]  auto_in_w_bits_strb,
  input         auto_in_w_bits_last,
  input         auto_in_b_ready,
  output        auto_in_b_valid,
  output [1:0]  auto_in_b_bits_resp,
  output [3:0]  auto_in_b_bits_echo_tl_state_size,
  output        auto_in_b_bits_echo_tl_state_source,
  output        auto_in_ar_ready,
  input         auto_in_ar_valid,
  input  [3:0]  auto_in_ar_bits_id,
  input  [30:0] auto_in_ar_bits_addr,
  input  [7:0]  auto_in_ar_bits_len,
  input  [2:0]  auto_in_ar_bits_size,
  input  [1:0]  auto_in_ar_bits_burst,
  input         auto_in_ar_bits_lock,
  input  [3:0]  auto_in_ar_bits_cache,
  input  [2:0]  auto_in_ar_bits_prot,
  input  [3:0]  auto_in_ar_bits_qos,
  input  [3:0]  auto_in_ar_bits_echo_tl_state_size,
  input         auto_in_ar_bits_echo_tl_state_source,
  input         auto_in_r_ready,
  output        auto_in_r_valid,
  output [63:0] auto_in_r_bits_data,
  output [1:0]  auto_in_r_bits_resp,
  output [3:0]  auto_in_r_bits_echo_tl_state_size,
  output        auto_in_r_bits_echo_tl_state_source,
  output        auto_in_r_bits_last,
  input         auto_out_aw_ready,
  output        auto_out_aw_valid,
  output [3:0]  auto_out_aw_bits_id,
  output [30:0] auto_out_aw_bits_addr,
  output [7:0]  auto_out_aw_bits_len,
  output [2:0]  auto_out_aw_bits_size,
  output [1:0]  auto_out_aw_bits_burst,
  output        auto_out_aw_bits_lock,
  output [3:0]  auto_out_aw_bits_cache,
  output [2:0]  auto_out_aw_bits_prot,
  output [3:0]  auto_out_aw_bits_qos,
  input         auto_out_w_ready,
  output        auto_out_w_valid,
  output [63:0] auto_out_w_bits_data,
  output [7:0]  auto_out_w_bits_strb,
  output        auto_out_w_bits_last,
  output        auto_out_b_ready,
  input         auto_out_b_valid,
  input  [3:0]  auto_out_b_bits_id,
  input  [1:0]  auto_out_b_bits_resp,
  input         auto_out_ar_ready,
  output        auto_out_ar_valid,
  output [3:0]  auto_out_ar_bits_id,
  output [30:0] auto_out_ar_bits_addr,
  output [7:0]  auto_out_ar_bits_len,
  output [2:0]  auto_out_ar_bits_size,
  output [1:0]  auto_out_ar_bits_burst,
  output        auto_out_ar_bits_lock,
  output [3:0]  auto_out_ar_bits_cache,
  output [2:0]  auto_out_ar_bits_prot,
  output [3:0]  auto_out_ar_bits_qos,
  output        auto_out_r_ready,
  input         auto_out_r_valid,
  input  [3:0]  auto_out_r_bits_id,
  input  [63:0] auto_out_r_bits_data,
  input  [1:0]  auto_out_r_bits_resp,
  input         auto_out_r_bits_last
);
  wire  QueueCompatibility_clock; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_reset; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_io_enq_ready; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_io_enq_valid; // @[UserYanker.scala 47:17]
  wire [3:0] QueueCompatibility_io_enq_bits_tl_state_size; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_io_enq_bits_tl_state_source; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_io_deq_ready; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_io_deq_valid; // @[UserYanker.scala 47:17]
  wire [3:0] QueueCompatibility_io_deq_bits_tl_state_size; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_io_deq_bits_tl_state_source; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_1_clock; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_1_reset; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_1_io_enq_ready; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_1_io_enq_valid; // @[UserYanker.scala 47:17]
  wire [3:0] QueueCompatibility_1_io_enq_bits_tl_state_size; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_1_io_enq_bits_tl_state_source; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_1_io_deq_ready; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_1_io_deq_valid; // @[UserYanker.scala 47:17]
  wire [3:0] QueueCompatibility_1_io_deq_bits_tl_state_size; // @[UserYanker.scala 47:17]
  wire  QueueCompatibility_1_io_deq_bits_tl_state_source; // @[UserYanker.scala 47:17]
  wire  _ar_ready_WIRE_0 = QueueCompatibility_io_enq_ready; // @[UserYanker.scala 55:{25,25}]
  wire  _GEN_1 = 4'h1 == auto_in_ar_bits_id ? 1'h0 : _ar_ready_WIRE_0; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_2 = 4'h2 == auto_in_ar_bits_id ? 1'h0 : _GEN_1; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_3 = 4'h3 == auto_in_ar_bits_id ? 1'h0 : _GEN_2; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_4 = 4'h4 == auto_in_ar_bits_id ? 1'h0 : _GEN_3; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_5 = 4'h5 == auto_in_ar_bits_id ? 1'h0 : _GEN_4; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_6 = 4'h6 == auto_in_ar_bits_id ? 1'h0 : _GEN_5; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_7 = 4'h7 == auto_in_ar_bits_id ? 1'h0 : _GEN_6; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_8 = 4'h8 == auto_in_ar_bits_id ? 1'h0 : _GEN_7; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_9 = 4'h9 == auto_in_ar_bits_id ? 1'h0 : _GEN_8; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_10 = 4'ha == auto_in_ar_bits_id ? 1'h0 : _GEN_9; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_11 = 4'hb == auto_in_ar_bits_id ? 1'h0 : _GEN_10; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_12 = 4'hc == auto_in_ar_bits_id ? 1'h0 : _GEN_11; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_13 = 4'hd == auto_in_ar_bits_id ? 1'h0 : _GEN_12; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_14 = 4'he == auto_in_ar_bits_id ? 1'h0 : _GEN_13; // @[UserYanker.scala 56:{36,36}]
  wire  _GEN_15 = 4'hf == auto_in_ar_bits_id ? 1'h0 : _GEN_14; // @[UserYanker.scala 56:{36,36}]
  wire  _r_valid_WIRE_0 = QueueCompatibility_io_deq_valid; // @[UserYanker.scala 61:{24,24}]
  wire  _GEN_17 = 4'h1 == auto_out_r_bits_id ? 1'h0 : _r_valid_WIRE_0; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_18 = 4'h2 == auto_out_r_bits_id ? 1'h0 : _GEN_17; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_19 = 4'h3 == auto_out_r_bits_id ? 1'h0 : _GEN_18; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_20 = 4'h4 == auto_out_r_bits_id ? 1'h0 : _GEN_19; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_21 = 4'h5 == auto_out_r_bits_id ? 1'h0 : _GEN_20; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_22 = 4'h6 == auto_out_r_bits_id ? 1'h0 : _GEN_21; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_23 = 4'h7 == auto_out_r_bits_id ? 1'h0 : _GEN_22; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_24 = 4'h8 == auto_out_r_bits_id ? 1'h0 : _GEN_23; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_25 = 4'h9 == auto_out_r_bits_id ? 1'h0 : _GEN_24; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_26 = 4'ha == auto_out_r_bits_id ? 1'h0 : _GEN_25; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_27 = 4'hb == auto_out_r_bits_id ? 1'h0 : _GEN_26; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_28 = 4'hc == auto_out_r_bits_id ? 1'h0 : _GEN_27; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_29 = 4'hd == auto_out_r_bits_id ? 1'h0 : _GEN_28; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_30 = 4'he == auto_out_r_bits_id ? 1'h0 : _GEN_29; // @[UserYanker.scala 63:{28,28}]
  wire  _GEN_31 = 4'hf == auto_out_r_bits_id ? 1'h0 : _GEN_30; // @[UserYanker.scala 63:{28,28}]
  wire  _T_3 = ~reset; // @[UserYanker.scala 63:14]
  wire  _r_bits_WIRE_0_tl_state_source = QueueCompatibility_io_deq_bits_tl_state_source; // @[UserYanker.scala 62:{23,23}]
  wire  _GEN_33 = 4'h1 == auto_out_r_bits_id ? 1'h0 : _r_bits_WIRE_0_tl_state_source; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_34 = 4'h2 == auto_out_r_bits_id ? 1'h0 : _GEN_33; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_35 = 4'h3 == auto_out_r_bits_id ? 1'h0 : _GEN_34; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_36 = 4'h4 == auto_out_r_bits_id ? 1'h0 : _GEN_35; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_37 = 4'h5 == auto_out_r_bits_id ? 1'h0 : _GEN_36; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_38 = 4'h6 == auto_out_r_bits_id ? 1'h0 : _GEN_37; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_39 = 4'h7 == auto_out_r_bits_id ? 1'h0 : _GEN_38; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_40 = 4'h8 == auto_out_r_bits_id ? 1'h0 : _GEN_39; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_41 = 4'h9 == auto_out_r_bits_id ? 1'h0 : _GEN_40; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_42 = 4'ha == auto_out_r_bits_id ? 1'h0 : _GEN_41; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_43 = 4'hb == auto_out_r_bits_id ? 1'h0 : _GEN_42; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_44 = 4'hc == auto_out_r_bits_id ? 1'h0 : _GEN_43; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_45 = 4'hd == auto_out_r_bits_id ? 1'h0 : _GEN_44; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_46 = 4'he == auto_out_r_bits_id ? 1'h0 : _GEN_45; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _r_bits_WIRE_0_tl_state_size = QueueCompatibility_io_deq_bits_tl_state_size; // @[UserYanker.scala 62:{23,23}]
  wire [3:0] _GEN_49 = 4'h1 == auto_out_r_bits_id ? 4'h0 : _r_bits_WIRE_0_tl_state_size; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_50 = 4'h2 == auto_out_r_bits_id ? 4'h0 : _GEN_49; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_51 = 4'h3 == auto_out_r_bits_id ? 4'h0 : _GEN_50; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_52 = 4'h4 == auto_out_r_bits_id ? 4'h0 : _GEN_51; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_53 = 4'h5 == auto_out_r_bits_id ? 4'h0 : _GEN_52; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_54 = 4'h6 == auto_out_r_bits_id ? 4'h0 : _GEN_53; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_55 = 4'h7 == auto_out_r_bits_id ? 4'h0 : _GEN_54; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_56 = 4'h8 == auto_out_r_bits_id ? 4'h0 : _GEN_55; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_57 = 4'h9 == auto_out_r_bits_id ? 4'h0 : _GEN_56; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_58 = 4'ha == auto_out_r_bits_id ? 4'h0 : _GEN_57; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_59 = 4'hb == auto_out_r_bits_id ? 4'h0 : _GEN_58; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_60 = 4'hc == auto_out_r_bits_id ? 4'h0 : _GEN_59; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_61 = 4'hd == auto_out_r_bits_id ? 4'h0 : _GEN_60; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_62 = 4'he == auto_out_r_bits_id ? 4'h0 : _GEN_61; // @[BundleMap.scala 247:{19,19}]
  wire [15:0] _arsel_T = 16'h1 << auto_in_ar_bits_id; // @[OneHot.scala 64:12]
  wire  arsel_0 = _arsel_T[0]; // @[UserYanker.scala 67:55]
  wire [15:0] _rsel_T = 16'h1 << auto_out_r_bits_id; // @[OneHot.scala 64:12]
  wire  rsel_0 = _rsel_T[0]; // @[UserYanker.scala 68:55]
  wire  _aw_ready_WIRE_0 = QueueCompatibility_1_io_enq_ready; // @[UserYanker.scala 76:{25,25}]
  wire  _GEN_65 = 4'h1 == auto_in_aw_bits_id ? 1'h0 : _aw_ready_WIRE_0; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_66 = 4'h2 == auto_in_aw_bits_id ? 1'h0 : _GEN_65; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_67 = 4'h3 == auto_in_aw_bits_id ? 1'h0 : _GEN_66; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_68 = 4'h4 == auto_in_aw_bits_id ? 1'h0 : _GEN_67; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_69 = 4'h5 == auto_in_aw_bits_id ? 1'h0 : _GEN_68; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_70 = 4'h6 == auto_in_aw_bits_id ? 1'h0 : _GEN_69; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_71 = 4'h7 == auto_in_aw_bits_id ? 1'h0 : _GEN_70; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_72 = 4'h8 == auto_in_aw_bits_id ? 1'h0 : _GEN_71; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_73 = 4'h9 == auto_in_aw_bits_id ? 1'h0 : _GEN_72; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_74 = 4'ha == auto_in_aw_bits_id ? 1'h0 : _GEN_73; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_75 = 4'hb == auto_in_aw_bits_id ? 1'h0 : _GEN_74; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_76 = 4'hc == auto_in_aw_bits_id ? 1'h0 : _GEN_75; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_77 = 4'hd == auto_in_aw_bits_id ? 1'h0 : _GEN_76; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_78 = 4'he == auto_in_aw_bits_id ? 1'h0 : _GEN_77; // @[UserYanker.scala 77:{36,36}]
  wire  _GEN_79 = 4'hf == auto_in_aw_bits_id ? 1'h0 : _GEN_78; // @[UserYanker.scala 77:{36,36}]
  wire  _b_valid_WIRE_0 = QueueCompatibility_1_io_deq_valid; // @[UserYanker.scala 82:{24,24}]
  wire  _GEN_81 = 4'h1 == auto_out_b_bits_id ? 1'h0 : _b_valid_WIRE_0; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_82 = 4'h2 == auto_out_b_bits_id ? 1'h0 : _GEN_81; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_83 = 4'h3 == auto_out_b_bits_id ? 1'h0 : _GEN_82; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_84 = 4'h4 == auto_out_b_bits_id ? 1'h0 : _GEN_83; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_85 = 4'h5 == auto_out_b_bits_id ? 1'h0 : _GEN_84; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_86 = 4'h6 == auto_out_b_bits_id ? 1'h0 : _GEN_85; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_87 = 4'h7 == auto_out_b_bits_id ? 1'h0 : _GEN_86; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_88 = 4'h8 == auto_out_b_bits_id ? 1'h0 : _GEN_87; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_89 = 4'h9 == auto_out_b_bits_id ? 1'h0 : _GEN_88; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_90 = 4'ha == auto_out_b_bits_id ? 1'h0 : _GEN_89; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_91 = 4'hb == auto_out_b_bits_id ? 1'h0 : _GEN_90; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_92 = 4'hc == auto_out_b_bits_id ? 1'h0 : _GEN_91; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_93 = 4'hd == auto_out_b_bits_id ? 1'h0 : _GEN_92; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_94 = 4'he == auto_out_b_bits_id ? 1'h0 : _GEN_93; // @[UserYanker.scala 84:{28,28}]
  wire  _GEN_95 = 4'hf == auto_out_b_bits_id ? 1'h0 : _GEN_94; // @[UserYanker.scala 84:{28,28}]
  wire  _b_bits_WIRE_0_tl_state_source = QueueCompatibility_1_io_deq_bits_tl_state_source; // @[UserYanker.scala 83:{23,23}]
  wire  _GEN_97 = 4'h1 == auto_out_b_bits_id ? 1'h0 : _b_bits_WIRE_0_tl_state_source; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_98 = 4'h2 == auto_out_b_bits_id ? 1'h0 : _GEN_97; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_99 = 4'h3 == auto_out_b_bits_id ? 1'h0 : _GEN_98; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_100 = 4'h4 == auto_out_b_bits_id ? 1'h0 : _GEN_99; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_101 = 4'h5 == auto_out_b_bits_id ? 1'h0 : _GEN_100; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_102 = 4'h6 == auto_out_b_bits_id ? 1'h0 : _GEN_101; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_103 = 4'h7 == auto_out_b_bits_id ? 1'h0 : _GEN_102; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_104 = 4'h8 == auto_out_b_bits_id ? 1'h0 : _GEN_103; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_105 = 4'h9 == auto_out_b_bits_id ? 1'h0 : _GEN_104; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_106 = 4'ha == auto_out_b_bits_id ? 1'h0 : _GEN_105; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_107 = 4'hb == auto_out_b_bits_id ? 1'h0 : _GEN_106; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_108 = 4'hc == auto_out_b_bits_id ? 1'h0 : _GEN_107; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_109 = 4'hd == auto_out_b_bits_id ? 1'h0 : _GEN_108; // @[BundleMap.scala 247:{19,19}]
  wire  _GEN_110 = 4'he == auto_out_b_bits_id ? 1'h0 : _GEN_109; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _b_bits_WIRE_0_tl_state_size = QueueCompatibility_1_io_deq_bits_tl_state_size; // @[UserYanker.scala 83:{23,23}]
  wire [3:0] _GEN_113 = 4'h1 == auto_out_b_bits_id ? 4'h0 : _b_bits_WIRE_0_tl_state_size; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_114 = 4'h2 == auto_out_b_bits_id ? 4'h0 : _GEN_113; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_115 = 4'h3 == auto_out_b_bits_id ? 4'h0 : _GEN_114; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_116 = 4'h4 == auto_out_b_bits_id ? 4'h0 : _GEN_115; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_117 = 4'h5 == auto_out_b_bits_id ? 4'h0 : _GEN_116; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_118 = 4'h6 == auto_out_b_bits_id ? 4'h0 : _GEN_117; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_119 = 4'h7 == auto_out_b_bits_id ? 4'h0 : _GEN_118; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_120 = 4'h8 == auto_out_b_bits_id ? 4'h0 : _GEN_119; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_121 = 4'h9 == auto_out_b_bits_id ? 4'h0 : _GEN_120; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_122 = 4'ha == auto_out_b_bits_id ? 4'h0 : _GEN_121; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_123 = 4'hb == auto_out_b_bits_id ? 4'h0 : _GEN_122; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_124 = 4'hc == auto_out_b_bits_id ? 4'h0 : _GEN_123; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_125 = 4'hd == auto_out_b_bits_id ? 4'h0 : _GEN_124; // @[BundleMap.scala 247:{19,19}]
  wire [3:0] _GEN_126 = 4'he == auto_out_b_bits_id ? 4'h0 : _GEN_125; // @[BundleMap.scala 247:{19,19}]
  wire [15:0] _awsel_T = 16'h1 << auto_in_aw_bits_id; // @[OneHot.scala 64:12]
  wire  awsel_0 = _awsel_T[0]; // @[UserYanker.scala 88:55]
  wire [15:0] _bsel_T = 16'h1 << auto_out_b_bits_id; // @[OneHot.scala 64:12]
  wire  bsel_0 = _bsel_T[0]; // @[UserYanker.scala 89:55]
  QueueCompatibility_2 QueueCompatibility ( // @[UserYanker.scala 47:17]
    .clock(QueueCompatibility_clock),
    .reset(QueueCompatibility_reset),
    .io_enq_ready(QueueCompatibility_io_enq_ready),
    .io_enq_valid(QueueCompatibility_io_enq_valid),
    .io_enq_bits_tl_state_size(QueueCompatibility_io_enq_bits_tl_state_size),
    .io_enq_bits_tl_state_source(QueueCompatibility_io_enq_bits_tl_state_source),
    .io_deq_ready(QueueCompatibility_io_deq_ready),
    .io_deq_valid(QueueCompatibility_io_deq_valid),
    .io_deq_bits_tl_state_size(QueueCompatibility_io_deq_bits_tl_state_size),
    .io_deq_bits_tl_state_source(QueueCompatibility_io_deq_bits_tl_state_source)
  );
  QueueCompatibility_2 QueueCompatibility_1 ( // @[UserYanker.scala 47:17]
    .clock(QueueCompatibility_1_clock),
    .reset(QueueCompatibility_1_reset),
    .io_enq_ready(QueueCompatibility_1_io_enq_ready),
    .io_enq_valid(QueueCompatibility_1_io_enq_valid),
    .io_enq_bits_tl_state_size(QueueCompatibility_1_io_enq_bits_tl_state_size),
    .io_enq_bits_tl_state_source(QueueCompatibility_1_io_enq_bits_tl_state_source),
    .io_deq_ready(QueueCompatibility_1_io_deq_ready),
    .io_deq_valid(QueueCompatibility_1_io_deq_valid),
    .io_deq_bits_tl_state_size(QueueCompatibility_1_io_deq_bits_tl_state_size),
    .io_deq_bits_tl_state_source(QueueCompatibility_1_io_deq_bits_tl_state_source)
  );
  assign auto_in_aw_ready = auto_out_aw_ready & _GEN_79; // @[UserYanker.scala 77:36]
  assign auto_in_w_ready = auto_out_w_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_b_valid = auto_out_b_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_b_bits_resp = auto_out_b_bits_resp; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_b_bits_echo_tl_state_size = 4'hf == auto_out_b_bits_id ? 4'h0 : _GEN_126; // @[BundleMap.scala 247:{19,19}]
  assign auto_in_b_bits_echo_tl_state_source = 4'hf == auto_out_b_bits_id ? 1'h0 : _GEN_110; // @[BundleMap.scala 247:{19,19}]
  assign auto_in_ar_ready = auto_out_ar_ready & _GEN_15; // @[UserYanker.scala 56:36]
  assign auto_in_r_valid = auto_out_r_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_r_bits_data = auto_out_r_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_r_bits_resp = auto_out_r_bits_resp; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_r_bits_echo_tl_state_size = 4'hf == auto_out_r_bits_id ? 4'h0 : _GEN_62; // @[BundleMap.scala 247:{19,19}]
  assign auto_in_r_bits_echo_tl_state_source = 4'hf == auto_out_r_bits_id ? 1'h0 : _GEN_46; // @[BundleMap.scala 247:{19,19}]
  assign auto_in_r_bits_last = auto_out_r_bits_last; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_out_aw_valid = auto_in_aw_valid & _GEN_79; // @[UserYanker.scala 78:36]
  assign auto_out_aw_bits_id = auto_in_aw_bits_id; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_addr = auto_in_aw_bits_addr; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_len = auto_in_aw_bits_len; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_size = auto_in_aw_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_burst = auto_in_aw_bits_burst; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_lock = auto_in_aw_bits_lock; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_cache = auto_in_aw_bits_cache; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_prot = auto_in_aw_bits_prot; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_qos = auto_in_aw_bits_qos; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_valid = auto_in_w_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_bits_data = auto_in_w_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_bits_strb = auto_in_w_bits_strb; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_bits_last = auto_in_w_bits_last; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_b_ready = auto_in_b_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_valid = auto_in_ar_valid & _GEN_15; // @[UserYanker.scala 57:36]
  assign auto_out_ar_bits_id = auto_in_ar_bits_id; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_addr = auto_in_ar_bits_addr; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_len = auto_in_ar_bits_len; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_size = auto_in_ar_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_burst = auto_in_ar_bits_burst; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_lock = auto_in_ar_bits_lock; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_cache = auto_in_ar_bits_cache; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_prot = auto_in_ar_bits_prot; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_qos = auto_in_ar_bits_qos; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_r_ready = auto_in_r_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign QueueCompatibility_clock = clock;
  assign QueueCompatibility_reset = reset;
  assign QueueCompatibility_io_enq_valid = auto_in_ar_valid & auto_out_ar_ready & arsel_0; // @[UserYanker.scala 71:53]
  assign QueueCompatibility_io_enq_bits_tl_state_size = auto_in_ar_bits_echo_tl_state_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign QueueCompatibility_io_enq_bits_tl_state_source = auto_in_ar_bits_echo_tl_state_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign QueueCompatibility_io_deq_ready = auto_out_r_valid & auto_in_r_ready & rsel_0 & auto_out_r_bits_last; // @[UserYanker.scala 70:58]
  assign QueueCompatibility_1_clock = clock;
  assign QueueCompatibility_1_reset = reset;
  assign QueueCompatibility_1_io_enq_valid = auto_in_aw_valid & auto_out_aw_ready & awsel_0; // @[UserYanker.scala 92:53]
  assign QueueCompatibility_1_io_enq_bits_tl_state_size = auto_in_aw_bits_echo_tl_state_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign QueueCompatibility_1_io_enq_bits_tl_state_source = auto_in_aw_bits_echo_tl_state_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign QueueCompatibility_1_io_deq_ready = auto_out_b_valid & auto_in_b_ready & bsel_0; // @[UserYanker.scala 91:53]
  always @(posedge clock) begin
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~auto_out_r_valid | _GEN_31)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at UserYanker.scala:63 assert (!out.r.valid || r_valid) // Q must be ready faster than the response\n"
            ); // @[UserYanker.scala 63:14]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~auto_out_r_valid | _GEN_31) & ~reset) begin
          $fatal; // @[UserYanker.scala 63:14]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_3 & ~(~auto_out_b_valid | _GEN_95)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at UserYanker.scala:84 assert (!out.b.valid || b_valid) // Q must be ready faster than the response\n"
            ); // @[UserYanker.scala 84:14]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~auto_out_b_valid | _GEN_95) & _T_3) begin
          $fatal; // @[UserYanker.scala 84:14]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
endmodule
module AXI4IdIndexer_1(
  output        auto_in_aw_ready,
  input         auto_in_aw_valid,
  input         auto_in_aw_bits_id,
  input  [30:0] auto_in_aw_bits_addr,
  input  [7:0]  auto_in_aw_bits_len,
  input  [2:0]  auto_in_aw_bits_size,
  input  [1:0]  auto_in_aw_bits_burst,
  input         auto_in_aw_bits_lock,
  input  [3:0]  auto_in_aw_bits_cache,
  input  [2:0]  auto_in_aw_bits_prot,
  input  [3:0]  auto_in_aw_bits_qos,
  input  [3:0]  auto_in_aw_bits_echo_tl_state_size,
  input         auto_in_aw_bits_echo_tl_state_source,
  output        auto_in_w_ready,
  input         auto_in_w_valid,
  input  [63:0] auto_in_w_bits_data,
  input  [7:0]  auto_in_w_bits_strb,
  input         auto_in_w_bits_last,
  input         auto_in_b_ready,
  output        auto_in_b_valid,
  output [1:0]  auto_in_b_bits_resp,
  output [3:0]  auto_in_b_bits_echo_tl_state_size,
  output        auto_in_b_bits_echo_tl_state_source,
  output        auto_in_ar_ready,
  input         auto_in_ar_valid,
  input         auto_in_ar_bits_id,
  input  [30:0] auto_in_ar_bits_addr,
  input  [7:0]  auto_in_ar_bits_len,
  input  [2:0]  auto_in_ar_bits_size,
  input  [1:0]  auto_in_ar_bits_burst,
  input         auto_in_ar_bits_lock,
  input  [3:0]  auto_in_ar_bits_cache,
  input  [2:0]  auto_in_ar_bits_prot,
  input  [3:0]  auto_in_ar_bits_qos,
  input  [3:0]  auto_in_ar_bits_echo_tl_state_size,
  input         auto_in_ar_bits_echo_tl_state_source,
  input         auto_in_r_ready,
  output        auto_in_r_valid,
  output [63:0] auto_in_r_bits_data,
  output [1:0]  auto_in_r_bits_resp,
  output [3:0]  auto_in_r_bits_echo_tl_state_size,
  output        auto_in_r_bits_echo_tl_state_source,
  output        auto_in_r_bits_last,
  input         auto_out_aw_ready,
  output        auto_out_aw_valid,
  output [3:0]  auto_out_aw_bits_id,
  output [30:0] auto_out_aw_bits_addr,
  output [7:0]  auto_out_aw_bits_len,
  output [2:0]  auto_out_aw_bits_size,
  output [1:0]  auto_out_aw_bits_burst,
  output        auto_out_aw_bits_lock,
  output [3:0]  auto_out_aw_bits_cache,
  output [2:0]  auto_out_aw_bits_prot,
  output [3:0]  auto_out_aw_bits_qos,
  output [3:0]  auto_out_aw_bits_echo_tl_state_size,
  output        auto_out_aw_bits_echo_tl_state_source,
  input         auto_out_w_ready,
  output        auto_out_w_valid,
  output [63:0] auto_out_w_bits_data,
  output [7:0]  auto_out_w_bits_strb,
  output        auto_out_w_bits_last,
  output        auto_out_b_ready,
  input         auto_out_b_valid,
  input  [1:0]  auto_out_b_bits_resp,
  input  [3:0]  auto_out_b_bits_echo_tl_state_size,
  input         auto_out_b_bits_echo_tl_state_source,
  input         auto_out_ar_ready,
  output        auto_out_ar_valid,
  output [3:0]  auto_out_ar_bits_id,
  output [30:0] auto_out_ar_bits_addr,
  output [7:0]  auto_out_ar_bits_len,
  output [2:0]  auto_out_ar_bits_size,
  output [1:0]  auto_out_ar_bits_burst,
  output        auto_out_ar_bits_lock,
  output [3:0]  auto_out_ar_bits_cache,
  output [2:0]  auto_out_ar_bits_prot,
  output [3:0]  auto_out_ar_bits_qos,
  output [3:0]  auto_out_ar_bits_echo_tl_state_size,
  output        auto_out_ar_bits_echo_tl_state_source,
  output        auto_out_r_ready,
  input         auto_out_r_valid,
  input  [63:0] auto_out_r_bits_data,
  input  [1:0]  auto_out_r_bits_resp,
  input  [3:0]  auto_out_r_bits_echo_tl_state_size,
  input         auto_out_r_bits_echo_tl_state_source,
  input         auto_out_r_bits_last
);
  assign auto_in_aw_ready = auto_out_aw_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_w_ready = auto_out_w_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_b_valid = auto_out_b_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_b_bits_resp = auto_out_b_bits_resp; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_b_bits_echo_tl_state_size = auto_out_b_bits_echo_tl_state_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_b_bits_echo_tl_state_source = auto_out_b_bits_echo_tl_state_source; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_ar_ready = auto_out_ar_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_r_valid = auto_out_r_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_r_bits_data = auto_out_r_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_r_bits_resp = auto_out_r_bits_resp; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_r_bits_echo_tl_state_size = auto_out_r_bits_echo_tl_state_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_r_bits_echo_tl_state_source = auto_out_r_bits_echo_tl_state_source; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_r_bits_last = auto_out_r_bits_last; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_out_aw_valid = auto_in_aw_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_id = {{3'd0}, auto_in_aw_bits_id}; // @[Nodes.scala 1207:84 BundleMap.scala 247:19]
  assign auto_out_aw_bits_addr = auto_in_aw_bits_addr; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_len = auto_in_aw_bits_len; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_size = auto_in_aw_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_burst = auto_in_aw_bits_burst; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_lock = auto_in_aw_bits_lock; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_cache = auto_in_aw_bits_cache; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_prot = auto_in_aw_bits_prot; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_qos = auto_in_aw_bits_qos; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_echo_tl_state_size = auto_in_aw_bits_echo_tl_state_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_echo_tl_state_source = auto_in_aw_bits_echo_tl_state_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_valid = auto_in_w_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_bits_data = auto_in_w_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_bits_strb = auto_in_w_bits_strb; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_bits_last = auto_in_w_bits_last; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_b_ready = auto_in_b_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_valid = auto_in_ar_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_id = {{3'd0}, auto_in_ar_bits_id}; // @[Nodes.scala 1207:84 BundleMap.scala 247:19]
  assign auto_out_ar_bits_addr = auto_in_ar_bits_addr; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_len = auto_in_ar_bits_len; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_size = auto_in_ar_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_burst = auto_in_ar_bits_burst; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_lock = auto_in_ar_bits_lock; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_cache = auto_in_ar_bits_cache; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_prot = auto_in_ar_bits_prot; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_qos = auto_in_ar_bits_qos; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_echo_tl_state_size = auto_in_ar_bits_echo_tl_state_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_echo_tl_state_source = auto_in_ar_bits_echo_tl_state_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_r_ready = auto_in_r_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
endmodule
module Queue_47(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [63:0] io_enq_bits_data,
  input  [1:0]  io_enq_bits_resp,
  input  [3:0]  io_enq_bits_echo_tl_state_size,
  input         io_enq_bits_echo_tl_state_source,
  input         io_enq_bits_last,
  input         io_deq_ready,
  output        io_deq_valid,
  output [63:0] io_deq_bits_data,
  output [1:0]  io_deq_bits_resp,
  output [3:0]  io_deq_bits_echo_tl_state_size,
  output        io_deq_bits_echo_tl_state_source,
  output        io_deq_bits_last
);
`ifdef RANDOMIZE_MEM_INIT
  reg [63:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
`endif // RANDOMIZE_REG_INIT
  reg [63:0] ram_data [0:3]; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire [1:0] ram_data_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_MPORT_data; // @[Decoupled.scala 275:95]
  wire [1:0] ram_data_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_en; // @[Decoupled.scala 275:95]
  reg [1:0] ram_resp [0:3]; // @[Decoupled.scala 275:95]
  wire  ram_resp_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire [1:0] ram_resp_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [1:0] ram_resp_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [1:0] ram_resp_MPORT_data; // @[Decoupled.scala 275:95]
  wire [1:0] ram_resp_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_resp_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_resp_MPORT_en; // @[Decoupled.scala 275:95]
  reg [3:0] ram_echo_tl_state_size [0:3]; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_size_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire [1:0] ram_echo_tl_state_size_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [3:0] ram_echo_tl_state_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [3:0] ram_echo_tl_state_size_MPORT_data; // @[Decoupled.scala 275:95]
  wire [1:0] ram_echo_tl_state_size_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_size_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_size_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_echo_tl_state_source [0:3]; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire [1:0] ram_echo_tl_state_source_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_MPORT_data; // @[Decoupled.scala 275:95]
  wire [1:0] ram_echo_tl_state_source_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_last [0:3]; // @[Decoupled.scala 275:95]
  wire  ram_last_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire [1:0] ram_last_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_last_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_last_MPORT_data; // @[Decoupled.scala 275:95]
  wire [1:0] ram_last_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_last_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_last_MPORT_en; // @[Decoupled.scala 275:95]
  reg [1:0] enq_ptr_value; // @[Counter.scala 61:40]
  reg [1:0] deq_ptr_value; // @[Counter.scala 61:40]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  ptr_match = enq_ptr_value == deq_ptr_value; // @[Decoupled.scala 279:33]
  wire  empty = ptr_match & ~maybe_full; // @[Decoupled.scala 280:25]
  wire  full = ptr_match & maybe_full; // @[Decoupled.scala 281:24]
  wire  do_enq = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  do_deq = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire [1:0] _value_T_1 = enq_ptr_value + 2'h1; // @[Counter.scala 77:24]
  wire [1:0] _value_T_3 = deq_ptr_value + 2'h1; // @[Counter.scala 77:24]
  assign ram_data_io_deq_bits_MPORT_en = 1'h1;
  assign ram_data_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_data_io_deq_bits_MPORT_data = ram_data[ram_data_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_data_MPORT_data = io_enq_bits_data;
  assign ram_data_MPORT_addr = enq_ptr_value;
  assign ram_data_MPORT_mask = 1'h1;
  assign ram_data_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_resp_io_deq_bits_MPORT_en = 1'h1;
  assign ram_resp_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_resp_io_deq_bits_MPORT_data = ram_resp[ram_resp_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_resp_MPORT_data = io_enq_bits_resp;
  assign ram_resp_MPORT_addr = enq_ptr_value;
  assign ram_resp_MPORT_mask = 1'h1;
  assign ram_resp_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_echo_tl_state_size_io_deq_bits_MPORT_en = 1'h1;
  assign ram_echo_tl_state_size_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_echo_tl_state_size_io_deq_bits_MPORT_data =
    ram_echo_tl_state_size[ram_echo_tl_state_size_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_echo_tl_state_size_MPORT_data = io_enq_bits_echo_tl_state_size;
  assign ram_echo_tl_state_size_MPORT_addr = enq_ptr_value;
  assign ram_echo_tl_state_size_MPORT_mask = 1'h1;
  assign ram_echo_tl_state_size_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_echo_tl_state_source_io_deq_bits_MPORT_en = 1'h1;
  assign ram_echo_tl_state_source_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_echo_tl_state_source_io_deq_bits_MPORT_data =
    ram_echo_tl_state_source[ram_echo_tl_state_source_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_echo_tl_state_source_MPORT_data = io_enq_bits_echo_tl_state_source;
  assign ram_echo_tl_state_source_MPORT_addr = enq_ptr_value;
  assign ram_echo_tl_state_source_MPORT_mask = 1'h1;
  assign ram_echo_tl_state_source_MPORT_en = io_enq_ready & io_enq_valid;
  assign ram_last_io_deq_bits_MPORT_en = 1'h1;
  assign ram_last_io_deq_bits_MPORT_addr = deq_ptr_value;
  assign ram_last_io_deq_bits_MPORT_data = ram_last[ram_last_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_last_MPORT_data = io_enq_bits_last;
  assign ram_last_MPORT_addr = enq_ptr_value;
  assign ram_last_MPORT_mask = 1'h1;
  assign ram_last_MPORT_en = io_enq_ready & io_enq_valid;
  assign io_enq_ready = ~full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = ~empty; // @[Decoupled.scala 304:19]
  assign io_deq_bits_data = ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_resp = ram_resp_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_echo_tl_state_size = ram_echo_tl_state_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_echo_tl_state_source = ram_echo_tl_state_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  assign io_deq_bits_last = ram_last_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17]
  always @(posedge clock) begin
    if (ram_data_MPORT_en & ram_data_MPORT_mask) begin
      ram_data[ram_data_MPORT_addr] <= ram_data_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_resp_MPORT_en & ram_resp_MPORT_mask) begin
      ram_resp[ram_resp_MPORT_addr] <= ram_resp_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_echo_tl_state_size_MPORT_en & ram_echo_tl_state_size_MPORT_mask) begin
      ram_echo_tl_state_size[ram_echo_tl_state_size_MPORT_addr] <= ram_echo_tl_state_size_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_echo_tl_state_source_MPORT_en & ram_echo_tl_state_source_MPORT_mask) begin
      ram_echo_tl_state_source[ram_echo_tl_state_source_MPORT_addr] <= ram_echo_tl_state_source_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_last_MPORT_en & ram_last_MPORT_mask) begin
      ram_last[ram_last_MPORT_addr] <= ram_last_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Counter.scala 61:40]
      enq_ptr_value <= 2'h0; // @[Counter.scala 61:40]
    end else if (do_enq) begin // @[Decoupled.scala 288:16]
      enq_ptr_value <= _value_T_1; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Counter.scala 61:40]
      deq_ptr_value <= 2'h0; // @[Counter.scala 61:40]
    end else if (do_deq) begin // @[Decoupled.scala 292:16]
      deq_ptr_value <= _value_T_3; // @[Counter.scala 77:15]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      maybe_full <= do_enq; // @[Decoupled.scala 296:16]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {2{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    ram_data[initvar] = _RAND_0[63:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    ram_resp[initvar] = _RAND_1[1:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    ram_echo_tl_state_size[initvar] = _RAND_2[3:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    ram_echo_tl_state_source[initvar] = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    ram_last[initvar] = _RAND_4[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_5 = {1{`RANDOM}};
  enq_ptr_value = _RAND_5[1:0];
  _RAND_6 = {1{`RANDOM}};
  deq_ptr_value = _RAND_6[1:0];
  _RAND_7 = {1{`RANDOM}};
  maybe_full = _RAND_7[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module AXI4Deinterleaver_1(
  input         clock,
  input         reset,
  output        auto_in_aw_ready,
  input         auto_in_aw_valid,
  input         auto_in_aw_bits_id,
  input  [30:0] auto_in_aw_bits_addr,
  input  [7:0]  auto_in_aw_bits_len,
  input  [2:0]  auto_in_aw_bits_size,
  input  [1:0]  auto_in_aw_bits_burst,
  input         auto_in_aw_bits_lock,
  input  [3:0]  auto_in_aw_bits_cache,
  input  [2:0]  auto_in_aw_bits_prot,
  input  [3:0]  auto_in_aw_bits_qos,
  input  [3:0]  auto_in_aw_bits_echo_tl_state_size,
  input         auto_in_aw_bits_echo_tl_state_source,
  output        auto_in_w_ready,
  input         auto_in_w_valid,
  input  [63:0] auto_in_w_bits_data,
  input  [7:0]  auto_in_w_bits_strb,
  input         auto_in_w_bits_last,
  input         auto_in_b_ready,
  output        auto_in_b_valid,
  output [1:0]  auto_in_b_bits_resp,
  output [3:0]  auto_in_b_bits_echo_tl_state_size,
  output        auto_in_b_bits_echo_tl_state_source,
  output        auto_in_ar_ready,
  input         auto_in_ar_valid,
  input         auto_in_ar_bits_id,
  input  [30:0] auto_in_ar_bits_addr,
  input  [7:0]  auto_in_ar_bits_len,
  input  [2:0]  auto_in_ar_bits_size,
  input  [1:0]  auto_in_ar_bits_burst,
  input         auto_in_ar_bits_lock,
  input  [3:0]  auto_in_ar_bits_cache,
  input  [2:0]  auto_in_ar_bits_prot,
  input  [3:0]  auto_in_ar_bits_qos,
  input  [3:0]  auto_in_ar_bits_echo_tl_state_size,
  input         auto_in_ar_bits_echo_tl_state_source,
  input         auto_in_r_ready,
  output        auto_in_r_valid,
  output [63:0] auto_in_r_bits_data,
  output [1:0]  auto_in_r_bits_resp,
  output [3:0]  auto_in_r_bits_echo_tl_state_size,
  output        auto_in_r_bits_echo_tl_state_source,
  output        auto_in_r_bits_last,
  input         auto_out_aw_ready,
  output        auto_out_aw_valid,
  output        auto_out_aw_bits_id,
  output [30:0] auto_out_aw_bits_addr,
  output [7:0]  auto_out_aw_bits_len,
  output [2:0]  auto_out_aw_bits_size,
  output [1:0]  auto_out_aw_bits_burst,
  output        auto_out_aw_bits_lock,
  output [3:0]  auto_out_aw_bits_cache,
  output [2:0]  auto_out_aw_bits_prot,
  output [3:0]  auto_out_aw_bits_qos,
  output [3:0]  auto_out_aw_bits_echo_tl_state_size,
  output        auto_out_aw_bits_echo_tl_state_source,
  input         auto_out_w_ready,
  output        auto_out_w_valid,
  output [63:0] auto_out_w_bits_data,
  output [7:0]  auto_out_w_bits_strb,
  output        auto_out_w_bits_last,
  output        auto_out_b_ready,
  input         auto_out_b_valid,
  input  [1:0]  auto_out_b_bits_resp,
  input  [3:0]  auto_out_b_bits_echo_tl_state_size,
  input         auto_out_b_bits_echo_tl_state_source,
  input         auto_out_ar_ready,
  output        auto_out_ar_valid,
  output        auto_out_ar_bits_id,
  output [30:0] auto_out_ar_bits_addr,
  output [7:0]  auto_out_ar_bits_len,
  output [2:0]  auto_out_ar_bits_size,
  output [1:0]  auto_out_ar_bits_burst,
  output        auto_out_ar_bits_lock,
  output [3:0]  auto_out_ar_bits_cache,
  output [2:0]  auto_out_ar_bits_prot,
  output [3:0]  auto_out_ar_bits_qos,
  output [3:0]  auto_out_ar_bits_echo_tl_state_size,
  output        auto_out_ar_bits_echo_tl_state_source,
  output        auto_out_r_ready,
  input         auto_out_r_valid,
  input  [63:0] auto_out_r_bits_data,
  input  [1:0]  auto_out_r_bits_resp,
  input  [3:0]  auto_out_r_bits_echo_tl_state_size,
  input         auto_out_r_bits_echo_tl_state_source,
  input         auto_out_r_bits_last
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
`endif // RANDOMIZE_REG_INIT
  wire  qs_queue_0_clock; // @[Deinterleaver.scala 66:27]
  wire  qs_queue_0_reset; // @[Deinterleaver.scala 66:27]
  wire  qs_queue_0_io_enq_ready; // @[Deinterleaver.scala 66:27]
  wire  qs_queue_0_io_enq_valid; // @[Deinterleaver.scala 66:27]
  wire [63:0] qs_queue_0_io_enq_bits_data; // @[Deinterleaver.scala 66:27]
  wire [1:0] qs_queue_0_io_enq_bits_resp; // @[Deinterleaver.scala 66:27]
  wire [3:0] qs_queue_0_io_enq_bits_echo_tl_state_size; // @[Deinterleaver.scala 66:27]
  wire  qs_queue_0_io_enq_bits_echo_tl_state_source; // @[Deinterleaver.scala 66:27]
  wire  qs_queue_0_io_enq_bits_last; // @[Deinterleaver.scala 66:27]
  wire  qs_queue_0_io_deq_ready; // @[Deinterleaver.scala 66:27]
  wire  qs_queue_0_io_deq_valid; // @[Deinterleaver.scala 66:27]
  wire [63:0] qs_queue_0_io_deq_bits_data; // @[Deinterleaver.scala 66:27]
  wire [1:0] qs_queue_0_io_deq_bits_resp; // @[Deinterleaver.scala 66:27]
  wire [3:0] qs_queue_0_io_deq_bits_echo_tl_state_size; // @[Deinterleaver.scala 66:27]
  wire  qs_queue_0_io_deq_bits_echo_tl_state_source; // @[Deinterleaver.scala 66:27]
  wire  qs_queue_0_io_deq_bits_last; // @[Deinterleaver.scala 66:27]
  reg  locked; // @[Deinterleaver.scala 82:29]
  reg [2:0] pending_count; // @[Deinterleaver.scala 92:32]
  wire  enq_readys_0 = qs_queue_0_io_enq_ready; // @[Deinterleaver.scala 125:{33,33}]
  wire  _pending_inc_T = enq_readys_0 & auto_out_r_valid; // @[Decoupled.scala 52:35]
  wire  pending_inc = _pending_inc_T & auto_out_r_bits_last; // @[Deinterleaver.scala 94:49]
  wire  _pending_dec_T = auto_in_r_ready & locked; // @[Decoupled.scala 52:35]
  wire  deq_bits_0_last = qs_queue_0_io_deq_bits_last; // @[Deinterleaver.scala 114:{31,31}]
  wire  pending_dec = _pending_dec_T & deq_bits_0_last; // @[Deinterleaver.scala 95:48]
  wire [2:0] _GEN_1 = {{2'd0}, pending_inc}; // @[Deinterleaver.scala 96:27]
  wire [2:0] _pending_next_T_1 = pending_count + _GEN_1; // @[Deinterleaver.scala 96:27]
  wire [2:0] _GEN_2 = {{2'd0}, pending_dec}; // @[Deinterleaver.scala 96:40]
  wire [2:0] pending_next = _pending_next_T_1 - _GEN_2; // @[Deinterleaver.scala 96:40]
  wire  _pending_T_4 = ~reset; // @[Deinterleaver.scala 99:20]
  wire  pending = pending_next != 3'h0; // @[Deinterleaver.scala 101:18]
  Queue_47 qs_queue_0 ( // @[Deinterleaver.scala 66:27]
    .clock(qs_queue_0_clock),
    .reset(qs_queue_0_reset),
    .io_enq_ready(qs_queue_0_io_enq_ready),
    .io_enq_valid(qs_queue_0_io_enq_valid),
    .io_enq_bits_data(qs_queue_0_io_enq_bits_data),
    .io_enq_bits_resp(qs_queue_0_io_enq_bits_resp),
    .io_enq_bits_echo_tl_state_size(qs_queue_0_io_enq_bits_echo_tl_state_size),
    .io_enq_bits_echo_tl_state_source(qs_queue_0_io_enq_bits_echo_tl_state_source),
    .io_enq_bits_last(qs_queue_0_io_enq_bits_last),
    .io_deq_ready(qs_queue_0_io_deq_ready),
    .io_deq_valid(qs_queue_0_io_deq_valid),
    .io_deq_bits_data(qs_queue_0_io_deq_bits_data),
    .io_deq_bits_resp(qs_queue_0_io_deq_bits_resp),
    .io_deq_bits_echo_tl_state_size(qs_queue_0_io_deq_bits_echo_tl_state_size),
    .io_deq_bits_echo_tl_state_source(qs_queue_0_io_deq_bits_echo_tl_state_source),
    .io_deq_bits_last(qs_queue_0_io_deq_bits_last)
  );
  assign auto_in_aw_ready = auto_out_aw_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_w_ready = auto_out_w_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_b_valid = auto_out_b_valid; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_b_bits_resp = auto_out_b_bits_resp; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_b_bits_echo_tl_state_size = auto_out_b_bits_echo_tl_state_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_b_bits_echo_tl_state_source = auto_out_b_bits_echo_tl_state_source; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_ar_ready = auto_out_ar_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_r_valid = locked; // @[Deinterleaver.scala 113:20 Nodes.scala 1210:84]
  assign auto_in_r_bits_data = qs_queue_0_io_deq_bits_data; // @[Deinterleaver.scala 114:{31,31}]
  assign auto_in_r_bits_resp = qs_queue_0_io_deq_bits_resp; // @[Deinterleaver.scala 114:{31,31}]
  assign auto_in_r_bits_echo_tl_state_size = qs_queue_0_io_deq_bits_echo_tl_state_size; // @[Deinterleaver.scala 114:{31,31}]
  assign auto_in_r_bits_echo_tl_state_source = qs_queue_0_io_deq_bits_echo_tl_state_source; // @[Deinterleaver.scala 114:{31,31}]
  assign auto_in_r_bits_last = qs_queue_0_io_deq_bits_last; // @[Deinterleaver.scala 114:{31,31}]
  assign auto_out_aw_valid = auto_in_aw_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_id = auto_in_aw_bits_id; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_addr = auto_in_aw_bits_addr; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_len = auto_in_aw_bits_len; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_size = auto_in_aw_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_burst = auto_in_aw_bits_burst; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_lock = auto_in_aw_bits_lock; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_cache = auto_in_aw_bits_cache; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_prot = auto_in_aw_bits_prot; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_qos = auto_in_aw_bits_qos; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_echo_tl_state_size = auto_in_aw_bits_echo_tl_state_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_aw_bits_echo_tl_state_source = auto_in_aw_bits_echo_tl_state_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_valid = auto_in_w_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_bits_data = auto_in_w_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_bits_strb = auto_in_w_bits_strb; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_w_bits_last = auto_in_w_bits_last; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_b_ready = auto_in_b_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_valid = auto_in_ar_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_id = auto_in_ar_bits_id; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_addr = auto_in_ar_bits_addr; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_len = auto_in_ar_bits_len; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_size = auto_in_ar_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_burst = auto_in_ar_bits_burst; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_lock = auto_in_ar_bits_lock; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_cache = auto_in_ar_bits_cache; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_prot = auto_in_ar_bits_prot; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_qos = auto_in_ar_bits_qos; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_echo_tl_state_size = auto_in_ar_bits_echo_tl_state_size; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_ar_bits_echo_tl_state_source = auto_in_ar_bits_echo_tl_state_source; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_r_ready = qs_queue_0_io_enq_ready; // @[Deinterleaver.scala 125:{33,33}]
  assign qs_queue_0_clock = clock;
  assign qs_queue_0_reset = reset;
  assign qs_queue_0_io_enq_valid = auto_out_r_valid; // @[Deinterleaver.scala 128:28]
  assign qs_queue_0_io_enq_bits_data = auto_out_r_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign qs_queue_0_io_enq_bits_resp = auto_out_r_bits_resp; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign qs_queue_0_io_enq_bits_echo_tl_state_size = auto_out_r_bits_echo_tl_state_size; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign qs_queue_0_io_enq_bits_echo_tl_state_source = auto_out_r_bits_echo_tl_state_source; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign qs_queue_0_io_enq_bits_last = auto_out_r_bits_last; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign qs_queue_0_io_deq_ready = auto_in_r_ready & locked; // @[Decoupled.scala 52:35]
  always @(posedge clock) begin
    if (reset) begin // @[Deinterleaver.scala 82:29]
      locked <= 1'h0; // @[Deinterleaver.scala 82:29]
    end else if (~locked | pending_dec) begin // @[Deinterleaver.scala 107:59]
      locked <= |pending; // @[Deinterleaver.scala 108:18]
    end
    if (reset) begin // @[Deinterleaver.scala 92:32]
      pending_count <= 3'h0; // @[Deinterleaver.scala 92:32]
    end else begin
      pending_count <= pending_next; // @[Deinterleaver.scala 97:19]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~pending_dec | pending_count != 3'h0)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Deinterleaver.scala:99 assert (!dec || count =/= 0.U)\n"); // @[Deinterleaver.scala 99:20]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~pending_dec | pending_count != 3'h0) & ~reset) begin
          $fatal; // @[Deinterleaver.scala 99:20]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_pending_T_4 & ~(~pending_inc | pending_count != 3'h4)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Deinterleaver.scala:100 assert (!inc || count =/= beats.U)\n"); // @[Deinterleaver.scala 100:20]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~pending_inc | pending_count != 3'h4) & _pending_T_4) begin
          $fatal; // @[Deinterleaver.scala 100:20]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  locked = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  pending_count = _RAND_1[2:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLMonitor_21(
  input         clock,
  input         reset,
  input         io_in_a_ready,
  input         io_in_a_valid,
  input  [2:0]  io_in_a_bits_opcode,
  input  [30:0] io_in_a_bits_address,
  input  [7:0]  io_in_a_bits_mask,
  input         io_in_d_ready,
  input         io_in_d_valid,
  input  [2:0]  io_in_d_bits_opcode,
  input  [2:0]  io_in_d_bits_size,
  input         io_in_d_bits_source,
  input         io_in_d_bits_denied,
  input         io_in_d_bits_corrupt
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire [30:0] _is_aligned_T = io_in_a_bits_address & 31'h7; // @[Edges.scala 20:16]
  wire  is_aligned = _is_aligned_T == 31'h0; // @[Edges.scala 20:24]
  wire  _T_15 = io_in_a_bits_opcode == 3'h6; // @[Monitor.scala 81:25]
  wire [30:0] _T_23 = io_in_a_bits_address ^ 31'h20000000; // @[Parameters.scala 137:31]
  wire [31:0] _T_24 = {1'b0,$signed(_T_23)}; // @[Parameters.scala 137:49]
  wire [31:0] _T_26 = $signed(_T_24) & -32'sh20000000; // @[Parameters.scala 137:52]
  wire  _T_27 = $signed(_T_26) == 32'sh0; // @[Parameters.scala 137:67]
  wire [30:0] _T_28 = io_in_a_bits_address ^ 31'h40000000; // @[Parameters.scala 137:31]
  wire [31:0] _T_29 = {1'b0,$signed(_T_28)}; // @[Parameters.scala 137:49]
  wire [31:0] _T_31 = $signed(_T_29) & -32'sh40000000; // @[Parameters.scala 137:52]
  wire  _T_32 = $signed(_T_31) == 32'sh0; // @[Parameters.scala 137:67]
  wire  _T_33 = _T_27 | _T_32; // @[Parameters.scala 671:42]
  wire [7:0] _T_75 = ~io_in_a_bits_mask; // @[Monitor.scala 88:18]
  wire  _T_76 = _T_75 == 8'h0; // @[Monitor.scala 88:31]
  wire  _T_84 = io_in_a_bits_opcode == 3'h7; // @[Monitor.scala 92:25]
  wire  _T_157 = io_in_a_bits_opcode == 3'h4; // @[Monitor.scala 104:25]
  wire  _T_197 = io_in_a_bits_mask == 8'hff; // @[Monitor.scala 110:30]
  wire  _T_205 = io_in_a_bits_opcode == 3'h0; // @[Monitor.scala 114:25]
  wire  _T_247 = io_in_a_bits_opcode == 3'h1; // @[Monitor.scala 122:25]
  wire  _T_291 = io_in_a_bits_opcode == 3'h2; // @[Monitor.scala 130:25]
  wire  _T_330 = io_in_a_bits_opcode == 3'h3; // @[Monitor.scala 138:25]
  wire  _T_369 = io_in_a_bits_opcode == 3'h5; // @[Monitor.scala 146:25]
  wire  _T_412 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire  _source_ok_T_1 = ~io_in_d_bits_source; // @[Parameters.scala 46:9]
  wire  _T_416 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_420 = io_in_d_bits_size >= 3'h3; // @[Monitor.scala 312:27]
  wire  _T_428 = ~io_in_d_bits_corrupt; // @[Monitor.scala 314:15]
  wire  _T_432 = ~io_in_d_bits_denied; // @[Monitor.scala 315:15]
  wire  _T_436 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_464 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _T_484 = _T_432 | io_in_d_bits_corrupt; // @[Monitor.scala 334:30]
  wire  _T_493 = io_in_d_bits_opcode == 3'h0; // @[Monitor.scala 338:25]
  wire  _T_510 = io_in_d_bits_opcode == 3'h1; // @[Monitor.scala 346:25]
  wire  _T_528 = io_in_d_bits_opcode == 3'h2; // @[Monitor.scala 354:25]
  wire  _a_first_T = io_in_a_ready & io_in_a_valid; // @[Decoupled.scala 52:35]
  reg [1:0] a_first_counter; // @[Edges.scala 228:27]
  wire [1:0] a_first_counter1 = a_first_counter - 2'h1; // @[Edges.scala 229:28]
  wire  a_first = a_first_counter == 2'h0; // @[Edges.scala 230:25]
  reg [2:0] opcode; // @[Monitor.scala 384:22]
  reg [30:0] address; // @[Monitor.scala 388:22]
  wire  _T_558 = io_in_a_valid & ~a_first; // @[Monitor.scala 389:19]
  wire  _T_559 = io_in_a_bits_opcode == opcode; // @[Monitor.scala 390:32]
  wire  _T_575 = io_in_a_bits_address == address; // @[Monitor.scala 394:32]
  wire  _d_first_T = io_in_d_ready & io_in_d_valid; // @[Decoupled.scala 52:35]
  wire [11:0] _d_first_beats1_decode_T_1 = 12'h1f << io_in_d_bits_size; // @[package.scala 234:77]
  wire [4:0] _d_first_beats1_decode_T_3 = ~_d_first_beats1_decode_T_1[4:0]; // @[package.scala 234:46]
  wire [1:0] d_first_beats1_decode = _d_first_beats1_decode_T_3[4:3]; // @[Edges.scala 219:59]
  wire  d_first_beats1_opdata = io_in_d_bits_opcode[0]; // @[Edges.scala 105:36]
  reg [1:0] d_first_counter; // @[Edges.scala 228:27]
  wire [1:0] d_first_counter1 = d_first_counter - 2'h1; // @[Edges.scala 229:28]
  wire  d_first = d_first_counter == 2'h0; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  reg [2:0] size_1; // @[Monitor.scala 537:22]
  reg  source_1; // @[Monitor.scala 538:22]
  reg  denied; // @[Monitor.scala 540:22]
  wire  _T_582 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_583 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  wire  _T_591 = io_in_d_bits_size == size_1; // @[Monitor.scala 544:29]
  wire  _T_595 = io_in_d_bits_source == source_1; // @[Monitor.scala 545:29]
  wire  _T_603 = io_in_d_bits_denied == denied; // @[Monitor.scala 547:29]
  reg  inflight; // @[Monitor.scala 611:27]
  reg [3:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [3:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg [1:0] a_first_counter_1; // @[Edges.scala 228:27]
  wire [1:0] a_first_counter1_1 = a_first_counter_1 - 2'h1; // @[Edges.scala 229:28]
  wire  a_first_1 = a_first_counter_1 == 2'h0; // @[Edges.scala 230:25]
  reg [1:0] d_first_counter_1; // @[Edges.scala 228:27]
  wire [1:0] d_first_counter1_1 = d_first_counter_1 - 2'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = d_first_counter_1 == 2'h0; // @[Edges.scala 230:25]
  wire [2:0] _GEN_62 = {io_in_d_bits_source, 2'h0}; // @[Monitor.scala 634:69]
  wire [3:0] _a_opcode_lookup_T = {{1'd0}, _GEN_62}; // @[Monitor.scala 634:69]
  wire [3:0] _a_opcode_lookup_T_1 = inflight_opcodes >> _a_opcode_lookup_T; // @[Monitor.scala 634:44]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [15:0] _GEN_64 = {{12'd0}, _a_opcode_lookup_T_1}; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_6 = _GEN_64 & _a_opcode_lookup_T_5; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[15:1]}; // @[Monitor.scala 634:152]
  wire [3:0] _a_size_lookup_T_1 = inflight_sizes >> _a_opcode_lookup_T; // @[Monitor.scala 638:40]
  wire [15:0] _GEN_72 = {{12'd0}, _a_size_lookup_T_1}; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_6 = _GEN_72 & _a_opcode_lookup_T_5; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[15:1]}; // @[Monitor.scala 638:144]
  wire  _T_609 = io_in_a_valid & a_first_1; // @[Monitor.scala 648:26]
  wire [1:0] _GEN_15 = io_in_a_valid & a_first_1 ? 2'h1 : 2'h0; // @[Monitor.scala 648:71 649:22]
  wire  _T_612 = _a_first_T & a_first_1; // @[Monitor.scala 652:27]
  wire [3:0] _a_opcodes_set_interm_T = {io_in_a_bits_opcode, 1'h0}; // @[Monitor.scala 654:53]
  wire [3:0] _a_opcodes_set_interm_T_1 = _a_opcodes_set_interm_T | 4'h1; // @[Monitor.scala 654:61]
  wire [3:0] a_opcodes_set_interm = _a_first_T & a_first_1 ? _a_opcodes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 654:28]
  wire [18:0] _a_opcodes_set_T_1 = {{15'd0}, a_opcodes_set_interm}; // @[Monitor.scala 656:54]
  wire [3:0] a_sizes_set_interm = _a_first_T & a_first_1 ? 4'h7 : 4'h0; // @[Monitor.scala 652:72 655:28]
  wire [18:0] _a_sizes_set_T_1 = {{15'd0}, a_sizes_set_interm}; // @[Monitor.scala 657:52]
  wire  _T_616 = ~inflight; // @[Monitor.scala 658:17]
  wire [1:0] _GEN_16 = _a_first_T & a_first_1 ? 2'h1 : 2'h0; // @[Monitor.scala 652:72 653:28]
  wire [18:0] _GEN_19 = _a_first_T & a_first_1 ? _a_opcodes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 656:28]
  wire [18:0] _GEN_20 = _a_first_T & a_first_1 ? _a_sizes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 657:28]
  wire  _T_620 = io_in_d_valid & d_first_1; // @[Monitor.scala 671:26]
  wire  _T_622 = ~_T_416; // @[Monitor.scala 671:74]
  wire  _T_623 = io_in_d_valid & d_first_1 & ~_T_416; // @[Monitor.scala 671:71]
  wire [1:0] _d_clr_wo_ready_T = 2'h1 << io_in_d_bits_source; // @[OneHot.scala 57:35]
  wire [1:0] _GEN_21 = io_in_d_valid & d_first_1 & ~_T_416 ? _d_clr_wo_ready_T : 2'h0; // @[Monitor.scala 671:90 672:22]
  wire [30:0] _GEN_334 = {{15'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [30:0] _d_opcodes_clr_T_5 = _GEN_334 << _a_opcode_lookup_T; // @[Monitor.scala 677:76]
  wire [1:0] _GEN_22 = _d_first_T & d_first_1 & _T_622 ? _d_clr_wo_ready_T : 2'h0; // @[Monitor.scala 675:91 676:21]
  wire [30:0] _GEN_23 = _d_first_T & d_first_1 & _T_622 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 675:91 677:21]
  wire  same_cycle_resp = _T_609 & _source_ok_T_1; // @[Monitor.scala 681:88]
  wire  _T_635 = inflight >> io_in_d_bits_source | same_cycle_resp; // @[Monitor.scala 682:49]
  wire [2:0] _GEN_27 = 3'h2 == io_in_a_bits_opcode ? 3'h1 : 3'h0; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_28 = 3'h3 == io_in_a_bits_opcode ? 3'h1 : _GEN_27; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_29 = 3'h4 == io_in_a_bits_opcode ? 3'h1 : _GEN_28; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_30 = 3'h5 == io_in_a_bits_opcode ? 3'h2 : _GEN_29; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_31 = 3'h6 == io_in_a_bits_opcode ? 3'h4 : _GEN_30; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_32 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_31; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_39 = 3'h6 == io_in_a_bits_opcode ? 3'h5 : _GEN_30; // @[Monitor.scala 686:{39,39}]
  wire [2:0] _GEN_40 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_39; // @[Monitor.scala 686:{39,39}]
  wire  _T_640 = io_in_d_bits_opcode == _GEN_40; // @[Monitor.scala 686:39]
  wire  _T_641 = io_in_d_bits_opcode == _GEN_32 | _T_640; // @[Monitor.scala 685:77]
  wire  _T_645 = 3'h3 == io_in_d_bits_size; // @[Monitor.scala 687:36]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_43 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_44 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_43; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_45 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_44; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_46 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_45; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_47 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_46; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_48 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_47; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_55 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_46; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_56 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_55; // @[Monitor.scala 690:{38,38}]
  wire  _T_652 = io_in_d_bits_opcode == _GEN_56; // @[Monitor.scala 690:38]
  wire  _T_653 = io_in_d_bits_opcode == _GEN_48 | _T_652; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire [3:0] _GEN_76 = {{1'd0}, io_in_d_bits_size}; // @[Monitor.scala 691:36]
  wire  _T_657 = _GEN_76 == a_size_lookup; // @[Monitor.scala 691:36]
  wire  _T_667 = _T_620 & a_first_1 & io_in_a_valid & _source_ok_T_1 & _T_622; // @[Monitor.scala 694:116]
  wire  _T_669 = ~io_in_d_ready | io_in_a_ready; // @[Monitor.scala 695:32]
  wire  a_set_wo_ready = _GEN_15[0];
  wire  d_clr_wo_ready = _GEN_21[0];
  wire  _T_676 = a_set_wo_ready != d_clr_wo_ready | ~(|a_set_wo_ready); // @[Monitor.scala 699:48]
  wire  a_set = _GEN_16[0];
  wire  d_clr = _GEN_22[0];
  wire [3:0] a_opcodes_set = _GEN_19[3:0];
  wire [3:0] _inflight_opcodes_T = inflight_opcodes | a_opcodes_set; // @[Monitor.scala 703:43]
  wire [3:0] d_opcodes_clr = _GEN_23[3:0];
  wire [3:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [3:0] _inflight_opcodes_T_2 = _inflight_opcodes_T & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [3:0] a_sizes_set = _GEN_20[3:0];
  wire [3:0] _inflight_sizes_T = inflight_sizes | a_sizes_set; // @[Monitor.scala 704:39]
  wire [3:0] _inflight_sizes_T_2 = _inflight_sizes_T & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [31:0] watchdog; // @[Monitor.scala 706:27]
  wire  _T_685 = ~(|inflight) | plusarg_reader_out == 32'h0 | watchdog < plusarg_reader_out; // @[Monitor.scala 709:47]
  wire [31:0] _watchdog_T_1 = watchdog + 32'h1; // @[Monitor.scala 711:26]
  reg [3:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg [1:0] d_first_counter_2; // @[Edges.scala 228:27]
  wire [1:0] d_first_counter1_2 = d_first_counter_2 - 2'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = d_first_counter_2 == 2'h0; // @[Edges.scala 230:25]
  wire [3:0] _c_size_lookup_T_1 = inflight_sizes_1 >> _a_opcode_lookup_T; // @[Monitor.scala 747:42]
  wire [15:0] _GEN_78 = {{12'd0}, _c_size_lookup_T_1}; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_6 = _GEN_78 & _a_opcode_lookup_T_5; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[15:1]}; // @[Monitor.scala 747:146]
  wire  _T_711 = io_in_d_valid & d_first_2 & _T_416; // @[Monitor.scala 779:71]
  wire [30:0] _GEN_69 = _d_first_T & d_first_2 & _T_416 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 783:90 786:21]
  wire  _T_719 = 1'h0 >> io_in_d_bits_source; // @[Monitor.scala 791:25]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_729 = _GEN_76 == c_size_lookup; // @[Monitor.scala 795:36]
  wire [3:0] d_sizes_clr_1 = _GEN_69[3:0];
  wire [3:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [3:0] _inflight_sizes_T_5 = inflight_sizes_1 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 2'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        a_first_counter <= 2'h0;
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      opcode <= io_in_a_bits_opcode; // @[Monitor.scala 397:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      address <= io_in_a_bits_address; // @[Monitor.scala 401:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 2'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        if (d_first_beats1_opdata) begin // @[Edges.scala 220:14]
          d_first_counter <= d_first_beats1_decode;
        end else begin
          d_first_counter <= 2'h0;
        end
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      size_1 <= io_in_d_bits_size; // @[Monitor.scala 552:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      source_1 <= io_in_d_bits_source; // @[Monitor.scala 553:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      denied <= io_in_d_bits_denied; // @[Monitor.scala 555:15]
    end
    if (reset) begin // @[Monitor.scala 611:27]
      inflight <= 1'h0; // @[Monitor.scala 611:27]
    end else begin
      inflight <= (inflight | a_set) & ~d_clr; // @[Monitor.scala 702:14]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 4'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 4'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter_1 <= 2'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first_1) begin // @[Edges.scala 235:21]
        a_first_counter_1 <= 2'h0;
      end else begin
        a_first_counter_1 <= a_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 2'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        if (d_first_beats1_opdata) begin // @[Edges.scala 220:14]
          d_first_counter_1 <= d_first_beats1_decode;
        end else begin
          d_first_counter_1 <= 2'h0;
        end
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 706:27]
      watchdog <= 32'h0; // @[Monitor.scala 706:27]
    end else if (_a_first_T | _d_first_T) begin // @[Monitor.scala 712:47]
      watchdog <= 32'h0; // @[Monitor.scala 712:58]
    end else begin
      watchdog <= _watchdog_T_1; // @[Monitor.scala 711:14]
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 4'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 2'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        if (d_first_beats1_opdata) begin // @[Edges.scala 220:14]
          d_first_counter_2 <= d_first_beats1_decode;
        end else begin
          d_first_counter_2 <= 2'h0;
        end
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock from a client which does not support Probe (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock address not aligned to size (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~_T_76) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock contains invalid mask (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_76 & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_84 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_84 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_84 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm from a client which does not support Probe (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_84 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_84 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm address not aligned to size (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_84 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_84 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm requests NtoB (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_84 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_84 & ~reset & ~_T_76) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm contains invalid mask (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_76 & (io_in_a_valid & _T_84 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_157 & ~reset & ~_T_33) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which slave claims it can't support (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_33 & (io_in_a_valid & _T_157 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_157 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get address not aligned to size (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_157 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_157 & ~reset & ~_T_197) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get contains invalid mask (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_197 & (io_in_a_valid & _T_157 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_205 & ~reset & ~_T_33) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutFull type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_33 & (io_in_a_valid & _T_205 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_205 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull address not aligned to size (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_205 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_205 & ~reset & ~_T_197) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull contains invalid mask (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_197 & (io_in_a_valid & _T_205 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_247 & ~reset & ~_T_33) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutPartial type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_33 & (io_in_a_valid & _T_247 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_247 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial address not aligned to size (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_247 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_291 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Arithmetic type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_291 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_291 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic address not aligned to size (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_291 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_291 & ~reset & ~_T_197) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic contains invalid mask (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_197 & (io_in_a_valid & _T_291 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_330 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Logical type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_330 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_330 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical address not aligned to size (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_330 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_330 & ~reset & ~_T_197) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical contains invalid mask (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_197 & (io_in_a_valid & _T_330 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_369 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Hint type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_369 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_369 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint address not aligned to size (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_369 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_369 & ~reset & ~_T_197) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint contains invalid mask (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_197 & (io_in_a_valid & _T_369 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_412) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_412 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_416 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck carries invalid source ID (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_416 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_416 & _T_2 & ~_T_420) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck smaller than a beat (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_420 & (io_in_d_valid & _T_416 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_416 & _T_2 & ~_T_428) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is corrupt (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_428 & (io_in_d_valid & _T_416 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_416 & _T_2 & ~_T_432) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck is denied (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_432 & (io_in_d_valid & _T_416 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_436 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid source ID (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_436 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_436 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid sink ID (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_436 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_436 & _T_2 & ~_T_420) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant smaller than a beat (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_420 & (io_in_d_valid & _T_436 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_436 & _T_2 & ~_T_428) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant is corrupt (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_428 & (io_in_d_valid & _T_436 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_464 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid source ID (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_464 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_464 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid sink ID (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_464 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_464 & _T_2 & ~_T_420) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData smaller than a beat (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_420 & (io_in_d_valid & _T_464 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_464 & _T_2 & ~_T_484) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData is denied but not corrupt (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_484 & (io_in_d_valid & _T_464 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_493 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck carries invalid source ID (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_493 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_493 & _T_2 & ~_T_428) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAck is corrupt (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_428 & (io_in_d_valid & _T_493 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_510 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData carries invalid source ID (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_510 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_510 & _T_2 & ~_T_484) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel AccessAckData is denied but not corrupt (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_484 & (io_in_d_valid & _T_510 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_528 & _T_2 & ~_source_ok_T_1) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck carries invalid source ID (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_source_ok_T_1 & (io_in_d_valid & _T_528 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_528 & _T_2 & ~_T_428) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel HintAck is corrupt (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_428 & (io_in_d_valid & _T_528 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_558 & ~reset & ~_T_559) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel opcode changed within multibeat operation (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_559 & (_T_558 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_558 & ~reset & ~_T_575) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel address changed with multibeat operation (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_575 & (_T_558 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_582 & _T_2 & ~_T_583) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_583 & (_T_582 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_582 & _T_2 & ~_T_591) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel size changed within multibeat operation (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_591 & (_T_582 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_582 & _T_2 & ~_T_595) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel source changed within multibeat operation (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_595 & (_T_582 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_582 & _T_2 & ~_T_603) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel denied changed with multibeat operation (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_603 & (_T_582 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_612 & ~reset & ~_T_616) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel re-used a source ID (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_616 & (_T_612 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_623 & _T_2 & ~_T_635) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_635 & (_T_623 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_623 & same_cycle_resp & _T_2 & ~_T_641) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_641 & (_T_623 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_623 & same_cycle_resp & _T_2 & ~_T_645) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_645 & (_T_623 & same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_623 & ~same_cycle_resp & _T_2 & ~_T_653) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_653 & (_T_623 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_623 & ~same_cycle_resp & _T_2 & ~_T_657) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_657 & (_T_623 & ~same_cycle_resp & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_667 & _T_2 & ~_T_669) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_669 & (_T_667 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_2 & ~_T_676) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' and 'D' concurrent, despite minlatency 1 (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_676 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_685) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_685 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_711 & _T_2 & ~_T_719) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_719 & (_T_711 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_711 & _T_2 & ~_T_729) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:185:16)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_729 & (_T_711 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[1:0];
  _RAND_1 = {1{`RANDOM}};
  opcode = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  address = _RAND_2[30:0];
  _RAND_3 = {1{`RANDOM}};
  d_first_counter = _RAND_3[1:0];
  _RAND_4 = {1{`RANDOM}};
  opcode_1 = _RAND_4[2:0];
  _RAND_5 = {1{`RANDOM}};
  size_1 = _RAND_5[2:0];
  _RAND_6 = {1{`RANDOM}};
  source_1 = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  denied = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  inflight = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  inflight_opcodes = _RAND_9[3:0];
  _RAND_10 = {1{`RANDOM}};
  inflight_sizes = _RAND_10[3:0];
  _RAND_11 = {1{`RANDOM}};
  a_first_counter_1 = _RAND_11[1:0];
  _RAND_12 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_12[1:0];
  _RAND_13 = {1{`RANDOM}};
  watchdog = _RAND_13[31:0];
  _RAND_14 = {1{`RANDOM}};
  inflight_sizes_1 = _RAND_14[3:0];
  _RAND_15 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_15[1:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_48(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [63:0] io_enq_bits_data,
  input  [7:0]  io_enq_bits_strb,
  input         io_deq_ready,
  output        io_deq_valid,
  output [63:0] io_deq_bits_data,
  output [7:0]  io_deq_bits_strb,
  output        io_deq_bits_last
);
`ifdef RANDOMIZE_MEM_INIT
  reg [63:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_3;
`endif // RANDOMIZE_REG_INIT
  reg [63:0] ram_data [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_data_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [63:0] ram_data_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_data_MPORT_en; // @[Decoupled.scala 275:95]
  reg [7:0] ram_strb [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_strb_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_strb_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [7:0] ram_strb_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [7:0] ram_strb_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_strb_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_strb_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_strb_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_last [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_last_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_last_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_last_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_last_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_last_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_last_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_last_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  _do_enq_T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _do_deq_T = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_11 = io_deq_ready ? 1'h0 : _do_enq_T; // @[Decoupled.scala 320:{26,35}]
  wire  do_enq = empty ? _GEN_11 : _do_enq_T; // @[Decoupled.scala 317:17]
  wire  do_deq = empty ? 1'h0 : _do_deq_T; // @[Decoupled.scala 317:17 319:14]
  assign ram_data_io_deq_bits_MPORT_en = 1'h1;
  assign ram_data_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_data_io_deq_bits_MPORT_data = ram_data[ram_data_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_data_MPORT_data = io_enq_bits_data;
  assign ram_data_MPORT_addr = 1'h0;
  assign ram_data_MPORT_mask = 1'h1;
  assign ram_data_MPORT_en = empty ? _GEN_11 : _do_enq_T;
  assign ram_strb_io_deq_bits_MPORT_en = 1'h1;
  assign ram_strb_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_strb_io_deq_bits_MPORT_data = ram_strb[ram_strb_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_strb_MPORT_data = io_enq_bits_strb;
  assign ram_strb_MPORT_addr = 1'h0;
  assign ram_strb_MPORT_mask = 1'h1;
  assign ram_strb_MPORT_en = empty ? _GEN_11 : _do_enq_T;
  assign ram_last_io_deq_bits_MPORT_en = 1'h1;
  assign ram_last_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_last_io_deq_bits_MPORT_data = ram_last[ram_last_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_last_MPORT_data = 1'h1;
  assign ram_last_MPORT_addr = 1'h0;
  assign ram_last_MPORT_mask = 1'h1;
  assign ram_last_MPORT_en = empty ? _GEN_11 : _do_enq_T;
  assign io_enq_ready = ~maybe_full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = io_enq_valid | ~empty; // @[Decoupled.scala 304:16 316:{24,39}]
  assign io_deq_bits_data = empty ? io_enq_bits_data : ram_data_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_strb = empty ? io_enq_bits_strb : ram_strb_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_last = empty | ram_last_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  always @(posedge clock) begin
    if (ram_data_MPORT_en & ram_data_MPORT_mask) begin
      ram_data[ram_data_MPORT_addr] <= ram_data_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_strb_MPORT_en & ram_strb_MPORT_mask) begin
      ram_strb[ram_strb_MPORT_addr] <= ram_strb_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_last_MPORT_en & ram_last_MPORT_mask) begin
      ram_last[ram_last_MPORT_addr] <= ram_last_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      if (empty) begin // @[Decoupled.scala 317:17]
        if (io_deq_ready) begin // @[Decoupled.scala 320:26]
          maybe_full <= 1'h0; // @[Decoupled.scala 320:35]
        end else begin
          maybe_full <= _do_enq_T;
        end
      end else begin
        maybe_full <= _do_enq_T;
      end
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {2{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_data[initvar] = _RAND_0[63:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_strb[initvar] = _RAND_1[7:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_last[initvar] = _RAND_2[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_3 = {1{`RANDOM}};
  maybe_full = _RAND_3[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Queue_49(
  input         clock,
  input         reset,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [30:0] io_enq_bits_addr,
  input         io_enq_bits_wen,
  input         io_deq_ready,
  output        io_deq_valid,
  output        io_deq_bits_id,
  output [30:0] io_deq_bits_addr,
  output [7:0]  io_deq_bits_len,
  output [2:0]  io_deq_bits_size,
  output [1:0]  io_deq_bits_burst,
  output        io_deq_bits_lock,
  output [3:0]  io_deq_bits_cache,
  output [2:0]  io_deq_bits_prot,
  output [3:0]  io_deq_bits_qos,
  output [3:0]  io_deq_bits_echo_tl_state_size,
  output        io_deq_bits_echo_tl_state_source,
  output        io_deq_bits_wen
);
`ifdef RANDOMIZE_MEM_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_12;
`endif // RANDOMIZE_REG_INIT
  reg  ram_id [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_id_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_id_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_id_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_id_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_id_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_id_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_id_MPORT_en; // @[Decoupled.scala 275:95]
  reg [30:0] ram_addr [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_addr_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_addr_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [30:0] ram_addr_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [30:0] ram_addr_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_addr_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_addr_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_addr_MPORT_en; // @[Decoupled.scala 275:95]
  reg [7:0] ram_len [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_len_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_len_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [7:0] ram_len_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [7:0] ram_len_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_len_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_len_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_len_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] ram_size [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_size_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_size_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_size_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_size_MPORT_en; // @[Decoupled.scala 275:95]
  reg [1:0] ram_burst [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_burst_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_burst_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [1:0] ram_burst_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [1:0] ram_burst_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_burst_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_burst_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_burst_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_lock [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_lock_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_lock_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_lock_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_lock_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_lock_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_lock_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_lock_MPORT_en; // @[Decoupled.scala 275:95]
  reg [3:0] ram_cache [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_cache_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_cache_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [3:0] ram_cache_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [3:0] ram_cache_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_cache_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_cache_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_cache_MPORT_en; // @[Decoupled.scala 275:95]
  reg [2:0] ram_prot [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_prot_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_prot_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [2:0] ram_prot_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [2:0] ram_prot_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_prot_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_prot_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_prot_MPORT_en; // @[Decoupled.scala 275:95]
  reg [3:0] ram_qos [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_qos_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_qos_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [3:0] ram_qos_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [3:0] ram_qos_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_qos_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_qos_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_qos_MPORT_en; // @[Decoupled.scala 275:95]
  reg [3:0] ram_echo_tl_state_size [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_size_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_size_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire [3:0] ram_echo_tl_state_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [3:0] ram_echo_tl_state_size_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_size_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_size_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_size_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_echo_tl_state_source [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_echo_tl_state_source_MPORT_en; // @[Decoupled.scala 275:95]
  reg  ram_wen [0:0]; // @[Decoupled.scala 275:95]
  wire  ram_wen_io_deq_bits_MPORT_en; // @[Decoupled.scala 275:95]
  wire  ram_wen_io_deq_bits_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_wen_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_wen_MPORT_data; // @[Decoupled.scala 275:95]
  wire  ram_wen_MPORT_addr; // @[Decoupled.scala 275:95]
  wire  ram_wen_MPORT_mask; // @[Decoupled.scala 275:95]
  wire  ram_wen_MPORT_en; // @[Decoupled.scala 275:95]
  reg  maybe_full; // @[Decoupled.scala 278:27]
  wire  empty = ~maybe_full; // @[Decoupled.scala 280:28]
  wire  _do_enq_T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _do_deq_T = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_20 = io_deq_ready ? 1'h0 : _do_enq_T; // @[Decoupled.scala 320:{26,35}]
  wire  do_enq = empty ? _GEN_20 : _do_enq_T; // @[Decoupled.scala 317:17]
  wire  do_deq = empty ? 1'h0 : _do_deq_T; // @[Decoupled.scala 317:17 319:14]
  assign ram_id_io_deq_bits_MPORT_en = 1'h1;
  assign ram_id_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_id_io_deq_bits_MPORT_data = ram_id[ram_id_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_id_MPORT_data = 1'h0;
  assign ram_id_MPORT_addr = 1'h0;
  assign ram_id_MPORT_mask = 1'h1;
  assign ram_id_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign ram_addr_io_deq_bits_MPORT_en = 1'h1;
  assign ram_addr_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_addr_io_deq_bits_MPORT_data = ram_addr[ram_addr_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_addr_MPORT_data = io_enq_bits_addr;
  assign ram_addr_MPORT_addr = 1'h0;
  assign ram_addr_MPORT_mask = 1'h1;
  assign ram_addr_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign ram_len_io_deq_bits_MPORT_en = 1'h1;
  assign ram_len_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_len_io_deq_bits_MPORT_data = ram_len[ram_len_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_len_MPORT_data = 8'h0;
  assign ram_len_MPORT_addr = 1'h0;
  assign ram_len_MPORT_mask = 1'h1;
  assign ram_len_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign ram_size_io_deq_bits_MPORT_en = 1'h1;
  assign ram_size_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_size_io_deq_bits_MPORT_data = ram_size[ram_size_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_size_MPORT_data = 3'h3;
  assign ram_size_MPORT_addr = 1'h0;
  assign ram_size_MPORT_mask = 1'h1;
  assign ram_size_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign ram_burst_io_deq_bits_MPORT_en = 1'h1;
  assign ram_burst_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_burst_io_deq_bits_MPORT_data = ram_burst[ram_burst_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_burst_MPORT_data = 2'h1;
  assign ram_burst_MPORT_addr = 1'h0;
  assign ram_burst_MPORT_mask = 1'h1;
  assign ram_burst_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign ram_lock_io_deq_bits_MPORT_en = 1'h1;
  assign ram_lock_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_lock_io_deq_bits_MPORT_data = ram_lock[ram_lock_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_lock_MPORT_data = 1'h0;
  assign ram_lock_MPORT_addr = 1'h0;
  assign ram_lock_MPORT_mask = 1'h1;
  assign ram_lock_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign ram_cache_io_deq_bits_MPORT_en = 1'h1;
  assign ram_cache_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_cache_io_deq_bits_MPORT_data = ram_cache[ram_cache_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_cache_MPORT_data = 4'h0;
  assign ram_cache_MPORT_addr = 1'h0;
  assign ram_cache_MPORT_mask = 1'h1;
  assign ram_cache_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign ram_prot_io_deq_bits_MPORT_en = 1'h1;
  assign ram_prot_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_prot_io_deq_bits_MPORT_data = ram_prot[ram_prot_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_prot_MPORT_data = 3'h1;
  assign ram_prot_MPORT_addr = 1'h0;
  assign ram_prot_MPORT_mask = 1'h1;
  assign ram_prot_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign ram_qos_io_deq_bits_MPORT_en = 1'h1;
  assign ram_qos_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_qos_io_deq_bits_MPORT_data = ram_qos[ram_qos_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_qos_MPORT_data = 4'h0;
  assign ram_qos_MPORT_addr = 1'h0;
  assign ram_qos_MPORT_mask = 1'h1;
  assign ram_qos_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign ram_echo_tl_state_size_io_deq_bits_MPORT_en = 1'h1;
  assign ram_echo_tl_state_size_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_echo_tl_state_size_io_deq_bits_MPORT_data =
    ram_echo_tl_state_size[ram_echo_tl_state_size_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_echo_tl_state_size_MPORT_data = 4'h3;
  assign ram_echo_tl_state_size_MPORT_addr = 1'h0;
  assign ram_echo_tl_state_size_MPORT_mask = 1'h1;
  assign ram_echo_tl_state_size_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign ram_echo_tl_state_source_io_deq_bits_MPORT_en = 1'h1;
  assign ram_echo_tl_state_source_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_echo_tl_state_source_io_deq_bits_MPORT_data =
    ram_echo_tl_state_source[ram_echo_tl_state_source_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_echo_tl_state_source_MPORT_data = 1'h0;
  assign ram_echo_tl_state_source_MPORT_addr = 1'h0;
  assign ram_echo_tl_state_source_MPORT_mask = 1'h1;
  assign ram_echo_tl_state_source_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign ram_wen_io_deq_bits_MPORT_en = 1'h1;
  assign ram_wen_io_deq_bits_MPORT_addr = 1'h0;
  assign ram_wen_io_deq_bits_MPORT_data = ram_wen[ram_wen_io_deq_bits_MPORT_addr]; // @[Decoupled.scala 275:95]
  assign ram_wen_MPORT_data = io_enq_bits_wen;
  assign ram_wen_MPORT_addr = 1'h0;
  assign ram_wen_MPORT_mask = 1'h1;
  assign ram_wen_MPORT_en = empty ? _GEN_20 : _do_enq_T;
  assign io_enq_ready = ~maybe_full; // @[Decoupled.scala 305:19]
  assign io_deq_valid = io_enq_valid | ~empty; // @[Decoupled.scala 304:16 316:{24,39}]
  assign io_deq_bits_id = empty ? 1'h0 : ram_id_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_addr = empty ? io_enq_bits_addr : ram_addr_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_len = empty ? 8'h0 : ram_len_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_size = empty ? 3'h3 : ram_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_burst = empty ? 2'h1 : ram_burst_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_lock = empty ? 1'h0 : ram_lock_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_cache = empty ? 4'h0 : ram_cache_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_prot = empty ? 3'h1 : ram_prot_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_qos = empty ? 4'h0 : ram_qos_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_echo_tl_state_size = empty ? 4'h3 : ram_echo_tl_state_size_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_echo_tl_state_source = empty ? 1'h0 : ram_echo_tl_state_source_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  assign io_deq_bits_wen = empty ? io_enq_bits_wen : ram_wen_io_deq_bits_MPORT_data; // @[Decoupled.scala 312:17 317:17 318:19]
  always @(posedge clock) begin
    if (ram_id_MPORT_en & ram_id_MPORT_mask) begin
      ram_id[ram_id_MPORT_addr] <= ram_id_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_addr_MPORT_en & ram_addr_MPORT_mask) begin
      ram_addr[ram_addr_MPORT_addr] <= ram_addr_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_len_MPORT_en & ram_len_MPORT_mask) begin
      ram_len[ram_len_MPORT_addr] <= ram_len_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_size_MPORT_en & ram_size_MPORT_mask) begin
      ram_size[ram_size_MPORT_addr] <= ram_size_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_burst_MPORT_en & ram_burst_MPORT_mask) begin
      ram_burst[ram_burst_MPORT_addr] <= ram_burst_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_lock_MPORT_en & ram_lock_MPORT_mask) begin
      ram_lock[ram_lock_MPORT_addr] <= ram_lock_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_cache_MPORT_en & ram_cache_MPORT_mask) begin
      ram_cache[ram_cache_MPORT_addr] <= ram_cache_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_prot_MPORT_en & ram_prot_MPORT_mask) begin
      ram_prot[ram_prot_MPORT_addr] <= ram_prot_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_qos_MPORT_en & ram_qos_MPORT_mask) begin
      ram_qos[ram_qos_MPORT_addr] <= ram_qos_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_echo_tl_state_size_MPORT_en & ram_echo_tl_state_size_MPORT_mask) begin
      ram_echo_tl_state_size[ram_echo_tl_state_size_MPORT_addr] <= ram_echo_tl_state_size_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_echo_tl_state_source_MPORT_en & ram_echo_tl_state_source_MPORT_mask) begin
      ram_echo_tl_state_source[ram_echo_tl_state_source_MPORT_addr] <= ram_echo_tl_state_source_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (ram_wen_MPORT_en & ram_wen_MPORT_mask) begin
      ram_wen[ram_wen_MPORT_addr] <= ram_wen_MPORT_data; // @[Decoupled.scala 275:95]
    end
    if (reset) begin // @[Decoupled.scala 278:27]
      maybe_full <= 1'h0; // @[Decoupled.scala 278:27]
    end else if (do_enq != do_deq) begin // @[Decoupled.scala 295:27]
      if (empty) begin // @[Decoupled.scala 317:17]
        if (io_deq_ready) begin // @[Decoupled.scala 320:26]
          maybe_full <= 1'h0; // @[Decoupled.scala 320:35]
        end else begin
          maybe_full <= _do_enq_T;
        end
      end else begin
        maybe_full <= _do_enq_T;
      end
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_MEM_INIT
  _RAND_0 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_id[initvar] = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_addr[initvar] = _RAND_1[30:0];
  _RAND_2 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_len[initvar] = _RAND_2[7:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_size[initvar] = _RAND_3[2:0];
  _RAND_4 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_burst[initvar] = _RAND_4[1:0];
  _RAND_5 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_lock[initvar] = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_cache[initvar] = _RAND_6[3:0];
  _RAND_7 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_prot[initvar] = _RAND_7[2:0];
  _RAND_8 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_qos[initvar] = _RAND_8[3:0];
  _RAND_9 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_echo_tl_state_size[initvar] = _RAND_9[3:0];
  _RAND_10 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_echo_tl_state_source[initvar] = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  for (initvar = 0; initvar < 1; initvar = initvar+1)
    ram_wen[initvar] = _RAND_11[0:0];
`endif // RANDOMIZE_MEM_INIT
`ifdef RANDOMIZE_REG_INIT
  _RAND_12 = {1{`RANDOM}};
  maybe_full = _RAND_12[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLToAXI4_1(
  input         clock,
  input         reset,
  output        auto_in_a_ready,
  input         auto_in_a_valid,
  input  [2:0]  auto_in_a_bits_opcode,
  input  [30:0] auto_in_a_bits_address,
  input  [7:0]  auto_in_a_bits_mask,
  input  [63:0] auto_in_a_bits_data,
  input         auto_in_d_ready,
  output        auto_in_d_valid,
  output [2:0]  auto_in_d_bits_opcode,
  output [2:0]  auto_in_d_bits_size,
  output        auto_in_d_bits_denied,
  output [63:0] auto_in_d_bits_data,
  output        auto_in_d_bits_corrupt,
  input         auto_out_aw_ready,
  output        auto_out_aw_valid,
  output        auto_out_aw_bits_id,
  output [30:0] auto_out_aw_bits_addr,
  output [7:0]  auto_out_aw_bits_len,
  output [2:0]  auto_out_aw_bits_size,
  output [1:0]  auto_out_aw_bits_burst,
  output        auto_out_aw_bits_lock,
  output [3:0]  auto_out_aw_bits_cache,
  output [2:0]  auto_out_aw_bits_prot,
  output [3:0]  auto_out_aw_bits_qos,
  output [3:0]  auto_out_aw_bits_echo_tl_state_size,
  output        auto_out_aw_bits_echo_tl_state_source,
  input         auto_out_w_ready,
  output        auto_out_w_valid,
  output [63:0] auto_out_w_bits_data,
  output [7:0]  auto_out_w_bits_strb,
  output        auto_out_w_bits_last,
  output        auto_out_b_ready,
  input         auto_out_b_valid,
  input  [1:0]  auto_out_b_bits_resp,
  input  [3:0]  auto_out_b_bits_echo_tl_state_size,
  input         auto_out_b_bits_echo_tl_state_source,
  input         auto_out_ar_ready,
  output        auto_out_ar_valid,
  output        auto_out_ar_bits_id,
  output [30:0] auto_out_ar_bits_addr,
  output [7:0]  auto_out_ar_bits_len,
  output [2:0]  auto_out_ar_bits_size,
  output [1:0]  auto_out_ar_bits_burst,
  output        auto_out_ar_bits_lock,
  output [3:0]  auto_out_ar_bits_cache,
  output [2:0]  auto_out_ar_bits_prot,
  output [3:0]  auto_out_ar_bits_qos,
  output [3:0]  auto_out_ar_bits_echo_tl_state_size,
  output        auto_out_ar_bits_echo_tl_state_source,
  output        auto_out_r_ready,
  input         auto_out_r_valid,
  input  [63:0] auto_out_r_bits_data,
  input  [1:0]  auto_out_r_bits_resp,
  input  [3:0]  auto_out_r_bits_echo_tl_state_size,
  input         auto_out_r_bits_echo_tl_state_source,
  input         auto_out_r_bits_last
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
`endif // RANDOMIZE_REG_INIT
  wire  monitor_clock; // @[Nodes.scala 24:25]
  wire  monitor_reset; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_opcode; // @[Nodes.scala 24:25]
  wire [30:0] monitor_io_in_a_bits_address; // @[Nodes.scala 24:25]
  wire [7:0] monitor_io_in_a_bits_mask; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_size; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_source; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_denied; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_bits_corrupt; // @[Nodes.scala 24:25]
  wire  deq_clock; // @[Decoupled.scala 377:21]
  wire  deq_reset; // @[Decoupled.scala 377:21]
  wire  deq_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  deq_io_enq_valid; // @[Decoupled.scala 377:21]
  wire [63:0] deq_io_enq_bits_data; // @[Decoupled.scala 377:21]
  wire [7:0] deq_io_enq_bits_strb; // @[Decoupled.scala 377:21]
  wire  deq_io_deq_ready; // @[Decoupled.scala 377:21]
  wire  deq_io_deq_valid; // @[Decoupled.scala 377:21]
  wire [63:0] deq_io_deq_bits_data; // @[Decoupled.scala 377:21]
  wire [7:0] deq_io_deq_bits_strb; // @[Decoupled.scala 377:21]
  wire  deq_io_deq_bits_last; // @[Decoupled.scala 377:21]
  wire  queue_arw_deq_clock; // @[Decoupled.scala 377:21]
  wire  queue_arw_deq_reset; // @[Decoupled.scala 377:21]
  wire  queue_arw_deq_io_enq_ready; // @[Decoupled.scala 377:21]
  wire  queue_arw_deq_io_enq_valid; // @[Decoupled.scala 377:21]
  wire [30:0] queue_arw_deq_io_enq_bits_addr; // @[Decoupled.scala 377:21]
  wire  queue_arw_deq_io_enq_bits_wen; // @[Decoupled.scala 377:21]
  wire  queue_arw_deq_io_deq_ready; // @[Decoupled.scala 377:21]
  wire  queue_arw_deq_io_deq_valid; // @[Decoupled.scala 377:21]
  wire  queue_arw_deq_io_deq_bits_id; // @[Decoupled.scala 377:21]
  wire [30:0] queue_arw_deq_io_deq_bits_addr; // @[Decoupled.scala 377:21]
  wire [7:0] queue_arw_deq_io_deq_bits_len; // @[Decoupled.scala 377:21]
  wire [2:0] queue_arw_deq_io_deq_bits_size; // @[Decoupled.scala 377:21]
  wire [1:0] queue_arw_deq_io_deq_bits_burst; // @[Decoupled.scala 377:21]
  wire  queue_arw_deq_io_deq_bits_lock; // @[Decoupled.scala 377:21]
  wire [3:0] queue_arw_deq_io_deq_bits_cache; // @[Decoupled.scala 377:21]
  wire [2:0] queue_arw_deq_io_deq_bits_prot; // @[Decoupled.scala 377:21]
  wire [3:0] queue_arw_deq_io_deq_bits_qos; // @[Decoupled.scala 377:21]
  wire [3:0] queue_arw_deq_io_deq_bits_echo_tl_state_size; // @[Decoupled.scala 377:21]
  wire  queue_arw_deq_io_deq_bits_echo_tl_state_source; // @[Decoupled.scala 377:21]
  wire  queue_arw_deq_io_deq_bits_wen; // @[Decoupled.scala 377:21]
  wire  a_isPut = ~auto_in_a_bits_opcode[2]; // @[Edges.scala 91:28]
  reg  count_1; // @[ToAXI4.scala 254:28]
  wire  idle = ~count_1; // @[ToAXI4.scala 256:26]
  reg [1:0] counter; // @[Edges.scala 228:27]
  wire  a_first = counter == 2'h0; // @[Edges.scala 230:25]
  wire  stall = count_1 & a_first; // @[ToAXI4.scala 195:49]
  wire  _bundleIn_0_a_ready_T = ~stall; // @[ToAXI4.scala 196:21]
  wire  out_arw_ready = queue_arw_deq_io_enq_ready; // @[ToAXI4.scala 147:25 Decoupled.scala 381:17]
  wire  out_w_ready = deq_io_enq_ready; // @[ToAXI4.scala 148:23 Decoupled.scala 381:17]
  wire  _bundleIn_0_a_ready_T_3 = a_isPut ? out_arw_ready & out_w_ready : out_arw_ready; // @[ToAXI4.scala 196:34]
  wire  bundleIn_0_a_ready = ~stall & _bundleIn_0_a_ready_T_3; // @[ToAXI4.scala 196:28]
  wire  _T = bundleIn_0_a_ready & auto_in_a_valid; // @[Decoupled.scala 52:35]
  wire [1:0] counter1 = counter - 2'h1; // @[Edges.scala 229:28]
  wire  queue_arw_bits_wen = queue_arw_deq_io_deq_bits_wen; // @[Decoupled.scala 417:19 418:14]
  wire  queue_arw_valid = queue_arw_deq_io_deq_valid; // @[Decoupled.scala 417:19 419:15]
  wire  _out_arw_valid_T_1 = _bundleIn_0_a_ready_T & auto_in_a_valid; // @[ToAXI4.scala 197:31]
  wire  _out_arw_valid_T_4 = a_isPut ? out_w_ready : 1'h1; // @[ToAXI4.scala 197:51]
  wire  out_arw_valid = _bundleIn_0_a_ready_T & auto_in_a_valid & _out_arw_valid_T_4; // @[ToAXI4.scala 197:45]
  reg  r_holds_d; // @[ToAXI4.scala 206:30]
  reg [2:0] b_delay; // @[ToAXI4.scala 209:24]
  wire  r_wins = auto_out_r_valid & b_delay != 3'h7 | r_holds_d; // @[ToAXI4.scala 215:57]
  wire  bundleOut_0_r_ready = auto_in_d_ready & r_wins; // @[ToAXI4.scala 217:33]
  wire  _T_2 = bundleOut_0_r_ready & auto_out_r_valid; // @[Decoupled.scala 52:35]
  wire  bundleOut_0_b_ready = auto_in_d_ready & ~r_wins; // @[ToAXI4.scala 218:33]
  wire [2:0] _b_delay_T_1 = b_delay + 3'h1; // @[ToAXI4.scala 211:28]
  wire  bundleIn_0_d_valid = r_wins ? auto_out_r_valid : auto_out_b_valid; // @[ToAXI4.scala 219:24]
  reg  r_first; // @[ToAXI4.scala 224:28]
  wire  _GEN_4 = _T_2 ? auto_out_r_bits_last : r_first; // @[ToAXI4.scala 225:27 224:28 225:37]
  wire  _r_denied_T = auto_out_r_bits_resp == 2'h3; // @[ToAXI4.scala 226:39]
  reg  r_denied_r; // @[Reg.scala 19:16]
  wire  _GEN_5 = r_first ? _r_denied_T : r_denied_r; // @[Reg.scala 19:16 20:{18,22}]
  wire  r_corrupt = auto_out_r_bits_resp != 2'h0; // @[ToAXI4.scala 227:39]
  wire  b_denied = auto_out_b_bits_resp != 2'h0; // @[ToAXI4.scala 228:39]
  wire  r_d_corrupt = r_corrupt | _GEN_5; // @[ToAXI4.scala 230:100]
  wire [2:0] r_d_size = auto_out_r_bits_echo_tl_state_size[2:0]; // @[Edges.scala 771:17 774:15]
  wire [2:0] b_d_size = auto_out_b_bits_echo_tl_state_size[2:0]; // @[Edges.scala 755:17 758:15]
  wire  d_last = r_wins ? auto_out_r_bits_last : 1'h1; // @[ToAXI4.scala 244:23]
  wire  inc = out_arw_ready & out_arw_valid; // @[Decoupled.scala 52:35]
  wire  _dec_T_1 = auto_in_d_ready & bundleIn_0_d_valid; // @[Decoupled.scala 52:35]
  wire  dec = d_last & _dec_T_1; // @[ToAXI4.scala 259:32]
  wire  _count_T_2 = count_1 + inc; // @[ToAXI4.scala 260:24]
  wire  _T_10 = ~reset; // @[ToAXI4.scala 262:16]
  TLMonitor_21 monitor ( // @[Nodes.scala 24:25]
    .clock(monitor_clock),
    .reset(monitor_reset),
    .io_in_a_ready(monitor_io_in_a_ready),
    .io_in_a_valid(monitor_io_in_a_valid),
    .io_in_a_bits_opcode(monitor_io_in_a_bits_opcode),
    .io_in_a_bits_address(monitor_io_in_a_bits_address),
    .io_in_a_bits_mask(monitor_io_in_a_bits_mask),
    .io_in_d_ready(monitor_io_in_d_ready),
    .io_in_d_valid(monitor_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_io_in_d_bits_opcode),
    .io_in_d_bits_size(monitor_io_in_d_bits_size),
    .io_in_d_bits_source(monitor_io_in_d_bits_source),
    .io_in_d_bits_denied(monitor_io_in_d_bits_denied),
    .io_in_d_bits_corrupt(monitor_io_in_d_bits_corrupt)
  );
  Queue_48 deq ( // @[Decoupled.scala 377:21]
    .clock(deq_clock),
    .reset(deq_reset),
    .io_enq_ready(deq_io_enq_ready),
    .io_enq_valid(deq_io_enq_valid),
    .io_enq_bits_data(deq_io_enq_bits_data),
    .io_enq_bits_strb(deq_io_enq_bits_strb),
    .io_deq_ready(deq_io_deq_ready),
    .io_deq_valid(deq_io_deq_valid),
    .io_deq_bits_data(deq_io_deq_bits_data),
    .io_deq_bits_strb(deq_io_deq_bits_strb),
    .io_deq_bits_last(deq_io_deq_bits_last)
  );
  Queue_49 queue_arw_deq ( // @[Decoupled.scala 377:21]
    .clock(queue_arw_deq_clock),
    .reset(queue_arw_deq_reset),
    .io_enq_ready(queue_arw_deq_io_enq_ready),
    .io_enq_valid(queue_arw_deq_io_enq_valid),
    .io_enq_bits_addr(queue_arw_deq_io_enq_bits_addr),
    .io_enq_bits_wen(queue_arw_deq_io_enq_bits_wen),
    .io_deq_ready(queue_arw_deq_io_deq_ready),
    .io_deq_valid(queue_arw_deq_io_deq_valid),
    .io_deq_bits_id(queue_arw_deq_io_deq_bits_id),
    .io_deq_bits_addr(queue_arw_deq_io_deq_bits_addr),
    .io_deq_bits_len(queue_arw_deq_io_deq_bits_len),
    .io_deq_bits_size(queue_arw_deq_io_deq_bits_size),
    .io_deq_bits_burst(queue_arw_deq_io_deq_bits_burst),
    .io_deq_bits_lock(queue_arw_deq_io_deq_bits_lock),
    .io_deq_bits_cache(queue_arw_deq_io_deq_bits_cache),
    .io_deq_bits_prot(queue_arw_deq_io_deq_bits_prot),
    .io_deq_bits_qos(queue_arw_deq_io_deq_bits_qos),
    .io_deq_bits_echo_tl_state_size(queue_arw_deq_io_deq_bits_echo_tl_state_size),
    .io_deq_bits_echo_tl_state_source(queue_arw_deq_io_deq_bits_echo_tl_state_source),
    .io_deq_bits_wen(queue_arw_deq_io_deq_bits_wen)
  );
  assign auto_in_a_ready = ~stall & _bundleIn_0_a_ready_T_3; // @[ToAXI4.scala 196:28]
  assign auto_in_d_valid = r_wins ? auto_out_r_valid : auto_out_b_valid; // @[ToAXI4.scala 219:24]
  assign auto_in_d_bits_opcode = r_wins ? 3'h1 : 3'h0; // @[ToAXI4.scala 237:23]
  assign auto_in_d_bits_size = r_wins ? r_d_size : b_d_size; // @[ToAXI4.scala 237:23]
  assign auto_in_d_bits_denied = r_wins ? _GEN_5 : b_denied; // @[ToAXI4.scala 237:23]
  assign auto_in_d_bits_data = auto_out_r_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_d_bits_corrupt = r_wins & r_d_corrupt; // @[ToAXI4.scala 237:23]
  assign auto_out_aw_valid = queue_arw_valid & queue_arw_bits_wen; // @[ToAXI4.scala 156:39]
  assign auto_out_aw_bits_id = queue_arw_deq_io_deq_bits_id; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_aw_bits_addr = queue_arw_deq_io_deq_bits_addr; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_aw_bits_len = queue_arw_deq_io_deq_bits_len; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_aw_bits_size = queue_arw_deq_io_deq_bits_size; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_aw_bits_burst = queue_arw_deq_io_deq_bits_burst; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_aw_bits_lock = queue_arw_deq_io_deq_bits_lock; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_aw_bits_cache = queue_arw_deq_io_deq_bits_cache; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_aw_bits_prot = queue_arw_deq_io_deq_bits_prot; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_aw_bits_qos = queue_arw_deq_io_deq_bits_qos; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_aw_bits_echo_tl_state_size = queue_arw_deq_io_deq_bits_echo_tl_state_size; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_aw_bits_echo_tl_state_source = queue_arw_deq_io_deq_bits_echo_tl_state_source; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_w_valid = deq_io_deq_valid; // @[Decoupled.scala 417:19 419:15]
  assign auto_out_w_bits_data = deq_io_deq_bits_data; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_w_bits_strb = deq_io_deq_bits_strb; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_w_bits_last = deq_io_deq_bits_last; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_b_ready = auto_in_d_ready & ~r_wins; // @[ToAXI4.scala 218:33]
  assign auto_out_ar_valid = queue_arw_valid & ~queue_arw_bits_wen; // @[ToAXI4.scala 155:39]
  assign auto_out_ar_bits_id = queue_arw_deq_io_deq_bits_id; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_ar_bits_addr = queue_arw_deq_io_deq_bits_addr; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_ar_bits_len = queue_arw_deq_io_deq_bits_len; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_ar_bits_size = queue_arw_deq_io_deq_bits_size; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_ar_bits_burst = queue_arw_deq_io_deq_bits_burst; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_ar_bits_lock = queue_arw_deq_io_deq_bits_lock; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_ar_bits_cache = queue_arw_deq_io_deq_bits_cache; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_ar_bits_prot = queue_arw_deq_io_deq_bits_prot; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_ar_bits_qos = queue_arw_deq_io_deq_bits_qos; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_ar_bits_echo_tl_state_size = queue_arw_deq_io_deq_bits_echo_tl_state_size; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_ar_bits_echo_tl_state_source = queue_arw_deq_io_deq_bits_echo_tl_state_source; // @[Decoupled.scala 417:19 418:14]
  assign auto_out_r_ready = auto_in_d_ready & r_wins; // @[ToAXI4.scala 217:33]
  assign monitor_clock = clock;
  assign monitor_reset = reset;
  assign monitor_io_in_a_ready = ~stall & _bundleIn_0_a_ready_T_3; // @[ToAXI4.scala 196:28]
  assign monitor_io_in_a_valid = auto_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_opcode = auto_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_mask = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_ready = auto_in_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_valid = r_wins ? auto_out_r_valid : auto_out_b_valid; // @[ToAXI4.scala 219:24]
  assign monitor_io_in_d_bits_opcode = r_wins ? 3'h1 : 3'h0; // @[ToAXI4.scala 237:23]
  assign monitor_io_in_d_bits_size = r_wins ? r_d_size : b_d_size; // @[ToAXI4.scala 237:23]
  assign monitor_io_in_d_bits_source = r_wins ? auto_out_r_bits_echo_tl_state_source :
    auto_out_b_bits_echo_tl_state_source; // @[ToAXI4.scala 237:23]
  assign monitor_io_in_d_bits_denied = r_wins ? _GEN_5 : b_denied; // @[ToAXI4.scala 237:23]
  assign monitor_io_in_d_bits_corrupt = r_wins & r_d_corrupt; // @[ToAXI4.scala 237:23]
  assign deq_clock = clock;
  assign deq_reset = reset;
  assign deq_io_enq_valid = _out_arw_valid_T_1 & a_isPut & out_arw_ready; // @[ToAXI4.scala 199:54]
  assign deq_io_enq_bits_data = auto_in_a_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign deq_io_enq_bits_strb = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign deq_io_deq_ready = auto_out_w_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign queue_arw_deq_clock = clock;
  assign queue_arw_deq_reset = reset;
  assign queue_arw_deq_io_enq_valid = _bundleIn_0_a_ready_T & auto_in_a_valid & _out_arw_valid_T_4; // @[ToAXI4.scala 197:45]
  assign queue_arw_deq_io_enq_bits_addr = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign queue_arw_deq_io_enq_bits_wen = ~auto_in_a_bits_opcode[2]; // @[Edges.scala 91:28]
  assign queue_arw_deq_io_deq_ready = queue_arw_bits_wen ? auto_out_aw_ready : auto_out_ar_ready; // @[ToAXI4.scala 157:29]
  always @(posedge clock) begin
    if (reset) begin // @[ToAXI4.scala 254:28]
      count_1 <= 1'h0; // @[ToAXI4.scala 254:28]
    end else begin
      count_1 <= _count_T_2 - dec; // @[ToAXI4.scala 260:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      counter <= 2'h0; // @[Edges.scala 228:27]
    end else if (_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        counter <= 2'h0;
      end else begin
        counter <= counter1;
      end
    end
    if (reset) begin // @[ToAXI4.scala 206:30]
      r_holds_d <= 1'h0; // @[ToAXI4.scala 206:30]
    end else if (_T_2) begin // @[ToAXI4.scala 207:27]
      r_holds_d <= ~auto_out_r_bits_last; // @[ToAXI4.scala 207:39]
    end
    if (auto_out_b_valid & ~bundleOut_0_b_ready) begin // @[ToAXI4.scala 210:42]
      b_delay <= _b_delay_T_1; // @[ToAXI4.scala 211:17]
    end else begin
      b_delay <= 3'h0; // @[ToAXI4.scala 213:17]
    end
    r_first <= reset | _GEN_4; // @[ToAXI4.scala 224:{28,28}]
    if (r_first) begin // @[Reg.scala 20:18]
      r_denied_r <= _r_denied_T; // @[Reg.scala 20:22]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~(~dec | count_1)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at ToAXI4.scala:262 assert (!dec || count =/= UInt(0))        // underflow\n"); // @[ToAXI4.scala 262:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~dec | count_1) & ~reset) begin
          $fatal; // @[ToAXI4.scala 262:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_10 & ~(~inc | idle)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at ToAXI4.scala:263 assert (!inc || count =/= UInt(maxCount)) // overflow\n"); // @[ToAXI4.scala 263:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~inc | idle) & _T_10) begin
          $fatal; // @[ToAXI4.scala 263:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  count_1 = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  counter = _RAND_1[1:0];
  _RAND_2 = {1{`RANDOM}};
  r_holds_d = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  b_delay = _RAND_3[2:0];
  _RAND_4 = {1{`RANDOM}};
  r_first = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  r_denied_r = _RAND_5[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLMonitor_22(
  input         clock,
  input         reset,
  input         io_in_a_ready,
  input         io_in_a_valid,
  input  [2:0]  io_in_a_bits_opcode,
  input  [15:0] io_in_a_bits_address,
  input  [7:0]  io_in_a_bits_mask,
  input         io_in_d_ready,
  input         io_in_d_valid,
  input  [2:0]  io_in_d_bits_opcode,
  input  [2:0]  io_in_d_bits_size
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
`endif // RANDOMIZE_REG_INIT
  wire [31:0] plusarg_reader_out; // @[PlusArg.scala 80:11]
  wire [31:0] plusarg_reader_1_out; // @[PlusArg.scala 80:11]
  wire  _T_2 = ~reset; // @[Monitor.scala 42:11]
  wire [15:0] _is_aligned_T = io_in_a_bits_address & 16'h7; // @[Edges.scala 20:16]
  wire  is_aligned = _is_aligned_T == 16'h0; // @[Edges.scala 20:24]
  wire [16:0] _T_7 = {1'b0,$signed(io_in_a_bits_address)}; // @[Parameters.scala 137:49]
  wire  _T_15 = io_in_a_bits_opcode == 3'h6; // @[Monitor.scala 81:25]
  wire [16:0] _T_26 = $signed(_T_7) & 17'sh10000; // @[Parameters.scala 137:52]
  wire  _T_27 = $signed(_T_26) == 17'sh0; // @[Parameters.scala 137:67]
  wire [7:0] _T_63 = ~io_in_a_bits_mask; // @[Monitor.scala 88:18]
  wire  _T_64 = _T_63 == 8'h0; // @[Monitor.scala 88:31]
  wire  _T_72 = io_in_a_bits_opcode == 3'h7; // @[Monitor.scala 92:25]
  wire  _T_133 = io_in_a_bits_opcode == 3'h4; // @[Monitor.scala 104:25]
  wire  _T_167 = io_in_a_bits_mask == 8'hff; // @[Monitor.scala 110:30]
  wire  _T_175 = io_in_a_bits_opcode == 3'h0; // @[Monitor.scala 114:25]
  wire  _T_211 = io_in_a_bits_opcode == 3'h1; // @[Monitor.scala 122:25]
  wire  _T_249 = io_in_a_bits_opcode == 3'h2; // @[Monitor.scala 130:25]
  wire  _T_282 = io_in_a_bits_opcode == 3'h3; // @[Monitor.scala 138:25]
  wire  _T_315 = io_in_a_bits_opcode == 3'h5; // @[Monitor.scala 146:25]
  wire  _T_352 = io_in_d_bits_opcode <= 3'h6; // @[Bundles.scala 42:24]
  wire  _T_356 = io_in_d_bits_opcode == 3'h6; // @[Monitor.scala 310:25]
  wire  _T_360 = io_in_d_bits_size >= 3'h3; // @[Monitor.scala 312:27]
  wire  _T_376 = io_in_d_bits_opcode == 3'h4; // @[Monitor.scala 318:25]
  wire  _T_404 = io_in_d_bits_opcode == 3'h5; // @[Monitor.scala 328:25]
  wire  _a_first_T = io_in_a_ready & io_in_a_valid; // @[Decoupled.scala 52:35]
  reg [1:0] a_first_counter; // @[Edges.scala 228:27]
  wire [1:0] a_first_counter1 = a_first_counter - 2'h1; // @[Edges.scala 229:28]
  wire  a_first = a_first_counter == 2'h0; // @[Edges.scala 230:25]
  reg [2:0] opcode; // @[Monitor.scala 384:22]
  reg [15:0] address; // @[Monitor.scala 388:22]
  wire  _T_498 = io_in_a_valid & ~a_first; // @[Monitor.scala 389:19]
  wire  _T_499 = io_in_a_bits_opcode == opcode; // @[Monitor.scala 390:32]
  wire  _T_515 = io_in_a_bits_address == address; // @[Monitor.scala 394:32]
  wire  _d_first_T = io_in_d_ready & io_in_d_valid; // @[Decoupled.scala 52:35]
  wire [11:0] _d_first_beats1_decode_T_1 = 12'h1f << io_in_d_bits_size; // @[package.scala 234:77]
  wire [4:0] _d_first_beats1_decode_T_3 = ~_d_first_beats1_decode_T_1[4:0]; // @[package.scala 234:46]
  wire [1:0] d_first_beats1_decode = _d_first_beats1_decode_T_3[4:3]; // @[Edges.scala 219:59]
  wire  d_first_beats1_opdata = io_in_d_bits_opcode[0]; // @[Edges.scala 105:36]
  reg [1:0] d_first_counter; // @[Edges.scala 228:27]
  wire [1:0] d_first_counter1 = d_first_counter - 2'h1; // @[Edges.scala 229:28]
  wire  d_first = d_first_counter == 2'h0; // @[Edges.scala 230:25]
  reg [2:0] opcode_1; // @[Monitor.scala 535:22]
  reg [2:0] size_1; // @[Monitor.scala 537:22]
  wire  _T_522 = io_in_d_valid & ~d_first; // @[Monitor.scala 541:19]
  wire  _T_523 = io_in_d_bits_opcode == opcode_1; // @[Monitor.scala 542:29]
  wire  _T_531 = io_in_d_bits_size == size_1; // @[Monitor.scala 544:29]
  reg  inflight; // @[Monitor.scala 611:27]
  reg [3:0] inflight_opcodes; // @[Monitor.scala 613:35]
  reg [3:0] inflight_sizes; // @[Monitor.scala 615:33]
  reg [1:0] a_first_counter_1; // @[Edges.scala 228:27]
  wire [1:0] a_first_counter1_1 = a_first_counter_1 - 2'h1; // @[Edges.scala 229:28]
  wire  a_first_1 = a_first_counter_1 == 2'h0; // @[Edges.scala 230:25]
  reg [1:0] d_first_counter_1; // @[Edges.scala 228:27]
  wire [1:0] d_first_counter1_1 = d_first_counter_1 - 2'h1; // @[Edges.scala 229:28]
  wire  d_first_1 = d_first_counter_1 == 2'h0; // @[Edges.scala 230:25]
  wire [15:0] _a_opcode_lookup_T_5 = 16'h10 - 16'h1; // @[Monitor.scala 609:57]
  wire [15:0] _GEN_62 = {{12'd0}, inflight_opcodes}; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_6 = _GEN_62 & _a_opcode_lookup_T_5; // @[Monitor.scala 634:97]
  wire [15:0] _a_opcode_lookup_T_7 = {{1'd0}, _a_opcode_lookup_T_6[15:1]}; // @[Monitor.scala 634:152]
  wire [15:0] _GEN_68 = {{12'd0}, inflight_sizes}; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_6 = _GEN_68 & _a_opcode_lookup_T_5; // @[Monitor.scala 638:91]
  wire [15:0] _a_size_lookup_T_7 = {{1'd0}, _a_size_lookup_T_6[15:1]}; // @[Monitor.scala 638:144]
  wire  _T_549 = io_in_a_valid & a_first_1; // @[Monitor.scala 648:26]
  wire [1:0] _GEN_15 = io_in_a_valid & a_first_1 ? 2'h1 : 2'h0; // @[Monitor.scala 648:71 649:22]
  wire  _T_552 = _a_first_T & a_first_1; // @[Monitor.scala 652:27]
  wire [3:0] _a_opcodes_set_interm_T = {io_in_a_bits_opcode, 1'h0}; // @[Monitor.scala 654:53]
  wire [3:0] _a_opcodes_set_interm_T_1 = _a_opcodes_set_interm_T | 4'h1; // @[Monitor.scala 654:61]
  wire [3:0] a_opcodes_set_interm = _a_first_T & a_first_1 ? _a_opcodes_set_interm_T_1 : 4'h0; // @[Monitor.scala 652:72 654:28]
  wire [18:0] _a_opcodes_set_T_1 = {{15'd0}, a_opcodes_set_interm}; // @[Monitor.scala 656:54]
  wire [3:0] a_sizes_set_interm = _a_first_T & a_first_1 ? 4'h7 : 4'h0; // @[Monitor.scala 652:72 655:28]
  wire [18:0] _a_sizes_set_T_1 = {{15'd0}, a_sizes_set_interm}; // @[Monitor.scala 657:52]
  wire  _T_556 = ~inflight; // @[Monitor.scala 658:17]
  wire [1:0] _GEN_16 = _a_first_T & a_first_1 ? 2'h1 : 2'h0; // @[Monitor.scala 652:72 653:28]
  wire [18:0] _GEN_19 = _a_first_T & a_first_1 ? _a_opcodes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 656:28]
  wire [18:0] _GEN_20 = _a_first_T & a_first_1 ? _a_sizes_set_T_1 : 19'h0; // @[Monitor.scala 652:72 657:28]
  wire  _T_560 = io_in_d_valid & d_first_1; // @[Monitor.scala 671:26]
  wire  _T_562 = ~_T_356; // @[Monitor.scala 671:74]
  wire  _T_563 = io_in_d_valid & d_first_1 & ~_T_356; // @[Monitor.scala 671:71]
  wire [1:0] _GEN_21 = io_in_d_valid & d_first_1 & ~_T_356 ? 2'h1 : 2'h0; // @[Monitor.scala 671:90 672:22]
  wire [30:0] _d_opcodes_clr_T_5 = {{15'd0}, _a_opcode_lookup_T_5}; // @[Monitor.scala 677:76]
  wire [1:0] _GEN_22 = _d_first_T & d_first_1 & _T_562 ? 2'h1 : 2'h0; // @[Monitor.scala 675:91 676:21]
  wire [30:0] _GEN_23 = _d_first_T & d_first_1 & _T_562 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 675:91 677:21]
  wire  _T_575 = inflight | _T_549; // @[Monitor.scala 682:49]
  wire [2:0] _GEN_27 = 3'h2 == io_in_a_bits_opcode ? 3'h1 : 3'h0; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_28 = 3'h3 == io_in_a_bits_opcode ? 3'h1 : _GEN_27; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_29 = 3'h4 == io_in_a_bits_opcode ? 3'h1 : _GEN_28; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_30 = 3'h5 == io_in_a_bits_opcode ? 3'h2 : _GEN_29; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_31 = 3'h6 == io_in_a_bits_opcode ? 3'h4 : _GEN_30; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_32 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_31; // @[Monitor.scala 685:{38,38}]
  wire [2:0] _GEN_39 = 3'h6 == io_in_a_bits_opcode ? 3'h5 : _GEN_30; // @[Monitor.scala 686:{39,39}]
  wire [2:0] _GEN_40 = 3'h7 == io_in_a_bits_opcode ? 3'h4 : _GEN_39; // @[Monitor.scala 686:{39,39}]
  wire  _T_580 = io_in_d_bits_opcode == _GEN_40; // @[Monitor.scala 686:39]
  wire  _T_581 = io_in_d_bits_opcode == _GEN_32 | _T_580; // @[Monitor.scala 685:77]
  wire  _T_585 = 3'h3 == io_in_d_bits_size; // @[Monitor.scala 687:36]
  wire [3:0] a_opcode_lookup = _a_opcode_lookup_T_7[3:0];
  wire [2:0] _GEN_43 = 3'h2 == a_opcode_lookup[2:0] ? 3'h1 : 3'h0; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_44 = 3'h3 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_43; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_45 = 3'h4 == a_opcode_lookup[2:0] ? 3'h1 : _GEN_44; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_46 = 3'h5 == a_opcode_lookup[2:0] ? 3'h2 : _GEN_45; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_47 = 3'h6 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_46; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_48 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_47; // @[Monitor.scala 689:{38,38}]
  wire [2:0] _GEN_55 = 3'h6 == a_opcode_lookup[2:0] ? 3'h5 : _GEN_46; // @[Monitor.scala 690:{38,38}]
  wire [2:0] _GEN_56 = 3'h7 == a_opcode_lookup[2:0] ? 3'h4 : _GEN_55; // @[Monitor.scala 690:{38,38}]
  wire  _T_592 = io_in_d_bits_opcode == _GEN_56; // @[Monitor.scala 690:38]
  wire  _T_593 = io_in_d_bits_opcode == _GEN_48 | _T_592; // @[Monitor.scala 689:72]
  wire [3:0] a_size_lookup = _a_size_lookup_T_7[3:0];
  wire [3:0] _GEN_72 = {{1'd0}, io_in_d_bits_size}; // @[Monitor.scala 691:36]
  wire  _T_597 = _GEN_72 == a_size_lookup; // @[Monitor.scala 691:36]
  wire  _T_607 = _T_560 & a_first_1 & io_in_a_valid & _T_562; // @[Monitor.scala 694:116]
  wire  _T_609 = ~io_in_d_ready | io_in_a_ready; // @[Monitor.scala 695:32]
  wire  a_set_wo_ready = _GEN_15[0];
  wire  d_clr_wo_ready = _GEN_21[0];
  wire  _T_616 = a_set_wo_ready != d_clr_wo_ready | ~(|a_set_wo_ready); // @[Monitor.scala 699:48]
  wire  a_set = _GEN_16[0];
  wire  d_clr = _GEN_22[0];
  wire [3:0] a_opcodes_set = _GEN_19[3:0];
  wire [3:0] _inflight_opcodes_T = inflight_opcodes | a_opcodes_set; // @[Monitor.scala 703:43]
  wire [3:0] d_opcodes_clr = _GEN_23[3:0];
  wire [3:0] _inflight_opcodes_T_1 = ~d_opcodes_clr; // @[Monitor.scala 703:62]
  wire [3:0] _inflight_opcodes_T_2 = _inflight_opcodes_T & _inflight_opcodes_T_1; // @[Monitor.scala 703:60]
  wire [3:0] a_sizes_set = _GEN_20[3:0];
  wire [3:0] _inflight_sizes_T = inflight_sizes | a_sizes_set; // @[Monitor.scala 704:39]
  wire [3:0] _inflight_sizes_T_2 = _inflight_sizes_T & _inflight_opcodes_T_1; // @[Monitor.scala 704:54]
  reg [31:0] watchdog; // @[Monitor.scala 706:27]
  wire  _T_625 = ~(|inflight) | plusarg_reader_out == 32'h0 | watchdog < plusarg_reader_out; // @[Monitor.scala 709:47]
  wire [31:0] _watchdog_T_1 = watchdog + 32'h1; // @[Monitor.scala 711:26]
  reg [3:0] inflight_sizes_1; // @[Monitor.scala 725:35]
  reg [1:0] d_first_counter_2; // @[Edges.scala 228:27]
  wire [1:0] d_first_counter1_2 = d_first_counter_2 - 2'h1; // @[Edges.scala 229:28]
  wire  d_first_2 = d_first_counter_2 == 2'h0; // @[Edges.scala 230:25]
  wire [15:0] _GEN_73 = {{12'd0}, inflight_sizes_1}; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_6 = _GEN_73 & _a_opcode_lookup_T_5; // @[Monitor.scala 747:93]
  wire [15:0] _c_size_lookup_T_7 = {{1'd0}, _c_size_lookup_T_6[15:1]}; // @[Monitor.scala 747:146]
  wire  _T_651 = io_in_d_valid & d_first_2 & _T_356; // @[Monitor.scala 779:71]
  wire [30:0] _GEN_69 = _d_first_T & d_first_2 & _T_356 ? _d_opcodes_clr_T_5 : 31'h0; // @[Monitor.scala 783:90 786:21]
  wire [3:0] c_size_lookup = _c_size_lookup_T_7[3:0];
  wire  _T_669 = _GEN_72 == c_size_lookup; // @[Monitor.scala 795:36]
  wire [3:0] d_sizes_clr_1 = _GEN_69[3:0];
  wire [3:0] _inflight_sizes_T_4 = ~d_sizes_clr_1; // @[Monitor.scala 811:58]
  wire [3:0] _inflight_sizes_T_5 = inflight_sizes_1 & _inflight_sizes_T_4; // @[Monitor.scala 811:56]
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_out)
  );
  plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0), .WIDTH(32)) plusarg_reader_1 ( // @[PlusArg.scala 80:11]
    .out(plusarg_reader_1_out)
  );
  always @(posedge clock) begin
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter <= 2'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first) begin // @[Edges.scala 235:21]
        a_first_counter <= 2'h0;
      end else begin
        a_first_counter <= a_first_counter1;
      end
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      opcode <= io_in_a_bits_opcode; // @[Monitor.scala 397:15]
    end
    if (_a_first_T & a_first) begin // @[Monitor.scala 396:32]
      address <= io_in_a_bits_address; // @[Monitor.scala 401:15]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter <= 2'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first) begin // @[Edges.scala 235:21]
        if (d_first_beats1_opdata) begin // @[Edges.scala 220:14]
          d_first_counter <= d_first_beats1_decode;
        end else begin
          d_first_counter <= 2'h0;
        end
      end else begin
        d_first_counter <= d_first_counter1;
      end
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      opcode_1 <= io_in_d_bits_opcode; // @[Monitor.scala 550:15]
    end
    if (_d_first_T & d_first) begin // @[Monitor.scala 549:32]
      size_1 <= io_in_d_bits_size; // @[Monitor.scala 552:15]
    end
    if (reset) begin // @[Monitor.scala 611:27]
      inflight <= 1'h0; // @[Monitor.scala 611:27]
    end else begin
      inflight <= (inflight | a_set) & ~d_clr; // @[Monitor.scala 702:14]
    end
    if (reset) begin // @[Monitor.scala 613:35]
      inflight_opcodes <= 4'h0; // @[Monitor.scala 613:35]
    end else begin
      inflight_opcodes <= _inflight_opcodes_T_2; // @[Monitor.scala 703:22]
    end
    if (reset) begin // @[Monitor.scala 615:33]
      inflight_sizes <= 4'h0; // @[Monitor.scala 615:33]
    end else begin
      inflight_sizes <= _inflight_sizes_T_2; // @[Monitor.scala 704:20]
    end
    if (reset) begin // @[Edges.scala 228:27]
      a_first_counter_1 <= 2'h0; // @[Edges.scala 228:27]
    end else if (_a_first_T) begin // @[Edges.scala 234:17]
      if (a_first_1) begin // @[Edges.scala 235:21]
        a_first_counter_1 <= 2'h0;
      end else begin
        a_first_counter_1 <= a_first_counter1_1;
      end
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_1 <= 2'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_1) begin // @[Edges.scala 235:21]
        if (d_first_beats1_opdata) begin // @[Edges.scala 220:14]
          d_first_counter_1 <= d_first_beats1_decode;
        end else begin
          d_first_counter_1 <= 2'h0;
        end
      end else begin
        d_first_counter_1 <= d_first_counter1_1;
      end
    end
    if (reset) begin // @[Monitor.scala 706:27]
      watchdog <= 32'h0; // @[Monitor.scala 706:27]
    end else if (_a_first_T | _d_first_T) begin // @[Monitor.scala 712:47]
      watchdog <= 32'h0; // @[Monitor.scala 712:58]
    end else begin
      watchdog <= _watchdog_T_1; // @[Monitor.scala 711:14]
    end
    if (reset) begin // @[Monitor.scala 725:35]
      inflight_sizes_1 <= 4'h0; // @[Monitor.scala 725:35]
    end else begin
      inflight_sizes_1 <= _inflight_sizes_T_5; // @[Monitor.scala 811:22]
    end
    if (reset) begin // @[Edges.scala 228:27]
      d_first_counter_2 <= 2'h0; // @[Edges.scala 228:27]
    end else if (_d_first_T) begin // @[Edges.scala 234:17]
      if (d_first_2) begin // @[Edges.scala 235:21]
        if (d_first_beats1_opdata) begin // @[Edges.scala 220:14]
          d_first_counter_2 <= d_first_beats1_decode;
        end else begin
          d_first_counter_2 <= 2'h0;
        end
      end else begin
        d_first_counter_2 <= d_first_counter1_2;
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquireBlock from a client which does not support Probe (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock address not aligned to size (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_15 & ~reset & ~_T_64) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquireBlock contains invalid mask (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_64 & (io_in_a_valid & _T_15 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries AcquirePerm from a client which does not support Probe (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm address not aligned to size (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_72 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm requests NtoB (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_72 & ~reset & ~_T_64) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel AcquirePerm contains invalid mask (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_64 & (io_in_a_valid & _T_72 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~_T_27) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Get type which slave claims it can't support (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_27 & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get address not aligned to size (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_133 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Get contains invalid mask (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_133 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_175 & ~reset & ~_T_27) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutFull type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_27 & (io_in_a_valid & _T_175 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_175 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull address not aligned to size (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_175 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_175 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutFull contains invalid mask (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_175 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_211 & ~reset & ~_T_27) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries PutPartial type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_27 & (io_in_a_valid & _T_211 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_211 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel PutPartial address not aligned to size (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_211 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_249 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Arithmetic type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_249 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_249 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic address not aligned to size (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_249 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_249 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Arithmetic contains invalid mask (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_249 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Logical type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical address not aligned to size (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_282 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_282 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Logical contains invalid mask (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_282 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_315 & ~reset) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel carries Hint type which is unexpected using diplomatic parameters (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_a_valid & _T_315 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_315 & ~reset & ~is_aligned) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint address not aligned to size (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~is_aligned & (io_in_a_valid & _T_315 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_a_valid & _T_315 & ~reset & ~_T_167) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel Hint contains invalid mask (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_167 & (io_in_a_valid & _T_315 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_2 & ~_T_352) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel has invalid opcode (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_352 & (io_in_d_valid & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_356 & _T_2 & ~_T_360) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel ReleaseAck smaller than a beat (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_360 & (io_in_d_valid & _T_356 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_376 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant carries invalid sink ID (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_376 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_376 & _T_2 & ~_T_360) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel Grant smaller than a beat (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_360 & (io_in_d_valid & _T_376 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_404 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData carries invalid sink ID (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (io_in_d_valid & _T_404 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (io_in_d_valid & _T_404 & _T_2 & ~_T_360) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel GrantData smaller than a beat (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_360 & (io_in_d_valid & _T_404 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_498 & ~reset & ~_T_499) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel opcode changed within multibeat operation (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_499 & (_T_498 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_498 & ~reset & ~_T_515) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel address changed with multibeat operation (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_515 & (_T_498 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_522 & _T_2 & ~_T_523) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel opcode changed within multibeat operation (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_523 & (_T_522 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_522 & _T_2 & ~_T_531) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel size changed within multibeat operation (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_531 & (_T_522 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_552 & ~reset & ~_T_556) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' channel re-used a source ID (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_556 & (_T_552 & ~reset)) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_563 & _T_2 & ~_T_575) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_575 & (_T_563 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_563 & _T_549 & _T_2 & ~_T_581) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_581 & (_T_563 & _T_549 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_563 & _T_549 & _T_2 & ~_T_585) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_585 & (_T_563 & _T_549 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_563 & ~_T_549 & _T_2 & ~_T_593) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper opcode response (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_593 & (_T_563 & ~_T_549 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_563 & ~_T_549 & _T_2 & ~_T_597) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_597 & (_T_563 & ~_T_549 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_607 & _T_2 & ~_T_609) begin
          $fwrite(32'h80000002,"Assertion failed: ready check\n    at Monitor.scala:49 assert(cond, message)\n"); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_609 & (_T_607 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_2 & ~_T_616) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'A' and 'D' concurrent, despite minlatency 1 (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_616 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_625) begin
          $fwrite(32'h80000002,
            "Assertion failed: TileLink timeout expired (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:42 assert(cond, message)\n"
            ); // @[Monitor.scala 42:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_625 & ~reset) begin
          $fatal; // @[Monitor.scala 42:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_651 & _T_2) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel acknowledged for nothing inflight (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (_T_651 & _T_2) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_651 & _T_2 & ~_T_669) begin
          $fwrite(32'h80000002,
            "Assertion failed: 'D' channel contains improper response size (connected at Rift2Link.scala:188:58)\n    at Monitor.scala:49 assert(cond, message)\n"
            ); // @[Monitor.scala 49:11]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~_T_669 & (_T_651 & _T_2)) begin
          $fatal; // @[Monitor.scala 49:11]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  a_first_counter = _RAND_0[1:0];
  _RAND_1 = {1{`RANDOM}};
  opcode = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  address = _RAND_2[15:0];
  _RAND_3 = {1{`RANDOM}};
  d_first_counter = _RAND_3[1:0];
  _RAND_4 = {1{`RANDOM}};
  opcode_1 = _RAND_4[2:0];
  _RAND_5 = {1{`RANDOM}};
  size_1 = _RAND_5[2:0];
  _RAND_6 = {1{`RANDOM}};
  inflight = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  inflight_opcodes = _RAND_7[3:0];
  _RAND_8 = {1{`RANDOM}};
  inflight_sizes = _RAND_8[3:0];
  _RAND_9 = {1{`RANDOM}};
  a_first_counter_1 = _RAND_9[1:0];
  _RAND_10 = {1{`RANDOM}};
  d_first_counter_1 = _RAND_10[1:0];
  _RAND_11 = {1{`RANDOM}};
  watchdog = _RAND_11[31:0];
  _RAND_12 = {1{`RANDOM}};
  inflight_sizes_1 = _RAND_12[3:0];
  _RAND_13 = {1{`RANDOM}};
  d_first_counter_2 = _RAND_13[1:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Repeater_2(
  input         clock,
  input         reset,
  input         io_repeat,
  output        io_full,
  output        io_enq_ready,
  input         io_enq_valid,
  input  [2:0]  io_enq_bits_opcode,
  input  [15:0] io_enq_bits_address,
  input  [7:0]  io_enq_bits_mask,
  input         io_deq_ready,
  output        io_deq_valid,
  output [2:0]  io_deq_bits_opcode,
  output [15:0] io_deq_bits_address,
  output [7:0]  io_deq_bits_mask
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
`endif // RANDOMIZE_REG_INIT
  reg  full; // @[Repeater.scala 19:21]
  reg [2:0] saved_opcode; // @[Repeater.scala 20:18]
  reg [15:0] saved_address; // @[Repeater.scala 20:18]
  reg [7:0] saved_mask; // @[Repeater.scala 20:18]
  wire  _T = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_0 = _T & io_repeat | full; // @[Repeater.scala 19:21 28:{38,45}]
  wire  _T_2 = io_deq_ready & io_deq_valid; // @[Decoupled.scala 52:35]
  assign io_full = full; // @[Repeater.scala 26:11]
  assign io_enq_ready = io_deq_ready & ~full; // @[Repeater.scala 24:32]
  assign io_deq_valid = io_enq_valid | full; // @[Repeater.scala 23:32]
  assign io_deq_bits_opcode = full ? saved_opcode : io_enq_bits_opcode; // @[Repeater.scala 25:21]
  assign io_deq_bits_address = full ? saved_address : io_enq_bits_address; // @[Repeater.scala 25:21]
  assign io_deq_bits_mask = full ? saved_mask : io_enq_bits_mask; // @[Repeater.scala 25:21]
  always @(posedge clock) begin
    if (reset) begin // @[Repeater.scala 19:21]
      full <= 1'h0; // @[Repeater.scala 19:21]
    end else if (_T_2 & ~io_repeat) begin // @[Repeater.scala 29:38]
      full <= 1'h0; // @[Repeater.scala 29:45]
    end else begin
      full <= _GEN_0;
    end
    if (_T & io_repeat) begin // @[Repeater.scala 28:38]
      saved_opcode <= io_enq_bits_opcode; // @[Repeater.scala 28:62]
    end
    if (_T & io_repeat) begin // @[Repeater.scala 28:38]
      saved_address <= io_enq_bits_address; // @[Repeater.scala 28:62]
    end
    if (_T & io_repeat) begin // @[Repeater.scala 28:38]
      saved_mask <= io_enq_bits_mask; // @[Repeater.scala 28:62]
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  full = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  saved_opcode = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  saved_address = _RAND_2[15:0];
  _RAND_3 = {1{`RANDOM}};
  saved_mask = _RAND_3[7:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module TLFragmenter_1(
  input         clock,
  input         reset,
  output        auto_in_a_ready,
  input         auto_in_a_valid,
  input  [2:0]  auto_in_a_bits_opcode,
  input  [15:0] auto_in_a_bits_address,
  input  [7:0]  auto_in_a_bits_mask,
  input  [63:0] auto_in_a_bits_data,
  input         auto_in_d_ready,
  output        auto_in_d_valid,
  output [2:0]  auto_in_d_bits_opcode,
  output [2:0]  auto_in_d_bits_size,
  output [63:0] auto_in_d_bits_data,
  input         auto_out_a_ready,
  output        auto_out_a_valid,
  output [2:0]  auto_out_a_bits_opcode,
  output [2:0]  auto_out_a_bits_source,
  output [15:0] auto_out_a_bits_address,
  output [7:0]  auto_out_a_bits_mask,
  output [63:0] auto_out_a_bits_data,
  output        auto_out_d_ready,
  input         auto_out_d_valid,
  input  [2:0]  auto_out_d_bits_opcode,
  input  [1:0]  auto_out_d_bits_size,
  input  [2:0]  auto_out_d_bits_source,
  input  [63:0] auto_out_d_bits_data
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
`endif // RANDOMIZE_REG_INIT
  wire  monitor_clock; // @[Nodes.scala 24:25]
  wire  monitor_reset; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_a_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_a_bits_opcode; // @[Nodes.scala 24:25]
  wire [15:0] monitor_io_in_a_bits_address; // @[Nodes.scala 24:25]
  wire [7:0] monitor_io_in_a_bits_mask; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_ready; // @[Nodes.scala 24:25]
  wire  monitor_io_in_d_valid; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_opcode; // @[Nodes.scala 24:25]
  wire [2:0] monitor_io_in_d_bits_size; // @[Nodes.scala 24:25]
  wire  repeater_clock; // @[Fragmenter.scala 262:30]
  wire  repeater_reset; // @[Fragmenter.scala 262:30]
  wire  repeater_io_repeat; // @[Fragmenter.scala 262:30]
  wire  repeater_io_full; // @[Fragmenter.scala 262:30]
  wire  repeater_io_enq_ready; // @[Fragmenter.scala 262:30]
  wire  repeater_io_enq_valid; // @[Fragmenter.scala 262:30]
  wire [2:0] repeater_io_enq_bits_opcode; // @[Fragmenter.scala 262:30]
  wire [15:0] repeater_io_enq_bits_address; // @[Fragmenter.scala 262:30]
  wire [7:0] repeater_io_enq_bits_mask; // @[Fragmenter.scala 262:30]
  wire  repeater_io_deq_ready; // @[Fragmenter.scala 262:30]
  wire  repeater_io_deq_valid; // @[Fragmenter.scala 262:30]
  wire [2:0] repeater_io_deq_bits_opcode; // @[Fragmenter.scala 262:30]
  wire [15:0] repeater_io_deq_bits_address; // @[Fragmenter.scala 262:30]
  wire [7:0] repeater_io_deq_bits_mask; // @[Fragmenter.scala 262:30]
  reg [1:0] acknum; // @[Fragmenter.scala 189:29]
  reg [2:0] dOrig; // @[Fragmenter.scala 190:24]
  reg  dToggle; // @[Fragmenter.scala 191:30]
  wire [1:0] dFragnum = auto_out_d_bits_source[1:0]; // @[Fragmenter.scala 192:41]
  wire  dFirst = acknum == 2'h0; // @[Fragmenter.scala 193:29]
  wire  dLast = dFragnum == 2'h0; // @[Fragmenter.scala 194:30]
  wire [3:0] dsizeOH = 4'h1 << auto_out_d_bits_size; // @[OneHot.scala 64:12]
  wire [5:0] _dsizeOH1_T_1 = 6'h7 << auto_out_d_bits_size; // @[package.scala 234:77]
  wire [2:0] dsizeOH1 = ~_dsizeOH1_T_1[2:0]; // @[package.scala 234:46]
  wire  dHasData = auto_out_d_bits_opcode[0]; // @[Edges.scala 105:36]
  wire  _T_5 = ~reset; // @[Fragmenter.scala 202:16]
  wire  ack_decrement = dHasData | dsizeOH[3]; // @[Fragmenter.scala 204:32]
  wire [4:0] _dFirst_size_T = {dFragnum, 3'h0}; // @[Fragmenter.scala 206:47]
  wire [4:0] _GEN_7 = {{2'd0}, dsizeOH1}; // @[Fragmenter.scala 206:69]
  wire [4:0] _dFirst_size_T_1 = _dFirst_size_T | _GEN_7; // @[Fragmenter.scala 206:69]
  wire [5:0] _dFirst_size_T_2 = {_dFirst_size_T_1, 1'h0}; // @[package.scala 232:35]
  wire [5:0] _dFirst_size_T_3 = _dFirst_size_T_2 | 6'h1; // @[package.scala 232:40]
  wire [5:0] _dFirst_size_T_4 = {1'h0,_dFirst_size_T_1}; // @[Cat.scala 33:92]
  wire [5:0] _dFirst_size_T_5 = ~_dFirst_size_T_4; // @[package.scala 232:53]
  wire [5:0] _dFirst_size_T_6 = _dFirst_size_T_3 & _dFirst_size_T_5; // @[package.scala 232:51]
  wire [1:0] dFirst_size_hi = _dFirst_size_T_6[5:4]; // @[OneHot.scala 30:18]
  wire [3:0] dFirst_size_lo = _dFirst_size_T_6[3:0]; // @[OneHot.scala 31:18]
  wire  _dFirst_size_T_7 = |dFirst_size_hi; // @[OneHot.scala 32:14]
  wire [3:0] _GEN_8 = {{2'd0}, dFirst_size_hi}; // @[OneHot.scala 32:28]
  wire [3:0] _dFirst_size_T_8 = _GEN_8 | dFirst_size_lo; // @[OneHot.scala 32:28]
  wire [1:0] dFirst_size_hi_1 = _dFirst_size_T_8[3:2]; // @[OneHot.scala 30:18]
  wire [1:0] dFirst_size_lo_1 = _dFirst_size_T_8[1:0]; // @[OneHot.scala 31:18]
  wire  _dFirst_size_T_9 = |dFirst_size_hi_1; // @[OneHot.scala 32:14]
  wire [1:0] _dFirst_size_T_10 = dFirst_size_hi_1 | dFirst_size_lo_1; // @[OneHot.scala 32:28]
  wire [2:0] dFirst_size = {_dFirst_size_T_7,_dFirst_size_T_9,_dFirst_size_T_10[1]}; // @[Cat.scala 33:92]
  wire  drop = ~dHasData & ~dLast; // @[Fragmenter.scala 222:30]
  wire  bundleOut_0_d_ready = auto_in_d_ready | drop; // @[Fragmenter.scala 223:35]
  wire  _T_7 = bundleOut_0_d_ready & auto_out_d_valid; // @[Decoupled.scala 52:35]
  wire [1:0] _GEN_9 = {{1'd0}, ack_decrement}; // @[Fragmenter.scala 209:55]
  wire [1:0] _acknum_T_1 = acknum - _GEN_9; // @[Fragmenter.scala 209:55]
  wire  aHasData = ~repeater_io_deq_bits_opcode[2]; // @[Edges.scala 91:28]
  reg [1:0] gennum; // @[Fragmenter.scala 291:29]
  wire  aFirst = gennum == 2'h0; // @[Fragmenter.scala 292:29]
  wire [1:0] _old_gennum1_T_2 = gennum - 2'h1; // @[Fragmenter.scala 293:79]
  wire [1:0] old_gennum1 = aFirst ? 2'h0 : _old_gennum1_T_2; // @[Fragmenter.scala 293:30]
  wire [1:0] _new_gennum_T = ~old_gennum1; // @[Fragmenter.scala 294:28]
  wire [1:0] new_gennum = ~_new_gennum_T; // @[Fragmenter.scala 294:26]
  reg  aToggle_r; // @[Reg.scala 19:16]
  wire  _GEN_5 = aFirst ? dToggle : aToggle_r; // @[Reg.scala 19:16 20:{18,22}]
  wire  aToggle = ~_GEN_5; // @[Fragmenter.scala 297:23]
  wire  bundleOut_0_a_valid = repeater_io_deq_valid; // @[Nodes.scala 1207:84 Fragmenter.scala 303:15]
  wire  _T_8 = auto_out_a_ready & bundleOut_0_a_valid; // @[Decoupled.scala 52:35]
  wire  _repeater_io_repeat_T = ~aHasData; // @[Fragmenter.scala 302:31]
  wire [4:0] _bundleOut_0_a_bits_address_T = {old_gennum1, 3'h0}; // @[Fragmenter.scala 304:65]
  wire [4:0] _bundleOut_0_a_bits_address_T_2 = _bundleOut_0_a_bits_address_T | 5'h18; // @[Fragmenter.scala 304:88]
  wire [4:0] _bundleOut_0_a_bits_address_T_3 = _bundleOut_0_a_bits_address_T_2 | 5'h7; // @[Fragmenter.scala 304:100]
  wire [4:0] _bundleOut_0_a_bits_address_T_4 = _bundleOut_0_a_bits_address_T_3 | 5'h7; // @[Fragmenter.scala 304:111]
  wire [4:0] _bundleOut_0_a_bits_address_T_5 = ~_bundleOut_0_a_bits_address_T_4; // @[Fragmenter.scala 304:51]
  wire [15:0] _GEN_10 = {{11'd0}, _bundleOut_0_a_bits_address_T_5}; // @[Fragmenter.scala 304:49]
  wire [3:0] _bundleOut_0_a_bits_source_T = {1'h0,aToggle,new_gennum}; // @[Cat.scala 33:92]
  wire  _T_9 = ~repeater_io_full; // @[Fragmenter.scala 309:17]
  TLMonitor_22 monitor ( // @[Nodes.scala 24:25]
    .clock(monitor_clock),
    .reset(monitor_reset),
    .io_in_a_ready(monitor_io_in_a_ready),
    .io_in_a_valid(monitor_io_in_a_valid),
    .io_in_a_bits_opcode(monitor_io_in_a_bits_opcode),
    .io_in_a_bits_address(monitor_io_in_a_bits_address),
    .io_in_a_bits_mask(monitor_io_in_a_bits_mask),
    .io_in_d_ready(monitor_io_in_d_ready),
    .io_in_d_valid(monitor_io_in_d_valid),
    .io_in_d_bits_opcode(monitor_io_in_d_bits_opcode),
    .io_in_d_bits_size(monitor_io_in_d_bits_size)
  );
  Repeater_2 repeater ( // @[Fragmenter.scala 262:30]
    .clock(repeater_clock),
    .reset(repeater_reset),
    .io_repeat(repeater_io_repeat),
    .io_full(repeater_io_full),
    .io_enq_ready(repeater_io_enq_ready),
    .io_enq_valid(repeater_io_enq_valid),
    .io_enq_bits_opcode(repeater_io_enq_bits_opcode),
    .io_enq_bits_address(repeater_io_enq_bits_address),
    .io_enq_bits_mask(repeater_io_enq_bits_mask),
    .io_deq_ready(repeater_io_deq_ready),
    .io_deq_valid(repeater_io_deq_valid),
    .io_deq_bits_opcode(repeater_io_deq_bits_opcode),
    .io_deq_bits_address(repeater_io_deq_bits_address),
    .io_deq_bits_mask(repeater_io_deq_bits_mask)
  );
  assign auto_in_a_ready = repeater_io_enq_ready; // @[Nodes.scala 1210:84 Fragmenter.scala 263:25]
  assign auto_in_d_valid = auto_out_d_valid & ~drop; // @[Fragmenter.scala 224:36]
  assign auto_in_d_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_in_d_bits_size = dFirst ? dFirst_size : dOrig; // @[Fragmenter.scala 227:32]
  assign auto_in_d_bits_data = auto_out_d_bits_data; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign auto_out_a_valid = repeater_io_deq_valid; // @[Nodes.scala 1207:84 Fragmenter.scala 303:15]
  assign auto_out_a_bits_opcode = repeater_io_deq_bits_opcode; // @[Nodes.scala 1207:84 Fragmenter.scala 303:15]
  assign auto_out_a_bits_source = _bundleOut_0_a_bits_source_T[2:0]; // @[Nodes.scala 1207:84 Fragmenter.scala 305:27]
  assign auto_out_a_bits_address = repeater_io_deq_bits_address | _GEN_10; // @[Fragmenter.scala 304:49]
  assign auto_out_a_bits_mask = repeater_io_full ? 8'hff : auto_in_a_bits_mask; // @[Fragmenter.scala 313:31]
  assign auto_out_a_bits_data = auto_in_a_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign auto_out_d_ready = auto_in_d_ready | drop; // @[Fragmenter.scala 223:35]
  assign monitor_clock = clock;
  assign monitor_reset = reset;
  assign monitor_io_in_a_ready = repeater_io_enq_ready; // @[Nodes.scala 1210:84 Fragmenter.scala 263:25]
  assign monitor_io_in_a_valid = auto_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_opcode = auto_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_a_bits_mask = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_ready = auto_in_d_ready; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign monitor_io_in_d_valid = auto_out_d_valid & ~drop; // @[Fragmenter.scala 224:36]
  assign monitor_io_in_d_bits_opcode = auto_out_d_bits_opcode; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  assign monitor_io_in_d_bits_size = dFirst ? dFirst_size : dOrig; // @[Fragmenter.scala 227:32]
  assign repeater_clock = clock;
  assign repeater_reset = reset;
  assign repeater_io_repeat = ~aHasData & new_gennum != 2'h0; // @[Fragmenter.scala 302:41]
  assign repeater_io_enq_valid = auto_in_a_valid; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign repeater_io_enq_bits_opcode = auto_in_a_bits_opcode; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign repeater_io_enq_bits_address = auto_in_a_bits_address; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign repeater_io_enq_bits_mask = auto_in_a_bits_mask; // @[Nodes.scala 1210:84 LazyModule.scala 309:16]
  assign repeater_io_deq_ready = auto_out_a_ready; // @[Nodes.scala 1207:84 LazyModule.scala 311:12]
  always @(posedge clock) begin
    if (reset) begin // @[Fragmenter.scala 189:29]
      acknum <= 2'h0; // @[Fragmenter.scala 189:29]
    end else if (_T_7) begin // @[Fragmenter.scala 208:29]
      if (dFirst) begin // @[Fragmenter.scala 209:24]
        acknum <= dFragnum;
      end else begin
        acknum <= _acknum_T_1;
      end
    end
    if (_T_7) begin // @[Fragmenter.scala 208:29]
      if (dFirst) begin // @[Fragmenter.scala 210:25]
        dOrig <= dFirst_size; // @[Fragmenter.scala 211:19]
      end
    end
    if (reset) begin // @[Fragmenter.scala 191:30]
      dToggle <= 1'h0; // @[Fragmenter.scala 191:30]
    end else if (_T_7) begin // @[Fragmenter.scala 208:29]
      if (dFirst) begin // @[Fragmenter.scala 210:25]
        dToggle <= auto_out_d_bits_source[2]; // @[Fragmenter.scala 212:21]
      end
    end
    if (reset) begin // @[Fragmenter.scala 291:29]
      gennum <= 2'h0; // @[Fragmenter.scala 291:29]
    end else if (_T_8) begin // @[Fragmenter.scala 300:29]
      gennum <= new_gennum; // @[Fragmenter.scala 300:38]
    end
    if (aFirst) begin // @[Reg.scala 20:18]
      aToggle_r <= dToggle; // @[Reg.scala 20:22]
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_5 & ~(~repeater_io_full | _repeater_io_repeat_T)) begin
          $fwrite(32'h80000002,"Assertion failed\n    at Fragmenter.scala:309 assert (!repeater.io.full || !aHasData)\n"
            ); // @[Fragmenter.scala 309:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(~repeater_io_full | _repeater_io_repeat_T) & _T_5) begin
          $fatal; // @[Fragmenter.scala 309:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (_T_5 & ~(_T_9 | repeater_io_deq_bits_mask == 8'hff)) begin
          $fwrite(32'h80000002,
            "Assertion failed\n    at Fragmenter.scala:312 assert (!repeater.io.full || in_a.bits.mask === fullMask)\n"
            ); // @[Fragmenter.scala 312:16]
        end
    `ifdef PRINTF_COND
      end
    `endif
    `endif // SYNTHESIS
    `ifndef SYNTHESIS
    `ifdef STOP_COND
      if (`STOP_COND) begin
    `endif
        if (~(_T_9 | repeater_io_deq_bits_mask == 8'hff) & _T_5) begin
          $fatal; // @[Fragmenter.scala 312:16]
        end
    `ifdef STOP_COND
      end
    `endif
    `endif // SYNTHESIS
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  acknum = _RAND_0[1:0];
  _RAND_1 = {1{`RANDOM}};
  dOrig = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  dToggle = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  gennum = _RAND_3[1:0];
  _RAND_4 = {1{`RANDOM}};
  aToggle_r = _RAND_4[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module Rift2LinkB(
  input          clock,
  input          reset,
  input          io_rtc_clock,
  input          io_JtagIO_TRSTn,
  input          io_JtagIO_TCK,
  input          io_JtagIO_TMS,
  input          io_JtagIO_TDI,
  output         io_JtagIO_TDO,
  output         io_JtagIO_TDO_driven,
  output         io_ndreset,
  input          io_interrupt_0,
  input          io_interrupt_1,
  input          io_interrupt_2,
  input          io_interrupt_3,
  input          io_interrupt_4,
  input          io_interrupt_5,
  input          io_interrupt_6,
  input          io_interrupt_7,
  input          io_interrupt_8,
  input          io_interrupt_9,
  input          io_interrupt_10,
  input          io_interrupt_11,
  input          io_interrupt_12,
  input          io_interrupt_13,
  input          io_interrupt_14,
  input          io_interrupt_15,
  input          io_interrupt_16,
  input          io_interrupt_17,
  input          io_interrupt_18,
  input          io_interrupt_19,
  input          io_interrupt_20,
  input          io_interrupt_21,
  input          io_interrupt_22,
  input          io_interrupt_23,
  input          io_interrupt_24,
  input          io_interrupt_25,
  input          io_interrupt_26,
  input          io_interrupt_27,
  input          io_interrupt_28,
  input          io_interrupt_29,
  input          io_interrupt_30,
  input          io_dm_hartIsInReset,
  output         io_dm_hartResetReq,
  output         io_dm_hartHaltReq,
  output         io_aclint_msi,
  output         io_aclint_mti,
  output         io_aclint_ssi,
  output         io_aclint_sti,
  output         io_plic_mei,
  output         io_plic_sei,
  input          io_hspi_clk,
  input          io_hspi_reset,
  input          io_hspi_rx_enable,
  input  [15:0]  io_hspi_rx_data,
  output         io_hspi_tx_enable,
  output [15:0]  io_hspi_tx_data,
  input          memory_0_aw_ready,
  output         memory_0_aw_valid,
  output [3:0]   memory_0_aw_bits_id,
  output [31:0]  memory_0_aw_bits_addr,
  output [7:0]   memory_0_aw_bits_len,
  output [2:0]   memory_0_aw_bits_size,
  output [1:0]   memory_0_aw_bits_burst,
  output         memory_0_aw_bits_lock,
  output [3:0]   memory_0_aw_bits_cache,
  output [2:0]   memory_0_aw_bits_prot,
  output [3:0]   memory_0_aw_bits_qos,
  input          memory_0_w_ready,
  output         memory_0_w_valid,
  output [127:0] memory_0_w_bits_data,
  output [15:0]  memory_0_w_bits_strb,
  output         memory_0_w_bits_last,
  output         memory_0_b_ready,
  input          memory_0_b_valid,
  input  [3:0]   memory_0_b_bits_id,
  input  [1:0]   memory_0_b_bits_resp,
  input          memory_0_ar_ready,
  output         memory_0_ar_valid,
  output [3:0]   memory_0_ar_bits_id,
  output [31:0]  memory_0_ar_bits_addr,
  output [7:0]   memory_0_ar_bits_len,
  output [2:0]   memory_0_ar_bits_size,
  output [1:0]   memory_0_ar_bits_burst,
  output         memory_0_ar_bits_lock,
  output [3:0]   memory_0_ar_bits_cache,
  output [2:0]   memory_0_ar_bits_prot,
  output [3:0]   memory_0_ar_bits_qos,
  output         memory_0_r_ready,
  input          memory_0_r_valid,
  input  [3:0]   memory_0_r_bits_id,
  input  [127:0] memory_0_r_bits_data,
  input  [1:0]   memory_0_r_bits_resp,
  input          memory_0_r_bits_last,
  input          system_0_aw_ready,
  output         system_0_aw_valid,
  output [3:0]   system_0_aw_bits_id,
  output [30:0]  system_0_aw_bits_addr,
  output [7:0]   system_0_aw_bits_len,
  output [2:0]   system_0_aw_bits_size,
  output [1:0]   system_0_aw_bits_burst,
  output         system_0_aw_bits_lock,
  output [3:0]   system_0_aw_bits_cache,
  output [2:0]   system_0_aw_bits_prot,
  output [3:0]   system_0_aw_bits_qos,
  input          system_0_w_ready,
  output         system_0_w_valid,
  output [63:0]  system_0_w_bits_data,
  output [7:0]   system_0_w_bits_strb,
  output         system_0_w_bits_last,
  output         system_0_b_ready,
  input          system_0_b_valid,
  input  [3:0]   system_0_b_bits_id,
  input  [1:0]   system_0_b_bits_resp,
  input          system_0_ar_ready,
  output         system_0_ar_valid,
  output [3:0]   system_0_ar_bits_id,
  output [30:0]  system_0_ar_bits_addr,
  output [7:0]   system_0_ar_bits_len,
  output [2:0]   system_0_ar_bits_size,
  output [1:0]   system_0_ar_bits_burst,
  output         system_0_ar_bits_lock,
  output [3:0]   system_0_ar_bits_cache,
  output [2:0]   system_0_ar_bits_prot,
  output [3:0]   system_0_ar_bits_qos,
  output         system_0_r_ready,
  input          system_0_r_valid,
  input  [3:0]   system_0_r_bits_id,
  input  [63:0]  system_0_r_bits_data,
  input  [1:0]   system_0_r_bits_resp,
  input          system_0_r_bits_last
);
  wire  chipLinkSlv_clock; // @[Rift2Link.scala 132:31]
  wire  chipLinkSlv_reset; // @[Rift2Link.scala 132:31]
  wire  chipLinkSlv_auto_chip_link_slave_out_a_ready; // @[Rift2Link.scala 132:31]
  wire  chipLinkSlv_auto_chip_link_slave_out_a_valid; // @[Rift2Link.scala 132:31]
  wire [2:0] chipLinkSlv_auto_chip_link_slave_out_a_bits_opcode; // @[Rift2Link.scala 132:31]
  wire [31:0] chipLinkSlv_auto_chip_link_slave_out_a_bits_address; // @[Rift2Link.scala 132:31]
  wire [7:0] chipLinkSlv_auto_chip_link_slave_out_a_bits_mask; // @[Rift2Link.scala 132:31]
  wire [63:0] chipLinkSlv_auto_chip_link_slave_out_a_bits_data; // @[Rift2Link.scala 132:31]
  wire  chipLinkSlv_auto_chip_link_slave_out_d_ready; // @[Rift2Link.scala 132:31]
  wire  chipLinkSlv_auto_chip_link_slave_out_d_valid; // @[Rift2Link.scala 132:31]
  wire [63:0] chipLinkSlv_auto_chip_link_slave_out_d_bits_data; // @[Rift2Link.scala 132:31]
  wire  chipLinkSlv_io_hspi_clk; // @[Rift2Link.scala 132:31]
  wire  chipLinkSlv_io_hspi_reset; // @[Rift2Link.scala 132:31]
  wire  chipLinkSlv_io_hspi_rx_enable; // @[Rift2Link.scala 132:31]
  wire [15:0] chipLinkSlv_io_hspi_rx_data; // @[Rift2Link.scala 132:31]
  wire  chipLinkSlv_io_hspi_tx_enable; // @[Rift2Link.scala 132:31]
  wire [15:0] chipLinkSlv_io_hspi_tx_data; // @[Rift2Link.scala 132:31]
  wire  i_debugger_clock; // @[Rift2Link.scala 133:54]
  wire  i_debugger_reset; // @[Rift2Link.scala 133:54]
  wire  i_debugger_auto_dm_perip_in_a_ready; // @[Rift2Link.scala 133:54]
  wire  i_debugger_auto_dm_perip_in_a_valid; // @[Rift2Link.scala 133:54]
  wire [2:0] i_debugger_auto_dm_perip_in_a_bits_opcode; // @[Rift2Link.scala 133:54]
  wire [2:0] i_debugger_auto_dm_perip_in_a_bits_source; // @[Rift2Link.scala 133:54]
  wire [15:0] i_debugger_auto_dm_perip_in_a_bits_address; // @[Rift2Link.scala 133:54]
  wire [7:0] i_debugger_auto_dm_perip_in_a_bits_mask; // @[Rift2Link.scala 133:54]
  wire [63:0] i_debugger_auto_dm_perip_in_a_bits_data; // @[Rift2Link.scala 133:54]
  wire  i_debugger_auto_dm_perip_in_d_ready; // @[Rift2Link.scala 133:54]
  wire  i_debugger_auto_dm_perip_in_d_valid; // @[Rift2Link.scala 133:54]
  wire [2:0] i_debugger_auto_dm_perip_in_d_bits_opcode; // @[Rift2Link.scala 133:54]
  wire [1:0] i_debugger_auto_dm_perip_in_d_bits_size; // @[Rift2Link.scala 133:54]
  wire [2:0] i_debugger_auto_dm_perip_in_d_bits_source; // @[Rift2Link.scala 133:54]
  wire [63:0] i_debugger_auto_dm_perip_in_d_bits_data; // @[Rift2Link.scala 133:54]
  wire  i_debugger_io_JtagIO_TRSTn; // @[Rift2Link.scala 133:54]
  wire  i_debugger_io_JtagIO_TCK; // @[Rift2Link.scala 133:54]
  wire  i_debugger_io_JtagIO_TMS; // @[Rift2Link.scala 133:54]
  wire  i_debugger_io_JtagIO_TDI; // @[Rift2Link.scala 133:54]
  wire  i_debugger_io_JtagIO_TDO; // @[Rift2Link.scala 133:54]
  wire  i_debugger_io_JtagIO_TDO_driven; // @[Rift2Link.scala 133:54]
  wire  i_debugger_io_dm_cmm_0_hartIsInReset; // @[Rift2Link.scala 133:54]
  wire  i_debugger_io_dm_cmm_0_hartResetReq; // @[Rift2Link.scala 133:54]
  wire  i_debugger_io_dm_cmm_0_hartHaltReq; // @[Rift2Link.scala 133:54]
  wire  i_aclint_clock; // @[Rift2Link.scala 134:28]
  wire  i_aclint_reset; // @[Rift2Link.scala 134:28]
  wire  i_aclint_auto_in_a_ready; // @[Rift2Link.scala 134:28]
  wire  i_aclint_auto_in_a_valid; // @[Rift2Link.scala 134:28]
  wire [2:0] i_aclint_auto_in_a_bits_opcode; // @[Rift2Link.scala 134:28]
  wire [17:0] i_aclint_auto_in_a_bits_address; // @[Rift2Link.scala 134:28]
  wire [7:0] i_aclint_auto_in_a_bits_mask; // @[Rift2Link.scala 134:28]
  wire [63:0] i_aclint_auto_in_a_bits_data; // @[Rift2Link.scala 134:28]
  wire  i_aclint_auto_in_d_ready; // @[Rift2Link.scala 134:28]
  wire  i_aclint_auto_in_d_valid; // @[Rift2Link.scala 134:28]
  wire [2:0] i_aclint_auto_in_d_bits_opcode; // @[Rift2Link.scala 134:28]
  wire [63:0] i_aclint_auto_in_d_bits_data; // @[Rift2Link.scala 134:28]
  wire  i_aclint_io_rtc_clock; // @[Rift2Link.scala 134:28]
  wire  i_aclint_io_int_0_msi; // @[Rift2Link.scala 134:28]
  wire  i_aclint_io_int_0_mti; // @[Rift2Link.scala 134:28]
  wire  i_aclint_io_int_0_ssi; // @[Rift2Link.scala 134:28]
  wire  i_plic_clock; // @[Rift2Link.scala 136:26]
  wire  i_plic_reset; // @[Rift2Link.scala 136:26]
  wire  i_plic_auto_in_a_ready; // @[Rift2Link.scala 136:26]
  wire  i_plic_auto_in_a_valid; // @[Rift2Link.scala 136:26]
  wire [2:0] i_plic_auto_in_a_bits_opcode; // @[Rift2Link.scala 136:26]
  wire [28:0] i_plic_auto_in_a_bits_address; // @[Rift2Link.scala 136:26]
  wire [7:0] i_plic_auto_in_a_bits_mask; // @[Rift2Link.scala 136:26]
  wire [63:0] i_plic_auto_in_a_bits_data; // @[Rift2Link.scala 136:26]
  wire  i_plic_auto_in_d_ready; // @[Rift2Link.scala 136:26]
  wire  i_plic_auto_in_d_valid; // @[Rift2Link.scala 136:26]
  wire [2:0] i_plic_auto_in_d_bits_opcode; // @[Rift2Link.scala 136:26]
  wire [1:0] i_plic_auto_in_d_bits_size; // @[Rift2Link.scala 136:26]
  wire [63:0] i_plic_auto_in_d_bits_data; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_0; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_1; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_2; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_3; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_4; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_5; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_6; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_7; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_8; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_9; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_10; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_11; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_12; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_13; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_14; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_15; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_16; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_17; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_18; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_19; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_20; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_21; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_22; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_23; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_24; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_25; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_26; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_27; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_28; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_29; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_interrupt_30; // @[Rift2Link.scala 136:26]
  wire  i_plic_io_context_0; // @[Rift2Link.scala 136:26]
  wire  xbar_clock; // @[Xbar.scala 142:26]
  wire  xbar_reset; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_a_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_a_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_in_a_bits_opcode; // @[Xbar.scala 142:26]
  wire [31:0] xbar_auto_in_a_bits_address; // @[Xbar.scala 142:26]
  wire [7:0] xbar_auto_in_a_bits_mask; // @[Xbar.scala 142:26]
  wire [63:0] xbar_auto_in_a_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_d_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_in_d_valid; // @[Xbar.scala 142:26]
  wire [63:0] xbar_auto_in_d_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_4_a_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_4_a_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_4_a_bits_opcode; // @[Xbar.scala 142:26]
  wire [28:0] xbar_auto_out_4_a_bits_address; // @[Xbar.scala 142:26]
  wire [7:0] xbar_auto_out_4_a_bits_mask; // @[Xbar.scala 142:26]
  wire [63:0] xbar_auto_out_4_a_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_4_d_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_4_d_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_4_d_bits_opcode; // @[Xbar.scala 142:26]
  wire [1:0] xbar_auto_out_4_d_bits_size; // @[Xbar.scala 142:26]
  wire [63:0] xbar_auto_out_4_d_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_3_a_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_3_a_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_3_a_bits_opcode; // @[Xbar.scala 142:26]
  wire [17:0] xbar_auto_out_3_a_bits_address; // @[Xbar.scala 142:26]
  wire [7:0] xbar_auto_out_3_a_bits_mask; // @[Xbar.scala 142:26]
  wire [63:0] xbar_auto_out_3_a_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_3_d_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_3_d_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_3_d_bits_opcode; // @[Xbar.scala 142:26]
  wire [63:0] xbar_auto_out_3_d_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_2_a_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_2_a_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_2_a_bits_opcode; // @[Xbar.scala 142:26]
  wire [15:0] xbar_auto_out_2_a_bits_address; // @[Xbar.scala 142:26]
  wire [7:0] xbar_auto_out_2_a_bits_mask; // @[Xbar.scala 142:26]
  wire [63:0] xbar_auto_out_2_a_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_2_d_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_2_d_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_2_d_bits_opcode; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_2_d_bits_size; // @[Xbar.scala 142:26]
  wire [63:0] xbar_auto_out_2_d_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_1_a_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_1_a_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_1_a_bits_opcode; // @[Xbar.scala 142:26]
  wire [30:0] xbar_auto_out_1_a_bits_address; // @[Xbar.scala 142:26]
  wire [7:0] xbar_auto_out_1_a_bits_mask; // @[Xbar.scala 142:26]
  wire [63:0] xbar_auto_out_1_a_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_1_d_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_1_d_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_1_d_bits_opcode; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_1_d_bits_size; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_1_d_bits_denied; // @[Xbar.scala 142:26]
  wire [63:0] xbar_auto_out_1_d_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_1_d_bits_corrupt; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_0_a_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_0_a_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_0_a_bits_opcode; // @[Xbar.scala 142:26]
  wire [31:0] xbar_auto_out_0_a_bits_address; // @[Xbar.scala 142:26]
  wire [7:0] xbar_auto_out_0_a_bits_mask; // @[Xbar.scala 142:26]
  wire [63:0] xbar_auto_out_0_a_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_0_d_ready; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_0_d_valid; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_0_d_bits_opcode; // @[Xbar.scala 142:26]
  wire [2:0] xbar_auto_out_0_d_bits_size; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_0_d_bits_denied; // @[Xbar.scala 142:26]
  wire [63:0] xbar_auto_out_0_d_bits_data; // @[Xbar.scala 142:26]
  wire  xbar_auto_out_0_d_bits_corrupt; // @[Xbar.scala 142:26]
  wire  axi4yank_clock; // @[UserYanker.scala 105:30]
  wire  axi4yank_reset; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_in_aw_ready; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_in_aw_valid; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_auto_in_aw_bits_id; // @[UserYanker.scala 105:30]
  wire [31:0] axi4yank_auto_in_aw_bits_addr; // @[UserYanker.scala 105:30]
  wire [7:0] axi4yank_auto_in_aw_bits_len; // @[UserYanker.scala 105:30]
  wire [2:0] axi4yank_auto_in_aw_bits_size; // @[UserYanker.scala 105:30]
  wire [1:0] axi4yank_auto_in_aw_bits_burst; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_in_aw_bits_lock; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_auto_in_aw_bits_cache; // @[UserYanker.scala 105:30]
  wire [2:0] axi4yank_auto_in_aw_bits_prot; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_auto_in_aw_bits_qos; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_auto_in_aw_bits_echo_tl_state_size; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_in_aw_bits_echo_tl_state_source; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_in_w_ready; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_in_w_valid; // @[UserYanker.scala 105:30]
  wire [127:0] axi4yank_auto_in_w_bits_data; // @[UserYanker.scala 105:30]
  wire [15:0] axi4yank_auto_in_w_bits_strb; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_in_w_bits_last; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_in_b_ready; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_in_b_valid; // @[UserYanker.scala 105:30]
  wire [1:0] axi4yank_auto_in_b_bits_resp; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_auto_in_b_bits_echo_tl_state_size; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_in_b_bits_echo_tl_state_source; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_in_ar_ready; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_in_ar_valid; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_auto_in_ar_bits_id; // @[UserYanker.scala 105:30]
  wire [31:0] axi4yank_auto_in_ar_bits_addr; // @[UserYanker.scala 105:30]
  wire [7:0] axi4yank_auto_in_ar_bits_len; // @[UserYanker.scala 105:30]
  wire [2:0] axi4yank_auto_in_ar_bits_size; // @[UserYanker.scala 105:30]
  wire [1:0] axi4yank_auto_in_ar_bits_burst; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_in_ar_bits_lock; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_auto_in_ar_bits_cache; // @[UserYanker.scala 105:30]
  wire [2:0] axi4yank_auto_in_ar_bits_prot; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_auto_in_ar_bits_qos; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_auto_in_ar_bits_echo_tl_state_size; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_in_ar_bits_echo_tl_state_source; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_in_r_ready; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_in_r_valid; // @[UserYanker.scala 105:30]
  wire [127:0] axi4yank_auto_in_r_bits_data; // @[UserYanker.scala 105:30]
  wire [1:0] axi4yank_auto_in_r_bits_resp; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_auto_in_r_bits_echo_tl_state_size; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_in_r_bits_echo_tl_state_source; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_in_r_bits_last; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_out_aw_ready; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_out_aw_valid; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_auto_out_aw_bits_id; // @[UserYanker.scala 105:30]
  wire [31:0] axi4yank_auto_out_aw_bits_addr; // @[UserYanker.scala 105:30]
  wire [7:0] axi4yank_auto_out_aw_bits_len; // @[UserYanker.scala 105:30]
  wire [2:0] axi4yank_auto_out_aw_bits_size; // @[UserYanker.scala 105:30]
  wire [1:0] axi4yank_auto_out_aw_bits_burst; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_out_aw_bits_lock; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_auto_out_aw_bits_cache; // @[UserYanker.scala 105:30]
  wire [2:0] axi4yank_auto_out_aw_bits_prot; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_auto_out_aw_bits_qos; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_out_w_ready; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_out_w_valid; // @[UserYanker.scala 105:30]
  wire [127:0] axi4yank_auto_out_w_bits_data; // @[UserYanker.scala 105:30]
  wire [15:0] axi4yank_auto_out_w_bits_strb; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_out_w_bits_last; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_out_b_ready; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_out_b_valid; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_auto_out_b_bits_id; // @[UserYanker.scala 105:30]
  wire [1:0] axi4yank_auto_out_b_bits_resp; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_out_ar_ready; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_out_ar_valid; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_auto_out_ar_bits_id; // @[UserYanker.scala 105:30]
  wire [31:0] axi4yank_auto_out_ar_bits_addr; // @[UserYanker.scala 105:30]
  wire [7:0] axi4yank_auto_out_ar_bits_len; // @[UserYanker.scala 105:30]
  wire [2:0] axi4yank_auto_out_ar_bits_size; // @[UserYanker.scala 105:30]
  wire [1:0] axi4yank_auto_out_ar_bits_burst; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_out_ar_bits_lock; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_auto_out_ar_bits_cache; // @[UserYanker.scala 105:30]
  wire [2:0] axi4yank_auto_out_ar_bits_prot; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_auto_out_ar_bits_qos; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_out_r_ready; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_out_r_valid; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_auto_out_r_bits_id; // @[UserYanker.scala 105:30]
  wire [127:0] axi4yank_auto_out_r_bits_data; // @[UserYanker.scala 105:30]
  wire [1:0] axi4yank_auto_out_r_bits_resp; // @[UserYanker.scala 105:30]
  wire  axi4yank_auto_out_r_bits_last; // @[UserYanker.scala 105:30]
  wire  axi4index_auto_in_aw_ready; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_in_aw_valid; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_in_aw_bits_id; // @[IdIndexer.scala 91:31]
  wire [31:0] axi4index_auto_in_aw_bits_addr; // @[IdIndexer.scala 91:31]
  wire [7:0] axi4index_auto_in_aw_bits_len; // @[IdIndexer.scala 91:31]
  wire [2:0] axi4index_auto_in_aw_bits_size; // @[IdIndexer.scala 91:31]
  wire [1:0] axi4index_auto_in_aw_bits_burst; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_in_aw_bits_lock; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_auto_in_aw_bits_cache; // @[IdIndexer.scala 91:31]
  wire [2:0] axi4index_auto_in_aw_bits_prot; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_auto_in_aw_bits_qos; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_auto_in_aw_bits_echo_tl_state_size; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_in_aw_bits_echo_tl_state_source; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_in_w_ready; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_in_w_valid; // @[IdIndexer.scala 91:31]
  wire [127:0] axi4index_auto_in_w_bits_data; // @[IdIndexer.scala 91:31]
  wire [15:0] axi4index_auto_in_w_bits_strb; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_in_w_bits_last; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_in_b_ready; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_in_b_valid; // @[IdIndexer.scala 91:31]
  wire [1:0] axi4index_auto_in_b_bits_resp; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_auto_in_b_bits_echo_tl_state_size; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_in_b_bits_echo_tl_state_source; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_in_ar_ready; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_in_ar_valid; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_in_ar_bits_id; // @[IdIndexer.scala 91:31]
  wire [31:0] axi4index_auto_in_ar_bits_addr; // @[IdIndexer.scala 91:31]
  wire [7:0] axi4index_auto_in_ar_bits_len; // @[IdIndexer.scala 91:31]
  wire [2:0] axi4index_auto_in_ar_bits_size; // @[IdIndexer.scala 91:31]
  wire [1:0] axi4index_auto_in_ar_bits_burst; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_in_ar_bits_lock; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_auto_in_ar_bits_cache; // @[IdIndexer.scala 91:31]
  wire [2:0] axi4index_auto_in_ar_bits_prot; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_auto_in_ar_bits_qos; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_auto_in_ar_bits_echo_tl_state_size; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_in_ar_bits_echo_tl_state_source; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_in_r_ready; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_in_r_valid; // @[IdIndexer.scala 91:31]
  wire [127:0] axi4index_auto_in_r_bits_data; // @[IdIndexer.scala 91:31]
  wire [1:0] axi4index_auto_in_r_bits_resp; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_auto_in_r_bits_echo_tl_state_size; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_in_r_bits_echo_tl_state_source; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_in_r_bits_last; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_out_aw_ready; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_out_aw_valid; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_auto_out_aw_bits_id; // @[IdIndexer.scala 91:31]
  wire [31:0] axi4index_auto_out_aw_bits_addr; // @[IdIndexer.scala 91:31]
  wire [7:0] axi4index_auto_out_aw_bits_len; // @[IdIndexer.scala 91:31]
  wire [2:0] axi4index_auto_out_aw_bits_size; // @[IdIndexer.scala 91:31]
  wire [1:0] axi4index_auto_out_aw_bits_burst; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_out_aw_bits_lock; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_auto_out_aw_bits_cache; // @[IdIndexer.scala 91:31]
  wire [2:0] axi4index_auto_out_aw_bits_prot; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_auto_out_aw_bits_qos; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_auto_out_aw_bits_echo_tl_state_size; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_out_aw_bits_echo_tl_state_source; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_out_w_ready; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_out_w_valid; // @[IdIndexer.scala 91:31]
  wire [127:0] axi4index_auto_out_w_bits_data; // @[IdIndexer.scala 91:31]
  wire [15:0] axi4index_auto_out_w_bits_strb; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_out_w_bits_last; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_out_b_ready; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_out_b_valid; // @[IdIndexer.scala 91:31]
  wire [1:0] axi4index_auto_out_b_bits_resp; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_auto_out_b_bits_echo_tl_state_size; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_out_b_bits_echo_tl_state_source; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_out_ar_ready; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_out_ar_valid; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_auto_out_ar_bits_id; // @[IdIndexer.scala 91:31]
  wire [31:0] axi4index_auto_out_ar_bits_addr; // @[IdIndexer.scala 91:31]
  wire [7:0] axi4index_auto_out_ar_bits_len; // @[IdIndexer.scala 91:31]
  wire [2:0] axi4index_auto_out_ar_bits_size; // @[IdIndexer.scala 91:31]
  wire [1:0] axi4index_auto_out_ar_bits_burst; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_out_ar_bits_lock; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_auto_out_ar_bits_cache; // @[IdIndexer.scala 91:31]
  wire [2:0] axi4index_auto_out_ar_bits_prot; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_auto_out_ar_bits_qos; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_auto_out_ar_bits_echo_tl_state_size; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_out_ar_bits_echo_tl_state_source; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_out_r_ready; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_out_r_valid; // @[IdIndexer.scala 91:31]
  wire [127:0] axi4index_auto_out_r_bits_data; // @[IdIndexer.scala 91:31]
  wire [1:0] axi4index_auto_out_r_bits_resp; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_auto_out_r_bits_echo_tl_state_size; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_out_r_bits_echo_tl_state_source; // @[IdIndexer.scala 91:31]
  wire  axi4index_auto_out_r_bits_last; // @[IdIndexer.scala 91:31]
  wire  axi4deint_clock; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_reset; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_in_aw_ready; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_in_aw_valid; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_in_aw_bits_id; // @[Deinterleaver.scala 140:31]
  wire [31:0] axi4deint_auto_in_aw_bits_addr; // @[Deinterleaver.scala 140:31]
  wire [7:0] axi4deint_auto_in_aw_bits_len; // @[Deinterleaver.scala 140:31]
  wire [2:0] axi4deint_auto_in_aw_bits_size; // @[Deinterleaver.scala 140:31]
  wire [1:0] axi4deint_auto_in_aw_bits_burst; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_in_aw_bits_lock; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_auto_in_aw_bits_cache; // @[Deinterleaver.scala 140:31]
  wire [2:0] axi4deint_auto_in_aw_bits_prot; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_auto_in_aw_bits_qos; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_auto_in_aw_bits_echo_tl_state_size; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_in_aw_bits_echo_tl_state_source; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_in_w_ready; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_in_w_valid; // @[Deinterleaver.scala 140:31]
  wire [127:0] axi4deint_auto_in_w_bits_data; // @[Deinterleaver.scala 140:31]
  wire [15:0] axi4deint_auto_in_w_bits_strb; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_in_w_bits_last; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_in_b_ready; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_in_b_valid; // @[Deinterleaver.scala 140:31]
  wire [1:0] axi4deint_auto_in_b_bits_resp; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_auto_in_b_bits_echo_tl_state_size; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_in_b_bits_echo_tl_state_source; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_in_ar_ready; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_in_ar_valid; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_in_ar_bits_id; // @[Deinterleaver.scala 140:31]
  wire [31:0] axi4deint_auto_in_ar_bits_addr; // @[Deinterleaver.scala 140:31]
  wire [7:0] axi4deint_auto_in_ar_bits_len; // @[Deinterleaver.scala 140:31]
  wire [2:0] axi4deint_auto_in_ar_bits_size; // @[Deinterleaver.scala 140:31]
  wire [1:0] axi4deint_auto_in_ar_bits_burst; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_in_ar_bits_lock; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_auto_in_ar_bits_cache; // @[Deinterleaver.scala 140:31]
  wire [2:0] axi4deint_auto_in_ar_bits_prot; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_auto_in_ar_bits_qos; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_auto_in_ar_bits_echo_tl_state_size; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_in_ar_bits_echo_tl_state_source; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_in_r_ready; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_in_r_valid; // @[Deinterleaver.scala 140:31]
  wire [127:0] axi4deint_auto_in_r_bits_data; // @[Deinterleaver.scala 140:31]
  wire [1:0] axi4deint_auto_in_r_bits_resp; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_auto_in_r_bits_echo_tl_state_size; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_in_r_bits_echo_tl_state_source; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_in_r_bits_last; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_out_aw_ready; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_out_aw_valid; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_out_aw_bits_id; // @[Deinterleaver.scala 140:31]
  wire [31:0] axi4deint_auto_out_aw_bits_addr; // @[Deinterleaver.scala 140:31]
  wire [7:0] axi4deint_auto_out_aw_bits_len; // @[Deinterleaver.scala 140:31]
  wire [2:0] axi4deint_auto_out_aw_bits_size; // @[Deinterleaver.scala 140:31]
  wire [1:0] axi4deint_auto_out_aw_bits_burst; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_out_aw_bits_lock; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_auto_out_aw_bits_cache; // @[Deinterleaver.scala 140:31]
  wire [2:0] axi4deint_auto_out_aw_bits_prot; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_auto_out_aw_bits_qos; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_auto_out_aw_bits_echo_tl_state_size; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_out_aw_bits_echo_tl_state_source; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_out_w_ready; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_out_w_valid; // @[Deinterleaver.scala 140:31]
  wire [127:0] axi4deint_auto_out_w_bits_data; // @[Deinterleaver.scala 140:31]
  wire [15:0] axi4deint_auto_out_w_bits_strb; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_out_w_bits_last; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_out_b_ready; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_out_b_valid; // @[Deinterleaver.scala 140:31]
  wire [1:0] axi4deint_auto_out_b_bits_resp; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_auto_out_b_bits_echo_tl_state_size; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_out_b_bits_echo_tl_state_source; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_out_ar_ready; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_out_ar_valid; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_out_ar_bits_id; // @[Deinterleaver.scala 140:31]
  wire [31:0] axi4deint_auto_out_ar_bits_addr; // @[Deinterleaver.scala 140:31]
  wire [7:0] axi4deint_auto_out_ar_bits_len; // @[Deinterleaver.scala 140:31]
  wire [2:0] axi4deint_auto_out_ar_bits_size; // @[Deinterleaver.scala 140:31]
  wire [1:0] axi4deint_auto_out_ar_bits_burst; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_out_ar_bits_lock; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_auto_out_ar_bits_cache; // @[Deinterleaver.scala 140:31]
  wire [2:0] axi4deint_auto_out_ar_bits_prot; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_auto_out_ar_bits_qos; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_auto_out_ar_bits_echo_tl_state_size; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_out_ar_bits_echo_tl_state_source; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_out_r_ready; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_out_r_valid; // @[Deinterleaver.scala 140:31]
  wire [127:0] axi4deint_auto_out_r_bits_data; // @[Deinterleaver.scala 140:31]
  wire [1:0] axi4deint_auto_out_r_bits_resp; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_auto_out_r_bits_echo_tl_state_size; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_out_r_bits_echo_tl_state_source; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_auto_out_r_bits_last; // @[Deinterleaver.scala 140:31]
  wire  tl2axi4_clock; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_reset; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_in_a_ready; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_in_a_valid; // @[ToAXI4.scala 283:29]
  wire [2:0] tl2axi4_auto_in_a_bits_opcode; // @[ToAXI4.scala 283:29]
  wire [31:0] tl2axi4_auto_in_a_bits_address; // @[ToAXI4.scala 283:29]
  wire [15:0] tl2axi4_auto_in_a_bits_mask; // @[ToAXI4.scala 283:29]
  wire [127:0] tl2axi4_auto_in_a_bits_data; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_in_d_ready; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_in_d_valid; // @[ToAXI4.scala 283:29]
  wire [2:0] tl2axi4_auto_in_d_bits_opcode; // @[ToAXI4.scala 283:29]
  wire [2:0] tl2axi4_auto_in_d_bits_size; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_in_d_bits_source; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_in_d_bits_denied; // @[ToAXI4.scala 283:29]
  wire [127:0] tl2axi4_auto_in_d_bits_data; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_in_d_bits_corrupt; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_out_aw_ready; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_out_aw_valid; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_out_aw_bits_id; // @[ToAXI4.scala 283:29]
  wire [31:0] tl2axi4_auto_out_aw_bits_addr; // @[ToAXI4.scala 283:29]
  wire [7:0] tl2axi4_auto_out_aw_bits_len; // @[ToAXI4.scala 283:29]
  wire [2:0] tl2axi4_auto_out_aw_bits_size; // @[ToAXI4.scala 283:29]
  wire [1:0] tl2axi4_auto_out_aw_bits_burst; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_out_aw_bits_lock; // @[ToAXI4.scala 283:29]
  wire [3:0] tl2axi4_auto_out_aw_bits_cache; // @[ToAXI4.scala 283:29]
  wire [2:0] tl2axi4_auto_out_aw_bits_prot; // @[ToAXI4.scala 283:29]
  wire [3:0] tl2axi4_auto_out_aw_bits_qos; // @[ToAXI4.scala 283:29]
  wire [3:0] tl2axi4_auto_out_aw_bits_echo_tl_state_size; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_out_aw_bits_echo_tl_state_source; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_out_w_ready; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_out_w_valid; // @[ToAXI4.scala 283:29]
  wire [127:0] tl2axi4_auto_out_w_bits_data; // @[ToAXI4.scala 283:29]
  wire [15:0] tl2axi4_auto_out_w_bits_strb; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_out_w_bits_last; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_out_b_ready; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_out_b_valid; // @[ToAXI4.scala 283:29]
  wire [1:0] tl2axi4_auto_out_b_bits_resp; // @[ToAXI4.scala 283:29]
  wire [3:0] tl2axi4_auto_out_b_bits_echo_tl_state_size; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_out_b_bits_echo_tl_state_source; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_out_ar_ready; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_out_ar_valid; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_out_ar_bits_id; // @[ToAXI4.scala 283:29]
  wire [31:0] tl2axi4_auto_out_ar_bits_addr; // @[ToAXI4.scala 283:29]
  wire [7:0] tl2axi4_auto_out_ar_bits_len; // @[ToAXI4.scala 283:29]
  wire [2:0] tl2axi4_auto_out_ar_bits_size; // @[ToAXI4.scala 283:29]
  wire [1:0] tl2axi4_auto_out_ar_bits_burst; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_out_ar_bits_lock; // @[ToAXI4.scala 283:29]
  wire [3:0] tl2axi4_auto_out_ar_bits_cache; // @[ToAXI4.scala 283:29]
  wire [2:0] tl2axi4_auto_out_ar_bits_prot; // @[ToAXI4.scala 283:29]
  wire [3:0] tl2axi4_auto_out_ar_bits_qos; // @[ToAXI4.scala 283:29]
  wire [3:0] tl2axi4_auto_out_ar_bits_echo_tl_state_size; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_out_ar_bits_echo_tl_state_source; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_out_r_ready; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_out_r_valid; // @[ToAXI4.scala 283:29]
  wire [127:0] tl2axi4_auto_out_r_bits_data; // @[ToAXI4.scala 283:29]
  wire [1:0] tl2axi4_auto_out_r_bits_resp; // @[ToAXI4.scala 283:29]
  wire [3:0] tl2axi4_auto_out_r_bits_echo_tl_state_size; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_out_r_bits_echo_tl_state_source; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_auto_out_r_bits_last; // @[ToAXI4.scala 283:29]
  wire  widget_clock; // @[WidthWidget.scala 219:28]
  wire  widget_reset; // @[WidthWidget.scala 219:28]
  wire  widget_auto_in_a_ready; // @[WidthWidget.scala 219:28]
  wire  widget_auto_in_a_valid; // @[WidthWidget.scala 219:28]
  wire [2:0] widget_auto_in_a_bits_opcode; // @[WidthWidget.scala 219:28]
  wire [31:0] widget_auto_in_a_bits_address; // @[WidthWidget.scala 219:28]
  wire [7:0] widget_auto_in_a_bits_mask; // @[WidthWidget.scala 219:28]
  wire [63:0] widget_auto_in_a_bits_data; // @[WidthWidget.scala 219:28]
  wire  widget_auto_in_d_ready; // @[WidthWidget.scala 219:28]
  wire  widget_auto_in_d_valid; // @[WidthWidget.scala 219:28]
  wire [2:0] widget_auto_in_d_bits_opcode; // @[WidthWidget.scala 219:28]
  wire [2:0] widget_auto_in_d_bits_size; // @[WidthWidget.scala 219:28]
  wire  widget_auto_in_d_bits_denied; // @[WidthWidget.scala 219:28]
  wire [63:0] widget_auto_in_d_bits_data; // @[WidthWidget.scala 219:28]
  wire  widget_auto_in_d_bits_corrupt; // @[WidthWidget.scala 219:28]
  wire  widget_auto_out_a_ready; // @[WidthWidget.scala 219:28]
  wire  widget_auto_out_a_valid; // @[WidthWidget.scala 219:28]
  wire [2:0] widget_auto_out_a_bits_opcode; // @[WidthWidget.scala 219:28]
  wire [31:0] widget_auto_out_a_bits_address; // @[WidthWidget.scala 219:28]
  wire [15:0] widget_auto_out_a_bits_mask; // @[WidthWidget.scala 219:28]
  wire [127:0] widget_auto_out_a_bits_data; // @[WidthWidget.scala 219:28]
  wire  widget_auto_out_d_ready; // @[WidthWidget.scala 219:28]
  wire  widget_auto_out_d_valid; // @[WidthWidget.scala 219:28]
  wire [2:0] widget_auto_out_d_bits_opcode; // @[WidthWidget.scala 219:28]
  wire [2:0] widget_auto_out_d_bits_size; // @[WidthWidget.scala 219:28]
  wire  widget_auto_out_d_bits_source; // @[WidthWidget.scala 219:28]
  wire  widget_auto_out_d_bits_denied; // @[WidthWidget.scala 219:28]
  wire [127:0] widget_auto_out_d_bits_data; // @[WidthWidget.scala 219:28]
  wire  widget_auto_out_d_bits_corrupt; // @[WidthWidget.scala 219:28]
  wire  axi4yank_1_clock; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_reset; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_in_aw_ready; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_in_aw_valid; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_1_auto_in_aw_bits_id; // @[UserYanker.scala 105:30]
  wire [30:0] axi4yank_1_auto_in_aw_bits_addr; // @[UserYanker.scala 105:30]
  wire [7:0] axi4yank_1_auto_in_aw_bits_len; // @[UserYanker.scala 105:30]
  wire [2:0] axi4yank_1_auto_in_aw_bits_size; // @[UserYanker.scala 105:30]
  wire [1:0] axi4yank_1_auto_in_aw_bits_burst; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_in_aw_bits_lock; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_1_auto_in_aw_bits_cache; // @[UserYanker.scala 105:30]
  wire [2:0] axi4yank_1_auto_in_aw_bits_prot; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_1_auto_in_aw_bits_qos; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_1_auto_in_aw_bits_echo_tl_state_size; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_in_aw_bits_echo_tl_state_source; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_in_w_ready; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_in_w_valid; // @[UserYanker.scala 105:30]
  wire [63:0] axi4yank_1_auto_in_w_bits_data; // @[UserYanker.scala 105:30]
  wire [7:0] axi4yank_1_auto_in_w_bits_strb; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_in_w_bits_last; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_in_b_ready; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_in_b_valid; // @[UserYanker.scala 105:30]
  wire [1:0] axi4yank_1_auto_in_b_bits_resp; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_1_auto_in_b_bits_echo_tl_state_size; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_in_b_bits_echo_tl_state_source; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_in_ar_ready; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_in_ar_valid; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_1_auto_in_ar_bits_id; // @[UserYanker.scala 105:30]
  wire [30:0] axi4yank_1_auto_in_ar_bits_addr; // @[UserYanker.scala 105:30]
  wire [7:0] axi4yank_1_auto_in_ar_bits_len; // @[UserYanker.scala 105:30]
  wire [2:0] axi4yank_1_auto_in_ar_bits_size; // @[UserYanker.scala 105:30]
  wire [1:0] axi4yank_1_auto_in_ar_bits_burst; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_in_ar_bits_lock; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_1_auto_in_ar_bits_cache; // @[UserYanker.scala 105:30]
  wire [2:0] axi4yank_1_auto_in_ar_bits_prot; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_1_auto_in_ar_bits_qos; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_1_auto_in_ar_bits_echo_tl_state_size; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_in_ar_bits_echo_tl_state_source; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_in_r_ready; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_in_r_valid; // @[UserYanker.scala 105:30]
  wire [63:0] axi4yank_1_auto_in_r_bits_data; // @[UserYanker.scala 105:30]
  wire [1:0] axi4yank_1_auto_in_r_bits_resp; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_1_auto_in_r_bits_echo_tl_state_size; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_in_r_bits_echo_tl_state_source; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_in_r_bits_last; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_out_aw_ready; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_out_aw_valid; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_1_auto_out_aw_bits_id; // @[UserYanker.scala 105:30]
  wire [30:0] axi4yank_1_auto_out_aw_bits_addr; // @[UserYanker.scala 105:30]
  wire [7:0] axi4yank_1_auto_out_aw_bits_len; // @[UserYanker.scala 105:30]
  wire [2:0] axi4yank_1_auto_out_aw_bits_size; // @[UserYanker.scala 105:30]
  wire [1:0] axi4yank_1_auto_out_aw_bits_burst; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_out_aw_bits_lock; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_1_auto_out_aw_bits_cache; // @[UserYanker.scala 105:30]
  wire [2:0] axi4yank_1_auto_out_aw_bits_prot; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_1_auto_out_aw_bits_qos; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_out_w_ready; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_out_w_valid; // @[UserYanker.scala 105:30]
  wire [63:0] axi4yank_1_auto_out_w_bits_data; // @[UserYanker.scala 105:30]
  wire [7:0] axi4yank_1_auto_out_w_bits_strb; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_out_w_bits_last; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_out_b_ready; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_out_b_valid; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_1_auto_out_b_bits_id; // @[UserYanker.scala 105:30]
  wire [1:0] axi4yank_1_auto_out_b_bits_resp; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_out_ar_ready; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_out_ar_valid; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_1_auto_out_ar_bits_id; // @[UserYanker.scala 105:30]
  wire [30:0] axi4yank_1_auto_out_ar_bits_addr; // @[UserYanker.scala 105:30]
  wire [7:0] axi4yank_1_auto_out_ar_bits_len; // @[UserYanker.scala 105:30]
  wire [2:0] axi4yank_1_auto_out_ar_bits_size; // @[UserYanker.scala 105:30]
  wire [1:0] axi4yank_1_auto_out_ar_bits_burst; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_out_ar_bits_lock; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_1_auto_out_ar_bits_cache; // @[UserYanker.scala 105:30]
  wire [2:0] axi4yank_1_auto_out_ar_bits_prot; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_1_auto_out_ar_bits_qos; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_out_r_ready; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_out_r_valid; // @[UserYanker.scala 105:30]
  wire [3:0] axi4yank_1_auto_out_r_bits_id; // @[UserYanker.scala 105:30]
  wire [63:0] axi4yank_1_auto_out_r_bits_data; // @[UserYanker.scala 105:30]
  wire [1:0] axi4yank_1_auto_out_r_bits_resp; // @[UserYanker.scala 105:30]
  wire  axi4yank_1_auto_out_r_bits_last; // @[UserYanker.scala 105:30]
  wire  axi4index_1_auto_in_aw_ready; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_in_aw_valid; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_in_aw_bits_id; // @[IdIndexer.scala 91:31]
  wire [30:0] axi4index_1_auto_in_aw_bits_addr; // @[IdIndexer.scala 91:31]
  wire [7:0] axi4index_1_auto_in_aw_bits_len; // @[IdIndexer.scala 91:31]
  wire [2:0] axi4index_1_auto_in_aw_bits_size; // @[IdIndexer.scala 91:31]
  wire [1:0] axi4index_1_auto_in_aw_bits_burst; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_in_aw_bits_lock; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_1_auto_in_aw_bits_cache; // @[IdIndexer.scala 91:31]
  wire [2:0] axi4index_1_auto_in_aw_bits_prot; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_1_auto_in_aw_bits_qos; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_1_auto_in_aw_bits_echo_tl_state_size; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_in_aw_bits_echo_tl_state_source; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_in_w_ready; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_in_w_valid; // @[IdIndexer.scala 91:31]
  wire [63:0] axi4index_1_auto_in_w_bits_data; // @[IdIndexer.scala 91:31]
  wire [7:0] axi4index_1_auto_in_w_bits_strb; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_in_w_bits_last; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_in_b_ready; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_in_b_valid; // @[IdIndexer.scala 91:31]
  wire [1:0] axi4index_1_auto_in_b_bits_resp; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_1_auto_in_b_bits_echo_tl_state_size; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_in_b_bits_echo_tl_state_source; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_in_ar_ready; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_in_ar_valid; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_in_ar_bits_id; // @[IdIndexer.scala 91:31]
  wire [30:0] axi4index_1_auto_in_ar_bits_addr; // @[IdIndexer.scala 91:31]
  wire [7:0] axi4index_1_auto_in_ar_bits_len; // @[IdIndexer.scala 91:31]
  wire [2:0] axi4index_1_auto_in_ar_bits_size; // @[IdIndexer.scala 91:31]
  wire [1:0] axi4index_1_auto_in_ar_bits_burst; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_in_ar_bits_lock; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_1_auto_in_ar_bits_cache; // @[IdIndexer.scala 91:31]
  wire [2:0] axi4index_1_auto_in_ar_bits_prot; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_1_auto_in_ar_bits_qos; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_1_auto_in_ar_bits_echo_tl_state_size; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_in_ar_bits_echo_tl_state_source; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_in_r_ready; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_in_r_valid; // @[IdIndexer.scala 91:31]
  wire [63:0] axi4index_1_auto_in_r_bits_data; // @[IdIndexer.scala 91:31]
  wire [1:0] axi4index_1_auto_in_r_bits_resp; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_1_auto_in_r_bits_echo_tl_state_size; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_in_r_bits_echo_tl_state_source; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_in_r_bits_last; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_out_aw_ready; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_out_aw_valid; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_1_auto_out_aw_bits_id; // @[IdIndexer.scala 91:31]
  wire [30:0] axi4index_1_auto_out_aw_bits_addr; // @[IdIndexer.scala 91:31]
  wire [7:0] axi4index_1_auto_out_aw_bits_len; // @[IdIndexer.scala 91:31]
  wire [2:0] axi4index_1_auto_out_aw_bits_size; // @[IdIndexer.scala 91:31]
  wire [1:0] axi4index_1_auto_out_aw_bits_burst; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_out_aw_bits_lock; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_1_auto_out_aw_bits_cache; // @[IdIndexer.scala 91:31]
  wire [2:0] axi4index_1_auto_out_aw_bits_prot; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_1_auto_out_aw_bits_qos; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_1_auto_out_aw_bits_echo_tl_state_size; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_out_aw_bits_echo_tl_state_source; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_out_w_ready; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_out_w_valid; // @[IdIndexer.scala 91:31]
  wire [63:0] axi4index_1_auto_out_w_bits_data; // @[IdIndexer.scala 91:31]
  wire [7:0] axi4index_1_auto_out_w_bits_strb; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_out_w_bits_last; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_out_b_ready; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_out_b_valid; // @[IdIndexer.scala 91:31]
  wire [1:0] axi4index_1_auto_out_b_bits_resp; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_1_auto_out_b_bits_echo_tl_state_size; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_out_b_bits_echo_tl_state_source; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_out_ar_ready; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_out_ar_valid; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_1_auto_out_ar_bits_id; // @[IdIndexer.scala 91:31]
  wire [30:0] axi4index_1_auto_out_ar_bits_addr; // @[IdIndexer.scala 91:31]
  wire [7:0] axi4index_1_auto_out_ar_bits_len; // @[IdIndexer.scala 91:31]
  wire [2:0] axi4index_1_auto_out_ar_bits_size; // @[IdIndexer.scala 91:31]
  wire [1:0] axi4index_1_auto_out_ar_bits_burst; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_out_ar_bits_lock; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_1_auto_out_ar_bits_cache; // @[IdIndexer.scala 91:31]
  wire [2:0] axi4index_1_auto_out_ar_bits_prot; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_1_auto_out_ar_bits_qos; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_1_auto_out_ar_bits_echo_tl_state_size; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_out_ar_bits_echo_tl_state_source; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_out_r_ready; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_out_r_valid; // @[IdIndexer.scala 91:31]
  wire [63:0] axi4index_1_auto_out_r_bits_data; // @[IdIndexer.scala 91:31]
  wire [1:0] axi4index_1_auto_out_r_bits_resp; // @[IdIndexer.scala 91:31]
  wire [3:0] axi4index_1_auto_out_r_bits_echo_tl_state_size; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_out_r_bits_echo_tl_state_source; // @[IdIndexer.scala 91:31]
  wire  axi4index_1_auto_out_r_bits_last; // @[IdIndexer.scala 91:31]
  wire  axi4deint_1_clock; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_reset; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_in_aw_ready; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_in_aw_valid; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_in_aw_bits_id; // @[Deinterleaver.scala 140:31]
  wire [30:0] axi4deint_1_auto_in_aw_bits_addr; // @[Deinterleaver.scala 140:31]
  wire [7:0] axi4deint_1_auto_in_aw_bits_len; // @[Deinterleaver.scala 140:31]
  wire [2:0] axi4deint_1_auto_in_aw_bits_size; // @[Deinterleaver.scala 140:31]
  wire [1:0] axi4deint_1_auto_in_aw_bits_burst; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_in_aw_bits_lock; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_1_auto_in_aw_bits_cache; // @[Deinterleaver.scala 140:31]
  wire [2:0] axi4deint_1_auto_in_aw_bits_prot; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_1_auto_in_aw_bits_qos; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_1_auto_in_aw_bits_echo_tl_state_size; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_in_aw_bits_echo_tl_state_source; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_in_w_ready; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_in_w_valid; // @[Deinterleaver.scala 140:31]
  wire [63:0] axi4deint_1_auto_in_w_bits_data; // @[Deinterleaver.scala 140:31]
  wire [7:0] axi4deint_1_auto_in_w_bits_strb; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_in_w_bits_last; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_in_b_ready; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_in_b_valid; // @[Deinterleaver.scala 140:31]
  wire [1:0] axi4deint_1_auto_in_b_bits_resp; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_1_auto_in_b_bits_echo_tl_state_size; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_in_b_bits_echo_tl_state_source; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_in_ar_ready; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_in_ar_valid; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_in_ar_bits_id; // @[Deinterleaver.scala 140:31]
  wire [30:0] axi4deint_1_auto_in_ar_bits_addr; // @[Deinterleaver.scala 140:31]
  wire [7:0] axi4deint_1_auto_in_ar_bits_len; // @[Deinterleaver.scala 140:31]
  wire [2:0] axi4deint_1_auto_in_ar_bits_size; // @[Deinterleaver.scala 140:31]
  wire [1:0] axi4deint_1_auto_in_ar_bits_burst; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_in_ar_bits_lock; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_1_auto_in_ar_bits_cache; // @[Deinterleaver.scala 140:31]
  wire [2:0] axi4deint_1_auto_in_ar_bits_prot; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_1_auto_in_ar_bits_qos; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_1_auto_in_ar_bits_echo_tl_state_size; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_in_ar_bits_echo_tl_state_source; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_in_r_ready; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_in_r_valid; // @[Deinterleaver.scala 140:31]
  wire [63:0] axi4deint_1_auto_in_r_bits_data; // @[Deinterleaver.scala 140:31]
  wire [1:0] axi4deint_1_auto_in_r_bits_resp; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_1_auto_in_r_bits_echo_tl_state_size; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_in_r_bits_echo_tl_state_source; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_in_r_bits_last; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_out_aw_ready; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_out_aw_valid; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_out_aw_bits_id; // @[Deinterleaver.scala 140:31]
  wire [30:0] axi4deint_1_auto_out_aw_bits_addr; // @[Deinterleaver.scala 140:31]
  wire [7:0] axi4deint_1_auto_out_aw_bits_len; // @[Deinterleaver.scala 140:31]
  wire [2:0] axi4deint_1_auto_out_aw_bits_size; // @[Deinterleaver.scala 140:31]
  wire [1:0] axi4deint_1_auto_out_aw_bits_burst; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_out_aw_bits_lock; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_1_auto_out_aw_bits_cache; // @[Deinterleaver.scala 140:31]
  wire [2:0] axi4deint_1_auto_out_aw_bits_prot; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_1_auto_out_aw_bits_qos; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_1_auto_out_aw_bits_echo_tl_state_size; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_out_aw_bits_echo_tl_state_source; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_out_w_ready; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_out_w_valid; // @[Deinterleaver.scala 140:31]
  wire [63:0] axi4deint_1_auto_out_w_bits_data; // @[Deinterleaver.scala 140:31]
  wire [7:0] axi4deint_1_auto_out_w_bits_strb; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_out_w_bits_last; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_out_b_ready; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_out_b_valid; // @[Deinterleaver.scala 140:31]
  wire [1:0] axi4deint_1_auto_out_b_bits_resp; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_1_auto_out_b_bits_echo_tl_state_size; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_out_b_bits_echo_tl_state_source; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_out_ar_ready; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_out_ar_valid; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_out_ar_bits_id; // @[Deinterleaver.scala 140:31]
  wire [30:0] axi4deint_1_auto_out_ar_bits_addr; // @[Deinterleaver.scala 140:31]
  wire [7:0] axi4deint_1_auto_out_ar_bits_len; // @[Deinterleaver.scala 140:31]
  wire [2:0] axi4deint_1_auto_out_ar_bits_size; // @[Deinterleaver.scala 140:31]
  wire [1:0] axi4deint_1_auto_out_ar_bits_burst; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_out_ar_bits_lock; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_1_auto_out_ar_bits_cache; // @[Deinterleaver.scala 140:31]
  wire [2:0] axi4deint_1_auto_out_ar_bits_prot; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_1_auto_out_ar_bits_qos; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_1_auto_out_ar_bits_echo_tl_state_size; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_out_ar_bits_echo_tl_state_source; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_out_r_ready; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_out_r_valid; // @[Deinterleaver.scala 140:31]
  wire [63:0] axi4deint_1_auto_out_r_bits_data; // @[Deinterleaver.scala 140:31]
  wire [1:0] axi4deint_1_auto_out_r_bits_resp; // @[Deinterleaver.scala 140:31]
  wire [3:0] axi4deint_1_auto_out_r_bits_echo_tl_state_size; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_out_r_bits_echo_tl_state_source; // @[Deinterleaver.scala 140:31]
  wire  axi4deint_1_auto_out_r_bits_last; // @[Deinterleaver.scala 140:31]
  wire  tl2axi4_1_clock; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_reset; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_in_a_ready; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_in_a_valid; // @[ToAXI4.scala 283:29]
  wire [2:0] tl2axi4_1_auto_in_a_bits_opcode; // @[ToAXI4.scala 283:29]
  wire [30:0] tl2axi4_1_auto_in_a_bits_address; // @[ToAXI4.scala 283:29]
  wire [7:0] tl2axi4_1_auto_in_a_bits_mask; // @[ToAXI4.scala 283:29]
  wire [63:0] tl2axi4_1_auto_in_a_bits_data; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_in_d_ready; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_in_d_valid; // @[ToAXI4.scala 283:29]
  wire [2:0] tl2axi4_1_auto_in_d_bits_opcode; // @[ToAXI4.scala 283:29]
  wire [2:0] tl2axi4_1_auto_in_d_bits_size; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_in_d_bits_denied; // @[ToAXI4.scala 283:29]
  wire [63:0] tl2axi4_1_auto_in_d_bits_data; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_in_d_bits_corrupt; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_out_aw_ready; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_out_aw_valid; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_out_aw_bits_id; // @[ToAXI4.scala 283:29]
  wire [30:0] tl2axi4_1_auto_out_aw_bits_addr; // @[ToAXI4.scala 283:29]
  wire [7:0] tl2axi4_1_auto_out_aw_bits_len; // @[ToAXI4.scala 283:29]
  wire [2:0] tl2axi4_1_auto_out_aw_bits_size; // @[ToAXI4.scala 283:29]
  wire [1:0] tl2axi4_1_auto_out_aw_bits_burst; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_out_aw_bits_lock; // @[ToAXI4.scala 283:29]
  wire [3:0] tl2axi4_1_auto_out_aw_bits_cache; // @[ToAXI4.scala 283:29]
  wire [2:0] tl2axi4_1_auto_out_aw_bits_prot; // @[ToAXI4.scala 283:29]
  wire [3:0] tl2axi4_1_auto_out_aw_bits_qos; // @[ToAXI4.scala 283:29]
  wire [3:0] tl2axi4_1_auto_out_aw_bits_echo_tl_state_size; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_out_aw_bits_echo_tl_state_source; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_out_w_ready; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_out_w_valid; // @[ToAXI4.scala 283:29]
  wire [63:0] tl2axi4_1_auto_out_w_bits_data; // @[ToAXI4.scala 283:29]
  wire [7:0] tl2axi4_1_auto_out_w_bits_strb; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_out_w_bits_last; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_out_b_ready; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_out_b_valid; // @[ToAXI4.scala 283:29]
  wire [1:0] tl2axi4_1_auto_out_b_bits_resp; // @[ToAXI4.scala 283:29]
  wire [3:0] tl2axi4_1_auto_out_b_bits_echo_tl_state_size; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_out_b_bits_echo_tl_state_source; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_out_ar_ready; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_out_ar_valid; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_out_ar_bits_id; // @[ToAXI4.scala 283:29]
  wire [30:0] tl2axi4_1_auto_out_ar_bits_addr; // @[ToAXI4.scala 283:29]
  wire [7:0] tl2axi4_1_auto_out_ar_bits_len; // @[ToAXI4.scala 283:29]
  wire [2:0] tl2axi4_1_auto_out_ar_bits_size; // @[ToAXI4.scala 283:29]
  wire [1:0] tl2axi4_1_auto_out_ar_bits_burst; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_out_ar_bits_lock; // @[ToAXI4.scala 283:29]
  wire [3:0] tl2axi4_1_auto_out_ar_bits_cache; // @[ToAXI4.scala 283:29]
  wire [2:0] tl2axi4_1_auto_out_ar_bits_prot; // @[ToAXI4.scala 283:29]
  wire [3:0] tl2axi4_1_auto_out_ar_bits_qos; // @[ToAXI4.scala 283:29]
  wire [3:0] tl2axi4_1_auto_out_ar_bits_echo_tl_state_size; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_out_ar_bits_echo_tl_state_source; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_out_r_ready; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_out_r_valid; // @[ToAXI4.scala 283:29]
  wire [63:0] tl2axi4_1_auto_out_r_bits_data; // @[ToAXI4.scala 283:29]
  wire [1:0] tl2axi4_1_auto_out_r_bits_resp; // @[ToAXI4.scala 283:29]
  wire [3:0] tl2axi4_1_auto_out_r_bits_echo_tl_state_size; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_out_r_bits_echo_tl_state_source; // @[ToAXI4.scala 283:29]
  wire  tl2axi4_1_auto_out_r_bits_last; // @[ToAXI4.scala 283:29]
  wire  fragmenter_clock; // @[Fragmenter.scala 333:34]
  wire  fragmenter_reset; // @[Fragmenter.scala 333:34]
  wire  fragmenter_auto_in_a_ready; // @[Fragmenter.scala 333:34]
  wire  fragmenter_auto_in_a_valid; // @[Fragmenter.scala 333:34]
  wire [2:0] fragmenter_auto_in_a_bits_opcode; // @[Fragmenter.scala 333:34]
  wire [15:0] fragmenter_auto_in_a_bits_address; // @[Fragmenter.scala 333:34]
  wire [7:0] fragmenter_auto_in_a_bits_mask; // @[Fragmenter.scala 333:34]
  wire [63:0] fragmenter_auto_in_a_bits_data; // @[Fragmenter.scala 333:34]
  wire  fragmenter_auto_in_d_ready; // @[Fragmenter.scala 333:34]
  wire  fragmenter_auto_in_d_valid; // @[Fragmenter.scala 333:34]
  wire [2:0] fragmenter_auto_in_d_bits_opcode; // @[Fragmenter.scala 333:34]
  wire [2:0] fragmenter_auto_in_d_bits_size; // @[Fragmenter.scala 333:34]
  wire [63:0] fragmenter_auto_in_d_bits_data; // @[Fragmenter.scala 333:34]
  wire  fragmenter_auto_out_a_ready; // @[Fragmenter.scala 333:34]
  wire  fragmenter_auto_out_a_valid; // @[Fragmenter.scala 333:34]
  wire [2:0] fragmenter_auto_out_a_bits_opcode; // @[Fragmenter.scala 333:34]
  wire [2:0] fragmenter_auto_out_a_bits_source; // @[Fragmenter.scala 333:34]
  wire [15:0] fragmenter_auto_out_a_bits_address; // @[Fragmenter.scala 333:34]
  wire [7:0] fragmenter_auto_out_a_bits_mask; // @[Fragmenter.scala 333:34]
  wire [63:0] fragmenter_auto_out_a_bits_data; // @[Fragmenter.scala 333:34]
  wire  fragmenter_auto_out_d_ready; // @[Fragmenter.scala 333:34]
  wire  fragmenter_auto_out_d_valid; // @[Fragmenter.scala 333:34]
  wire [2:0] fragmenter_auto_out_d_bits_opcode; // @[Fragmenter.scala 333:34]
  wire [1:0] fragmenter_auto_out_d_bits_size; // @[Fragmenter.scala 333:34]
  wire [2:0] fragmenter_auto_out_d_bits_source; // @[Fragmenter.scala 333:34]
  wire [63:0] fragmenter_auto_out_d_bits_data; // @[Fragmenter.scala 333:34]
  ChiplinkSlave chipLinkSlv ( // @[Rift2Link.scala 132:31]
    .clock(chipLinkSlv_clock),
    .reset(chipLinkSlv_reset),
    .auto_chip_link_slave_out_a_ready(chipLinkSlv_auto_chip_link_slave_out_a_ready),
    .auto_chip_link_slave_out_a_valid(chipLinkSlv_auto_chip_link_slave_out_a_valid),
    .auto_chip_link_slave_out_a_bits_opcode(chipLinkSlv_auto_chip_link_slave_out_a_bits_opcode),
    .auto_chip_link_slave_out_a_bits_address(chipLinkSlv_auto_chip_link_slave_out_a_bits_address),
    .auto_chip_link_slave_out_a_bits_mask(chipLinkSlv_auto_chip_link_slave_out_a_bits_mask),
    .auto_chip_link_slave_out_a_bits_data(chipLinkSlv_auto_chip_link_slave_out_a_bits_data),
    .auto_chip_link_slave_out_d_ready(chipLinkSlv_auto_chip_link_slave_out_d_ready),
    .auto_chip_link_slave_out_d_valid(chipLinkSlv_auto_chip_link_slave_out_d_valid),
    .auto_chip_link_slave_out_d_bits_data(chipLinkSlv_auto_chip_link_slave_out_d_bits_data),
    .io_hspi_clk(chipLinkSlv_io_hspi_clk),
    .io_hspi_reset(chipLinkSlv_io_hspi_reset),
    .io_hspi_rx_enable(chipLinkSlv_io_hspi_rx_enable),
    .io_hspi_rx_data(chipLinkSlv_io_hspi_rx_data),
    .io_hspi_tx_enable(chipLinkSlv_io_hspi_tx_enable),
    .io_hspi_tx_data(chipLinkSlv_io_hspi_tx_data)
  );
  Debugger i_debugger ( // @[Rift2Link.scala 133:54]
    .clock(i_debugger_clock),
    .reset(i_debugger_reset),
    .auto_dm_perip_in_a_ready(i_debugger_auto_dm_perip_in_a_ready),
    .auto_dm_perip_in_a_valid(i_debugger_auto_dm_perip_in_a_valid),
    .auto_dm_perip_in_a_bits_opcode(i_debugger_auto_dm_perip_in_a_bits_opcode),
    .auto_dm_perip_in_a_bits_source(i_debugger_auto_dm_perip_in_a_bits_source),
    .auto_dm_perip_in_a_bits_address(i_debugger_auto_dm_perip_in_a_bits_address),
    .auto_dm_perip_in_a_bits_mask(i_debugger_auto_dm_perip_in_a_bits_mask),
    .auto_dm_perip_in_a_bits_data(i_debugger_auto_dm_perip_in_a_bits_data),
    .auto_dm_perip_in_d_ready(i_debugger_auto_dm_perip_in_d_ready),
    .auto_dm_perip_in_d_valid(i_debugger_auto_dm_perip_in_d_valid),
    .auto_dm_perip_in_d_bits_opcode(i_debugger_auto_dm_perip_in_d_bits_opcode),
    .auto_dm_perip_in_d_bits_size(i_debugger_auto_dm_perip_in_d_bits_size),
    .auto_dm_perip_in_d_bits_source(i_debugger_auto_dm_perip_in_d_bits_source),
    .auto_dm_perip_in_d_bits_data(i_debugger_auto_dm_perip_in_d_bits_data),
    .io_JtagIO_TRSTn(i_debugger_io_JtagIO_TRSTn),
    .io_JtagIO_TCK(i_debugger_io_JtagIO_TCK),
    .io_JtagIO_TMS(i_debugger_io_JtagIO_TMS),
    .io_JtagIO_TDI(i_debugger_io_JtagIO_TDI),
    .io_JtagIO_TDO(i_debugger_io_JtagIO_TDO),
    .io_JtagIO_TDO_driven(i_debugger_io_JtagIO_TDO_driven),
    .io_dm_cmm_0_hartIsInReset(i_debugger_io_dm_cmm_0_hartIsInReset),
    .io_dm_cmm_0_hartResetReq(i_debugger_io_dm_cmm_0_hartResetReq),
    .io_dm_cmm_0_hartHaltReq(i_debugger_io_dm_cmm_0_hartHaltReq)
  );
  AClint i_aclint ( // @[Rift2Link.scala 134:28]
    .clock(i_aclint_clock),
    .reset(i_aclint_reset),
    .auto_in_a_ready(i_aclint_auto_in_a_ready),
    .auto_in_a_valid(i_aclint_auto_in_a_valid),
    .auto_in_a_bits_opcode(i_aclint_auto_in_a_bits_opcode),
    .auto_in_a_bits_address(i_aclint_auto_in_a_bits_address),
    .auto_in_a_bits_mask(i_aclint_auto_in_a_bits_mask),
    .auto_in_a_bits_data(i_aclint_auto_in_a_bits_data),
    .auto_in_d_ready(i_aclint_auto_in_d_ready),
    .auto_in_d_valid(i_aclint_auto_in_d_valid),
    .auto_in_d_bits_opcode(i_aclint_auto_in_d_bits_opcode),
    .auto_in_d_bits_data(i_aclint_auto_in_d_bits_data),
    .io_rtc_clock(i_aclint_io_rtc_clock),
    .io_int_0_msi(i_aclint_io_int_0_msi),
    .io_int_0_mti(i_aclint_io_int_0_mti),
    .io_int_0_ssi(i_aclint_io_int_0_ssi)
  );
  Plic i_plic ( // @[Rift2Link.scala 136:26]
    .clock(i_plic_clock),
    .reset(i_plic_reset),
    .auto_in_a_ready(i_plic_auto_in_a_ready),
    .auto_in_a_valid(i_plic_auto_in_a_valid),
    .auto_in_a_bits_opcode(i_plic_auto_in_a_bits_opcode),
    .auto_in_a_bits_address(i_plic_auto_in_a_bits_address),
    .auto_in_a_bits_mask(i_plic_auto_in_a_bits_mask),
    .auto_in_a_bits_data(i_plic_auto_in_a_bits_data),
    .auto_in_d_ready(i_plic_auto_in_d_ready),
    .auto_in_d_valid(i_plic_auto_in_d_valid),
    .auto_in_d_bits_opcode(i_plic_auto_in_d_bits_opcode),
    .auto_in_d_bits_size(i_plic_auto_in_d_bits_size),
    .auto_in_d_bits_data(i_plic_auto_in_d_bits_data),
    .io_interrupt_0(i_plic_io_interrupt_0),
    .io_interrupt_1(i_plic_io_interrupt_1),
    .io_interrupt_2(i_plic_io_interrupt_2),
    .io_interrupt_3(i_plic_io_interrupt_3),
    .io_interrupt_4(i_plic_io_interrupt_4),
    .io_interrupt_5(i_plic_io_interrupt_5),
    .io_interrupt_6(i_plic_io_interrupt_6),
    .io_interrupt_7(i_plic_io_interrupt_7),
    .io_interrupt_8(i_plic_io_interrupt_8),
    .io_interrupt_9(i_plic_io_interrupt_9),
    .io_interrupt_10(i_plic_io_interrupt_10),
    .io_interrupt_11(i_plic_io_interrupt_11),
    .io_interrupt_12(i_plic_io_interrupt_12),
    .io_interrupt_13(i_plic_io_interrupt_13),
    .io_interrupt_14(i_plic_io_interrupt_14),
    .io_interrupt_15(i_plic_io_interrupt_15),
    .io_interrupt_16(i_plic_io_interrupt_16),
    .io_interrupt_17(i_plic_io_interrupt_17),
    .io_interrupt_18(i_plic_io_interrupt_18),
    .io_interrupt_19(i_plic_io_interrupt_19),
    .io_interrupt_20(i_plic_io_interrupt_20),
    .io_interrupt_21(i_plic_io_interrupt_21),
    .io_interrupt_22(i_plic_io_interrupt_22),
    .io_interrupt_23(i_plic_io_interrupt_23),
    .io_interrupt_24(i_plic_io_interrupt_24),
    .io_interrupt_25(i_plic_io_interrupt_25),
    .io_interrupt_26(i_plic_io_interrupt_26),
    .io_interrupt_27(i_plic_io_interrupt_27),
    .io_interrupt_28(i_plic_io_interrupt_28),
    .io_interrupt_29(i_plic_io_interrupt_29),
    .io_interrupt_30(i_plic_io_interrupt_30),
    .io_context_0(i_plic_io_context_0)
  );
  TLXbar_2 xbar ( // @[Xbar.scala 142:26]
    .clock(xbar_clock),
    .reset(xbar_reset),
    .auto_in_a_ready(xbar_auto_in_a_ready),
    .auto_in_a_valid(xbar_auto_in_a_valid),
    .auto_in_a_bits_opcode(xbar_auto_in_a_bits_opcode),
    .auto_in_a_bits_address(xbar_auto_in_a_bits_address),
    .auto_in_a_bits_mask(xbar_auto_in_a_bits_mask),
    .auto_in_a_bits_data(xbar_auto_in_a_bits_data),
    .auto_in_d_ready(xbar_auto_in_d_ready),
    .auto_in_d_valid(xbar_auto_in_d_valid),
    .auto_in_d_bits_data(xbar_auto_in_d_bits_data),
    .auto_out_4_a_ready(xbar_auto_out_4_a_ready),
    .auto_out_4_a_valid(xbar_auto_out_4_a_valid),
    .auto_out_4_a_bits_opcode(xbar_auto_out_4_a_bits_opcode),
    .auto_out_4_a_bits_address(xbar_auto_out_4_a_bits_address),
    .auto_out_4_a_bits_mask(xbar_auto_out_4_a_bits_mask),
    .auto_out_4_a_bits_data(xbar_auto_out_4_a_bits_data),
    .auto_out_4_d_ready(xbar_auto_out_4_d_ready),
    .auto_out_4_d_valid(xbar_auto_out_4_d_valid),
    .auto_out_4_d_bits_opcode(xbar_auto_out_4_d_bits_opcode),
    .auto_out_4_d_bits_size(xbar_auto_out_4_d_bits_size),
    .auto_out_4_d_bits_data(xbar_auto_out_4_d_bits_data),
    .auto_out_3_a_ready(xbar_auto_out_3_a_ready),
    .auto_out_3_a_valid(xbar_auto_out_3_a_valid),
    .auto_out_3_a_bits_opcode(xbar_auto_out_3_a_bits_opcode),
    .auto_out_3_a_bits_address(xbar_auto_out_3_a_bits_address),
    .auto_out_3_a_bits_mask(xbar_auto_out_3_a_bits_mask),
    .auto_out_3_a_bits_data(xbar_auto_out_3_a_bits_data),
    .auto_out_3_d_ready(xbar_auto_out_3_d_ready),
    .auto_out_3_d_valid(xbar_auto_out_3_d_valid),
    .auto_out_3_d_bits_opcode(xbar_auto_out_3_d_bits_opcode),
    .auto_out_3_d_bits_data(xbar_auto_out_3_d_bits_data),
    .auto_out_2_a_ready(xbar_auto_out_2_a_ready),
    .auto_out_2_a_valid(xbar_auto_out_2_a_valid),
    .auto_out_2_a_bits_opcode(xbar_auto_out_2_a_bits_opcode),
    .auto_out_2_a_bits_address(xbar_auto_out_2_a_bits_address),
    .auto_out_2_a_bits_mask(xbar_auto_out_2_a_bits_mask),
    .auto_out_2_a_bits_data(xbar_auto_out_2_a_bits_data),
    .auto_out_2_d_ready(xbar_auto_out_2_d_ready),
    .auto_out_2_d_valid(xbar_auto_out_2_d_valid),
    .auto_out_2_d_bits_opcode(xbar_auto_out_2_d_bits_opcode),
    .auto_out_2_d_bits_size(xbar_auto_out_2_d_bits_size),
    .auto_out_2_d_bits_data(xbar_auto_out_2_d_bits_data),
    .auto_out_1_a_ready(xbar_auto_out_1_a_ready),
    .auto_out_1_a_valid(xbar_auto_out_1_a_valid),
    .auto_out_1_a_bits_opcode(xbar_auto_out_1_a_bits_opcode),
    .auto_out_1_a_bits_address(xbar_auto_out_1_a_bits_address),
    .auto_out_1_a_bits_mask(xbar_auto_out_1_a_bits_mask),
    .auto_out_1_a_bits_data(xbar_auto_out_1_a_bits_data),
    .auto_out_1_d_ready(xbar_auto_out_1_d_ready),
    .auto_out_1_d_valid(xbar_auto_out_1_d_valid),
    .auto_out_1_d_bits_opcode(xbar_auto_out_1_d_bits_opcode),
    .auto_out_1_d_bits_size(xbar_auto_out_1_d_bits_size),
    .auto_out_1_d_bits_denied(xbar_auto_out_1_d_bits_denied),
    .auto_out_1_d_bits_data(xbar_auto_out_1_d_bits_data),
    .auto_out_1_d_bits_corrupt(xbar_auto_out_1_d_bits_corrupt),
    .auto_out_0_a_ready(xbar_auto_out_0_a_ready),
    .auto_out_0_a_valid(xbar_auto_out_0_a_valid),
    .auto_out_0_a_bits_opcode(xbar_auto_out_0_a_bits_opcode),
    .auto_out_0_a_bits_address(xbar_auto_out_0_a_bits_address),
    .auto_out_0_a_bits_mask(xbar_auto_out_0_a_bits_mask),
    .auto_out_0_a_bits_data(xbar_auto_out_0_a_bits_data),
    .auto_out_0_d_ready(xbar_auto_out_0_d_ready),
    .auto_out_0_d_valid(xbar_auto_out_0_d_valid),
    .auto_out_0_d_bits_opcode(xbar_auto_out_0_d_bits_opcode),
    .auto_out_0_d_bits_size(xbar_auto_out_0_d_bits_size),
    .auto_out_0_d_bits_denied(xbar_auto_out_0_d_bits_denied),
    .auto_out_0_d_bits_data(xbar_auto_out_0_d_bits_data),
    .auto_out_0_d_bits_corrupt(xbar_auto_out_0_d_bits_corrupt)
  );
  AXI4UserYanker axi4yank ( // @[UserYanker.scala 105:30]
    .clock(axi4yank_clock),
    .reset(axi4yank_reset),
    .auto_in_aw_ready(axi4yank_auto_in_aw_ready),
    .auto_in_aw_valid(axi4yank_auto_in_aw_valid),
    .auto_in_aw_bits_id(axi4yank_auto_in_aw_bits_id),
    .auto_in_aw_bits_addr(axi4yank_auto_in_aw_bits_addr),
    .auto_in_aw_bits_len(axi4yank_auto_in_aw_bits_len),
    .auto_in_aw_bits_size(axi4yank_auto_in_aw_bits_size),
    .auto_in_aw_bits_burst(axi4yank_auto_in_aw_bits_burst),
    .auto_in_aw_bits_lock(axi4yank_auto_in_aw_bits_lock),
    .auto_in_aw_bits_cache(axi4yank_auto_in_aw_bits_cache),
    .auto_in_aw_bits_prot(axi4yank_auto_in_aw_bits_prot),
    .auto_in_aw_bits_qos(axi4yank_auto_in_aw_bits_qos),
    .auto_in_aw_bits_echo_tl_state_size(axi4yank_auto_in_aw_bits_echo_tl_state_size),
    .auto_in_aw_bits_echo_tl_state_source(axi4yank_auto_in_aw_bits_echo_tl_state_source),
    .auto_in_w_ready(axi4yank_auto_in_w_ready),
    .auto_in_w_valid(axi4yank_auto_in_w_valid),
    .auto_in_w_bits_data(axi4yank_auto_in_w_bits_data),
    .auto_in_w_bits_strb(axi4yank_auto_in_w_bits_strb),
    .auto_in_w_bits_last(axi4yank_auto_in_w_bits_last),
    .auto_in_b_ready(axi4yank_auto_in_b_ready),
    .auto_in_b_valid(axi4yank_auto_in_b_valid),
    .auto_in_b_bits_resp(axi4yank_auto_in_b_bits_resp),
    .auto_in_b_bits_echo_tl_state_size(axi4yank_auto_in_b_bits_echo_tl_state_size),
    .auto_in_b_bits_echo_tl_state_source(axi4yank_auto_in_b_bits_echo_tl_state_source),
    .auto_in_ar_ready(axi4yank_auto_in_ar_ready),
    .auto_in_ar_valid(axi4yank_auto_in_ar_valid),
    .auto_in_ar_bits_id(axi4yank_auto_in_ar_bits_id),
    .auto_in_ar_bits_addr(axi4yank_auto_in_ar_bits_addr),
    .auto_in_ar_bits_len(axi4yank_auto_in_ar_bits_len),
    .auto_in_ar_bits_size(axi4yank_auto_in_ar_bits_size),
    .auto_in_ar_bits_burst(axi4yank_auto_in_ar_bits_burst),
    .auto_in_ar_bits_lock(axi4yank_auto_in_ar_bits_lock),
    .auto_in_ar_bits_cache(axi4yank_auto_in_ar_bits_cache),
    .auto_in_ar_bits_prot(axi4yank_auto_in_ar_bits_prot),
    .auto_in_ar_bits_qos(axi4yank_auto_in_ar_bits_qos),
    .auto_in_ar_bits_echo_tl_state_size(axi4yank_auto_in_ar_bits_echo_tl_state_size),
    .auto_in_ar_bits_echo_tl_state_source(axi4yank_auto_in_ar_bits_echo_tl_state_source),
    .auto_in_r_ready(axi4yank_auto_in_r_ready),
    .auto_in_r_valid(axi4yank_auto_in_r_valid),
    .auto_in_r_bits_data(axi4yank_auto_in_r_bits_data),
    .auto_in_r_bits_resp(axi4yank_auto_in_r_bits_resp),
    .auto_in_r_bits_echo_tl_state_size(axi4yank_auto_in_r_bits_echo_tl_state_size),
    .auto_in_r_bits_echo_tl_state_source(axi4yank_auto_in_r_bits_echo_tl_state_source),
    .auto_in_r_bits_last(axi4yank_auto_in_r_bits_last),
    .auto_out_aw_ready(axi4yank_auto_out_aw_ready),
    .auto_out_aw_valid(axi4yank_auto_out_aw_valid),
    .auto_out_aw_bits_id(axi4yank_auto_out_aw_bits_id),
    .auto_out_aw_bits_addr(axi4yank_auto_out_aw_bits_addr),
    .auto_out_aw_bits_len(axi4yank_auto_out_aw_bits_len),
    .auto_out_aw_bits_size(axi4yank_auto_out_aw_bits_size),
    .auto_out_aw_bits_burst(axi4yank_auto_out_aw_bits_burst),
    .auto_out_aw_bits_lock(axi4yank_auto_out_aw_bits_lock),
    .auto_out_aw_bits_cache(axi4yank_auto_out_aw_bits_cache),
    .auto_out_aw_bits_prot(axi4yank_auto_out_aw_bits_prot),
    .auto_out_aw_bits_qos(axi4yank_auto_out_aw_bits_qos),
    .auto_out_w_ready(axi4yank_auto_out_w_ready),
    .auto_out_w_valid(axi4yank_auto_out_w_valid),
    .auto_out_w_bits_data(axi4yank_auto_out_w_bits_data),
    .auto_out_w_bits_strb(axi4yank_auto_out_w_bits_strb),
    .auto_out_w_bits_last(axi4yank_auto_out_w_bits_last),
    .auto_out_b_ready(axi4yank_auto_out_b_ready),
    .auto_out_b_valid(axi4yank_auto_out_b_valid),
    .auto_out_b_bits_id(axi4yank_auto_out_b_bits_id),
    .auto_out_b_bits_resp(axi4yank_auto_out_b_bits_resp),
    .auto_out_ar_ready(axi4yank_auto_out_ar_ready),
    .auto_out_ar_valid(axi4yank_auto_out_ar_valid),
    .auto_out_ar_bits_id(axi4yank_auto_out_ar_bits_id),
    .auto_out_ar_bits_addr(axi4yank_auto_out_ar_bits_addr),
    .auto_out_ar_bits_len(axi4yank_auto_out_ar_bits_len),
    .auto_out_ar_bits_size(axi4yank_auto_out_ar_bits_size),
    .auto_out_ar_bits_burst(axi4yank_auto_out_ar_bits_burst),
    .auto_out_ar_bits_lock(axi4yank_auto_out_ar_bits_lock),
    .auto_out_ar_bits_cache(axi4yank_auto_out_ar_bits_cache),
    .auto_out_ar_bits_prot(axi4yank_auto_out_ar_bits_prot),
    .auto_out_ar_bits_qos(axi4yank_auto_out_ar_bits_qos),
    .auto_out_r_ready(axi4yank_auto_out_r_ready),
    .auto_out_r_valid(axi4yank_auto_out_r_valid),
    .auto_out_r_bits_id(axi4yank_auto_out_r_bits_id),
    .auto_out_r_bits_data(axi4yank_auto_out_r_bits_data),
    .auto_out_r_bits_resp(axi4yank_auto_out_r_bits_resp),
    .auto_out_r_bits_last(axi4yank_auto_out_r_bits_last)
  );
  AXI4IdIndexer axi4index ( // @[IdIndexer.scala 91:31]
    .auto_in_aw_ready(axi4index_auto_in_aw_ready),
    .auto_in_aw_valid(axi4index_auto_in_aw_valid),
    .auto_in_aw_bits_id(axi4index_auto_in_aw_bits_id),
    .auto_in_aw_bits_addr(axi4index_auto_in_aw_bits_addr),
    .auto_in_aw_bits_len(axi4index_auto_in_aw_bits_len),
    .auto_in_aw_bits_size(axi4index_auto_in_aw_bits_size),
    .auto_in_aw_bits_burst(axi4index_auto_in_aw_bits_burst),
    .auto_in_aw_bits_lock(axi4index_auto_in_aw_bits_lock),
    .auto_in_aw_bits_cache(axi4index_auto_in_aw_bits_cache),
    .auto_in_aw_bits_prot(axi4index_auto_in_aw_bits_prot),
    .auto_in_aw_bits_qos(axi4index_auto_in_aw_bits_qos),
    .auto_in_aw_bits_echo_tl_state_size(axi4index_auto_in_aw_bits_echo_tl_state_size),
    .auto_in_aw_bits_echo_tl_state_source(axi4index_auto_in_aw_bits_echo_tl_state_source),
    .auto_in_w_ready(axi4index_auto_in_w_ready),
    .auto_in_w_valid(axi4index_auto_in_w_valid),
    .auto_in_w_bits_data(axi4index_auto_in_w_bits_data),
    .auto_in_w_bits_strb(axi4index_auto_in_w_bits_strb),
    .auto_in_w_bits_last(axi4index_auto_in_w_bits_last),
    .auto_in_b_ready(axi4index_auto_in_b_ready),
    .auto_in_b_valid(axi4index_auto_in_b_valid),
    .auto_in_b_bits_resp(axi4index_auto_in_b_bits_resp),
    .auto_in_b_bits_echo_tl_state_size(axi4index_auto_in_b_bits_echo_tl_state_size),
    .auto_in_b_bits_echo_tl_state_source(axi4index_auto_in_b_bits_echo_tl_state_source),
    .auto_in_ar_ready(axi4index_auto_in_ar_ready),
    .auto_in_ar_valid(axi4index_auto_in_ar_valid),
    .auto_in_ar_bits_id(axi4index_auto_in_ar_bits_id),
    .auto_in_ar_bits_addr(axi4index_auto_in_ar_bits_addr),
    .auto_in_ar_bits_len(axi4index_auto_in_ar_bits_len),
    .auto_in_ar_bits_size(axi4index_auto_in_ar_bits_size),
    .auto_in_ar_bits_burst(axi4index_auto_in_ar_bits_burst),
    .auto_in_ar_bits_lock(axi4index_auto_in_ar_bits_lock),
    .auto_in_ar_bits_cache(axi4index_auto_in_ar_bits_cache),
    .auto_in_ar_bits_prot(axi4index_auto_in_ar_bits_prot),
    .auto_in_ar_bits_qos(axi4index_auto_in_ar_bits_qos),
    .auto_in_ar_bits_echo_tl_state_size(axi4index_auto_in_ar_bits_echo_tl_state_size),
    .auto_in_ar_bits_echo_tl_state_source(axi4index_auto_in_ar_bits_echo_tl_state_source),
    .auto_in_r_ready(axi4index_auto_in_r_ready),
    .auto_in_r_valid(axi4index_auto_in_r_valid),
    .auto_in_r_bits_data(axi4index_auto_in_r_bits_data),
    .auto_in_r_bits_resp(axi4index_auto_in_r_bits_resp),
    .auto_in_r_bits_echo_tl_state_size(axi4index_auto_in_r_bits_echo_tl_state_size),
    .auto_in_r_bits_echo_tl_state_source(axi4index_auto_in_r_bits_echo_tl_state_source),
    .auto_in_r_bits_last(axi4index_auto_in_r_bits_last),
    .auto_out_aw_ready(axi4index_auto_out_aw_ready),
    .auto_out_aw_valid(axi4index_auto_out_aw_valid),
    .auto_out_aw_bits_id(axi4index_auto_out_aw_bits_id),
    .auto_out_aw_bits_addr(axi4index_auto_out_aw_bits_addr),
    .auto_out_aw_bits_len(axi4index_auto_out_aw_bits_len),
    .auto_out_aw_bits_size(axi4index_auto_out_aw_bits_size),
    .auto_out_aw_bits_burst(axi4index_auto_out_aw_bits_burst),
    .auto_out_aw_bits_lock(axi4index_auto_out_aw_bits_lock),
    .auto_out_aw_bits_cache(axi4index_auto_out_aw_bits_cache),
    .auto_out_aw_bits_prot(axi4index_auto_out_aw_bits_prot),
    .auto_out_aw_bits_qos(axi4index_auto_out_aw_bits_qos),
    .auto_out_aw_bits_echo_tl_state_size(axi4index_auto_out_aw_bits_echo_tl_state_size),
    .auto_out_aw_bits_echo_tl_state_source(axi4index_auto_out_aw_bits_echo_tl_state_source),
    .auto_out_w_ready(axi4index_auto_out_w_ready),
    .auto_out_w_valid(axi4index_auto_out_w_valid),
    .auto_out_w_bits_data(axi4index_auto_out_w_bits_data),
    .auto_out_w_bits_strb(axi4index_auto_out_w_bits_strb),
    .auto_out_w_bits_last(axi4index_auto_out_w_bits_last),
    .auto_out_b_ready(axi4index_auto_out_b_ready),
    .auto_out_b_valid(axi4index_auto_out_b_valid),
    .auto_out_b_bits_resp(axi4index_auto_out_b_bits_resp),
    .auto_out_b_bits_echo_tl_state_size(axi4index_auto_out_b_bits_echo_tl_state_size),
    .auto_out_b_bits_echo_tl_state_source(axi4index_auto_out_b_bits_echo_tl_state_source),
    .auto_out_ar_ready(axi4index_auto_out_ar_ready),
    .auto_out_ar_valid(axi4index_auto_out_ar_valid),
    .auto_out_ar_bits_id(axi4index_auto_out_ar_bits_id),
    .auto_out_ar_bits_addr(axi4index_auto_out_ar_bits_addr),
    .auto_out_ar_bits_len(axi4index_auto_out_ar_bits_len),
    .auto_out_ar_bits_size(axi4index_auto_out_ar_bits_size),
    .auto_out_ar_bits_burst(axi4index_auto_out_ar_bits_burst),
    .auto_out_ar_bits_lock(axi4index_auto_out_ar_bits_lock),
    .auto_out_ar_bits_cache(axi4index_auto_out_ar_bits_cache),
    .auto_out_ar_bits_prot(axi4index_auto_out_ar_bits_prot),
    .auto_out_ar_bits_qos(axi4index_auto_out_ar_bits_qos),
    .auto_out_ar_bits_echo_tl_state_size(axi4index_auto_out_ar_bits_echo_tl_state_size),
    .auto_out_ar_bits_echo_tl_state_source(axi4index_auto_out_ar_bits_echo_tl_state_source),
    .auto_out_r_ready(axi4index_auto_out_r_ready),
    .auto_out_r_valid(axi4index_auto_out_r_valid),
    .auto_out_r_bits_data(axi4index_auto_out_r_bits_data),
    .auto_out_r_bits_resp(axi4index_auto_out_r_bits_resp),
    .auto_out_r_bits_echo_tl_state_size(axi4index_auto_out_r_bits_echo_tl_state_size),
    .auto_out_r_bits_echo_tl_state_source(axi4index_auto_out_r_bits_echo_tl_state_source),
    .auto_out_r_bits_last(axi4index_auto_out_r_bits_last)
  );
  AXI4Deinterleaver axi4deint ( // @[Deinterleaver.scala 140:31]
    .clock(axi4deint_clock),
    .reset(axi4deint_reset),
    .auto_in_aw_ready(axi4deint_auto_in_aw_ready),
    .auto_in_aw_valid(axi4deint_auto_in_aw_valid),
    .auto_in_aw_bits_id(axi4deint_auto_in_aw_bits_id),
    .auto_in_aw_bits_addr(axi4deint_auto_in_aw_bits_addr),
    .auto_in_aw_bits_len(axi4deint_auto_in_aw_bits_len),
    .auto_in_aw_bits_size(axi4deint_auto_in_aw_bits_size),
    .auto_in_aw_bits_burst(axi4deint_auto_in_aw_bits_burst),
    .auto_in_aw_bits_lock(axi4deint_auto_in_aw_bits_lock),
    .auto_in_aw_bits_cache(axi4deint_auto_in_aw_bits_cache),
    .auto_in_aw_bits_prot(axi4deint_auto_in_aw_bits_prot),
    .auto_in_aw_bits_qos(axi4deint_auto_in_aw_bits_qos),
    .auto_in_aw_bits_echo_tl_state_size(axi4deint_auto_in_aw_bits_echo_tl_state_size),
    .auto_in_aw_bits_echo_tl_state_source(axi4deint_auto_in_aw_bits_echo_tl_state_source),
    .auto_in_w_ready(axi4deint_auto_in_w_ready),
    .auto_in_w_valid(axi4deint_auto_in_w_valid),
    .auto_in_w_bits_data(axi4deint_auto_in_w_bits_data),
    .auto_in_w_bits_strb(axi4deint_auto_in_w_bits_strb),
    .auto_in_w_bits_last(axi4deint_auto_in_w_bits_last),
    .auto_in_b_ready(axi4deint_auto_in_b_ready),
    .auto_in_b_valid(axi4deint_auto_in_b_valid),
    .auto_in_b_bits_resp(axi4deint_auto_in_b_bits_resp),
    .auto_in_b_bits_echo_tl_state_size(axi4deint_auto_in_b_bits_echo_tl_state_size),
    .auto_in_b_bits_echo_tl_state_source(axi4deint_auto_in_b_bits_echo_tl_state_source),
    .auto_in_ar_ready(axi4deint_auto_in_ar_ready),
    .auto_in_ar_valid(axi4deint_auto_in_ar_valid),
    .auto_in_ar_bits_id(axi4deint_auto_in_ar_bits_id),
    .auto_in_ar_bits_addr(axi4deint_auto_in_ar_bits_addr),
    .auto_in_ar_bits_len(axi4deint_auto_in_ar_bits_len),
    .auto_in_ar_bits_size(axi4deint_auto_in_ar_bits_size),
    .auto_in_ar_bits_burst(axi4deint_auto_in_ar_bits_burst),
    .auto_in_ar_bits_lock(axi4deint_auto_in_ar_bits_lock),
    .auto_in_ar_bits_cache(axi4deint_auto_in_ar_bits_cache),
    .auto_in_ar_bits_prot(axi4deint_auto_in_ar_bits_prot),
    .auto_in_ar_bits_qos(axi4deint_auto_in_ar_bits_qos),
    .auto_in_ar_bits_echo_tl_state_size(axi4deint_auto_in_ar_bits_echo_tl_state_size),
    .auto_in_ar_bits_echo_tl_state_source(axi4deint_auto_in_ar_bits_echo_tl_state_source),
    .auto_in_r_ready(axi4deint_auto_in_r_ready),
    .auto_in_r_valid(axi4deint_auto_in_r_valid),
    .auto_in_r_bits_data(axi4deint_auto_in_r_bits_data),
    .auto_in_r_bits_resp(axi4deint_auto_in_r_bits_resp),
    .auto_in_r_bits_echo_tl_state_size(axi4deint_auto_in_r_bits_echo_tl_state_size),
    .auto_in_r_bits_echo_tl_state_source(axi4deint_auto_in_r_bits_echo_tl_state_source),
    .auto_in_r_bits_last(axi4deint_auto_in_r_bits_last),
    .auto_out_aw_ready(axi4deint_auto_out_aw_ready),
    .auto_out_aw_valid(axi4deint_auto_out_aw_valid),
    .auto_out_aw_bits_id(axi4deint_auto_out_aw_bits_id),
    .auto_out_aw_bits_addr(axi4deint_auto_out_aw_bits_addr),
    .auto_out_aw_bits_len(axi4deint_auto_out_aw_bits_len),
    .auto_out_aw_bits_size(axi4deint_auto_out_aw_bits_size),
    .auto_out_aw_bits_burst(axi4deint_auto_out_aw_bits_burst),
    .auto_out_aw_bits_lock(axi4deint_auto_out_aw_bits_lock),
    .auto_out_aw_bits_cache(axi4deint_auto_out_aw_bits_cache),
    .auto_out_aw_bits_prot(axi4deint_auto_out_aw_bits_prot),
    .auto_out_aw_bits_qos(axi4deint_auto_out_aw_bits_qos),
    .auto_out_aw_bits_echo_tl_state_size(axi4deint_auto_out_aw_bits_echo_tl_state_size),
    .auto_out_aw_bits_echo_tl_state_source(axi4deint_auto_out_aw_bits_echo_tl_state_source),
    .auto_out_w_ready(axi4deint_auto_out_w_ready),
    .auto_out_w_valid(axi4deint_auto_out_w_valid),
    .auto_out_w_bits_data(axi4deint_auto_out_w_bits_data),
    .auto_out_w_bits_strb(axi4deint_auto_out_w_bits_strb),
    .auto_out_w_bits_last(axi4deint_auto_out_w_bits_last),
    .auto_out_b_ready(axi4deint_auto_out_b_ready),
    .auto_out_b_valid(axi4deint_auto_out_b_valid),
    .auto_out_b_bits_resp(axi4deint_auto_out_b_bits_resp),
    .auto_out_b_bits_echo_tl_state_size(axi4deint_auto_out_b_bits_echo_tl_state_size),
    .auto_out_b_bits_echo_tl_state_source(axi4deint_auto_out_b_bits_echo_tl_state_source),
    .auto_out_ar_ready(axi4deint_auto_out_ar_ready),
    .auto_out_ar_valid(axi4deint_auto_out_ar_valid),
    .auto_out_ar_bits_id(axi4deint_auto_out_ar_bits_id),
    .auto_out_ar_bits_addr(axi4deint_auto_out_ar_bits_addr),
    .auto_out_ar_bits_len(axi4deint_auto_out_ar_bits_len),
    .auto_out_ar_bits_size(axi4deint_auto_out_ar_bits_size),
    .auto_out_ar_bits_burst(axi4deint_auto_out_ar_bits_burst),
    .auto_out_ar_bits_lock(axi4deint_auto_out_ar_bits_lock),
    .auto_out_ar_bits_cache(axi4deint_auto_out_ar_bits_cache),
    .auto_out_ar_bits_prot(axi4deint_auto_out_ar_bits_prot),
    .auto_out_ar_bits_qos(axi4deint_auto_out_ar_bits_qos),
    .auto_out_ar_bits_echo_tl_state_size(axi4deint_auto_out_ar_bits_echo_tl_state_size),
    .auto_out_ar_bits_echo_tl_state_source(axi4deint_auto_out_ar_bits_echo_tl_state_source),
    .auto_out_r_ready(axi4deint_auto_out_r_ready),
    .auto_out_r_valid(axi4deint_auto_out_r_valid),
    .auto_out_r_bits_data(axi4deint_auto_out_r_bits_data),
    .auto_out_r_bits_resp(axi4deint_auto_out_r_bits_resp),
    .auto_out_r_bits_echo_tl_state_size(axi4deint_auto_out_r_bits_echo_tl_state_size),
    .auto_out_r_bits_echo_tl_state_source(axi4deint_auto_out_r_bits_echo_tl_state_source),
    .auto_out_r_bits_last(axi4deint_auto_out_r_bits_last)
  );
  TLToAXI4 tl2axi4 ( // @[ToAXI4.scala 283:29]
    .clock(tl2axi4_clock),
    .reset(tl2axi4_reset),
    .auto_in_a_ready(tl2axi4_auto_in_a_ready),
    .auto_in_a_valid(tl2axi4_auto_in_a_valid),
    .auto_in_a_bits_opcode(tl2axi4_auto_in_a_bits_opcode),
    .auto_in_a_bits_address(tl2axi4_auto_in_a_bits_address),
    .auto_in_a_bits_mask(tl2axi4_auto_in_a_bits_mask),
    .auto_in_a_bits_data(tl2axi4_auto_in_a_bits_data),
    .auto_in_d_ready(tl2axi4_auto_in_d_ready),
    .auto_in_d_valid(tl2axi4_auto_in_d_valid),
    .auto_in_d_bits_opcode(tl2axi4_auto_in_d_bits_opcode),
    .auto_in_d_bits_size(tl2axi4_auto_in_d_bits_size),
    .auto_in_d_bits_source(tl2axi4_auto_in_d_bits_source),
    .auto_in_d_bits_denied(tl2axi4_auto_in_d_bits_denied),
    .auto_in_d_bits_data(tl2axi4_auto_in_d_bits_data),
    .auto_in_d_bits_corrupt(tl2axi4_auto_in_d_bits_corrupt),
    .auto_out_aw_ready(tl2axi4_auto_out_aw_ready),
    .auto_out_aw_valid(tl2axi4_auto_out_aw_valid),
    .auto_out_aw_bits_id(tl2axi4_auto_out_aw_bits_id),
    .auto_out_aw_bits_addr(tl2axi4_auto_out_aw_bits_addr),
    .auto_out_aw_bits_len(tl2axi4_auto_out_aw_bits_len),
    .auto_out_aw_bits_size(tl2axi4_auto_out_aw_bits_size),
    .auto_out_aw_bits_burst(tl2axi4_auto_out_aw_bits_burst),
    .auto_out_aw_bits_lock(tl2axi4_auto_out_aw_bits_lock),
    .auto_out_aw_bits_cache(tl2axi4_auto_out_aw_bits_cache),
    .auto_out_aw_bits_prot(tl2axi4_auto_out_aw_bits_prot),
    .auto_out_aw_bits_qos(tl2axi4_auto_out_aw_bits_qos),
    .auto_out_aw_bits_echo_tl_state_size(tl2axi4_auto_out_aw_bits_echo_tl_state_size),
    .auto_out_aw_bits_echo_tl_state_source(tl2axi4_auto_out_aw_bits_echo_tl_state_source),
    .auto_out_w_ready(tl2axi4_auto_out_w_ready),
    .auto_out_w_valid(tl2axi4_auto_out_w_valid),
    .auto_out_w_bits_data(tl2axi4_auto_out_w_bits_data),
    .auto_out_w_bits_strb(tl2axi4_auto_out_w_bits_strb),
    .auto_out_w_bits_last(tl2axi4_auto_out_w_bits_last),
    .auto_out_b_ready(tl2axi4_auto_out_b_ready),
    .auto_out_b_valid(tl2axi4_auto_out_b_valid),
    .auto_out_b_bits_resp(tl2axi4_auto_out_b_bits_resp),
    .auto_out_b_bits_echo_tl_state_size(tl2axi4_auto_out_b_bits_echo_tl_state_size),
    .auto_out_b_bits_echo_tl_state_source(tl2axi4_auto_out_b_bits_echo_tl_state_source),
    .auto_out_ar_ready(tl2axi4_auto_out_ar_ready),
    .auto_out_ar_valid(tl2axi4_auto_out_ar_valid),
    .auto_out_ar_bits_id(tl2axi4_auto_out_ar_bits_id),
    .auto_out_ar_bits_addr(tl2axi4_auto_out_ar_bits_addr),
    .auto_out_ar_bits_len(tl2axi4_auto_out_ar_bits_len),
    .auto_out_ar_bits_size(tl2axi4_auto_out_ar_bits_size),
    .auto_out_ar_bits_burst(tl2axi4_auto_out_ar_bits_burst),
    .auto_out_ar_bits_lock(tl2axi4_auto_out_ar_bits_lock),
    .auto_out_ar_bits_cache(tl2axi4_auto_out_ar_bits_cache),
    .auto_out_ar_bits_prot(tl2axi4_auto_out_ar_bits_prot),
    .auto_out_ar_bits_qos(tl2axi4_auto_out_ar_bits_qos),
    .auto_out_ar_bits_echo_tl_state_size(tl2axi4_auto_out_ar_bits_echo_tl_state_size),
    .auto_out_ar_bits_echo_tl_state_source(tl2axi4_auto_out_ar_bits_echo_tl_state_source),
    .auto_out_r_ready(tl2axi4_auto_out_r_ready),
    .auto_out_r_valid(tl2axi4_auto_out_r_valid),
    .auto_out_r_bits_data(tl2axi4_auto_out_r_bits_data),
    .auto_out_r_bits_resp(tl2axi4_auto_out_r_bits_resp),
    .auto_out_r_bits_echo_tl_state_size(tl2axi4_auto_out_r_bits_echo_tl_state_size),
    .auto_out_r_bits_echo_tl_state_source(tl2axi4_auto_out_r_bits_echo_tl_state_source),
    .auto_out_r_bits_last(tl2axi4_auto_out_r_bits_last)
  );
  TLWidthWidget_1 widget ( // @[WidthWidget.scala 219:28]
    .clock(widget_clock),
    .reset(widget_reset),
    .auto_in_a_ready(widget_auto_in_a_ready),
    .auto_in_a_valid(widget_auto_in_a_valid),
    .auto_in_a_bits_opcode(widget_auto_in_a_bits_opcode),
    .auto_in_a_bits_address(widget_auto_in_a_bits_address),
    .auto_in_a_bits_mask(widget_auto_in_a_bits_mask),
    .auto_in_a_bits_data(widget_auto_in_a_bits_data),
    .auto_in_d_ready(widget_auto_in_d_ready),
    .auto_in_d_valid(widget_auto_in_d_valid),
    .auto_in_d_bits_opcode(widget_auto_in_d_bits_opcode),
    .auto_in_d_bits_size(widget_auto_in_d_bits_size),
    .auto_in_d_bits_denied(widget_auto_in_d_bits_denied),
    .auto_in_d_bits_data(widget_auto_in_d_bits_data),
    .auto_in_d_bits_corrupt(widget_auto_in_d_bits_corrupt),
    .auto_out_a_ready(widget_auto_out_a_ready),
    .auto_out_a_valid(widget_auto_out_a_valid),
    .auto_out_a_bits_opcode(widget_auto_out_a_bits_opcode),
    .auto_out_a_bits_address(widget_auto_out_a_bits_address),
    .auto_out_a_bits_mask(widget_auto_out_a_bits_mask),
    .auto_out_a_bits_data(widget_auto_out_a_bits_data),
    .auto_out_d_ready(widget_auto_out_d_ready),
    .auto_out_d_valid(widget_auto_out_d_valid),
    .auto_out_d_bits_opcode(widget_auto_out_d_bits_opcode),
    .auto_out_d_bits_size(widget_auto_out_d_bits_size),
    .auto_out_d_bits_source(widget_auto_out_d_bits_source),
    .auto_out_d_bits_denied(widget_auto_out_d_bits_denied),
    .auto_out_d_bits_data(widget_auto_out_d_bits_data),
    .auto_out_d_bits_corrupt(widget_auto_out_d_bits_corrupt)
  );
  AXI4UserYanker_1 axi4yank_1 ( // @[UserYanker.scala 105:30]
    .clock(axi4yank_1_clock),
    .reset(axi4yank_1_reset),
    .auto_in_aw_ready(axi4yank_1_auto_in_aw_ready),
    .auto_in_aw_valid(axi4yank_1_auto_in_aw_valid),
    .auto_in_aw_bits_id(axi4yank_1_auto_in_aw_bits_id),
    .auto_in_aw_bits_addr(axi4yank_1_auto_in_aw_bits_addr),
    .auto_in_aw_bits_len(axi4yank_1_auto_in_aw_bits_len),
    .auto_in_aw_bits_size(axi4yank_1_auto_in_aw_bits_size),
    .auto_in_aw_bits_burst(axi4yank_1_auto_in_aw_bits_burst),
    .auto_in_aw_bits_lock(axi4yank_1_auto_in_aw_bits_lock),
    .auto_in_aw_bits_cache(axi4yank_1_auto_in_aw_bits_cache),
    .auto_in_aw_bits_prot(axi4yank_1_auto_in_aw_bits_prot),
    .auto_in_aw_bits_qos(axi4yank_1_auto_in_aw_bits_qos),
    .auto_in_aw_bits_echo_tl_state_size(axi4yank_1_auto_in_aw_bits_echo_tl_state_size),
    .auto_in_aw_bits_echo_tl_state_source(axi4yank_1_auto_in_aw_bits_echo_tl_state_source),
    .auto_in_w_ready(axi4yank_1_auto_in_w_ready),
    .auto_in_w_valid(axi4yank_1_auto_in_w_valid),
    .auto_in_w_bits_data(axi4yank_1_auto_in_w_bits_data),
    .auto_in_w_bits_strb(axi4yank_1_auto_in_w_bits_strb),
    .auto_in_w_bits_last(axi4yank_1_auto_in_w_bits_last),
    .auto_in_b_ready(axi4yank_1_auto_in_b_ready),
    .auto_in_b_valid(axi4yank_1_auto_in_b_valid),
    .auto_in_b_bits_resp(axi4yank_1_auto_in_b_bits_resp),
    .auto_in_b_bits_echo_tl_state_size(axi4yank_1_auto_in_b_bits_echo_tl_state_size),
    .auto_in_b_bits_echo_tl_state_source(axi4yank_1_auto_in_b_bits_echo_tl_state_source),
    .auto_in_ar_ready(axi4yank_1_auto_in_ar_ready),
    .auto_in_ar_valid(axi4yank_1_auto_in_ar_valid),
    .auto_in_ar_bits_id(axi4yank_1_auto_in_ar_bits_id),
    .auto_in_ar_bits_addr(axi4yank_1_auto_in_ar_bits_addr),
    .auto_in_ar_bits_len(axi4yank_1_auto_in_ar_bits_len),
    .auto_in_ar_bits_size(axi4yank_1_auto_in_ar_bits_size),
    .auto_in_ar_bits_burst(axi4yank_1_auto_in_ar_bits_burst),
    .auto_in_ar_bits_lock(axi4yank_1_auto_in_ar_bits_lock),
    .auto_in_ar_bits_cache(axi4yank_1_auto_in_ar_bits_cache),
    .auto_in_ar_bits_prot(axi4yank_1_auto_in_ar_bits_prot),
    .auto_in_ar_bits_qos(axi4yank_1_auto_in_ar_bits_qos),
    .auto_in_ar_bits_echo_tl_state_size(axi4yank_1_auto_in_ar_bits_echo_tl_state_size),
    .auto_in_ar_bits_echo_tl_state_source(axi4yank_1_auto_in_ar_bits_echo_tl_state_source),
    .auto_in_r_ready(axi4yank_1_auto_in_r_ready),
    .auto_in_r_valid(axi4yank_1_auto_in_r_valid),
    .auto_in_r_bits_data(axi4yank_1_auto_in_r_bits_data),
    .auto_in_r_bits_resp(axi4yank_1_auto_in_r_bits_resp),
    .auto_in_r_bits_echo_tl_state_size(axi4yank_1_auto_in_r_bits_echo_tl_state_size),
    .auto_in_r_bits_echo_tl_state_source(axi4yank_1_auto_in_r_bits_echo_tl_state_source),
    .auto_in_r_bits_last(axi4yank_1_auto_in_r_bits_last),
    .auto_out_aw_ready(axi4yank_1_auto_out_aw_ready),
    .auto_out_aw_valid(axi4yank_1_auto_out_aw_valid),
    .auto_out_aw_bits_id(axi4yank_1_auto_out_aw_bits_id),
    .auto_out_aw_bits_addr(axi4yank_1_auto_out_aw_bits_addr),
    .auto_out_aw_bits_len(axi4yank_1_auto_out_aw_bits_len),
    .auto_out_aw_bits_size(axi4yank_1_auto_out_aw_bits_size),
    .auto_out_aw_bits_burst(axi4yank_1_auto_out_aw_bits_burst),
    .auto_out_aw_bits_lock(axi4yank_1_auto_out_aw_bits_lock),
    .auto_out_aw_bits_cache(axi4yank_1_auto_out_aw_bits_cache),
    .auto_out_aw_bits_prot(axi4yank_1_auto_out_aw_bits_prot),
    .auto_out_aw_bits_qos(axi4yank_1_auto_out_aw_bits_qos),
    .auto_out_w_ready(axi4yank_1_auto_out_w_ready),
    .auto_out_w_valid(axi4yank_1_auto_out_w_valid),
    .auto_out_w_bits_data(axi4yank_1_auto_out_w_bits_data),
    .auto_out_w_bits_strb(axi4yank_1_auto_out_w_bits_strb),
    .auto_out_w_bits_last(axi4yank_1_auto_out_w_bits_last),
    .auto_out_b_ready(axi4yank_1_auto_out_b_ready),
    .auto_out_b_valid(axi4yank_1_auto_out_b_valid),
    .auto_out_b_bits_id(axi4yank_1_auto_out_b_bits_id),
    .auto_out_b_bits_resp(axi4yank_1_auto_out_b_bits_resp),
    .auto_out_ar_ready(axi4yank_1_auto_out_ar_ready),
    .auto_out_ar_valid(axi4yank_1_auto_out_ar_valid),
    .auto_out_ar_bits_id(axi4yank_1_auto_out_ar_bits_id),
    .auto_out_ar_bits_addr(axi4yank_1_auto_out_ar_bits_addr),
    .auto_out_ar_bits_len(axi4yank_1_auto_out_ar_bits_len),
    .auto_out_ar_bits_size(axi4yank_1_auto_out_ar_bits_size),
    .auto_out_ar_bits_burst(axi4yank_1_auto_out_ar_bits_burst),
    .auto_out_ar_bits_lock(axi4yank_1_auto_out_ar_bits_lock),
    .auto_out_ar_bits_cache(axi4yank_1_auto_out_ar_bits_cache),
    .auto_out_ar_bits_prot(axi4yank_1_auto_out_ar_bits_prot),
    .auto_out_ar_bits_qos(axi4yank_1_auto_out_ar_bits_qos),
    .auto_out_r_ready(axi4yank_1_auto_out_r_ready),
    .auto_out_r_valid(axi4yank_1_auto_out_r_valid),
    .auto_out_r_bits_id(axi4yank_1_auto_out_r_bits_id),
    .auto_out_r_bits_data(axi4yank_1_auto_out_r_bits_data),
    .auto_out_r_bits_resp(axi4yank_1_auto_out_r_bits_resp),
    .auto_out_r_bits_last(axi4yank_1_auto_out_r_bits_last)
  );
  AXI4IdIndexer_1 axi4index_1 ( // @[IdIndexer.scala 91:31]
    .auto_in_aw_ready(axi4index_1_auto_in_aw_ready),
    .auto_in_aw_valid(axi4index_1_auto_in_aw_valid),
    .auto_in_aw_bits_id(axi4index_1_auto_in_aw_bits_id),
    .auto_in_aw_bits_addr(axi4index_1_auto_in_aw_bits_addr),
    .auto_in_aw_bits_len(axi4index_1_auto_in_aw_bits_len),
    .auto_in_aw_bits_size(axi4index_1_auto_in_aw_bits_size),
    .auto_in_aw_bits_burst(axi4index_1_auto_in_aw_bits_burst),
    .auto_in_aw_bits_lock(axi4index_1_auto_in_aw_bits_lock),
    .auto_in_aw_bits_cache(axi4index_1_auto_in_aw_bits_cache),
    .auto_in_aw_bits_prot(axi4index_1_auto_in_aw_bits_prot),
    .auto_in_aw_bits_qos(axi4index_1_auto_in_aw_bits_qos),
    .auto_in_aw_bits_echo_tl_state_size(axi4index_1_auto_in_aw_bits_echo_tl_state_size),
    .auto_in_aw_bits_echo_tl_state_source(axi4index_1_auto_in_aw_bits_echo_tl_state_source),
    .auto_in_w_ready(axi4index_1_auto_in_w_ready),
    .auto_in_w_valid(axi4index_1_auto_in_w_valid),
    .auto_in_w_bits_data(axi4index_1_auto_in_w_bits_data),
    .auto_in_w_bits_strb(axi4index_1_auto_in_w_bits_strb),
    .auto_in_w_bits_last(axi4index_1_auto_in_w_bits_last),
    .auto_in_b_ready(axi4index_1_auto_in_b_ready),
    .auto_in_b_valid(axi4index_1_auto_in_b_valid),
    .auto_in_b_bits_resp(axi4index_1_auto_in_b_bits_resp),
    .auto_in_b_bits_echo_tl_state_size(axi4index_1_auto_in_b_bits_echo_tl_state_size),
    .auto_in_b_bits_echo_tl_state_source(axi4index_1_auto_in_b_bits_echo_tl_state_source),
    .auto_in_ar_ready(axi4index_1_auto_in_ar_ready),
    .auto_in_ar_valid(axi4index_1_auto_in_ar_valid),
    .auto_in_ar_bits_id(axi4index_1_auto_in_ar_bits_id),
    .auto_in_ar_bits_addr(axi4index_1_auto_in_ar_bits_addr),
    .auto_in_ar_bits_len(axi4index_1_auto_in_ar_bits_len),
    .auto_in_ar_bits_size(axi4index_1_auto_in_ar_bits_size),
    .auto_in_ar_bits_burst(axi4index_1_auto_in_ar_bits_burst),
    .auto_in_ar_bits_lock(axi4index_1_auto_in_ar_bits_lock),
    .auto_in_ar_bits_cache(axi4index_1_auto_in_ar_bits_cache),
    .auto_in_ar_bits_prot(axi4index_1_auto_in_ar_bits_prot),
    .auto_in_ar_bits_qos(axi4index_1_auto_in_ar_bits_qos),
    .auto_in_ar_bits_echo_tl_state_size(axi4index_1_auto_in_ar_bits_echo_tl_state_size),
    .auto_in_ar_bits_echo_tl_state_source(axi4index_1_auto_in_ar_bits_echo_tl_state_source),
    .auto_in_r_ready(axi4index_1_auto_in_r_ready),
    .auto_in_r_valid(axi4index_1_auto_in_r_valid),
    .auto_in_r_bits_data(axi4index_1_auto_in_r_bits_data),
    .auto_in_r_bits_resp(axi4index_1_auto_in_r_bits_resp),
    .auto_in_r_bits_echo_tl_state_size(axi4index_1_auto_in_r_bits_echo_tl_state_size),
    .auto_in_r_bits_echo_tl_state_source(axi4index_1_auto_in_r_bits_echo_tl_state_source),
    .auto_in_r_bits_last(axi4index_1_auto_in_r_bits_last),
    .auto_out_aw_ready(axi4index_1_auto_out_aw_ready),
    .auto_out_aw_valid(axi4index_1_auto_out_aw_valid),
    .auto_out_aw_bits_id(axi4index_1_auto_out_aw_bits_id),
    .auto_out_aw_bits_addr(axi4index_1_auto_out_aw_bits_addr),
    .auto_out_aw_bits_len(axi4index_1_auto_out_aw_bits_len),
    .auto_out_aw_bits_size(axi4index_1_auto_out_aw_bits_size),
    .auto_out_aw_bits_burst(axi4index_1_auto_out_aw_bits_burst),
    .auto_out_aw_bits_lock(axi4index_1_auto_out_aw_bits_lock),
    .auto_out_aw_bits_cache(axi4index_1_auto_out_aw_bits_cache),
    .auto_out_aw_bits_prot(axi4index_1_auto_out_aw_bits_prot),
    .auto_out_aw_bits_qos(axi4index_1_auto_out_aw_bits_qos),
    .auto_out_aw_bits_echo_tl_state_size(axi4index_1_auto_out_aw_bits_echo_tl_state_size),
    .auto_out_aw_bits_echo_tl_state_source(axi4index_1_auto_out_aw_bits_echo_tl_state_source),
    .auto_out_w_ready(axi4index_1_auto_out_w_ready),
    .auto_out_w_valid(axi4index_1_auto_out_w_valid),
    .auto_out_w_bits_data(axi4index_1_auto_out_w_bits_data),
    .auto_out_w_bits_strb(axi4index_1_auto_out_w_bits_strb),
    .auto_out_w_bits_last(axi4index_1_auto_out_w_bits_last),
    .auto_out_b_ready(axi4index_1_auto_out_b_ready),
    .auto_out_b_valid(axi4index_1_auto_out_b_valid),
    .auto_out_b_bits_resp(axi4index_1_auto_out_b_bits_resp),
    .auto_out_b_bits_echo_tl_state_size(axi4index_1_auto_out_b_bits_echo_tl_state_size),
    .auto_out_b_bits_echo_tl_state_source(axi4index_1_auto_out_b_bits_echo_tl_state_source),
    .auto_out_ar_ready(axi4index_1_auto_out_ar_ready),
    .auto_out_ar_valid(axi4index_1_auto_out_ar_valid),
    .auto_out_ar_bits_id(axi4index_1_auto_out_ar_bits_id),
    .auto_out_ar_bits_addr(axi4index_1_auto_out_ar_bits_addr),
    .auto_out_ar_bits_len(axi4index_1_auto_out_ar_bits_len),
    .auto_out_ar_bits_size(axi4index_1_auto_out_ar_bits_size),
    .auto_out_ar_bits_burst(axi4index_1_auto_out_ar_bits_burst),
    .auto_out_ar_bits_lock(axi4index_1_auto_out_ar_bits_lock),
    .auto_out_ar_bits_cache(axi4index_1_auto_out_ar_bits_cache),
    .auto_out_ar_bits_prot(axi4index_1_auto_out_ar_bits_prot),
    .auto_out_ar_bits_qos(axi4index_1_auto_out_ar_bits_qos),
    .auto_out_ar_bits_echo_tl_state_size(axi4index_1_auto_out_ar_bits_echo_tl_state_size),
    .auto_out_ar_bits_echo_tl_state_source(axi4index_1_auto_out_ar_bits_echo_tl_state_source),
    .auto_out_r_ready(axi4index_1_auto_out_r_ready),
    .auto_out_r_valid(axi4index_1_auto_out_r_valid),
    .auto_out_r_bits_data(axi4index_1_auto_out_r_bits_data),
    .auto_out_r_bits_resp(axi4index_1_auto_out_r_bits_resp),
    .auto_out_r_bits_echo_tl_state_size(axi4index_1_auto_out_r_bits_echo_tl_state_size),
    .auto_out_r_bits_echo_tl_state_source(axi4index_1_auto_out_r_bits_echo_tl_state_source),
    .auto_out_r_bits_last(axi4index_1_auto_out_r_bits_last)
  );
  AXI4Deinterleaver_1 axi4deint_1 ( // @[Deinterleaver.scala 140:31]
    .clock(axi4deint_1_clock),
    .reset(axi4deint_1_reset),
    .auto_in_aw_ready(axi4deint_1_auto_in_aw_ready),
    .auto_in_aw_valid(axi4deint_1_auto_in_aw_valid),
    .auto_in_aw_bits_id(axi4deint_1_auto_in_aw_bits_id),
    .auto_in_aw_bits_addr(axi4deint_1_auto_in_aw_bits_addr),
    .auto_in_aw_bits_len(axi4deint_1_auto_in_aw_bits_len),
    .auto_in_aw_bits_size(axi4deint_1_auto_in_aw_bits_size),
    .auto_in_aw_bits_burst(axi4deint_1_auto_in_aw_bits_burst),
    .auto_in_aw_bits_lock(axi4deint_1_auto_in_aw_bits_lock),
    .auto_in_aw_bits_cache(axi4deint_1_auto_in_aw_bits_cache),
    .auto_in_aw_bits_prot(axi4deint_1_auto_in_aw_bits_prot),
    .auto_in_aw_bits_qos(axi4deint_1_auto_in_aw_bits_qos),
    .auto_in_aw_bits_echo_tl_state_size(axi4deint_1_auto_in_aw_bits_echo_tl_state_size),
    .auto_in_aw_bits_echo_tl_state_source(axi4deint_1_auto_in_aw_bits_echo_tl_state_source),
    .auto_in_w_ready(axi4deint_1_auto_in_w_ready),
    .auto_in_w_valid(axi4deint_1_auto_in_w_valid),
    .auto_in_w_bits_data(axi4deint_1_auto_in_w_bits_data),
    .auto_in_w_bits_strb(axi4deint_1_auto_in_w_bits_strb),
    .auto_in_w_bits_last(axi4deint_1_auto_in_w_bits_last),
    .auto_in_b_ready(axi4deint_1_auto_in_b_ready),
    .auto_in_b_valid(axi4deint_1_auto_in_b_valid),
    .auto_in_b_bits_resp(axi4deint_1_auto_in_b_bits_resp),
    .auto_in_b_bits_echo_tl_state_size(axi4deint_1_auto_in_b_bits_echo_tl_state_size),
    .auto_in_b_bits_echo_tl_state_source(axi4deint_1_auto_in_b_bits_echo_tl_state_source),
    .auto_in_ar_ready(axi4deint_1_auto_in_ar_ready),
    .auto_in_ar_valid(axi4deint_1_auto_in_ar_valid),
    .auto_in_ar_bits_id(axi4deint_1_auto_in_ar_bits_id),
    .auto_in_ar_bits_addr(axi4deint_1_auto_in_ar_bits_addr),
    .auto_in_ar_bits_len(axi4deint_1_auto_in_ar_bits_len),
    .auto_in_ar_bits_size(axi4deint_1_auto_in_ar_bits_size),
    .auto_in_ar_bits_burst(axi4deint_1_auto_in_ar_bits_burst),
    .auto_in_ar_bits_lock(axi4deint_1_auto_in_ar_bits_lock),
    .auto_in_ar_bits_cache(axi4deint_1_auto_in_ar_bits_cache),
    .auto_in_ar_bits_prot(axi4deint_1_auto_in_ar_bits_prot),
    .auto_in_ar_bits_qos(axi4deint_1_auto_in_ar_bits_qos),
    .auto_in_ar_bits_echo_tl_state_size(axi4deint_1_auto_in_ar_bits_echo_tl_state_size),
    .auto_in_ar_bits_echo_tl_state_source(axi4deint_1_auto_in_ar_bits_echo_tl_state_source),
    .auto_in_r_ready(axi4deint_1_auto_in_r_ready),
    .auto_in_r_valid(axi4deint_1_auto_in_r_valid),
    .auto_in_r_bits_data(axi4deint_1_auto_in_r_bits_data),
    .auto_in_r_bits_resp(axi4deint_1_auto_in_r_bits_resp),
    .auto_in_r_bits_echo_tl_state_size(axi4deint_1_auto_in_r_bits_echo_tl_state_size),
    .auto_in_r_bits_echo_tl_state_source(axi4deint_1_auto_in_r_bits_echo_tl_state_source),
    .auto_in_r_bits_last(axi4deint_1_auto_in_r_bits_last),
    .auto_out_aw_ready(axi4deint_1_auto_out_aw_ready),
    .auto_out_aw_valid(axi4deint_1_auto_out_aw_valid),
    .auto_out_aw_bits_id(axi4deint_1_auto_out_aw_bits_id),
    .auto_out_aw_bits_addr(axi4deint_1_auto_out_aw_bits_addr),
    .auto_out_aw_bits_len(axi4deint_1_auto_out_aw_bits_len),
    .auto_out_aw_bits_size(axi4deint_1_auto_out_aw_bits_size),
    .auto_out_aw_bits_burst(axi4deint_1_auto_out_aw_bits_burst),
    .auto_out_aw_bits_lock(axi4deint_1_auto_out_aw_bits_lock),
    .auto_out_aw_bits_cache(axi4deint_1_auto_out_aw_bits_cache),
    .auto_out_aw_bits_prot(axi4deint_1_auto_out_aw_bits_prot),
    .auto_out_aw_bits_qos(axi4deint_1_auto_out_aw_bits_qos),
    .auto_out_aw_bits_echo_tl_state_size(axi4deint_1_auto_out_aw_bits_echo_tl_state_size),
    .auto_out_aw_bits_echo_tl_state_source(axi4deint_1_auto_out_aw_bits_echo_tl_state_source),
    .auto_out_w_ready(axi4deint_1_auto_out_w_ready),
    .auto_out_w_valid(axi4deint_1_auto_out_w_valid),
    .auto_out_w_bits_data(axi4deint_1_auto_out_w_bits_data),
    .auto_out_w_bits_strb(axi4deint_1_auto_out_w_bits_strb),
    .auto_out_w_bits_last(axi4deint_1_auto_out_w_bits_last),
    .auto_out_b_ready(axi4deint_1_auto_out_b_ready),
    .auto_out_b_valid(axi4deint_1_auto_out_b_valid),
    .auto_out_b_bits_resp(axi4deint_1_auto_out_b_bits_resp),
    .auto_out_b_bits_echo_tl_state_size(axi4deint_1_auto_out_b_bits_echo_tl_state_size),
    .auto_out_b_bits_echo_tl_state_source(axi4deint_1_auto_out_b_bits_echo_tl_state_source),
    .auto_out_ar_ready(axi4deint_1_auto_out_ar_ready),
    .auto_out_ar_valid(axi4deint_1_auto_out_ar_valid),
    .auto_out_ar_bits_id(axi4deint_1_auto_out_ar_bits_id),
    .auto_out_ar_bits_addr(axi4deint_1_auto_out_ar_bits_addr),
    .auto_out_ar_bits_len(axi4deint_1_auto_out_ar_bits_len),
    .auto_out_ar_bits_size(axi4deint_1_auto_out_ar_bits_size),
    .auto_out_ar_bits_burst(axi4deint_1_auto_out_ar_bits_burst),
    .auto_out_ar_bits_lock(axi4deint_1_auto_out_ar_bits_lock),
    .auto_out_ar_bits_cache(axi4deint_1_auto_out_ar_bits_cache),
    .auto_out_ar_bits_prot(axi4deint_1_auto_out_ar_bits_prot),
    .auto_out_ar_bits_qos(axi4deint_1_auto_out_ar_bits_qos),
    .auto_out_ar_bits_echo_tl_state_size(axi4deint_1_auto_out_ar_bits_echo_tl_state_size),
    .auto_out_ar_bits_echo_tl_state_source(axi4deint_1_auto_out_ar_bits_echo_tl_state_source),
    .auto_out_r_ready(axi4deint_1_auto_out_r_ready),
    .auto_out_r_valid(axi4deint_1_auto_out_r_valid),
    .auto_out_r_bits_data(axi4deint_1_auto_out_r_bits_data),
    .auto_out_r_bits_resp(axi4deint_1_auto_out_r_bits_resp),
    .auto_out_r_bits_echo_tl_state_size(axi4deint_1_auto_out_r_bits_echo_tl_state_size),
    .auto_out_r_bits_echo_tl_state_source(axi4deint_1_auto_out_r_bits_echo_tl_state_source),
    .auto_out_r_bits_last(axi4deint_1_auto_out_r_bits_last)
  );
  TLToAXI4_1 tl2axi4_1 ( // @[ToAXI4.scala 283:29]
    .clock(tl2axi4_1_clock),
    .reset(tl2axi4_1_reset),
    .auto_in_a_ready(tl2axi4_1_auto_in_a_ready),
    .auto_in_a_valid(tl2axi4_1_auto_in_a_valid),
    .auto_in_a_bits_opcode(tl2axi4_1_auto_in_a_bits_opcode),
    .auto_in_a_bits_address(tl2axi4_1_auto_in_a_bits_address),
    .auto_in_a_bits_mask(tl2axi4_1_auto_in_a_bits_mask),
    .auto_in_a_bits_data(tl2axi4_1_auto_in_a_bits_data),
    .auto_in_d_ready(tl2axi4_1_auto_in_d_ready),
    .auto_in_d_valid(tl2axi4_1_auto_in_d_valid),
    .auto_in_d_bits_opcode(tl2axi4_1_auto_in_d_bits_opcode),
    .auto_in_d_bits_size(tl2axi4_1_auto_in_d_bits_size),
    .auto_in_d_bits_denied(tl2axi4_1_auto_in_d_bits_denied),
    .auto_in_d_bits_data(tl2axi4_1_auto_in_d_bits_data),
    .auto_in_d_bits_corrupt(tl2axi4_1_auto_in_d_bits_corrupt),
    .auto_out_aw_ready(tl2axi4_1_auto_out_aw_ready),
    .auto_out_aw_valid(tl2axi4_1_auto_out_aw_valid),
    .auto_out_aw_bits_id(tl2axi4_1_auto_out_aw_bits_id),
    .auto_out_aw_bits_addr(tl2axi4_1_auto_out_aw_bits_addr),
    .auto_out_aw_bits_len(tl2axi4_1_auto_out_aw_bits_len),
    .auto_out_aw_bits_size(tl2axi4_1_auto_out_aw_bits_size),
    .auto_out_aw_bits_burst(tl2axi4_1_auto_out_aw_bits_burst),
    .auto_out_aw_bits_lock(tl2axi4_1_auto_out_aw_bits_lock),
    .auto_out_aw_bits_cache(tl2axi4_1_auto_out_aw_bits_cache),
    .auto_out_aw_bits_prot(tl2axi4_1_auto_out_aw_bits_prot),
    .auto_out_aw_bits_qos(tl2axi4_1_auto_out_aw_bits_qos),
    .auto_out_aw_bits_echo_tl_state_size(tl2axi4_1_auto_out_aw_bits_echo_tl_state_size),
    .auto_out_aw_bits_echo_tl_state_source(tl2axi4_1_auto_out_aw_bits_echo_tl_state_source),
    .auto_out_w_ready(tl2axi4_1_auto_out_w_ready),
    .auto_out_w_valid(tl2axi4_1_auto_out_w_valid),
    .auto_out_w_bits_data(tl2axi4_1_auto_out_w_bits_data),
    .auto_out_w_bits_strb(tl2axi4_1_auto_out_w_bits_strb),
    .auto_out_w_bits_last(tl2axi4_1_auto_out_w_bits_last),
    .auto_out_b_ready(tl2axi4_1_auto_out_b_ready),
    .auto_out_b_valid(tl2axi4_1_auto_out_b_valid),
    .auto_out_b_bits_resp(tl2axi4_1_auto_out_b_bits_resp),
    .auto_out_b_bits_echo_tl_state_size(tl2axi4_1_auto_out_b_bits_echo_tl_state_size),
    .auto_out_b_bits_echo_tl_state_source(tl2axi4_1_auto_out_b_bits_echo_tl_state_source),
    .auto_out_ar_ready(tl2axi4_1_auto_out_ar_ready),
    .auto_out_ar_valid(tl2axi4_1_auto_out_ar_valid),
    .auto_out_ar_bits_id(tl2axi4_1_auto_out_ar_bits_id),
    .auto_out_ar_bits_addr(tl2axi4_1_auto_out_ar_bits_addr),
    .auto_out_ar_bits_len(tl2axi4_1_auto_out_ar_bits_len),
    .auto_out_ar_bits_size(tl2axi4_1_auto_out_ar_bits_size),
    .auto_out_ar_bits_burst(tl2axi4_1_auto_out_ar_bits_burst),
    .auto_out_ar_bits_lock(tl2axi4_1_auto_out_ar_bits_lock),
    .auto_out_ar_bits_cache(tl2axi4_1_auto_out_ar_bits_cache),
    .auto_out_ar_bits_prot(tl2axi4_1_auto_out_ar_bits_prot),
    .auto_out_ar_bits_qos(tl2axi4_1_auto_out_ar_bits_qos),
    .auto_out_ar_bits_echo_tl_state_size(tl2axi4_1_auto_out_ar_bits_echo_tl_state_size),
    .auto_out_ar_bits_echo_tl_state_source(tl2axi4_1_auto_out_ar_bits_echo_tl_state_source),
    .auto_out_r_ready(tl2axi4_1_auto_out_r_ready),
    .auto_out_r_valid(tl2axi4_1_auto_out_r_valid),
    .auto_out_r_bits_data(tl2axi4_1_auto_out_r_bits_data),
    .auto_out_r_bits_resp(tl2axi4_1_auto_out_r_bits_resp),
    .auto_out_r_bits_echo_tl_state_size(tl2axi4_1_auto_out_r_bits_echo_tl_state_size),
    .auto_out_r_bits_echo_tl_state_source(tl2axi4_1_auto_out_r_bits_echo_tl_state_source),
    .auto_out_r_bits_last(tl2axi4_1_auto_out_r_bits_last)
  );
  TLFragmenter_1 fragmenter ( // @[Fragmenter.scala 333:34]
    .clock(fragmenter_clock),
    .reset(fragmenter_reset),
    .auto_in_a_ready(fragmenter_auto_in_a_ready),
    .auto_in_a_valid(fragmenter_auto_in_a_valid),
    .auto_in_a_bits_opcode(fragmenter_auto_in_a_bits_opcode),
    .auto_in_a_bits_address(fragmenter_auto_in_a_bits_address),
    .auto_in_a_bits_mask(fragmenter_auto_in_a_bits_mask),
    .auto_in_a_bits_data(fragmenter_auto_in_a_bits_data),
    .auto_in_d_ready(fragmenter_auto_in_d_ready),
    .auto_in_d_valid(fragmenter_auto_in_d_valid),
    .auto_in_d_bits_opcode(fragmenter_auto_in_d_bits_opcode),
    .auto_in_d_bits_size(fragmenter_auto_in_d_bits_size),
    .auto_in_d_bits_data(fragmenter_auto_in_d_bits_data),
    .auto_out_a_ready(fragmenter_auto_out_a_ready),
    .auto_out_a_valid(fragmenter_auto_out_a_valid),
    .auto_out_a_bits_opcode(fragmenter_auto_out_a_bits_opcode),
    .auto_out_a_bits_source(fragmenter_auto_out_a_bits_source),
    .auto_out_a_bits_address(fragmenter_auto_out_a_bits_address),
    .auto_out_a_bits_mask(fragmenter_auto_out_a_bits_mask),
    .auto_out_a_bits_data(fragmenter_auto_out_a_bits_data),
    .auto_out_d_ready(fragmenter_auto_out_d_ready),
    .auto_out_d_valid(fragmenter_auto_out_d_valid),
    .auto_out_d_bits_opcode(fragmenter_auto_out_d_bits_opcode),
    .auto_out_d_bits_size(fragmenter_auto_out_d_bits_size),
    .auto_out_d_bits_source(fragmenter_auto_out_d_bits_source),
    .auto_out_d_bits_data(fragmenter_auto_out_d_bits_data)
  );
  assign io_JtagIO_TDO = i_debugger_io_JtagIO_TDO; // @[Rift2Link.scala 214:39]
  assign io_JtagIO_TDO_driven = i_debugger_io_JtagIO_TDO_driven; // @[Rift2Link.scala 214:39]
  assign io_ndreset = 1'h0; // @[Rift2Link.scala 215:22]
  assign io_dm_hartResetReq = i_debugger_io_dm_cmm_0_hartResetReq; // @[Rift2Link.scala 216:42]
  assign io_dm_hartHaltReq = i_debugger_io_dm_cmm_0_hartHaltReq; // @[Rift2Link.scala 216:42]
  assign io_aclint_msi = i_aclint_io_int_0_msi; // @[Rift2Link.scala 220:15]
  assign io_aclint_mti = i_aclint_io_int_0_mti; // @[Rift2Link.scala 220:15]
  assign io_aclint_ssi = i_aclint_io_int_0_ssi; // @[Rift2Link.scala 220:15]
  assign io_aclint_sti = 1'h0; // @[Rift2Link.scala 220:15]
  assign io_plic_mei = i_plic_io_context_0; // @[Rift2Link.scala 222:17]
  assign io_plic_sei = 1'h0; // @[Rift2Link.scala 223:17]
  assign io_hspi_tx_enable = chipLinkSlv_io_hspi_tx_enable; // @[Rift2Link.scala 234:16]
  assign io_hspi_tx_data = chipLinkSlv_io_hspi_tx_data; // @[Rift2Link.scala 234:16]
  assign memory_0_aw_valid = axi4yank_auto_out_aw_valid; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_aw_bits_id = axi4yank_auto_out_aw_bits_id; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_aw_bits_addr = axi4yank_auto_out_aw_bits_addr; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_aw_bits_len = axi4yank_auto_out_aw_bits_len; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_aw_bits_size = axi4yank_auto_out_aw_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_aw_bits_burst = axi4yank_auto_out_aw_bits_burst; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_aw_bits_lock = axi4yank_auto_out_aw_bits_lock; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_aw_bits_cache = axi4yank_auto_out_aw_bits_cache; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_aw_bits_prot = axi4yank_auto_out_aw_bits_prot; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_aw_bits_qos = axi4yank_auto_out_aw_bits_qos; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_w_valid = axi4yank_auto_out_w_valid; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_w_bits_data = axi4yank_auto_out_w_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_w_bits_strb = axi4yank_auto_out_w_bits_strb; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_w_bits_last = axi4yank_auto_out_w_bits_last; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_b_ready = axi4yank_auto_out_b_ready; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_ar_valid = axi4yank_auto_out_ar_valid; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_ar_bits_id = axi4yank_auto_out_ar_bits_id; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_ar_bits_addr = axi4yank_auto_out_ar_bits_addr; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_ar_bits_len = axi4yank_auto_out_ar_bits_len; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_ar_bits_size = axi4yank_auto_out_ar_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_ar_bits_burst = axi4yank_auto_out_ar_bits_burst; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_ar_bits_lock = axi4yank_auto_out_ar_bits_lock; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_ar_bits_cache = axi4yank_auto_out_ar_bits_cache; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_ar_bits_prot = axi4yank_auto_out_ar_bits_prot; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_ar_bits_qos = axi4yank_auto_out_ar_bits_qos; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign memory_0_r_ready = axi4yank_auto_out_r_ready; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_aw_valid = axi4yank_1_auto_out_aw_valid; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_aw_bits_id = axi4yank_1_auto_out_aw_bits_id; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_aw_bits_addr = axi4yank_1_auto_out_aw_bits_addr; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_aw_bits_len = axi4yank_1_auto_out_aw_bits_len; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_aw_bits_size = axi4yank_1_auto_out_aw_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_aw_bits_burst = axi4yank_1_auto_out_aw_bits_burst; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_aw_bits_lock = axi4yank_1_auto_out_aw_bits_lock; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_aw_bits_cache = axi4yank_1_auto_out_aw_bits_cache; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_aw_bits_prot = axi4yank_1_auto_out_aw_bits_prot; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_aw_bits_qos = axi4yank_1_auto_out_aw_bits_qos; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_w_valid = axi4yank_1_auto_out_w_valid; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_w_bits_data = axi4yank_1_auto_out_w_bits_data; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_w_bits_strb = axi4yank_1_auto_out_w_bits_strb; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_w_bits_last = axi4yank_1_auto_out_w_bits_last; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_b_ready = axi4yank_1_auto_out_b_ready; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_ar_valid = axi4yank_1_auto_out_ar_valid; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_ar_bits_id = axi4yank_1_auto_out_ar_bits_id; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_ar_bits_addr = axi4yank_1_auto_out_ar_bits_addr; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_ar_bits_len = axi4yank_1_auto_out_ar_bits_len; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_ar_bits_size = axi4yank_1_auto_out_ar_bits_size; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_ar_bits_burst = axi4yank_1_auto_out_ar_bits_burst; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_ar_bits_lock = axi4yank_1_auto_out_ar_bits_lock; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_ar_bits_cache = axi4yank_1_auto_out_ar_bits_cache; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_ar_bits_prot = axi4yank_1_auto_out_ar_bits_prot; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_ar_bits_qos = axi4yank_1_auto_out_ar_bits_qos; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign system_0_r_ready = axi4yank_1_auto_out_r_ready; // @[Nodes.scala 1210:84 LazyModule.scala 296:16]
  assign chipLinkSlv_clock = clock;
  assign chipLinkSlv_reset = reset;
  assign chipLinkSlv_auto_chip_link_slave_out_a_ready = xbar_auto_in_a_ready; // @[LazyModule.scala 298:16]
  assign chipLinkSlv_auto_chip_link_slave_out_d_valid = xbar_auto_in_d_valid; // @[LazyModule.scala 298:16]
  assign chipLinkSlv_auto_chip_link_slave_out_d_bits_data = xbar_auto_in_d_bits_data; // @[LazyModule.scala 298:16]
  assign chipLinkSlv_io_hspi_clk = io_hspi_clk; // @[Rift2Link.scala 231:36]
  assign chipLinkSlv_io_hspi_reset = io_hspi_reset; // @[Rift2Link.scala 232:38]
  assign chipLinkSlv_io_hspi_rx_enable = io_hspi_rx_enable; // @[Rift2Link.scala 230:35]
  assign chipLinkSlv_io_hspi_rx_data = io_hspi_rx_data; // @[Rift2Link.scala 230:35]
  assign i_debugger_clock = clock;
  assign i_debugger_reset = reset;
  assign i_debugger_auto_dm_perip_in_a_valid = fragmenter_auto_out_a_valid; // @[LazyModule.scala 296:16]
  assign i_debugger_auto_dm_perip_in_a_bits_opcode = fragmenter_auto_out_a_bits_opcode; // @[LazyModule.scala 296:16]
  assign i_debugger_auto_dm_perip_in_a_bits_source = fragmenter_auto_out_a_bits_source; // @[LazyModule.scala 296:16]
  assign i_debugger_auto_dm_perip_in_a_bits_address = fragmenter_auto_out_a_bits_address; // @[LazyModule.scala 296:16]
  assign i_debugger_auto_dm_perip_in_a_bits_mask = fragmenter_auto_out_a_bits_mask; // @[LazyModule.scala 296:16]
  assign i_debugger_auto_dm_perip_in_a_bits_data = fragmenter_auto_out_a_bits_data; // @[LazyModule.scala 296:16]
  assign i_debugger_auto_dm_perip_in_d_ready = fragmenter_auto_out_d_ready; // @[LazyModule.scala 296:16]
  assign i_debugger_io_JtagIO_TRSTn = io_JtagIO_TRSTn; // @[Rift2Link.scala 214:39]
  assign i_debugger_io_JtagIO_TCK = io_JtagIO_TCK; // @[Rift2Link.scala 214:39]
  assign i_debugger_io_JtagIO_TMS = io_JtagIO_TMS; // @[Rift2Link.scala 214:39]
  assign i_debugger_io_JtagIO_TDI = io_JtagIO_TDI; // @[Rift2Link.scala 214:39]
  assign i_debugger_io_dm_cmm_0_hartIsInReset = io_dm_hartIsInReset; // @[Rift2Link.scala 216:42]
  assign i_aclint_clock = clock;
  assign i_aclint_reset = reset;
  assign i_aclint_auto_in_a_valid = xbar_auto_out_3_a_valid; // @[LazyModule.scala 296:16]
  assign i_aclint_auto_in_a_bits_opcode = xbar_auto_out_3_a_bits_opcode; // @[LazyModule.scala 296:16]
  assign i_aclint_auto_in_a_bits_address = xbar_auto_out_3_a_bits_address; // @[LazyModule.scala 296:16]
  assign i_aclint_auto_in_a_bits_mask = xbar_auto_out_3_a_bits_mask; // @[LazyModule.scala 296:16]
  assign i_aclint_auto_in_a_bits_data = xbar_auto_out_3_a_bits_data; // @[LazyModule.scala 296:16]
  assign i_aclint_auto_in_d_ready = xbar_auto_out_3_d_ready; // @[LazyModule.scala 296:16]
  assign i_aclint_io_rtc_clock = io_rtc_clock; // @[Rift2Link.scala 219:34]
  assign i_plic_clock = clock;
  assign i_plic_reset = reset;
  assign i_plic_auto_in_a_valid = xbar_auto_out_4_a_valid; // @[LazyModule.scala 296:16]
  assign i_plic_auto_in_a_bits_opcode = xbar_auto_out_4_a_bits_opcode; // @[LazyModule.scala 296:16]
  assign i_plic_auto_in_a_bits_address = xbar_auto_out_4_a_bits_address; // @[LazyModule.scala 296:16]
  assign i_plic_auto_in_a_bits_mask = xbar_auto_out_4_a_bits_mask; // @[LazyModule.scala 296:16]
  assign i_plic_auto_in_a_bits_data = xbar_auto_out_4_a_bits_data; // @[LazyModule.scala 296:16]
  assign i_plic_auto_in_d_ready = xbar_auto_out_4_d_ready; // @[LazyModule.scala 296:16]
  assign i_plic_io_interrupt_0 = io_interrupt_0; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_1 = io_interrupt_1; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_2 = io_interrupt_2; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_3 = io_interrupt_3; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_4 = io_interrupt_4; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_5 = io_interrupt_5; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_6 = io_interrupt_6; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_7 = io_interrupt_7; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_8 = io_interrupt_8; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_9 = io_interrupt_9; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_10 = io_interrupt_10; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_11 = io_interrupt_11; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_12 = io_interrupt_12; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_13 = io_interrupt_13; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_14 = io_interrupt_14; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_15 = io_interrupt_15; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_16 = io_interrupt_16; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_17 = io_interrupt_17; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_18 = io_interrupt_18; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_19 = io_interrupt_19; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_20 = io_interrupt_20; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_21 = io_interrupt_21; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_22 = io_interrupt_22; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_23 = io_interrupt_23; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_24 = io_interrupt_24; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_25 = io_interrupt_25; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_26 = io_interrupt_26; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_27 = io_interrupt_27; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_28 = io_interrupt_28; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_29 = io_interrupt_29; // @[Rift2Link.scala 225:32]
  assign i_plic_io_interrupt_30 = io_interrupt_30; // @[Rift2Link.scala 225:32]
  assign xbar_clock = clock;
  assign xbar_reset = reset;
  assign xbar_auto_in_a_valid = chipLinkSlv_auto_chip_link_slave_out_a_valid; // @[LazyModule.scala 298:16]
  assign xbar_auto_in_a_bits_opcode = chipLinkSlv_auto_chip_link_slave_out_a_bits_opcode; // @[LazyModule.scala 298:16]
  assign xbar_auto_in_a_bits_address = chipLinkSlv_auto_chip_link_slave_out_a_bits_address; // @[LazyModule.scala 298:16]
  assign xbar_auto_in_a_bits_mask = chipLinkSlv_auto_chip_link_slave_out_a_bits_mask; // @[LazyModule.scala 298:16]
  assign xbar_auto_in_a_bits_data = chipLinkSlv_auto_chip_link_slave_out_a_bits_data; // @[LazyModule.scala 298:16]
  assign xbar_auto_in_d_ready = chipLinkSlv_auto_chip_link_slave_out_d_ready; // @[LazyModule.scala 298:16]
  assign xbar_auto_out_4_a_ready = i_plic_auto_in_a_ready; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_4_d_valid = i_plic_auto_in_d_valid; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_4_d_bits_opcode = i_plic_auto_in_d_bits_opcode; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_4_d_bits_size = i_plic_auto_in_d_bits_size; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_4_d_bits_data = i_plic_auto_in_d_bits_data; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_3_a_ready = i_aclint_auto_in_a_ready; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_3_d_valid = i_aclint_auto_in_d_valid; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_3_d_bits_opcode = i_aclint_auto_in_d_bits_opcode; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_3_d_bits_data = i_aclint_auto_in_d_bits_data; // @[LazyModule.scala 296:16]
  assign xbar_auto_out_2_a_ready = fragmenter_auto_in_a_ready; // @[LazyModule.scala 298:16]
  assign xbar_auto_out_2_d_valid = fragmenter_auto_in_d_valid; // @[LazyModule.scala 298:16]
  assign xbar_auto_out_2_d_bits_opcode = fragmenter_auto_in_d_bits_opcode; // @[LazyModule.scala 298:16]
  assign xbar_auto_out_2_d_bits_size = fragmenter_auto_in_d_bits_size; // @[LazyModule.scala 298:16]
  assign xbar_auto_out_2_d_bits_data = fragmenter_auto_in_d_bits_data; // @[LazyModule.scala 298:16]
  assign xbar_auto_out_1_a_ready = tl2axi4_1_auto_in_a_ready; // @[LazyModule.scala 298:16]
  assign xbar_auto_out_1_d_valid = tl2axi4_1_auto_in_d_valid; // @[LazyModule.scala 298:16]
  assign xbar_auto_out_1_d_bits_opcode = tl2axi4_1_auto_in_d_bits_opcode; // @[LazyModule.scala 298:16]
  assign xbar_auto_out_1_d_bits_size = tl2axi4_1_auto_in_d_bits_size; // @[LazyModule.scala 298:16]
  assign xbar_auto_out_1_d_bits_denied = tl2axi4_1_auto_in_d_bits_denied; // @[LazyModule.scala 298:16]
  assign xbar_auto_out_1_d_bits_data = tl2axi4_1_auto_in_d_bits_data; // @[LazyModule.scala 298:16]
  assign xbar_auto_out_1_d_bits_corrupt = tl2axi4_1_auto_in_d_bits_corrupt; // @[LazyModule.scala 298:16]
  assign xbar_auto_out_0_a_ready = widget_auto_in_a_ready; // @[LazyModule.scala 298:16]
  assign xbar_auto_out_0_d_valid = widget_auto_in_d_valid; // @[LazyModule.scala 298:16]
  assign xbar_auto_out_0_d_bits_opcode = widget_auto_in_d_bits_opcode; // @[LazyModule.scala 298:16]
  assign xbar_auto_out_0_d_bits_size = widget_auto_in_d_bits_size; // @[LazyModule.scala 298:16]
  assign xbar_auto_out_0_d_bits_denied = widget_auto_in_d_bits_denied; // @[LazyModule.scala 298:16]
  assign xbar_auto_out_0_d_bits_data = widget_auto_in_d_bits_data; // @[LazyModule.scala 298:16]
  assign xbar_auto_out_0_d_bits_corrupt = widget_auto_in_d_bits_corrupt; // @[LazyModule.scala 298:16]
  assign axi4yank_clock = clock;
  assign axi4yank_reset = reset;
  assign axi4yank_auto_in_aw_valid = axi4index_auto_out_aw_valid; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_aw_bits_id = axi4index_auto_out_aw_bits_id; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_aw_bits_addr = axi4index_auto_out_aw_bits_addr; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_aw_bits_len = axi4index_auto_out_aw_bits_len; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_aw_bits_size = axi4index_auto_out_aw_bits_size; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_aw_bits_burst = axi4index_auto_out_aw_bits_burst; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_aw_bits_lock = axi4index_auto_out_aw_bits_lock; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_aw_bits_cache = axi4index_auto_out_aw_bits_cache; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_aw_bits_prot = axi4index_auto_out_aw_bits_prot; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_aw_bits_qos = axi4index_auto_out_aw_bits_qos; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_aw_bits_echo_tl_state_size = axi4index_auto_out_aw_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_aw_bits_echo_tl_state_source = axi4index_auto_out_aw_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_w_valid = axi4index_auto_out_w_valid; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_w_bits_data = axi4index_auto_out_w_bits_data; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_w_bits_strb = axi4index_auto_out_w_bits_strb; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_w_bits_last = axi4index_auto_out_w_bits_last; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_b_ready = axi4index_auto_out_b_ready; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_ar_valid = axi4index_auto_out_ar_valid; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_ar_bits_id = axi4index_auto_out_ar_bits_id; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_ar_bits_addr = axi4index_auto_out_ar_bits_addr; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_ar_bits_len = axi4index_auto_out_ar_bits_len; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_ar_bits_size = axi4index_auto_out_ar_bits_size; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_ar_bits_burst = axi4index_auto_out_ar_bits_burst; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_ar_bits_lock = axi4index_auto_out_ar_bits_lock; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_ar_bits_cache = axi4index_auto_out_ar_bits_cache; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_ar_bits_prot = axi4index_auto_out_ar_bits_prot; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_ar_bits_qos = axi4index_auto_out_ar_bits_qos; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_ar_bits_echo_tl_state_size = axi4index_auto_out_ar_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_ar_bits_echo_tl_state_source = axi4index_auto_out_ar_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_in_r_ready = axi4index_auto_out_r_ready; // @[LazyModule.scala 296:16]
  assign axi4yank_auto_out_aw_ready = memory_0_aw_ready; // @[Nodes.scala 1210:84 1694:56]
  assign axi4yank_auto_out_w_ready = memory_0_w_ready; // @[Nodes.scala 1210:84 1694:56]
  assign axi4yank_auto_out_b_valid = memory_0_b_valid; // @[Nodes.scala 1210:84 1694:56]
  assign axi4yank_auto_out_b_bits_id = memory_0_b_bits_id; // @[Nodes.scala 1210:84 1694:56]
  assign axi4yank_auto_out_b_bits_resp = memory_0_b_bits_resp; // @[Nodes.scala 1210:84 1694:56]
  assign axi4yank_auto_out_ar_ready = memory_0_ar_ready; // @[Nodes.scala 1210:84 1694:56]
  assign axi4yank_auto_out_r_valid = memory_0_r_valid; // @[Nodes.scala 1210:84 1694:56]
  assign axi4yank_auto_out_r_bits_id = memory_0_r_bits_id; // @[Nodes.scala 1210:84 1694:56]
  assign axi4yank_auto_out_r_bits_data = memory_0_r_bits_data; // @[Nodes.scala 1210:84 1694:56]
  assign axi4yank_auto_out_r_bits_resp = memory_0_r_bits_resp; // @[Nodes.scala 1210:84 1694:56]
  assign axi4yank_auto_out_r_bits_last = memory_0_r_bits_last; // @[Nodes.scala 1210:84 1694:56]
  assign axi4index_auto_in_aw_valid = axi4deint_auto_out_aw_valid; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_aw_bits_id = axi4deint_auto_out_aw_bits_id; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_aw_bits_addr = axi4deint_auto_out_aw_bits_addr; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_aw_bits_len = axi4deint_auto_out_aw_bits_len; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_aw_bits_size = axi4deint_auto_out_aw_bits_size; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_aw_bits_burst = axi4deint_auto_out_aw_bits_burst; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_aw_bits_lock = axi4deint_auto_out_aw_bits_lock; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_aw_bits_cache = axi4deint_auto_out_aw_bits_cache; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_aw_bits_prot = axi4deint_auto_out_aw_bits_prot; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_aw_bits_qos = axi4deint_auto_out_aw_bits_qos; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_aw_bits_echo_tl_state_size = axi4deint_auto_out_aw_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_aw_bits_echo_tl_state_source = axi4deint_auto_out_aw_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_w_valid = axi4deint_auto_out_w_valid; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_w_bits_data = axi4deint_auto_out_w_bits_data; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_w_bits_strb = axi4deint_auto_out_w_bits_strb; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_w_bits_last = axi4deint_auto_out_w_bits_last; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_b_ready = axi4deint_auto_out_b_ready; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_ar_valid = axi4deint_auto_out_ar_valid; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_ar_bits_id = axi4deint_auto_out_ar_bits_id; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_ar_bits_addr = axi4deint_auto_out_ar_bits_addr; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_ar_bits_len = axi4deint_auto_out_ar_bits_len; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_ar_bits_size = axi4deint_auto_out_ar_bits_size; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_ar_bits_burst = axi4deint_auto_out_ar_bits_burst; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_ar_bits_lock = axi4deint_auto_out_ar_bits_lock; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_ar_bits_cache = axi4deint_auto_out_ar_bits_cache; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_ar_bits_prot = axi4deint_auto_out_ar_bits_prot; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_ar_bits_qos = axi4deint_auto_out_ar_bits_qos; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_ar_bits_echo_tl_state_size = axi4deint_auto_out_ar_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_ar_bits_echo_tl_state_source = axi4deint_auto_out_ar_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign axi4index_auto_in_r_ready = axi4deint_auto_out_r_ready; // @[LazyModule.scala 296:16]
  assign axi4index_auto_out_aw_ready = axi4yank_auto_in_aw_ready; // @[LazyModule.scala 296:16]
  assign axi4index_auto_out_w_ready = axi4yank_auto_in_w_ready; // @[LazyModule.scala 296:16]
  assign axi4index_auto_out_b_valid = axi4yank_auto_in_b_valid; // @[LazyModule.scala 296:16]
  assign axi4index_auto_out_b_bits_resp = axi4yank_auto_in_b_bits_resp; // @[LazyModule.scala 296:16]
  assign axi4index_auto_out_b_bits_echo_tl_state_size = axi4yank_auto_in_b_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign axi4index_auto_out_b_bits_echo_tl_state_source = axi4yank_auto_in_b_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign axi4index_auto_out_ar_ready = axi4yank_auto_in_ar_ready; // @[LazyModule.scala 296:16]
  assign axi4index_auto_out_r_valid = axi4yank_auto_in_r_valid; // @[LazyModule.scala 296:16]
  assign axi4index_auto_out_r_bits_data = axi4yank_auto_in_r_bits_data; // @[LazyModule.scala 296:16]
  assign axi4index_auto_out_r_bits_resp = axi4yank_auto_in_r_bits_resp; // @[LazyModule.scala 296:16]
  assign axi4index_auto_out_r_bits_echo_tl_state_size = axi4yank_auto_in_r_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign axi4index_auto_out_r_bits_echo_tl_state_source = axi4yank_auto_in_r_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign axi4index_auto_out_r_bits_last = axi4yank_auto_in_r_bits_last; // @[LazyModule.scala 296:16]
  assign axi4deint_clock = clock;
  assign axi4deint_reset = reset;
  assign axi4deint_auto_in_aw_valid = tl2axi4_auto_out_aw_valid; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_aw_bits_id = tl2axi4_auto_out_aw_bits_id; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_aw_bits_addr = tl2axi4_auto_out_aw_bits_addr; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_aw_bits_len = tl2axi4_auto_out_aw_bits_len; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_aw_bits_size = tl2axi4_auto_out_aw_bits_size; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_aw_bits_burst = tl2axi4_auto_out_aw_bits_burst; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_aw_bits_lock = tl2axi4_auto_out_aw_bits_lock; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_aw_bits_cache = tl2axi4_auto_out_aw_bits_cache; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_aw_bits_prot = tl2axi4_auto_out_aw_bits_prot; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_aw_bits_qos = tl2axi4_auto_out_aw_bits_qos; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_aw_bits_echo_tl_state_size = tl2axi4_auto_out_aw_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_aw_bits_echo_tl_state_source = tl2axi4_auto_out_aw_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_w_valid = tl2axi4_auto_out_w_valid; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_w_bits_data = tl2axi4_auto_out_w_bits_data; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_w_bits_strb = tl2axi4_auto_out_w_bits_strb; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_w_bits_last = tl2axi4_auto_out_w_bits_last; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_b_ready = tl2axi4_auto_out_b_ready; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_ar_valid = tl2axi4_auto_out_ar_valid; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_ar_bits_id = tl2axi4_auto_out_ar_bits_id; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_ar_bits_addr = tl2axi4_auto_out_ar_bits_addr; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_ar_bits_len = tl2axi4_auto_out_ar_bits_len; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_ar_bits_size = tl2axi4_auto_out_ar_bits_size; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_ar_bits_burst = tl2axi4_auto_out_ar_bits_burst; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_ar_bits_lock = tl2axi4_auto_out_ar_bits_lock; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_ar_bits_cache = tl2axi4_auto_out_ar_bits_cache; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_ar_bits_prot = tl2axi4_auto_out_ar_bits_prot; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_ar_bits_qos = tl2axi4_auto_out_ar_bits_qos; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_ar_bits_echo_tl_state_size = tl2axi4_auto_out_ar_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_ar_bits_echo_tl_state_source = tl2axi4_auto_out_ar_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_in_r_ready = tl2axi4_auto_out_r_ready; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_out_aw_ready = axi4index_auto_in_aw_ready; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_out_w_ready = axi4index_auto_in_w_ready; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_out_b_valid = axi4index_auto_in_b_valid; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_out_b_bits_resp = axi4index_auto_in_b_bits_resp; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_out_b_bits_echo_tl_state_size = axi4index_auto_in_b_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_out_b_bits_echo_tl_state_source = axi4index_auto_in_b_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_out_ar_ready = axi4index_auto_in_ar_ready; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_out_r_valid = axi4index_auto_in_r_valid; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_out_r_bits_data = axi4index_auto_in_r_bits_data; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_out_r_bits_resp = axi4index_auto_in_r_bits_resp; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_out_r_bits_echo_tl_state_size = axi4index_auto_in_r_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_out_r_bits_echo_tl_state_source = axi4index_auto_in_r_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign axi4deint_auto_out_r_bits_last = axi4index_auto_in_r_bits_last; // @[LazyModule.scala 296:16]
  assign tl2axi4_clock = clock;
  assign tl2axi4_reset = reset;
  assign tl2axi4_auto_in_a_valid = widget_auto_out_a_valid; // @[LazyModule.scala 296:16]
  assign tl2axi4_auto_in_a_bits_opcode = widget_auto_out_a_bits_opcode; // @[LazyModule.scala 296:16]
  assign tl2axi4_auto_in_a_bits_address = widget_auto_out_a_bits_address; // @[LazyModule.scala 296:16]
  assign tl2axi4_auto_in_a_bits_mask = widget_auto_out_a_bits_mask; // @[LazyModule.scala 296:16]
  assign tl2axi4_auto_in_a_bits_data = widget_auto_out_a_bits_data; // @[LazyModule.scala 296:16]
  assign tl2axi4_auto_in_d_ready = widget_auto_out_d_ready; // @[LazyModule.scala 296:16]
  assign tl2axi4_auto_out_aw_ready = axi4deint_auto_in_aw_ready; // @[LazyModule.scala 296:16]
  assign tl2axi4_auto_out_w_ready = axi4deint_auto_in_w_ready; // @[LazyModule.scala 296:16]
  assign tl2axi4_auto_out_b_valid = axi4deint_auto_in_b_valid; // @[LazyModule.scala 296:16]
  assign tl2axi4_auto_out_b_bits_resp = axi4deint_auto_in_b_bits_resp; // @[LazyModule.scala 296:16]
  assign tl2axi4_auto_out_b_bits_echo_tl_state_size = axi4deint_auto_in_b_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign tl2axi4_auto_out_b_bits_echo_tl_state_source = axi4deint_auto_in_b_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign tl2axi4_auto_out_ar_ready = axi4deint_auto_in_ar_ready; // @[LazyModule.scala 296:16]
  assign tl2axi4_auto_out_r_valid = axi4deint_auto_in_r_valid; // @[LazyModule.scala 296:16]
  assign tl2axi4_auto_out_r_bits_data = axi4deint_auto_in_r_bits_data; // @[LazyModule.scala 296:16]
  assign tl2axi4_auto_out_r_bits_resp = axi4deint_auto_in_r_bits_resp; // @[LazyModule.scala 296:16]
  assign tl2axi4_auto_out_r_bits_echo_tl_state_size = axi4deint_auto_in_r_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign tl2axi4_auto_out_r_bits_echo_tl_state_source = axi4deint_auto_in_r_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign tl2axi4_auto_out_r_bits_last = axi4deint_auto_in_r_bits_last; // @[LazyModule.scala 296:16]
  assign widget_clock = clock;
  assign widget_reset = reset;
  assign widget_auto_in_a_valid = xbar_auto_out_0_a_valid; // @[LazyModule.scala 298:16]
  assign widget_auto_in_a_bits_opcode = xbar_auto_out_0_a_bits_opcode; // @[LazyModule.scala 298:16]
  assign widget_auto_in_a_bits_address = xbar_auto_out_0_a_bits_address; // @[LazyModule.scala 298:16]
  assign widget_auto_in_a_bits_mask = xbar_auto_out_0_a_bits_mask; // @[LazyModule.scala 298:16]
  assign widget_auto_in_a_bits_data = xbar_auto_out_0_a_bits_data; // @[LazyModule.scala 298:16]
  assign widget_auto_in_d_ready = xbar_auto_out_0_d_ready; // @[LazyModule.scala 298:16]
  assign widget_auto_out_a_ready = tl2axi4_auto_in_a_ready; // @[LazyModule.scala 296:16]
  assign widget_auto_out_d_valid = tl2axi4_auto_in_d_valid; // @[LazyModule.scala 296:16]
  assign widget_auto_out_d_bits_opcode = tl2axi4_auto_in_d_bits_opcode; // @[LazyModule.scala 296:16]
  assign widget_auto_out_d_bits_size = tl2axi4_auto_in_d_bits_size; // @[LazyModule.scala 296:16]
  assign widget_auto_out_d_bits_source = tl2axi4_auto_in_d_bits_source; // @[LazyModule.scala 296:16]
  assign widget_auto_out_d_bits_denied = tl2axi4_auto_in_d_bits_denied; // @[LazyModule.scala 296:16]
  assign widget_auto_out_d_bits_data = tl2axi4_auto_in_d_bits_data; // @[LazyModule.scala 296:16]
  assign widget_auto_out_d_bits_corrupt = tl2axi4_auto_in_d_bits_corrupt; // @[LazyModule.scala 296:16]
  assign axi4yank_1_clock = clock;
  assign axi4yank_1_reset = reset;
  assign axi4yank_1_auto_in_aw_valid = axi4index_1_auto_out_aw_valid; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_aw_bits_id = axi4index_1_auto_out_aw_bits_id; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_aw_bits_addr = axi4index_1_auto_out_aw_bits_addr; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_aw_bits_len = axi4index_1_auto_out_aw_bits_len; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_aw_bits_size = axi4index_1_auto_out_aw_bits_size; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_aw_bits_burst = axi4index_1_auto_out_aw_bits_burst; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_aw_bits_lock = axi4index_1_auto_out_aw_bits_lock; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_aw_bits_cache = axi4index_1_auto_out_aw_bits_cache; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_aw_bits_prot = axi4index_1_auto_out_aw_bits_prot; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_aw_bits_qos = axi4index_1_auto_out_aw_bits_qos; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_aw_bits_echo_tl_state_size = axi4index_1_auto_out_aw_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_aw_bits_echo_tl_state_source = axi4index_1_auto_out_aw_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_w_valid = axi4index_1_auto_out_w_valid; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_w_bits_data = axi4index_1_auto_out_w_bits_data; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_w_bits_strb = axi4index_1_auto_out_w_bits_strb; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_w_bits_last = axi4index_1_auto_out_w_bits_last; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_b_ready = axi4index_1_auto_out_b_ready; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_ar_valid = axi4index_1_auto_out_ar_valid; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_ar_bits_id = axi4index_1_auto_out_ar_bits_id; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_ar_bits_addr = axi4index_1_auto_out_ar_bits_addr; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_ar_bits_len = axi4index_1_auto_out_ar_bits_len; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_ar_bits_size = axi4index_1_auto_out_ar_bits_size; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_ar_bits_burst = axi4index_1_auto_out_ar_bits_burst; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_ar_bits_lock = axi4index_1_auto_out_ar_bits_lock; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_ar_bits_cache = axi4index_1_auto_out_ar_bits_cache; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_ar_bits_prot = axi4index_1_auto_out_ar_bits_prot; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_ar_bits_qos = axi4index_1_auto_out_ar_bits_qos; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_ar_bits_echo_tl_state_size = axi4index_1_auto_out_ar_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_ar_bits_echo_tl_state_source = axi4index_1_auto_out_ar_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_in_r_ready = axi4index_1_auto_out_r_ready; // @[LazyModule.scala 296:16]
  assign axi4yank_1_auto_out_aw_ready = system_0_aw_ready; // @[Nodes.scala 1210:84 1694:56]
  assign axi4yank_1_auto_out_w_ready = system_0_w_ready; // @[Nodes.scala 1210:84 1694:56]
  assign axi4yank_1_auto_out_b_valid = system_0_b_valid; // @[Nodes.scala 1210:84 1694:56]
  assign axi4yank_1_auto_out_b_bits_id = system_0_b_bits_id; // @[Nodes.scala 1210:84 1694:56]
  assign axi4yank_1_auto_out_b_bits_resp = system_0_b_bits_resp; // @[Nodes.scala 1210:84 1694:56]
  assign axi4yank_1_auto_out_ar_ready = system_0_ar_ready; // @[Nodes.scala 1210:84 1694:56]
  assign axi4yank_1_auto_out_r_valid = system_0_r_valid; // @[Nodes.scala 1210:84 1694:56]
  assign axi4yank_1_auto_out_r_bits_id = system_0_r_bits_id; // @[Nodes.scala 1210:84 1694:56]
  assign axi4yank_1_auto_out_r_bits_data = system_0_r_bits_data; // @[Nodes.scala 1210:84 1694:56]
  assign axi4yank_1_auto_out_r_bits_resp = system_0_r_bits_resp; // @[Nodes.scala 1210:84 1694:56]
  assign axi4yank_1_auto_out_r_bits_last = system_0_r_bits_last; // @[Nodes.scala 1210:84 1694:56]
  assign axi4index_1_auto_in_aw_valid = axi4deint_1_auto_out_aw_valid; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_aw_bits_id = axi4deint_1_auto_out_aw_bits_id; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_aw_bits_addr = axi4deint_1_auto_out_aw_bits_addr; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_aw_bits_len = axi4deint_1_auto_out_aw_bits_len; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_aw_bits_size = axi4deint_1_auto_out_aw_bits_size; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_aw_bits_burst = axi4deint_1_auto_out_aw_bits_burst; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_aw_bits_lock = axi4deint_1_auto_out_aw_bits_lock; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_aw_bits_cache = axi4deint_1_auto_out_aw_bits_cache; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_aw_bits_prot = axi4deint_1_auto_out_aw_bits_prot; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_aw_bits_qos = axi4deint_1_auto_out_aw_bits_qos; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_aw_bits_echo_tl_state_size = axi4deint_1_auto_out_aw_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_aw_bits_echo_tl_state_source = axi4deint_1_auto_out_aw_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_w_valid = axi4deint_1_auto_out_w_valid; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_w_bits_data = axi4deint_1_auto_out_w_bits_data; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_w_bits_strb = axi4deint_1_auto_out_w_bits_strb; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_w_bits_last = axi4deint_1_auto_out_w_bits_last; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_b_ready = axi4deint_1_auto_out_b_ready; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_ar_valid = axi4deint_1_auto_out_ar_valid; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_ar_bits_id = axi4deint_1_auto_out_ar_bits_id; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_ar_bits_addr = axi4deint_1_auto_out_ar_bits_addr; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_ar_bits_len = axi4deint_1_auto_out_ar_bits_len; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_ar_bits_size = axi4deint_1_auto_out_ar_bits_size; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_ar_bits_burst = axi4deint_1_auto_out_ar_bits_burst; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_ar_bits_lock = axi4deint_1_auto_out_ar_bits_lock; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_ar_bits_cache = axi4deint_1_auto_out_ar_bits_cache; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_ar_bits_prot = axi4deint_1_auto_out_ar_bits_prot; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_ar_bits_qos = axi4deint_1_auto_out_ar_bits_qos; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_ar_bits_echo_tl_state_size = axi4deint_1_auto_out_ar_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_ar_bits_echo_tl_state_source = axi4deint_1_auto_out_ar_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_in_r_ready = axi4deint_1_auto_out_r_ready; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_out_aw_ready = axi4yank_1_auto_in_aw_ready; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_out_w_ready = axi4yank_1_auto_in_w_ready; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_out_b_valid = axi4yank_1_auto_in_b_valid; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_out_b_bits_resp = axi4yank_1_auto_in_b_bits_resp; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_out_b_bits_echo_tl_state_size = axi4yank_1_auto_in_b_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_out_b_bits_echo_tl_state_source = axi4yank_1_auto_in_b_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_out_ar_ready = axi4yank_1_auto_in_ar_ready; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_out_r_valid = axi4yank_1_auto_in_r_valid; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_out_r_bits_data = axi4yank_1_auto_in_r_bits_data; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_out_r_bits_resp = axi4yank_1_auto_in_r_bits_resp; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_out_r_bits_echo_tl_state_size = axi4yank_1_auto_in_r_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_out_r_bits_echo_tl_state_source = axi4yank_1_auto_in_r_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign axi4index_1_auto_out_r_bits_last = axi4yank_1_auto_in_r_bits_last; // @[LazyModule.scala 296:16]
  assign axi4deint_1_clock = clock;
  assign axi4deint_1_reset = reset;
  assign axi4deint_1_auto_in_aw_valid = tl2axi4_1_auto_out_aw_valid; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_aw_bits_id = tl2axi4_1_auto_out_aw_bits_id; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_aw_bits_addr = tl2axi4_1_auto_out_aw_bits_addr; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_aw_bits_len = tl2axi4_1_auto_out_aw_bits_len; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_aw_bits_size = tl2axi4_1_auto_out_aw_bits_size; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_aw_bits_burst = tl2axi4_1_auto_out_aw_bits_burst; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_aw_bits_lock = tl2axi4_1_auto_out_aw_bits_lock; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_aw_bits_cache = tl2axi4_1_auto_out_aw_bits_cache; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_aw_bits_prot = tl2axi4_1_auto_out_aw_bits_prot; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_aw_bits_qos = tl2axi4_1_auto_out_aw_bits_qos; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_aw_bits_echo_tl_state_size = tl2axi4_1_auto_out_aw_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_aw_bits_echo_tl_state_source = tl2axi4_1_auto_out_aw_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_w_valid = tl2axi4_1_auto_out_w_valid; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_w_bits_data = tl2axi4_1_auto_out_w_bits_data; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_w_bits_strb = tl2axi4_1_auto_out_w_bits_strb; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_w_bits_last = tl2axi4_1_auto_out_w_bits_last; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_b_ready = tl2axi4_1_auto_out_b_ready; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_ar_valid = tl2axi4_1_auto_out_ar_valid; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_ar_bits_id = tl2axi4_1_auto_out_ar_bits_id; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_ar_bits_addr = tl2axi4_1_auto_out_ar_bits_addr; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_ar_bits_len = tl2axi4_1_auto_out_ar_bits_len; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_ar_bits_size = tl2axi4_1_auto_out_ar_bits_size; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_ar_bits_burst = tl2axi4_1_auto_out_ar_bits_burst; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_ar_bits_lock = tl2axi4_1_auto_out_ar_bits_lock; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_ar_bits_cache = tl2axi4_1_auto_out_ar_bits_cache; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_ar_bits_prot = tl2axi4_1_auto_out_ar_bits_prot; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_ar_bits_qos = tl2axi4_1_auto_out_ar_bits_qos; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_ar_bits_echo_tl_state_size = tl2axi4_1_auto_out_ar_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_ar_bits_echo_tl_state_source = tl2axi4_1_auto_out_ar_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_in_r_ready = tl2axi4_1_auto_out_r_ready; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_out_aw_ready = axi4index_1_auto_in_aw_ready; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_out_w_ready = axi4index_1_auto_in_w_ready; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_out_b_valid = axi4index_1_auto_in_b_valid; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_out_b_bits_resp = axi4index_1_auto_in_b_bits_resp; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_out_b_bits_echo_tl_state_size = axi4index_1_auto_in_b_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_out_b_bits_echo_tl_state_source = axi4index_1_auto_in_b_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_out_ar_ready = axi4index_1_auto_in_ar_ready; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_out_r_valid = axi4index_1_auto_in_r_valid; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_out_r_bits_data = axi4index_1_auto_in_r_bits_data; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_out_r_bits_resp = axi4index_1_auto_in_r_bits_resp; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_out_r_bits_echo_tl_state_size = axi4index_1_auto_in_r_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_out_r_bits_echo_tl_state_source = axi4index_1_auto_in_r_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign axi4deint_1_auto_out_r_bits_last = axi4index_1_auto_in_r_bits_last; // @[LazyModule.scala 296:16]
  assign tl2axi4_1_clock = clock;
  assign tl2axi4_1_reset = reset;
  assign tl2axi4_1_auto_in_a_valid = xbar_auto_out_1_a_valid; // @[LazyModule.scala 298:16]
  assign tl2axi4_1_auto_in_a_bits_opcode = xbar_auto_out_1_a_bits_opcode; // @[LazyModule.scala 298:16]
  assign tl2axi4_1_auto_in_a_bits_address = xbar_auto_out_1_a_bits_address; // @[LazyModule.scala 298:16]
  assign tl2axi4_1_auto_in_a_bits_mask = xbar_auto_out_1_a_bits_mask; // @[LazyModule.scala 298:16]
  assign tl2axi4_1_auto_in_a_bits_data = xbar_auto_out_1_a_bits_data; // @[LazyModule.scala 298:16]
  assign tl2axi4_1_auto_in_d_ready = xbar_auto_out_1_d_ready; // @[LazyModule.scala 298:16]
  assign tl2axi4_1_auto_out_aw_ready = axi4deint_1_auto_in_aw_ready; // @[LazyModule.scala 296:16]
  assign tl2axi4_1_auto_out_w_ready = axi4deint_1_auto_in_w_ready; // @[LazyModule.scala 296:16]
  assign tl2axi4_1_auto_out_b_valid = axi4deint_1_auto_in_b_valid; // @[LazyModule.scala 296:16]
  assign tl2axi4_1_auto_out_b_bits_resp = axi4deint_1_auto_in_b_bits_resp; // @[LazyModule.scala 296:16]
  assign tl2axi4_1_auto_out_b_bits_echo_tl_state_size = axi4deint_1_auto_in_b_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign tl2axi4_1_auto_out_b_bits_echo_tl_state_source = axi4deint_1_auto_in_b_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign tl2axi4_1_auto_out_ar_ready = axi4deint_1_auto_in_ar_ready; // @[LazyModule.scala 296:16]
  assign tl2axi4_1_auto_out_r_valid = axi4deint_1_auto_in_r_valid; // @[LazyModule.scala 296:16]
  assign tl2axi4_1_auto_out_r_bits_data = axi4deint_1_auto_in_r_bits_data; // @[LazyModule.scala 296:16]
  assign tl2axi4_1_auto_out_r_bits_resp = axi4deint_1_auto_in_r_bits_resp; // @[LazyModule.scala 296:16]
  assign tl2axi4_1_auto_out_r_bits_echo_tl_state_size = axi4deint_1_auto_in_r_bits_echo_tl_state_size; // @[LazyModule.scala 296:16]
  assign tl2axi4_1_auto_out_r_bits_echo_tl_state_source = axi4deint_1_auto_in_r_bits_echo_tl_state_source; // @[LazyModule.scala 296:16]
  assign tl2axi4_1_auto_out_r_bits_last = axi4deint_1_auto_in_r_bits_last; // @[LazyModule.scala 296:16]
  assign fragmenter_clock = clock;
  assign fragmenter_reset = reset;
  assign fragmenter_auto_in_a_valid = xbar_auto_out_2_a_valid; // @[LazyModule.scala 298:16]
  assign fragmenter_auto_in_a_bits_opcode = xbar_auto_out_2_a_bits_opcode; // @[LazyModule.scala 298:16]
  assign fragmenter_auto_in_a_bits_address = xbar_auto_out_2_a_bits_address; // @[LazyModule.scala 298:16]
  assign fragmenter_auto_in_a_bits_mask = xbar_auto_out_2_a_bits_mask; // @[LazyModule.scala 298:16]
  assign fragmenter_auto_in_a_bits_data = xbar_auto_out_2_a_bits_data; // @[LazyModule.scala 298:16]
  assign fragmenter_auto_in_d_ready = xbar_auto_out_2_d_ready; // @[LazyModule.scala 298:16]
  assign fragmenter_auto_out_a_ready = i_debugger_auto_dm_perip_in_a_ready; // @[LazyModule.scala 296:16]
  assign fragmenter_auto_out_d_valid = i_debugger_auto_dm_perip_in_d_valid; // @[LazyModule.scala 296:16]
  assign fragmenter_auto_out_d_bits_opcode = i_debugger_auto_dm_perip_in_d_bits_opcode; // @[LazyModule.scala 296:16]
  assign fragmenter_auto_out_d_bits_size = i_debugger_auto_dm_perip_in_d_bits_size; // @[LazyModule.scala 296:16]
  assign fragmenter_auto_out_d_bits_source = i_debugger_auto_dm_perip_in_d_bits_source; // @[LazyModule.scala 296:16]
  assign fragmenter_auto_out_d_bits_data = i_debugger_auto_dm_perip_in_d_bits_data; // @[LazyModule.scala 296:16]
endmodule
module Rift2Chip(
  input          clock,
  input          reset,
  input          io_JtagIO_TRSTn,
  input          io_JtagIO_TCK,
  input          io_JtagIO_TMS,
  input          io_JtagIO_TDI,
  output         io_JtagIO_TDO,
  output         io_JtagIO_TDO_driven,
  output         io_ndreset,
  input          io_interrupt_0,
  input          io_interrupt_1,
  input          io_interrupt_2,
  input          io_interrupt_3,
  input          io_interrupt_4,
  input          io_interrupt_5,
  input          io_interrupt_6,
  input          io_interrupt_7,
  input          io_interrupt_8,
  input          io_interrupt_9,
  input          io_interrupt_10,
  input          io_interrupt_11,
  input          io_interrupt_12,
  input          io_interrupt_13,
  input          io_interrupt_14,
  input          io_interrupt_15,
  input          io_interrupt_16,
  input          io_interrupt_17,
  input          io_interrupt_18,
  input          io_interrupt_19,
  input          io_interrupt_20,
  input          io_interrupt_21,
  input          io_interrupt_22,
  input          io_interrupt_23,
  input          io_interrupt_24,
  input          io_interrupt_25,
  input          io_interrupt_26,
  input          io_interrupt_27,
  input          io_interrupt_28,
  input          io_interrupt_29,
  input          io_interrupt_30,
  input          io_rtc_clock,
  output         io_hspi_clk,
  input          io_hspi_reset,
  output         io_hspi_oen,
  input          memory_0_aw_ready,
  output         memory_0_aw_valid,
  output [3:0]   memory_0_aw_bits_id,
  output [31:0]  memory_0_aw_bits_addr,
  output [7:0]   memory_0_aw_bits_len,
  output [2:0]   memory_0_aw_bits_size,
  output [1:0]   memory_0_aw_bits_burst,
  output         memory_0_aw_bits_lock,
  output [3:0]   memory_0_aw_bits_cache,
  output [2:0]   memory_0_aw_bits_prot,
  output [3:0]   memory_0_aw_bits_qos,
  input          memory_0_w_ready,
  output         memory_0_w_valid,
  output [127:0] memory_0_w_bits_data,
  output [15:0]  memory_0_w_bits_strb,
  output         memory_0_w_bits_last,
  output         memory_0_b_ready,
  input          memory_0_b_valid,
  input  [3:0]   memory_0_b_bits_id,
  input  [1:0]   memory_0_b_bits_resp,
  input          memory_0_ar_ready,
  output         memory_0_ar_valid,
  output [3:0]   memory_0_ar_bits_id,
  output [31:0]  memory_0_ar_bits_addr,
  output [7:0]   memory_0_ar_bits_len,
  output [2:0]   memory_0_ar_bits_size,
  output [1:0]   memory_0_ar_bits_burst,
  output         memory_0_ar_bits_lock,
  output [3:0]   memory_0_ar_bits_cache,
  output [2:0]   memory_0_ar_bits_prot,
  output [3:0]   memory_0_ar_bits_qos,
  output         memory_0_r_ready,
  input          memory_0_r_valid,
  input  [3:0]   memory_0_r_bits_id,
  input  [127:0] memory_0_r_bits_data,
  input  [1:0]   memory_0_r_bits_resp,
  input          memory_0_r_bits_last,
  input          system_0_aw_ready,
  output         system_0_aw_valid,
  output [3:0]   system_0_aw_bits_id,
  output [30:0]  system_0_aw_bits_addr,
  output [7:0]   system_0_aw_bits_len,
  output [2:0]   system_0_aw_bits_size,
  output [1:0]   system_0_aw_bits_burst,
  output         system_0_aw_bits_lock,
  output [3:0]   system_0_aw_bits_cache,
  output [2:0]   system_0_aw_bits_prot,
  output [3:0]   system_0_aw_bits_qos,
  input          system_0_w_ready,
  output         system_0_w_valid,
  output [63:0]  system_0_w_bits_data,
  output [7:0]   system_0_w_bits_strb,
  output         system_0_w_bits_last,
  output         system_0_b_ready,
  input          system_0_b_valid,
  input  [3:0]   system_0_b_bits_id,
  input  [1:0]   system_0_b_bits_resp,
  input          system_0_ar_ready,
  output         system_0_ar_valid,
  output [3:0]   system_0_ar_bits_id,
  output [30:0]  system_0_ar_bits_addr,
  output [7:0]   system_0_ar_bits_len,
  output [2:0]   system_0_ar_bits_size,
  output [1:0]   system_0_ar_bits_burst,
  output         system_0_ar_bits_lock,
  output [3:0]   system_0_ar_bits_cache,
  output [2:0]   system_0_ar_bits_prot,
  output [3:0]   system_0_ar_bits_qos,
  output         system_0_r_ready,
  input          system_0_r_valid,
  input  [3:0]   system_0_r_bits_id,
  input  [63:0]  system_0_r_bits_data,
  input  [1:0]   system_0_r_bits_resp,
  input          system_0_r_bits_last
);
  wire  rift2LinkA_clock; // @[Rift2Link.scala 248:30]
  wire  rift2LinkA_reset; // @[Rift2Link.scala 248:30]
  wire  rift2LinkA_io_rtc_clock; // @[Rift2Link.scala 248:30]
  wire  rift2LinkA_io_dm_hartIsInReset; // @[Rift2Link.scala 248:30]
  wire  rift2LinkA_io_dm_hartResetReq; // @[Rift2Link.scala 248:30]
  wire  rift2LinkA_io_dm_hartHaltReq; // @[Rift2Link.scala 248:30]
  wire  rift2LinkA_io_aclint_msi; // @[Rift2Link.scala 248:30]
  wire  rift2LinkA_io_aclint_mti; // @[Rift2Link.scala 248:30]
  wire  rift2LinkA_io_aclint_ssi; // @[Rift2Link.scala 248:30]
  wire  rift2LinkA_io_aclint_sti; // @[Rift2Link.scala 248:30]
  wire  rift2LinkA_io_plic_mei; // @[Rift2Link.scala 248:30]
  wire  rift2LinkA_io_plic_sei; // @[Rift2Link.scala 248:30]
  wire  rift2LinkA_io_hspi_clk; // @[Rift2Link.scala 248:30]
  wire  rift2LinkA_io_hspi_rx_enable; // @[Rift2Link.scala 248:30]
  wire [15:0] rift2LinkA_io_hspi_rx_data; // @[Rift2Link.scala 248:30]
  wire  rift2LinkA_io_hspi_tx_enable; // @[Rift2Link.scala 248:30]
  wire [15:0] rift2LinkA_io_hspi_tx_data; // @[Rift2Link.scala 248:30]
  wire  rift2LinkA_io_hspi_oen; // @[Rift2Link.scala 248:30]
  wire  rift2LinkB_clock; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_reset; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_rtc_clock; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_JtagIO_TRSTn; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_JtagIO_TCK; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_JtagIO_TMS; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_JtagIO_TDI; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_JtagIO_TDO; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_JtagIO_TDO_driven; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_ndreset; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_0; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_1; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_2; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_3; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_4; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_5; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_6; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_7; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_8; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_9; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_10; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_11; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_12; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_13; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_14; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_15; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_16; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_17; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_18; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_19; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_20; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_21; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_22; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_23; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_24; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_25; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_26; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_27; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_28; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_29; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_interrupt_30; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_dm_hartIsInReset; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_dm_hartResetReq; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_dm_hartHaltReq; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_aclint_msi; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_aclint_mti; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_aclint_ssi; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_aclint_sti; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_plic_mei; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_plic_sei; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_hspi_clk; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_hspi_reset; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_hspi_rx_enable; // @[Rift2Link.scala 249:30]
  wire [15:0] rift2LinkB_io_hspi_rx_data; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_io_hspi_tx_enable; // @[Rift2Link.scala 249:30]
  wire [15:0] rift2LinkB_io_hspi_tx_data; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_memory_0_aw_ready; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_memory_0_aw_valid; // @[Rift2Link.scala 249:30]
  wire [3:0] rift2LinkB_memory_0_aw_bits_id; // @[Rift2Link.scala 249:30]
  wire [31:0] rift2LinkB_memory_0_aw_bits_addr; // @[Rift2Link.scala 249:30]
  wire [7:0] rift2LinkB_memory_0_aw_bits_len; // @[Rift2Link.scala 249:30]
  wire [2:0] rift2LinkB_memory_0_aw_bits_size; // @[Rift2Link.scala 249:30]
  wire [1:0] rift2LinkB_memory_0_aw_bits_burst; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_memory_0_aw_bits_lock; // @[Rift2Link.scala 249:30]
  wire [3:0] rift2LinkB_memory_0_aw_bits_cache; // @[Rift2Link.scala 249:30]
  wire [2:0] rift2LinkB_memory_0_aw_bits_prot; // @[Rift2Link.scala 249:30]
  wire [3:0] rift2LinkB_memory_0_aw_bits_qos; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_memory_0_w_ready; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_memory_0_w_valid; // @[Rift2Link.scala 249:30]
  wire [127:0] rift2LinkB_memory_0_w_bits_data; // @[Rift2Link.scala 249:30]
  wire [15:0] rift2LinkB_memory_0_w_bits_strb; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_memory_0_w_bits_last; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_memory_0_b_ready; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_memory_0_b_valid; // @[Rift2Link.scala 249:30]
  wire [3:0] rift2LinkB_memory_0_b_bits_id; // @[Rift2Link.scala 249:30]
  wire [1:0] rift2LinkB_memory_0_b_bits_resp; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_memory_0_ar_ready; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_memory_0_ar_valid; // @[Rift2Link.scala 249:30]
  wire [3:0] rift2LinkB_memory_0_ar_bits_id; // @[Rift2Link.scala 249:30]
  wire [31:0] rift2LinkB_memory_0_ar_bits_addr; // @[Rift2Link.scala 249:30]
  wire [7:0] rift2LinkB_memory_0_ar_bits_len; // @[Rift2Link.scala 249:30]
  wire [2:0] rift2LinkB_memory_0_ar_bits_size; // @[Rift2Link.scala 249:30]
  wire [1:0] rift2LinkB_memory_0_ar_bits_burst; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_memory_0_ar_bits_lock; // @[Rift2Link.scala 249:30]
  wire [3:0] rift2LinkB_memory_0_ar_bits_cache; // @[Rift2Link.scala 249:30]
  wire [2:0] rift2LinkB_memory_0_ar_bits_prot; // @[Rift2Link.scala 249:30]
  wire [3:0] rift2LinkB_memory_0_ar_bits_qos; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_memory_0_r_ready; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_memory_0_r_valid; // @[Rift2Link.scala 249:30]
  wire [3:0] rift2LinkB_memory_0_r_bits_id; // @[Rift2Link.scala 249:30]
  wire [127:0] rift2LinkB_memory_0_r_bits_data; // @[Rift2Link.scala 249:30]
  wire [1:0] rift2LinkB_memory_0_r_bits_resp; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_memory_0_r_bits_last; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_system_0_aw_ready; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_system_0_aw_valid; // @[Rift2Link.scala 249:30]
  wire [3:0] rift2LinkB_system_0_aw_bits_id; // @[Rift2Link.scala 249:30]
  wire [30:0] rift2LinkB_system_0_aw_bits_addr; // @[Rift2Link.scala 249:30]
  wire [7:0] rift2LinkB_system_0_aw_bits_len; // @[Rift2Link.scala 249:30]
  wire [2:0] rift2LinkB_system_0_aw_bits_size; // @[Rift2Link.scala 249:30]
  wire [1:0] rift2LinkB_system_0_aw_bits_burst; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_system_0_aw_bits_lock; // @[Rift2Link.scala 249:30]
  wire [3:0] rift2LinkB_system_0_aw_bits_cache; // @[Rift2Link.scala 249:30]
  wire [2:0] rift2LinkB_system_0_aw_bits_prot; // @[Rift2Link.scala 249:30]
  wire [3:0] rift2LinkB_system_0_aw_bits_qos; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_system_0_w_ready; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_system_0_w_valid; // @[Rift2Link.scala 249:30]
  wire [63:0] rift2LinkB_system_0_w_bits_data; // @[Rift2Link.scala 249:30]
  wire [7:0] rift2LinkB_system_0_w_bits_strb; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_system_0_w_bits_last; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_system_0_b_ready; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_system_0_b_valid; // @[Rift2Link.scala 249:30]
  wire [3:0] rift2LinkB_system_0_b_bits_id; // @[Rift2Link.scala 249:30]
  wire [1:0] rift2LinkB_system_0_b_bits_resp; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_system_0_ar_ready; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_system_0_ar_valid; // @[Rift2Link.scala 249:30]
  wire [3:0] rift2LinkB_system_0_ar_bits_id; // @[Rift2Link.scala 249:30]
  wire [30:0] rift2LinkB_system_0_ar_bits_addr; // @[Rift2Link.scala 249:30]
  wire [7:0] rift2LinkB_system_0_ar_bits_len; // @[Rift2Link.scala 249:30]
  wire [2:0] rift2LinkB_system_0_ar_bits_size; // @[Rift2Link.scala 249:30]
  wire [1:0] rift2LinkB_system_0_ar_bits_burst; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_system_0_ar_bits_lock; // @[Rift2Link.scala 249:30]
  wire [3:0] rift2LinkB_system_0_ar_bits_cache; // @[Rift2Link.scala 249:30]
  wire [2:0] rift2LinkB_system_0_ar_bits_prot; // @[Rift2Link.scala 249:30]
  wire [3:0] rift2LinkB_system_0_ar_bits_qos; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_system_0_r_ready; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_system_0_r_valid; // @[Rift2Link.scala 249:30]
  wire [3:0] rift2LinkB_system_0_r_bits_id; // @[Rift2Link.scala 249:30]
  wire [63:0] rift2LinkB_system_0_r_bits_data; // @[Rift2Link.scala 249:30]
  wire [1:0] rift2LinkB_system_0_r_bits_resp; // @[Rift2Link.scala 249:30]
  wire  rift2LinkB_system_0_r_bits_last; // @[Rift2Link.scala 249:30]
  Rift2LinkA rift2LinkA ( // @[Rift2Link.scala 248:30]
    .clock(rift2LinkA_clock),
    .reset(rift2LinkA_reset),
    .io_rtc_clock(rift2LinkA_io_rtc_clock),
    .io_dm_hartIsInReset(rift2LinkA_io_dm_hartIsInReset),
    .io_dm_hartResetReq(rift2LinkA_io_dm_hartResetReq),
    .io_dm_hartHaltReq(rift2LinkA_io_dm_hartHaltReq),
    .io_aclint_msi(rift2LinkA_io_aclint_msi),
    .io_aclint_mti(rift2LinkA_io_aclint_mti),
    .io_aclint_ssi(rift2LinkA_io_aclint_ssi),
    .io_aclint_sti(rift2LinkA_io_aclint_sti),
    .io_plic_mei(rift2LinkA_io_plic_mei),
    .io_plic_sei(rift2LinkA_io_plic_sei),
    .io_hspi_clk(rift2LinkA_io_hspi_clk),
    .io_hspi_rx_enable(rift2LinkA_io_hspi_rx_enable),
    .io_hspi_rx_data(rift2LinkA_io_hspi_rx_data),
    .io_hspi_tx_enable(rift2LinkA_io_hspi_tx_enable),
    .io_hspi_tx_data(rift2LinkA_io_hspi_tx_data),
    .io_hspi_oen(rift2LinkA_io_hspi_oen)
  );
  Rift2LinkB rift2LinkB ( // @[Rift2Link.scala 249:30]
    .clock(rift2LinkB_clock),
    .reset(rift2LinkB_reset),
    .io_rtc_clock(rift2LinkB_io_rtc_clock),
    .io_JtagIO_TRSTn(rift2LinkB_io_JtagIO_TRSTn),
    .io_JtagIO_TCK(rift2LinkB_io_JtagIO_TCK),
    .io_JtagIO_TMS(rift2LinkB_io_JtagIO_TMS),
    .io_JtagIO_TDI(rift2LinkB_io_JtagIO_TDI),
    .io_JtagIO_TDO(rift2LinkB_io_JtagIO_TDO),
    .io_JtagIO_TDO_driven(rift2LinkB_io_JtagIO_TDO_driven),
    .io_ndreset(rift2LinkB_io_ndreset),
    .io_interrupt_0(rift2LinkB_io_interrupt_0),
    .io_interrupt_1(rift2LinkB_io_interrupt_1),
    .io_interrupt_2(rift2LinkB_io_interrupt_2),
    .io_interrupt_3(rift2LinkB_io_interrupt_3),
    .io_interrupt_4(rift2LinkB_io_interrupt_4),
    .io_interrupt_5(rift2LinkB_io_interrupt_5),
    .io_interrupt_6(rift2LinkB_io_interrupt_6),
    .io_interrupt_7(rift2LinkB_io_interrupt_7),
    .io_interrupt_8(rift2LinkB_io_interrupt_8),
    .io_interrupt_9(rift2LinkB_io_interrupt_9),
    .io_interrupt_10(rift2LinkB_io_interrupt_10),
    .io_interrupt_11(rift2LinkB_io_interrupt_11),
    .io_interrupt_12(rift2LinkB_io_interrupt_12),
    .io_interrupt_13(rift2LinkB_io_interrupt_13),
    .io_interrupt_14(rift2LinkB_io_interrupt_14),
    .io_interrupt_15(rift2LinkB_io_interrupt_15),
    .io_interrupt_16(rift2LinkB_io_interrupt_16),
    .io_interrupt_17(rift2LinkB_io_interrupt_17),
    .io_interrupt_18(rift2LinkB_io_interrupt_18),
    .io_interrupt_19(rift2LinkB_io_interrupt_19),
    .io_interrupt_20(rift2LinkB_io_interrupt_20),
    .io_interrupt_21(rift2LinkB_io_interrupt_21),
    .io_interrupt_22(rift2LinkB_io_interrupt_22),
    .io_interrupt_23(rift2LinkB_io_interrupt_23),
    .io_interrupt_24(rift2LinkB_io_interrupt_24),
    .io_interrupt_25(rift2LinkB_io_interrupt_25),
    .io_interrupt_26(rift2LinkB_io_interrupt_26),
    .io_interrupt_27(rift2LinkB_io_interrupt_27),
    .io_interrupt_28(rift2LinkB_io_interrupt_28),
    .io_interrupt_29(rift2LinkB_io_interrupt_29),
    .io_interrupt_30(rift2LinkB_io_interrupt_30),
    .io_dm_hartIsInReset(rift2LinkB_io_dm_hartIsInReset),
    .io_dm_hartResetReq(rift2LinkB_io_dm_hartResetReq),
    .io_dm_hartHaltReq(rift2LinkB_io_dm_hartHaltReq),
    .io_aclint_msi(rift2LinkB_io_aclint_msi),
    .io_aclint_mti(rift2LinkB_io_aclint_mti),
    .io_aclint_ssi(rift2LinkB_io_aclint_ssi),
    .io_aclint_sti(rift2LinkB_io_aclint_sti),
    .io_plic_mei(rift2LinkB_io_plic_mei),
    .io_plic_sei(rift2LinkB_io_plic_sei),
    .io_hspi_clk(rift2LinkB_io_hspi_clk),
    .io_hspi_reset(rift2LinkB_io_hspi_reset),
    .io_hspi_rx_enable(rift2LinkB_io_hspi_rx_enable),
    .io_hspi_rx_data(rift2LinkB_io_hspi_rx_data),
    .io_hspi_tx_enable(rift2LinkB_io_hspi_tx_enable),
    .io_hspi_tx_data(rift2LinkB_io_hspi_tx_data),
    .memory_0_aw_ready(rift2LinkB_memory_0_aw_ready),
    .memory_0_aw_valid(rift2LinkB_memory_0_aw_valid),
    .memory_0_aw_bits_id(rift2LinkB_memory_0_aw_bits_id),
    .memory_0_aw_bits_addr(rift2LinkB_memory_0_aw_bits_addr),
    .memory_0_aw_bits_len(rift2LinkB_memory_0_aw_bits_len),
    .memory_0_aw_bits_size(rift2LinkB_memory_0_aw_bits_size),
    .memory_0_aw_bits_burst(rift2LinkB_memory_0_aw_bits_burst),
    .memory_0_aw_bits_lock(rift2LinkB_memory_0_aw_bits_lock),
    .memory_0_aw_bits_cache(rift2LinkB_memory_0_aw_bits_cache),
    .memory_0_aw_bits_prot(rift2LinkB_memory_0_aw_bits_prot),
    .memory_0_aw_bits_qos(rift2LinkB_memory_0_aw_bits_qos),
    .memory_0_w_ready(rift2LinkB_memory_0_w_ready),
    .memory_0_w_valid(rift2LinkB_memory_0_w_valid),
    .memory_0_w_bits_data(rift2LinkB_memory_0_w_bits_data),
    .memory_0_w_bits_strb(rift2LinkB_memory_0_w_bits_strb),
    .memory_0_w_bits_last(rift2LinkB_memory_0_w_bits_last),
    .memory_0_b_ready(rift2LinkB_memory_0_b_ready),
    .memory_0_b_valid(rift2LinkB_memory_0_b_valid),
    .memory_0_b_bits_id(rift2LinkB_memory_0_b_bits_id),
    .memory_0_b_bits_resp(rift2LinkB_memory_0_b_bits_resp),
    .memory_0_ar_ready(rift2LinkB_memory_0_ar_ready),
    .memory_0_ar_valid(rift2LinkB_memory_0_ar_valid),
    .memory_0_ar_bits_id(rift2LinkB_memory_0_ar_bits_id),
    .memory_0_ar_bits_addr(rift2LinkB_memory_0_ar_bits_addr),
    .memory_0_ar_bits_len(rift2LinkB_memory_0_ar_bits_len),
    .memory_0_ar_bits_size(rift2LinkB_memory_0_ar_bits_size),
    .memory_0_ar_bits_burst(rift2LinkB_memory_0_ar_bits_burst),
    .memory_0_ar_bits_lock(rift2LinkB_memory_0_ar_bits_lock),
    .memory_0_ar_bits_cache(rift2LinkB_memory_0_ar_bits_cache),
    .memory_0_ar_bits_prot(rift2LinkB_memory_0_ar_bits_prot),
    .memory_0_ar_bits_qos(rift2LinkB_memory_0_ar_bits_qos),
    .memory_0_r_ready(rift2LinkB_memory_0_r_ready),
    .memory_0_r_valid(rift2LinkB_memory_0_r_valid),
    .memory_0_r_bits_id(rift2LinkB_memory_0_r_bits_id),
    .memory_0_r_bits_data(rift2LinkB_memory_0_r_bits_data),
    .memory_0_r_bits_resp(rift2LinkB_memory_0_r_bits_resp),
    .memory_0_r_bits_last(rift2LinkB_memory_0_r_bits_last),
    .system_0_aw_ready(rift2LinkB_system_0_aw_ready),
    .system_0_aw_valid(rift2LinkB_system_0_aw_valid),
    .system_0_aw_bits_id(rift2LinkB_system_0_aw_bits_id),
    .system_0_aw_bits_addr(rift2LinkB_system_0_aw_bits_addr),
    .system_0_aw_bits_len(rift2LinkB_system_0_aw_bits_len),
    .system_0_aw_bits_size(rift2LinkB_system_0_aw_bits_size),
    .system_0_aw_bits_burst(rift2LinkB_system_0_aw_bits_burst),
    .system_0_aw_bits_lock(rift2LinkB_system_0_aw_bits_lock),
    .system_0_aw_bits_cache(rift2LinkB_system_0_aw_bits_cache),
    .system_0_aw_bits_prot(rift2LinkB_system_0_aw_bits_prot),
    .system_0_aw_bits_qos(rift2LinkB_system_0_aw_bits_qos),
    .system_0_w_ready(rift2LinkB_system_0_w_ready),
    .system_0_w_valid(rift2LinkB_system_0_w_valid),
    .system_0_w_bits_data(rift2LinkB_system_0_w_bits_data),
    .system_0_w_bits_strb(rift2LinkB_system_0_w_bits_strb),
    .system_0_w_bits_last(rift2LinkB_system_0_w_bits_last),
    .system_0_b_ready(rift2LinkB_system_0_b_ready),
    .system_0_b_valid(rift2LinkB_system_0_b_valid),
    .system_0_b_bits_id(rift2LinkB_system_0_b_bits_id),
    .system_0_b_bits_resp(rift2LinkB_system_0_b_bits_resp),
    .system_0_ar_ready(rift2LinkB_system_0_ar_ready),
    .system_0_ar_valid(rift2LinkB_system_0_ar_valid),
    .system_0_ar_bits_id(rift2LinkB_system_0_ar_bits_id),
    .system_0_ar_bits_addr(rift2LinkB_system_0_ar_bits_addr),
    .system_0_ar_bits_len(rift2LinkB_system_0_ar_bits_len),
    .system_0_ar_bits_size(rift2LinkB_system_0_ar_bits_size),
    .system_0_ar_bits_burst(rift2LinkB_system_0_ar_bits_burst),
    .system_0_ar_bits_lock(rift2LinkB_system_0_ar_bits_lock),
    .system_0_ar_bits_cache(rift2LinkB_system_0_ar_bits_cache),
    .system_0_ar_bits_prot(rift2LinkB_system_0_ar_bits_prot),
    .system_0_ar_bits_qos(rift2LinkB_system_0_ar_bits_qos),
    .system_0_r_ready(rift2LinkB_system_0_r_ready),
    .system_0_r_valid(rift2LinkB_system_0_r_valid),
    .system_0_r_bits_id(rift2LinkB_system_0_r_bits_id),
    .system_0_r_bits_data(rift2LinkB_system_0_r_bits_data),
    .system_0_r_bits_resp(rift2LinkB_system_0_r_bits_resp),
    .system_0_r_bits_last(rift2LinkB_system_0_r_bits_last)
  );
  assign io_JtagIO_TDO = rift2LinkB_io_JtagIO_TDO; // @[Rift2Link.scala 276:39]
  assign io_JtagIO_TDO_driven = rift2LinkB_io_JtagIO_TDO_driven; // @[Rift2Link.scala 276:39]
  assign io_ndreset = rift2LinkB_io_ndreset; // @[Rift2Link.scala 277:22]
  assign io_hspi_clk = rift2LinkA_io_hspi_clk; // @[Rift2Link.scala 291:17]
  assign io_hspi_oen = rift2LinkA_io_hspi_oen; // @[Rift2Link.scala 295:17]
  assign memory_0_aw_valid = rift2LinkB_memory_0_aw_valid; // @[Rift2Link.scala 272:12]
  assign memory_0_aw_bits_id = rift2LinkB_memory_0_aw_bits_id; // @[Rift2Link.scala 272:12]
  assign memory_0_aw_bits_addr = rift2LinkB_memory_0_aw_bits_addr; // @[Rift2Link.scala 272:12]
  assign memory_0_aw_bits_len = rift2LinkB_memory_0_aw_bits_len; // @[Rift2Link.scala 272:12]
  assign memory_0_aw_bits_size = rift2LinkB_memory_0_aw_bits_size; // @[Rift2Link.scala 272:12]
  assign memory_0_aw_bits_burst = rift2LinkB_memory_0_aw_bits_burst; // @[Rift2Link.scala 272:12]
  assign memory_0_aw_bits_lock = rift2LinkB_memory_0_aw_bits_lock; // @[Rift2Link.scala 272:12]
  assign memory_0_aw_bits_cache = rift2LinkB_memory_0_aw_bits_cache; // @[Rift2Link.scala 272:12]
  assign memory_0_aw_bits_prot = rift2LinkB_memory_0_aw_bits_prot; // @[Rift2Link.scala 272:12]
  assign memory_0_aw_bits_qos = rift2LinkB_memory_0_aw_bits_qos; // @[Rift2Link.scala 272:12]
  assign memory_0_w_valid = rift2LinkB_memory_0_w_valid; // @[Rift2Link.scala 272:12]
  assign memory_0_w_bits_data = rift2LinkB_memory_0_w_bits_data; // @[Rift2Link.scala 272:12]
  assign memory_0_w_bits_strb = rift2LinkB_memory_0_w_bits_strb; // @[Rift2Link.scala 272:12]
  assign memory_0_w_bits_last = rift2LinkB_memory_0_w_bits_last; // @[Rift2Link.scala 272:12]
  assign memory_0_b_ready = rift2LinkB_memory_0_b_ready; // @[Rift2Link.scala 272:12]
  assign memory_0_ar_valid = rift2LinkB_memory_0_ar_valid; // @[Rift2Link.scala 272:12]
  assign memory_0_ar_bits_id = rift2LinkB_memory_0_ar_bits_id; // @[Rift2Link.scala 272:12]
  assign memory_0_ar_bits_addr = rift2LinkB_memory_0_ar_bits_addr; // @[Rift2Link.scala 272:12]
  assign memory_0_ar_bits_len = rift2LinkB_memory_0_ar_bits_len; // @[Rift2Link.scala 272:12]
  assign memory_0_ar_bits_size = rift2LinkB_memory_0_ar_bits_size; // @[Rift2Link.scala 272:12]
  assign memory_0_ar_bits_burst = rift2LinkB_memory_0_ar_bits_burst; // @[Rift2Link.scala 272:12]
  assign memory_0_ar_bits_lock = rift2LinkB_memory_0_ar_bits_lock; // @[Rift2Link.scala 272:12]
  assign memory_0_ar_bits_cache = rift2LinkB_memory_0_ar_bits_cache; // @[Rift2Link.scala 272:12]
  assign memory_0_ar_bits_prot = rift2LinkB_memory_0_ar_bits_prot; // @[Rift2Link.scala 272:12]
  assign memory_0_ar_bits_qos = rift2LinkB_memory_0_ar_bits_qos; // @[Rift2Link.scala 272:12]
  assign memory_0_r_ready = rift2LinkB_memory_0_r_ready; // @[Rift2Link.scala 272:12]
  assign system_0_aw_valid = rift2LinkB_system_0_aw_valid; // @[Rift2Link.scala 273:12]
  assign system_0_aw_bits_id = rift2LinkB_system_0_aw_bits_id; // @[Rift2Link.scala 273:12]
  assign system_0_aw_bits_addr = rift2LinkB_system_0_aw_bits_addr; // @[Rift2Link.scala 273:12]
  assign system_0_aw_bits_len = rift2LinkB_system_0_aw_bits_len; // @[Rift2Link.scala 273:12]
  assign system_0_aw_bits_size = rift2LinkB_system_0_aw_bits_size; // @[Rift2Link.scala 273:12]
  assign system_0_aw_bits_burst = rift2LinkB_system_0_aw_bits_burst; // @[Rift2Link.scala 273:12]
  assign system_0_aw_bits_lock = rift2LinkB_system_0_aw_bits_lock; // @[Rift2Link.scala 273:12]
  assign system_0_aw_bits_cache = rift2LinkB_system_0_aw_bits_cache; // @[Rift2Link.scala 273:12]
  assign system_0_aw_bits_prot = rift2LinkB_system_0_aw_bits_prot; // @[Rift2Link.scala 273:12]
  assign system_0_aw_bits_qos = rift2LinkB_system_0_aw_bits_qos; // @[Rift2Link.scala 273:12]
  assign system_0_w_valid = rift2LinkB_system_0_w_valid; // @[Rift2Link.scala 273:12]
  assign system_0_w_bits_data = rift2LinkB_system_0_w_bits_data; // @[Rift2Link.scala 273:12]
  assign system_0_w_bits_strb = rift2LinkB_system_0_w_bits_strb; // @[Rift2Link.scala 273:12]
  assign system_0_w_bits_last = rift2LinkB_system_0_w_bits_last; // @[Rift2Link.scala 273:12]
  assign system_0_b_ready = rift2LinkB_system_0_b_ready; // @[Rift2Link.scala 273:12]
  assign system_0_ar_valid = rift2LinkB_system_0_ar_valid; // @[Rift2Link.scala 273:12]
  assign system_0_ar_bits_id = rift2LinkB_system_0_ar_bits_id; // @[Rift2Link.scala 273:12]
  assign system_0_ar_bits_addr = rift2LinkB_system_0_ar_bits_addr; // @[Rift2Link.scala 273:12]
  assign system_0_ar_bits_len = rift2LinkB_system_0_ar_bits_len; // @[Rift2Link.scala 273:12]
  assign system_0_ar_bits_size = rift2LinkB_system_0_ar_bits_size; // @[Rift2Link.scala 273:12]
  assign system_0_ar_bits_burst = rift2LinkB_system_0_ar_bits_burst; // @[Rift2Link.scala 273:12]
  assign system_0_ar_bits_lock = rift2LinkB_system_0_ar_bits_lock; // @[Rift2Link.scala 273:12]
  assign system_0_ar_bits_cache = rift2LinkB_system_0_ar_bits_cache; // @[Rift2Link.scala 273:12]
  assign system_0_ar_bits_prot = rift2LinkB_system_0_ar_bits_prot; // @[Rift2Link.scala 273:12]
  assign system_0_ar_bits_qos = rift2LinkB_system_0_ar_bits_qos; // @[Rift2Link.scala 273:12]
  assign system_0_r_ready = rift2LinkB_system_0_r_ready; // @[Rift2Link.scala 273:12]
  assign rift2LinkA_clock = clock;
  assign rift2LinkA_reset = reset;
  assign rift2LinkA_io_rtc_clock = io_rtc_clock; // @[Rift2Link.scala 289:36]
  assign rift2LinkA_io_dm_hartResetReq = rift2LinkB_io_dm_hartResetReq; // @[Rift2Link.scala 278:35]
  assign rift2LinkA_io_dm_hartHaltReq = rift2LinkB_io_dm_hartHaltReq; // @[Rift2Link.scala 278:35]
  assign rift2LinkA_io_aclint_msi = rift2LinkB_io_aclint_msi; // @[Rift2Link.scala 282:33]
  assign rift2LinkA_io_aclint_mti = rift2LinkB_io_aclint_mti; // @[Rift2Link.scala 282:33]
  assign rift2LinkA_io_aclint_ssi = rift2LinkB_io_aclint_ssi; // @[Rift2Link.scala 282:33]
  assign rift2LinkA_io_aclint_sti = rift2LinkB_io_aclint_sti; // @[Rift2Link.scala 282:33]
  assign rift2LinkA_io_plic_mei = rift2LinkB_io_plic_mei; // @[Rift2Link.scala 283:31]
  assign rift2LinkA_io_plic_sei = rift2LinkB_io_plic_sei; // @[Rift2Link.scala 283:31]
  assign rift2LinkA_io_hspi_rx_enable = rift2LinkB_io_hspi_tx_enable; // @[Rift2Link.scala 293:34]
  assign rift2LinkA_io_hspi_rx_data = rift2LinkB_io_hspi_tx_data; // @[Rift2Link.scala 293:34]
  assign rift2LinkB_clock = clock;
  assign rift2LinkB_reset = reset;
  assign rift2LinkB_io_rtc_clock = io_rtc_clock; // @[Rift2Link.scala 287:36]
  assign rift2LinkB_io_JtagIO_TRSTn = io_JtagIO_TRSTn; // @[Rift2Link.scala 276:39]
  assign rift2LinkB_io_JtagIO_TCK = io_JtagIO_TCK; // @[Rift2Link.scala 276:39]
  assign rift2LinkB_io_JtagIO_TMS = io_JtagIO_TMS; // @[Rift2Link.scala 276:39]
  assign rift2LinkB_io_JtagIO_TDI = io_JtagIO_TDI; // @[Rift2Link.scala 276:39]
  assign rift2LinkB_io_interrupt_0 = io_interrupt_0; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_1 = io_interrupt_1; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_2 = io_interrupt_2; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_3 = io_interrupt_3; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_4 = io_interrupt_4; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_5 = io_interrupt_5; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_6 = io_interrupt_6; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_7 = io_interrupt_7; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_8 = io_interrupt_8; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_9 = io_interrupt_9; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_10 = io_interrupt_10; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_11 = io_interrupt_11; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_12 = io_interrupt_12; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_13 = io_interrupt_13; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_14 = io_interrupt_14; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_15 = io_interrupt_15; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_16 = io_interrupt_16; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_17 = io_interrupt_17; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_18 = io_interrupt_18; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_19 = io_interrupt_19; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_20 = io_interrupt_20; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_21 = io_interrupt_21; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_22 = io_interrupt_22; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_23 = io_interrupt_23; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_24 = io_interrupt_24; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_25 = io_interrupt_25; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_26 = io_interrupt_26; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_27 = io_interrupt_27; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_28 = io_interrupt_28; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_29 = io_interrupt_29; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_interrupt_30 = io_interrupt_30; // @[Rift2Link.scala 286:36]
  assign rift2LinkB_io_dm_hartIsInReset = rift2LinkA_io_dm_hartIsInReset; // @[Rift2Link.scala 278:35]
  assign rift2LinkB_io_hspi_clk = rift2LinkA_io_hspi_clk; // @[Rift2Link.scala 298:35]
  assign rift2LinkB_io_hspi_reset = io_hspi_reset; // @[Rift2Link.scala 299:37]
  assign rift2LinkB_io_hspi_rx_enable = rift2LinkA_io_hspi_tx_enable; // @[Rift2Link.scala 294:34]
  assign rift2LinkB_io_hspi_rx_data = rift2LinkA_io_hspi_tx_data; // @[Rift2Link.scala 294:34]
  assign rift2LinkB_memory_0_aw_ready = memory_0_aw_ready; // @[Rift2Link.scala 272:12]
  assign rift2LinkB_memory_0_w_ready = memory_0_w_ready; // @[Rift2Link.scala 272:12]
  assign rift2LinkB_memory_0_b_valid = memory_0_b_valid; // @[Rift2Link.scala 272:12]
  assign rift2LinkB_memory_0_b_bits_id = memory_0_b_bits_id; // @[Rift2Link.scala 272:12]
  assign rift2LinkB_memory_0_b_bits_resp = memory_0_b_bits_resp; // @[Rift2Link.scala 272:12]
  assign rift2LinkB_memory_0_ar_ready = memory_0_ar_ready; // @[Rift2Link.scala 272:12]
  assign rift2LinkB_memory_0_r_valid = memory_0_r_valid; // @[Rift2Link.scala 272:12]
  assign rift2LinkB_memory_0_r_bits_id = memory_0_r_bits_id; // @[Rift2Link.scala 272:12]
  assign rift2LinkB_memory_0_r_bits_data = memory_0_r_bits_data; // @[Rift2Link.scala 272:12]
  assign rift2LinkB_memory_0_r_bits_resp = memory_0_r_bits_resp; // @[Rift2Link.scala 272:12]
  assign rift2LinkB_memory_0_r_bits_last = memory_0_r_bits_last; // @[Rift2Link.scala 272:12]
  assign rift2LinkB_system_0_aw_ready = system_0_aw_ready; // @[Rift2Link.scala 273:12]
  assign rift2LinkB_system_0_w_ready = system_0_w_ready; // @[Rift2Link.scala 273:12]
  assign rift2LinkB_system_0_b_valid = system_0_b_valid; // @[Rift2Link.scala 273:12]
  assign rift2LinkB_system_0_b_bits_id = system_0_b_bits_id; // @[Rift2Link.scala 273:12]
  assign rift2LinkB_system_0_b_bits_resp = system_0_b_bits_resp; // @[Rift2Link.scala 273:12]
  assign rift2LinkB_system_0_ar_ready = system_0_ar_ready; // @[Rift2Link.scala 273:12]
  assign rift2LinkB_system_0_r_valid = system_0_r_valid; // @[Rift2Link.scala 273:12]
  assign rift2LinkB_system_0_r_bits_id = system_0_r_bits_id; // @[Rift2Link.scala 273:12]
  assign rift2LinkB_system_0_r_bits_data = system_0_r_bits_data; // @[Rift2Link.scala 273:12]
  assign rift2LinkB_system_0_r_bits_resp = system_0_r_bits_resp; // @[Rift2Link.scala 273:12]
  assign rift2LinkB_system_0_r_bits_last = system_0_r_bits_last; // @[Rift2Link.scala 273:12]
endmodule
